/* ===========================================================================
   FaultWorx — shared stylesheet
   Light "paper" theme = CMS surfaces. Dark theme (.theme-dark) = candidate console.
   =========================================================================== */

:root{
  /* brand tokens (light/paper) */
  --bg:#f4f1ea;
  --panel:#fbfaf6;
  --ink:#1c1b18;
  --ink-2:#4a463e;
  --muted:#857f72;
  --line:#ddd6c8;
  --line-2:#cbc3b1;
  --accent:#c2410c;            /* burnt orange */
  --accent-soft:#fde3d3;
  --accent-hover:#a3370a;
  --build:#1d6a4f;             /* healthy green */
  --build-soft:#d6ebe1;
  --break:#b4303a;             /* fault red */
  --break-soft:#f6dada;
  --valid:#2563a8;             /* signal blue */
  --valid-soft:#d9e6f5;
  --gold:#9a6b00;
  --gold-soft:#f3e6c4;
  --code-bg:#1f1d1a;
  --code-ink:#e8e3d6;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --sans:'Sora',system-ui,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.5;min-height:100vh}
body.paper::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.4;z-index:0;
  background-image:radial-gradient(var(--line) 0.5px,transparent 0.5px);background-size:22px 22px}
a{color:inherit;text-decoration:none}

/* ---------- wordmark / logo ---------- */
.logo{font-family:var(--mono);font-weight:700;letter-spacing:-.4px;display:inline-flex;align-items:center;gap:9px;font-size:16px}
.logo svg{display:block;width:26px;height:26px;border-radius:6px}
.logo .wm-f{color:var(--ink)}
.logo .wm-x{color:var(--accent)}

/* ---------- top nav (CMS) ---------- */
.top{position:sticky;top:0;z-index:40;background:rgba(244,241,234,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:16px;padding:0 26px;height:62px;max-width:1240px;margin:0 auto}
.nav{display:flex;gap:3px;margin-left:18px;flex-wrap:wrap}
.nav a{font-family:var(--mono);font-size:12px;color:var(--muted);padding:7px 12px;border-radius:7px}
.nav a.on{background:var(--ink);color:#fff}
.nav a:hover:not(.on){color:var(--ink)}
.sp{flex:1}
.who{font-family:var(--mono);font-size:11.5px;color:var(--muted)}

/* ---------- buttons ---------- */
.btn{font-family:var(--sans);font-weight:600;font-size:13px;padding:9px 16px;border-radius:7px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:8px}
.btn:hover{border-color:var(--ink-2)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-lg{font-size:15px;padding:13px 24px}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}

/* ---------- layout ---------- */
.wrap{max-width:1240px;margin:0 auto;padding:28px 26px 70px;position:relative;z-index:1}
.phead{display:flex;align-items:flex-end;gap:18px;margin-bottom:22px;flex-wrap:wrap}
.phead h1{font-size:26px;font-weight:700;letter-spacing:-.6px}
.phead .sub{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin-top:3px}
.stats{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:9px 15px;text-align:center;min-width:78px}
.stat .n{font-family:var(--mono);font-size:19px;font-weight:700}
.stat .l{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.stat.accent .n{color:var(--accent)}

/* ---------- toolbar / filters ---------- */
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.search{position:relative;flex:1;min-width:220px}
.search input{width:100%;font-family:var(--mono);font-size:13px;padding:10px 12px 10px 34px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink)}
.search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search .mag{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-family:var(--mono);font-size:13px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.fchip{font-family:var(--mono);font-size:11.5px;padding:7px 12px;border-radius:7px;border:1px solid var(--line-2);background:#fff;cursor:pointer;color:var(--ink-2);transition:.15s}
.fchip:hover{border-color:var(--ink-2)}
.fchip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.fchip .ct{opacity:.55;margin-left:5px}

/* ---------- scenario cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
@media(max-width:1080px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.cards{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:15px;transition:.15s;position:relative;overflow:hidden}
.card.click{cursor:pointer}
.card.click:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--diff-c,var(--muted))}
.card.l1{--diff-c:var(--build)} .card.l2{--diff-c:var(--gold)} .card.l3{--diff-c:var(--break)}
.card .ct-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.difftag{font-family:var(--mono);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:2px 7px;border-radius:4px;background:var(--line);color:var(--ink-2)}
.card.l1 .difftag{background:var(--build-soft);color:var(--build)}
.card.l2 .difftag{background:var(--gold-soft);color:var(--gold)}
.card.l3 .difftag{background:var(--break-soft);color:var(--break)}
.remote{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;padding:2px 7px;border-radius:4px;background:var(--valid-soft);color:var(--valid);margin-left:auto;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.local{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;padding:2px 7px;border-radius:4px;background:var(--line);color:var(--muted);margin-left:auto}
.fmt-badge{font-family:var(--mono);font-size:9px;letter-spacing:.4px;padding:2px 7px;border-radius:4px;background:var(--ink);color:#fff}
.card h3{font-size:14px;font-weight:600;letter-spacing:-.2px;margin-bottom:5px;line-height:1.35}
.card .slug{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-bottom:11px;word-break:break-all}
.card .skills{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.sk{font-family:var(--mono);font-size:10px;padding:2px 7px;border-radius:11px;border:1px solid var(--line);color:var(--ink-2);background:#fff}
.card .foot{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:10.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;flex-wrap:wrap}
.card .foot .it{display:flex;align-items:center;gap:4px}
.quality-tag{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.lifedots{display:flex;gap:3px;margin-left:auto}
.ld{width:7px;height:7px;border-radius:2px}
.ld.s{background:var(--build)} .ld.b{background:var(--break)} .ld.v{background:var(--line-2)}
.ld.v.on{background:var(--valid)}

/* ---------- generic table ---------- */
.tbl{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:11px;overflow:hidden}
.tbl th,.tbl td{text-align:left;padding:11px 14px;font-size:13px;border-bottom:1px solid var(--line)}
.tbl th{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);background:var(--bg)}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td{background:var(--accent-soft)}
.pill{font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:11px;text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}
.pill.ok{background:var(--build-soft);color:var(--build);border-color:transparent}
.pill.bad{background:var(--break-soft);color:var(--break);border-color:transparent}
.pill.info{background:var(--valid-soft);color:var(--valid);border-color:transparent}
.pill.warn{background:var(--gold-soft);color:var(--gold);border-color:transparent}

/* ---------- panels / generic ---------- */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px}
.panel h2{font-size:16px;margin-bottom:12px;letter-spacing:-.3px}
.section-h{display:flex;align-items:center;gap:11px;padding:0 2px 11px;border-bottom:1.5px solid var(--line);margin-bottom:14px;flex-wrap:wrap}
.section-h h2{font-size:15px;font-weight:700}
.section-h .gmeta{font-family:var(--mono);font-size:11px;color:var(--muted)}
.muted{color:var(--muted)}
.mono{font-family:var(--mono)}
.row-between{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* ---------- forms ---------- */
.form-row{margin-bottom:14px}
.form-row label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:6px}
.form-row input,.form-row select,.form-row textarea{width:100%;font-family:var(--sans);font-size:14px;padding:10px 12px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink)}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-row .help{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:5px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:620px){.form-grid{grid-template-columns:1fr}}

/* ---------- exam builder ---------- */
.builder-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
@media(max-width:900px){.builder-grid{grid-template-columns:1fr}}
.builder-actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}
.order-item{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-bottom:8px}
.order-item.dragging{opacity:.5}
.order-item.drop-target{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.order-item .ord-pos{font-family:var(--mono);font-size:12px;font-weight:700;color:#fff;background:var(--ink);width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.order-item .ord-grip{color:var(--muted);cursor:grab;font-size:13px;flex-shrink:0}
.order-item .ord-main{flex:1;min-width:0}
.order-item .ord-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-item .ord-sub{font-size:10.5px;color:var(--muted);margin-top:2px}
.order-item .ord-btns{display:flex;gap:5px;flex-shrink:0}
.order-item .ord-btns .btn{padding:4px 9px;font-size:12px}
.lib-item{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-bottom:8px;border-left:3px solid var(--diff-c,var(--muted))}
.lib-item.l1{--diff-c:var(--build)} .lib-item.l2{--diff-c:var(--gold)} .lib-item.l3{--diff-c:var(--break)}
.lib-item .lib-main{flex:1;min-width:0}
.lib-item .lib-title{font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.lib-item .lib-sub{font-size:10.5px;color:var(--muted);margin-top:3px}

/* ---------- banners / states ---------- */
.note{font-family:var(--mono);font-size:12.5px;padding:12px 16px;border-radius:9px;border:1px solid var(--line);background:var(--panel);margin-bottom:18px}
.note.err{background:var(--break-soft);border-color:var(--break);color:var(--break)}
.note.ok{background:var(--build-soft);border-color:var(--build);color:var(--build)}
.placeholder{border:1.5px dashed var(--line-2);border-radius:12px;padding:34px;text-align:center;color:var(--muted);font-family:var(--mono);font-size:12.5px;background:var(--panel)}
.loading{padding:34px;text-align:center;color:var(--muted);font-family:var(--mono);font-size:13px}
.empty{padding:34px;text-align:center;color:var(--muted);font-family:var(--mono);font-size:13px}

/* ---------- centered auth card ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;z-index:1}
.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:34px;width:100%;max-width:400px;box-shadow:0 12px 40px rgba(28,27,24,.08)}
.auth-card .logo{font-size:20px;margin-bottom:6px}
.auth-card .tagline{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:24px}
.auth-card .demo{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:16px;line-height:1.7;border-top:1px dashed var(--line);padding-top:14px}
.auth-card .demo code{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--accent)}

/* =====================================================================
   DARK THEME — candidate exam console
   ===================================================================== */
.theme-dark{
  --bg:#0d1117;
  --panel:#161b22;
  --panel-2:#1c232c;
  --line:#2a313c;
  --ink:#e6edf3;
  --ink-2:#cfd8e0;
  --muted:#8b98a5;
  --dim:#5c6773;
  --accent:#c2410c;            /* burnt orange primary */
  --accent-hover:#d9560f;
  --accent-dim:#3a1c0a;
  --green:#1d6a4f;             /* healthy */
  --green-bright:#34d399;
  --green-dim:#0f2a20;
  --red:#b4303a;               /* fault */
  --red-bright:#f87171;
  --red-dim:#3a1518;
  --amber:#f5b14c;
  --amber-dim:#3d2f12;
  --blue:#2563a8;
  --blue-bright:#58a6ff;
}
.theme-dark{
  background:var(--bg);color:var(--ink);font-family:var(--sans);
  background-image:
    radial-gradient(circle at 12% 0%, rgba(37,99,168,.10), transparent 40%),
    radial-gradient(circle at 90% 100%, rgba(29,106,79,.08), transparent 45%);
}

.theme-dark header{border-bottom:1px solid var(--line);background:rgba(13,17,23,.85);backdrop-filter:blur(8px);position:sticky;top:0;z-index:50}
.theme-dark .hbar{display:flex;align-items:center;gap:18px;height:64px;max-width:1180px;margin:0 auto;padding:0 20px}
.theme-dark .logo{font-size:14px}
.theme-dark .logo .wm-f{color:var(--ink)}
.theme-dark .rec{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.theme-dark .rec .dot{width:8px;height:8px;border-radius:50%;background:var(--red-bright);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(248,113,113,.5)}70%{box-shadow:0 0 0 6px rgba(248,113,113,0)}100%{box-shadow:0 0 0 0 rgba(248,113,113,0)}}
.theme-dark .progress{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:var(--muted)}
.theme-dark .pips{display:flex;gap:5px}
.theme-dark .pip{width:22px;height:4px;border-radius:2px;background:var(--line)}
.theme-dark .pip.done{background:var(--green-bright)}
.theme-dark .pip.cur{background:var(--accent)}
.theme-dark .timer{font-family:var(--mono);font-weight:600;font-size:20px;letter-spacing:1px;padding:7px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);min-width:104px;text-align:center;transition:.3s}
.theme-dark .timer .lbl{display:block;font-size:9px;color:var(--dim);letter-spacing:1.5px;font-weight:500}
.theme-dark .timer.warn{border-color:var(--amber);color:var(--amber);background:var(--amber-dim)}
.theme-dark .timer.crit{border-color:var(--red-bright);color:var(--red-bright);background:var(--red-dim);animation:flash 1s infinite}
@keyframes flash{50%{opacity:.55}}

.theme-dark .banner{display:none;background:var(--amber-dim);border-bottom:1px solid var(--amber);color:var(--amber)}
.theme-dark .banner.show{display:block}
.theme-dark .banner .bwrap{max-width:1180px;margin:0 auto;padding:9px 20px;font-family:var(--mono);font-size:12.5px;display:flex;align-items:center;gap:10px}
.theme-dark .banner.crit{background:var(--red-dim);border-color:var(--red-bright);color:var(--red-bright)}

.theme-dark main{padding:26px 0 60px}
.theme-dark .mwrap{max-width:1180px;margin:0 auto;padding:0 20px}
.theme-dark .grid{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;align-items:start}
@media(max-width:900px){.theme-dark .grid{grid-template-columns:1fr}}
.theme-dark .col{display:flex;flex-direction:column;gap:20px}

.theme-dark .dcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.theme-dark .dcard .head{padding:13px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px;background:var(--panel-2)}
.theme-dark .dcard .head h2{font-size:13px;font-weight:600;letter-spacing:.4px}
.theme-dark .dcard .head .ico{font-family:var(--mono);color:var(--accent);font-size:13px}
.theme-dark .dcard .body{padding:18px}
.theme-dark .tag{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:1px;padding:3px 8px;border-radius:5px;border:1px solid var(--line);color:var(--muted)}

.theme-dark .qhead{display:flex;align-items:center;gap:12px;margin-bottom:4px;flex-wrap:wrap}
.theme-dark .qhead .qno{font-family:var(--mono);font-size:12px;color:var(--dim)}
.theme-dark .qhead h1{font-size:21px;font-weight:700;letter-spacing:-.3px}
.theme-dark .state{font-family:var(--mono);font-size:11px;padding:3px 9px;border-radius:5px;letter-spacing:.5px;border:1px solid var(--line);color:var(--muted)}
.theme-dark .state.working{background:var(--accent-dim);color:var(--accent);border-color:#5a3010}
.theme-dark .state.broken{background:var(--red-dim);color:var(--red-bright);border-color:#5a2626}
.theme-dark .state.healthy{background:var(--green-dim);color:var(--green-bright);border-color:#2d5a3d}
.theme-dark .qintro{color:var(--muted);font-size:13.5px;margin-bottom:22px;max-width:680px}

.theme-dark .ticket .meta{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-bottom:14px;border-left:2px solid var(--line);padding-left:12px}
.theme-dark .ticket .meta b{color:var(--ink);font-weight:500}
.theme-dark .ticket-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.theme-dark .ticket .body-html{font-size:14.5px;color:#cfd8e0}
.theme-dark .ticket .body-html p{margin-bottom:12px}
.theme-dark .quality{margin-left:auto}

.theme-dark .diagram-box{background:#0a0e13;border:1px solid var(--line);border-radius:10px;padding:18px;margin-top:4px}
.theme-dark .diagram-box svg{max-width:100%;height:auto;display:block;margin:0 auto}
.theme-dark .diagram-fallback{font-family:var(--mono);font-size:11.5px;color:var(--dim);text-align:center;padding:20px}

.theme-dark .frame{aspect-ratio:16/9;background:linear-gradient(135deg,#11161d,#0a0e13);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);position:relative;overflow:hidden;text-align:center;padding:18px}
.theme-dark .frame .cap{font-family:var(--mono);font-size:11px;letter-spacing:.5px;z-index:1}
.theme-dark iframe.guac{width:100%;aspect-ratio:16/9;border:1px solid var(--line);border-radius:10px;background:#0a0e13}

.theme-dark .conn-list{list-style:none;font-family:var(--mono);font-size:12.5px}
.theme-dark .conn-list li{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.theme-dark .conn-list li:last-child{border-bottom:0}
.theme-dark .conn-list .n{color:var(--accent);font-weight:600;flex-shrink:0}
.theme-dark .conn-list b{color:var(--ink);font-weight:500}
.theme-dark .conn-list code{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--green-bright);font-size:11.5px}

.theme-dark .actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.theme-dark .dbtn{font-family:var(--sans);font-weight:600;font-size:14px;padding:12px 22px;border-radius:9px;border:1px solid transparent;cursor:pointer;transition:.18s;display:inline-flex;align-items:center;gap:9px}
.theme-dark .dbtn:active{transform:translateY(1px)}
.theme-dark .dbtn:disabled{opacity:.45;cursor:not-allowed}
.theme-dark .dbtn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.theme-dark .dbtn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 18px rgba(194,65,12,.3)}
.theme-dark .dbtn-go{background:var(--green);color:#fff;border-color:var(--green)}
.theme-dark .dbtn-go:hover:not(:disabled){background:#23805f;box-shadow:0 0 18px rgba(29,106,79,.3)}
.theme-dark .dbtn-break{background:var(--red-dim);color:var(--red-bright);border-color:#5a2626}
.theme-dark .dbtn-break:hover:not(:disabled){background:#4a2020}
.theme-dark .dbtn-ghost{background:transparent;color:var(--muted);border-color:var(--line)}
.theme-dark .dbtn-ghost:hover:not(:disabled){color:var(--ink);border-color:var(--dim)}
.theme-dark .hint{font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:12px}

.theme-dark .overlay{position:fixed;inset:0;background:rgba(6,9,13,.86);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100}
.theme-dark .overlay.show{display:flex}
.theme-dark .modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;max-width:460px;width:90%;font-family:var(--mono)}
.theme-dark .modal h3{font-family:var(--sans);font-size:17px;margin-bottom:6px;color:var(--ink)}
.theme-dark .modal .sub{color:var(--muted);font-size:12.5px;margin-bottom:18px;line-height:1.6}
.theme-dark .log{font-size:11.5px;color:var(--muted);line-height:2}
.theme-dark .log .l{opacity:0;animation:fadein .35s forwards}
.theme-dark .log .ok{color:var(--green-bright)}
.theme-dark .log .file{color:var(--blue-bright)}
@keyframes fadein{to{opacity:1}}
.theme-dark .modal .actions{margin-top:20px}

.theme-dark footer{border-top:1px solid var(--line);padding:16px 0;font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:30px}
.theme-dark footer .fwrap{max-width:1180px;margin:0 auto;padding:0 20px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.theme-dark .gate{max-width:680px;margin:40px auto}
.theme-dark .gate .dcard{text-align:left}
.theme-dark .gate-status{font-family:var(--mono);font-size:13px;color:var(--accent);letter-spacing:1px;margin-bottom:14px;text-transform:uppercase;text-align:center}
.theme-dark .spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 18px}
@keyframes spin{to{transform:rotate(360deg)}}
.theme-dark .howto{list-style:none;font-family:var(--mono);font-size:12.5px;color:var(--muted);margin-top:6px}
.theme-dark .howto li{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.theme-dark .howto li:last-child{border-bottom:0}
.theme-dark .howto .n{color:var(--accent);font-weight:600}
.theme-dark a.link{color:var(--blue-bright)}
.theme-dark .center{text-align:center}
