:root{
  --bg:#f4f5fa;
  --surface:#ffffff;
  --ink:#17202a;
  --muted:#6b7280;
  --line:#e5e7eb;
  --line-2:#eef0f5;
  --brand:#5b5bd6;
  --brand-2:#7c3aed;
  --brand-soft:#eeedfc;
  --ok:#16a34a;
  --ok-soft:#e9f9ef;
  --warn:#d97706;
  --warn-soft:#fef3e2;
  --danger:#dc2626;
  --danger-soft:#fdeaea;
  --radius:14px;
  --shadow:0 1px 2px rgba(23,32,42,.05),0 8px 24px rgba(23,32,42,.06);
  --t-fast:160ms;
}

/* 语言切换（i18n.js 注入） */
#mfLangPill{position:fixed;bottom:16px;right:16px;z-index:4000;min-width:44px;height:34px;padding:0 12px;border-radius:17px;border:1px solid var(--line,#d7dbe6);background:rgba(255,255,255,.94);color:#333;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(30,41,90,.16);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
#mfLangPill:hover{border-color:#8b8fe0;color:#5b5bd6}
#mfLangPill:focus-visible{outline:2px solid #5b5bd6;outline-offset:2px}
.btn:focus-visible,.tab:focus-visible,.stage-btn:focus-visible,.icon-btn:focus-visible,
.chip:focus-visible,.cal-num:focus-visible,.cal-dot:focus-visible,.cal-goto:focus-visible,
input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #5b5bd6;outline-offset:2px}
@media (prefers-reduced-motion:reduce){#mfLangPill{transition:none}}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);font-size:14px;line-height:1.55;
}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
a{color:var(--brand);text-decoration:none}
.hidden{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 登录 ---------- */
.login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:
    radial-gradient(1000px 600px at 85% -10%,rgba(124,58,237,.18),transparent 60%),
    radial-gradient(800px 500px at -10% 100%,rgba(91,91,214,.16),transparent 55%),
    #f4f5fa;
}
.login-card{
  width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);
  border-radius:18px;box-shadow:var(--shadow);padding:32px 30px 26px;
  animation:rise .45s cubic-bezier(.22,.9,.36,1) both;
}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.logo{display:flex;align-items:center;gap:11px;min-width:0}
.logo-mark{
  flex:none;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#5b5bd6,#7c3aed);
  display:flex;align-items:center;justify-content:center;color:#fff
}
.logo-name{font-size:18px;font-weight:800;letter-spacing:.2px;white-space:nowrap}
.logo-tag{font-size:12px;color:var(--muted);letter-spacing:.4px}
.login-sub{color:var(--muted);font-size:13px;margin:6px 0 20px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.field input,.field select,.field textarea{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfd;outline:none;
  transition:border-color var(--t-fast),background var(--t-fast)
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);background:#fff}
.field textarea{resize:vertical;min-height:76px}
.form-err{color:var(--danger);font-size:13px;background:var(--danger-soft);border-radius:8px;padding:8px 10px;margin-bottom:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border-radius:10px;font-weight:600;transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),border-color var(--t-fast);white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);color:#fff;width:100%;padding:12px}
.btn-primary:hover{background:#4d4dc9;box-shadow:0 6px 16px rgba(91,91,214,.28)}
.btn-primary[disabled]{opacity:.55;cursor:not-allowed}
.btn-ghost{border:1px solid var(--line);background:#fff}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand)}
.btn-soft{background:var(--brand-soft);color:var(--brand)}
.btn-soft:hover{background:#e0ddfb}
.btn-danger{border:1px solid #f3c8c8;color:var(--danger);background:#fff}
.btn-danger:hover{border-color:var(--danger);background:var(--danger-soft)}
.btn-sm{padding:7px 12px;font-size:13px;border-radius:9px}
.demo-hint{margin-top:18px;padding:12px;border:1px dashed var(--line);border-radius:10px;font-size:12px;color:var(--muted)}
.demo-hint b{color:var(--ink)}
.quick-row{display:flex;gap:8px;margin-top:10px}
.quick-row .btn{flex:1;padding:8px 4px;font-size:12px}

/* ---------- 应用布局 ---------- */
.app{min-height:100vh;display:flex;flex-direction:column}
.topbar{
  position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);padding:10px 22px;display:flex;align-items:center;gap:12px;flex-wrap:wrap
}
.topbar .logo-name{font-size:16px}
.topbar .logo-mark{width:32px;height:32px;border-radius:9px}
.role-chip{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand)}
.role-chip.sys{background:#fef3e2;color:#b45309}
.whoami{font-size:13px;color:var(--muted)}
.whoami b{color:var(--ink);font-weight:600}
.spacer{flex:1}
.main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:22px;outline:none}
.main:focus{outline:none}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.page-head h1{font-size:21px;font-weight:800;letter-spacing:-.2px}
.page-head p{color:var(--muted);font-size:13px;margin-top:2px}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.tabs{display:flex;gap:6px;background:#eceef5;padding:4px;border-radius:11px;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none;margin-bottom:18px}
.tabs::-webkit-scrollbar{display:none}
.tab{padding:8px 16px;border-radius:8px;font-weight:600;font-size:13px;color:var(--muted);transition:all var(--t-fast);white-space:nowrap}
.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(23,32,42,.1)}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.stat .k{font-size:12px;color:var(--muted)}
.stat .v{font-size:25px;font-weight:800;margin-top:2px;letter-spacing:-.3px}
.stat .v small{font-size:12px;font-weight:500;color:var(--muted);margin-left:4px;letter-spacing:0}
.stat.accent .v{color:var(--brand)}
.stat.ok .v{color:var(--ok)}

.section-title{font-size:15px;font-weight:700;margin:6px 0 12px;display:flex;align-items:center;gap:8px}
.section-title .count{font-size:12px;font-weight:600;color:var(--muted);background:var(--line-2);padding:2px 8px;border-radius:999px}

/* 项目牌 */
.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;gap:13px;min-width:0;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(23,32,42,.1);border-color:#d7d9e8}
.card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.card-titles{min-width:0}
.card-title{font-size:16px;font-weight:700;line-height:1.35}
.card-sub{font-size:12px;color:var(--muted);margin-top:2px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.chip{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--line-2);color:#4b5563}
.chip.plat{background:var(--brand-soft);color:var(--brand)}
.chip.due{background:var(--warn-soft);color:#b45309}
.chip.pub{background:var(--ok-soft);color:var(--ok)}
.chip.owner{background:#f0f6ff;color:#2563eb}
.stage-badge{font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);white-space:nowrap}
.stage-badge.pub{background:var(--ok-soft);color:var(--ok)}
.card-menu{opacity:.6}
.icon-btn{width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}
.icon-btn:hover{background:var(--line-2);color:var(--ink)}

.progress-block{background:#fafbfd;border:1px solid var(--line-2);border-radius:11px;padding:12px}
.progress-top{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:7px}
.progress-top b{color:var(--ink)}
.bar{height:8px;background:#e8eaf3;border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#5b5bd6,#8b5cf6);border-radius:999px;transition:width 260ms}

/* 时间线 */
.timeline{display:flex;position:relative;padding:4px 0 2px;overflow-x:auto;scrollbar-width:none;min-width:0}
.timeline::-webkit-scrollbar{display:none}
.timeline::before{content:"";position:absolute;top:16px;left:8%;right:8%;height:2px;background:var(--line)}
.stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:66px;flex:1;padding:0 2px}
.stage .dot{width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid #cbd2e0;display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;transition:all var(--t-fast)}
.stage.done .dot{background:var(--brand);border-color:var(--brand);color:#fff}
.stage.current .dot{background:#fff;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft);color:var(--brand)}
.stage.pubdone .dot{background:var(--ok);border-color:var(--ok);color:#fff}
.stage .lbl{font-size:11px;font-weight:600;color:#7c8494;white-space:nowrap}
.stage.done .lbl,.stage.current .lbl,.stage.pubdone .lbl{color:var(--ink)}
.stage .dinput{
  width:92px;font-size:11px;color:var(--muted);border:1px solid transparent;border-radius:6px;background:transparent;
  padding:3px 2px;text-align:center;transition:all var(--t-fast)
}
.stage .dinput:hover{border-color:var(--line);background:#fafbfd}
.stage .dinput:focus{border-color:var(--brand);background:#fff;color:var(--ink)}
.stage-btn{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;border-radius:8px;padding:2px}
.stage-btn:hover .dot{border-color:var(--brand)}
.stage-hint{font-size:12px;color:var(--muted);background:var(--line-2);border-radius:8px;padding:7px 10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.stage-hint b{color:var(--ink)}

/* 链接与追踪 */
.link-box{border-top:1px dashed var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.link-row{display:flex;gap:8px}
.link-row input{flex:1;min-width:0;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fafbfd;font-size:13px;outline:none}
.link-row input:focus{border-color:var(--brand);background:#fff}
.link-row .btn{padding:9px 12px;font-size:13px}
.link-val{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.link-val a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track{margin-top:4px;border:1px solid var(--line-2);border-radius:11px;padding:12px;background:#fcfcff}
.track-title{font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.track-title .live{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.metric{background:#fff;border:1px solid var(--line-2);border-radius:9px;padding:9px 10px}
.metric .mk{font-size:11px;color:var(--muted)}
.metric .mv{font-size:18px;font-weight:800;margin-top:1px;letter-spacing:-.2px}
.bars{display:flex;align-items:flex-end;gap:6px;height:84px;padding-top:6px}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end;min-width:0}
.bar-col i{width:100%;max-width:28px;background:linear-gradient(180deg,#8b5cf6,#5b5bd6);border-radius:4px 4px 2px 2px;min-height:2px;transition:height 260ms}
.bar-col span{font-size:10px;color:var(--muted);white-space:nowrap}
.track-empty{font-size:12px;color:var(--muted);padding:4px 0}

/* 表格 */
.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
th{font-size:11px;color:var(--muted);font-weight:700;background:#fafbfd;letter-spacing:.3px;white-space:nowrap}
tbody tr{cursor:pointer;transition:background var(--t-fast)}
tbody tr:hover{background:#f7f8fd}
tbody tr:last-child td{border-bottom:none}
.mini-stages{display:inline-flex;align-items:center;gap:3px}
.mini-dot{width:9px;height:9px;border-radius:50%;background:#d9ddeb}
.mini-dot.done{background:var(--brand)}
.mini-dot.current{background:#fff;border:2px solid var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.mini-dot.pub{background:var(--ok)}
.link-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--brand)}
.num-cell{font-weight:700;font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.empty{padding:44px 16px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}
.empty b{color:var(--ink);display:block;margin-bottom:4px;font-size:15px}

/* 层 / 抽屉 / 弹窗 */
.layer{position:fixed;inset:0;z-index:60}
.layer-bg{position:absolute;inset:0;background:rgba(23,32,42,.45);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.drawer{
  position:absolute;top:0;right:0;height:100%;width:min(680px,100%);background:var(--bg);
  z-index:0; /* 独立层叠上下文：防止内部 .stage(z1)/.detail-head(z2) 盖住同层后续的 .modal */
  box-shadow:-20px 0 60px rgba(0,0,0,.18);overflow-y:auto;transform:translateX(100%);transition:transform 240ms cubic-bezier(.22,.9,.36,1)
}
.drawer.open{transform:none}
.modal{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-46%) scale(.98);width:calc(100% - 32px);max-width:480px;
  background:#fff;border-radius:16px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.28);opacity:0;z-index:1;transition:all 200ms cubic-bezier(.22,.9,.36,1)
}
.modal.open{opacity:1;transform:translate(-50%,-50%) scale(1)}
.modal h3{font-size:16px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}
.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
.modal .actions .btn:first-child{margin-right:auto}
.x-btn{width:28px;height:28px;border-radius:8px;color:var(--muted);font-size:18px;line-height:1}
.x-btn:hover{background:var(--line-2);color:var(--ink)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row .full{grid-column:1/-1}
.hint-text{font-size:12px;color:var(--muted)}

/* 详情抽屉内容 */
.detail-head{background:var(--surface);border-bottom:1px solid var(--line);padding:20px 22px;position:sticky;top:0;z-index:2}
.detail-body{padding:20px 22px 40px;display:flex;flex-direction:column;gap:16px;max-width:720px;margin:0 auto}
.detail-title{font-size:20px;font-weight:800}
.detail-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.detail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.detail-card h4{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kv .dl{font-size:12px;color:var(--muted);margin-bottom:2px}
.kv .dv{font-size:14px;font-weight:600;word-break:break-all}
.logs{list-style:none;display:flex;flex-direction:column}
.logs li{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line-2);font-size:12.5px}
.logs li:last-child{border-bottom:none}
.logs .when{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.logs .who{color:var(--brand);font-weight:600;white-space:nowrap}
.logs .act{color:var(--muted)}
.logs .what{color:var(--ink);word-break:break-all}
.track-table td,.track-table th{padding:9px 12px}
.track-table td input{width:100%;min-width:70px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}
.add-day{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:8px;margin-bottom:8px}
.add-day input{padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:#fafbfd;font-size:13px;outline:none}
.add-day input:focus{border-color:var(--brand)}

.foot{text-align:center;color:var(--muted);font-size:12px;padding:18px;border-top:1px solid var(--line);margin-top:14px}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(18px);background:#17202a;color:#fff;font-size:13px;padding:10px 16px;border-radius:10px;opacity:0;pointer-events:none;transition:all 240ms;z-index:99;max-width:min(92vw,520px)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--danger)}

/* ---------- 月历 ---------- */
.view-tabs{margin:0 0 16px}
.cal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 16px 14px}
.cal-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.cal-title{flex:1;text-align:center;font-size:17px;font-weight:800;letter-spacing:.2px;white-space:nowrap}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.cal-week span{text-align:center;font-size:12px;color:var(--muted);font-weight:700;padding:2px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-cell{min-height:74px;background:#fafbfd;border:1px solid var(--line-2);border-radius:10px;padding:5px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;transition:border-color var(--t-fast)}
.cal-cell.wknd{background:#f6f7fb}
.cal-cell.sel{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.cal-cell.blank{background:transparent;border-color:transparent}
.cal-num{min-width:24px;height:24px;border-radius:8px;font-weight:700;font-size:12.5px;color:#475569;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.cal-num:hover{background:var(--brand-soft);color:var(--brand)}
.cal-num.today{background:var(--brand);color:#fff}
.cal-dots{display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start}
.cal-dot{width:11px;height:11px;border-radius:50%;background:var(--c,#5b5bd6);border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.09);padding:0;transition:transform var(--t-fast)}
.cal-dot.due{background:#fff;border:2px solid var(--c,#5b5bd6)}
.cal-dot:hover{transform:scale(1.4)}
.cal-info{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.cal-info-head{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:8px}
.cal-info-list{display:flex;flex-direction:column;gap:6px}
.cal-info-empty{font-size:13px;color:var(--muted);background:var(--line-2);border-radius:10px;padding:12px}
.cal-info-empty b{color:var(--ink)}
.cal-goto{display:flex;align-items:center;gap:9px;background:#fafbfd;border:1px solid var(--line-2);border-radius:10px;padding:8px 10px;text-align:left;width:100%;transition:all var(--t-fast)}
.cal-goto:hover{border-color:var(--brand);background:#fff}
.cal-legend{width:10px;height:10px;border-radius:50%;flex:none}
.ci-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ci-tag{font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand);white-space:nowrap}
.ci-tag.due{background:var(--warn-soft);color:#b45309}
.ci-owner{font-size:11px;color:var(--muted);white-space:nowrap}
.ci-act{margin-left:auto;font-size:12px;color:var(--brand);white-space:nowrap}
.cal-foot{margin-top:12px;font-size:12px;color:var(--muted);background:var(--line-2);border-radius:8px;padding:7px 10px;line-height:1.6}
.card.flash{animation:cardFlash 1.7s ease 2}
@keyframes cardFlash{0%,100%{box-shadow:var(--shadow)}25%{box-shadow:0 0 0 4px var(--brand-soft),0 12px 32px rgba(23,32,42,.14);border-color:var(--brand)}}

/* ---------- 内容主题（点选 / 手敲新增 / 自动收藏） ---------- */
.chip.topic-chip{background:#f3e8ff;color:#7c3aed;border:1px solid #e3d4f7;cursor:pointer;transition:all var(--t-fast)}
.chip.topic-chip:hover{border-color:var(--brand);background:#f0e9ff}
.chip.topic-chip.add{background:#fff;border:1px dashed #cbb7f0;color:var(--brand);cursor:pointer}
.chip.topic-chip.add:hover{background:var(--brand-soft);border-style:solid}
.chip.topic-chip-static{background:#f3e8ff;color:#7c3aed}
.topic-hint{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.5}
.topic-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.topic-q{font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--line-2);color:#4b5563;border:1px solid transparent;transition:all var(--t-fast)}
.topic-q:hover{border-color:#cfcbe8;color:var(--ink)}
.topic-q.sel{background:var(--brand-soft);color:var(--brand);border-color:var(--brand)}
.topic-opt-list{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 6px;max-height:190px;overflow:auto;padding:2px}
.topic-opt{font-size:13px;font-weight:600;padding:8px 13px;border-radius:10px;border:1px solid var(--line);background:#fafbfd;color:var(--ink);transition:all var(--t-fast)}
.topic-opt:hover{border-color:#b9b3e8;background:#fff}
.topic-opt.sel{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.kv .topic-cell{grid-column:1/-1}
.dv.topic-edit-btn{display:inline-flex;align-items:center;gap:6px;background:var(--brand-soft);color:var(--brand);border:1px solid #dcd7f5;border-radius:9px;padding:5px 10px;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--t-fast);max-width:100%}
.dv.topic-edit-btn:hover{background:#e6e1fc;border-color:var(--brand)}
.topic-edit-btn .chev{opacity:.7;margin-left:auto}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media (max-width:620px){
  .main{padding:14px}
  .board{grid-template-columns:1fr}
  .metrics{grid-template-columns:repeat(2,1fr)}
  .topbar{padding:10px 14px}
  .whoami{display:none}
  .form-row{grid-template-columns:1fr}
  .stage{min-width:58px}
  .stage .dinput{width:74px}
  .detail-head{padding:16px}
  .detail-body{padding:16px 14px 34px}
  .add-day{grid-template-columns:repeat(2,1fr)}
  .add-day .btn{grid-column:1/-1}
  .cal-card{padding:10px 8px}
  .cal-grid{gap:4px}
  .cal-cell{min-height:56px;padding:3px;gap:2px;border-radius:8px}
  .cal-num{min-width:20px;height:20px;font-size:11.5px;border-radius:6px;padding:0 3px}
  .cal-dot{width:9px;height:9px;border-width:1.5px}
  .cal-week span{font-size:11px}
  .cal-title{font-size:15px}
  .cal-head .btn{font-size:12px;padding:6px 8px}
  .ci-owner{display:none}
}

/* keyboard focus ring (end of file so it wins over input outline:none resets) */
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #5b5bd6 !important;outline-offset:2px}


/* ================= Social Creative Hub：平台简介 + 三页导航 + 数据洞察页 ================= */
.intro-note{margin:14px 0 18px;padding:11px 12px;border:1px solid var(--line-2);background:#fafbfd;border-radius:10px;font-size:12px;line-height:1.62;color:#4b5563}
.intro-band{max-width:1280px;margin:0 auto;padding:16px 22px 0}
.intro-band p{background:linear-gradient(135deg,#f7f7ff,#f2f7ff);border:1px solid #e2e5f7;border-radius:var(--radius);padding:14px 16px;font-size:13px;line-height:1.7;color:#3f4666}
.module-nav{max-width:1280px;margin:16px auto 0;padding:0 22px;display:flex;gap:8px;flex-wrap:wrap}
.module-nav button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 1 210px;min-width:0;text-align:left;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;transition:all var(--t-fast)}
.module-nav button:hover{border-color:#c9c9ee}
.module-nav button .mn-idx{font-size:10.5px;font-weight:800;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.module-nav button .mn-name{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.module-nav button.active{background:var(--brand-soft);border-color:var(--brand)}
.module-nav button.active .mn-name{color:var(--brand)}
.module-nav button.active .mn-idx{color:var(--brand)}
.insight-note{border:1px solid #dce2fa;background:#f6f7ff;border-radius:12px;padding:12px 14px;font-size:12.5px;color:#3e4677;margin-bottom:16px}
.insight-note b{display:block;margin-bottom:6px;color:#2d3275}
.insight-note ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.insight-foot{font-size:12px;color:var(--muted);margin-top:12px}
.acct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:20px}
.acct-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;box-shadow:var(--shadow);min-width:0}
.acct-card.compact{padding:11px 13px}
.acct-name{font-size:14px;font-weight:700;line-height:1.35;word-break:break-word}
.acct-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.acct-links a{text-decoration:none}
.acct-metrics{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}
.metric-slot{font-size:11px;font-weight:600;color:#6b7280;background:var(--line-2);border:1px dashed #d5d8e4;border-radius:7px;padding:4px 8px}
.acct-hint{font-size:11px;color:var(--muted);margin-top:9px}
.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.module-card{background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:13px 14px}
.module-title{font-size:13.5px;font-weight:700}
.module-hint{font-size:11.5px;color:var(--muted);margin-top:5px}
@media (max-width:620px){
  .intro-band{padding:12px 14px 0}
  .module-nav{padding:0 14px;gap:6px}
  .module-nav button{flex:1 1 100%}
  .acct-grid{grid-template-columns:1fr}
}
.module-nav button.mn.active{background:var(--brand-soft);border-color:var(--brand)}

/* ---------- 第二页：同类账号贴文动态（时间倒序网格） ---------- */
.feed-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 6px}
.feed-bar .view-tabs{margin:0}
.win-switch{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.win-btn{padding:7px 12px;font-size:12.5px;font-weight:600;color:var(--muted);border-right:1px solid var(--line)}
.win-btn:last-child{border-right:none}
.win-btn:hover{background:var(--line-2);color:var(--ink)}
.win-btn.active{background:var(--brand-soft);color:var(--brand)}
.win-btn:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.feed-order{font-size:11.5px;font-weight:600;color:var(--muted);margin-left:8px}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(216px,1fr));gap:14px;margin-bottom:20px}
.post-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-width:0;transition:box-shadow var(--t-fast),transform var(--t-fast)}
.post-tile:hover{box-shadow:0 2px 6px rgba(23,32,42,.08),0 14px 30px rgba(23,32,42,.10);transform:translateY(-2px)}
.post-link{display:block;color:inherit;text-decoration:none;height:100%}
.post-link:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.post-media{position:relative;aspect-ratio:4/5;background:linear-gradient(135deg,#eef0f8,#e4e8f5);overflow:hidden}
.post-thumb{width:100%;height:100%;object-fit:cover;display:block}
.post-thumb.ph{display:grid;place-items:center;color:#a8aec4;font-size:26px}
.post-type{position:absolute;left:8px;bottom:8px;font-size:10.5px;font-weight:700;letter-spacing:.03em;color:#fff;background:rgba(20,24,40,.62);border-radius:6px;padding:3px 7px;backdrop-filter:blur(4px)}
.post-flag{position:absolute;right:8px;top:8px;font-size:10px;font-weight:800;letter-spacing:.05em;color:#7c3aed;background:#f3eeff;border:1px solid #ddd0ff;border-radius:6px;padding:2px 6px}
.post-body{padding:10px 11px 12px}
.post-acct{display:flex;align-items:baseline;gap:6px;min-width:0}
.post-acct-name{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-acct-handle{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-caption{font-size:12px;line-height:1.5;color:#414a5c;margin-top:6px;min-height:36px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;font-size:11px;color:var(--muted)}
.post-metrics{font-weight:600;color:#4b5563}
.feed-empty{text-align:left;line-height:1.7}
.feed-empty-note{margin-top:8px;font-size:12px;color:var(--muted)}
@media (max-width:560px){
  .post-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .post-caption{min-height:32px;font-size:11.5px}
  .feed-bar{flex-direction:column;align-items:stretch}
  .win-switch{width:100%}
  .win-btn{flex:1;text-align:center;padding:8px 6px}
}

/* 第二页：账号目录（分类下的一格格账号，非贴文列表） */
.dir-details{margin-top:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:10px 14px}
.dir-details>summary{cursor:pointer;font-weight:700;font-size:13px;color:#4b5563;list-style:revert}
.dir-details[open]>summary{margin-bottom:10px}
.dir-details .acct-grid{margin-bottom:6px}
.dir-group{margin-bottom:14px}
.dir-title{font-size:12.5px;font-weight:700;color:#4b5563;margin:0 0 8px}
.dir-group .acct-grid{margin-bottom:6px}
.post-media.noimg{background:linear-gradient(135deg,#f1f3fa,#e7ebf6)}
@keyframes schFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.post-tile{animation:schFade 220ms ease-out both}
@media (prefers-reduced-motion:reduce){.post-tile{animation:none}.post-tile:hover{transform:none}}
.post-media.noimg{aspect-ratio:auto;height:58px}
.post-media.noimg .post-thumb.ph{font-size:18px;color:#b3b9cf}
.post-acct{min-height:17px}
.post-tile .post-body{display:flex;flex-direction:column;height:calc(100% - 0px)}

/* 文字卡（暂无缩略图数据时）的标签改为行内 chip，不再绝对定位压住账号名 */
.post-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.post-flag.inline,.post-type.inline{position:static;left:auto;right:auto;top:auto;bottom:auto;backdrop-filter:none}
.post-type.inline{background:#eef0f6;color:#4b5563;font-weight:700}
.post-tile.text-only .post-body{padding-top:12px}

/* 贴文卡信息层级：账号名独占一行，handle 与时间同一行，避免长名被栏宽截断后与徽标挤在一起 */
.post-acct{display:block;min-width:0}
.post-acct-name{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-sub{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:2px;font-size:11px;color:var(--muted);min-width:0}
.post-sub .post-acct-handle{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-sub .post-when{flex:0 0 auto}
.post-foot{margin-top:6px}
/* ========================================================================
   Social Creative Hub R1 — Editorial intelligence desk (frontend only)
   ======================================================================== */
:root{--bg:#f4f4f0;--surface:#fffefa;--ink:#182329;--muted:#657178;--line:#d9dedb;--line-2:#e9ece7;--brand:#006e9c;--brand-2:#005779;--brand-soft:#dceef2;--ok:#188057;--ok-soft:#e0f2e9;--warn:#a8611a;--warn-soft:#f8ead9;--danger:#b94343;--danger-soft:#f8e5e2;--radius:4px;--shadow:0 1px 0 rgba(20,35,41,.07),0 18px 46px rgba(20,35,41,.055);--t-fast:190ms}
body{font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif;letter-spacing:.002em;background:var(--bg);color:var(--ink)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:-1;background-image:radial-gradient(rgba(18,40,46,.14) .45px,transparent .45px);background-size:7px 7px;mask-image:linear-gradient(135deg,#000,transparent 78%)}
.logo-mark{border-radius:3px;background:var(--brand)}.logo-name{letter-spacing:-.02em}.logo-tag{letter-spacing:.1em;text-transform:uppercase;font-size:10px}.btn{border-radius:2px;font-weight:650}.btn-primary{background:var(--brand)}.btn-primary:hover{background:var(--brand-2);box-shadow:0 8px 20px rgba(0,110,156,.2)}.btn-ghost{background:transparent}.btn-soft{background:var(--brand-soft);color:var(--brand)}
/* Solace sign-in: spatial composition kept; external video, Google font and canvas refraction intentionally excluded. */
.login-wrap{position:relative;overflow:hidden;padding:36px;background:#e9eeec;isolation:isolate}.login-wrap:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(120deg,#0f3039 0%,#164a57 45%,#e9eeec 45%,#f6f4ee 100%)}.login-wrap:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.65;background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 80px),linear-gradient(115deg,transparent 0 38%,rgba(255,255,255,.13) 38% 38.2%,transparent 38.2%)}
.login-editorial-context{width:min(430px,39vw);position:absolute;left:max(8vw,30px);top:50%;transform:translateY(-50%);color:#eff8f5;z-index:1}.lec-kicker,.lec-index{display:block;font-size:10px;letter-spacing:.18em;font-weight:700}.lec-kicker{color:#8cd0d9;margin-bottom:24px}.login-editorial-context strong{display:block;font-size:clamp(38px,4.3vw,68px);line-height:.98;letter-spacing:-.065em;font-weight:650}.login-editorial-context em{font-family:Georgia,serif;font-weight:400}.login-editorial-context p{font-size:14px;line-height:1.65;max-width:330px;margin:24px 0 36px;color:rgba(239,248,245,.75)}.lec-index{color:rgba(239,248,245,.62);border-top:1px solid rgba(239,248,245,.26);padding-top:14px}
.login-card{position:relative;margin-left:min(46vw,680px);max-width:440px;border:0;border-radius:2px;padding:38px 36px 32px;box-shadow:0 30px 70px rgba(2,26,33,.24);animation:editorialReveal .7s cubic-bezier(.22,.9,.36,1) both}.login-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(0,110,156,.16);pointer-events:none}.login-card>*{position:relative}.login-sub{font-size:12px;letter-spacing:.02em}.intro-note{display:none}.field input,.field select,.field textarea{border-radius:0;background:#f9faf7;border-width:0 0 1px;padding:12px 0}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand)}.login-card .btn-primary{margin-top:6px}.login-card form{margin-top:26px}.login-card .logo{padding-bottom:20px;border-bottom:1px solid var(--line)}
.topbar{padding:12px 28px;background:rgba(255,254,250,.9);border-bottom-color:var(--line);gap:14px}.topbar:after{content:"";position:absolute;left:0;bottom:-1px;width:124px;height:2px;background:var(--brand)}.topbar .logo-name{font-size:17px}.role-chip{border-radius:2px;background:var(--brand-soft);color:var(--brand);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.role-chip.sys{background:var(--warn-soft);color:var(--warn)}.whoami{font-size:12px}.intro-band{padding-top:18px}.intro-band p{position:relative;background:transparent;border:0;border-radius:0;max-width:720px;padding:0 0 0 16px;color:var(--muted);font-size:12px;line-height:1.65}.intro-band p:before{content:"Platform note";display:block;color:var(--brand);font-weight:700;text-transform:uppercase;letter-spacing:.13em;font-size:9px;margin:0 0 5px}.intro-band p:after{content:"";position:absolute;left:0;top:0;width:2px;height:100%;background:var(--brand)}
.module-nav{position:relative;margin-top:18px;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 22px}.module-nav:after{content:"";position:absolute;left:22px;bottom:-1px;width:74px;height:2px;background:var(--brand)}.module-nav button{padding:14px 16px;border:0;border-radius:0;background:transparent;flex:1 1 0}.module-nav button.active,.module-nav button:hover{background:#edf4f3;border-color:transparent}.module-nav button .mn-idx{color:var(--brand);font-size:9px}.module-nav button .mn-name{font-size:14px}.main{max-width:1340px;padding:34px 28px 60px}.page-head{align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}.page-head h1{font-family:Georgia,"Times New Roman",serif;font-size:34px;font-weight:400;letter-spacing:-.045em;line-height:1.05}.page-head p{max-width:740px;margin-top:8px;font-size:13px}.page-head .btn{margin-top:4px}
.insight-note{border:0;border-left:2px solid var(--brand);border-radius:0;background:#eaf3f2;padding:14px 18px;color:#38535b;margin-bottom:22px}.insight-note b{color:var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.insight-note ul{gap:5px;font-size:12px}.stats{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}.stat{position:relative;border:0;border-radius:0;background:#fffefa;min-height:132px;padding:20px 18px;box-shadow:none;overflow:hidden}.stat:after{content:"";position:absolute;right:-36px;bottom:-42px;width:125px;height:125px;border:1px solid rgba(0,110,156,.16);border-radius:50%}.stat:first-child{background:#12343e;color:#fff}.stat:first-child .k,.stat:first-child .v small{color:rgba(255,255,255,.68)}.stat:first-child .v{color:#bde4df}.stat .k{position:relative;z-index:1;text-transform:uppercase;letter-spacing:.1em;font-size:10px}.stat .v{position:relative;z-index:1;margin-top:12px;font-family:Georgia,serif;font-size:38px;line-height:1;font-variant-numeric:tabular-nums}.stat.accent .v{color:var(--brand)}.stat.ok .v{color:var(--ok)}.section-title{font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:24px 0 12px}.section-title .count{background:transparent;color:var(--brand);font-size:11px;padding:0}.acct-grid{grid-template-columns:1.25fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}.acct-card{border:0;border-radius:0;background:#fffefa;box-shadow:none;padding:22px 20px;min-height:220px;transition:background .2s,transform .2s}.acct-card:first-child{background:#dceef2}.acct-card:hover{transform:translateY(-3px);background:#edf5f3}.acct-name{font-size:16px;letter-spacing:-.025em}.acct-links{margin-top:16px}.chip{border-radius:1px;background:#edf1ef;color:#455158;font-size:10px}.chip.plat{background:rgba(0,110,156,.1);color:var(--brand)}.metric-slot{border-radius:0;background:transparent;border:1px solid #cbd5d2;padding:4px 6px;font-size:10px}.acct-hint{margin-top:auto;padding-top:22px;border-top:1px solid rgba(24,35,41,.12);font-size:11px}.table-wrap{border:1px solid var(--line);border-radius:0;box-shadow:none}.table-wrap th{background:#edf2f0;text-transform:uppercase;letter-spacing:.09em}.table-wrap tbody tr:hover{background:#eef5f4}.table-wrap td{padding:15px 14px}.num-cell{font-variant-numeric:tabular-nums}.insight-foot{border-top:1px solid var(--line);padding-top:12px}.card,.acct-card,.post-tile,.cal-card,.detail-card{border-radius:0}.card{box-shadow:none}.board{gap:1px;background:var(--line);border:1px solid var(--line)}.card{border:0;background:#fffefa}.post-grid{gap:1px;background:var(--line);border:1px solid var(--line)}.post-tile{border:0;box-shadow:none}.post-tile:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(20,40,45,.1)}.tabs{border-radius:0;background:#e9eeec;padding:2px}.tab{border-radius:0}.tab.active{box-shadow:none;background:#fffefa;color:var(--brand)}.feed-bar .view-tabs{border-bottom:1px solid var(--line)}.win-switch{border-radius:0}.win-btn.active{background:var(--brand);color:#fff}.cal-card{box-shadow:none}.dir-details{border-radius:0}.toast{border-radius:2px;background:#12343e}[data-editorial-motion] .page-head,[data-editorial-motion] .insight-note,[data-editorial-motion] .stats,[data-editorial-motion] .acct-grid,[data-editorial-motion] .section-title,[data-editorial-motion] .table-wrap{will-change:transform,opacity}@keyframes editorialReveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.login-card{animation:none}.acct-card:hover,.post-tile:hover{transform:none}}@media (max-width:720px){.login-wrap{align-items:flex-end;padding:18px;background:#12343e}.login-wrap:before{background:linear-gradient(160deg,#12343e 0 55%,#eff2ed 55%)}.login-editorial-context{position:relative;left:auto;top:auto;transform:none;width:100%;margin:0 0 24px}.login-editorial-context strong{font-size:42px}.login-editorial-context p{margin:15px 0 22px}.login-card{margin:0;max-width:none;padding:28px 22px}.topbar{padding:10px 14px}.intro-band,.module-nav{padding-left:14px;padding-right:14px}.module-nav{display:grid;grid-template-columns:1fr}.module-nav:after{left:14px;width:56px}.main{padding:28px 14px 44px}.page-head h1{font-size:29px}.stats,.acct-grid{grid-template-columns:1fr}.stat{min-height:96px}.acct-card{min-height:unset}.module-nav button{padding:11px 0}.intro-band p{font-size:11.5px}.post-grid{gap:1px}.login-card:before{inset:7px}}
/* R1 Editorial Intelligence Desk: frontend visual layer only */
:root{--bg:#f4f4f0;--surface:#fffefa;--ink:#182329;--muted:#657178;--line:#d9dedb;--line-2:#e9ece7;--brand:#006e9c;--brand-2:#005779;--brand-soft:#dceef2;--ok:#188057;--ok-soft:#e0f2e9;--warn:#a8611a;--warn-soft:#f8ead9;--danger:#b94343;--danger-soft:#f8e5e2;--radius:4px;--shadow:0 1px 0 rgba(20,35,41,.07),0 18px 46px rgba(20,35,41,.055);--t-fast:190ms}
body{font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif;letter-spacing:.002em;background:var(--bg);color:var(--ink)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:-1;background-image:radial-gradient(rgba(18,40,46,.14) .45px,transparent .45px);background-size:7px 7px;mask-image:linear-gradient(135deg,#000,transparent 78%)}
.logo-mark{border-radius:3px;background:var(--brand)}.logo-name{letter-spacing:-.02em}.logo-tag{letter-spacing:.1em;text-transform:uppercase;font-size:10px}.btn{border-radius:2px;font-weight:650}.btn-primary{background:var(--brand)}.btn-primary:hover{background:var(--brand-2);box-shadow:0 8px 20px rgba(0,110,156,.2)}.btn-ghost{background:transparent}.btn-soft{background:var(--brand-soft);color:var(--brand)}
/* Solace sign-in structure, adapted without its external video/refraction dependencies. */
.login-wrap{position:relative;overflow:hidden;padding:36px;background:#e9eeec;isolation:isolate}.login-wrap:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(120deg,#0f3039 0%,#164a57 45%,#e9eeec 45%,#f6f4ee 100%)}.login-wrap:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.65;background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 80px),linear-gradient(115deg,transparent 0 38%,rgba(255,255,255,.13) 38% 38.2%,transparent 38.2%)}
.login-editorial-context{width:min(430px,39vw);position:absolute;left:max(8vw,30px);top:50%;transform:translateY(-50%);color:#eff8f5;z-index:1}.lec-kicker,.lec-index{display:block;font-size:10px;letter-spacing:.18em;font-weight:700}.lec-kicker{color:#8cd0d9;margin-bottom:24px}.login-editorial-context strong{display:block;font-size:clamp(38px,4.3vw,68px);line-height:.98;letter-spacing:-.065em;font-weight:650}.login-editorial-context em{font-family:Georgia,serif;font-weight:400}.login-editorial-context p{font-size:14px;line-height:1.65;max-width:330px;margin:24px 0 36px;color:rgba(239,248,245,.75)}.lec-index{color:rgba(239,248,245,.62);border-top:1px solid rgba(239,248,245,.26);padding-top:14px}
.login-card{position:relative;margin-left:min(46vw,680px);max-width:440px;border:0;border-radius:2px;padding:38px 36px 32px;box-shadow:0 30px 70px rgba(2,26,33,.24);animation:editorialReveal .7s cubic-bezier(.22,.9,.36,1) both}.login-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(0,110,156,.16);pointer-events:none}.login-card>*{position:relative}.login-sub{font-size:12px;letter-spacing:.02em}.intro-note{display:none}.field input,.field select,.field textarea{border-radius:0;background:#f9faf7;border-width:0 0 1px;padding:12px 0}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand)}.login-card .btn-primary{margin-top:6px}.login-card form{margin-top:26px}.login-card .logo{padding-bottom:20px;border-bottom:1px solid var(--line)}
.topbar{padding:12px 28px;background:rgba(255,254,250,.9);border-bottom-color:var(--line);gap:14px}.topbar:after{content:"";position:absolute;left:0;bottom:-1px;width:124px;height:2px;background:var(--brand)}.topbar .logo-name{font-size:17px}.role-chip{border-radius:2px;background:var(--brand-soft);color:var(--brand);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.role-chip.sys{background:var(--warn-soft);color:var(--warn)}.whoami{font-size:12px}.intro-band{padding-top:18px}.intro-band p{position:relative;background:transparent;border:0;border-radius:0;max-width:720px;padding:0 0 0 16px;color:var(--muted);font-size:12px;line-height:1.65}.intro-band p:before{content:"Platform note";display:block;color:var(--brand);font-weight:700;text-transform:uppercase;letter-spacing:.13em;font-size:9px;margin:0 0 5px}.intro-band p:after{content:"";position:absolute;left:0;top:0;width:2px;height:100%;background:var(--brand)}
.module-nav{position:relative;margin-top:18px;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 22px}.module-nav:after{content:"";position:absolute;left:22px;bottom:-1px;width:74px;height:2px;background:var(--brand)}.module-nav button{padding:14px 16px;border:0;border-radius:0;background:transparent;flex:1 1 0}.module-nav button.active,.module-nav button:hover{background:#edf4f3;border-color:transparent}.module-nav button .mn-idx{color:var(--brand);font-size:9px}.module-nav button .mn-name{font-size:14px}.main{max-width:1340px;padding:34px 28px 60px}.page-head{align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}.page-head h1{font-family:Georgia,"Times New Roman",serif;font-size:34px;font-weight:400;letter-spacing:-.045em;line-height:1.05}.page-head p{max-width:740px;margin-top:8px;font-size:13px}.page-head .btn{margin-top:4px}
.insight-note{border:0;border-left:2px solid var(--brand);border-radius:0;background:#eaf3f2;padding:14px 18px;color:#38535b;margin-bottom:22px}.insight-note b{color:var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.insight-note ul{gap:5px;font-size:12px}.stats{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}.stat{position:relative;border:0;border-radius:0;background:#fffefa;min-height:132px;padding:20px 18px;box-shadow:none;overflow:hidden}.stat:after{content:"";position:absolute;right:-36px;bottom:-42px;width:125px;height:125px;border:1px solid rgba(0,110,156,.16);border-radius:50%}.stat:first-child{background:#12343e;color:#fff}.stat:first-child .k,.stat:first-child .v small{color:rgba(255,255,255,.68)}.stat:first-child .v{color:#bde4df}.stat .k{position:relative;z-index:1;text-transform:uppercase;letter-spacing:.1em;font-size:10px}.stat .v{position:relative;z-index:1;margin-top:12px;font-family:Georgia,serif;font-size:38px;line-height:1;font-variant-numeric:tabular-nums}.stat.accent .v{color:var(--brand)}.stat.ok .v{color:var(--ok)}.section-title{font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:24px 0 12px}.section-title .count{background:transparent;color:var(--brand);font-size:11px;padding:0}.acct-grid{grid-template-columns:1.25fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}.acct-card{border:0;border-radius:0;background:#fffefa;box-shadow:none;padding:22px 20px;min-height:220px;transition:background .2s,transform .2s}.acct-card:first-child{background:#dceef2}.acct-card:hover{transform:translateY(-3px);background:#edf5f3}.acct-name{font-size:16px;letter-spacing:-.025em}.acct-links{margin-top:16px}.chip{border-radius:1px;background:#edf1ef;color:#455158;font-size:10px}.chip.plat{background:rgba(0,110,156,.1);color:var(--brand)}.metric-slot{border-radius:0;background:transparent;border:1px solid #cbd5d2;padding:4px 6px;font-size:10px}.acct-hint{margin-top:auto;padding-top:22px;border-top:1px solid rgba(24,35,41,.12);font-size:11px}.table-wrap{border:1px solid var(--line);border-radius:0;box-shadow:none}.table-wrap th{background:#edf2f0;text-transform:uppercase;letter-spacing:.09em}.table-wrap tbody tr:hover{background:#eef5f4}.table-wrap td{padding:15px 14px}.num-cell{font-variant-numeric:tabular-nums}.insight-foot{border-top:1px solid var(--line);padding-top:12px}.card,.acct-card,.post-tile,.cal-card,.detail-card{border-radius:0}.card{box-shadow:none}.board{gap:1px;background:var(--line);border:1px solid var(--line)}.card{border:0;background:#fffefa}.post-grid{gap:1px;background:var(--line);border:1px solid var(--line)}.post-tile{border:0;box-shadow:none}.post-tile:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(20,40,45,.1)}.tabs{border-radius:0;background:#e9eeec;padding:2px}.tab{border-radius:0}.tab.active{box-shadow:none;background:#fffefa;color:var(--brand)}.feed-bar .view-tabs{border-bottom:1px solid var(--line)}.win-switch{border-radius:0}.win-btn.active{background:var(--brand);color:#fff}.cal-card{box-shadow:none}.dir-details{border-radius:0}.toast{border-radius:2px;background:#12343e}[data-editorial-motion] .page-head,[data-editorial-motion] .insight-note,[data-editorial-motion] .stats,[data-editorial-motion] .acct-grid,[data-editorial-motion] .section-title,[data-editorial-motion] .table-wrap{will-change:transform,opacity}@keyframes editorialReveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.login-card{animation:none}.acct-card:hover,.post-tile:hover{transform:none}}@media (max-width:720px){.login-wrap{align-items:flex-end;padding:18px;background:#12343e}.login-wrap:before{background:linear-gradient(160deg,#12343e 0 55%,#eff2ed 55%)}.login-editorial-context{position:relative;left:auto;top:auto;transform:none;width:100%;margin:0 0 24px}.login-editorial-context strong{font-size:42px}.login-editorial-context p{margin:15px 0 22px}.login-card{margin:0;max-width:none;padding:28px 22px}.topbar{padding:10px 14px}.intro-band,.module-nav{padding-left:14px;padding-right:14px}.module-nav{display:grid;grid-template-columns:1fr}.module-nav:after{left:14px;width:56px}.main{padding:28px 14px 44px}.page-head h1{font-size:29px}.stats,.acct-grid{grid-template-columns:1fr}.stat{min-height:96px}.acct-card{min-height:unset}.module-nav button{padding:11px 0}.intro-band p{font-size:11.5px}.post-grid{gap:1px}.login-card:before{inset:7px}}
/* R1.1 — lively glass layer: decorative surfaces only; data remains high contrast. */
:root{--brand:#5265d8;--brand-2:#394bb8;--brand-soft:#e8e8ff;--glass:rgba(255,255,255,.62);--glass-strong:rgba(255,255,255,.76);--glass-line:rgba(255,255,255,.78)}
body{background:radial-gradient(circle at 8% 18%,rgba(118,204,222,.22),transparent 26%),radial-gradient(circle at 90% 12%,rgba(140,115,255,.18),transparent 24%),radial-gradient(circle at 65% 85%,rgba(255,163,185,.13),transparent 28%),#f1f3fa}
body:before{opacity:.19;background-image:radial-gradient(rgba(40,54,117,.18) .5px,transparent .5px)}
.logo-mark{background:linear-gradient(135deg,#3657c9,#7657da);box-shadow:0 7px 14px rgba(82,101,216,.24)}
.btn-primary{background:linear-gradient(135deg,#5265d8,#7252cf);box-shadow:0 7px 18px rgba(82,101,216,.22)}.btn-primary:hover{background:linear-gradient(135deg,#4558cc,#6546c3);box-shadow:0 10px 24px rgba(82,101,216,.29)}
/* Glass navigation and intro */
.topbar{background:rgba(255,255,255,.7);border-bottom-color:rgba(255,255,255,.86);backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%);box-shadow:0 8px 28px rgba(49,65,121,.05)}.topbar:after{background:linear-gradient(90deg,#5265d8,#7bc7d8)}
.intro-band p{background:linear-gradient(105deg,rgba(255,255,255,.58),rgba(240,243,255,.36));border:1px solid rgba(255,255,255,.72);border-left:2px solid #5265d8;border-radius:14px;padding:13px 17px 13px 20px;box-shadow:0 10px 24px rgba(59,76,142,.06);backdrop-filter:blur(14px) saturate(135%);-webkit-backdrop-filter:blur(14px) saturate(135%)}.intro-band p:after{display:none}.intro-band p:before{color:#5265d8}
.module-nav{gap:8px;border:0;padding:0 22px;background:transparent}.module-nav:after{display:none}.module-nav button{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:14px;background:rgba(255,255,255,.5);box-shadow:0 8px 20px rgba(57,72,134,.055);backdrop-filter:blur(15px) saturate(140%);-webkit-backdrop-filter:blur(15px) saturate(140%);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.module-nav button:before{content:"";position:absolute;width:120px;height:120px;right:-48px;top:-70px;background:radial-gradient(circle,rgba(127,205,219,.33),transparent 65%);pointer-events:none}.module-nav button.active{background:linear-gradient(135deg,rgba(235,236,255,.87),rgba(216,243,248,.73));border-color:rgba(123,130,232,.48);box-shadow:0 12px 27px rgba(82,101,216,.14)}.module-nav button:hover{transform:translateY(-2px);background:rgba(255,255,255,.78)}.module-nav button .mn-idx,.module-nav button.active .mn-name{color:#5265d8}
/* Let key surfaces breathe as glass, while preserving readable labels and metrics. */
.insight-note{border:1px solid rgba(255,255,255,.78);border-left:3px solid #5e72d9;background:linear-gradient(110deg,rgba(226,244,247,.72),rgba(244,239,255,.52));border-radius:14px;box-shadow:0 12px 28px rgba(62,78,143,.07);backdrop-filter:blur(15px) saturate(135%);-webkit-backdrop-filter:blur(15px) saturate(135%)}.insight-note b{color:#354aaf}
.stats{gap:10px;background:transparent;border:0}.stat{border:1px solid rgba(255,255,255,.82);border-radius:18px;background:linear-gradient(140deg,rgba(255,255,255,.78),rgba(255,255,255,.5));box-shadow:0 13px 30px rgba(50,65,122,.08);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);transition:transform .2s ease,box-shadow .2s ease}.stat:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(50,65,122,.13)}.stat:after{right:-26px;bottom:-36px;width:130px;height:130px;border-color:rgba(101,112,226,.23);background:radial-gradient(circle at 38% 38%,rgba(143,211,220,.13),transparent 58%)}.stat:first-child{background:linear-gradient(135deg,rgba(55,64,151,.92),rgba(37,126,160,.82));border-color:rgba(204,235,245,.46);box-shadow:0 16px 32px rgba(52,73,163,.22)}.stat .v{font-family:Georgia,serif}.stat.accent .v{color:#4c5ed1}
.acct-grid{gap:10px;background:transparent;border:0}.acct-card{border:1px solid rgba(255,255,255,.8);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.7),rgba(255,255,255,.44));box-shadow:0 13px 30px rgba(50,65,122,.07);backdrop-filter:blur(16px) saturate(135%);-webkit-backdrop-filter:blur(16px) saturate(135%)}.acct-card:first-child{background:linear-gradient(145deg,rgba(215,243,248,.78),rgba(234,233,255,.55))}.acct-card:hover{background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(235,245,255,.62));box-shadow:0 18px 35px rgba(50,65,122,.13)}
.chip{border-radius:999px;background:rgba(239,243,248,.78);border:1px solid rgba(255,255,255,.8);box-shadow:0 2px 5px rgba(40,55,110,.04)}.chip.plat{background:rgba(221,231,255,.75);color:#4a57cb}.metric-slot{border-radius:8px;background:rgba(255,255,255,.35);border-color:rgba(125,139,184,.22)}
.table-wrap{border:1px solid rgba(255,255,255,.82);border-radius:16px;background:rgba(255,255,255,.64);box-shadow:0 14px 32px rgba(50,65,122,.065);backdrop-filter:blur(12px) saturate(125%);-webkit-backdrop-filter:blur(12px) saturate(125%)}.table-wrap th{background:rgba(231,239,244,.68)}.table-wrap tbody tr:hover{background:rgba(230,243,250,.58)}
/* Reuse the same material across peer-post, calendar and workflow pages. */
.post-grid,.board{gap:10px;background:transparent;border:0}.post-tile,.card,.cal-card,.dir-details,.detail-card{border:1px solid rgba(255,255,255,.8);border-radius:16px;background:rgba(255,255,255,.64);box-shadow:0 13px 30px rgba(50,65,122,.07);backdrop-filter:blur(15px) saturate(130%);-webkit-backdrop-filter:blur(15px) saturate(130%)}.post-tile:hover{box-shadow:0 18px 36px rgba(50,65,122,.14)}
@media(max-width:720px){.module-nav{padding-left:14px;padding-right:14px;gap:7px}.stats,.acct-grid,.post-grid,.board{gap:8px}.stat,.acct-card{border-radius:14px}.intro-band p{border-radius:12px}.topbar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){.module-nav button,.stat{transition:none}.module-nav button:hover,.stat:hover{transform:none}}
/* Social Creative Hub — SaaS Command Center R2 hero (Page 1 only) */
.saas-command-center{position:relative;overflow:hidden;isolation:isolate;min-height:390px;margin:4px 0 32px;padding:34px 34px 28px;border:1px solid rgba(159,205,255,.26);border-radius:24px;background:linear-gradient(122deg,#071b34 0%,#0a2c50 42%,#382d72 100%);box-shadow:0 26px 60px rgba(21,38,103,.28),inset 0 1px 0 rgba(255,255,255,.16);color:#eff8ff}
.saas-command-center:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 78% 20%,rgba(122,215,255,.52),transparent 24%),radial-gradient(circle at 72% 88%,rgba(138,87,255,.46),transparent 34%),radial-gradient(circle at 18% 100%,rgba(43,115,255,.38),transparent 35%)}
.saas-command-center:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.38;background-image:linear-gradient(rgba(143,210,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(143,210,255,.13) 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(circle at 70% 48%,#000 0%,transparent 72%)}
.saas-orbit{position:absolute;border:1px solid rgba(157,217,255,.25);border-radius:50%;pointer-events:none}.saas-orbit.one{width:460px;height:460px;right:-94px;top:-168px}.saas-orbit.two{width:320px;height:320px;right:54px;top:-88px;border-color:rgba(213,185,255,.24)}.saas-orbit.three{width:9px;height:9px;right:205px;top:112px;background:#97edff;border:0;box-shadow:0 0 0 7px rgba(151,237,255,.12),0 0 24px #97edff}
.saas-kicker{position:relative;display:flex;align-items:center;gap:9px;color:#98e8ff;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.saas-kicker:before{content:"";width:28px;height:1px;background:currentColor}.saas-live{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:4px 8px;border:1px solid rgba(164,232,255,.28);border-radius:999px;background:rgba(145,222,255,.1);font-size:9px;letter-spacing:.08em}.saas-live i{width:6px;height:6px;border-radius:50%;background:#7bf0d2;box-shadow:0 0 12px #7bf0d2}
.saas-command-center h1{max-width:690px;margin:26px 0 10px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(42px,5vw,72px);line-height:.96;font-weight:400;letter-spacing:-.065em;color:#fff;text-shadow:0 6px 28px rgba(0,0,0,.22)}.saas-command-center h1 em{font-style:italic;color:#a9e7ff}.saas-command-center .saas-copy{max-width:650px;color:rgba(231,246,255,.76);font-size:14px;line-height:1.65}
.saas-signal-row{display:flex;align-items:center;gap:10px;margin-top:28px;color:rgba(227,245,255,.6);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.saas-signal-line{display:flex;gap:3px;align-items:flex-end;height:16px}.saas-signal-line i{display:block;width:3px;border-radius:3px;background:linear-gradient(#8ff0ff,#9878ff);animation:saasPulse 1.4s ease-in-out infinite alternate}.saas-signal-line i:nth-child(1){height:5px}.saas-signal-line i:nth-child(2){height:13px;animation-delay:.2s}.saas-signal-line i:nth-child(3){height:8px;animation-delay:.4s}.saas-signal-line i:nth-child(4){height:16px;animation-delay:.1s}.saas-signal-line i:nth-child(5){height:7px;animation-delay:.35s}@keyframes saasPulse{to{transform:scaleY(.55);opacity:.55}}
.saas-command-center .stats{position:absolute;right:28px;bottom:28px;width:min(48%,560px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;background:transparent;border:0}.saas-command-center .stat{min-height:112px;padding:16px 17px;border:1px solid rgba(207,236,255,.22);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.07));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 14px 28px rgba(0,5,35,.15);backdrop-filter:blur(16px) saturate(145%);-webkit-backdrop-filter:blur(16px) saturate(145%)}.saas-command-center .stat:first-child{background:linear-gradient(145deg,rgba(99,219,255,.34),rgba(106,81,234,.2));border-color:rgba(166,234,255,.4)}.saas-command-center .stat:after{display:none}.saas-command-center .stat .k{color:rgba(226,244,255,.58);font-size:9px}.saas-command-center .stat .v{margin-top:11px;font-family:Georgia,serif;font-size:34px;color:#fff;text-shadow:0 0 16px rgba(158,227,255,.25)}.saas-command-center .stat.ok .v{color:#85f0c5}.saas-command-center .stat.accent .v{color:#a5eaff}.saas-command-center+.page-head{display:none}
@media(max-width:900px){.saas-command-center{min-height:520px}.saas-command-center .stats{position:relative;right:auto;bottom:auto;width:100%;margin-top:28px}.saas-command-center h1{max-width:620px}.saas-orbit.one{right:-190px}}
@media(max-width:560px){.saas-command-center{min-height:0;margin:0 0 22px;padding:24px 18px 18px;border-radius:18px}.saas-command-center h1{margin:20px 0 10px;font-size:43px}.saas-command-center .saas-copy{font-size:12px}.saas-command-center .stats{grid-template-columns:1fr 1fr;gap:7px;margin-top:22px}.saas-command-center .stat{min-height:94px;padding:13px}.saas-command-center .stat .v{font-size:28px}.saas-signal-row{margin-top:20px}.saas-orbit.one{width:310px;height:310px;right:-150px;top:-100px}.saas-orbit.two{width:220px;height:220px;right:-52px;top:-50px}.saas-orbit.three{right:108px;top:77px}}@media(prefers-reduced-motion:reduce){.saas-signal-line i{animation:none}}

/* SaaS R2 continuation: page-specific command surfaces; presentation-only. */
body[data-saas-page="external"] .page-head,body[data-saas-page="tracker"] .page-head{position:relative;overflow:hidden;padding:27px 28px 23px;border:1px solid rgba(176,217,255,.22);border-radius:20px;background:linear-gradient(120deg,#0a2342,#123e68 55%,#392e75);color:#fff;box-shadow:0 22px 48px rgba(26,43,114,.22)}
body[data-saas-page="external"] .page-head:before,body[data-saas-page="tracker"] .page-head:before{content:"";position:absolute;inset:0;opacity:.36;background-image:linear-gradient(rgba(163,219,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(163,219,255,.14) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,#000,transparent)}
body[data-saas-page="external"] .page-head>* ,body[data-saas-page="tracker"] .page-head>*{position:relative;z-index:1}body[data-saas-page="external"] .page-head h1,body[data-saas-page="tracker"] .page-head h1{color:#fff;font-family:Georgia,"Times New Roman",serif}body[data-saas-page="external"] .page-head p,body[data-saas-page="tracker"] .page-head p{color:rgba(235,247,255,.75)}body[data-saas-page="external"] .page-head .btn,body[data-saas-page="tracker"] .page-head .btn{color:#e4f6ff;border-color:rgba(205,238,255,.33);background:rgba(255,255,255,.09)}
body[data-saas-page="external"] .feed-bar{padding:13px 14px;border:1px solid rgba(255,255,255,.78);border-radius:16px;background:rgba(255,255,255,.52);box-shadow:0 12px 28px rgba(52,68,130,.06);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
body[data-saas-page="external"] .post-tile{position:relative;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(235,241,255,.5));transition:transform .24s ease,box-shadow .24s ease}body[data-saas-page="external"] .post-tile:before{content:"";height:3px;position:absolute;left:0;right:0;top:0;background:linear-gradient(90deg,#65d9ee,#6a66db,#bd76e7);opacity:.8}body[data-saas-page="external"] .post-tile:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 22px 40px rgba(54,64,145,.18)}
body[data-saas-page="tracker"] .tabs{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.78);border-radius:14px;padding:4px;box-shadow:0 10px 24px rgba(45,60,120,.06)}body[data-saas-page="tracker"] .tab{border-radius:10px}body[data-saas-page="tracker"] .tab.active{background:linear-gradient(135deg,#5062d7,#7255ce);color:#fff;box-shadow:0 8px 16px rgba(81,98,214,.24)}
body[data-saas-page="tracker"] .card{position:relative;overflow:hidden;border-radius:18px;border-color:rgba(255,255,255,.8);background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(241,244,255,.48))}body[data-saas-page="tracker"] .card:before{content:"";position:absolute;width:120px;height:120px;right:-45px;top:-48px;border:1px solid rgba(91,104,219,.18);border-radius:50%}body[data-saas-page="tracker"] .progress-block{position:relative;background:rgba(245,248,255,.58);border-color:rgba(142,156,210,.16)}body[data-saas-page="tracker"] .bar i{background:linear-gradient(90deg,#4f65db,#63d8df,#8a65d8)}
.request-page{position:relative;max-width:1180px}.request-page:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 83% 18%,rgba(127,111,255,.18),transparent 24%),radial-gradient(circle at 14% 34%,rgba(85,210,225,.14),transparent 25%);pointer-events:none}.request-hero{position:relative;overflow:hidden;padding:34px;border:1px solid rgba(177,221,255,.28);border-radius:22px;background:linear-gradient(122deg,#081e3c,#143f69 55%,#392d75);box-shadow:0 24px 56px rgba(31,45,115,.22);color:#fff}.request-hero:after{content:"";position:absolute;inset:0;opacity:.35;background-image:linear-gradient(rgba(165,220,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(165,220,255,.15) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(circle at 72% 48%,#000,transparent 70%)}.request-hero>*,.request-hero .logo{position:relative;z-index:1}.request-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:42px;font-weight:400;letter-spacing:-.05em}.request-hero p{color:rgba(232,246,255,.75)}.request-hero .logo-name{color:#fff}.request-hero .logo-tag{color:#9ae4ff}.request-guard{border-color:rgba(193,234,255,.24);background:rgba(255,255,255,.11);color:#e4f5ff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.platform-map,.request-form-card,.request-card{border:1px solid rgba(255,255,255,.8);border-radius:18px;background:rgba(255,255,255,.64);box-shadow:0 14px 32px rgba(52,65,128,.07);backdrop-filter:blur(15px) saturate(130%);-webkit-backdrop-filter:blur(15px) saturate(130%)}.platform-map{margin-top:22px;padding:22px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.map-card{position:relative;overflow:hidden;min-height:160px;padding:18px;border:1px solid rgba(255,255,255,.75);border-radius:14px;background:linear-gradient(145deg,rgba(230,245,252,.68),rgba(240,235,255,.48))}.map-card:nth-child(2){background:linear-gradient(145deg,rgba(233,240,255,.75),rgba(240,235,255,.52))}.map-card:nth-child(3){background:linear-gradient(145deg,rgba(232,250,244,.7),rgba(233,240,255,.48))}.map-idx{color:#5265d8;font-weight:800;font-size:11px;letter-spacing:.12em}.map-name{margin-top:12px;font-weight:750;font-size:16px}.map-card p{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.55}.map-note{margin:14px 0 0;color:var(--muted);font-size:12px}.request-form-card{margin-top:22px}.request-card:hover{transform:translateY(-3px);box-shadow:0 20px 38px rgba(52,65,128,.13)}
@media(max-width:650px){body[data-saas-page="external"] .page-head,body[data-saas-page="tracker"] .page-head{padding:22px 18px;border-radius:17px}.request-page{padding:18px 14px 50px}.request-hero{padding:24px 18px;border-radius:18px}.request-hero h1{font-size:34px}.map-grid{grid-template-columns:1fr}.platform-map{padding:14px}.map-card{min-height:0}.request-form-card{padding:16px}}
/* R2.1 atmospheric SaaS background: CSS-only, composited transforms and zero external assets. */
.app{position:relative;isolation:isolate;background:linear-gradient(145deg,#edf8fb 0%,#f1f1ff 47%,#fbf1fb 100%)}
.app:before,.app:after{content:"";position:fixed;z-index:-1;pointer-events:none;filter:blur(2px);will-change:transform;transform:translate3d(0,0,0)}
.app:before{width:48vw;height:48vw;min-width:440px;min-height:440px;left:-17vw;top:10vh;border-radius:48% 52% 43% 57%;opacity:.62;background:radial-gradient(circle at 45% 45%,rgba(107,222,237,.34),rgba(115,164,255,.16) 35%,transparent 70%);animation:auroraFloatA 16s ease-in-out infinite alternate}
.app:after{width:43vw;height:43vw;min-width:410px;min-height:410px;right:-13vw;top:26vh;border-radius:58% 42% 55% 45%;opacity:.55;background:radial-gradient(circle at 45% 48%,rgba(162,127,255,.28),rgba(255,166,202,.13) 44%,transparent 71%);animation:auroraFloatB 19s ease-in-out infinite alternate}
.main{position:relative}.main:before{content:"";position:absolute;z-index:-1;inset:80px -10vw 0;pointer-events:none;opacity:.21;background-image:linear-gradient(90deg,rgba(91,116,205,.12) 1px,transparent 1px),linear-gradient(rgba(91,116,205,.12) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 76%,transparent)}
.saas-command-center{background:linear-gradient(122deg,#061a36 0%,#0b315d 37%,#283681 70%,#4b287d 100%)}.saas-command-center:before{background:radial-gradient(circle at 78% 18%,rgba(123,225,255,.62),transparent 21%),radial-gradient(circle at 78% 88%,rgba(153,91,255,.53),transparent 35%),radial-gradient(circle at 17% 104%,rgba(34,126,255,.48),transparent 37%),linear-gradient(118deg,transparent 0 39%,rgba(117,234,255,.1) 39.1% 39.3%,transparent 39.4%)}.saas-command-center:after{opacity:.46;background-image:linear-gradient(rgba(143,210,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(143,210,255,.16) 1px,transparent 1px),radial-gradient(circle at 72% 50%,rgba(226,231,255,.2) 1px,transparent 1px);background-size:34px 34px,34px 34px,13px 13px}
@keyframes auroraFloatA{0%{transform:translate3d(-2vw,-1vh,0) scale(.94)}100%{transform:translate3d(5vw,4vh,0) scale(1.08)}}@keyframes auroraFloatB{0%{transform:translate3d(2vw,1vh,0) scale(1.04)}100%{transform:translate3d(-4vw,5vh,0) scale(.93)}}
@media(max-width:560px){.app:before{width:112vw;height:112vw;left:-56vw;top:18vh}.app:after{width:104vw;height:104vw;right:-58vw;top:47vh}.main:before{inset:120px -30vw 0;background-size:36px 36px}}
@media(prefers-reduced-motion:reduce){.app:before,.app:after{animation:none}}
/* Prevent decorative aurora layers from contributing to layout width. */
html,body{overflow-x:clip}.app{overflow-x:clip}.main{overflow-x:clip}
@supports not (overflow:clip){html,body,.app,.main{overflow-x:hidden}}
/* R2.2 — small-screen data tables become stacked records instead of a horizontally scrolling grid. */
@media(max-width:720px){
.table-wrap.is-stacked{background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.table-wrap.is-stacked .table-scroll{overflow:visible}
.table-wrap.is-stacked table{display:block;width:100%;min-width:0!important;max-width:100%;border-collapse:separate;table-layout:auto}
.table-wrap.is-stacked thead{display:none}
.table-wrap.is-stacked tbody,.table-wrap.is-stacked tr,.table-wrap.is-stacked td{display:block;width:100%}
.table-wrap.is-stacked tbody tr{margin-bottom:10px;padding:14px 15px;border:1px solid rgba(255,255,255,.82);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(238,243,255,.55));box-shadow:0 12px 26px rgba(50,65,122,.075)}
.table-wrap.is-stacked tbody tr:hover{background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(236,244,255,.7))}
.table-wrap.is-stacked td{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px dashed rgba(120,140,190,.2);font-size:13px;text-align:right}
.table-wrap.is-stacked td:last-child{border-bottom:0;padding-bottom:0}
.table-wrap.is-stacked td:before{content:attr(data-label);flex:0 0 auto;color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;text-align:left}
.table-wrap.is-stacked td:first-child{display:block;padding:0 0 10px;margin-bottom:6px;border-bottom:1px solid rgba(120,140,190,.22);text-align:left;font-size:15px}
.table-wrap.is-stacked td:first-child:before{content:none}
.table-wrap.is-stacked td .link-cell{max-width:62%;text-align:right}
.table-wrap.is-stacked td.num-cell{font-size:15px;font-weight:700}
}

/* R3 - SaaS entry: the sign-in screen adopts the same command-center material language as Page 1. */
.login-wrap{align-items:center;padding:52px;background:#04122a;isolation:isolate}
.login-wrap:before{content:"";position:absolute;inset:0;z-index:-3;background:linear-gradient(122deg,#061a36 0%,#0b315d 37%,#283681 70%,#4b287d 100%)}
.login-wrap:after{content:"";position:absolute;inset:-6%;z-index:-2;pointer-events:none;filter:blur(3px);will-change:transform;background:radial-gradient(circle at 24% 20%,rgba(96,219,255,.34),transparent 30%),radial-gradient(circle at 76% 74%,rgba(150,88,255,.32),transparent 33%),radial-gradient(circle at 88% 12%,rgba(255,160,205,.16),transparent 26%);animation:auroraFloatA 22s ease-in-out infinite alternate}
.login-wrap>.login-grid{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.42;background-image:linear-gradient(rgba(143,210,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(143,210,255,.14) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:radial-gradient(circle at 44% 46%,#000 0%,transparent 76%);mask-image:radial-gradient(circle at 44% 46%,#000 0%,transparent 76%)}
.login-editorial-context{color:#eff8ff}.lec-kicker{color:#98e8ff}.login-editorial-context p{color:rgba(231,246,255,.78)}.lec-index{color:rgba(227,245,255,.6);border-top-color:rgba(157,217,255,.3)}
.login-editorial-context:before{content:"";display:block;width:52px;height:2px;margin-bottom:22px;background:linear-gradient(90deg,#8ff0ff,#9878ff);box-shadow:0 0 18px rgba(143,240,255,.55)}
.login-card{border:1px solid rgba(207,236,255,.3);border-radius:20px;padding:36px 34px 30px;background:linear-gradient(150deg,rgba(255,255,255,.95),rgba(238,243,255,.87));box-shadow:0 34px 78px rgba(2,10,40,.46),inset 0 1px 0 rgba(255,255,255,.7);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}
.login-card:before{content:"";position:absolute;inset:0;border-radius:20px;pointer-events:none;border:1px solid rgba(255,255,255,.62);-webkit-mask-image:linear-gradient(150deg,#000,transparent 62%);mask-image:linear-gradient(150deg,#000,transparent 62%)}
.login-card .logo-mark{background:linear-gradient(135deg,#4b8ef0,#7d5cf0);box-shadow:0 8px 18px rgba(74,110,232,.32)}
.login-card .logo-tag{color:#5a6ad2}
.login-card .btn-primary{background:linear-gradient(135deg,#3f79e0,#6f4fe0);box-shadow:0 10px 24px rgba(64,92,214,.3)}.login-card .btn-primary:hover{background:linear-gradient(135deg,#356ad2,#6142d4)}
.login-card .field input,.login-card .field select,.login-card .field textarea{background:rgba(255,255,255,.72);border-color:rgba(148,166,222,.4)}
#mfLangPill{background:rgba(255,255,255,.9);border-color:rgba(168,190,240,.6);color:#33406e}
@media (max-width:900px){.login-wrap{flex-direction:column;justify-content:flex-start;align-items:stretch;padding:30px}.login-editorial-context{width:100%;max-width:none;position:relative;left:auto;top:auto;transform:none;margin:0 0 26px}.login-card{margin-left:0;max-width:none;width:100%}}
@media (max-width:720px){.login-wrap{flex-direction:column;justify-content:flex-start;align-items:stretch;padding:22px 18px 34px;background:#04122a}.login-wrap:before{background:linear-gradient(150deg,#061a36 0%,#0e3565 48%,#3a2a74 100%)}.login-wrap:after{inset:-12%}.login-editorial-context strong{font-size:40px}.login-card{padding:26px 20px 22px;border-radius:16px}.login-card:before{border-radius:16px}.login-grid{opacity:.3}}
@media (prefers-reduced-motion:reduce){.login-wrap:after{animation:none}}

/* R4 - unified dark workspace: the signed-in product stays in the same SaaS atmosphere as the entry screen. */
.app{--bg:#07142c;--surface:#102449;--ink:#eef6ff;--muted:#9aafd0;--line:rgba(151,190,235,.2);--line-2:rgba(151,190,235,.11);--brand:#8feaff;--brand-2:#a98aff;--brand-soft:rgba(102,151,255,.18);--ok:#7bf0c5;--ok-soft:rgba(74,215,169,.16);--warn:#ffd17a;--warn-soft:rgba(255,190,91,.15);--danger:#ff9eaf;--danger-soft:rgba(255,103,139,.16);--shadow:0 18px 48px rgba(0,6,28,.25);background:#07142c;color:var(--ink)}
.app:before{opacity:.72;background:radial-gradient(circle at 14% 18%,rgba(91,224,255,.25),rgba(77,124,255,.12) 34%,transparent 68%);animation:auroraFloatA 20s ease-in-out infinite alternate}
.app:after{opacity:.68;background:radial-gradient(circle at 78% 72%,rgba(150,91,255,.28),rgba(255,121,201,.1) 42%,transparent 72%);animation:auroraFloatB 23s ease-in-out infinite alternate}
.app .topbar{background:rgba(5,18,46,.72);border-bottom-color:rgba(157,208,255,.18);box-shadow:0 12px 36px rgba(0,7,32,.25);color:#eef6ff}
.app .topbar:after{background:linear-gradient(90deg,#8ff0ff,#9878ff)}
.app .logo-name,.app .whoami b{color:#f3f8ff}.app .logo-tag,.app .whoami{color:#9eb5d8}
.app .logo-mark{background:linear-gradient(135deg,#4b8ef0,#7d5cf0);box-shadow:0 8px 20px rgba(74,110,232,.35)}
.app .role-chip{background:rgba(121,171,255,.16);border:1px solid rgba(146,207,255,.25);color:#a9eaff}.app .role-chip.sys{background:rgba(255,187,92,.15);border-color:rgba(255,205,124,.25);color:#ffd27e}
.app .btn-ghost{background:rgba(255,255,255,.06);border-color:rgba(168,205,255,.23);color:#eaf5ff}.app .btn-ghost:hover{background:rgba(143,234,255,.12);border-color:rgba(143,234,255,.55);color:#fff}
.app .intro-band p{background:linear-gradient(110deg,rgba(21,54,91,.68),rgba(45,36,97,.55));border-color:rgba(157,211,255,.22);border-left-color:#8feaff;box-shadow:0 14px 34px rgba(0,12,42,.18);color:#aebfda}.app .intro-band p:before{color:#8feaff}
.app .module-nav{background:transparent}.app .module-nav button{background:rgba(12,34,70,.66);border-color:rgba(148,195,242,.19);box-shadow:0 10px 25px rgba(0,10,38,.16);color:#dfeeff}.app .module-nav button .mn-name{color:#e9f3ff}.app .module-nav button .mn-idx{color:#8feaff}.app .module-nav button.active{background:linear-gradient(135deg,rgba(68,119,214,.35),rgba(119,77,215,.34));border-color:rgba(143,234,255,.42);box-shadow:0 14px 30px rgba(26,73,165,.25)}.app .module-nav button:hover{background:rgba(44,83,145,.48)}
.app .page-head{border-bottom-color:rgba(151,190,235,.2)}.app .page-head h1{color:#f4f8ff}.app .page-head p,.app .muted{color:#9aafd0}
.app .insight-note{background:linear-gradient(110deg,rgba(22,64,91,.68),rgba(47,37,93,.54));border-color:rgba(143,234,255,.22);border-left-color:#8feaff;color:#b9cbe1;box-shadow:0 14px 32px rgba(0,9,36,.18)}.app .insight-note b{color:#eaf7ff}
.app .stats{background:transparent;border-color:transparent}.app .stat{background:linear-gradient(145deg,rgba(19,47,87,.84),rgba(18,30,68,.72));border-color:rgba(157,207,255,.2);box-shadow:0 15px 34px rgba(0,9,36,.22);color:#edf6ff}.app .stat:first-child{background:linear-gradient(135deg,rgba(31,105,140,.88),rgba(57,55,143,.9));border-color:rgba(151,232,255,.35)}.app .stat .k{color:#9db4d4}.app .stat .v{color:#f6fbff}.app .stat.accent .v{color:#9aeaff}.app .stat.ok .v{color:#7bf0c5}.app .stat:after{border-color:rgba(143,234,255,.2);background:radial-gradient(circle at 38% 38%,rgba(143,234,255,.12),transparent 58%)}
.app .acct-grid,.app .board,.app .post-grid{background:transparent;border-color:transparent}.app .acct-card,.app .card,.app .post-tile,.app .cal-card,.app .detail-card,.app .dir-details{background:linear-gradient(145deg,rgba(19,48,88,.78),rgba(20,29,67,.72));border-color:rgba(157,207,255,.2);box-shadow:0 15px 34px rgba(0,9,36,.2);color:#ecf5ff}.app .acct-card:first-child{background:linear-gradient(145deg,rgba(28,89,110,.78),rgba(42,46,107,.75))}.app .acct-card:hover,.app .post-tile:hover{background:linear-gradient(145deg,rgba(31,78,125,.88),rgba(53,43,111,.82));box-shadow:0 20px 42px rgba(0,9,36,.34)}.app .acct-name,.app .card h3,.app .post-tile h3{color:#f0f7ff}.app .acct-hint{border-top-color:rgba(157,207,255,.17)}
.app .chip{background:rgba(177,207,255,.12);border-color:rgba(177,207,255,.18);color:#c8dcf4}.app .chip.plat{background:rgba(112,207,255,.16);color:#9aeaff}.app .metric-slot{background:rgba(255,255,255,.06);border-color:rgba(157,207,255,.2);color:#bdd0e8}
.app .table-wrap{background:rgba(11,31,65,.68);border-color:rgba(157,207,255,.2);box-shadow:0 15px 34px rgba(0,9,36,.2)}.app .table-wrap th{background:rgba(34,72,115,.7);color:#bcd2ed}.app .table-wrap td{color:#eaf3ff;border-bottom-color:rgba(157,207,255,.13)}.app .table-wrap tbody tr:hover{background:rgba(64,115,161,.22)}.app .table-wrap.is-stacked tbody tr{background:linear-gradient(145deg,rgba(19,48,88,.9),rgba(24,33,72,.86));border-color:rgba(157,207,255,.22);box-shadow:0 12px 28px rgba(0,9,36,.25)}.app .table-wrap.is-stacked td:before{color:#89a6ca}.app .table-wrap.is-stacked td:first-child{border-bottom-color:rgba(157,207,255,.2)}
.app .tabs{background:rgba(12,34,70,.66);border-color:rgba(157,207,255,.18)}.app .tab{color:#a8bdd9}.app .tab.active{background:linear-gradient(135deg,#416dd3,#6f4ed6);color:#fff;box-shadow:0 8px 18px rgba(64,91,208,.28)}
.app .progress-block{background:rgba(23,54,96,.62);border-color:rgba(157,207,255,.17)}.app .bar{background:rgba(157,207,255,.16)}.app .bar i{background:linear-gradient(90deg,#54d5ed,#7f70e9,#e082d1)}.app .stage .lbl{color:#99afd0}.app .stage-line{background:rgba(157,207,255,.22)}
.app .calendar,.app .cal-head,.app .cal-cell{background:rgba(13,35,71,.7);border-color:rgba(157,207,255,.16);color:#eaf3ff}.app .cal-cell.muted{color:#667fa5}.app .cal-num{color:#dbeaff}.app .cal-cell.today{background:rgba(73,133,215,.3);border-color:rgba(143,234,255,.5)}
.app .empty,.app .insight-foot{color:#9aafd0;border-color:rgba(157,207,255,.17)}
.app .toast{background:#122b55;color:#f5fbff;border:1px solid rgba(143,234,255,.25)}
@media(prefers-reduced-motion:reduce){.app:before,.app:after{animation:none}}

/* R4.1 - specificity overrides: page-specific R2 glass rules must not bring pale cards back into the dark workspace. */
body[data-saas-page="external"] .page-head,body[data-saas-page="tracker"] .page-head{background:linear-gradient(122deg,#0a315b,#143f76 55%,#3e2c83);border-color:rgba(143,234,255,.29);color:#fff}
body[data-saas-page="external"] .page-head p,body[data-saas-page="tracker"] .page-head p{color:#c7d8ee}body[data-saas-page="external"] .page-head .btn,body[data-saas-page="tracker"] .page-head .btn{background:rgba(255,255,255,.09);color:#eff8ff;border-color:rgba(205,238,255,.35)}
body[data-saas-page="external"] .feed-bar{background:linear-gradient(145deg,rgba(15,43,80,.88),rgba(25,33,77,.84));border-color:rgba(157,207,255,.22);box-shadow:0 14px 30px rgba(0,9,36,.22)}
body[data-saas-page="external"] .post-tile{background:linear-gradient(145deg,rgba(22,58,103,.92),rgba(29,35,78,.9));border-color:rgba(157,207,255,.24);color:#edf6ff;box-shadow:0 15px 32px rgba(0,9,36,.24)}
body[data-saas-page="external"] .post-tile:before{background:linear-gradient(90deg,#65d9ee,#8477f1,#d682ea)}body[data-saas-page="external"] .post-tile:hover{background:linear-gradient(145deg,rgba(31,81,132,.97),rgba(51,39,105,.94));box-shadow:0 22px 42px rgba(0,6,32,.38)}
body[data-saas-page="external"] .post-tile .post-acct-handle,body[data-saas-page="external"] .post-tile .post-meta,body[data-saas-page="external"] .post-tile .post-sub,body[data-saas-page="external"] .post-tile .muted{color:#9fb7d8}body[data-saas-page="external"] .post-tile .chip{background:rgba(208,226,255,.14);border-color:rgba(208,226,255,.2);color:#d9e8fa}
body[data-saas-page="external"] .win-switch{background:rgba(5,18,46,.58);border-color:rgba(157,207,255,.2)}body[data-saas-page="external"] .win-btn{color:#afc2dd}body[data-saas-page="external"] .win-btn.active{background:linear-gradient(135deg,#4d76db,#6e57d7);color:#fff}
body[data-saas-page="tracker"] .tabs{background:rgba(12,34,70,.72);border-color:rgba(157,207,255,.2)}body[data-saas-page="tracker"] .tab{color:#aabfda}body[data-saas-page="tracker"] .tab.active{background:linear-gradient(135deg,#4c72d9,#704fd5);color:#fff}
body[data-saas-page="tracker"] .card{background:linear-gradient(145deg,rgba(19,48,88,.86),rgba(20,29,67,.82));border-color:rgba(157,207,255,.22);color:#edf6ff}body[data-saas-page="tracker"] .progress-block{background:rgba(23,54,96,.72);border-color:rgba(157,207,255,.18)}

/* R4.2 — mobile density repair: keep the command header and page switcher inside the usable phone width. */
@media (max-width:560px){
  .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 8px;padding:12px 14px 13px;align-items:center}
  .topbar .logo{min-width:0;gap:9px}
  .topbar .logo-name{min-width:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar .logo-mark{width:30px;height:30px}
  .topbar .role-chip{justify-self:end;font-size:9px;padding:4px 7px;letter-spacing:.07em}
  .topbar .whoami,.topbar .spacer{display:none}
  .topbar #managementLink,.topbar #profileBtn,.topbar #logoutBtn{grid-row:2;min-width:0;width:100%;padding:9px 6px;font-size:11px;line-height:1.2;white-space:normal;text-align:center}
  .topbar #managementLink{grid-column:1}.topbar #profileBtn{grid-column:2}.topbar #logoutBtn{grid-column:1 / -1}
  .intro-band,.module-nav{width:100%;max-width:1340px;margin-left:0;margin-right:0}
  .intro-band{padding:14px 14px 0}.intro-band p{max-width:none;font-size:12px;line-height:1.58;padding:12px 14px 12px 17px}
  .module-nav{display:grid;grid-template-columns:1fr;margin-top:14px;padding:0 14px;gap:7px}
  .module-nav button{width:100%;min-height:58px;padding:10px 12px}.module-nav button .mn-name{font-size:13px}
  .main{padding:22px 14px calc(54px + env(safe-area-inset-bottom))}
  .tabs{width:100%;max-width:100%;margin-bottom:14px;scroll-padding-inline:8px}
}
@media (min-width:361px) and (max-width:560px){
  .topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"logo role" "manage profile" "logout logout"}
  .topbar .logo{grid-area:logo}.topbar .role-chip{grid-area:role}.topbar #managementLink{grid-area:manage}.topbar #profileBtn{grid-area:profile}.topbar #logoutBtn{grid-area:logout}
}
/* R4.3 — Safari/iPhone containment: repair actual narrow-screen clipping; do not merely hide a wide layout. */
@media (max-width:560px){
  .app,.intro-band,.module-nav,.main,.main>*{min-width:0;max-width:100%}
  .intro-band{overflow:hidden}
  .intro-band p,.page-head p,.saas-command-center .saas-copy{overflow-wrap:anywhere;word-break:normal}
  .module-nav button{min-width:0}
  .saas-command-center{width:100%;max-width:100%}
  .saas-command-center h1{font-size:clamp(34px,10.8vw,43px);overflow-wrap:anywhere}
  .saas-command-center .stats{min-width:0}
  .topbar .btn{min-width:0}
  #mfLangPill{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));}
}
/* R4.4 — on short mobile viewports, the language control must not cover the tracker tabs or Safari's bottom controls. */
@media (max-width:560px){
  #mfLangPill{bottom:max(82px,calc(env(safe-area-inset-bottom) + 64px));right:max(12px,env(safe-area-inset-right));}
}
/* R4.5 — mobile header actions stay on one deliberate row, instead of making the page look like a desktop toolbar wrapped by accident. */
@media (max-width:560px){
  .topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"logo role" "manage profile logout";gap:9px 7px}
  .topbar .logo{grid-area:logo}.topbar .role-chip{grid-area:role}
  .topbar #managementLink{grid-area:manage}.topbar #profileBtn{grid-area:profile}.topbar #logoutBtn{grid-area:logout}
  .topbar #managementLink,.topbar #profileBtn,.topbar #logoutBtn{grid-row:auto;grid-column:auto;font-size:10.5px;padding:9px 5px;white-space:nowrap}
  .topbar #managementLink{font-size:10px}
}
@media (max-width:374px){
  .topbar{gap:8px 5px}.topbar #managementLink,.topbar #profileBtn,.topbar #logoutBtn{font-size:9.5px;padding-inline:3px}.topbar #managementLink{font-size:9px}
}
/* R4.6 — cyber signal layer: higher-tech colour depth without changing data or navigation behaviour. */
.app{background:radial-gradient(900px 560px at -14% 18%,rgba(35,214,255,.17),transparent 62%),radial-gradient(720px 540px at 110% 42%,rgba(134,78,255,.19),transparent 65%),radial-gradient(580px 460px at 46% 110%,rgba(47,102,255,.13),transparent 68%),#06132d}
.app:before{opacity:.84;filter:blur(0);background:radial-gradient(circle at 18% 24%,rgba(79,231,255,.34),rgba(57,118,255,.14) 34%,transparent 70%)}
.app:after{opacity:.76;filter:blur(0);background:radial-gradient(circle at 76% 62%,rgba(137,83,255,.34),rgba(255,101,202,.11) 43%,transparent 73%)}
.app .topbar{background:linear-gradient(100deg,rgba(4,17,43,.92),rgba(10,30,72,.8));border-bottom-color:rgba(111,228,255,.28);box-shadow:0 14px 34px rgba(0,4,28,.42),inset 0 -1px 0 rgba(139,116,255,.16)}
.app .topbar:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.34;background-image:linear-gradient(90deg,rgba(120,231,255,.13) 1px,transparent 1px);background-size:58px 100%;mask-image:linear-gradient(90deg,#000,transparent 75%)}
.app .intro-band p{background:linear-gradient(110deg,rgba(8,40,84,.9),rgba(29,30,89,.78));border-color:rgba(111,228,255,.34);box-shadow:inset 3px 0 0 #74e8ff,0 18px 38px rgba(0,8,42,.27)}
.app .module-nav button{background:linear-gradient(145deg,rgba(10,38,78,.88),rgba(14,26,66,.82));border-color:rgba(111,218,255,.26);box-shadow:inset 0 1px 0 rgba(188,238,255,.11),0 12px 26px rgba(0,7,34,.24)}
.app .module-nav button:after{content:"";position:absolute;bottom:0;left:14px;right:14px;height:1px;background:linear-gradient(90deg,transparent,rgba(103,235,255,.8),transparent);opacity:.62}
.app .module-nav button.active{background:linear-gradient(135deg,rgba(19,86,150,.72),rgba(78,44,155,.72));border-color:rgba(108,239,255,.65);box-shadow:inset 0 1px 0 rgba(203,249,255,.26),0 0 0 1px rgba(94,213,255,.1),0 16px 35px rgba(28,85,197,.35)}
.app .module-nav button.active .mn-idx{color:#a8f5ff;text-shadow:0 0 12px rgba(102,234,255,.75)}
.app .saas-command-center{border-color:rgba(109,232,255,.4);background:linear-gradient(122deg,#041a3a 0%,#0a3b71 39%,#302370 71%,#462073 100%);box-shadow:0 30px 68px rgba(0,6,42,.48),inset 0 1px 0 rgba(192,245,255,.23)}
.app .saas-command-center:after{opacity:.56;background-image:linear-gradient(rgba(113,231,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(113,231,255,.18) 1px,transparent 1px),radial-gradient(circle at 72% 50%,rgba(226,231,255,.25) 1px,transparent 1px);background-size:30px 30px,30px 30px,12px 12px}
.app .stat,.app .acct-card,.app .card,.app .post-tile,.app .cal-card,.app .detail-card,.app .dir-details{border-color:rgba(112,223,255,.27);box-shadow:inset 0 1px 0 rgba(202,245,255,.1),0 16px 36px rgba(0,7,37,.28)}
.app .stat{background:linear-gradient(145deg,rgba(13,55,103,.89),rgba(20,27,73,.84))}.app .stat:first-child{background:linear-gradient(135deg,rgba(17,108,148,.94),rgba(57,46,150,.92))}
.app .card,.app .acct-card,.app .post-tile{background:linear-gradient(145deg,rgba(14,52,97,.87),rgba(21,27,71,.83))}
.app .tabs{border-color:rgba(112,223,255,.28);background:rgba(5,25,58,.8)}
.app .tab.active{background:linear-gradient(135deg,#2789e2,#7048e5);box-shadow:0 0 22px rgba(74,170,255,.3),inset 0 1px 0 rgba(230,250,255,.24)}
@media (prefers-reduced-motion:reduce){.app:before,.app:after{filter:none}}
/* R4.7 — hard mobile containment after on-device Safari evidence: do not let legacy desktop max-content sizing shrink or clip the mobile shell. */
@media screen and (max-width:560px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important}
  #appView.app{display:block;width:100%;max-width:100%;overflow-x:hidden}
  #appView .intro-band{display:block!important;width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;margin:0 14px!important;padding:14px 0 0!important;overflow:visible!important}
  #appView .intro-band p{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  #appView .module-nav{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;min-width:0!important;margin:14px 14px 0!important;padding:0!important;gap:8px!important;overflow:visible!important}
  #appView .module-nav button{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:none!important;white-space:normal!important}
  #appView .main{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:22px 14px calc(62px + env(safe-area-inset-bottom))!important;overflow:visible!important}
  #appView .main > *{width:100%!important;max-width:100%!important;min-width:0!important}
  #appView .saas-command-center{width:100%!important;max-width:100%!important;min-width:0!important;margin-left:0!important;margin-right:0!important;overflow:hidden!important}
  #appView .saas-command-center h1,#appView .saas-command-center .saas-copy{max-width:100%!important;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
}
/* R4.8 — cache-busted final phone shell: this rule is intentionally last so stale desktop max-content rules cannot win. */
@media screen and (max-width:560px){
  #appView.app:not(.hidden){display:block!important;width:100vw!important;max-width:100vw!important;min-width:0!important;overflow-x:hidden!important}
  #appView.app:not(.hidden) .intro-band{box-sizing:border-box!important;display:block!important;width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;margin:0 14px!important;padding:14px 0 0!important}
  #appView.app:not(.hidden) .intro-band p{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0!important;padding:12px 14px 12px 17px!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  #appView.app:not(.hidden) .module-nav{box-sizing:border-box!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;margin:14px 14px 0!important;padding:0!important;gap:8px!important}
  #appView.app:not(.hidden) .module-nav button{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:none!important}
  #appView.app:not(.hidden) .main{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding-left:14px!important;padding-right:14px!important}
  #appView.app:not(.hidden) .main>*{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important}
  #appView.app:not(.hidden) .saas-command-center{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important}
}
/* R4.9 — evidence-driven shell normalization: remove shrink-to-fit geometry and bind the signed-in surface to the viewport. */
body:has(#appView:not(.hidden)){background:#06132d!important;color:#eef6ff!important}
#appView.app:not(.hidden){background:#06132d!important;color:#eef6ff!important;width:100%!important;max-width:none!important;min-width:0!important;overflow-x:hidden!important}
@media screen and (max-width:560px){
  body:has(#appView:not(.hidden)){width:100vw!important;max-width:100vw!important;overflow-x:hidden!important}
  #appView.app:not(.hidden) .intro-band{width:auto!important;max-width:none!important;margin:0 14px!important;padding:14px 0 0!important}
  #appView.app:not(.hidden) .intro-band p{width:auto!important;max-width:none!important;margin:0!important;padding:12px 14px 12px 17px!important;font-size:clamp(12px,3.25vw,14px)!important;line-height:1.58!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important}
  #appView.app:not(.hidden) .module-nav{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:auto!important;max-width:none!important;margin:14px 14px 0!important;padding:0!important;gap:8px!important;align-self:stretch!important}
  #appView.app:not(.hidden) .module-nav button{width:auto!important;max-width:none!important;min-width:0!important;justify-self:stretch!important;padding:11px 14px!important;overflow:hidden!important}
  #appView.app:not(.hidden) .module-nav button .mn-name{display:block!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.25!important}
  #appView.app:not(.hidden) .main{width:auto!important;max-width:none!important;margin:0 14px!important;padding:22px 0 calc(86px + env(safe-area-inset-bottom))!important}
  #appView.app:not(.hidden) .main>*{width:100%!important;max-width:100%!important;min-width:0!important}
  #appView.app:not(.hidden) .main .tabs{width:100%!important;max-width:100%!important;overflow-x:auto!important;display:flex!important;position:relative!important;bottom:auto!important;white-space:nowrap!important}
  #appView.app:not(.hidden) .saas-command-center{width:100%!important;max-width:100%!important;margin:0!important;overflow:hidden!important}
}
/* R4.10 — one final cascade authority for the actual desktop and iPhone evidence. */
#appView.app:not(.hidden){background:#06132d!important;color:#eef6ff!important}
#appView.app:not(.hidden) .topbar{background:linear-gradient(100deg,rgba(4,17,43,.96),rgba(10,30,72,.9))!important;color:#eef6ff!important}
#appView.app:not(.hidden) .intro-band p{color:#c9d9ed!important}
#appView.app:not(.hidden) .module-nav button{color:#eaf5ff!important}
#appView.app:not(.hidden) .module-nav button .mn-name{color:#f3f8ff!important}
@media screen and (min-width:561px){
  #appView.app:not(.hidden) .intro-band{width:100%!important;max-width:1340px!important;margin:0 auto!important;padding:18px 28px 0!important}
  #appView.app:not(.hidden) .intro-band p{max-width:100%!important}
  #appView.app:not(.hidden) .module-nav{width:100%!important;max-width:1340px!important;margin:18px auto 0!important;padding:0 28px!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #appView.app:not(.hidden) .module-nav button{width:100%!important;min-width:0!important}
  #appView.app:not(.hidden) .main{width:100%!important;max-width:1340px!important;margin:0 auto!important}
}
@media screen and (max-width:560px){
  #appView.app:not(.hidden) .intro-band p{overflow:hidden!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:7!important}
  #appView.app:not(.hidden) .saas-command-center{padding:24px 18px 22px!important}
  #appView.app:not(.hidden) .saas-command-center .saas-copy{display:block!important;width:100%!important;max-width:100%!important;overflow:hidden!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;line-height:1.55!important}
  #appView.app:not(.hidden) .saas-command-center .stats{width:100%!important;max-width:100%!important;min-width:0!important}
  #appView.app:not(.hidden) .tabs{scrollbar-width:none!important;-webkit-overflow-scrolling:touch!important;padding-right:32px!important}
  #appView.app:not(.hidden) .tabs::-webkit-scrollbar{display:none!important}
  #mfLangPill{position:fixed!important;right:12px!important;bottom:calc(env(safe-area-inset-bottom) + 104px)!important;z-index:4000!important}
}
/* Emergency live-shell patch: applies to legacy R72/R73 documents still held open by a browser. */
@media (max-width:1200px){
  html,body{max-width:100vw!important;overflow-x:hidden!important}
  #appView.app:not(.hidden){display:block!important;width:100vw!important;max-width:100vw!important;overflow-x:hidden!important}
  #appView.app:not(.hidden) .intro-band,#appView.app:not(.hidden) .module-nav,#appView.app:not(.hidden) .main{box-sizing:border-box!important;width:100vw!important;max-width:100vw!important;margin:0!important;padding-left:16px!important;padding-right:16px!important}
  #appView.app:not(.hidden) .intro-band p{box-sizing:border-box!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:118px!important;overflow:hidden!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  #appView.app:not(.hidden) .module-nav{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin-top:14px!important}
  #appView.app:not(.hidden) .module-nav button{box-sizing:border-box!important;width:100%!important;min-height:64px!important;margin:0!important}
  #appView.app:not(.hidden) .main{padding-top:22px!important;padding-bottom:210px!important}
  #appView.app:not(.hidden) .saas-command-center{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0!important;overflow:hidden!important}
  #appView.app:not(.hidden) .saas-command-center .saas-copy{max-height:3.1em!important;overflow:hidden!important;word-break:break-word!important;overflow-wrap:anywhere!important}
  #appView.app:not(.hidden) .tabs{position:relative!important;inset:auto!important;width:100%!important;max-width:100%!important;margin-bottom:112px!important;overflow-x:auto!important}
  #mfLangPill{display:none!important}
  #loginView #registerHeaderBtn{display:flex!important;visibility:visible!important;opacity:1!important;width:100%!important;margin:14px 0 12px!important;padding:12px 14px!important;border:2px solid #6366e9!important;border-radius:10px!important;background:#eef0ff!important;color:#4547bd!important;font-size:14px!important;font-weight:800!important;text-align:left!important}
}

/* Emergency compatibility patch: visible static registration works even when a browser retains an older app script. */
#loginView #registerHeaderBtn{display:flex!important;align-items:center!important;justify-content:flex-start!important;visibility:visible!important;opacity:1!important;width:100%!important;min-height:48px!important;margin:14px 0 12px!important;padding:12px 14px!important;border:2px solid #6366e9!important;border-radius:10px!important;background:#eef0ff!important;color:#4547bd!important;font:800 14px/1.25 "Segoe UI",Arial,sans-serif!important;text-decoration:none!important;box-shadow:0 8px 20px rgba(82,101,216,.12)!important}
#loginView #registerHeaderBtn span{font-size:10px!important;letter-spacing:.14em!important;margin-right:10px!important;opacity:.75!important}
/* R73.4 hard visual viewport fallback. */
@media screen and (max-width:1100px){html,body{width:100vw!important;max-width:100vw!important;overflow-x:hidden!important}#appView.app:not(.hidden){display:block!important;width:100vw!important;max-width:100vw!important;overflow-x:hidden!important}#appView.app:not(.hidden) .intro-band,#appView.app:not(.hidden) .module-nav,#appView.app:not(.hidden) .main{box-sizing:border-box!important;width:100vw!important;max-width:100vw!important;margin:0!important;padding-left:16px!important;padding-right:16px!important}#appView.app:not(.hidden) .intro-band p{box-sizing:border-box!important;width:100%!important;max-width:100%!important;max-height:118px!important;overflow:hidden!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}#appView.app:not(.hidden) .module-nav{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin-top:14px!important}#appView.app:not(.hidden) .module-nav button{width:100%!important;min-height:64px!important}#appView.app:not(.hidden) .main{padding-bottom:210px!important}#mfLangPill{display:none!important}}
/* Final portrait screenshot containment. */
@media (orientation:portrait){html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}#appView.app:not(.hidden){display:block!important;width:100%!important;max-width:100%!important;overflow-x:hidden!important}.intro-band,#appView.app:not(.hidden) .intro-band,.module-nav,#appView.app:not(.hidden) .module-nav,.main,#appView.app:not(.hidden) .main{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0!important;padding-left:16px!important;padding-right:16px!important}.intro-band p,#appView.app:not(.hidden) .intro-band p{box-sizing:border-box!important;width:100%!important;max-width:100%!important;max-height:140px!important;overflow:hidden!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;line-height:1.48!important}.module-nav,#appView.app:not(.hidden) .module-nav{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.module-nav button{width:100%!important;min-height:64px!important}.main{padding-bottom:220px!important}.tabs{position:relative!important;inset:auto!important;margin-bottom:120px!important;overflow-x:auto!important}#mfLangPill{display:none!important}}
/* Same canonical portrait fix retained in current static CSS entry. */
@media screen and (orientation:portrait) and (max-width:1200px){#appView.app:not(.hidden){width:100vw!important;max-width:100vw!important;overflow-x:hidden!important}.intro-band,#appView.app:not(.hidden) .intro-band,.module-nav,#appView.app:not(.hidden) .module-nav,.main,#appView.app:not(.hidden) .main{box-sizing:border-box!important;width:100vw!important;max-width:100vw!important;margin:0!important;padding-left:16px!important;padding-right:16px!important}#appView.app:not(.hidden) .module-nav{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.module-nav button{width:100%!important;min-height:64px!important}#mfLangPill{display:none!important}}
