        /* ── Modal ── */
        .modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:200;display:none;align-items:center;justify-content:center}
        .modal-ov.open{display:flex}
        .modal{background:#081208;border:1px solid var(--border-g);border-radius:16px;padding:26px;width:480px;max-width:95vw;box-shadow:0 32px 80px rgba(0,0,0,.6)}
        .modal-title{font-size:21px;font-weight:700;margin-bottom:18px;color:var(--text)}
        .fg{margin-bottom:13px}
        .fl{display:block;font-size:18px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
        .fi,.fs{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--border);color:var(--text);padding:9px 13px;border-radius:8px;font-size:18px;font-family:inherit;outline:none;transition:border-color .14s}
        .fi:focus,.fs:focus{border-color:var(--border-g)}
        .fs option{background:#081208}
        .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
        .span2{grid-column:1/-1}
        .modal-acts{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}


        /* ── Loading overlay ── */
        #loading-overlay{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;z-index:9999}
        #loading-overlay .lo-spin{width:38px;height:38px;border-radius:50%;border:3px solid rgba(76,217,123,.15);border-top-color:var(--g1);animation:spin .75s linear infinite}
        @keyframes spin{to{transform:rotate(360deg)}}
        #loading-overlay .lo-txt{font-size:18px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}


        /* ── Tooltips ── */
        [title]{cursor:help}


        /* ── Test Mode Toggle ── */
        .tmt-wrap{display:flex;align-items:center;gap:8px;padding:4px 12px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:100px;cursor:pointer;transition:border-color .15s;user-select:none}
        .tmt-wrap:hover{border-color:rgba(255,255,255,.16)}
        .tmt-label{font-size:18px;font-weight:700;color:var(--text3);letter-spacing:.08em;text-transform:uppercase}
        .tmt-switch{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0}
        .tmt-switch input{opacity:0;width:0;height:0;position:absolute}
        .tmt-slider{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,.14);border-radius:100px;transition:background .22s}
        .tmt-slider::before{content:'';position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .22s;box-shadow:0 1px 3px rgba(0,0,0,.5)}
        .tmt-switch input:checked + .tmt-slider{background:#f97316}
        .tmt-switch input:checked + .tmt-slider::before{transform:translateX(16px)}


        /* ── Test Banner ── */
        .test-banner{
            display:none;background:rgba(251,146,60,.08);
            border-bottom:1px solid rgba(251,146,60,.25);
            padding:6px 26px;font-size:18px;color:#fb923c;font-weight:700;
            letter-spacing:.1em;text-transform:uppercase;text-align:center
        }
        body.test-mode .test-banner{display:block}


        /* ── Auth gate (replaces the old password gate) ── */
        #auth-gate{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:10000;padding:24px}
        .auth-card{width:100%;max-width:360px;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:44px 36px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
        .auth-brand-mark{width:44px;height:44px;border-radius:10px;object-fit:contain;box-shadow:0 6px 14px rgba(0,0,0,.35)}
        .auth-title{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--text);margin:0}
        .auth-sub{font-size:18px;color:var(--text3);margin:0}
        .auth-loading{font-size:18px;color:var(--text3);margin-top:6px}

        /* ── Sign-out control (topbar) ── */
        #operator-avatar{
            display:inline-flex;align-items:center;justify-content:center;
            width:36px;height:36px;border-radius:50%;
            background:rgba(255,255,255,.06);border:1px solid var(--border);
            color:var(--text3);cursor:pointer;font-size:18px;
            transition:background .15s,color .15s;
        }
        #operator-avatar:hover{background:rgba(255,255,255,.12);color:var(--text)}
        body.light-mode #operator-avatar{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.1)}
        body.light-mode #operator-avatar:hover{background:rgba(0,0,0,.11)}

        /* ── Offline / stale-tab banner ── */
        #offline-banner{
            display:none;background:rgba(248,113,113,.08);
            border-bottom:1px solid rgba(248,113,113,.3);
            padding:8px 26px;font-size:18px;color:var(--red);font-weight:600;
            text-align:center;
        }

