/* ===== Extracted from nyc_hub_beta.htm style block 1 ===== */
:root {
            --bg:#0d0f12; --bg2:#0a0c0f; --surface:#161a20; --surface2:#1e242d; --surface3:#252d38;
            --border:#2a3140; --border2:#344055;
            --amber:#f59e0b; --amber2:#fbbf24; --amber-glow:rgba(245,158,11,0.12); --amber-dim:rgba(245,158,11,0.06);
            --green:#6aad7e; --green-bg:rgba(106,173,126,0.07);
            --red:#b06060; --red-bg:rgba(176,96,96,0.07);
            --blue:#3b82f6; --blue-bg:rgba(59,130,246,0.08);
            --purple:#a855f7; --purple-bg:rgba(168,85,247,0.08);
            --slate:#64748b; --text:#e2e8f0; --text-muted:#64748b; --text-dim:#475569;
        }
        body.light-mode{--card-bg:#ffffff!important;--text:#1e293b!important;--bg:#f8fafc!important;--bg2:#f1f5f9!important;--surface:#ffffff!important;--surface2:#f1f5f9!important;--surface3:#e8edf2!important;--border:#cbd5e1!important;--border2:#94a3b8!important;--amber:#d97706!important;--amber-glow:rgba(217,119,6,0.08)!important;--amber-dim:rgba(217,119,6,0.05)!important;--green:#4a9960!important;--green-bg:rgba(74,153,96,0.10)!important;--red:#b06060!important;--red-bg:rgba(176,96,96,0.09)!important;--blue:#2f6a9a!important;--blue-bg:rgba(47,106,154,0.09)!important;--purple:#7c3aed!important;--purple-bg:rgba(124,58,237,0.06)!important;--slate:#64748b!important;--text:#0f172a!important;--text-muted:#475569!important;--text-dim:#64748b!important;}
body.light-mode{background-color:#f8fafc!important;color:#0f172a!important;}
body.light-mode header,body.light-mode .header-inner{background-color:#ffffff!important;border-color:#e2e8f0!important;}
body.light-mode .gp-card,body.light-mode .summary-strip,body.light-mode .section{
    background-color:#ffffff!important;border-color:#cbd5e1!important;}
body.light-mode h1,body.light-mode h2,body.light-mode h3,body.light-mode p,
body.light-mode .stat-val,body.light-mode .stat-label{color:#0f172a!important;}
body.light-mode .text-muted{color:#475569!important;}

        body.light-mode::before { background-image:linear-gradient(rgba(100,116,139,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(100,116,139,0.05) 1px,transparent 1px); }

        *{box-sizing:border-box;margin:0;padding:0;}
        html{scroll-behavior:smooth;}
        body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;transition:background 0.3s,color 0.3s;}
        body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(245,158,11,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(245,158,11,0.025) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;z-index:0;}

        .wrap{max-width:1280px;margin:0 auto;padding:0 28px;position:relative;z-index:1;}

        /* ── HEADER ── */
        header{border-bottom:1px solid var(--border);background:rgba(13,15,18,0.97);position:sticky;top:0;z-index:200;padding:0 28px;}
        body.light-mode header{background:rgba(241,245,249,0.97);}
        body.light-mode .gp-pct{color:#1e293b;}
        .header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:56px;}
        .logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
        .logo-bolt{width:32px;height:32px;background:transparent;border:1.5px solid var(--amber);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--amber);}
        .logo-text{font-family:'Space Mono',monospace;font-size:0.76em;color:var(--amber);letter-spacing:0.1em;text-transform:uppercase;line-height:1.2;}
        .logo-sub{font-size:0.6em;color:var(--text-muted);letter-spacing:0.05em;margin-top:1px;}
        /* ── STATS BAR (sticky below header) ── */
        .hub-stats-bar{position:sticky;top:56px;z-index:190;background:var(--surface);border-bottom:1px solid var(--border);padding:7px 28px;box-shadow:0 4px 20px rgba(0,0,0,0.25);}
        body.light-mode .hub-stats-bar{background:rgba(241,245,249,0.97);}
        .hub-stats-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:8px;}
        .h-pill{font-family:'Space Mono',monospace;font-size:0.65em;padding:5px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text-muted);flex-shrink:0;}
        .h-pill span{font-weight:700;}
        .hub-sync-spacer{flex:1;}
        /* ⚙ SETTINGS — fixed, right side, below stats-bar */
        .btn-hub-settings{
            position:fixed;right:12px;top:104px;z-index:99990;
            padding:8px 14px;border-radius:8px;
            border:1px solid var(--amber);background:var(--surface);
            color:var(--amber);cursor:pointer;
            font-family:'Space Mono',monospace;font-size:0.62em;font-weight:700;
            letter-spacing:0.08em;transition:all 0.15s;white-space:nowrap;
            box-shadow:0 2px 12px rgba(245,158,11,0.12);
            -webkit-tap-highlight-color:transparent;touch-action:manipulation;
        }
        .btn-hub-settings:hover{background:var(--amber-glow);color:var(--text);border-color:var(--amber);box-shadow:0 4px 20px rgba(245,158,11,0.18);}
        .hub-right-stats{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;margin-left:auto;}
        .hub-sync-line{display:flex;align-items:center;gap:8px;justify-content:flex-end;}
        .hub-pills-line{display:flex;align-items:center;gap:6px;justify-content:flex-end;}
        /* old wrapper classes — kept for compat, hidden */
        .header-right{display:none;}
        .hub-right-wrap,.hub-sync-row{display:none;}
        #btn-theme{display:none!important;}
        /* ── HUB SETTINGS MODAL ── */
        .hub-sm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(4px);z-index:1000000;align-items:center;justify-content:center;padding:18px;box-sizing:border-box;overflow:auto;}
        .hub-sm-overlay.open{display:flex;}
        .hub-sm-modal{background:var(--surface);border:1px solid var(--amber);border-top:3px solid var(--amber);border-radius:14px;width:300px;max-width:calc(100vw - 32px);max-height:calc(100vh - 36px);overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,0.5);position:relative;z-index:1000001;}
        .hub-sm-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);}
        .hub-sm-title{font-family:'Space Mono',monospace;font-size:0.65em;color:var(--amber);letter-spacing:0.2em;font-weight:700;}
        .hub-sm-close{background:none;border:1px solid var(--border);color:var(--text-muted);font-family:'Space Mono',monospace;font-size:0.62em;cursor:pointer;padding:4px 9px;border-radius:4px;transition:all 0.15s;font-weight:700;}
        .hub-sm-close:hover{border-color:var(--amber);color:var(--amber);}
        .hub-sm-body{padding:14px 16px;display:flex;flex-direction:column;gap:8px;}
        .hub-sm-btn{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;border-radius:7px;cursor:pointer;font-family:'Space Mono',monospace;font-size:0.63em;font-weight:700;color:var(--text-muted);letter-spacing:0.05em;border:1px solid var(--border);background:transparent;transition:all 0.12s;text-align:left;width:100%;}
        .hub-sm-btn:hover{color:var(--text);border-color:var(--border2);}
        .hub-sm-btn.active{color:var(--text);background:rgba(100,116,139,0.08);border-color:var(--slate);}
        .hub-sm-val{color:var(--text-dim);font-size:0.9em;}

        /* ── HERO ── */
        .hero{padding:36px 0 24px;}
        .hero-top{display:flex;align-items:flex-start;gap:20px;margin-bottom:24px;width:100%;}
        .hero-left{flex:1;min-width:0;}
        .hero-title-small{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.2em;color:var(--amber);text-transform:uppercase;margin-bottom:6px;}
        h1{font-family:'Space Mono',monospace;font-size:clamp(1.3em,2.4vw,1.9em);font-weight:700;color:var(--text);line-height:1.25;margin-bottom:6px;}
        h1 em{color:var(--amber);font-style:normal;}
        .hero-nec{font-family:'Space Mono',monospace;font-size:0.6em;color:var(--text-dim);letter-spacing:0.1em;}

        /* ── GLOBAL PROGRESS ── */
        .gp-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px 26px;margin-bottom:28px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;}
        .gp-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;}
        .gp-title{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;color:var(--text-muted);text-transform:uppercase;}
        .gp-sub{font-size:0.72em;color:var(--text-dim);}
        .gp-track{height:8px;background:var(--surface3);border-radius:4px;overflow:hidden;margin-bottom:8px;}
        .gp-fill{height:100%;background:linear-gradient(90deg,#6aad7e,#5a9e6e);border-radius:4px;transition:width 1s cubic-bezier(.4,0,.2,1);}
        .gp-labels{display:flex;justify-content:space-between;font-family:'Space Mono',monospace;font-size:0.62em;color:var(--text-dim);}
        .gp-right{text-align:center;}
        .gp-pct{font-family:'Space Mono',monospace;font-size:2.8em;font-weight:700;color:#8a9aaa;line-height:1;}
        .gp-pct-lbl{font-size:0.62em;color:var(--text-dim);letter-spacing:0.1em;text-transform:uppercase;margin-top:3px;}

        /* ── SUMMARY STRIP ── */
        .summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:32px;}
        .ss-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 18px;position:relative;overflow:hidden;}
        .ss-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:2px 0 0 2px;}
        .ss-total::before{background:var(--slate);}
        .ss-ok::before{background:#6aad7e;}
        .ss-err::before{background:#b06060;}
        .ss-session::before{background:var(--purple);}
        .ss-val{font-family:'Space Mono',monospace;font-size:1.7em;font-weight:700;line-height:1;margin-bottom:3px;}
        .ss-total .ss-val{color:var(--text-muted);}
        .ss-ok .ss-val{color:#6aad7e;}
        .ss-err .ss-val{color:#b06060;}
        .ss-session .ss-val{color:var(--purple);}
        .ss-lbl{font-size:0.65em;color:var(--text-muted);letter-spacing:0.08em;text-transform:uppercase;}

        /* ── SECTION LABEL ── */
        .sec-label{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.2em;color:var(--slate);text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:10px;}
        .sec-label::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent);}

        /* ── TESTS GRID ── */
        .tests-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:36px;}
        @media(max-width:960px){.tests-grid{grid-template-columns:repeat(2,1fr);}}
        @media(max-width:580px){.tests-grid{grid-template-columns:1fr;}}

        /* ── TEST CARD ── */
        .test-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:14px;transition:border-color 0.2s,box-shadow 0.2s;}
        .test-card:hover{border-color:var(--border2);box-shadow:0 6px 28px rgba(0,0,0,0.28);}
        .tc-top{display:flex;justify-content:space-between;align-items:flex-start;}
        .tc-name{font-family:'Space Mono',monospace;font-size:0.88em;font-weight:700;color:#4a8abb;}
        .tc-qcount{font-size:0.68em;color:var(--text-dim);font-family:'Space Mono',monospace;margin-top:3px;}
        .tc-badge{font-family:'Space Mono',monospace;font-size:0.58em;padding:3px 9px;border-radius:20px;font-weight:700;letter-spacing:0.04em;flex-shrink:0;}
        .b-new{background:rgba(100,116,139,0.06);color:var(--text-dim);border:1px solid rgba(100,116,139,0.15);}
        .b-going{background:rgba(100,116,139,0.08);color:var(--slate);border:1px solid rgba(100,116,139,0.2);}
        .b-done{background:rgba(106,173,126,0.07);color:#6aad7e;border:1px solid rgba(106,173,126,0.2);}
        .tc-prog-track{height:5px;background:var(--surface3);border-radius:3px;overflow:hidden;}
        .tc-prog-fill{height:100%;background:linear-gradient(90deg,#5a7a8a,#6a8a9a);border-radius:3px;transition:width 0.7s ease;}
        .tc-prog-fill.done{background:linear-gradient(90deg,#6aad7e,#7abd8e);}
        .tc-prog-row{display:flex;justify-content:space-between;font-family:'Space Mono',monospace;font-size:0.62em;color:var(--text-dim);margin-top:5px;}
        .tc-prog-pct{color:var(--text-muted);}
        .tc-prog-pct.done{color:var(--text-dim);}
        .tc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
        .tc-stat{background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:8px;text-align:center;}
        .tc-stat-v{font-family:'Space Mono',monospace;font-size:1em;font-weight:700;display:block;}
        .ts-ok .tc-stat-v{color:var(--green);}
        .ts-err .tc-stat-v{color:var(--red);}
        .ts-sk .tc-stat-v{color:var(--slate);}
        .ts-score .tc-stat-v{color:var(--amber);}
        .tc-stat-l{font-size:0.58em;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.05em;}
        .tc-session{display:flex;align-items:center;gap:6px;font-size:0.72em;color:var(--text-dim);}
        .tc-session-dot{width:6px;height:6px;border-radius:3px;background:var(--purple);flex-shrink:0;}
        .tc-actions{display:flex;gap:8px;margin-top:auto;}
        .btn-open{flex:1;padding:11px;background:var(--surface2);color:var(--text-muted);border:1px solid var(--border);border-radius:8px;font-family:'Space Mono',monospace;font-size:0.71em;font-weight:700;cursor:pointer;letter-spacing:0.06em;transition:all 0.15s;}
        .btn-open:hover{background:var(--surface3);border-color:var(--border2);color:var(--text);transform:translateY(-1px);}
        .btn-rst{padding:11px 13px;background:transparent;color:var(--text-dim);border:1px solid var(--border);border-radius:8px;font-family:'Space Mono',monospace;font-size:0.65em;font-weight:700;cursor:pointer;transition:all 0.15s;white-space:nowrap;}
        .btn-rst:hover{background:var(--surface2);}

        
/* ── Section divider ── */

/* ── Hub action buttons (OPEN / EXPORT TXT) ── */
.hub-export-btn {
    padding: 6px 13px;
    border-radius: 6px;
    border: 1px solid var(--border2);
    background: var(--surface3);
    color: var(--text-muted);
    font-family: 'Space Mono', monospace;
    font-size: 0.6em;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.06em;
    transition: all 0.15s;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
}
.hub-export-btn:hover {
    border-color: var(--amber);
    color: var(--amber);
    background: var(--amber-glow);
}
.hub-export-btn.btn-open {
    border-color: rgba(245,158,11,0.4);
    color: var(--amber);
    background: rgba(245,158,11,0.06);
}
.hub-export-btn.btn-open:hover {
    background: var(--amber-glow);
    border-color: var(--amber);
}
body.light-mode .hub-export-btn { background: #f1f5f9; border-color: #cbd5e1; color: #475569; }
body.light-mode .hub-export-btn:hover { border-color: #d97706; color: #d97706; background: rgba(217,119,6,0.06); }
body.light-mode .hub-export-btn.btn-open { border-color: rgba(217,119,6,0.4); color: #d97706; background: rgba(217,119,6,0.06); }

.hub-section-divider{height:1px;background:linear-gradient(90deg,var(--border),transparent);margin:8px 0 32px;}
/* ── ANALYTICS SECTION ── */
        .analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
        @media(max-width:860px){.analytics-grid{grid-template-columns:1fr;}}

        /* ── CHART CARD (canvas) ── */
        .chart-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;}
        .chart-card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
        .chart-card-hdr h3{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);}
        .chart-tabs{display:flex;gap:4px;}
        .chart-tab{padding:4px 10px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-family:'Space Mono',monospace;font-size:0.6em;font-weight:700;letter-spacing:0.04em;transition:all 0.12s;}
        .chart-tab.active{background:rgba(100,116,139,0.1);border-color:var(--slate);color:var(--text-muted);}
        .chart-tab:hover:not(.active){border-color:var(--border2);color:var(--text);}
        canvas{display:block;width:100%!important;}

        /* ── DONUT CARD ── */
        .donut-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;display:flex;flex-direction:column;}
        .donut-card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
        .donut-card-hdr h3{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);}
        .donut-wrap{display:flex;align-items:center;justify-content:center;gap:28px;flex:1;}
        .donut-legend{display:flex;flex-direction:column;gap:10px;}
        .dl-item{display:flex;align-items:center;gap:9px;}
        .dl-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0;}
        .dl-label{font-family:'Space Mono',monospace;font-size:0.65em;color:var(--text-muted);}
        .dl-val{font-family:'Space Mono',monospace;font-size:0.72em;font-weight:700;}

        /* ── TIME CARD ── */
        .time-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:16px;}
        .time-card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
        .time-card-hdr h3{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);}
        .time-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;}
        @media(max-width:600px){.time-stats{grid-template-columns:repeat(2,1fr);}}
        .time-stat{background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:14px;text-align:center;}
        .time-stat-val{font-family:'Space Mono',monospace;font-size:1.4em;font-weight:700;color:var(--text);line-height:1;margin-bottom:4px;}
        .time-stat-lbl{font-size:0.6em;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.08em;}
        .heatmap-wrap{overflow-x:auto;}
        .heatmap-label{font-family:'Space Mono',monospace;font-size:0.6em;color:var(--text-dim);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:8px;}
        .heatmap{display:flex;gap:3px;align-items:flex-end;height:40px;min-width:200px;}
        .hm-col{flex:1;min-width:14px;border-radius:2px;transition:opacity 0.15s;cursor:default;position:relative;}
        .hm-col:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:4px 8px;font-family:'Space Mono',monospace;font-size:0.58em;color:var(--text);white-space:nowrap;z-index:10;}

        /* ── STREAK CARD ── */
        .streak-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
        @media(max-width:700px){.streak-row{grid-template-columns:1fr;}}
        .streak-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;}
        .streak-card h3{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;}
        .streak-big{font-family:'Space Mono',monospace;font-size:3em;font-weight:700;color:var(--text);line-height:1;margin-bottom:4px;}
        .streak-sub{font-size:0.78em;color:var(--text-dim);}
        .xp-bar-wrap{margin-top:14px;}
        .xp-label-row{display:flex;justify-content:space-between;font-family:'Space Mono',monospace;font-size:0.6em;color:var(--text-dim);margin-bottom:6px;}
        .xp-track{height:6px;background:var(--surface3);border-radius:3px;overflow:hidden;}
        .xp-fill{height:100%;background:linear-gradient(90deg,#7a8a9a,#8a9aaa);border-radius:3px;transition:width 0.8s ease;}

        /* ── WEEKLY GOALS ── */
        .goals-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;}
        .goals-card h3{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;}
        .goal-item{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
        .goal-item:last-child{margin-bottom:0;}
        .goal-icon{font-size:1.1em;flex-shrink:0;}
        .goal-info{flex:1;}
        .goal-label{font-size:0.78em;color:var(--text);margin-bottom:4px;}
        .goal-track{height:5px;background:var(--surface3);border-radius:3px;overflow:hidden;}
        .goal-fill{height:100%;border-radius:3px;transition:width 0.8s ease;}
        .goal-pct{font-family:'Space Mono',monospace;font-size:0.65em;font-weight:700;flex-shrink:0;width:32px;text-align:right;}

        /* ── WRONG CARD ── */
        .wrong-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;}
        .wrong-card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
        .wrong-card-hdr h3{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);}
        .wrong-count-badge{font-family:'Space Mono',monospace;font-size:0.62em;padding:3px 8px;border-radius:10px;background:rgba(100,116,139,0.08);color:var(--text-dim);border:1px solid var(--border);}
        .wrong-empty{font-size:0.82em;color:var(--text-dim);padding:20px 0;text-align:center;}
        .wrong-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;transition:border-color 0.15s;}
        .wrong-item:last-child{margin-bottom:0;}
        .wrong-item:hover{border-color:var(--border);}
        .wrong-num{font-family:'Space Mono',monospace;font-size:0.65em;color:var(--red);background:var(--red-bg);border:1px solid rgba(239,68,68,0.2);border-radius:4px;padding:2px 6px;flex-shrink:0;margin-top:1px;}
        .wrong-text{font-size:0.8em;color:var(--text-muted);line-height:1.4;flex:1;}
        .wrong-test{font-size:0.62em;color:var(--text-dim);font-family:'Space Mono',monospace;margin-top:3px;}
        .wrong-open{font-family:'Space Mono',monospace;font-size:0.6em;color:var(--text-dim);flex-shrink:0;margin-top:2px;opacity:0;transition:opacity 0.15s;}


        /* ── SESSION TIMELINE ── */
        .session-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:32px;}
        .session-card h3{font-family:'Space Mono',monospace;font-size:0.65em;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;}
        .session-list{display:flex;flex-direction:column;gap:6px;}
        .sess-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:7px;font-size:0.78em;}
        .sess-dot{width:8px;height:8px;border-radius:4px;flex-shrink:0;}
        .sess-date{color:var(--text-muted);font-family:'Space Mono',monospace;font-size:0.78em;flex-shrink:0;}
        .sess-test{color:var(--text-dim);font-size:0.85em;flex:1;}
        .sess-score{font-family:'Space Mono',monospace;font-size:0.78em;font-weight:700;}
        .sess-mode{font-family:'Space Mono',monospace;font-size:0.6em;padding:2px 7px;border-radius:10px;flex-shrink:0;}
        .sess-empty{font-size:0.82em;color:var(--text-dim);padding:16px 0;text-align:center;}

        /* ── ACTIONS ── */
        .actions-row{display:flex;gap:10px;margin-bottom:36px;flex-wrap:wrap;}
        .btn-global{padding:11px 20px;border-radius:8px;font-family:'Space Mono',monospace;font-size:0.71em;font-weight:700;cursor:pointer;letter-spacing:0.05em;transition:all 0.15s;border:none;}
        .bg-export{background:var(--surface2);color:var(--text-muted);border:1px solid var(--border)!important;}
        .bg-export:hover{background:var(--amber-glow);color:var(--text);border-color:var(--amber)!important;box-shadow:0 4px 20px rgba(245,158,11,0.18);}
        .bg-reset{background:transparent;color:var(--text-dim);border:1px solid var(--border)!important;border-radius:8px;}
        .bg-reset:hover{background:var(--amber-glow);color:var(--text);border-color:var(--amber)!important;box-shadow:0 4px 20px rgba(245,158,11,0.18);}

        /* ── ADD GUIDE ── */
        .add-guide{background:var(--surface);border:1px dashed var(--border2);border-radius:12px;padding:18px 22px;margin-bottom:40px;display:flex;gap:14px;align-items:flex-start;}
        .add-ico{font-size:1.3em;flex-shrink:0;margin-top:2px;}
        .add-body h4{font-family:'Space Mono',monospace;font-size:0.68em;color:var(--text-muted);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:5px;}
        .add-body p{font-size:0.82em;color:var(--text-dim);line-height:1.6;}
        code{font-family:'Space Mono',monospace;font-size:0.85em;color:var(--amber);background:var(--amber-dim);padding:1px 5px;border-radius:3px;}

        /* ── FOOTER ── */
        footer{border-top:1px solid var(--border);padding:20px 28px;text-align:center;}
        .foot-main{font-family:'Space Mono',monospace;font-size:0.6em;color:var(--text-dim);letter-spacing:0.08em;margin-bottom:4px;}
        .foot-built{font-family:'Space Mono',monospace;font-size:0.6em;color:var(--amber);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:4px;}
        .foot-copy{font-size:0.55em;color:var(--text-dim);letter-spacing:0.06em;line-height:1.6;}

        /* ── GLOBAL TOOLTIP ── */
        #global-tooltip{position:fixed;background:var(--surface);color:var(--text);border:1px solid var(--amber);border-radius:7px;padding:7px 12px;font-family:'Space Mono',monospace;font-size:0.65em;max-width:260px;text-align:center;line-height:1.5;box-shadow:0 4px 20px rgba(0,0,0,0.3);pointer-events:none;z-index:99999;opacity:0;transition:opacity 0.15s;white-space:normal;}
        #global-tooltip.visible{opacity:1;}
        .toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--surface);border:1px solid var(--amber);border-radius:8px;padding:9px 18px;font-family:'Space Mono',monospace;font-size:0.75em;color:var(--amber);z-index:9999;transition:transform 0.3s ease;white-space:nowrap;}
        .toast.show{transform:translateX(-50%) translateY(0);}

        @keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
        .fade{animation:fadeIn 0.4s ease both;}

        @media(max-width:700px){
            .summary-strip{grid-template-columns:repeat(2,1fr);}
            .header-inner{height:auto;padding:10px 0;}
            .hub-stats-bar{padding:7px 16px;}
            .hub-stats-inner{flex-wrap:wrap;gap:6px;}
            .hub-sync-spacer{display:none;}
            .btn-hub-settings{margin-left:auto;}
            .gp-card{grid-template-columns:1fr;}
            .gp-right{display:none;}
            .time-stats{grid-template-columns:repeat(2,1fr);}
        }
    
html[data-theme="light"] body{background-color:#f8fafc!important;color:#0f172a!important;}
html[data-theme="light"] header{background-color:#ffffff!important;border-color:#e2e8f0!important;}
html[data-theme="light"] .hub-stats-bar{background-color:#f1f5f9!important;border-color:#e2e8f0!important;}
html[data-theme="light"] .gp-card,html[data-theme="light"] .summary-strip{
    background:#ffffff!important;border-color:#cbd5e1!important;}
html[data-theme="light"] .stat-val,html[data-theme="light"] .stat-label{color:#0f172a!important;}

#btn-back-hub{
            position:fixed;
            right:16px;
            bottom:16px;
            z-index:9000;
            display:none;
            align-items:center;
            gap:6px;
            padding:8px 13px;
            background:var(--surface);
            border:1px solid var(--amber);
            border-radius:7px;
            color:var(--amber);
            font-family:'Space Mono',monospace;
            font-size:0.62em;
            font-weight:700;
            letter-spacing:0.06em;
            cursor:pointer;
            text-decoration:none;
            transition:all 0.15s;
            box-shadow:0 2px 12px rgba(245,158,11,0.12);
            touch-action:manipulation;
            -webkit-tap-highlight-color:transparent;
        }


/* ===== Extracted from nyc_hub_beta.htm style block 2 ===== */
#nyc-sync{
  display:inline-flex;align-items:center;gap:5px;
  color:#64748b;
  transition:color 0.4s;
  flex-shrink:0;
}
#nyc-sync-dot{
  width:7px;height:7px;border-radius:50%;
  background:currentColor;flex-shrink:0;
}
#nyc-sync.s-syncing { color:#f59e0b; }
#nyc-sync.s-synced  { color:#6aad7e; }
#nyc-sync.s-offline { color:#64748b; }
#nyc-sync.s-error   { color:#b06060; }
@keyframes nyc-blink{ 0%,100%{opacity:1} 50%{opacity:0} }
#nyc-sync.s-syncing #nyc-sync-dot{ animation:nyc-blink 0.8s step-start infinite; }
#nyc-sync-txt{ font-size:0.9em; }


/* ===== Extracted from nyc_hub_beta.htm style block 3 ===== */
/* ── NOTES HUB ── */
.notes-hub-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:28px;}
.notes-search-wrap{position:relative;margin-bottom:16px;}
.notes-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-dim);font-size:0.85em;pointer-events:none;}
.notes-hub-search{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:'Inter',sans-serif;font-size:0.88em;padding:9px 12px 9px 34px;outline:none;transition:border-color 0.15s,box-shadow 0.15s;box-sizing:border-box;}
.notes-hub-search:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(245,158,11,0.1);}
.notes-hub-search::placeholder{color:var(--text-dim);}
.notes-hub-item{padding:12px 14px;border:1px solid var(--border);border-radius:9px;margin-bottom:8px;background:var(--surface2);transition:border-color 0.15s,background 0.15s;}
.notes-hub-item:hover{border-color:var(--border);background:var(--surface2);}
.notes-hub-item-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:10px;}
.notes-hub-label{font-family:'Space Mono',monospace;font-size:0.62em;color:var(--amber);letter-spacing:0.08em;font-weight:700;}
.notes-hub-date{font-family:'Space Mono',monospace;font-size:0.57em;color:var(--text-dim);white-space:nowrap;}
.notes-hub-note{font-size:0.84em;color:var(--text);line-height:1.5;white-space:pre-wrap;background:rgba(245,158,11,0.04);border-left:2px solid rgba(245,158,11,0.3);padding:6px 10px;border-radius:0 5px 5px 0;}
.notes-empty{text-align:center;padding:28px 16px;color:var(--text-dim);font-family:'Space Mono',monospace;font-size:0.72em;letter-spacing:0.06em;}
/* ── WEAK SPOTS ── */
.weak-spots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:16px;}
.weak-card{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--red);border-radius:9px;padding:12px 14px;transition:border-color 0.15s;}
.weak-card:hover{border-color:var(--red);}
.weak-card-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.weak-card-label{font-family:'Space Mono',monospace;font-size:0.58em;color:var(--text-muted);letter-spacing:0.06em;}
.weak-card-count{font-family:'Space Mono',monospace;font-size:0.68em;font-weight:700;color:var(--red);background:var(--red-bg);border:1px solid rgba(176,96,96,0.25);border-radius:4px;padding:1px 7px;}
.weak-card-q{font-size:0.82em;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.weak-spots-empty{text-align:center;padding:28px 16px;color:var(--text-dim);font-family:'Space Mono',monospace;font-size:0.72em;letter-spacing:0.06em;}
.weak-train-btn{display:block;width:100%;padding:10px 18px;background:transparent;border:1px solid rgba(176,96,96,0.4);border-radius:8px;color:var(--red);font-family:'Space Mono',monospace;font-size:0.66em;font-weight:700;letter-spacing:0.08em;cursor:pointer;transition:all 0.15s;text-align:center;margin-top:4px;}
.weak-train-btn:hover{background:var(--red-bg);border-color:var(--red);}
/* light mode */
body.light-mode .notes-hub-card{background:#ffffff;border-color:#cbd5e1;}
body.light-mode .notes-hub-item{background:#f8fafc;border-color:#cbd5e1;}
body.light-mode .notes-hub-item:hover{background:#f1f5f9;}
body.light-mode .notes-hub-search{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a;}
body.light-mode .notes-hub-note{background:rgba(217,119,6,0.05);color:#334155;}
body.light-mode .weak-card{background:#f8fafc;border-color:#cbd5e1;}

/* ── SEARCH BAR ───────────────────────────────────────────────── */
.search-wrap{background:var(--card-bg,#161a20);border:1px solid var(--border,#2a3140);border-radius:12px;padding:14px 16px;margin-bottom:18px;}
.search-bar{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.04);border:1px solid var(--border,#2a3140);border-radius:8px;padding:6px 10px;}
.search-bar:focus-within{border-color:rgba(245,158,11,0.5);box-shadow:0 0 0 2px rgba(245,158,11,0.08);}
body.light-mode .search-bar{background:rgba(0,0,0,0.04);border-color:#cbd5e1;}
.search-icon{font-size:15px;opacity:0.45;flex-shrink:0;}
.search-input{flex:1;background:none;border:none;outline:none;font-family:'Space Mono',monospace;font-size:0.78em;color:var(--text,#e2e8f0);letter-spacing:0.04em;}
.search-input::placeholder{color:#475569;}
.search-clear{background:none;border:none;color:#475569;cursor:pointer;font-size:14px;padding:0 2px;display:none;}
.search-clear:hover{color:#94a3b8;}
.search-hint{font-family:'Space Mono',monospace;font-size:0.58em;color:#475569;letter-spacing:0.06em;margin-top:8px;}
.search-results{display:none;flex-direction:column;gap:6px;margin-top:10px;max-height:420px;overflow-y:auto;}
.search-results.visible{display:flex;}
.sr-count{font-family:'Space Mono',monospace;font-size:0.6em;color:#64748b;letter-spacing:0.06em;margin-top:6px;}
.sr-item{background:var(--surface2,#1a1f28);border:1px solid var(--border,#2a3140);border-radius:8px;padding:10px 14px;cursor:pointer;transition:border-color .15s;}
.sr-item:hover{border-color:rgba(245,158,11,0.4);}
.sr-label{font-family:'Space Mono',monospace;font-size:0.6em;color:#f59e0b;letter-spacing:0.08em;margin-bottom:4px;}
.sr-text{font-size:0.82em;color:var(--text,#e2e8f0);line-height:1.5;}
.sr-text mark{background:rgba(245,158,11,0.25);color:#f59e0b;border-radius:2px;padding:0 2px;}
.sr-meta{font-family:'Space Mono',monospace;font-size:0.6em;color:#f59e0b;letter-spacing:0.08em;margin-bottom:4px;}
.sr-separator{font-family:'Space Mono',monospace;font-size:0.58em;color:#4b5563;letter-spacing:0.1em;text-transform:uppercase;padding:6px 2px 2px;border-top:1px solid var(--border,#2a3140);margin-top:4px;}
/* ── PDF LIBRARY ──────────────────────────────────────── */
.pdf-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border,#2a3140);border-left:3px solid #ef4444;border-radius:9px;background:var(--surface2,#161a20);margin-bottom:6px;flex-wrap:wrap;text-decoration:none;color:inherit;transition:border-color 0.15s;cursor:pointer;}
.pdf-row:hover{border-color:#ef4444;}
.pdf-row-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;font-family:'Space Mono',monospace;font-size:0.52em;font-weight:700;letter-spacing:0.04em;}
.pdf-row-icon.ext-pdf{background:#ef444420;color:#ef4444;border:1px solid #ef444440;}
.pdf-row-icon.ext-jpg,.pdf-row-icon.ext-jpeg{background:#f59e0b20;color:#f59e0b;border:1px solid #f59e0b40;}
.pdf-row-icon.ext-png{background:#10b98120;color:#10b981;border:1px solid #10b98140;}
.pdf-row-icon.ext-other{background:#64748b20;color:#64748b;border:1px solid #64748b40;}
.pdf-row-title{flex:1;font-size:0.82em;color:var(--text,#e2e8f0);min-width:0;word-break:break-word;line-height:1.4;}
.pdf-row-date{color:var(--text-dim,#64748b);font-size:0.88em;font-style:italic;}
.pdf-tag{display:inline-block;font-family:'Space Mono',monospace;font-size:0.7em;padding:1px 6px;border-radius:6px;background:rgba(245,158,11,0.1);color:#f59e0b;border:1px solid rgba(245,158,11,0.25);margin-left:4px;vertical-align:middle;}
body.light-mode .pdf-row{background:#f8fafc;border-color:#cbd5e1;}
.pdf-lang{display:inline-flex;gap:3px;flex-shrink:0;margin-left:4px;}
.pdf-lang-btn{font-family:'Space Mono',monospace;font-size:0.62em;font-weight:700;padding:2px 6px;border-radius:4px;border:1px solid rgba(245,158,11,0.35);background:transparent;color:var(--text-dim,#64748b);cursor:pointer;text-decoration:none;letter-spacing:0.05em;transition:all 0.15s;}
.pdf-lang-btn:hover{border-color:#f59e0b;color:#f59e0b;}
.pdf-lang-btn.active{background:rgba(245,158,11,0.15);color:#f59e0b;border-color:#f59e0b;}
body.light-mode .pdf-lang-btn{color:#64748b;}
body.light-mode .pdf-lang-btn.active{background:rgba(245,158,11,0.12);color:#b45309;}



/* Stage 12.7 — contact/settings modal polish and CSS cleanup.
   Reversible: remove this block and restore the previous extracted contact CSS block if needed. */
#z-ov{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(7px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
  z-index:99999;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s cubic-bezier(.4,0,.2,1);
}
#z-ov.on{opacity:1;pointer-events:all;}
#z-bx{
  background:#161a20;
  border:1px solid #2a3140;
  border-radius:14px;
  padding:2rem;
  width:100%;
  max-width:460px;
  max-height:calc(100vh - 32px);
  overflow:auto;
  box-shadow:0 32px 80px rgba(0,0,0,.65);
  transform:translateY(22px) scale(.97);
  transition:transform .22s cubic-bezier(.4,0,.2,1);
}
#z-ov.on #z-bx{transform:translateY(0) scale(1);}
.zh{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:1.3rem;}
.zht h2{font-family:monospace;font-size:1.05rem;font-weight:700;color:#e2e8f0;margin:0;}
.zht p{font-size:.78rem;color:#64748b;margin:.2rem 0 0;}
.zx{background:none;border:none;color:#64748b;cursor:pointer;padding:.35rem .6rem;border-radius:8px;font-size:1.2rem;line-height:1;min-width:36px;min-height:36px;}
.zx:hover,.zx:focus-visible{color:#e2e8f0;background:#2a3140;outline:2px solid rgba(245,158,11,.35);outline-offset:2px;}
.zf{margin-bottom:.9rem;}
.zf label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#64748b;margin-bottom:.35rem;font-family:monospace;}
.zr{color:#f87171;}
.zf input,.zf textarea{width:100%;background:#0d0f12;border:1px solid #2a3140;border-radius:10px;color:#e2e8f0;font-family:inherit;font-size:.9rem;padding:.65rem .85rem;outline:none;transition:border-color .15s,box-shadow .15s;resize:vertical;box-sizing:border-box;}
.zf input:focus,.zf textarea:focus{border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.18);}
.zinv{border-color:#f87171!important;}
.zf textarea{min-height:115px;}
.zerr{font-size:.72rem;color:#f87171;margin-top:.25rem;min-height:1em;}
.zhp{position:absolute;left:-9999px;opacity:0;pointer-events:none;}
.zsb{width:100%;background:#f59e0b;color:#0d0f12;border:none;border-radius:10px;padding:.8rem;font-size:.9rem;font-weight:700;font-family:monospace;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem;letter-spacing:.04em;transition:background .15s,box-shadow .15s;min-height:44px;}
.zsb:hover:not(:disabled),.zsb:focus-visible:not(:disabled){background:#fbbf24;box-shadow:0 6px 20px rgba(245,158,11,.25);outline:2px solid rgba(245,158,11,.35);outline-offset:2px;}
.zsb:disabled{opacity:.5;cursor:not-allowed;}
.zsp{display:none;width:16px;height:16px;border:2px solid rgba(13,15,18,.3);border-top-color:#0d0f12;border-radius:50%;animation:zsp .7s linear infinite;}
.zsb.zld .zsp{display:block;}.zsb.zld .zlb{display:none;}
@keyframes zsp{to{transform:rotate(360deg);}}
#zst{margin-top:.7rem;padding:.7rem 1rem;border-radius:10px;font-size:.85rem;font-weight:500;display:none;text-align:center;font-family:monospace;}
#zst.zok{background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.25);color:#4ade80;display:block;}
#zst.zer{background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.25);color:#f87171;display:block;}
.hub-sm-modal{max-height:calc(100vh - 32px);overflow:auto;}
.hub-sm-close:focus-visible,.hub-sm-btn:focus-visible{outline:2px solid rgba(245,158,11,.45);outline-offset:2px;}
.hub-sm-btn{min-height:42px;}
@media (max-width:560px){
  #z-ov{padding:12px;align-items:flex-start;overflow:auto;}
  #z-bx{margin-top:18px;padding:1.25rem;max-width:100%;}
  .zh{margin-bottom:1rem;}
  .zf input,.zf textarea{font-size:16px;}
  .hub-sm-overlay{align-items:flex-start;padding:16px;box-sizing:border-box;overflow:auto;}
  .hub-sm-modal{width:100%;max-width:420px;margin-top:22px;}
}


/* Stage 11.7 — reversible admin reference button in top hub header.
   Original Reference Library button remains unchanged as fallback. */
.hub-header-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
}
.hub-admin-ref-top{
  align-items:center;
  justify-content:center;
  height:28px;
  padding:0 10px;
  border:1px solid rgba(245,158,11,0.55);
  border-radius:999px;
  color:var(--amber);
  background:rgba(245,158,11,0.06);
  text-decoration:none;
  font-family:'Space Mono',monospace;
  font-size:0.62em;
  font-weight:700;
  letter-spacing:0.08em;
  white-space:nowrap;
}
.hub-admin-ref-top:hover{
  background:rgba(245,158,11,0.12);
  border-color:rgba(245,158,11,0.85);
}
@media(max-width:560px){
  .hub-admin-ref-top{
    height:26px;
    padding:0 8px;
    font-size:0.56em;
    letter-spacing:0.04em;
  }
}

/* Stage 12.1 — reversible hub spacing/hierarchy cleanup.
   Scope: spacing only. No color, order, feature, or data-flow changes.
   Rollback: remove this block or restore rollback/stage11_8/hub.css.baseline. */
.wrap{
  padding-left:clamp(16px,3vw,28px);
  padding-right:clamp(16px,3vw,28px);
}
.hero{padding-top:34px;padding-bottom:22px;}
.hero-top{margin-bottom:20px;}
.gp-card{margin-bottom:26px;}
.summary-strip{gap:12px;margin-bottom:34px;}
.search-wrap{margin-bottom:28px;}
.tests-grid{gap:18px;margin-bottom:38px;}
.hub-section-divider{margin-top:10px;margin-bottom:34px;}
.sec-label{margin-bottom:16px;}

@media(max-width:720px){
  header{padding-left:16px;padding-right:16px;}
  .hub-stats-bar{padding-left:16px;padding-right:16px;}
  .wrap{padding-left:16px;padding-right:16px;}
  .hero{padding-top:24px;padding-bottom:16px;}
  .hero-top{margin-bottom:16px;}
  #hub-title-line{line-height:1.45;}
  .gp-card{grid-template-columns:1fr;gap:14px;padding:18px 18px;margin-bottom:22px;}
  .gp-right{text-align:left;display:flex;align-items:baseline;gap:10px;}
  .gp-pct{font-size:2.35em;}
  .summary-strip{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:28px;}
  .ss-card{padding:12px 14px;}
  .search-wrap{margin-bottom:24px;}
  .tests-grid{gap:12px;margin-bottom:30px;}
  .test-card{padding:18px;gap:12px;}
  .hub-section-divider{margin-top:6px;margin-bottom:28px;}
  .sec-label{margin-bottom:13px;}
}

@media(max-width:420px){
  .wrap{padding-left:14px;padding-right:14px;}
  header{padding-left:12px;padding-right:12px;}
  .hub-stats-bar{padding-left:12px;padding-right:12px;}
  .summary-strip{grid-template-columns:1fr 1fr;}
  .h-pill{padding:5px 8px;font-size:0.58em;}
  .btn-hub-settings{right:10px;}
}

/* Stage 12.2 — reversible hub card/button readability polish.
   Scope: cards/buttons only. No color palette, order, data-flow, or feature changes.
   Rollback: remove this block or restore rollback/stage11_8/hub.css.baseline. */
.test-card{
  min-height:0;
}
.test-card:focus-within{
  border-color:var(--border2);
  box-shadow:0 0 0 2px rgba(245,158,11,0.10),0 8px 28px rgba(0,0,0,0.22);
}
.btn-open,.btn-rst,.hub-sm-btn,.weak-train-btn,.hub-export-btn{
  -webkit-tap-highlight-color:transparent;
}
.btn-open:focus-visible,
.btn-rst:focus-visible,
.hub-sm-btn:focus-visible,
.weak-train-btn:focus-visible,
.hub-export-btn:focus-visible,
.pdf-lang-btn:focus-visible,
.hub-admin-ref-top:focus-visible{
  outline:2px solid rgba(245,158,11,0.75);
  outline-offset:2px;
}
.btn-open,.btn-rst{
  line-height:1.25;
}
.test-card .progress,
.gp-card .progress{
  overflow:hidden;
}
body.light-mode .test-card:focus-within{
  box-shadow:0 0 0 2px rgba(217,119,6,0.12),0 8px 24px rgba(15,23,42,0.10);
}
@media(max-width:720px){
  .btn-open,.btn-rst{
    min-height:44px;
  }
  .hub-sm-btn{
    min-height:42px;
  }
}


/* Stage 12.4 — reversible search readability/mobile polish.
   Scope: hub search box/results only. No search logic, data source, routing, or tracking changes.
   Rollback: remove this block or restore rollback/stage11_8/hub.css.baseline. */
.search-wrap{
  scroll-margin-top:86px;
}
.search-bar{
  min-height:46px;
}
.search-input{
  min-height:34px;
}
.search-clear{
  min-width:34px;
  min-height:34px;
  border-radius:8px;
  line-height:1;
  -webkit-tap-highlight-color:transparent;
}
.search-clear:focus-visible{
  outline:2px solid rgba(245,158,11,0.75);
  outline-offset:2px;
}
.search-results{
  padding-right:2px;
}
.search-results .sr-item{
  border-radius:10px;
}
.search-results .sr-item:focus-visible{
  outline:2px solid rgba(245,158,11,0.75);
  outline-offset:2px;
}
@media(max-width:720px){
  .search-wrap{
    padding:14px;
  }
  .search-bar{
    min-height:50px;
    padding:7px 10px;
  }
  .search-input{
    font-size:0.84em;
    letter-spacing:0.02em;
  }
  .search-hint{
    line-height:1.45;
  }
  .search-results{
    max-height:360px;
    gap:8px;
  }
}
@media(max-width:420px){
  .search-wrap{
    padding:12px;
  }
  .search-input{
    font-size:0.82em;
  }
}

/* Stage 12.5 — PDF Library readability/mobile polish (reversible) */
.pdf-row{
  min-height:58px;
  align-items:center;
}
.pdf-row:focus-visible{
  outline:2px solid rgba(245,158,11,0.75);
  outline-offset:2px;
}
.pdf-row-title{
  line-height:1.5;
}
.pdf-lang-btn{
  min-height:28px;
  min-width:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media(max-width:720px){
  .pdf-row{
    padding:14px 12px;
    gap:12px;
  }
  .pdf-row-icon{
    width:40px;
    height:40px;
  }
  .pdf-row-title{
    flex-basis:calc(100% - 56px);
    font-size:0.84em;
  }
  .pdf-lang{
    margin-left:52px;
    margin-top:2px;
  }
  .pdf-lang-btn{
    min-height:34px;
    min-width:42px;
    padding:4px 9px;
  }
}
@media(max-width:420px){
  .pdf-row{
    padding:13px 10px;
  }
  .pdf-row-title{
    font-size:0.82em;
  }
}

/* Stage 12.8 — accessibility/reduced-motion polish (reversible) */
:where(a, button, input, textarea, select, [role="button"], [tabindex]):focus-visible{
  outline:2px solid rgba(245,158,11,0.85);
  outline-offset:3px;
}
:where(button, .btn, .top-admin-reference, .pdf-lang-btn, .search-clear):focus:not(:focus-visible){
  outline:none;
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:0.01ms !important;
  }
}
@media (pointer: coarse){
  :where(button, .btn, a, [role="button"]){
    -webkit-tap-highlight-color:rgba(245,158,11,0.22);
  }
}


/* Stage 13.16A: static inline-style cleanup classes. Keep reversible. */
.hub-hidden{display:none;}
.hidden-flex{display:none;}
.w-0{width:0%;}
.fade-delay-05{animation-delay:.05s;}
.fade-delay-06{animation-delay:.06s;}
.fade-delay-10{animation-delay:.1s;}
.fade-delay-12{animation-delay:.12s;}
.fade-delay-13{animation-delay:.13s;}
.fade-delay-14{animation-delay:.14s;}
.fade-delay-15{animation-delay:.15s;}
.fade-delay-16{animation-delay:.16s;}
.fade-delay-18{animation-delay:.18s;}
.fade-delay-20{animation-delay:.2s;}
.mt-4px{margin-top:4px;}
.mb-0{margin-bottom:0;}
.mb-16{margin-bottom:16px;}
.m-0{margin:0;}
.flex-1{flex:1;}
.text-dim{color:var(--text-dim);}
.link-no-decoration{text-decoration:none;}
.hub-title-line-style{font-family:'Space Mono',monospace;font-size:0.76em;font-weight:700;letter-spacing:0.2em;color:var(--amber);text-transform:uppercase;margin-bottom:4px;}
.hub-title-sub-style{color:#94a3b8;font-size:0.85em;text-transform:none;letter-spacing:0.05em;font-weight:400;}
.hub-section-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.badge-starred-inline-clean{margin:0;border-color:rgba(245,158,11,.3);color:var(--amber);background:rgba(245,158,11,.06);}
.hub-mini-actions{display:flex;gap:8px;align-items:center;}
.hub-pager{align-items:center;justify-content:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.hub-page-label{font-family:'Space Mono',monospace;font-size:.7em;color:var(--text-muted);}
.hub-notes-search-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.hub-mono-dim-xs{font-family:'Space Mono',monospace;font-size:.62em;color:var(--text-dim);}
.donut-canvas-size{flex-shrink:0;width:160px!important;height:160px!important;}
.goal-fill-q-bg{background:linear-gradient(90deg,#5a7a8a,#6a8a9a);}
.goal-fill-accuracy-bg{background:linear-gradient(90deg,#6aad7e,#7abd8e);}
.goal-fill-sessions-bg{background:linear-gradient(90deg,#7a8a9a,#8a9aaa);}
.goal-fill-review-bg{background:linear-gradient(90deg,#6a8a9a,#7a9aaa);}
.hub-ref-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px;}
.admin-ref-hidden-link{display:none;text-decoration:none;border-color:rgba(245,158,11,.5);color:var(--amber);}
.pdf-page-label{font-family:'Space Mono',monospace;font-size:.68em;color:var(--text-dim,#64748b);letter-spacing:.08em;}
.contact-z-mini-btn{cursor:pointer;background:none;border:1px solid rgba(245,158,11,.35);border-radius:16px;color:#f59e0b;font-family:monospace;font-size:.6em;font-weight:700;letter-spacing:.08em;padding:3px 10px;opacity:.85;vertical-align:middle;}
.admin-secret-panel{border-top:1px solid var(--border);margin:4px 0;padding-top:8px;}
.admin-secret-label{font-family:'Space Mono',monospace;font-size:.58em;color:var(--text-dim);letter-spacing:.1em;margin-bottom:6px;}
.admin-secret-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:7px 10px;color:var(--text);font-family:'Space Mono',monospace;font-size:.7em;outline:none;box-sizing:border-box;}
.admin-secret-actions{display:flex;gap:6px;margin-top:6px;}
.admin-secret-save-btn{flex:1;background:transparent;border:1px solid var(--amber);color:var(--amber);font-family:'Space Mono',monospace;font-size:.62em;font-weight:700;padding:5px;border-radius:5px;cursor:pointer;}
.admin-secret-clear-btn{flex:1;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:'Space Mono',monospace;font-size:.62em;font-weight:700;padding:5px;border-radius:5px;cursor:pointer;}
.spy-btn-wrap-hidden{display:none;margin-top:8px;}
.spy-session-btn{width:100%;background:transparent;border:1px solid rgba(245,158,11,.6);color:#f59e0b;font-family:'Space Mono',monospace;font-size:.62em;font-weight:700;padding:6px;border-radius:5px;cursor:pointer;letter-spacing:.06em;}


/* Stage 13.16B: runtime inline-style cleanup helpers */
.nyc-fullscreen-wall{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#0d0f12;font-family:monospace;}
.nyc-wall-card{text-align:center;padding:40px;max-width:420px;}
.nyc-wall-icon{font-size:3em;margin-bottom:16px;}
.nyc-wall-title{color:#f59e0b;font-size:.75em;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;font-family:Space Mono,monospace;}
.nyc-wall-copy{color:#94a3b8;font-size:.82em;line-height:1.7;margin-bottom:24px;}
.nyc-wall-strong{color:#e2e8f0;}
.nyc-wall-note{color:#64748b;font-size:.7em;letter-spacing:.1em;margin-bottom:20px;}
.nyc-wall-btn,.nyc-contact-btn{cursor:pointer;background:none;border:1px solid #f59e0b;border-radius:16px;color:#f59e0b;font-family:monospace;font-size:.7em;font-weight:700;letter-spacing:.08em;padding:6px 18px;}
.nyc-contact-btn{pointer-events:auto;font-size:.75em;letter-spacing:.06em;padding:4px 12px;}
.hub-days-label{font-family:Space Mono,monospace;font-size:.6em;font-weight:700;letter-spacing:.08em;padding:3px 10px;border-radius:6px;text-transform:uppercase;white-space:nowrap;}
.hub-days-ok{border:1px solid #6aad7e;color:#6aad7e;}.hub-days-danger{border:1px solid #ef4444;color:#ef4444;}.hub-days-blink{animation:blink-days 1s step-start infinite;}
.nyc-device-overlay{position:fixed;inset:0;background:rgba(13,15,18,.92);z-index:99998;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.nyc-wall-title-small{color:#f59e0b;font-size:.75em;letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px;font-family:Space Mono,monospace;}
.nyc-wall-copy-small{color:#94a3b8;font-size:.85em;line-height:1.6;margin-bottom:20px;}
.hub-clickable{cursor:pointer;}.hub-qtext{font-size:.9em;color:var(--text);line-height:1.4;}.hub-accent-num{color:#f59e0b;}.hub-mini-note{font-family:Space Mono,monospace;font-size:.62em;color:var(--text-dim);margin-top:10px;text-align:center;}.hub-test-score-stat{margin-top:6px;display:flex;align-items:center;justify-content:space-between;padding:7px 12px;}.hub-score-label{font-size:.6em;}.hub-score-value{font-size:1em;}.hub-small-accent{font-family:Space Mono,monospace;font-size:.6em;color:#f59e0b;letter-spacing:.06em;padding:4px 0 0 0;}.dl-val .dl-pct{font-size:.8em;color:var(--text-dim);}.hub-empty-mini{font-family:Space Mono,monospace;font-size:.65em;color:var(--text-dim);padding:8px 0;}.dl-val-success,.sess-score-success{color:#6aad7e}.dl-val-neutral,.sess-score-neutral{color:#8a9aaa}.dl-val-danger,.sess-score-danger{color:#b06060}.dl-dot.mode-normal,.sess-dot.mode-normal{background:#8a9aaa}.dl-dot.mode-weak,.sess-dot.mode-weak{background:#f59e0b}.dl-dot.mode-exam,.sess-dot.mode-exam{background:#6aad7e}.sess-mode{border:1px solid currentColor}.sess-mode-normal{background:#8a9aaa22;color:#8a9aaa}.sess-mode-weak{background:#f59e0b22;color:#f59e0b}.sess-mode-exam{background:#6aad7e22;color:#6aad7e}.pdf-empty{padding:28px 16px}.pdf-empty-sub{opacity:.6;font-size:.9em}.sr-opt-letter{font-family:monospace;font-size:.85em;color:#f59e0b}.sr-matched{opacity:.55;font-size:.88em}.sr-fuzzy-badge{font-size:.65em;color:#6b7280;border:1px solid #374151;border-radius:4px;padding:1px 5px;margin-left:6px;vertical-align:middle}.sr-pl{opacity:.6}.sr-none-small{font-size:.68em}.spy-muted-italic{color:var(--text-dim,#6b7280);font-style:italic}.ref-admin-only{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#0d0f12;font-family:monospace;color:#f87171;letter-spacing:.15em}.ref-rule-num{color:var(--text-dim);font-size:.72em;font-family:Space Mono,monospace;margin-right:6px;}

.nyc-lock-host{position:relative;}

/* Stage 14.2S — restore original test branding font in Hub app name */
.logo-sub{font-family:'Space Mono',monospace;font-size:0.76em;color:var(--amber);letter-spacing:0.2em;text-transform:uppercase;line-height:1.2;}
.logo-text{font-family:'Space Mono',monospace;font-size:0.6em;color:var(--text-muted);letter-spacing:0.08em;text-transform:uppercase;}


/* Stage 14.2T — restore Hub branding to old test formula: same Space Mono title + same BETA badge placement/look */
.logo-sub{
  font-family:'Space Mono',monospace!important;
  font-size:0.86em!important;
  color:var(--amber)!important;
  letter-spacing:0.2em!important;
  text-transform:uppercase!important;
  line-height:1.22!important;
  font-weight:700!important;
}
.hub-title-line-style{
  font-family:'Space Mono',monospace!important;
  font-size:0.86em!important;
  font-weight:700!important;
  letter-spacing:0.2em!important;
  color:var(--amber)!important;
  text-transform:uppercase!important;
  margin-bottom:4px!important;
  flex:1;
  min-width:0;
}
.hub-title-sub-style{
  color:#94a3b8!important;
  font-size:0.85em!important;
  text-transform:none!important;
  letter-spacing:0.05em!important;
  font-weight:400!important;
}
.hub-banner-subtitle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:6px;
  font-size:1.25em;
  font-weight:700;
  color:var(--text);
  margin-bottom:8px;
}
.beta-badge{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--amber);background:rgba(245,158,11,0.08);border-radius:4px;padding:2px 8px;font-family:'Space Mono',monospace;font-size:0.68rem;line-height:1.3;color:var(--text-dim);letter-spacing:0.04em;font-weight:400;white-space:nowrap;}
.beta-warning-icon{color:var(--amber);}
@media (max-width:640px){
  .logo-sub{font-size:0.72em!important;letter-spacing:0.14em!important;}
  .hub-title-line-style{font-size:0.72em!important;letter-spacing:0.14em!important;}
  .hub-banner-subtitle{font-size:1.05em;}
}


/* Stage 14.2V — restore shared old-test header formula in Hub */
#admin-reference-top-btn,.hub-admin-ref-top{display:none!important;}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
.logo-bolt{width:32px;height:32px;background:transparent;border:1.5px solid var(--amber);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--amber);flex:0 0 auto;}
.logo-text{font-family:'Space Mono',monospace!important;font-size:0.76em!important;color:var(--amber)!important;letter-spacing:0.1em!important;text-transform:uppercase!important;line-height:1.2!important;font-weight:700!important;}
.logo-sub{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif!important;font-size:0.6em!important;color:var(--text-muted)!important;letter-spacing:0.05em!important;text-transform:none!important;line-height:1.2!important;font-weight:400!important;margin-top:1px;}
.hub-title-line-style{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:0.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;margin-bottom:4px!important;}
.hub-title-sub-style{color:#94a3b8!important;font-size:0.85em!important;text-transform:none!important;letter-spacing:0.05em!important;font-weight:400!important;}
.hub-banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;margin-top:0!important;margin-bottom:0!important;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif!important;}
.beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid var(--amber)!important;background:rgba(245,158,11,0.08)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:0.68rem!important;line-height:1.3!important;color:var(--text-dim)!important;letter-spacing:0.04em!important;font-weight:400!important;white-space:nowrap!important;}
.beta-warning-icon{color:var(--amber)!important;}
.tc-prog-track{position:relative;overflow:hidden;}
.tc-prog-fill{display:block;height:100%;min-width:0;transition:width .25s ease;}
.tc-score-row{margin-top:6px;display:flex;align-items:center;justify-content:space-between;padding:7px 12px;}
.tc-score-label{font-size:0.6em;}
.tc-score-value{font-size:1em;}
@media (max-width:640px){
  .hub-title-line-style{font-size:0.86em!important;letter-spacing:0.11em!important;}
  .beta-badge{font-size:0.56rem!important;white-space:normal!important;}
}


/* 14.2W — Hub header restored to the same formula as legacy test headers */
header{display:none!important;}
#fixed-header{
  position:fixed;top:0;left:0;right:0;z-index:1100;
  background:var(--surface);border-bottom:1px solid var(--border);
  box-shadow:0 4px 20px rgba(0,0,0,0.4);
}
body.light-mode #fixed-header{background:#ffffff;border-color:#e2e8f0;}
.top-banner{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 16px 6px;box-shadow:0 2px 12px rgba(0,0,0,0.3);}
body.light-mode .top-banner{background:#ffffff;border-color:#e2e8f0;}
.banner-inner{max-width:1280px;margin:0 auto;}
.banner-row1{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-bottom:3px;}
.banner-title{font-family:'Space Mono',monospace;font-size:0.76em;letter-spacing:0.2em;color:var(--amber);text-transform:uppercase;flex:1;min-width:0;font-weight:700;}
.banner-title-sub{color:#94a3b8;font-size:0.85em;text-transform:none;letter-spacing:0.05em;font-weight:400;}
.banner-subtitle{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:1.25em;font-weight:700;color:var(--text);margin-bottom:8px;}
.beta-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:rgba(245,158,11,0.06);border:1px solid var(--amber);font-family:'Space Mono',monospace;font-size:0.48em;color:var(--text-dim);letter-spacing:0.08em;white-space:nowrap;font-weight:400;}
.beta-warning-icon{color:var(--amber);}
.app-header-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:10px;border:1px solid var(--amber);border-radius:5px;color:var(--amber);font-size:12px;line-height:1;letter-spacing:0;vertical-align:1px;}
.hub-stats-bar{margin-top:56px;top:56px;}
.hero{padding-top:26px;}
@media(max-width:700px){.banner-title{font-size:0.62em;letter-spacing:0.14em;}.banner-subtitle{font-size:1.05em;}.app-header-icon{width:16px;height:16px;font-size:11px;margin-right:7px;}.hub-stats-bar{margin-top:64px;top:64px;}}


/* Stage 14.2X — final header/progress correction per old test header formula */
#fixed-header{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:1100!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important;box-shadow:0 4px 20px rgba(0,0,0,0.4)!important;}
.top-banner{padding:8px 16px 7px!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important;}
.banner-inner{max-width:1280px!important;margin:0 auto!important;}
.banner-row1{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;flex-wrap:nowrap!important;margin:0!important;}
.app-brand-block{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;flex:1 1 auto!important;}
.app-logo-bolt{margin-top:1px!important;}
.app-title-lines{min-width:0!important;flex:1 1 auto!important;}
.banner-title{font-family:'Space Mono',monospace!important;font-size:0.76em!important;letter-spacing:0.2em!important;color:var(--amber)!important;text-transform:uppercase!important;font-weight:700!important;line-height:1.25!important;margin:0 0 4px 0!important;}
.banner-title-sub{color:#94a3b8!important;font-size:0.85em!important;text-transform:none!important;letter-spacing:0.05em!important;font-weight:400!important;}
.banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;font-size:1.25em!important;font-weight:700!important;color:var(--text)!important;margin:0!important;line-height:1.25!important;}
.beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;padding:2px 8px!important;border-radius:4px!important;background:rgba(245,158,11,0.06)!important;border:1px solid var(--amber)!important;font-family:'Space Mono',monospace!important;font-size:0.48em!important;color:var(--text-dim)!important;letter-spacing:0.08em!important;white-space:nowrap!important;font-weight:400!important;line-height:1.3!important;}
#nyc-sync{flex:0 0 auto!important;margin-top:2px!important;}
.hub-stats-bar{margin-top:64px!important;top:64px!important;}
.hero{padding-top:26px!important;}
.tc-prog-track{height:5px!important;background:var(--surface3)!important;border-radius:3px!important;overflow:hidden!important;}
.tc-prog-fill{display:block!important;height:100%!important;min-width:0!important;background:linear-gradient(90deg,#5a7a8a,#6a8a9a)!important;border-radius:3px!important;transition:width .25s ease!important;}
.tc-prog-fill.done{background:linear-gradient(90deg,#6aad7e,#7abd8e)!important;}
.tc-prog-fill.p-0, .gp-fill.w-0{width:0%;}
.tc-prog-fill.p-1, .gp-fill.w-1{width:1%;}
.tc-prog-fill.p-2, .gp-fill.w-2{width:2%;}
.tc-prog-fill.p-3, .gp-fill.w-3{width:3%;}
.tc-prog-fill.p-4, .gp-fill.w-4{width:4%;}
.tc-prog-fill.p-5, .gp-fill.w-5{width:5%;}
.tc-prog-fill.p-6, .gp-fill.w-6{width:6%;}
.tc-prog-fill.p-7, .gp-fill.w-7{width:7%;}
.tc-prog-fill.p-8, .gp-fill.w-8{width:8%;}
.tc-prog-fill.p-9, .gp-fill.w-9{width:9%;}
.tc-prog-fill.p-10, .gp-fill.w-10{width:10%;}
.tc-prog-fill.p-11, .gp-fill.w-11{width:11%;}
.tc-prog-fill.p-12, .gp-fill.w-12{width:12%;}
.tc-prog-fill.p-13, .gp-fill.w-13{width:13%;}
.tc-prog-fill.p-14, .gp-fill.w-14{width:14%;}
.tc-prog-fill.p-15, .gp-fill.w-15{width:15%;}
.tc-prog-fill.p-16, .gp-fill.w-16{width:16%;}
.tc-prog-fill.p-17, .gp-fill.w-17{width:17%;}
.tc-prog-fill.p-18, .gp-fill.w-18{width:18%;}
.tc-prog-fill.p-19, .gp-fill.w-19{width:19%;}
.tc-prog-fill.p-20, .gp-fill.w-20{width:20%;}
.tc-prog-fill.p-21, .gp-fill.w-21{width:21%;}
.tc-prog-fill.p-22, .gp-fill.w-22{width:22%;}
.tc-prog-fill.p-23, .gp-fill.w-23{width:23%;}
.tc-prog-fill.p-24, .gp-fill.w-24{width:24%;}
.tc-prog-fill.p-25, .gp-fill.w-25{width:25%;}
.tc-prog-fill.p-26, .gp-fill.w-26{width:26%;}
.tc-prog-fill.p-27, .gp-fill.w-27{width:27%;}
.tc-prog-fill.p-28, .gp-fill.w-28{width:28%;}
.tc-prog-fill.p-29, .gp-fill.w-29{width:29%;}
.tc-prog-fill.p-30, .gp-fill.w-30{width:30%;}
.tc-prog-fill.p-31, .gp-fill.w-31{width:31%;}
.tc-prog-fill.p-32, .gp-fill.w-32{width:32%;}
.tc-prog-fill.p-33, .gp-fill.w-33{width:33%;}
.tc-prog-fill.p-34, .gp-fill.w-34{width:34%;}
.tc-prog-fill.p-35, .gp-fill.w-35{width:35%;}
.tc-prog-fill.p-36, .gp-fill.w-36{width:36%;}
.tc-prog-fill.p-37, .gp-fill.w-37{width:37%;}
.tc-prog-fill.p-38, .gp-fill.w-38{width:38%;}
.tc-prog-fill.p-39, .gp-fill.w-39{width:39%;}
.tc-prog-fill.p-40, .gp-fill.w-40{width:40%;}
.tc-prog-fill.p-41, .gp-fill.w-41{width:41%;}
.tc-prog-fill.p-42, .gp-fill.w-42{width:42%;}
.tc-prog-fill.p-43, .gp-fill.w-43{width:43%;}
.tc-prog-fill.p-44, .gp-fill.w-44{width:44%;}
.tc-prog-fill.p-45, .gp-fill.w-45{width:45%;}
.tc-prog-fill.p-46, .gp-fill.w-46{width:46%;}
.tc-prog-fill.p-47, .gp-fill.w-47{width:47%;}
.tc-prog-fill.p-48, .gp-fill.w-48{width:48%;}
.tc-prog-fill.p-49, .gp-fill.w-49{width:49%;}
.tc-prog-fill.p-50, .gp-fill.w-50{width:50%;}
.tc-prog-fill.p-51, .gp-fill.w-51{width:51%;}
.tc-prog-fill.p-52, .gp-fill.w-52{width:52%;}
.tc-prog-fill.p-53, .gp-fill.w-53{width:53%;}
.tc-prog-fill.p-54, .gp-fill.w-54{width:54%;}
.tc-prog-fill.p-55, .gp-fill.w-55{width:55%;}
.tc-prog-fill.p-56, .gp-fill.w-56{width:56%;}
.tc-prog-fill.p-57, .gp-fill.w-57{width:57%;}
.tc-prog-fill.p-58, .gp-fill.w-58{width:58%;}
.tc-prog-fill.p-59, .gp-fill.w-59{width:59%;}
.tc-prog-fill.p-60, .gp-fill.w-60{width:60%;}
.tc-prog-fill.p-61, .gp-fill.w-61{width:61%;}
.tc-prog-fill.p-62, .gp-fill.w-62{width:62%;}
.tc-prog-fill.p-63, .gp-fill.w-63{width:63%;}
.tc-prog-fill.p-64, .gp-fill.w-64{width:64%;}
.tc-prog-fill.p-65, .gp-fill.w-65{width:65%;}
.tc-prog-fill.p-66, .gp-fill.w-66{width:66%;}
.tc-prog-fill.p-67, .gp-fill.w-67{width:67%;}
.tc-prog-fill.p-68, .gp-fill.w-68{width:68%;}
.tc-prog-fill.p-69, .gp-fill.w-69{width:69%;}
.tc-prog-fill.p-70, .gp-fill.w-70{width:70%;}
.tc-prog-fill.p-71, .gp-fill.w-71{width:71%;}
.tc-prog-fill.p-72, .gp-fill.w-72{width:72%;}
.tc-prog-fill.p-73, .gp-fill.w-73{width:73%;}
.tc-prog-fill.p-74, .gp-fill.w-74{width:74%;}
.tc-prog-fill.p-75, .gp-fill.w-75{width:75%;}
.tc-prog-fill.p-76, .gp-fill.w-76{width:76%;}
.tc-prog-fill.p-77, .gp-fill.w-77{width:77%;}
.tc-prog-fill.p-78, .gp-fill.w-78{width:78%;}
.tc-prog-fill.p-79, .gp-fill.w-79{width:79%;}
.tc-prog-fill.p-80, .gp-fill.w-80{width:80%;}
.tc-prog-fill.p-81, .gp-fill.w-81{width:81%;}
.tc-prog-fill.p-82, .gp-fill.w-82{width:82%;}
.tc-prog-fill.p-83, .gp-fill.w-83{width:83%;}
.tc-prog-fill.p-84, .gp-fill.w-84{width:84%;}
.tc-prog-fill.p-85, .gp-fill.w-85{width:85%;}
.tc-prog-fill.p-86, .gp-fill.w-86{width:86%;}
.tc-prog-fill.p-87, .gp-fill.w-87{width:87%;}
.tc-prog-fill.p-88, .gp-fill.w-88{width:88%;}
.tc-prog-fill.p-89, .gp-fill.w-89{width:89%;}
.tc-prog-fill.p-90, .gp-fill.w-90{width:90%;}
.tc-prog-fill.p-91, .gp-fill.w-91{width:91%;}
.tc-prog-fill.p-92, .gp-fill.w-92{width:92%;}
.tc-prog-fill.p-93, .gp-fill.w-93{width:93%;}
.tc-prog-fill.p-94, .gp-fill.w-94{width:94%;}
.tc-prog-fill.p-95, .gp-fill.w-95{width:95%;}
.tc-prog-fill.p-96, .gp-fill.w-96{width:96%;}
.tc-prog-fill.p-97, .gp-fill.w-97{width:97%;}
.tc-prog-fill.p-98, .gp-fill.w-98{width:98%;}
.tc-prog-fill.p-99, .gp-fill.w-99{width:99%;}
.tc-prog-fill.p-100, .gp-fill.w-100{width:100%;}
@media(max-width:700px){.banner-row1{flex-wrap:wrap!important;}.banner-title{font-size:0.62em!important;letter-spacing:0.14em!important;}.banner-subtitle{font-size:1.05em!important;}.beta-badge{font-size:0.56rem!important;white-space:normal!important;}.hub-stats-bar{margin-top:78px!important;top:78px!important;}}


/* Stage 14.2Y — compatibility restore: hub header matches test header, beta remains in header, progress bars show real percentage */
#fixed-header{position:sticky!important;top:0!important;z-index:200!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important;}
.top-banner{padding:10px 28px!important;}
.banner-inner{max-width:1280px!important;margin:0 auto!important;}
.banner-row1{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;}
.app-brand-block{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;flex:1 1 auto!important;}
.app-logo-bolt,.logo-bolt{width:32px!important;height:32px!important;background:transparent!important;border:1.5px solid var(--amber)!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:14px!important;color:var(--amber)!important;line-height:1!important;letter-spacing:0!important;flex:0 0 auto!important;}
.app-title-lines{min-width:0!important;flex:1 1 auto!important;}
.banner-title{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:0.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;margin:0 0 4px 0!important;line-height:1.25!important;}
.banner-title-sub{color:#94a3b8!important;font-size:0.85em!important;text-transform:none!important;letter-spacing:0.05em!important;font-weight:400!important;}
.banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;font-size:1.25em!important;font-weight:700!important;color:var(--text)!important;margin:0!important;line-height:1.25!important;}
.beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid var(--amber)!important;background:rgba(245,158,11,0.06)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:0.48em!important;line-height:1.3!important;color:var(--text-dim)!important;letter-spacing:0.08em!important;font-weight:400!important;white-space:nowrap!important;}
.beta-warning-icon{color:var(--amber)!important;}
.hub-stats-bar{margin-top:0!important;top:56px!important;}
.hero{padding-top:26px!important;}
.tc-prog-track{height:5px!important;background:var(--surface3)!important;border-radius:3px!important;overflow:hidden!important;}
.tc-prog-fill{display:block!important;height:100%!important;min-width:0!important;background:linear-gradient(90deg,#5a7a8a,#6a8a9a)!important;border-radius:3px!important;transition:width .25s ease!important;}
.tc-prog-fill.done{background:linear-gradient(90deg,#6aad7e,#7abd8e)!important;}
.gp-fill{display:block!important;height:100%!important;min-width:0!important;}
.hub-days-label{font-family:'Space Mono',monospace!important;font-size:.6em!important;font-weight:700!important;letter-spacing:.08em!important;padding:3px 10px!important;border-radius:6px!important;text-transform:uppercase!important;white-space:nowrap!important;}
.hub-days-warn{border:1px solid #f59e0b!important;color:#f59e0b!important;}
@media(max-width:700px){.top-banner{padding:9px 16px!important;}.banner-row1{flex-wrap:wrap!important;}.banner-title{font-size:0.86em!important;letter-spacing:0.11em!important;}.banner-subtitle{font-size:1.05em!important;}.beta-badge{font-size:0.56rem!important;white-space:normal!important;}.hub-stats-bar{top:76px!important;}}

.tc-starred-count{font-family:'Space Mono',monospace;font-size:0.6em;color:#f59e0b;letter-spacing:0.06em;padding:4px 0 0 0;}


/* Stage 14.2Z — admin operation panel + hub header beta/sync alignment + reliable test-card progress */
.hub-header-right{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex:0 0 auto!important;margin-top:1px!important;}
.hub-header-right .beta-badge{font-size:0.62em!important;}
#nyc-sync{margin-top:0!important;}
.banner-subtitle{justify-content:flex-start!important;}
.hub-admin-ops{display:none;background:rgba(13,15,18,.96);border-bottom:1px solid var(--border);padding:8px 28px 9px;}
.hub-admin-ops-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.hub-admin-ops-label{font-family:'Space Mono',monospace;font-size:.62em;letter-spacing:.14em;color:var(--text-dim);margin-right:8px;}
.hub-admin-op-btn{border:1px solid rgba(245,158,11,.55);background:rgba(245,158,11,.06);color:var(--amber);font-family:'Space Mono',monospace;font-size:.66em;font-weight:700;letter-spacing:.08em;border-radius:7px;padding:6px 11px;cursor:pointer;}
.hub-admin-op-btn:hover{background:rgba(245,158,11,.14);border-color:var(--amber);}
.tc-prog-track{background:#111820!important;border:1px solid rgba(138,154,170,.18)!important;height:7px!important;}
.tc-prog-fill{width:0%;background:linear-gradient(90deg,#f59e0b,#6aad7e)!important;box-shadow:0 0 10px rgba(245,158,11,.24)!important;}
.tc-prog-fill.done{background:linear-gradient(90deg,#6aad7e,#8bd99f)!important;}
@media(max-width:800px){.hub-header-right{width:100%;justify-content:space-between!important}.hub-admin-ops{padding:8px 16px}.hub-admin-op-btn{font-size:.6em;padding:6px 8px}}


/* Stage 14.2AB REAL — header/admin/progress compatibility restore */
#fixed-header{position:sticky!important;top:0!important;z-index:200!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important;box-shadow:none!important;}
#fixed-header .top-banner{background:var(--surface)!important;border-bottom:0!important;padding:8px 40px 8px!important;}
#fixed-header .banner-inner{max-width:1280px!important;margin:0 auto!important;width:100%!important;}
#fixed-header .banner-row1{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:18px!important;flex-wrap:nowrap!important;width:100%!important;margin:0!important;}
.app-brand-block{display:flex!important;align-items:flex-start!important;gap:10px!important;min-width:0!important;flex:1 1 auto!important;}
.app-logo-bolt,.logo-bolt.app-logo-bolt{width:32px!important;height:32px!important;border:1.5px solid var(--amber)!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--amber)!important;font-size:14px!important;line-height:1!important;letter-spacing:0!important;flex:0 0 auto!important;margin-top:0!important;}
.app-title-lines{min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important;}
.banner-title{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;line-height:1.25!important;margin:0!important;white-space:normal!important;}
.banner-title-sub{font-family:'Space Mono',monospace!important;color:#94a3b8!important;font-size:.85em!important;text-transform:none!important;letter-spacing:.05em!important;font-weight:400!important;}
.banner-subtitle{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif!important;font-size:1.25em!important;font-weight:700!important;color:var(--text)!important;line-height:1.25!important;margin:0!important;display:block!important;}
.hub-header-right{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex:0 0 auto!important;margin-left:auto!important;margin-top:4px!important;white-space:nowrap!important;}
.hub-header-right .beta-badge,.beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid var(--amber)!important;background:rgba(245,158,11,.06)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:.48em!important;line-height:1.3!important;color:var(--text-dim)!important;letter-spacing:.08em!important;font-weight:400!important;white-space:nowrap!important;}
.beta-warning-icon{color:var(--amber)!important;}
#nyc-sync{margin-top:0!important;}
.hub-stats-bar{position:sticky!important;top:49px!important;z-index:190!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important;padding:7px 40px!important;box-shadow:0 4px 20px rgba(0,0,0,.25)!important;}
.wrap{padding-top:22px!important;}
.hub-admin-ops.admin-card{display:none;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:14px!important;padding:18px 20px!important;margin:0 0 20px 0!important;box-shadow:none!important;}
.admin-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.admin-card-label{font-family:'Space Mono',monospace;font-size:.65em;letter-spacing:.15em;color:var(--amber);font-weight:700;text-transform:uppercase;}
.admin-card-sub{font-family:'Space Mono',monospace;font-size:.6em;letter-spacing:.05em;color:var(--text-dim);margin-top:4px;}
.admin-card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.hub-admin-op-btn{border:1px solid rgba(245,158,11,.55)!important;background:rgba(245,158,11,.06)!important;color:var(--amber)!important;font-family:'Space Mono',monospace!important;font-size:.66em!important;font-weight:700!important;letter-spacing:.08em!important;border-radius:8px!important;padding:8px 12px!important;cursor:pointer!important;}
.hub-admin-op-btn:hover{background:rgba(245,158,11,.14)!important;border-color:var(--amber)!important;color:var(--text)!important;}
.tc-prog-track{position:relative!important;height:8px!important;background:#111820!important;border:1px solid rgba(138,154,170,.18)!important;border-radius:4px!important;overflow:hidden!important;}
.tc-prog-fill{display:block!important;height:100%!important;min-width:0!important;border-radius:3px!important;background:linear-gradient(90deg,#f59e0b,#6aad7e)!important;box-shadow:0 0 10px rgba(245,158,11,.22)!important;transition:width .25s ease!important;}
.tc-prog-fill.done{background:linear-gradient(90deg,#6aad7e,#8bd99f)!important;}
.tc-prog-fill.p-0{width:0%!important;}
.tc-prog-fill.p-1{width:1%!important;}
.tc-prog-fill.p-2{width:2%!important;}
.tc-prog-fill.p-3{width:3%!important;}
.tc-prog-fill.p-4{width:4%!important;}
.tc-prog-fill.p-5{width:5%!important;}
.tc-prog-fill.p-6{width:6%!important;}
.tc-prog-fill.p-7{width:7%!important;}
.tc-prog-fill.p-8{width:8%!important;}
.tc-prog-fill.p-9{width:9%!important;}
.tc-prog-fill.p-10{width:10%!important;}
.tc-prog-fill.p-11{width:11%!important;}
.tc-prog-fill.p-12{width:12%!important;}
.tc-prog-fill.p-13{width:13%!important;}
.tc-prog-fill.p-14{width:14%!important;}
.tc-prog-fill.p-15{width:15%!important;}
.tc-prog-fill.p-16{width:16%!important;}
.tc-prog-fill.p-17{width:17%!important;}
.tc-prog-fill.p-18{width:18%!important;}
.tc-prog-fill.p-19{width:19%!important;}
.tc-prog-fill.p-20{width:20%!important;}
.tc-prog-fill.p-21{width:21%!important;}
.tc-prog-fill.p-22{width:22%!important;}
.tc-prog-fill.p-23{width:23%!important;}
.tc-prog-fill.p-24{width:24%!important;}
.tc-prog-fill.p-25{width:25%!important;}
.tc-prog-fill.p-26{width:26%!important;}
.tc-prog-fill.p-27{width:27%!important;}
.tc-prog-fill.p-28{width:28%!important;}
.tc-prog-fill.p-29{width:29%!important;}
.tc-prog-fill.p-30{width:30%!important;}
.tc-prog-fill.p-31{width:31%!important;}
.tc-prog-fill.p-32{width:32%!important;}
.tc-prog-fill.p-33{width:33%!important;}
.tc-prog-fill.p-34{width:34%!important;}
.tc-prog-fill.p-35{width:35%!important;}
.tc-prog-fill.p-36{width:36%!important;}
.tc-prog-fill.p-37{width:37%!important;}
.tc-prog-fill.p-38{width:38%!important;}
.tc-prog-fill.p-39{width:39%!important;}
.tc-prog-fill.p-40{width:40%!important;}
.tc-prog-fill.p-41{width:41%!important;}
.tc-prog-fill.p-42{width:42%!important;}
.tc-prog-fill.p-43{width:43%!important;}
.tc-prog-fill.p-44{width:44%!important;}
.tc-prog-fill.p-45{width:45%!important;}
.tc-prog-fill.p-46{width:46%!important;}
.tc-prog-fill.p-47{width:47%!important;}
.tc-prog-fill.p-48{width:48%!important;}
.tc-prog-fill.p-49{width:49%!important;}
.tc-prog-fill.p-50{width:50%!important;}
.tc-prog-fill.p-51{width:51%!important;}
.tc-prog-fill.p-52{width:52%!important;}
.tc-prog-fill.p-53{width:53%!important;}
.tc-prog-fill.p-54{width:54%!important;}
.tc-prog-fill.p-55{width:55%!important;}
.tc-prog-fill.p-56{width:56%!important;}
.tc-prog-fill.p-57{width:57%!important;}
.tc-prog-fill.p-58{width:58%!important;}
.tc-prog-fill.p-59{width:59%!important;}
.tc-prog-fill.p-60{width:60%!important;}
.tc-prog-fill.p-61{width:61%!important;}
.tc-prog-fill.p-62{width:62%!important;}
.tc-prog-fill.p-63{width:63%!important;}
.tc-prog-fill.p-64{width:64%!important;}
.tc-prog-fill.p-65{width:65%!important;}
.tc-prog-fill.p-66{width:66%!important;}
.tc-prog-fill.p-67{width:67%!important;}
.tc-prog-fill.p-68{width:68%!important;}
.tc-prog-fill.p-69{width:69%!important;}
.tc-prog-fill.p-70{width:70%!important;}
.tc-prog-fill.p-71{width:71%!important;}
.tc-prog-fill.p-72{width:72%!important;}
.tc-prog-fill.p-73{width:73%!important;}
.tc-prog-fill.p-74{width:74%!important;}
.tc-prog-fill.p-75{width:75%!important;}
.tc-prog-fill.p-76{width:76%!important;}
.tc-prog-fill.p-77{width:77%!important;}
.tc-prog-fill.p-78{width:78%!important;}
.tc-prog-fill.p-79{width:79%!important;}
.tc-prog-fill.p-80{width:80%!important;}
.tc-prog-fill.p-81{width:81%!important;}
.tc-prog-fill.p-82{width:82%!important;}
.tc-prog-fill.p-83{width:83%!important;}
.tc-prog-fill.p-84{width:84%!important;}
.tc-prog-fill.p-85{width:85%!important;}
.tc-prog-fill.p-86{width:86%!important;}
.tc-prog-fill.p-87{width:87%!important;}
.tc-prog-fill.p-88{width:88%!important;}
.tc-prog-fill.p-89{width:89%!important;}
.tc-prog-fill.p-90{width:90%!important;}
.tc-prog-fill.p-91{width:91%!important;}
.tc-prog-fill.p-92{width:92%!important;}
.tc-prog-fill.p-93{width:93%!important;}
.tc-prog-fill.p-94{width:94%!important;}
.tc-prog-fill.p-95{width:95%!important;}
.tc-prog-fill.p-96{width:96%!important;}
.tc-prog-fill.p-97{width:97%!important;}
.tc-prog-fill.p-98{width:98%!important;}
.tc-prog-fill.p-99{width:99%!important;}
.tc-prog-fill.p-100{width:100%!important;}
@media(max-width:800px){#fixed-header .top-banner{padding:8px 16px!important;}#fixed-header .banner-row1{flex-wrap:wrap!important;}.hub-header-right{width:100%!important;justify-content:space-between!important;margin-top:6px!important;}.banner-title{font-size:.86em!important;letter-spacing:.11em!important;}.hub-stats-bar{top:76px!important;padding-left:16px!important;padding-right:16px!important;}}


/* Stage 14.2AC — copy visual fixed-header layout from test.html into Hub */
#fixed-header.hub-fixed-test-header{
  position:sticky!important;top:0!important;z-index:9000!important;
  background:#151a20!important;border-bottom:1px solid #263241!important;
  padding:0!important;box-shadow:none!important;
}
#fixed-header .hub-app-top{
  max-width:none!important;margin:0!important;padding:12px 40px 10px!important;
  display:flex!important;gap:12px!important;align-items:flex-start!important;justify-content:space-between!important;
  background:#151a20!important;border:0!important;min-height:70px!important;
}
#fixed-header .hub-test-logo{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;flex:1 1 auto!important;}
#fixed-header .logo-bolt{width:32px!important;height:32px!important;background:transparent!important;border:1.5px solid #f59e0b!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:14px!important;color:#f59e0b!important;line-height:1!important;letter-spacing:0!important;flex:0 0 auto!important;margin-top:0!important;}
#fixed-header .hub-test-title-wrap{min-width:0!important;flex:1 1 auto!important;}
#fixed-header .banner-title.brand{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;margin:0 0 4px!important;line-height:1.25!important;}
#fixed-header .banner-title-sub{color:#94a3b8!important;font-size:.85em!important;text-transform:none!important;letter-spacing:.05em!important;font-weight:400!important;}
#fixed-header .hub-banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;flex-wrap:nowrap!important;width:100%!important;margin:0!important;line-height:1.25!important;}
#fixed-header .hub-subtitle-main{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif!important;font-size:1.35rem!important;color:#e2e8f0!important;font-weight:800!important;margin:0!important;line-height:1.2!important;white-space:nowrap!important;}
#fixed-header .beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid #f59e0b!important;background:rgba(245,158,11,.06)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:.68rem!important;line-height:1.3!important;color:#94a3b8!important;letter-spacing:.04em!important;font-weight:400!important;white-space:nowrap!important;margin:0 0 0 auto!important;}
#fixed-header .beta-warning-icon{color:#f59e0b!important;}
#fixed-header .hub-header-tools{display:flex!important;align-items:flex-start!important;justify-content:flex-end!important;gap:8px!important;margin:0!important;padding-top:4px!important;flex:0 0 auto!important;}
#fixed-header #nyc-sync{display:flex!important;align-items:center!important;gap:5px!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;}
#fixed-header #nyc-sync-dot{width:7px!important;height:7px!important;border-radius:50%!important;background:#6aad7e!important;}
#fixed-header #nyc-sync-txt{font-size:.85rem!important;line-height:1!important;color:#6aad7e!important;}
.hub-stats-bar{position:sticky!important;top:70px!important;z-index:8900!important;}
.btn-hub-settings{top:132px!important;}
.wrap{padding-top:20px!important;}
.admin-ops-card{display:none;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:14px!important;padding:16px 18px!important;margin:0 0 20px 0!important;box-shadow:none!important;}
.admin-ops-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;flex-wrap:wrap!important;}
.admin-ops-title{font-family:'Space Mono',monospace!important;font-size:.68em!important;letter-spacing:.15em!important;color:#f59e0b!important;font-weight:700!important;text-transform:uppercase!important;}
.admin-ops-sub{font-family:'Space Mono',monospace!important;font-size:.6em!important;letter-spacing:.05em!important;color:var(--text-dim)!important;margin-top:4px!important;}
.admin-ops-actions{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;}
#hub-admin-ops .hub-admin-op-btn{border:1px solid rgba(245,158,11,.55)!important;background:rgba(245,158,11,.06)!important;color:#f59e0b!important;font-family:'Space Mono',monospace!important;font-size:.66em!important;font-weight:700!important;letter-spacing:.08em!important;border-radius:8px!important;padding:8px 12px!important;cursor:pointer!important;}
#hub-admin-ops .hub-admin-op-btn:hover{background:rgba(245,158,11,.14)!important;border-color:#f59e0b!important;color:#e2e8f0!important;}
.tc-prog-fill{display:block!important;height:100%!important;min-width:0!important;width:var(--progress-pct,0%)!important;}
@media(max-width:760px){
  #fixed-header .hub-app-top{padding:10px 16px!important;min-height:auto!important;flex-wrap:wrap!important;}
  #fixed-header .banner-title.brand{font-size:.84em!important;letter-spacing:.1em!important;}
  #fixed-header .hub-banner-subtitle{flex-wrap:wrap!important;gap:8px!important;}
  #fixed-header .hub-subtitle-main{font-size:1.15rem!important;}
  #fixed-header .beta-badge{font-size:.56rem!important;white-space:normal!important;margin-left:0!important;}
  .hub-stats-bar{top:92px!important;padding-left:16px!important;padding-right:16px!important;}
  .btn-hub-settings{top:154px!important;}
}


/* Stage 14.2AD — final: hub header copied from test.html, admin panel directly UNDER header */
#fixed-header.hub-fixed-test-header{
  position:sticky!important;top:0!important;z-index:9000!important;
  background:#151a20!important;border-bottom:1px solid #263241!important;
  box-shadow:none!important;
}
#fixed-header .top.app-top{
  display:flex!important;align-items:flex-start!important;justify-content:space-between!important;
  gap:12px!important;margin:0!important;padding:14px 48px 12px!important;
}
#fixed-header .test-logo{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;flex:1 1 auto!important;}
#fixed-header .logo-bolt{width:32px!important;height:32px!important;background:transparent!important;border:1.5px solid #f59e0b!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:14px!important;color:#f59e0b!important;line-height:1!important;letter-spacing:0!important;flex:0 0 auto!important;margin-top:1px!important;}
#fixed-header .test-title-wrap{min-width:0!important;flex:1 1 auto!important;}
#fixed-header .banner-title.brand{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;margin:0 0 4px!important;line-height:1.25!important;}
#fixed-header .banner-title-sub{color:#94a3b8!important;font-size:.85em!important;text-transform:none!important;letter-spacing:.05em!important;font-weight:400!important;}
#fixed-header .banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;margin:0!important;line-height:1.25!important;width:100%!important;}
#fixed-header .banner-subtitle .sub{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif!important;font-size:1rem!important;color:#e2e8f0!important;font-weight:700!important;margin:0!important;line-height:1.25!important;}
#fixed-header .beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid #f59e0b!important;background:rgba(245,158,11,.06)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:.48em!important;line-height:1.3!important;color:#8a9aaa!important;letter-spacing:.08em!important;font-weight:400!important;white-space:nowrap!important;margin:0!important;}
#fixed-header .beta-warning-icon{color:#f59e0b!important;}
#fixed-header .hub-header-tools{display:flex!important;align-items:flex-start!important;margin:0!important;padding:0!important;gap:8px!important;flex:0 0 auto!important;}
/* Remove the old duplicate strip that showed ADMIN MODE / Score / Correct / Sessions */
.hub-stats-bar{display:none!important;}
/* Admin tools: real panel/card directly under fixed header, above Overall Progress */
#hub-admin-ops.admin-ops-card{display:none;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:14px!important;padding:16px 18px!important;margin:18px 0 20px 0!important;box-shadow:none!important;}
#hub-admin-ops .admin-ops-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;flex-wrap:wrap!important;}
#hub-admin-ops .admin-ops-title{font-family:'Space Mono',monospace!important;font-size:.72em!important;letter-spacing:.15em!important;color:#f59e0b!important;font-weight:700!important;text-transform:uppercase!important;}
#hub-admin-ops .admin-ops-sub{font-family:'Space Mono',monospace!important;font-size:.62em!important;letter-spacing:.05em!important;color:var(--text-dim)!important;margin-top:4px!important;}
#hub-admin-ops .admin-ops-actions{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;}
#hub-admin-ops .hub-admin-op-btn{border:1px solid rgba(245,158,11,.55)!important;background:rgba(245,158,11,.06)!important;color:#f59e0b!important;font-family:'Space Mono',monospace!important;font-size:.66em!important;font-weight:700!important;letter-spacing:.08em!important;border-radius:8px!important;padding:8px 12px!important;cursor:pointer!important;}
#hub-admin-ops .hub-admin-op-btn:hover{background:rgba(245,158,11,.14)!important;border-color:#f59e0b!important;color:#e2e8f0!important;}
.btn-hub-settings{top:132px!important;}
@media(max-width:700px){
  #fixed-header .top.app-top{padding:10px 16px!important;flex-direction:column!important;}
  #fixed-header .banner-title.brand{font-size:.86em!important;letter-spacing:.11em!important;}
  #fixed-header .beta-badge{font-size:.56rem!important;white-space:normal!important;}
  #fixed-header .hub-header-tools{align-self:flex-end!important;}
  .btn-hub-settings{top:160px!important;}
}


/* Stage 14.2AE — REAL fix: restore test-grid rendering after removing hub stats strip; tighten Hub layout */
.wrap{max-width:1180px!important;margin-left:auto!important;margin-right:auto!important;}
#fixed-header.hub-fixed-test-header{position:sticky!important;top:0!important;z-index:9000!important;background:#151a20!important;border-bottom:1px solid #263241!important;box-shadow:none!important;}
#fixed-header .top.app-top{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin:0!important;padding:14px 48px 12px!important;min-height:72px!important;box-sizing:border-box!important;}
#fixed-header .test-logo{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;flex:1 1 auto!important;}
#fixed-header .logo-bolt{width:32px!important;height:32px!important;background:transparent!important;border:1.5px solid #f59e0b!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:14px!important;color:#f59e0b!important;line-height:1!important;letter-spacing:0!important;flex:0 0 auto!important;margin-top:1px!important;}
#fixed-header .test-title-wrap{min-width:0!important;flex:1 1 auto!important;}
#fixed-header .banner-title.brand{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;margin:0 0 4px!important;line-height:1.25!important;}
#fixed-header .banner-title-sub{color:#94a3b8!important;font-size:.85em!important;text-transform:none!important;letter-spacing:.05em!important;font-weight:400!important;}
#fixed-header .banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:nowrap!important;margin:0!important;line-height:1.25!important;width:100%!important;}
#fixed-header .banner-subtitle .sub{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif!important;font-size:1rem!important;color:#e2e8f0!important;font-weight:700!important;margin:0!important;line-height:1.25!important;white-space:nowrap!important;}
#fixed-header .beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid #f59e0b!important;background:rgba(245,158,11,.06)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:.48em!important;line-height:1.3!important;color:#8a9aaa!important;letter-spacing:.08em!important;font-weight:400!important;white-space:nowrap!important;margin-left:auto!important;}
#fixed-header .hub-header-tools{display:flex!important;align-items:flex-start!important;margin:0!important;padding:0!important;gap:8px!important;flex:0 0 auto!important;}
.hub-stats-bar{display:none!important;}
#hub-admin-ops.admin-ops-card{max-width:100%!important;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:14px!important;padding:16px 18px!important;margin:18px 0 20px 0!important;box-shadow:none!important;}
#hub-admin-ops .admin-ops-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;flex-wrap:wrap!important;}
#hub-admin-ops .admin-ops-actions{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;}
.tests-grid{min-height:120px;}
.tc-prog-fill{display:block!important;height:100%!important;min-width:0!important;width:var(--progress-pct,0%)!important;}
@media(max-width:700px){
  .wrap{padding-left:16px!important;padding-right:16px!important;}
  #fixed-header .top.app-top{padding:10px 16px!important;flex-direction:column!important;min-height:auto!important;}
  #fixed-header .banner-title.brand{font-size:.86em!important;letter-spacing:.11em!important;}
  #fixed-header .banner-subtitle{flex-wrap:wrap!important;}
  #fixed-header .beta-badge{font-size:.56rem!important;white-space:normal!important;margin-left:0!important;}
  #fixed-header .hub-header-tools{align-self:flex-end!important;}
}


/* Stage 14.2AF — final header/settings admin cleanup */
#fixed-header.hub-fixed-test-header{
  position:sticky!important;top:0!important;z-index:9000!important;
  background:#151a20!important;border-bottom:1px solid #263241!important;box-shadow:none!important;
}
#fixed-header .top.app-top{
  display:flex!important;align-items:flex-start!important;justify-content:space-between!important;
  gap:12px!important;margin:0!important;padding:14px 48px 12px!important;min-height:72px!important;box-sizing:border-box!important;
}
#fixed-header .test-logo{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;}
#fixed-header .test-title-wrap{min-width:0!important;flex:1 1 auto!important;}
#fixed-header .logo-bolt{width:32px!important;height:32px!important;border:1.5px solid #f59e0b!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#f59e0b!important;font-size:14px!important;line-height:1!important;flex:0 0 auto!important;}
#fixed-header .banner-title.brand{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;margin:0 0 4px!important;line-height:1.25!important;}
#fixed-header .banner-title-sub{color:#94a3b8!important;font-size:.85em!important;text-transform:none!important;letter-spacing:.05em!important;font-weight:400!important;}
#fixed-header .banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;}
#fixed-header .banner-subtitle .sub{font-size:1rem!important;color:#e2e8f0!important;font-weight:700!important;margin:0!important;}
#fixed-header .beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid #f59e0b!important;background:rgba(245,158,11,.06)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:.48em!important;line-height:1.3!important;color:#8a9aaa!important;letter-spacing:.08em!important;font-weight:400!important;white-space:nowrap!important;margin:0!important;}
#fixed-header .hub-header-tools{display:flex!important;align-items:center!important;justify-content:flex-end!important;margin:0!important;padding:0!important;}
.hub-stats-bar{position:sticky!important;top:72px!important;z-index:8900!important;background:#151a20!important;border-bottom:1px solid #263241!important;padding:7px 48px!important;box-shadow:none!important;}
.hub-stats-inner{max-width:1280px!important;margin:0 auto!important;display:flex!important;align-items:center!important;gap:8px!important;}
.h-pill{font-family:'Space Mono',monospace!important;font-size:.65em!important;padding:5px 12px!important;border-radius:6px!important;border:1px solid var(--border)!important;background:var(--surface2)!important;color:var(--text-muted)!important;white-space:nowrap!important;}
.token-pill{color:#6aad7e!important;border-color:rgba(106,173,126,.55)!important;background:rgba(106,173,126,.06)!important;font-weight:700!important;}
.hub-sync-spacer{flex:1 1 auto!important;}
#hub-admin-ops{display:none!important;}
.settings-admin-tools{display:none;grid-template-columns:1fr;gap:8px;margin-top:14px;border-top:1px solid var(--border);padding-top:14px;}
.settings-admin-tools-title{font-family:'Space Mono',monospace;font-size:.6em;letter-spacing:.16em;color:#f59e0b;font-weight:700;}
.settings-admin-tools .hub-sm-btn{text-align:left;}
.wrap{max-width:1280px!important;margin:0 auto!important;padding:26px 28px 0!important;}
@media(max-width:700px){
  #fixed-header .top.app-top{padding:10px 16px!important;flex-direction:column!important;min-height:auto!important;}
  #fixed-header .banner-title.brand{font-size:.86em!important;letter-spacing:.11em!important;}
  #fixed-header .beta-badge{font-size:.56rem!important;white-space:normal!important;}
  .hub-stats-bar{position:sticky!important;top:0!important;padding:7px 16px!important;}
  .hub-stats-inner{flex-wrap:wrap!important;}
  .wrap{padding:18px 16px 0!important;}
}

/* Stage 14.2AF final override: stats bar must be visible (older AE rule hid it) */
.hub-stats-bar{display:block!important;}

/* Stage 14.2AG — final header/status alignment: Hub header uses test header geometry; token counter replaces ADMIN MODE */
#fixed-header.hub-fixed-test-header{
  position:sticky!important;
  top:0!important;
  z-index:9000!important;
  background:#151a20!important;
  border-bottom:1px solid #263241!important;
  box-shadow:none!important;
}
#fixed-header .top.app-top{
  max-width:1280px!important;
  margin:0 auto!important;
  padding:14px 18px 12px!important;
  min-height:70px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
}
#fixed-header .test-logo{
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  min-width:0!important;
  flex:1 1 auto!important;
}
#fixed-header .logo-bolt{
  width:32px!important;
  height:32px!important;
  background:transparent!important;
  border:1.5px solid #f59e0b!important;
  border-radius:8px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:14px!important;
  color:#f59e0b!important;
  line-height:1!important;
  letter-spacing:0!important;
  flex:0 0 auto!important;
  margin-top:1px!important;
}
#fixed-header .test-title-wrap{
  min-width:0!important;
  flex:1 1 auto!important;
}
#fixed-header .banner-title.brand{
  font-family:'Space Mono',monospace!important;
  font-size:1.1em!important;
  font-weight:700!important;
  letter-spacing:.15em!important;
  color:#8a9aaa!important;
  text-transform:uppercase!important;
  margin:0 0 4px!important;
  line-height:1.25!important;
}
#fixed-header .banner-title-sub{
  color:#94a3b8!important;
  font-size:.85em!important;
  text-transform:none!important;
  letter-spacing:.05em!important;
  font-weight:400!important;
}
#fixed-header .banner-subtitle{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  width:100%!important;
  margin:0!important;
  line-height:1.25!important;
}
#fixed-header .banner-subtitle .sub{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif!important;
  font-size:1rem!important;
  color:#e2e8f0!important;
  font-weight:700!important;
  margin:0!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}
#fixed-header .beta-badge{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  border:1px solid #f59e0b!important;
  background:rgba(245,158,11,.06)!important;
  border-radius:4px!important;
  padding:2px 8px!important;
  font-family:'Space Mono',monospace!important;
  font-size:.48em!important;
  line-height:1.3!important;
  color:#8a9aaa!important;
  letter-spacing:.08em!important;
  font-weight:400!important;
  white-space:nowrap!important;
  margin:0!important;
}
#fixed-header .hub-header-tools{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  flex:0 0 auto!important;
  gap:8px!important;
  margin:0!important;
  padding:0!important;
}
#fixed-header #nyc-sync{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
#fixed-header #nyc-sync-dot{width:7px!important;height:7px!important;border-radius:50%!important;background:#6aad7e!important;}
#fixed-header #nyc-sync-txt{font-size:.85rem!important;line-height:1!important;color:#6aad7e!important;}
.hub-stats-bar{
  display:block!important;
  position:sticky!important;
  top:70px!important;
  z-index:8900!important;
  background:#151a20!important;
  border-bottom:1px solid #263241!important;
  padding:7px 18px!important;
  box-shadow:none!important;
}
.hub-stats-inner{
  max-width:1280px!important;
  margin:0 auto!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
}
.hub-sync-spacer{flex:1 1 auto!important;}
.h-pill{
  font-family:'Space Mono',monospace!important;
  font-size:.65em!important;
  padding:5px 12px!important;
  border-radius:6px!important;
  border:1px solid var(--border)!important;
  background:var(--surface2)!important;
  color:var(--text-muted)!important;
  white-space:nowrap!important;
}
.token-pill{border-color:#6aad7e!important;color:#6aad7e!important;background:rgba(106,173,126,.08)!important;font-weight:700!important;}
.wrap{max-width:1280px!important;margin:0 auto!important;padding:26px 28px 0!important;}
@media(max-width:800px){
  #fixed-header .top.app-top{padding:10px 16px!important;min-height:auto!important;}
  #fixed-header .banner-title.brand{font-size:.86em!important;letter-spacing:.11em!important;}
  #fixed-header .banner-subtitle{flex-wrap:wrap!important;}
  #fixed-header .beta-badge{font-size:.56rem!important;white-space:normal!important;}
  .hub-stats-bar{top:86px!important;padding:7px 16px!important;}
  .hub-stats-inner{flex-wrap:wrap!important;}
  .wrap{padding:18px 16px 0!important;}
}

/* Stage 14.2AH — final pixel alignment requested by user.
   Header width/geometry: same visual formula as test header.
   Top row: BETA is right-aligned directly before green SYNC dots.
   Status row: token counter aligns with app icon on the left; Score/Correct/Sessions align right with BETA/SYNC. */
:root{--hub-header-side-pad:28px;}
#fixed-header.hub-fixed-test-header{
  width:100%!important;
  max-width:none!important;
}
#fixed-header .top.app-top{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:14px var(--hub-header-side-pad) 12px var(--hub-header-side-pad)!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  box-sizing:border-box!important;
}
#fixed-header .test-logo{
  flex:1 1 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
}
#fixed-header .test-title-wrap{
  flex:1 1 auto!important;
  min-width:0!important;
}
#fixed-header .banner-subtitle{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
  width:100%!important;
}
#fixed-header .banner-subtitle .sub{
  flex:0 0 auto!important;
}
#fixed-header .beta-badge{
  margin-left:auto!important;
  margin-right:8px!important;
  transform:none!important;
  flex:0 0 auto!important;
}
#fixed-header .hub-header-tools{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  padding:0!important;
  margin:0!important;
  gap:0!important;
}
.hub-stats-bar{
  padding:7px var(--hub-header-side-pad)!important;
}
.hub-stats-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.hub-sync-spacer{
  flex:1 1 auto!important;
}
@media(max-width:800px){
  :root{--hub-header-side-pad:16px;}
  #fixed-header .top.app-top{padding:10px var(--hub-header-side-pad)!important;}
  #fixed-header .banner-subtitle{flex-wrap:wrap!important;}
  #fixed-header .beta-badge{margin-left:0!important;margin-right:0!important;}
  .hub-stats-bar{padding:7px var(--hub-header-side-pad)!important;}
}

/* Stage 14.2AJ — FINAL correction: hub header/status use same wide content lane as hub/test body, not narrow 980 lane */
:root{--hub-test-header-width:1280px;--hub-header-side-pad:28px;}
#fixed-header.hub-fixed-test-header .top.app-top{
  max-width:var(--hub-test-header-width)!important;
  margin:0 auto!important;
  padding-left:var(--hub-header-side-pad)!important;
  padding-right:var(--hub-header-side-pad)!important;
  box-sizing:border-box!important;
}
#fixed-header.hub-fixed-test-header .test-title-wrap{
  flex:1 1 auto!important;
  min-width:0!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle{
  width:100%!important;
  justify-content:space-between!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools{
  flex:0 0 auto!important;
}
.hub-stats-bar{
  padding-left:0!important;
  padding-right:0!important;
}
.hub-stats-inner{
  max-width:var(--hub-test-header-width)!important;
  margin:0 auto!important;
  padding-left:var(--hub-header-side-pad)!important;
  padding-right:var(--hub-header-side-pad)!important;
  box-sizing:border-box!important;
}
@media(max-width:1340px){
  :root{--hub-test-header-width:100%;--hub-header-side-pad:28px;}
}
@media(max-width:800px){
  :root{--hub-header-side-pad:16px;}
}

/* Stage 14.2AK — hub header symmetry fix.
   Keep the hub header content inside the same lane, but let the left logo/title block
   take the full available width so BETA is pushed to the far right directly before SYNC. */
:root{
  --hub-test-header-width:1280px;
  --hub-header-side-pad:28px;
}
#fixed-header.hub-fixed-test-header .top.app-top{
  width:100%!important;
  max-width:var(--hub-test-header-width)!important;
  margin:0 auto!important;
  padding-left:var(--hub-header-side-pad)!important;
  padding-right:var(--hub-header-side-pad)!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:12px!important;
}
#fixed-header.hub-fixed-test-header .test-logo{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
}
#fixed-header.hub-fixed-test-header .test-title-wrap{
  flex:1 1 auto!important;
  min-width:0!important;
  width:100%!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle .sub{
  flex:0 0 auto!important;
}
#fixed-header.hub-fixed-test-header .beta-badge{
  margin-left:auto!important;
  margin-right:0!important;
  flex:0 0 auto!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools{
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
}
.hub-stats-inner{
  max-width:var(--hub-test-header-width)!important;
  margin:0 auto!important;
  padding-left:var(--hub-header-side-pad)!important;
  padding-right:var(--hub-header-side-pad)!important;
  box-sizing:border-box!important;
}
@media(max-width:1340px){
  :root{--hub-test-header-width:100%;}
}
@media(max-width:800px){
  :root{--hub-header-side-pad:16px;}
  #fixed-header.hub-fixed-test-header .top.app-top{padding-left:var(--hub-header-side-pad)!important;padding-right:var(--hub-header-side-pad)!important;}
  #fixed-header.hub-fixed-test-header .banner-subtitle{flex-wrap:wrap!important;}
}


/* Stage 14.2AL — final hub header right-side symmetry.
   BETA moved into the same right tools group as SYNC so it aligns to the real
   right edge of the hub header lane, not to the subtitle/text block. */
#fixed-header.hub-fixed-test-header .top.app-top{
  max-width:1280px!important;
  width:100%!important;
  margin:0 auto!important;
  padding-left:28px!important;
  padding-right:28px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
}
#fixed-header.hub-fixed-test-header .test-logo{
  flex:1 1 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
}
#fixed-header.hub-fixed-test-header .test-title-wrap{
  min-width:0!important;
  flex:1 1 auto!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle{
  display:block!important;
  width:auto!important;
  margin:0!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools{
  flex:0 0 auto!important;
  margin-left:auto!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  gap:8px!important;
  white-space:nowrap!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools .beta-badge{
  margin:4px 0 0 0!important;
  flex:0 0 auto!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools #nyc-sync{
  margin-top:0!important;
  flex:0 0 auto!important;
}
.hub-stats-inner{
  max-width:1280px!important;
  width:100%!important;
  margin:0 auto!important;
  padding-left:28px!important;
  padding-right:28px!important;
  box-sizing:border-box!important;
}
@media(max-width:1340px){
  #fixed-header.hub-fixed-test-header .top.app-top,
  .hub-stats-inner{max-width:100%!important;}
}
@media(max-width:800px){
  #fixed-header.hub-fixed-test-header .top.app-top,
  .hub-stats-inner{padding-left:16px!important;padding-right:16px!important;}
  #fixed-header.hub-fixed-test-header .top.app-top{flex-wrap:wrap!important;}
  #fixed-header.hub-fixed-test-header .hub-header-tools{width:100%!important;justify-content:flex-end!important;}
}


/* Stage 14.2AM REAL — Hub fixed header uses the exact test.html header structure.
   Header source of truth: css/test.css .wrap/.top/.test-logo/.banner-subtitle. */
#fixed-header.hub-fixed-test-header{
  position:sticky!important;top:0!important;z-index:9000!important;
  background:#151a20!important;border-bottom:1px solid #263241!important;box-shadow:none!important;
}
#fixed-header .top.app-top{
  max-width:980px!important;
  margin:0 auto!important;
  padding:18px!important;
  display:flex!important;
  gap:12px!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  box-sizing:border-box!important;
}
#fixed-header .test-logo{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;flex:1 1 auto!important;}
#fixed-header .logo-bolt{width:32px!important;height:32px!important;background:transparent!important;border:1.5px solid #f59e0b!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:14px!important;color:#f59e0b!important;line-height:1!important;letter-spacing:0!important;flex:0 0 auto!important;margin-top:1px!important;}
#fixed-header .test-title-wrap{min-width:0!important;flex:1 1 auto!important;}
#fixed-header .banner-title.brand{font-family:'Space Mono',monospace!important;font-size:1.1em!important;font-weight:700!important;letter-spacing:.15em!important;color:#8a9aaa!important;text-transform:uppercase!important;margin:0 0 4px!important;line-height:1.25!important;}
#fixed-header .banner-title-sub{color:#94a3b8!important;font-size:.85em!important;text-transform:none!important;letter-spacing:.05em!important;font-weight:400!important;}
#fixed-header .banner-subtitle{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important;margin:0!important;line-height:1.25!important;width:100%!important;}
#fixed-header .banner-subtitle .sub{font-size:1rem!important;color:#e2e8f0!important;font-weight:700!important;margin:0!important;line-height:1.25!important;}
#fixed-header .beta-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;border:1px solid #f59e0b!important;background:rgba(245,158,11,.06)!important;border-radius:4px!important;padding:2px 8px!important;font-family:'Space Mono',monospace!important;font-size:.48em!important;line-height:1.3!important;color:#8a9aaa!important;letter-spacing:.08em!important;font-weight:400!important;white-space:nowrap!important;margin:0!important;}
#fixed-header .beta-warning-icon{color:#f59e0b!important;}
#fixed-header .hub-header-tools{display:flex!important;align-items:flex-start!important;margin:0!important;padding:0!important;gap:8px!important;flex:0 0 auto!important;}
#fixed-header #nyc-sync{display:flex!important;align-items:center!important;gap:5px!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;}
#fixed-header #nyc-sync-dot{width:7px!important;height:7px!important;border-radius:50%!important;background:#6aad7e!important;}
#fixed-header #nyc-sync-txt{font-size:.85rem!important;line-height:1!important;color:#6aad7e!important;}
.hub-stats-bar{position:sticky!important;top:70px!important;z-index:8999!important;background:#151a20!important;border-bottom:1px solid #263241!important;padding:8px 18px!important;}
.hub-stats-inner{max-width:980px!important;margin:0 auto!important;width:100%!important;display:flex!important;align-items:center!important;gap:8px!important;box-sizing:border-box!important;}
.hub-sync-spacer{flex:1 1 auto!important;}
@media(max-width:700px){
  #fixed-header .top.app-top{padding:14px 12px!important;flex-direction:column!important;}
  #fixed-header .banner-title.brand{font-size:.86em!important;letter-spacing:.11em!important;}
  #fixed-header .beta-badge{font-size:.56rem!important;white-space:normal!important;}
  #fixed-header .hub-header-tools{align-self:flex-end!important;}
  .hub-stats-bar{top:94px!important;padding-left:12px!important;padding-right:12px!important;}
}


/* Stage 14.2AN — FINAL hub header row alignment.
   Row 1: app title left, SYNC right.
   Row 2: Study Hub left, BETA right.
   This fixes the hub only; test header remains unchanged. */
#fixed-header.hub-fixed-test-header .top.app-top{
  max-width:980px!important;
  margin:0 auto!important;
  padding:18px!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  box-sizing:border-box!important;
}
#fixed-header.hub-fixed-test-header .test-logo{
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  min-width:0!important;
  flex:1 1 auto!important;
}
#fixed-header.hub-fixed-test-header .test-title-wrap{
  min-width:0!important;
  flex:1 1 auto!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle{
  display:block!important;
  margin:0!important;
  width:auto!important;
  line-height:1.25!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle .sub{
  display:block!important;
  margin:0!important;
  font-size:1rem!important;
  line-height:1.25!important;
  color:#e2e8f0!important;
  font-weight:700!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  gap:6px!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools #nyc-sync{
  order:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  height:18px!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools .beta-badge{
  order:2!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  margin:0!important;
  border:1px solid #f59e0b!important;
  background:rgba(245,158,11,.06)!important;
  border-radius:4px!important;
  padding:2px 8px!important;
  font-family:'Space Mono',monospace!important;
  font-size:.48em!important;
  line-height:1.3!important;
  color:#8a9aaa!important;
  letter-spacing:.08em!important;
  font-weight:400!important;
  white-space:nowrap!important;
}
#fixed-header.hub-fixed-test-header .beta-warning-icon{color:#f59e0b!important;}
#fixed-header.hub-fixed-test-header #nyc-sync-dot{width:7px!important;height:7px!important;border-radius:50%!important;background:#6aad7e!important;}
#fixed-header.hub-fixed-test-header #nyc-sync-txt{font-size:.85rem!important;line-height:1!important;color:#6aad7e!important;}
@media(max-width:700px){
  #fixed-header.hub-fixed-test-header .top.app-top{padding:14px 12px!important;flex-direction:column!important;}
  #fixed-header.hub-fixed-test-header .hub-header-tools{width:100%!important;align-items:flex-end!important;}
  #fixed-header.hub-fixed-test-header .hub-header-tools .beta-badge{font-size:.56rem!important;white-space:normal!important;}
}

/* Stage 14.2AO REAL — final hub header alignment requested by user.
   Goal:
   - Row 1: app name left, sync cloud/dot right.
   - Row 2: Study Hub left, BETA badge right.
   - Prevent app title wrapping by using the same wide hub container.
*/
#fixed-header.hub-fixed-test-header .top.app-top{
  max-width:1280px!important;
  width:100%!important;
  margin:0 auto!important;
  padding:14px 28px 12px!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:18px!important;
  box-sizing:border-box!important;
}
#fixed-header.hub-fixed-test-header .test-logo{
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  min-width:0!important;
  flex:1 1 auto!important;
}
#fixed-header.hub-fixed-test-header .test-title-wrap{
  flex:1 1 auto!important;
  min-width:0!important;
}
#fixed-header.hub-fixed-test-header .banner-title.brand{
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  margin:0 0 4px 0!important;
  line-height:1.25!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle{
  display:block!important;
  margin:0!important;
  padding:0!important;
  line-height:1.25!important;
}
#fixed-header.hub-fixed-test-header .banner-subtitle .sub{
  display:block!important;
  margin:0!important;
  padding:0!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools{
  display:grid!important;
  grid-template-rows:auto auto!important;
  justify-items:end!important;
  align-items:start!important;
  row-gap:5px!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools #nyc-sync{
  grid-row:1!important;
  order:initial!important;
  justify-self:end!important;
  align-self:start!important;
  height:18px!important;
  margin:0!important;
  padding:0!important;
}
#fixed-header.hub-fixed-test-header .hub-header-tools .beta-badge{
  grid-row:2!important;
  order:initial!important;
  justify-self:end!important;
  align-self:start!important;
  margin:0!important;
}
.hub-stats-inner{
  max-width:1280px!important;
  width:100%!important;
  margin:0 auto!important;
  padding-left:28px!important;
  padding-right:28px!important;
  box-sizing:border-box!important;
}
@media(max-width:900px){
  #fixed-header.hub-fixed-test-header .top.app-top{padding:12px 16px!important;gap:10px!important;}
  #fixed-header.hub-fixed-test-header .banner-title.brand{white-space:normal!important;}
  #fixed-header.hub-fixed-test-header .hub-header-tools .beta-badge{font-size:.56rem!important;white-space:normal!important;}
  .hub-stats-inner{padding-left:16px!important;padding-right:16px!important;}
}


/* Stage 14.2AU — Reference Library lock on expired/no-token */
#pdf-library-grid.pdf-library-locked {
  position: relative;
  min-height: 220px;
  border: 1px solid rgba(245,158,11,0.45);
  border-radius: 14px;
  background: rgba(13,15,18,0.72);
  backdrop-filter: blur(5px);
}
.pdf-lock-msg {
  min-height: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  text-align: center;
  color: var(--text);
  padding: 24px 16px;
}

/* Reference Library uses the same visible lock style, not a loading/error state */
#pdf-library-grid.pdf-library-locked {
  position: relative !important;
  min-height: 240px !important;
  border: 1px solid rgba(245,158,11,0.65) !important;
  border-radius: 14px !important;
  background: rgba(13,15,18,0.94) !important;
  backdrop-filter: none !important;
}
#pdf-library-grid.pdf-library-locked .pdf-lock-msg {
  min-height: 240px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  text-align: center !important;
  color: var(--text) !important;
  padding: 24px 16px !important;
  filter: none !important;
  opacity: 1 !important;
}
#pdf-library-grid.pdf-library-locked .tc-lock-title {
  color: var(--amber) !important;
  font-family: 'Space Mono', monospace !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
}
#pdf-library-grid.pdf-library-locked .tc-lock-sub {
  color: var(--text) !important;
  font-size: 0.8rem !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

/* PDF Library: rows visible behind fog, message on top, no file-load error panel */
#pdf-library-grid.pdf-library-locked {
  position: relative !important;
  min-height: 260px !important;
  border: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
}

#pdf-library-grid.pdf-library-locked .pdf-row {
  filter: blur(2.8px) saturate(0.45) brightness(0.55) !important;
  opacity: 0.42 !important;
  pointer-events: none !important;
}

#pdf-library-grid.pdf-library-locked::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 8 !important;
  border-radius: 14px !important;
  background: rgba(13,15,18,0.38) !important;
  backdrop-filter: blur(1.5px) !important;
  pointer-events: none !important;
}

#pdf-library-grid.pdf-library-locked .pdf-lock-msg {
  position: absolute !important;
  inset: 0 !important;
  z-index: 40 !important;
  min-height: 260px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  text-align: center !important;
  color: #f8fafc !important;
  padding: 24px 16px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

#pdf-library-grid.pdf-library-locked .tc-lock-title {
  color: var(--amber) !important;
  font-family: 'Space Mono', monospace !important;
  font-size: 0.84rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,1) !important;
}

#pdf-library-grid.pdf-library-locked .tc-lock-sub {
  color: #f8fafc !important;
  font-size: 0.82rem !important;
  line-height: 1.35 !important;
  text-transform: none !important;
  max-width: 320px !important;
  text-shadow: 0 2px 12px rgba(0,0,0,1) !important;
}

#pdf-library-grid.pdf-library-locked .nyc-contact-btn {
  pointer-events: auto !important;
  filter: none !important;
  opacity: 1 !important;
}

/* PDF library visible behind fog */
#pdf-library-grid.pdf-library-locked .pdf-row {
  filter: blur(1.4px) saturate(0.55) brightness(0.72) !important;
  opacity: 0.58 !important;
}
#pdf-library-grid.pdf-library-locked::after {
  background: rgba(13,15,18,0.18) !important;
  backdrop-filter: blur(0.8px) !important;
}
#pdf-library-grid.pdf-library-locked .pdf-lock-msg {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* PDF Library lock: rows remain rendered, then fog and floating text */
#pdf-library-grid.pdf-library-locked {
  position: relative !important;
  min-height: 260px !important;
  background: transparent !important;
  border: 0 !important;
}

#pdf-library-grid.pdf-library-locked .pdf-row {
  filter: blur(1.6px) brightness(0.7) !important;
  opacity: 0.62 !important;
  pointer-events: none !important;
}

#pdf-library-grid.pdf-library-locked::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 8 !important;
  border-radius: 14px !important;
  background: rgba(13,15,18,0.22) !important;
  backdrop-filter: blur(1px) !important;
  pointer-events: none !important;
}

#pdf-library-grid.pdf-library-locked .pdf-lock-msg {
  position: absolute !important;
  inset: 0 !important;
  z-index: 30 !important;
  min-height: 260px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  text-align: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #fff !important;
  pointer-events: auto !important;
}

#pdf-library-grid.pdf-library-locked .tc-lock-title {
  color: var(--amber) !important;
  font-family: 'Space Mono', monospace !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 8px #000, 0 0 18px #000 !important;
}

#pdf-library-grid.pdf-library-locked .tc-lock-sub {
  color: #fff !important;
  font-family: 'Space Mono', monospace !important;
  font-size: 0.78rem !important;
  line-height: 1.35 !important;
  max-width: 330px !important;
  text-transform: none !important;
  text-shadow: 0 2px 8px #000, 0 0 18px #000 !important;
}
#pdf-library-grid.pdf-library-locked .pdf-row {
  filter: blur(0.6px) brightness(0.90) !important;
  opacity: 0.82 !important;
}
#pdf-library-grid.pdf-library-locked::after {
  background: rgba(13,15,18,0.14) !important;
  backdrop-filter: blur(0.7px) !important;
  -webkit-backdrop-filter: blur(0.7px) !important;
}
#pdf-library-grid.pdf-library-locked .pdf-lock-msg {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Stage 14.2BC — canonical active Hub test-card expired fog.
   nyc_hub_beta.htm loads css/hub.css only; this single block replaces duplicate .locked / .nyc-lock-host / .tc-lock-msg rules.
   PDF Library lock CSS above is intentionally left unchanged and remains the visual reference. */
.test-card.locked,
.test-card.nyc-lock-host {
  position: relative !important;
  overflow: hidden !important;
  pointer-events: auto !important;
}

.test-card.locked::after,
.test-card.nyc-lock-host::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 8 !important;
  border-radius: 14px !important;
  background: rgba(13,15,18,0.06) !important;
  backdrop-filter: blur(0.35px) !important;
  pointer-events: none !important;
}

.test-card.locked > *:not(.tc-lock-msg),
.test-card.nyc-lock-host > *:not(.tc-lock-msg) {
  filter: blur(0.6px) brightness(0.90) !important;
  opacity: 0.82 !important;
  pointer-events: none !important;
}

.test-card.locked .tc-lock-msg,
.test-card.nyc-lock-host .tc-lock-msg {
  position: absolute !important;
  inset: 0 !important;
  z-index: 30 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  text-align: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  padding: 18px !important;
}

.test-card.locked .tc-lock-icon,
.test-card.nyc-lock-host .tc-lock-icon {
  font-size: 2rem !important;
  color: var(--amber) !important;
  text-shadow: 0 2px 10px #000, 0 0 22px #000, 0 0 4px #000 !important;
}

.test-card.locked .tc-lock-title,
.test-card.nyc-lock-host .tc-lock-title {
  color: var(--amber) !important;
  font-family: 'Space Mono', monospace !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 10px #000, 0 0 22px #000, 0 0 4px #000 !important;
}

.test-card.locked .tc-lock-sub,
.test-card.nyc-lock-host .tc-lock-sub {
  color: #fff !important;
  font-family: 'Space Mono', monospace !important;
  font-size: 0.78rem !important;
  line-height: 1.35 !important;
  max-width: 330px !important;
  text-transform: none !important;
  text-shadow: 0 2px 10px #000, 0 0 22px #000, 0 0 4px #000 !important;
}

.test-card.locked .nyc-contact-btn,
.test-card.nyc-lock-host .nyc-contact-btn {
  pointer-events: auto !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Stage 14.2BF — active Hub visual correction.
   Test-card fog now matches the current PDF Library expired fog.
   BETA VERSION restored to the same active size as the test header. */
.test-card.locked::after,
.test-card.nyc-lock-host::after {
  background: rgba(13,15,18,0.14) !important;
  backdrop-filter: blur(0.7px) !important;
  -webkit-backdrop-filter: blur(0.7px) !important;
}

.test-card.locked > *:not(.tc-lock-msg),
.test-card.nyc-lock-host > *:not(.tc-lock-msg) {
  filter: blur(0.6px) brightness(0.90) !important;
  opacity: 0.82 !important;
}

#fixed-header.hub-fixed-test-header .hub-header-tools .beta-badge,
#fixed-header.hub-fixed-test-header .beta-badge {
  font-size: 0.576em !important;
}
