/* =========================================================
   PUBLIC SITE — Umbral Accord
   Phase 1: login, faction quiz, lore primer
========================================================= */

/* ── ua_login.php (scoped — do not use bare html/body rules here) ── */
body.ua-login-page {
    --ua-accent:  #9b6dff;
    --ua-gold:    #c8a84b;
    --ua-danger:  #e05252;
    --ua-surface: #141418;
    --ua-border:  rgba(255,255,255,.07);
    --ua-muted:   #6b6b80;
    --ua-text:    #e8e8f0;
    min-height: 100vh;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg, #0d0d11);
    font-family: var(--font, 'Share Tech Mono', monospace);
}

.ua-login-wrap {
    width: 100%;
    max-width: 380px;
    padding: 44px 40px;
    background: var(--ua-surface);
    border: 1px solid var(--ua-border);
    border-radius: 14px;
    box-shadow: 0 24px 60px rgba(0,0,0,.5);
}

.ua-logo {
    display: block;
    width: 48px;
    margin: 0 auto 20px;
    opacity: .85;
    filter: drop-shadow(0 0 10px rgba(155,109,255,.4));
}

.ua-login-title {
    font-size: .72rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--ua-gold);
    text-align: center;
    margin-bottom: 4px;
}

.ua-login-sub {
    font-size: .8rem;
    color: var(--ua-muted);
    text-align: center;
    margin-bottom: 28px;
}

.ua-err {
    background: rgba(224,82,82,.08);
    border: 1px solid rgba(224,82,82,.25);
    color: var(--ua-danger);
    border-radius: 8px;
    padding: 10px 14px;
    font-size: .8rem;
    margin-bottom: 18px;
    text-align: center;
}

.ua-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}

.ua-field label {
    font-size: .7rem;
    letter-spacing: .08em;
    color: var(--ua-muted);
    text-transform: uppercase;
}

.ua-input {
    background: rgba(255,255,255,.04);
    border: 1px solid var(--ua-border);
    border-radius: 7px;
    color: var(--ua-text);
    padding: 10px 13px;
    font-size: .88rem;
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
    transition: border-color .15s;
}

.ua-input:focus {
    outline: none;
    border-color: var(--ua-accent);
    background: rgba(155,109,255,.04);
}

.ua-btn {
    width: 100%;
    padding: 11px;
    background: var(--ua-accent);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: .85rem;
    font-family: inherit;
    letter-spacing: .06em;
    cursor: pointer;
    margin-top: 6px;
    transition: opacity .15s, transform .1s;
}

.ua-btn:hover   { opacity: .88; }
.ua-btn:active  { transform: scale(.98); }

.ua-footer {
    margin-top: 22px;
    text-align: center;
    font-size: .74rem;
    color: var(--ua-muted);
}

.ua-footer a {
    color: var(--ua-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ua-footer a:hover { color: var(--ua-text); }

.ua-divider {
    border: none;
    border-top: 1px solid var(--ua-border);
    margin: 20px 0 18px;
}

/* ── join.php / quiz.php (faction assessment) ── */
/* ── QUIZ WRAP ── */
.quiz-outer{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:90px 24px 60px}
.quiz-inner{width:100%;max-width:680px}

/* ── INTRO SCREEN ── */
#screen-intro{text-align:center}
.intro-eyebrow{font-size:.58em;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--purple);margin-bottom:16px}
.intro-title{font-family:'Cinzel',serif;font-size:clamp(1.5em,4vw,2.4em);font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--silver-hi);line-height:1.2;margin-bottom:14px}
.intro-sub{font-size:.78em;color:var(--text-dim);line-height:2.1;margin-bottom:8px;max-width:520px;margin-left:auto;margin-right:auto}
.intro-meta{display:flex;justify-content:center;gap:20px;margin:20px 0 32px;flex-wrap:wrap}
.intro-meta-item{display:flex;align-items:center;gap:7px;font-size:.62em;color:var(--muted);letter-spacing:1px}
.intro-meta-item span{width:6px;height:6px;border-radius:50%;background:var(--purple);flex-shrink:0}
.btn-start{display:inline-flex;align-items:center;gap:10px;font-family:'Rajdhani',sans-serif;font-size:.8em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--gold);padding:12px 28px;border-radius:4px;border:1px solid rgba(232,160,32,.35);background:rgba(232,160,32,.06);cursor:pointer;transition:all .25s}
.btn-start:hover{background:rgba(232,160,32,.12);border-color:rgba(232,160,32,.6);transform:translateY(-1px)}

/* ── QUESTION SCREEN ── */
#screen-quiz{display:none}
.quiz-progress{display:flex;align-items:center;gap:12px;margin-bottom:32px}
.progress-bar{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--purple-mid),var(--purple));border-radius:2px;transition:width .4s ease}
.progress-text{font-size:.58em;color:var(--muted);letter-spacing:2px;white-space:nowrap}
.question-num{font-size:.58em;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--purple);margin-bottom:12px}
.question-text{font-family:'Cinzel',serif;font-size:clamp(1em,2.5vw,1.3em);font-weight:600;letter-spacing:2px;color:var(--silver-hi);line-height:1.6;margin-bottom:28px}
.answers{display:flex;flex-direction:column;gap:8px}
.answer-btn{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:4px;padding:14px 18px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.answer-btn::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px;background:transparent;transition:background .2s}
.answer-btn:hover{border-color:var(--border-hi);background:var(--card2)}
.answer-btn:hover::before{background:var(--purple-mid)}
.answer-btn.selected{border-color:var(--purple);background:rgba(136,96,208,.08)}
.answer-btn.selected::before{background:var(--purple)}
.answer-label{font-family:'Rajdhani',sans-serif;font-size:.82em;font-weight:600;letter-spacing:1.5px;color:var(--text-dim);transition:color .2s;display:block;line-height:1.6}
.answer-btn:hover .answer-label,.answer-btn.selected .answer-label{color:var(--text)}
.quiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px}
.btn-back{font-family:'Rajdhani',sans-serif;font-size:.7em;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted);background:none;border:1px solid var(--border);padding:8px 16px;border-radius:3px;cursor:pointer;transition:all .2s}
.btn-back:hover{color:var(--text-dim);border-color:var(--border-hi)}
.btn-back:disabled{opacity:.3;cursor:default}
.btn-next{font-family:'Rajdhani',sans-serif;font-size:.7em;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);background:rgba(232,160,32,.05);border:1px solid rgba(232,160,32,.3);padding:8px 20px;border-radius:3px;cursor:pointer;transition:all .2s}
.btn-next:hover:not(:disabled){background:rgba(232,160,32,.1);border-color:rgba(232,160,32,.5)}
.btn-next:disabled{opacity:.3;cursor:default}

/* ── RESULT SCREEN ── */
#screen-result{display:none}
.result-classification{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;background:rgba(0,0,0,.2);border:1px solid var(--border);border-bottom:none;border-radius:4px 4px 0 0;flex-wrap:wrap;gap:6px}
.result-class-label{font-size:.55em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}
.result-ref{font-size:.55em;color:var(--muted);letter-spacing:1.5px}
.result-card{background:var(--card);border:1px solid var(--border);border-radius:0 0 6px 6px;overflow:hidden;position:relative}
.result-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.result-card-sith::before{background:linear-gradient(90deg,transparent,var(--purple),transparent)}
.result-card-legion::before{background:linear-gradient(90deg,transparent,var(--station),transparent)}
.result-card-civil::before{background:linear-gradient(90deg,transparent,var(--teal),transparent)}
.result-card-kisd::before{background:linear-gradient(90deg,transparent,var(--muted),transparent)}
.result-card-lumen::before{background:linear-gradient(90deg,transparent,#c8a840,transparent)}
.result-card-lumen .result-faction-label{color:#c8a840}
.result-card-lumen .result-faction-name{color:#e8d090}
.result-card-lumen .result-path-name{color:#e8d090}
.result-header{padding:28px 28px 20px}
.result-faction-label{font-size:.56em;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:8px;font-family:'Rajdhani',sans-serif}
.result-faction-name{font-family:'Cinzel',serif;font-size:clamp(1.3em,3vw,1.9em);font-weight:700;letter-spacing:4px;text-transform:uppercase;margin-bottom:6px}
.result-path-name{font-family:'Rajdhani',sans-serif;font-size:.9em;font-weight:600;letter-spacing:3px;text-transform:uppercase;opacity:.7}
.result-card-sith .result-faction-label{color:var(--purple)}
.result-card-sith .result-faction-name{color:var(--purple-hi)}
.result-card-sith .result-path-name{color:var(--purple-hi)}
.result-card-legion .result-faction-label{color:var(--station)}
.result-card-legion .result-faction-name{color:#9dd4ee}
.result-card-legion .result-path-name{color:#9dd4ee}
.result-card-civil .result-faction-label{color:var(--teal)}
.result-card-civil .result-faction-name{color:#7de0b8}
.result-card-civil .result-path-name{color:#7de0b8}
.result-card-kisd .result-faction-label{color:var(--muted)}
.result-card-kisd .result-faction-name{color:var(--text-dim)}
.result-card-kisd .result-path-name{color:var(--text-dim)}
.result-divider{height:1px;background:var(--border);margin:0 28px}
.result-body{padding:24px 28px}
.result-ic{font-size:.76em;color:var(--text-dim);line-height:2.1;margin-bottom:20px;font-style:italic;border-left:2px solid var(--border-purple);padding-left:16px}
.result-ooc-label{font-size:.54em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--teal);margin-bottom:10px;font-family:'Rajdhani',sans-serif}
.result-ooc{font-size:.74em;color:var(--text-dim);line-height:2}
.result-ooc strong{color:var(--text)}
.result-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}
.result-btn{display:inline-flex;align-items:center;gap:6px;font-family:'Rajdhani',sans-serif;font-size:.68em;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;padding:8px 16px;border-radius:3px;border:1px solid;transition:all .2s}
.result-btn.primary{color:var(--gold);border-color:rgba(232,160,32,.3);background:rgba(232,160,32,.05)}
.result-btn.primary:hover{background:rgba(232,160,32,.1);border-color:rgba(232,160,32,.5)}
.result-btn.secondary{color:var(--muted);border-color:var(--border)}
.result-btn.secondary:hover{color:var(--text-dim);border-color:var(--border-hi)}
.result-btn-restart{background:none;cursor:pointer;font-family:'Rajdhani',sans-serif;font-size:.68em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);padding:8px 16px;border-radius:3px;transition:all .2s}
.result-btn-restart:hover{color:var(--text-dim);border-color:var(--border-hi)}

.site-footer{background:var(--surface);border-top:1px solid var(--border);padding:28px 24px;margin-top:auto}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-seal{width:26px;height:26px;opacity:.1;filter:grayscale(1)}

/* ── lore.php ── */
/* Page-specific styles only. Global theme/nav/footer/scrollbar come from common.css. */

/* ── LAYOUT (lore.php only — do not use bare .page-wrap globally) ── */
body.lore-page .page-wrap{display:flex;max-width:1100px;margin:0 auto;padding:90px 24px 80px;gap:48px;align-items:flex-start}
body.lore-page .sidebar{width:200px;flex-shrink:0;position:sticky;top:80px}
body.lore-page .sidebar-label{font-size:.54em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}
body.lore-page .sidebar-nav{list-style:none;display:flex;flex-direction:column;gap:2px}
body.lore-page .sidebar-nav a{display:block;font-family:'Rajdhani',sans-serif;font-size:.7em;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:3px;border:1px solid transparent;transition:all .2s}
body.lore-page .sidebar-nav a:hover{color:var(--text-dim);border-color:var(--border)}
body.lore-page .sidebar-nav a.active{color:var(--purple-hi);border-color:var(--border-purple);background:rgba(136,96,208,.05)}
body.lore-page .sidebar-divider{height:1px;background:var(--border);margin:10px 0}
body.lore-page .sidebar-cta{display:block;font-family:'Rajdhani',sans-serif;font-size:.68em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);text-decoration:none;padding:8px 10px;border-radius:3px;border:1px solid rgba(232,160,32,.3);background:rgba(232,160,32,.04);text-align:center;margin-top:12px;transition:all .2s}
body.lore-page .sidebar-cta:hover{background:rgba(232,160,32,.1);border-color:rgba(232,160,32,.5)}
body.lore-page .content{flex:1;min-width:0}

@media(max-width:860px){
  body.lore-page .page-wrap{flex-direction:column;gap:28px;padding:72px 20px 60px}
  body.lore-page .sidebar{width:100%;position:static}
  body.lore-page .sidebar-nav{flex-direction:row;flex-wrap:wrap}
}

@media(max-width:860px){
  body.book-reader-page .reader-wrap{
    height:auto;
    min-height:100vh;
    overflow:visible;
  }
  body.book-reader-page .reader-shell{
    height:auto;
    min-height:100vh;
    overflow:visible;
  }
  body.book-reader-page .reader-header{
    min-height:auto;
    padding:22px 20px 18px;
  }
  body.book-reader-page .reader-header-top{
    flex-direction:column;
    gap:10px;
  }
  body.book-reader-page .reader-body{
    display:block;
    height:auto;
  }
  body.book-reader-page .reader-sidebar{
    max-height:38vh;
    border-right:none;
    border-bottom:1px solid var(--border);
  }
  body.book-reader-page .reader-content{
    overflow:visible;
    padding:26px 22px 38px;
  }
  body.book-reader-page .reader-footer{
    height:auto;
    min-height:38px;
    flex-wrap:wrap;
    white-space:normal;
    padding:9px 16px;
  }
  body.book-reader-page .chapter-prose{
    font-size:1.08em;
  }
}

/* ── PAGE HEADER (shared style matching about.php, factions.php) ── */
.page-header{padding:110px 24px 60px;text-align:center;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(80,30,160,.14) 0%,transparent 100%);position:relative;overflow:hidden}
.page-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent);opacity:.5}
.page-header-seal{width:64px;height:64px;display:block;margin:0 auto 20px;filter:drop-shadow(0 0 16px rgba(136,96,208,.5));animation:sealFloat 5s ease-in-out infinite}
@keyframes sealFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.page-eyebrow{font-family:'Rajdhani',sans-serif;font-size:.65em;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--purple);margin-bottom:10px}
.page-title{font-family:'Cinzel',serif;font-size:clamp(1.6em,4vw,2.6em);font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--silver-hi);text-shadow:0 0 30px rgba(136,96,208,.3);margin-bottom:14px}
.page-creed{font-family:'Cinzel',serif;font-size:.85em;letter-spacing:3px;color:var(--gold);font-style:italic;margin-bottom:16px}
.page-sub{font-size:.8em;color:var(--text-dim);line-height:1.9;max-width:560px;margin:0 auto}

/* ── HERO (legacy, kept for any remaining primer-* references) ── */
.primer-tagline{font-size:.84em;color:var(--text-dim);line-height:2;max-width:560px}
.primer-tagline strong{color:var(--text)}
.primer-reading-time{display:inline-flex;align-items:center;gap:8px;font-size:.58em;color:var(--muted);letter-spacing:1.5px;margin-top:16px;padding:5px 12px;border:1px solid var(--border);border-radius:3px}

/* ── SECTIONS ── */
.lore-section{margin-bottom:60px;scroll-margin-top:80px}
.lore-section:last-child{margin-bottom:0}
.section-eyebrow{font-size:.56em;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--purple);margin-bottom:8px}
.section-title{font-family:'Cinzel',serif;font-size:clamp(1em,2.5vw,1.35em);font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--silver-hi);margin-bottom:6px}
.section-rule{width:50px;height:2px;background:linear-gradient(90deg,var(--purple-mid),transparent);margin-bottom:24px}

/* ── PROSE ── */
.prose p{font-size:.82em;color:var(--text-dim);line-height:2.1;margin-bottom:16px}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--text);font-weight:normal}
.prose em{color:var(--purple-hi);font-style:normal}

/* ── CALLOUT BLOCKS ── */
.callout{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:18px 20px;margin:20px 0;position:relative;overflow:hidden}
.callout::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px}
.callout-lore::before{background:var(--purple-mid)}
.callout-warning::before{background:var(--gold)}
.callout-note::before{background:var(--teal)}
.callout-label{font-size:.54em;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:8px;font-family:'Rajdhani',sans-serif}
.callout-lore .callout-label{color:var(--purple)}
.callout-warning .callout-label{color:var(--gold)}
.callout-note .callout-label{color:var(--teal)}
.callout-text{font-size:.75em;color:var(--text-dim);line-height:2;font-style:italic}
.callout-text strong{color:var(--text);font-style:normal}

/* ── GLOSSARY ── */
.glossary-grid{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:4px;overflow:hidden}
.glossary-item{display:flex;align-items:baseline;gap:0;border-bottom:1px solid var(--border)}
.glossary-item:last-child{border-bottom:none}
.glossary-term{width:180px;flex-shrink:0;padding:12px 16px;font-family:'Rajdhani',sans-serif;font-size:.72em;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--purple-hi);background:rgba(136,96,208,.03);border-right:1px solid var(--border)}
.glossary-def{flex:1;padding:12px 16px;font-size:.7em;color:var(--text-dim);line-height:1.9}
@media(max-width:600px){
  .glossary-item{flex-direction:column}
  .glossary-term{width:100%;border-right:none;border-bottom:1px solid var(--border);padding-bottom:8px}
}

/* ── FACTION QUICK CARDS ── */
.faction-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:20px 0}
.faction-card{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:16px;position:relative;overflow:hidden;transition:border-color .2s;text-decoration:none;display:block}
.faction-card:hover{border-color:var(--border-hi)}
.faction-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.faction-card-sith::before{background:linear-gradient(90deg,var(--purple-mid),transparent)}
.faction-card-legion::before{background:linear-gradient(90deg,#4a7a9e,transparent)}
.faction-card-civil::before{background:linear-gradient(90deg,var(--teal),transparent)}
.faction-card-kisd::before{background:linear-gradient(90deg,var(--muted),transparent)}
.faction-card-name{font-family:'Rajdhani',sans-serif;font-size:.78em;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px}
.faction-card-sith .faction-card-name{color:var(--purple-hi)}
.faction-card-legion .faction-card-name{color:#7ab8d8}
.faction-card-civil .faction-card-name{color:var(--teal)}
.faction-card-kisd .faction-card-name{color:var(--muted)}
.faction-card-desc{font-size:.67em;color:var(--text-dim);line-height:1.85}
.faction-card-link{display:inline-block;margin-top:10px;font-size:.6em;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-family:'Rajdhani',sans-serif}
.faction-card:hover .faction-card-link{color:var(--text-dim)}

/* ── TIMELINE STRIP ── */
.timeline-strip{display:flex;flex-direction:column;gap:0;margin:20px 0}
.ts-item{display:flex;gap:0;position:relative}
.ts-item:not(:last-child)::after{content:'';position:absolute;left:52px;top:40px;bottom:0;width:1px;background:var(--border)}
.ts-date{width:100px;flex-shrink:0;padding:10px 0;font-size:.63em;color:var(--gold);letter-spacing:1px;text-align:right;padding-right:16px;line-height:1.5}
.ts-marker{width:10px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding-top:14px;z-index:1}
.ts-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--purple);background:rgba(136,96,208,.2);flex-shrink:0}
.ts-body{flex:1;padding:8px 0 20px 16px}
.ts-title{font-family:'Rajdhani',sans-serif;font-size:.76em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--silver-hi);margin-bottom:4px}
.ts-text{font-size:.68em;color:var(--text-dim);line-height:1.9}

/* ── CREED BLOCK ── */
.creed-block{text-align:center;padding:36px 24px;background:var(--card);border:1px solid var(--border-purple);border-radius:6px;margin:24px 0;position:relative;overflow:hidden}
.creed-block::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent)}
.creed-block::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent)}
.creed-main{font-family:'Cinzel',serif;font-size:clamp(.9em,2.5vw,1.15em);font-weight:400;letter-spacing:3px;color:var(--silver-hi);line-height:1.7;margin-bottom:14px}
.creed-expand{font-size:.7em;color:var(--text-dim);line-height:2;max-width:480px;margin:0 auto}

/* ── NEXT STEPS CTA ── */
.next-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:8px}
.next-card{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:18px;text-decoration:none;display:block;transition:border-color .2s}
.next-card:hover{border-color:var(--border-hi)}
.next-card-label{font-size:.55em;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-family:'Rajdhani',sans-serif}
.next-card-title{font-family:'Rajdhani',sans-serif;font-size:.85em;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px;transition:color .2s}
.next-card:hover .next-card-title{color:var(--text)}
.next-card-desc{font-size:.65em;color:var(--muted);line-height:1.8}
.next-card-primary .next-card-label{color:var(--gold)}
.next-card-primary .next-card-title{color:var(--gold)}

/* =========================================================
   PUBLIC SITE — Phase 1b
   arrival, news, about, index, rules
========================================================= */

/* ── arrival.php ── */
/* ── HERO ── */
.arrival-hero{padding:120px 24px 64px;max-width:860px;margin:0 auto;position:relative}
.arrival-hero::after{content:'';position:absolute;bottom:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,var(--station-border),transparent)}
.arrival-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.arrival-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--station);box-shadow:0 0 8px var(--station);animation:pulse-dot 2.5s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.arrival-eyebrow-text{font-size:.6em;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--station)}
.arrival-title{font-family:'Cinzel',serif;font-size:clamp(1.6em,4vw,2.8em);font-weight:700;letter-spacing:6px;text-transform:uppercase;color:var(--silver-hi);text-shadow:0 0 40px rgba(90,171,204,.15);line-height:1.15;margin-bottom:8px}
.arrival-subtitle{font-family:'Cinzel',serif;font-size:clamp(.9em,2vw,1.2em);font-weight:400;letter-spacing:4px;text-transform:uppercase;color:var(--station);opacity:.7;margin-bottom:28px}
.arrival-coords{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:0}
.arrival-coord{display:flex;flex-direction:column;gap:3px}
.arrival-coord-label{font-size:.52em;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}
.arrival-coord-value{font-size:.65em;color:var(--text-dim);letter-spacing:1px}

/* ── BROADCAST PANEL ── */
.broadcast-wrap{max-width:860px;margin:48px auto 0;padding:0 24px}

.broadcast-panel{background:var(--card);border:1px solid var(--station-border);border-radius:6px;overflow:hidden;margin-bottom:28px;position:relative}
.broadcast-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--station),transparent);opacity:.4}

.broadcast-header{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;background:var(--station-lo);border-bottom:1px solid var(--station-border);flex-wrap:wrap;gap:8px}
.broadcast-channel{font-size:.58em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--station)}
.broadcast-meta{display:flex;align-items:center;gap:8px;font-size:.56em;color:var(--muted);letter-spacing:1px}
.broadcast-live{display:flex;align-items:center;gap:5px}
.live-dot{width:5px;height:5px;border-radius:50%;background:var(--teal);box-shadow:0 0 6px var(--teal);animation:pulse-dot 2s ease-in-out infinite}

.broadcast-body{padding:24px 24px 20px}
.broadcast-intro{font-size:.78em;color:var(--text-dim);line-height:2.2;margin-bottom:0}
.broadcast-intro p{margin-bottom:12px}
.broadcast-intro p:last-child{margin-bottom:0}
.broadcast-intro strong{color:var(--text)}
.broadcast-intro .station-em{color:var(--station)}

/* ── SECTION HEADERS ── */
.section-head{display:flex;align-items:center;gap:12px;margin:40px 0 20px}
.section-num{font-family:'Cinzel',serif;font-size:.62em;color:var(--station);letter-spacing:2px;flex-shrink:0}
.section-title{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--silver-hi)}
.section-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}

/* ── TIER CARDS ── */
.tier-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.tier-card{display:flex;align-items:stretch;background:var(--card2);border:1px solid var(--border);border-radius:4px;overflow:hidden;transition:border-color .2s}
.tier-card:hover{border-color:var(--border-hi)}
.tier-num{width:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'Cinzel',serif;font-size:1.1em;font-weight:700;border-right:1px solid var(--border)}
.tier-body{flex:1;padding:12px 16px}
.tier-name{font-family:'Rajdhani',sans-serif;font-size:.85em;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:5px}
.tier-desc{font-size:.68em;color:var(--text-dim);line-height:1.85}
.tier-badge{flex-shrink:0;padding:12px 14px;display:flex;align-items:center}
.tier-badge-inner{font-size:.52em;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:3px 8px;border-radius:2px;border:1px solid;white-space:nowrap}

.tier-1 .tier-num{color:var(--muted);background:rgba(100,120,140,.04)}
.tier-1 .tier-name{color:var(--muted)}
.tier-1 .tier-badge-inner{color:var(--muted);border-color:rgba(100,120,140,.3);background:rgba(100,120,140,.06)}
.tier-2 .tier-num{color:var(--station);background:rgba(90,171,204,.04)}
.tier-2 .tier-name{color:var(--station)}
.tier-2 .tier-badge-inner{color:var(--station);border-color:rgba(90,171,204,.3);background:rgba(90,171,204,.06)}
.tier-3 .tier-num{color:var(--teal);background:rgba(61,184,138,.04)}
.tier-3 .tier-name{color:var(--teal)}
.tier-3 .tier-badge-inner{color:var(--teal);border-color:rgba(61,184,138,.3);background:rgba(61,184,138,.06)}
.tier-4 .tier-num{color:var(--gold);background:rgba(232,160,32,.04)}
.tier-4 .tier-name{color:var(--gold)}
.tier-4 .tier-badge-inner{color:var(--gold);border-color:rgba(232,160,32,.3);background:rgba(232,160,32,.06)}
.tier-5 .tier-num{color:var(--purple-hi);background:rgba(136,96,208,.04)}
.tier-5 .tier-name{color:var(--purple-hi)}
.tier-5 .tier-badge-inner{color:var(--purple-hi);border-color:rgba(136,96,208,.3);background:rgba(136,96,208,.06)}

/* ── PROCESSING STEPS ── */
.process-steps{display:flex;flex-direction:column;gap:0}
.process-step{display:flex;gap:0;position:relative}
.process-step:not(:last-child)::after{content:'';position:absolute;left:20px;top:44px;bottom:0;width:1px;background:var(--border)}
.step-marker{width:40px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding-top:12px;gap:0;z-index:1}
.step-dot{width:10px;height:10px;border-radius:50%;border:1px solid;flex-shrink:0}
.step-body{flex:1;padding:10px 0 24px 16px}
.step-label{font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:5px}
.step-text{font-size:.68em;color:var(--text-dim);line-height:1.9}
.step-text strong{color:var(--text)}

/* ── CONDUCT RULES ── */
.conduct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.conduct-card{background:var(--card2);border:1px solid var(--border);border-radius:4px;padding:14px 16px;position:relative;overflow:hidden}
.conduct-card::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px}
.conduct-card.allow::before{background:var(--teal)}
.conduct-card.restrict::before{background:var(--amber)}
.conduct-card.prohibit::before{background:var(--red)}
.conduct-card-label{font-size:.52em;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:6px;font-family:'Rajdhani',sans-serif}
.conduct-card.allow .conduct-card-label{color:var(--teal)}
.conduct-card.restrict .conduct-card-label{color:var(--amber)}
.conduct-card.prohibit .conduct-card-label{color:var(--red)}
.conduct-card-text{font-size:.68em;color:var(--text-dim);line-height:1.85}

/* ── THRESHOLD NOTE ── */
.threshold-block{background:var(--card);border:1px solid var(--border-purple);border-radius:5px;padding:20px 24px;position:relative;overflow:hidden;margin-bottom:0}
.threshold-block::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent);opacity:.5}
.threshold-label{font-size:.55em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--purple);margin-bottom:10px;font-family:'Rajdhani',sans-serif}
.threshold-text{font-size:.73em;color:var(--text-dim);line-height:2.1}
.threshold-text p{margin-bottom:10px}
.threshold-text p:last-child{margin-bottom:0}
.threshold-text strong{color:var(--text)}

/* ── CTA ── */
.arrival-cta{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:32px;text-align:center;margin-bottom:0;position:relative;overflow:hidden}
.arrival-cta::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.3}
.arrival-cta-eyebrow{font-size:.58em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.arrival-cta-title{font-family:'Cinzel',serif;font-size:1.2em;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--silver-hi);margin-bottom:10px}
.arrival-cta-sub{font-size:.7em;color:var(--text-dim);line-height:1.9;margin-bottom:24px;max-width:440px;margin-left:auto;margin-right:auto}
.arrival-cta-btns{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.cta-btn{display:inline-flex;align-items:center;gap:8px;font-family:'Rajdhani',sans-serif;font-size:.72em;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;padding:10px 22px;border-radius:3px;border:1px solid;transition:all .2s}
.cta-btn.primary{color:var(--gold);border-color:rgba(232,160,32,.35);background:rgba(232,160,32,.06)}
.cta-btn.primary:hover{background:rgba(232,160,32,.12);border-color:rgba(232,160,32,.6)}
.cta-btn.secondary{color:var(--muted);border-color:var(--border)}
.cta-btn.secondary:hover{color:var(--text);border-color:var(--border-hi)}

/* ── CLOSING TRANSMISSION ── */
.transmission-close{max-width:860px;margin:0 auto;padding:32px 24px 0;display:flex;align-items:flex-start;gap:14px}
.transmission-close-bar{width:2px;background:var(--station);opacity:.3;flex-shrink:0;border-radius:1px;align-self:stretch}
.transmission-close-text{font-size:.66em;color:var(--muted);line-height:2;letter-spacing:.5px;font-style:italic}
.transmission-close-text strong{color:var(--station);font-style:normal;font-family:'Rajdhani',sans-serif;letter-spacing:2px}

.site-footer{background:var(--surface);border-top:1px solid var(--border);padding:28px 24px;margin-top:48px}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-seal{width:26px;height:26px;opacity:.1;filter:grayscale(1)}
.fade-in{opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .45s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* ── news.php ── */
:root { --una:#4a9eca; }
/* UNA MASTHEAD */
.una-masthead{background:var(--surface);border-bottom:1px solid var(--border);padding:80px 24px 0}
.una-masthead-inner{max-width:1100px;margin:0 auto;padding-bottom:0}
.una-top-bar{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:18px;flex-wrap:wrap;gap:10px}
.una-network-tag{font-family:'Rajdhani',sans-serif;font-size:.6em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--una);display:flex;align-items:center;gap:8px}
.una-live-dot{width:7px;height:7px;border-radius:50%;background:var(--una);animation:unaPulse 2s ease-in-out infinite;flex-shrink:0}
@keyframes unaPulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(74,158,202,.4)}50%{opacity:.7;box-shadow:0 0 0 4px rgba(74,158,202,0)}}
.una-datestamp{font-size:.58em;color:var(--muted);letter-spacing:1px}
.una-wordmark{padding-bottom:20px}
.una-wordmark-title{font-family:'Cinzel',serif;font-size:clamp(1.6em,5vw,3em);font-weight:700;letter-spacing:8px;text-transform:uppercase;color:var(--silver-hi);line-height:1;margin-bottom:4px}
.una-wordmark-title span{color:var(--una)}
.una-wordmark-sub{font-size:.6em;letter-spacing:4px;color:var(--muted);text-transform:uppercase;font-family:'Rajdhani',sans-serif;font-weight:600}
.una-ticker{background:var(--una);padding:6px 0;overflow:hidden;position:relative}
.una-ticker-inner{display:flex;align-items:center;white-space:nowrap;animation:tickerScroll 40s linear infinite}
.una-ticker-label{font-family:'Rajdhani',sans-serif;font-size:.6em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(7,8,15,.9);background:rgba(0,0,0,.15);padding:0 14px;flex-shrink:0;align-self:stretch;display:flex;align-items:center}
.una-ticker-text{font-size:.62em;letter-spacing:1.5px;color:rgba(7,8,15,.9);padding:0 20px}
.una-ticker-sep{color:rgba(7,8,15,.5);padding:0 10px}
@keyframes tickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* CONTENT */
.una-content{max-width:1100px;margin:0 auto;padding:32px 24px 80px}
/* FILTER */
.una-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;align-items:center}
.una-filter-label{font-size:.58em;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-right:4px}
.una-filter-btn{font-family:'Rajdhani',sans-serif;font-size:.6em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:4px 12px;border-radius:2px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:all .2s}
.una-filter-btn:hover{color:var(--text);border-color:var(--border-hi)}
.una-filter-btn.active{color:var(--una);border-color:rgba(74,158,202,.4);background:rgba(74,158,202,.07)}
/* FEATURED */
.una-featured{background:var(--card);border:1px solid var(--border);border-top:3px solid var(--una);border-radius:0 0 4px 4px;padding:28px 32px;margin-bottom:24px;position:relative}
.una-featured-tag{font-family:'Rajdhani',sans-serif;font-size:.58em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--una);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.una-featured-tag::before{content:'◈';font-size:.9em}
.una-featured-headline{font-family:'Cinzel',serif;font-size:clamp(1em,3vw,1.5em);font-weight:600;letter-spacing:2px;color:var(--silver-hi);line-height:1.3;margin-bottom:14px}
.una-featured-body{font-size:.8em;color:var(--text-dim);line-height:1.9;margin-bottom:16px;white-space:pre-wrap}
.una-featured-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--border)}
.una-byline{font-size:.6em;color:var(--muted);letter-spacing:1px}
.una-byline strong{color:var(--text-dim)}
.una-cat-badge{display:inline-flex;align-items:center;font-family:'Rajdhani',sans-serif;font-size:.58em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:2px 8px;border-radius:2px;border:1px solid}
/* GRID */
.una-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.una-card{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:20px 22px;position:relative;overflow:hidden;transition:border-color .2s,transform .2s;cursor:default;display:flex;flex-direction:column}
.una-card:hover{border-color:var(--border-hi);transform:translateY(-2px)}
.una-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--una);opacity:0;transition:opacity .2s}
.una-card:hover::before{opacity:1}
.una-card-cat{margin-bottom:10px}
.una-card-headline{font-family:'Rajdhani',sans-serif;font-size:.9em;font-weight:700;letter-spacing:1.5px;color:var(--silver-hi);line-height:1.4;margin-bottom:8px}
.una-card-body{font-size:.72em;color:var(--text-dim);line-height:1.8;flex:1;white-space:pre-wrap}
.una-card-meta{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:.58em;color:var(--muted);letter-spacing:1px}
/* EMPTY */
.una-empty{text-align:center;padding:80px 24px;background:var(--card);border:1px solid var(--border);border-radius:4px}
.una-empty-icon{font-size:2em;color:var(--muted);margin-bottom:16px;opacity:.4}
.una-empty-text{font-size:.75em;color:var(--muted);line-height:1.8}
.una-empty-sub{font-size:.65em;color:var(--muted);opacity:.6;margin-top:8px}
@media(max-width:760px){.una-grid{grid-template-columns:1fr}}
@media(max-width:540px){.una-featured{padding:20px 18px}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.una-masthead{animation:fadeUp .6s ease both}
.una-content{animation:fadeUp .6s ease .15s both}

/* ── about.php ── */
/* BACK TO TOP */
.back-to-top{position:fixed;bottom:28px;right:28px;z-index:140;width:40px;height:40px;background:var(--card);border:1px solid var(--border-purple);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--purple-hi);font-size:.8em;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s,border-color .2s;transform:translateY(8px)}
.back-to-top.visible{opacity:1;pointer-events:all;transform:translateY(0)}
.back-to-top:hover{border-color:var(--purple);background:rgba(136,96,208,.1)}
/* FADE IN */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
/* FOOTER */
.site-footer{background:var(--surface);border-top:1px solid var(--border);padding:28px 24px}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-seal{width:26px;height:26px;opacity:.1;filter:grayscale(1)}
/* ── PAGE HEADER ── */
.page-header{
  padding:110px 24px 60px;text-align:center;
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,rgba(80,30,160,.14) 0%,transparent 100%);
  position:relative;overflow:hidden;
}
.page-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent);opacity:.5}
.page-header-seal{width:64px;height:64px;display:block;margin:0 auto 20px;filter:drop-shadow(0 0 16px rgba(136,96,208,.5));animation:sealFloat 5s ease-in-out infinite}
@keyframes sealFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.page-eyebrow{font-family:'Rajdhani',sans-serif;font-size:.65em;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--purple);margin-bottom:10px}
.page-title{font-family:'Cinzel',serif;font-size:clamp(1.6em,4vw,2.6em);font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--silver-hi);text-shadow:0 0 30px rgba(136,96,208,.3);margin-bottom:14px}
.page-creed{font-family:'Cinzel',serif;font-size:.85em;letter-spacing:3px;color:var(--gold);font-style:italic;margin-bottom:16px}
.page-sub{font-size:.8em;color:var(--text-dim);line-height:1.9;max-width:560px;margin:0 auto}

.section-nav{
  position:sticky;top:54px;z-index:100;
  background:rgba(7,8,15,.96);border-bottom:1px solid var(--border);
  backdrop-filter:blur(8px);
  display:flex;justify-content:center;
}
.section-nav-inner{
  width:100%;max-width:1100px;margin:0 auto;
  display:flex;justify-content:center;align-items:center;
  overflow-x:auto;scrollbar-width:none;padding:0 16px;
}
.section-nav-inner::-webkit-scrollbar{display:none}
.snav-btn{
  flex-shrink:0;padding:13px 18px;
  font-family:'Rajdhani',sans-serif;font-size:.68em;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--muted);background:none;border:none;
  border-bottom:2px solid transparent;cursor:pointer;
  transition:all .2s;white-space:nowrap;
}
.snav-btn:hover{color:var(--text)}
.snav-btn.active{color:var(--purple-hi);border-bottom-color:var(--purple)}

/* ── LAYOUT ── */
.page-body{max-width:1100px;margin:0 auto;padding:0 24px 80px}

/* ── CONTENT SECTIONS ── */
.content-section{padding:60px 0;border-bottom:1px solid var(--border)}
.content-section:last-child{border-bottom:none}
.section-header{margin-bottom:36px}
.section-eyebrow{font-family:'Rajdhani',sans-serif;font-size:.62em;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--purple);margin-bottom:8px}
.section-title{font-family:'Cinzel',serif;font-size:clamp(1.1em,2.5vw,1.5em);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--silver-hi);margin-bottom:10px}
.section-rule{width:60px;height:2px;background:linear-gradient(90deg,var(--purple-mid),transparent);margin-top:14px}

/* ── PROSE ── */
.prose p{font-size:.84em;color:var(--text-dim);line-height:2;margin-bottom:16px}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--text);font-weight:normal}

/* ── AT A GLANCE TABLE ── */
.glance-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:2px;
  border:1px solid var(--border);border-radius:4px;overflow:hidden;
}
.glance-row{
  display:flex;align-items:baseline;gap:0;
  background:var(--card);
  border-bottom:1px solid var(--border);
}
.glance-row:last-child,.glance-row:nth-last-child(2):nth-child(odd){border-bottom:none}
.glance-label{
  flex-shrink:0;width:160px;padding:12px 16px;
  font-size:.62em;letter-spacing:2px;text-transform:uppercase;
  color:var(--purple-hi);
  border-right:1px solid var(--border);
  background:rgba(136,96,208,.04);
  align-self:stretch;display:flex;align-items:center;
}
.glance-value{padding:12px 16px;font-size:.76em;color:var(--text-dim);line-height:1.5}
@media(max-width:640px){.glance-grid{grid-template-columns:1fr}}

/* ── DOCTRINE BLOCK ── */
.doctrine-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:32px;
  align-items:start;
}
.doctrine-card{
  background:var(--card);border:1px solid var(--border-purple);
  border-radius:4px;padding:28px 32px;position:relative;overflow:hidden;
}
.doctrine-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--purple-mid),var(--purple))}
.doctrine-tag{font-size:.56em;letter-spacing:3px;color:var(--purple);text-transform:uppercase;margin-bottom:14px;display:block}
.doctrine-lines{border-left:2px solid var(--border-purple);padding-left:18px}
.doctrine-line{
  font-family:'Cinzel',serif;font-size:.8em;
  color:var(--text-dim);line-height:2.2;font-style:italic;
}
.doctrine-line.key{color:var(--purple-hi);font-style:normal;font-weight:600}
@media(max-width:768px){.doctrine-wrap{grid-template-columns:1fr}}

/* ── LINE BY LINE BREAKDOWN ── */
.breakdown{display:flex;flex-direction:column;gap:8px}
.breakdown-item{
  background:var(--card);border:1px solid var(--border);border-radius:4px;
  overflow:hidden;transition:border-color .2s;cursor:pointer;
}
.breakdown-item:hover{border-color:var(--border-hi)}
.breakdown-item.open{border-color:var(--border-purple)}
.breakdown-header{display:flex;align-items:center;gap:0;user-select:none}
.breakdown-line{
  flex:1;padding:14px 18px;
  font-family:'Cinzel',serif;font-size:.82em;font-style:italic;
  color:var(--text);
}
.breakdown-item.open .breakdown-line{color:var(--purple-hi)}
.breakdown-toggle{
  flex-shrink:0;width:38px;display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:.7em;border-left:1px solid var(--border);align-self:stretch;
  transition:color .2s;
}
.breakdown-item.open .breakdown-toggle{color:var(--purple)}
.breakdown-toggle span{transition:transform .25s}
.breakdown-item.open .breakdown-toggle span{transform:rotate(180deg)}
.breakdown-body{
  display:none;padding:0 18px 16px 18px;
  border-top:1px solid var(--border);
}
.breakdown-item.open .breakdown-body{display:block}
.breakdown-body p{font-size:.78em;color:var(--text-dim);line-height:1.9;margin-top:12px}

/* ── THREE PATHS ── */
.paths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.path-card{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:28px 24px;position:relative;overflow:hidden;transition:border-color .25s,transform .2s}
.path-card:hover{transform:translateY(-3px)}
.path-blade:hover{border-color:rgba(217,64,64,.4)}
.path-shadow:hover{border-color:rgba(74,158,202,.4)}
.path-voice:hover{border-color:rgba(232,160,32,.4)}
.path-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;opacity:0;transition:opacity .3s}
.path-blade::after{background:var(--red)}
.path-shadow::after{background:var(--accent)}
.path-voice::after{background:var(--gold)}
.path-card:hover::after{opacity:1}
.path-tag{font-size:.55em;letter-spacing:3px;text-transform:uppercase;padding:3px 8px;border:1px solid;border-radius:2px;display:inline-block;margin-bottom:14px}
.path-blade .path-tag{color:var(--red);border-color:rgba(217,64,64,.3);background:rgba(217,64,64,.08)}
.path-shadow .path-tag{color:var(--accent);border-color:rgba(74,158,202,.3);background:rgba(74,158,202,.08)}
.path-voice .path-tag{color:var(--gold);border-color:rgba(232,160,32,.3);background:rgba(232,160,32,.08)}
.path-card h3{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--silver-hi);margin-bottom:10px}
.path-card p{font-size:.76em;color:var(--text-dim);line-height:1.8}
@media(max-width:768px){.paths-grid{grid-template-columns:1fr}}

/* ── FOUNDERS ── */
.founders-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.founder-card{
  background:var(--card);border:1px solid var(--border);border-radius:4px;
  padding:28px 24px;text-align:center;
  position:relative;overflow:hidden;transition:border-color .2s;
}
.founder-card:hover{border-color:var(--border-purple)}
.founder-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent)}
.founder-icon{
  width:56px;height:56px;margin:0 auto 16px;
  border-radius:50%;border:1px solid var(--border-purple);
  background:rgba(136,96,208,.08);
  display:flex;align-items:center;justify-content:center;
  font-size:1.4em;
}
.founder-title{font-family:'Cinzel',serif;font-size:.8em;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--purple-hi);margin-bottom:10px}
.founder-card p{font-size:.74em;color:var(--text-dim);line-height:1.8}
@media(max-width:768px){.founders-grid{grid-template-columns:1fr}}

/* ── ETERNAL LAYERS ── */
.layers{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:4px;overflow:hidden}
.layer-row{display:flex;align-items:stretch;border-bottom:1px solid var(--border)}
.layer-row:last-child{border-bottom:none}
.layer-num{
  width:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-family:'Rajdhani',sans-serif;font-size:1.4em;font-weight:700;
  border-right:1px solid var(--border);background:rgba(0,0,0,.2);
}
.layer-label{
  width:200px;flex-shrink:0;padding:16px 18px;
  border-right:1px solid var(--border);background:rgba(136,96,208,.04);
}
.layer-label .layer-tag{font-size:.58em;letter-spacing:2px;text-transform:uppercase;color:var(--purple);margin-bottom:4px}
.layer-label .layer-name{font-family:'Rajdhani',sans-serif;font-size:.85em;font-weight:700;letter-spacing:1px;color:var(--silver-hi)}
.layer-desc{flex:1;padding:16px 18px;font-size:.76em;color:var(--text-dim);line-height:1.8}
@media(max-width:640px){
  .layer-row{flex-direction:column}
  .layer-label{width:100%;border-right:none;border-bottom:1px solid var(--border)}
  .layer-num{width:100%;height:40px;border-right:none;border-bottom:1px solid var(--border)}
}

/* ── INFO CALLOUT ── */
.callout{
  background:rgba(136,96,208,.06);
  border:1px solid var(--border-purple);border-radius:4px;
  padding:20px 24px;margin-top:24px;
  display:flex;gap:14px;align-items:flex-start;
}
.callout-icon{flex-shrink:0;color:var(--purple);font-size:1.1em;margin-top:1px}
.callout p{font-size:.78em;color:var(--text-dim);line-height:1.8}
.callout p strong{color:var(--purple-hi)}

/* ── BACK TO TOP ── */
/* ── FADE IN ── */
/* ── FOOTER ── */

/* ── index.php ── */
body.index-page .hero{
  position:relative;
  min-height:100vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:100px 24px 80px;
  text-align:center;
  overflow:hidden;
}
body.index-page .hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 30%, rgba(88,30,200,.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 40% at 20% 70%, rgba(30,80,160,.08) 0%, transparent 50%),
    radial-gradient(ellipse 30% 30% at 80% 20%, rgba(136,96,208,.06) 0%, transparent 50%),
    var(--bg);
}
body.index-page .hero-bg::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(1px 60px at 30% 0%, rgba(136,96,208,.3) 0%, transparent 100%),
    radial-gradient(1px 40px at 70% 0%, rgba(74,158,202,.2) 0%, transparent 100%),
    radial-gradient(1px 80px at 50% 0%, rgba(136,96,208,.15) 0%, transparent 100%);
  animation:lightning 8s ease-in-out infinite;
}
@keyframes lightning{
  0%,100%{opacity:.4}
  45%{opacity:.4}
  50%{opacity:1}
  52%{opacity:.2}
  54%{opacity:.9}
  56%{opacity:.4}
}
body.index-page .stars{position:absolute;inset:0;z-index:0;overflow:hidden}
body.index-page .stars span{
  position:absolute;border-radius:50%;
  background:#fff;
  animation:twinkle var(--d,3s) ease-in-out infinite var(--delay,0s);
}
@keyframes twinkle{0%,100%{opacity:var(--min,.1)}50%{opacity:var(--max,.6)}}
body.index-page .hero-content{position:relative;z-index:1;max-width:760px;margin:0 auto}
body.index-page .hero-eyebrow{
  font-family:'Rajdhani',sans-serif;
  font-size:.68em;font-weight:600;
  letter-spacing:5px;text-transform:uppercase;
  color:var(--purple-hi);
  margin-bottom:20px;
  opacity:0;animation:fadeUp .8s ease .2s forwards;
}
body.index-page .hero-seal{
  width:88px;height:88px;
  display:block;margin:0 auto 28px;
  filter:drop-shadow(0 0 20px rgba(136,96,208,.7));
  animation:sealIn 1.2s ease .1s both, sealFloat 5s ease-in-out 1.3s infinite;
}
@keyframes sealIn{from{opacity:0;transform:scale(.6) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}
@keyframes sealFloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-8px) rotate(.5deg)}}
body.index-page .hero-title{
  font-family:'Cinzel',serif;
  font-size:clamp(2em,6vw,3.6em);
  font-weight:700;
  letter-spacing:6px;
  text-transform:uppercase;
  color:var(--silver-hi);
  text-shadow:0 0 40px rgba(136,96,208,.4),0 2px 0 rgba(0,0,0,.5);
  line-height:1.1;
  margin-bottom:12px;
  opacity:0;animation:fadeUp .9s ease .35s forwards;
}
body.index-page .hero-title span{color:var(--purple-hi)}
body.index-page .hero-divider{
  display:flex;align-items:center;gap:16px;
  max-width:360px;margin:18px auto;
  opacity:0;animation:fadeUp .8s ease .5s forwards;
}
body.index-page .hero-divider::before, body.index-page .hero-divider::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,transparent,var(--border-purple));
}
body.index-page .hero-divider::after{background:linear-gradient(90deg,var(--border-purple),transparent)}
body.index-page .hero-divider-icon{color:var(--purple);font-size:1em;flex-shrink:0}
body.index-page .hero-creed{
  font-family:'Cinzel',serif;
  font-size:clamp(.8em,2vw,1em);
  font-weight:400;
  letter-spacing:3px;
  color:var(--gold);
  font-style:italic;
  margin-bottom:28px;
  opacity:0;animation:fadeUp .8s ease .6s forwards;
}
body.index-page .hero-lore{
  font-size:clamp(.78em,1.8vw,.9em);
  color:var(--text-dim);
  line-height:1.9;
  max-width:580px;
  margin:0 auto 44px;
  opacity:0;animation:fadeUp .8s ease .75s forwards;
}
body.index-page .hero-actions{
  display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
  opacity:0;animation:fadeUp .8s ease .9s forwards;
}
body.index-page .btn-primary{
  display:inline-flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,var(--purple-lo),var(--purple-mid));
  color:#fff;
  border:1px solid var(--purple);
  padding:13px 36px;
  border-radius:3px;
  font-family:'Rajdhani',sans-serif;
  font-size:.85em;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  text-decoration:none;cursor:pointer;
  transition:all .25s;
  box-shadow:0 4px 24px rgba(136,96,208,.3);
}
body.index-page .btn-primary:hover{
  background:linear-gradient(135deg,var(--purple-mid),var(--purple));
  box-shadow:0 8px 32px rgba(136,96,208,.5);
  transform:translateY(-2px);
}
body.index-page .btn-secondary{
  display:inline-flex;align-items:center;gap:10px;
  background:transparent;
  color:var(--text-dim);
  border:1px solid var(--border);
  padding:13px 28px;
  border-radius:3px;
  font-family:'Rajdhani',sans-serif;
  font-size:.85em;font-weight:600;
  letter-spacing:3px;text-transform:uppercase;
  text-decoration:none;
  transition:all .25s;
}
body.index-page .btn-secondary:hover{color:var(--text);border-color:var(--border-hi);transform:translateY(-2px)}
body.index-page .scroll-hint{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;
  opacity:0;animation:fadeUp .6s ease 1.4s forwards;
}
body.index-page .scroll-hint span{font-size:.5em;letter-spacing:3px;color:var(--muted);text-transform:uppercase}
body.index-page .scroll-arrow{
  width:18px;height:28px;
  border:1px solid var(--border-purple);border-radius:10px;
  position:relative;
}
body.index-page .scroll-arrow::after{
  content:'';position:absolute;top:5px;left:50%;
  width:3px;height:6px;border-radius:2px;
  background:var(--purple);margin-left:-1.5px;
  animation:scrollDot 2s ease-in-out infinite;
}
@keyframes scrollDot{0%,100%{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(8px)}}
body.index-page .stats-bar{
  background:var(--surface);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:0;
}
body.index-page .stats-inner{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);
}
body.index-page .stat-item{
  padding:20px 24px;
  border-right:1px solid var(--border);
  text-align:center;
  position:relative;
  overflow:hidden;
  transition:background .2s;
}
body.index-page .stat-item:last-child{border-right:none}
body.index-page .stat-item:hover{background:rgba(136,96,208,.04)}
body.index-page .stat-item::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--purple-mid),transparent);
  opacity:0;transition:opacity .2s;
}
body.index-page .stat-item:hover::before{opacity:1}
body.index-page .stat-num{
  font-family:'Rajdhani',sans-serif;
  font-size:1.8em;font-weight:700;
  color:var(--purple-hi);
  line-height:1;margin-bottom:4px;
}
body.index-page .stat-label{font-size:.56em;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
@media(max-width:640px){body.index-page .stats-inner{grid-template-columns:repeat(2,1fr)}
body.index-page .stat-item:nth-child(2){border-right:none}
body.index-page .stat-item:nth-child(3){border-top:1px solid var(--border)}}
body.index-page .section{padding:80px 24px;position:relative}
body.index-page .section-inner{max-width:1100px;margin:0 auto}
body.index-page .section-header{text-align:center;margin-bottom:52px}
body.index-page .section-eyebrow{
  font-family:'Rajdhani',sans-serif;
  font-size:.65em;font-weight:600;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--purple);margin-bottom:12px;
}
body.index-page .section-title{
  font-family:'Cinzel',serif;
  font-size:clamp(1.2em,3vw,1.8em);
  font-weight:600;letter-spacing:3px;
  text-transform:uppercase;
  color:var(--silver-hi);margin-bottom:14px;
}
body.index-page .section-sub{
  font-size:.82em;color:var(--text-dim);
  line-height:1.8;max-width:520px;margin:0 auto;
}
body.index-page .section-rule{
  display:flex;align-items:center;gap:16px;
  max-width:300px;margin:20px auto 0;
}
body.index-page .section-rule::before, body.index-page .section-rule::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,transparent,var(--border-purple));
}
body.index-page .section-rule::after{background:linear-gradient(90deg,var(--border-purple),transparent)}
body.index-page .section-rule-icon{color:var(--purple-mid);font-size:.8em}
body.index-page .pillars-section{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
body.index-page .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
body.index-page .pillar{
  padding:40px 32px;
  border-right:1px solid var(--border);
  position:relative;overflow:hidden;
  transition:background .3s;
}
body.index-page .pillar:last-child{border-right:none}
body.index-page .pillar:hover{background:rgba(136,96,208,.04)}
body.index-page .pillar::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  opacity:0;transition:opacity .3s;
}
body.index-page .pillar:hover::before{opacity:1}
body.index-page .pillar-1::before{background:linear-gradient(90deg,var(--purple),transparent)}
body.index-page .pillar-2::before{background:linear-gradient(90deg,transparent,var(--accent),transparent)}
body.index-page .pillar-3::before{background:linear-gradient(90deg,transparent,var(--gold))}
body.index-page .pillar-icon{
  width:44px;height:44px;margin-bottom:18px;
  background:rgba(136,96,208,.1);
  border:1px solid var(--border-purple);
  border-radius:4px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.2em;
}
body.index-page .pillar h3{
  font-family:'Rajdhani',sans-serif;
  font-size:.9em;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--silver-hi);margin-bottom:10px;
}
body.index-page .pillar p{font-size:.76em;color:var(--text-dim);line-height:1.8}
@media(max-width:768px){body.index-page .pillars{grid-template-columns:1fr}
body.index-page .pillar{border-right:none;border-bottom:1px solid var(--border)}
body.index-page .pillar:last-child{border-bottom:none}}
body.index-page .paths-section{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
body.index-page .paths{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
body.index-page .path-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:4px;
  padding:28px 24px;
  position:relative;overflow:hidden;
  transition:border-color .25s,transform .25s;
  cursor:default;
}
body.index-page .path-card:hover{transform:translateY(-4px)}
body.index-page .path-blade:hover{border-color:rgba(217,64,64,.4)}
body.index-page .path-shadow:hover{border-color:rgba(74,158,202,.4)}
body.index-page .path-voice:hover{border-color:rgba(232,160,32,.4)}
body.index-page .path-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  opacity:0;transition:opacity .3s;
}
body.index-page .path-blade::after{background:var(--red)}
body.index-page .path-shadow::after{background:var(--accent)}
body.index-page .path-voice::after{background:var(--gold)}
body.index-page .path-card:hover::after{opacity:1}
body.index-page .path-tag{
  font-size:.55em;letter-spacing:3px;text-transform:uppercase;
  padding:3px 8px;border:1px solid;border-radius:2px;
  display:inline-block;margin-bottom:14px;
}
body.index-page .path-blade .path-tag{color:var(--red);border-color:rgba(217,64,64,.3);background:rgba(217,64,64,.08)}
body.index-page .path-shadow .path-tag{color:var(--accent);border-color:rgba(74,158,202,.3);background:rgba(74,158,202,.08)}
body.index-page .path-voice .path-tag{color:var(--gold);border-color:rgba(232,160,32,.3);background:rgba(232,160,32,.08)}
body.index-page .path-card h3{
  font-family:'Rajdhani',sans-serif;
  font-size:1.05em;font-weight:700;letter-spacing:2px;
  text-transform:uppercase;color:var(--silver-hi);margin-bottom:10px;
}
body.index-page .path-card p{font-size:.74em;color:var(--text-dim);line-height:1.8}
@media(max-width:768px){body.index-page .paths{grid-template-columns:1fr}}
@media(max-width:900px){body.index-page .tone-grid{grid-template-columns:1fr !important}}
body.index-page .timeline-teaser{
  display:flex;gap:0;
  border:1px solid var(--border);border-radius:4px;
  overflow:hidden;
}
body.index-page .tl-event{
  flex:1;padding:20px 18px;
  border-right:1px solid var(--border);
  position:relative;
  transition:background .2s;
}
body.index-page .tl-event:last-child{border-right:none}
body.index-page .tl-event:hover{background:rgba(136,96,208,.04)}
body.index-page .tl-year{
  font-family:'Rajdhani',sans-serif;
  font-size:.65em;font-weight:700;
  letter-spacing:2px;color:var(--purple);
  margin-bottom:5px;
}
body.index-page .tl-event h4{
  font-family:'Rajdhani',sans-serif;
  font-size:.8em;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
  color:var(--silver-hi);margin-bottom:5px;
}
body.index-page .tl-event p{font-size:.64em;color:var(--text-dim);line-height:1.6}
body.index-page .tl-event::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--purple-mid);opacity:0;transition:opacity .2s;
}
body.index-page .tl-event:hover::before{opacity:1}
@media(max-width:768px){body.index-page .timeline-teaser{flex-direction:column}
body.index-page .tl-event{border-right:none;border-bottom:1px solid var(--border)}
body.index-page .tl-event:last-child{border-bottom:none}}
body.index-page .cta-section{
  text-align:center;
  padding:80px 24px;
  position:relative;overflow:hidden;
}
body.index-page .cta-section::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(88,30,200,.08) 0%,transparent 70%);
}
body.index-page .cta-section .section-title{margin-bottom:16px}
body.index-page .cta-section .section-sub{margin-bottom:36px}
body.index-page .cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
body.index-page .footer-top{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:40px;margin-bottom:32px;
  padding-bottom:28px;border-bottom:1px solid var(--border);
}
body.index-page .footer-brand .footer-brand p{font-size:.7em;color:var(--muted);line-height:1.8;max-width:260px}
body.index-page .footer-col h4{
  font-family:'Rajdhani',sans-serif;
  font-size:.62em;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--purple-hi);margin-bottom:12px;
}
body.index-page .footer-col ul{list-style:none}
body.index-page .footer-col ul li{margin-bottom:7px}
body.index-page .footer-col ul a{
  font-size:.7em;color:var(--muted);text-decoration:none;
  transition:color .15s;letter-spacing:.5px;
}
body.index-page .footer-col ul a:hover{color:var(--text)}
body.index-page .footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
}
body.index-page .footer-bottom p{font-size:.58em;color:var(--muted);letter-spacing:1px}
@media(max-width:768px){body.index-page .footer-top{grid-template-columns:1fr 1fr}
body.index-page .footer-brand{grid-column:1/-1}}
@media(max-width:480px){body.index-page .footer-top{grid-template-columns:1fr}}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}

/* ── rules.php ── */
/* BACK TO TOP */
.back-to-top{position:fixed;bottom:28px;right:28px;z-index:140;width:40px;height:40px;background:var(--card);border:1px solid var(--border-purple);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--purple-hi);font-size:.8em;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s,border-color .2s;transform:translateY(8px)}
.back-to-top.visible{opacity:1;pointer-events:all;transform:translateY(0)}
.back-to-top:hover{border-color:var(--purple);background:rgba(136,96,208,.1)}
/* FADE IN */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
/* FOOTER */
.site-footer{background:var(--surface);border-top:1px solid var(--border);padding:28px 24px}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-seal{width:26px;height:26px;opacity:.1;filter:grayscale(1)}
/* PAGE HEADER */
.page-header{padding:110px 24px 52px;text-align:center;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(80,30,160,.14) 0%,transparent 100%);position:relative;overflow:hidden}
.page-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent);opacity:.5}
.page-header-seal{width:64px;height:64px;display:block;margin:0 auto 20px;filter:drop-shadow(0 0 16px rgba(136,96,208,.5))}
.page-eyebrow{font-family:'Rajdhani',sans-serif;font-size:.65em;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--purple);margin-bottom:10px}
.page-title{font-family:'Cinzel',serif;font-size:clamp(1.6em,4vw,2.6em);font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--silver-hi);text-shadow:0 0 30px rgba(136,96,208,.3);margin-bottom:14px}
.page-creed{font-family:'Cinzel',serif;font-size:.85em;letter-spacing:3px;color:var(--gold);font-style:italic;margin-bottom:16px}
.page-sub{font-size:.8em;color:var(--text-dim);line-height:1.9;max-width:520px;margin:0 auto}

/* SECTION TABS */
.section-tabs-wrap{position:sticky;top:54px;z-index:100;background:rgba(7,8,15,.96);border-bottom:1px solid var(--border);backdrop-filter:blur(8px)}
.section-tabs{max-width:900px;margin:0 auto;display:flex;padding:0 16px}
.section-tab{
  flex:1;padding:14px 12px;
  font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--muted);background:none;border:none;
  border-bottom:2px solid transparent;cursor:pointer;
  transition:all .2s;
  display:flex;flex-direction:column;align-items:center;gap:3px;
}
.section-tab:hover{color:var(--text)}
.section-tab.active{color:var(--tab-color,var(--purple-hi));border-bottom-color:var(--tab-color,var(--purple))}
.section-tab-icon{font-size:1.1em}
.section-tab-count{font-size:.65em;letter-spacing:1px;color:var(--muted)}

/* PAGE BODY */
.page-body{max-width:900px;margin:0 auto;padding:0 24px 80px}

/* RULE PANELS */
.rule-panel{display:none;padding-top:48px}
.rule-panel.active{display:block}

/* PANEL INTRO */
.panel-intro{
  background:var(--card);border:1px solid var(--border);border-radius:4px;
  padding:20px 24px;margin-bottom:32px;
  display:flex;align-items:center;gap:14px;
  position:relative;overflow:hidden;
}
.panel-intro::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.panel-intro-icon{font-size:1.3em;flex-shrink:0}
.panel-intro p{font-size:.78em;color:var(--text-dim);line-height:1.8}

/* RULE CARDS */
.rules-list{display:flex;flex-direction:column;gap:8px}
.rule-card{
  background:var(--card);border:1px solid var(--border);border-radius:4px;
  overflow:hidden;transition:border-color .2s;cursor:pointer;
}
.rule-card:hover{border-color:var(--border-hi)}
.rule-card.open{border-color:var(--rule-color,var(--purple))}
.rule-card-header{display:flex;align-items:stretch}
.rule-num{
  flex-shrink:0;width:48px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Rajdhani',sans-serif;font-size:1.1em;font-weight:700;
  border-right:1px solid var(--border);
  background:rgba(0,0,0,.2);
  transition:color .2s;
}
.rule-card.open .rule-num{color:var(--rule-color,var(--purple))}
.rule-main{flex:1;padding:14px 16px;min-width:0}
.rule-title{
  font-family:'Rajdhani',sans-serif;font-size:.92em;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
  color:var(--silver-hi);margin-bottom:4px;
}
.rule-card.open .rule-title{color:var(--rule-color,var(--purple-hi))}
.rule-short{font-size:.72em;color:var(--text-dim);line-height:1.5}
.rule-toggle{
  flex-shrink:0;width:36px;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:.65em;
  border-left:1px solid var(--border);
  transition:color .2s;
}
.rule-card.open .rule-toggle{color:var(--rule-color,var(--purple))}
.rule-toggle span{transition:transform .25s}
.rule-card.open .rule-toggle span{transform:rotate(180deg)}
.rule-body{
  display:none;
  padding:14px 18px 16px 64px;
  border-top:1px solid var(--border);
  font-size:.8em;color:var(--text-dim);line-height:2;
}
.rule-card.open .rule-body{display:block;animation:expandIn .2s ease}
@keyframes expandIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.rule-stripe{width:3px;flex-shrink:0}

/* ── senate.php ── */
body.senate-page{--amber:#c8601a;--blue:#4a9eca}
body.senate-page .page-header{padding:100px 24px 56px;text-align:center;position:relative;overflow:hidden;border-bottom:none;background:transparent}
body.senate-page .page-header::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(80,30,160,.18) 0%,transparent 70%);pointer-events:none}
body.senate-page .page-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--purple-mid),transparent);opacity:.4}
body.senate-page .page-eyebrow{font-family:'Share Tech Mono',monospace;font-size:.65em;letter-spacing:4px;color:var(--purple-hi);opacity:.7;text-transform:uppercase;margin-bottom:14px}
body.senate-page .page-title{font-family:'Cinzel',serif;font-size:2.6em;font-weight:700;color:var(--silver-hi);letter-spacing:6px;text-transform:uppercase;text-shadow:0 0 40px rgba(136,96,208,.35);margin-bottom:10px}
body.senate-page .page-subtitle{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:400;color:var(--muted);letter-spacing:3px;text-transform:uppercase}
body.senate-page .page-divider{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--purple),transparent);margin:20px auto 0}
.senate-wrap{max-width:1100px;margin:0 auto;padding:52px 24px 100px}
.sec-head{display:flex;align-items:center;gap:14px;margin:52px 0 24px}
.sec-head:first-child{margin-top:0}
.sec-num{font-family:'Share Tech Mono',monospace;font-size:.68em;color:var(--purple);opacity:.6;letter-spacing:2px;flex-shrink:0}
.sec-title{font-family:'Rajdhani',sans-serif;font-size:1.15em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--silver-hi)}
.sec-count{font-family:'Share Tech Mono',monospace;font-size:.68em;color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:2px;padding:1px 8px;flex-shrink:0}
.sec-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}
.seat-viz{margin-bottom:28px}
.seat-viz-card{background:linear-gradient(180deg,rgba(80,30,160,.08) 0%,rgba(7,8,15,.96) 42%,#070810 100%);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.35),inset 0 1px 0 rgba(136,96,208,.08)}
.seat-viz-svg{width:100%;display:block}
.seat-viz-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;padding:12px 16px 14px;border-top:1px solid var(--border);background:rgba(0,0,0,.22)}
.seat-viz-legend-item{display:flex;align-items:center;gap:6px;font-family:'Share Tech Mono',monospace;font-size:.66em;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.seat-viz-legend-swatch{width:10px;height:10px;background:var(--swatch);clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);opacity:.85}
.seat-viz-legend-item.is-vacant .seat-viz-legend-swatch{background:transparent;border:1px dashed var(--swatch);opacity:.5}
.senator-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.senator-card{background:var(--card);border:1px solid var(--border);border-top:3px solid var(--border);border-radius:5px;overflow:hidden;transition:border-color .25s,transform .25s}
.senator-card:hover{transform:translateY(-2px)}
.senator-card.appointed{background:linear-gradient(180deg,rgba(200,144,42,.04) 0%,transparent 40%)}
.senator-appointed-badge{display:flex;align-items:center;gap:6px;font-size:.64em;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);font-weight:700;padding:6px 18px 0}
.senator-portrait{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center top;display:block}
.senator-portrait-placeholder{width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--subtle) 0%,var(--card2) 100%);font-family:'Cinzel',serif;font-size:2.6em;font-weight:700;color:var(--border-hi);letter-spacing:5px;user-select:none}
.senator-body{padding:16px 18px 18px}
.senator-name{font-family:'Rajdhani',sans-serif;font-size:1.15em;font-weight:700;color:var(--silver-hi);letter-spacing:1px;margin-bottom:3px}
.senator-cid{font-family:'Share Tech Mono',monospace;font-size:.68em;color:var(--purple-hi);letter-spacing:1px;margin-bottom:10px}
.senator-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;min-height:22px}
.senator-tag{font-size:.64em;letter-spacing:1px;padding:2px 8px;border-radius:2px;border:1px solid var(--border);color:var(--text-dim);background:var(--card2);text-transform:uppercase}
.senator-tag.force{color:var(--purple-hi);border-color:var(--border-purple);background:rgba(136,96,208,.08)}
.senator-tag.faction{color:var(--gold);border-color:rgba(232,160,32,.25);background:rgba(232,160,32,.05)}
.senator-tag.allegiance{color:var(--blue);border-color:rgba(74,158,202,.25);background:rgba(74,158,202,.05)}
.senator-term-label{display:flex;justify-content:space-between;font-size:.65em;color:var(--muted);margin-bottom:5px}
.senator-term-bar-bg{height:3px;background:var(--subtle);border-radius:2px;overflow:hidden}
.senator-term-bar-fill{height:100%;border-radius:2px}
.senator-election{margin-top:8px;font-size:.67em;color:var(--muted)}
.senator-election span{color:var(--text-dim)}
body.senate-page .empty-state{background:var(--card);border:1px dashed var(--border);border-radius:4px;padding:40px;text-align:center;color:var(--muted);font-size:.82em;letter-spacing:1px}
.leg-list{display:flex;flex-direction:column;gap:10px}
.leg-item{background:var(--card);border:1px solid rgba(61,184,138,.2);border-radius:4px;overflow:hidden}
.leg-item-head{padding:14px 18px;display:flex;align-items:center;gap:12px;cursor:pointer;user-select:none}
.leg-item.open .leg-body{display:block}
.leg-body{display:none;padding:0 18px 16px;border-top:1px solid var(--border)}
body.senate-page .live-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);flex-shrink:0;animation:senateLivePulse 1.4s ease-in-out infinite}
@keyframes senateLivePulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(61,184,138,0)}50%{opacity:.8;box-shadow:0 0 6px 3px rgba(61,184,138,.3)}}
.leg-cat{font-family:'Rajdhani',sans-serif;font-size:.65em;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:2px 8px;border-radius:2px;flex-shrink:0}
.cat-law{background:rgba(217,64,64,.1);color:var(--red);border:1px solid rgba(217,64,64,.25)}
.cat-amendment{background:rgba(136,96,208,.1);color:var(--purple-hi);border:1px solid var(--border-purple)}
.cat-resolution{background:rgba(74,158,202,.1);color:var(--blue);border:1px solid rgba(74,158,202,.25)}
.cat-budget{background:rgba(232,160,32,.1);color:var(--gold);border:1px solid rgba(232,160,32,.25)}
.cat-other{background:rgba(30,42,58,.6);color:var(--muted);border:1px solid var(--border)}
.leg-title{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;color:var(--silver-hi);flex:1;letter-spacing:.5px}
.leg-chevron{color:var(--muted);font-size:.7em;flex-shrink:0;transition:transform .2s}
.leg-item.open .leg-chevron{transform:rotate(180deg)}
.leg-summary{font-size:.82em;color:var(--text-dim);line-height:1.7;margin:12px 0}
.leg-proposer{font-size:.72em;color:var(--muted);margin-bottom:10px}
.leg-proposer span{color:var(--purple-hi)}
.tally-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.tally-block{padding:8px;text-align:center;background:var(--card2);border-radius:3px;border:1px solid var(--border)}
.tally-num{font-family:'Rajdhani',sans-serif;font-size:1.2em;font-weight:700}
.tally-label{font-size:.62em;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:2px}
.tally-aye .tally-num{color:var(--teal)}.tally-nay .tally-num{color:var(--red)}.tally-abs .tally-num{color:var(--muted)}
.vote-bar{height:4px;display:flex;border-radius:2px;overflow:hidden;background:var(--subtle)}
.bar-aye{background:var(--teal)}.bar-nay{background:var(--red)}.bar-abs{background:var(--border-hi)}
.record-list{display:flex;flex-direction:column;gap:7px}
.record-item{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:4px;overflow:hidden}
.record-item.passed{border-left-color:var(--teal)}
.record-item.failed{border-left-color:var(--red)}
.record-item.vetoed{border-left-color:var(--amber)}
.record-item.tabled{border-left-color:var(--muted)}
.record-item-head{padding:11px 16px;display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.record-item.open .record-body{display:block}
.record-body{display:none;padding:0 16px 14px;border-top:1px solid var(--border)}
.record-status{font-size:.62em;letter-spacing:1.5px;padding:2px 8px;border-radius:2px;font-family:'Share Tech Mono',monospace;white-space:nowrap;flex-shrink:0;text-transform:uppercase}
.record-title{font-family:'Rajdhani',sans-serif;font-size:.94em;font-weight:700;color:var(--text-dim);flex:1;letter-spacing:.5px}
.record-date{font-size:.67em;color:var(--muted);white-space:nowrap;flex-shrink:0}
.record-chevron{color:var(--muted);font-size:.65em;flex-shrink:0;transition:transform .2s}
.record-item.open .record-chevron{transform:rotate(180deg)}
.record-summary{font-size:.8em;color:var(--text-dim);line-height:1.6;margin:10px 0 8px}
.record-tally{font-size:.74em;color:var(--muted)}
.record-tally span{color:var(--text-dim)}
.former-wrap{margin-top:52px}
.former-summary{cursor:pointer;list-style:none;display:block}
.former-summary::-webkit-details-marker{display:none}
.former-table{width:100%;border-collapse:collapse;font-size:.8em;margin-top:16px}
.former-table th{text-align:left;padding:6px 12px;font-size:.64em;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);font-weight:400}
.former-table td{padding:8px 12px;border-bottom:1px solid rgba(30,42,58,.5);color:var(--text-dim);vertical-align:middle}
.former-table tr:last-child td{border-bottom:none}
.former-table tr:hover td{background:rgba(255,255,255,.015)}
.cid-chip-sm{font-family:'Share Tech Mono',monospace;font-size:.85em;color:var(--purple-hi)}
.senator-portal{margin-top:52px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;border:1px solid var(--border-purple);border-radius:5px;background:linear-gradient(90deg,rgba(80,30,160,.12),rgba(136,96,208,.06));flex-wrap:wrap}
.senator-portal-title{font-family:'Rajdhani',sans-serif;font-size:1.05em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--silver-hi);margin-bottom:5px}
.senator-portal-sub{font-size:.76em;color:var(--text-dim);line-height:1.6;max-width:540px}
.senator-portal-btn{font-family:'Rajdhani',sans-serif;font-size:.84em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--purple-hi);border:1px solid var(--border-purple);background:rgba(136,96,208,.1);padding:10px 22px;border-radius:3px;text-decoration:none;white-space:nowrap;transition:all .2s;flex-shrink:0}
.senator-portal-btn:hover{background:rgba(136,96,208,.2);border-color:var(--purple);color:#fff}
body.senate-page .page-footer-links{margin-top:48px;padding-top:20px;border-top:1px solid var(--border);display:flex;gap:20px;flex-wrap:wrap;font-size:.72em}
body.senate-page .page-footer-links a{color:var(--muted);text-decoration:none;transition:color .2s}
body.senate-page .page-footer-links a:hover{color:var(--text)}
body.senate-page .fade-in{opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s}
body.senate-page .fade-in.visible{opacity:1;transform:none}
@media(max-width:680px){
  .senator-grid{grid-template-columns:1fr}
  body.senate-page .page-title{font-size:1.8em}
  .record-date{display:none}
  .tally-row{gap:6px}
}

/* ── senate_chamber.php ── */
body.senate-chamber-page .chamber-outer{max-width:980px;margin:0 auto;padding:90px 24px 80px}
body.senate-chamber-page .chamber-grid{display:grid;grid-template-columns:1fr 220px;gap:28px;align-items:start}
@media(max-width:700px){body.senate-chamber-page .chamber-grid{grid-template-columns:1fr}}
body.senate-chamber-page .breadcrumb{font-size:.7em;color:var(--muted);letter-spacing:1px;margin-bottom:24px}
body.senate-chamber-page .breadcrumb a{color:var(--muted);text-decoration:none}
body.senate-chamber-page .breadcrumb a:hover{color:var(--text)}
body.senate-chamber-page .breadcrumb span{color:var(--border-hi);margin:0 6px}
body.senate-chamber-page .page-eyebrow{font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--purple-hi);margin-bottom:8px}
body.senate-chamber-page .page-title{font-family:'Cinzel',serif;font-size:1.8em;font-weight:700;color:var(--silver-hi);letter-spacing:2px}
body.senate-chamber-page .page-rule{width:60px;height:1px;background:linear-gradient(90deg,var(--purple),transparent);margin-top:14px;margin-bottom:28px}
body.senate-chamber-page .session-bar{background:rgba(61,184,138,.06);border:1px solid rgba(61,184,138,.25);border-radius:4px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;flex-wrap:wrap}
body.senate-chamber-page .session-who{font-size:.8em;color:var(--text-dim)}
body.senate-chamber-page .session-who strong{color:var(--teal)}
body.senate-chamber-page .session-detail{font-size:.72em;color:var(--muted);margin-top:2px}
body.senate-chamber-page .session-logout{font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:600;letter-spacing:1.5px;color:var(--muted);text-decoration:none;border:1px solid var(--border);padding:5px 12px;border-radius:3px;transition:all .2s}
body.senate-chamber-page .session-logout:hover{color:var(--text);border-color:var(--border-hi)}
body.senate-chamber-page .flash-ok{background:rgba(61,184,138,.08);border:1px solid rgba(61,184,138,.3);border-radius:3px;padding:12px 16px;font-size:.84em;color:var(--teal);margin-bottom:20px}
body.senate-chamber-page .flash-err{background:rgba(217,64,64,.08);border:1px solid rgba(217,64,64,.3);border-radius:3px;padding:12px 16px;font-size:.84em;color:var(--red);margin-bottom:20px}
body.senate-chamber-page .section-head{display:flex;align-items:center;gap:14px;margin:28px 0 16px}
body.senate-chamber-page .section-head:first-child{margin-top:0}
body.senate-chamber-page .sh-num{font-family:'Share Tech Mono',monospace;font-size:.7em;color:var(--purple);opacity:.7;letter-spacing:2px}
body.senate-chamber-page .sh-title{font-family:'Rajdhani',sans-serif;font-size:1.05em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--silver-hi)}
body.senate-chamber-page .sh-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}
body.senate-chamber-page .motion-card{background:var(--card);border:1px solid var(--border);border-radius:4px;margin-bottom:14px;overflow:hidden}
body.senate-chamber-page .motion-card.voted{border-color:rgba(61,184,138,.2)}
body.senate-chamber-page .motion-head{padding:14px 18px 12px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
body.senate-chamber-page .motion-cat{font-family:'Rajdhani',sans-serif;font-size:.64em;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:2px 8px;border-radius:2px;flex-shrink:0;margin-top:2px}
body.senate-chamber-page .cat-law{background:rgba(217,64,64,.1);color:var(--red);border:1px solid rgba(217,64,64,.25)}
body.senate-chamber-page .cat-amendment{background:rgba(136,96,208,.1);color:var(--purple-hi);border:1px solid var(--border-purple)}
body.senate-chamber-page .cat-resolution{background:rgba(74,158,202,.1);color:var(--blue);border:1px solid rgba(74,158,202,.25)}
body.senate-chamber-page .cat-budget{background:rgba(232,160,32,.1);color:var(--gold);border:1px solid rgba(232,160,32,.25)}
body.senate-chamber-page .cat-other{background:rgba(30,42,58,.6);color:var(--muted);border:1px solid var(--border)}
body.senate-chamber-page .motion-title{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;color:var(--silver-hi);flex:1;letter-spacing:.5px}
body.senate-chamber-page .voted-badge{font-size:.64em;letter-spacing:1.5px;padding:3px 9px;border-radius:2px;font-family:'Share Tech Mono',monospace;white-space:nowrap;flex-shrink:0}
body.senate-chamber-page .vb-aye{background:rgba(61,184,138,.12);color:var(--teal);border:1px solid rgba(61,184,138,.3)}
body.senate-chamber-page .vb-nay{background:rgba(217,64,64,.1);color:var(--red);border:1px solid rgba(217,64,64,.3)}
body.senate-chamber-page .vb-abstain{background:rgba(106,126,146,.1);color:var(--muted);border:1px solid var(--border)}
body.senate-chamber-page .motion-body{padding:14px 18px 18px}
body.senate-chamber-page .motion-countdown{font-size:.7em;color:var(--gold);letter-spacing:1px;border:1px solid rgba(232,160,32,.2);padding:2px 9px;border-radius:2px;display:inline-block;margin-bottom:10px}
body.senate-chamber-page .motion-summary{font-size:.82em;color:var(--text-dim);line-height:1.7;margin-bottom:12px}
body.senate-chamber-page .motion-fulltext{font-size:.79em;color:var(--text-dim);line-height:1.7;margin-bottom:12px;background:rgba(0,0,0,.2);border:1px solid var(--border);border-radius:3px;padding:10px 12px;white-space:pre-wrap}
body.senate-chamber-page .motion-proposer{font-size:.72em;color:var(--muted);margin-bottom:12px}
body.senate-chamber-page .motion-proposer span{color:var(--purple-hi)}
body.senate-chamber-page .tally-row{display:flex;gap:0;border:1px solid var(--border);border-radius:3px;overflow:hidden;margin-bottom:12px}
body.senate-chamber-page .tally-block{flex:1;padding:9px;text-align:center;background:var(--card2)}
body.senate-chamber-page .tally-block+.tally-block{border-left:1px solid var(--border)}
body.senate-chamber-page .tally-num{font-family:'Rajdhani',sans-serif;font-size:1.25em;font-weight:700}
body.senate-chamber-page .tally-label{font-size:.62em;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:2px}
body.senate-chamber-page .t-aye .tally-num{color:var(--teal)}
body.senate-chamber-page .t-nay .tally-num{color:var(--red)}
body.senate-chamber-page .t-abs .tally-num{color:var(--muted)}
body.senate-chamber-page .vote-bar{height:4px;display:flex;border-radius:3px;overflow:hidden;background:var(--subtle);margin-bottom:12px}
body.senate-chamber-page .bar-aye{background:var(--teal)}
body.senate-chamber-page .bar-nay{background:var(--red)}
body.senate-chamber-page .bar-abs{background:var(--border-hi)}
body.senate-chamber-page .vote-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:4px}
body.senate-chamber-page .btn-aye{background:rgba(61,184,138,.1);border:1px solid rgba(61,184,138,.3);color:var(--teal);font-family:'Rajdhani',sans-serif;font-size:.85em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:9px 22px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-chamber-page .btn-aye:hover{background:rgba(61,184,138,.2);border-color:var(--teal)}
body.senate-chamber-page .btn-nay{background:rgba(217,64,64,.08);border:1px solid rgba(217,64,64,.25);color:var(--red);font-family:'Rajdhani',sans-serif;font-size:.85em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:9px 22px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-chamber-page .btn-nay:hover{background:rgba(217,64,64,.18);border-color:var(--red)}
body.senate-chamber-page .btn-abs{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Rajdhani',sans-serif;font-size:.85em;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:9px 22px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-chamber-page .btn-abs:hover{border-color:var(--border-hi);color:var(--text)}
body.senate-chamber-page .already-voted{font-size:.78em;color:var(--muted);font-style:italic}
body.senate-chamber-page .history-card{background:var(--card);border:1px solid var(--border);border-radius:4px;margin-bottom:8px;overflow:hidden}
body.senate-chamber-page .history-head{padding:11px 16px;display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
body.senate-chamber-page .history-body{display:none;padding:0 16px 14px;border-top:1px solid var(--border)}
body.senate-chamber-page .history-card.open .history-body{display:block}
body.senate-chamber-page .history-card.open .hist-chevron{transform:rotate(180deg)}
body.senate-chamber-page .hist-chevron{color:var(--muted);font-size:.68em;flex-shrink:0;transition:transform .2s}
body.senate-chamber-page .status-pill{font-size:.62em;letter-spacing:1.5px;padding:2px 8px;border-radius:2px;font-family:'Share Tech Mono',monospace}
body.senate-chamber-page .sp-passed{background:rgba(61,184,138,.1);color:var(--teal);border:1px solid rgba(61,184,138,.25)}
body.senate-chamber-page .sp-failed{background:rgba(217,64,64,.08);color:var(--red);border:1px solid rgba(217,64,64,.2)}
body.senate-chamber-page .sp-vetoed{background:rgba(200,96,26,.08);color:var(--amber);border:1px solid rgba(200,96,26,.2)}
body.senate-chamber-page .sp-tabled{background:rgba(106,126,146,.08);color:var(--muted);border:1px solid var(--border)}
body.senate-chamber-page .side-card{background:var(--card);border:1px solid var(--border);border-radius:4px;margin-bottom:14px;overflow:hidden}
body.senate-chamber-page .side-head{padding:11px 14px;border-bottom:1px solid var(--border);font-family:'Rajdhani',sans-serif;font-size:.8em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}
body.senate-chamber-page .side-body{padding:12px 14px}
body.senate-chamber-page .senator-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(30,42,58,.5);font-size:.78em}
body.senate-chamber-page .senator-row:last-child{border:none}
body.senate-chamber-page .senator-name{color:var(--text-dim)}
body.senate-chamber-page .senator-days{color:var(--muted);font-size:.85em}
body.senate-chamber-page .side-link{display:block;font-family:'Rajdhani',sans-serif;font-size:.8em;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:8px 14px;border-bottom:1px solid var(--border);transition:all .2s}
body.senate-chamber-page .side-link:last-child{border:none}
body.senate-chamber-page .side-link:hover{color:var(--text);background:rgba(136,96,208,.04)}
body.senate-chamber-page .auth-card{background:var(--card);border:1px solid var(--border-purple);border-radius:4px;overflow:hidden;max-width:480px}
body.senate-chamber-page .auth-head{padding:14px 20px 12px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(136,96,208,.06),transparent)}
body.senate-chamber-page .auth-head-title{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}
body.senate-chamber-page .auth-body{padding:20px}
body.senate-chamber-page .senate-mode-tabs{display:flex;gap:8px;margin-bottom:16px}
body.senate-chamber-page .senate-mode-tab{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Rajdhani',sans-serif;font-size:.78em;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:7px 14px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-chamber-page .senate-mode-tab.active{background:rgba(136,96,208,.1);border-color:var(--purple-mid);color:var(--purple-hi)}
body.senate-chamber-page .senate-field{margin-bottom:14px}
body.senate-chamber-page .senate-field label{display:block;font-size:.72em;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
body.senate-chamber-page .senate-field input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:10px 12px;color:var(--text);font-family:'Share Tech Mono',monospace;font-size:.88em;outline:none;transition:border-color .2s}
body.senate-chamber-page .senate-field input:focus{border-color:var(--purple)}
body.senate-chamber-page .senate-btn-submit{background:rgba(136,96,208,.15);border:1px solid var(--purple-mid);color:var(--purple-hi);font-family:'Rajdhani',sans-serif;font-size:.88em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:11px 28px;border-radius:3px;cursor:pointer;transition:all .2s;width:100%}
body.senate-chamber-page .senate-btn-submit:hover{background:rgba(136,96,208,.25);border-color:var(--purple)}
body.senate-chamber-page .senate-login-error{background:rgba(217,64,64,.08);border:1px solid rgba(217,64,64,.3);border-radius:3px;padding:10px 14px;font-size:.8em;color:var(--red);margin-bottom:14px}
body.senate-chamber-page .denied-box{max-width:480px;background:rgba(217,64,64,.05);border:1px solid rgba(217,64,64,.2);border-radius:4px;padding:28px;text-align:center}
body.senate-chamber-page .denied-icon{font-size:2em;opacity:.35;margin-bottom:10px}
body.senate-chamber-page .denied-title{font-family:'Rajdhani',sans-serif;font-size:1.1em;font-weight:700;color:var(--red);letter-spacing:2px;text-transform:uppercase}
body.senate-chamber-page .denied-sub{font-size:.8em;color:var(--muted);margin-top:10px;line-height:1.6}
body.senate-chamber-page .denied-sub a{color:var(--text-dim)}
body.senate-chamber-page .empty-motions{background:var(--card);border:1px dashed var(--border);border-radius:4px;padding:32px;text-align:center;color:var(--muted);font-size:.82em;letter-spacing:1px}
body.senate-chamber-page .fade-in{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
body.senate-chamber-page .fade-in.visible{opacity:1;transform:none}

/* ── senate_propose.php ── */
body.senate-propose-page .page-wrap{max-width:660px;margin:0 auto;padding:90px 24px 80px;display:block}
body.senate-propose-page .breadcrumb{font-size:.7em;color:var(--muted);letter-spacing:1px;margin-bottom:24px}
body.senate-propose-page .breadcrumb a{color:var(--muted);text-decoration:none}
body.senate-propose-page .breadcrumb a:hover{color:var(--text)}
body.senate-propose-page .breadcrumb span{color:var(--border-hi);margin:0 6px}
body.senate-propose-page .page-eyebrow{font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--purple-hi);margin-bottom:8px}
body.senate-propose-page .page-title{font-family:'Cinzel',serif;font-size:1.8em;font-weight:700;color:var(--silver-hi);letter-spacing:2px}
body.senate-propose-page .page-rule{width:60px;height:1px;background:linear-gradient(90deg,var(--purple),transparent);margin-top:14px;margin-bottom:28px}
body.senate-propose-page .session-bar{background:rgba(61,184,138,.06);border:1px solid rgba(61,184,138,.25);border-radius:4px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;flex-wrap:wrap}
body.senate-propose-page .session-who{font-size:.8em;color:var(--text-dim)}
body.senate-propose-page .session-who strong{color:var(--teal)}
body.senate-propose-page .session-detail{font-size:.72em;color:var(--muted);margin-top:2px}
body.senate-propose-page .session-logout{font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:600;letter-spacing:1.5px;color:var(--muted);text-decoration:none;border:1px solid var(--border);padding:5px 12px;border-radius:3px;transition:all .2s}
body.senate-propose-page .session-logout:hover{color:var(--text);border-color:var(--border-hi)}
body.senate-propose-page .flash-ok{background:rgba(61,184,138,.08);border:1px solid rgba(61,184,138,.3);border-radius:3px;padding:14px 18px;font-size:.84em;color:var(--teal);margin-bottom:24px}
body.senate-propose-page .submit-errors{background:rgba(217,64,64,.06);border:1px solid rgba(217,64,64,.2);border-radius:3px;padding:14px 18px;font-size:.82em;color:var(--red);margin-bottom:20px;line-height:1.8}
body.senate-propose-page .review-notice{background:rgba(232,160,32,.05);border:1px solid rgba(232,160,32,.2);border-radius:4px;padding:14px 18px;font-size:.8em;color:var(--gold);line-height:1.6;margin-bottom:24px}
body.senate-propose-page .form-card{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:26px}
body.senate-propose-page .field{margin-bottom:18px}
body.senate-propose-page .field label{display:block;font-family:'Rajdhani',sans-serif;font-size:.78em;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
body.senate-propose-page .field input,body.senate-propose-page .field select,body.senate-propose-page .field textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:10px 12px;color:var(--text);font-family:'Share Tech Mono',monospace;font-size:.88em;outline:none;transition:border-color .2s}
body.senate-propose-page .field input:focus,body.senate-propose-page .field select:focus,body.senate-propose-page .field textarea:focus{border-color:var(--purple)}
body.senate-propose-page .field textarea{resize:vertical;line-height:1.6}
body.senate-propose-page .field .hint{font-size:.72em;color:var(--muted);margin-top:5px;line-height:1.5}
body.senate-propose-page .char-count{font-size:.7em;color:var(--muted);float:right;margin-top:4px}
body.senate-propose-page .field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:520px){body.senate-propose-page .field-row{grid-template-columns:1fr}}
body.senate-propose-page .form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:8px}
body.senate-propose-page .form-note{font-size:.75em;color:var(--muted);line-height:1.5;max-width:280px}
body.senate-propose-page .btn-submit{background:rgba(136,96,208,.15);border:1px solid var(--purple-mid);color:var(--purple-hi);font-family:'Rajdhani',sans-serif;font-size:.9em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:12px 32px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-propose-page .btn-submit:hover{background:rgba(136,96,208,.25);border-color:var(--purple)}
body.senate-propose-page .auth-card{background:var(--card);border:1px solid var(--border-purple);border-radius:4px;overflow:hidden}
body.senate-propose-page .auth-head{padding:14px 20px 12px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(136,96,208,.06),transparent)}
body.senate-propose-page .auth-head-title{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}
body.senate-propose-page .auth-body{padding:20px}
body.senate-propose-page .senate-mode-tabs{display:flex;gap:8px;margin-bottom:16px}
body.senate-propose-page .senate-mode-tab{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Rajdhani',sans-serif;font-size:.78em;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:7px 14px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-propose-page .senate-mode-tab.active{background:rgba(136,96,208,.1);border-color:var(--purple-mid);color:var(--purple-hi)}
body.senate-propose-page .senate-field{margin-bottom:14px}
body.senate-propose-page .senate-field label{display:block;font-size:.72em;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
body.senate-propose-page .senate-field input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:10px 12px;color:var(--text);font-family:'Share Tech Mono',monospace;font-size:.88em;outline:none;transition:border-color .2s}
body.senate-propose-page .senate-field input:focus{border-color:var(--purple)}
body.senate-propose-page .senate-btn-submit{background:rgba(136,96,208,.15);border:1px solid var(--purple-mid);color:var(--purple-hi);font-family:'Rajdhani',sans-serif;font-size:.88em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:11px 28px;border-radius:3px;cursor:pointer;transition:all .2s;width:100%}
body.senate-propose-page .senate-btn-submit:hover{background:rgba(136,96,208,.25);border-color:var(--purple)}
body.senate-propose-page .senate-login-error{background:rgba(217,64,64,.08);border:1px solid rgba(217,64,64,.3);border-radius:3px;padding:10px 14px;font-size:.8em;color:var(--red);margin-bottom:14px}
body.senate-propose-page .denied-box{background:rgba(217,64,64,.05);border:1px solid rgba(217,64,64,.2);border-radius:4px;padding:28px;text-align:center}
body.senate-propose-page .denied-icon{font-size:2em;opacity:.35;margin-bottom:10px}
body.senate-propose-page .denied-title{font-family:'Rajdhani',sans-serif;font-size:1.1em;font-weight:700;color:var(--red);letter-spacing:2px;text-transform:uppercase}
body.senate-propose-page .denied-sub{font-size:.8em;color:var(--muted);margin-top:10px;line-height:1.6}
body.senate-propose-page .denied-sub a{color:var(--text-dim)}
body.senate-propose-page .back-link{font-size:.78em;color:var(--muted);text-decoration:none;margin-top:18px;display:inline-block}
body.senate-propose-page .back-link:hover{color:var(--text)}
body.senate-propose-page .fade-in{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
body.senate-propose-page .fade-in.visible{opacity:1;transform:none}

/* ── senate_vote.php ── */
body.senate-vote-page .page-wrap{max-width:720px;margin:0 auto;padding:90px 24px 80px;display:block}
body.senate-vote-page .breadcrumb{font-size:.7em;color:var(--muted);letter-spacing:1px;margin-bottom:28px}
body.senate-vote-page .breadcrumb a{color:var(--muted);text-decoration:none}
body.senate-vote-page .breadcrumb a:hover{color:var(--text)}
body.senate-vote-page .breadcrumb span{color:var(--border-hi);margin:0 6px}
body.senate-vote-page .page-title-block{margin-bottom:36px}
body.senate-vote-page .page-eyebrow{font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--purple-hi);margin-bottom:8px}
body.senate-vote-page .page-title{font-family:'Cinzel',serif;font-size:1.8em;font-weight:700;color:var(--silver-hi);letter-spacing:2px}
body.senate-vote-page .page-rule{width:60px;height:1px;background:linear-gradient(90deg,var(--purple),transparent);margin-top:14px}
body.senate-vote-page .login-card{background:var(--card);border:1px solid var(--border-purple);border-radius:4px;overflow:hidden;margin-bottom:24px}
body.senate-vote-page .login-card-head{padding:18px 24px 14px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(136,96,208,.06),transparent)}
body.senate-vote-page .login-card-title{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}
body.senate-vote-page .login-card-body{padding:24px}
body.senate-vote-page .mode-tabs{display:flex;gap:8px;margin-bottom:20px}
body.senate-vote-page .mode-tab{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Rajdhani',sans-serif;font-size:.78em;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:7px 14px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-vote-page .mode-tab.active{background:rgba(136,96,208,.1);border-color:var(--purple-mid);color:var(--purple-hi)}
body.senate-vote-page .field{margin-bottom:16px}
body.senate-vote-page .field label{display:block;font-size:.72em;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
body.senate-vote-page .field input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:10px 12px;color:var(--text);font-family:'Share Tech Mono',monospace;font-size:.88em;transition:border-color .2s;outline:none}
body.senate-vote-page .field input:focus{border-color:var(--purple)}
body.senate-vote-page .hp{position:absolute;left:-9999px;opacity:0;height:0}
body.senate-vote-page .btn-submit{background:rgba(136,96,208,.15);border:1px solid var(--purple-mid);color:var(--purple-hi);font-family:'Rajdhani',sans-serif;font-size:.88em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:11px 28px;border-radius:3px;cursor:pointer;transition:all .2s;width:100%}
body.senate-vote-page .btn-submit:hover{background:rgba(136,96,208,.25);border-color:var(--purple)}
body.senate-vote-page .login-error{background:rgba(217,64,64,.08);border:1px solid rgba(217,64,64,.3);border-radius:3px;padding:10px 14px;font-size:.8em;color:var(--red);margin-bottom:16px}
body.senate-vote-page .session-bar{background:rgba(61,184,138,.06);border:1px solid rgba(61,184,138,.25);border-radius:4px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px;flex-wrap:wrap}
body.senate-vote-page .session-who{font-size:.8em;color:var(--text-dim)}
body.senate-vote-page .session-who strong{color:var(--teal)}
body.senate-vote-page .session-cid{font-size:.72em;color:var(--muted);margin-top:2px}
body.senate-vote-page .session-logout{font-family:'Rajdhani',sans-serif;font-size:.75em;font-weight:600;letter-spacing:1.5px;color:var(--muted);text-decoration:none;border:1px solid var(--border);padding:5px 12px;border-radius:3px;transition:all .2s}
body.senate-vote-page .session-logout:hover{color:var(--text);border-color:var(--border-hi)}
body.senate-vote-page .eligibility-ok{background:rgba(61,184,138,.06);border:1px solid rgba(61,184,138,.25);border-radius:3px;padding:10px 14px;font-size:.8em;color:var(--teal);margin-bottom:20px}
body.senate-vote-page .eligibility-fail{background:rgba(217,64,64,.06);border:1px solid rgba(217,64,64,.25);border-radius:3px;padding:10px 14px;font-size:.8em;color:var(--red);margin-bottom:20px}
body.senate-vote-page .election-selector{margin-bottom:28px}
body.senate-vote-page .election-selector-label{font-size:.72em;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-bottom:10px}
body.senate-vote-page .election-tabs{display:flex;flex-wrap:wrap;gap:8px}
body.senate-vote-page .election-tab{background:var(--card);border:1px solid var(--border);border-radius:3px;padding:10px 16px;cursor:pointer;transition:all .2s;text-decoration:none;display:block}
body.senate-vote-page .election-tab:hover{border-color:var(--border-hi)}
body.senate-vote-page .election-tab.active{border-color:var(--purple-mid);background:rgba(136,96,208,.08)}
body.senate-vote-page .election-tab-title{font-family:'Rajdhani',sans-serif;font-size:.92em;font-weight:700;color:var(--text-dim)}
body.senate-vote-page .election-tab.active .election-tab-title{color:var(--silver-hi)}
body.senate-vote-page .election-tab-meta{font-size:.68em;color:var(--muted);margin-top:3px}
body.senate-vote-page .vote-card{background:var(--card);border:1px solid var(--border);border-radius:4px;overflow:hidden;margin-bottom:20px}
body.senate-vote-page .vote-card-head{padding:18px 22px 14px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(136,96,208,.05),transparent)}
body.senate-vote-page .vote-card-title{font-family:'Rajdhani',sans-serif;font-size:1.05em;font-weight:700;color:var(--silver-hi);letter-spacing:1px}
body.senate-vote-page .vote-card-meta{font-size:.74em;color:var(--muted);margin-top:5px}
body.senate-vote-page .vote-card-desc{font-size:.8em;color:var(--text-dim);line-height:1.6;padding:14px 22px 0;border-top:none}
body.senate-vote-page .vote-card-desc-inner{padding:14px 22px}
body.senate-vote-page .candidate-list{padding:14px 22px 20px;display:flex;flex-direction:column;gap:10px}
body.senate-vote-page .candidate-option{position:relative}
body.senate-vote-page .candidate-option input[type=radio]{position:absolute;opacity:0;width:0;height:0}
body.senate-vote-page .candidate-label{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:var(--card2);border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-vote-page .candidate-option input[type=radio]:checked + .candidate-label{border-color:var(--purple-mid);background:rgba(136,96,208,.08)}
body.senate-vote-page .candidate-label:hover{border-color:var(--border-hi)}
body.senate-vote-page .candidate-radio-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-hi);flex-shrink:0;margin-top:2px;transition:all .2s;position:relative}
body.senate-vote-page .candidate-option input[type=radio]:checked + .candidate-label .candidate-radio-dot{border-color:var(--purple);background:var(--purple-mid)}
body.senate-vote-page .candidate-radio-dot::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:var(--purple-hi);opacity:0;transition:opacity .2s}
body.senate-vote-page .candidate-option input[type=radio]:checked + .candidate-label .candidate-radio-dot::after{opacity:1}
body.senate-vote-page .candidate-info{flex:1}
body.senate-vote-page .candidate-name{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;color:var(--text-dim)}
body.senate-vote-page .candidate-option input[type=radio]:checked + .candidate-label .candidate-name{color:var(--silver-hi)}
body.senate-vote-page .candidate-cid{font-size:.7em;color:var(--muted);letter-spacing:.5px;margin-top:2px}
body.senate-vote-page .candidate-faction{font-size:.75em;color:var(--text-dim);margin-top:3px}
body.senate-vote-page .candidate-statement{font-size:.76em;color:var(--muted);margin-top:6px;line-height:1.5;border-top:1px solid var(--border);padding-top:6px}
body.senate-vote-page .vote-actions{padding:0 22px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
body.senate-vote-page .btn-cast-vote{background:rgba(136,96,208,.15);border:1px solid var(--purple-mid);color:var(--purple-hi);font-family:'Rajdhani',sans-serif;font-size:.9em;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:11px 28px;border-radius:3px;cursor:pointer;transition:all .2s}
body.senate-vote-page .btn-cast-vote:hover{background:rgba(136,96,208,.25);border-color:var(--purple)}
body.senate-vote-page .btn-cast-vote:disabled{opacity:.4;cursor:not-allowed}
body.senate-vote-page .vote-caveat{font-size:.72em;color:var(--muted);line-height:1.5;max-width:260px}
body.senate-vote-page .flash-ok{background:rgba(61,184,138,.08);border:1px solid rgba(61,184,138,.3);border-radius:3px;padding:14px 18px;font-size:.84em;color:var(--teal);margin-bottom:20px}
body.senate-vote-page .flash-err{background:rgba(217,64,64,.08);border:1px solid rgba(217,64,64,.3);border-radius:3px;padding:14px 18px;font-size:.84em;color:var(--red);margin-bottom:20px}
body.senate-vote-page .voted-notice{background:rgba(136,96,208,.08);border:1px solid var(--border-purple);border-radius:4px;padding:28px;text-align:center}
body.senate-vote-page .voted-icon{font-size:2em;margin-bottom:10px;opacity:.6}
body.senate-vote-page .voted-title{font-family:'Rajdhani',sans-serif;font-size:1.1em;font-weight:700;color:var(--purple-hi);letter-spacing:2px;text-transform:uppercase}
body.senate-vote-page .voted-sub{font-size:.8em;color:var(--muted);margin-top:8px;line-height:1.5}
body.senate-vote-page .no-elections{background:var(--card);border:1px dashed var(--border);border-radius:4px;padding:40px;text-align:center;color:var(--muted);font-size:.84em;letter-spacing:1px}
body.senate-vote-page .no-primary-notice{background:rgba(232,160,32,.06);border:1px solid rgba(232,160,32,.25);border-radius:4px;padding:20px 22px;font-size:.82em;color:var(--gold);line-height:1.7}
body.senate-vote-page .no-primary-notice a{color:var(--gold-hi)}
body.senate-vote-page .fade-in{opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s}
body.senate-vote-page .fade-in.visible{opacity:1;transform:none}

/* ── senate_results.php ── */
body.senate-results-page .results-wrap{max-width:1000px;margin:0 auto;padding:52px 24px 80px}
body.senate-results-page .breadcrumb{font-size:.7em;color:var(--muted);letter-spacing:1px;margin-bottom:36px}
body.senate-results-page .breadcrumb a{color:var(--muted);text-decoration:none}
body.senate-results-page .breadcrumb a:hover{color:var(--text)}
body.senate-results-page .breadcrumb span{color:var(--border-hi);margin:0 6px}
body.senate-results-page .stats-bar{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:40px}
body.senate-results-page .stat-pill{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:14px 20px;flex:1;min-width:140px}
body.senate-results-page .stat-pill-num{font-family:'Rajdhani',sans-serif;font-size:1.6em;font-weight:700;color:var(--silver-hi)}
body.senate-results-page .stat-pill-label{font-size:.68em;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:3px}
body.senate-results-page .section-head{display:flex;align-items:center;gap:16px;margin:44px 0 20px}
body.senate-results-page .section-head:first-child{margin-top:0}
body.senate-results-page .section-num{font-family:'Share Tech Mono',monospace;font-size:.7em;color:var(--purple);opacity:.7;letter-spacing:2px;flex-shrink:0}
body.senate-results-page .section-title{font-family:'Rajdhani',sans-serif;font-size:1.1em;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--silver-hi)}
body.senate-results-page .section-line{flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}
body.senate-results-page .status-badge{font-size:.64em;letter-spacing:1.5px;padding:3px 9px;border-radius:2px;font-family:'Share Tech Mono',monospace;white-space:nowrap;flex-shrink:0}
body.senate-results-page .sb-open{background:rgba(61,184,138,.1);color:var(--teal);border:1px solid rgba(61,184,138,.3)}
body.senate-results-page .sb-closed{background:rgba(106,126,146,.1);color:var(--muted);border:1px solid var(--border)}
body.senate-results-page .sb-certified{background:rgba(61,184,138,.12);color:var(--teal);border:1px solid rgba(61,184,138,.3)}
body.senate-results-page .sb-passed{background:rgba(61,184,138,.1);color:var(--teal);border:1px solid rgba(61,184,138,.3)}
body.senate-results-page .sb-failed{background:rgba(217,64,64,.1);color:var(--red);border:1px solid rgba(217,64,64,.25)}
body.senate-results-page .sb-vetoed{background:rgba(200,96,26,.1);color:var(--amber);border:1px solid rgba(200,96,26,.25)}
body.senate-results-page .sb-tabled{background:rgba(106,126,146,.1);color:var(--muted);border:1px solid var(--border)}
body.senate-results-page .el-card{background:var(--card);border:1px solid var(--border);border-radius:4px;margin-bottom:20px;overflow:hidden}
body.senate-results-page .el-card.is-open{border-color:rgba(61,184,138,.25)}
body.senate-results-page .el-card-head{padding:18px 22px 14px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(136,96,208,.05),transparent)}
body.senate-results-page .el-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}
body.senate-results-page .el-card-title{font-family:'Rajdhani',sans-serif;font-size:1.1em;font-weight:700;color:var(--silver-hi);letter-spacing:1px}
body.senate-results-page .el-card-meta{font-size:.74em;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap}
body.senate-results-page .el-card-meta span{color:var(--text-dim)}
body.senate-results-page .el-card-body{padding:16px 22px 20px}
body.senate-results-page .live-notice{display:inline-flex;align-items:center;gap:6px;font-size:.7em;letter-spacing:1.5px;color:var(--teal);margin-bottom:14px}
body.senate-results-page .live-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);animation:livePulse 1.4s ease-in-out infinite}
@keyframes livePulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(61,184,138,0)}50%{opacity:.8;box-shadow:0 0 6px 3px rgba(61,184,138,.3)}}
body.senate-results-page .cand-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
body.senate-results-page .cand-row{display:grid;grid-template-columns:20px 1fr auto 60px 48px;align-items:center;gap:10px;padding:10px 14px;background:var(--card2);border:1px solid var(--border);border-radius:3px}
body.senate-results-page .cand-row.winner{border-color:rgba(232,160,32,.3);background:rgba(232,160,32,.04)}
body.senate-results-page .cand-rank{font-size:.72em;color:var(--muted);text-align:center}
body.senate-results-page .cand-rank.winner{color:var(--gold)}
body.senate-results-page .cand-name{font-family:'Rajdhani',sans-serif;font-size:.96em;font-weight:700;color:var(--text-dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.senate-results-page .cand-row.winner .cand-name{color:var(--silver-hi)}
body.senate-results-page .cand-bar-wrap{}
body.senate-results-page .cand-bar-bg{height:5px;background:var(--subtle);border-radius:3px;overflow:hidden}
body.senate-results-page .cand-bar-fill{height:100%;background:var(--purple-mid);border-radius:3px}
body.senate-results-page .cand-bar-fill.winner{background:var(--gold)}
body.senate-results-page .cand-votes{font-size:.78em;color:var(--muted);text-align:right;font-family:'Rajdhani',sans-serif;font-weight:600}
body.senate-results-page .cand-row.winner .cand-votes{color:var(--gold)}
body.senate-results-page .cand-pct{font-size:.7em;color:var(--muted);text-align:right}
body.senate-results-page .turnout-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.8em;color:var(--muted);border-top:1px solid var(--border);padding-top:12px;flex-wrap:wrap}
body.senate-results-page .turnout-num{font-family:'Rajdhani',sans-serif;font-size:1.1em;font-weight:700;color:var(--text-dim)}
body.senate-results-page .turnout-bar-wrap{flex:1;min-width:120px}
body.senate-results-page .turnout-bar-bg{height:4px;background:var(--subtle);border-radius:2px;overflow:hidden}
body.senate-results-page .turnout-bar-fill{height:100%;background:var(--purple-mid);border-radius:2px}
body.senate-results-page .countdown-badge{font-size:.7em;color:var(--gold);letter-spacing:1px;border:1px solid rgba(232,160,32,.2);padding:2px 9px;border-radius:2px;white-space:nowrap}
body.senate-results-page .hidden-notice{font-size:.78em;color:var(--muted);font-style:italic;padding:10px 0}
body.senate-results-page .mot-card{background:var(--card);border:1px solid var(--border);border-radius:4px;margin-bottom:14px;overflow:hidden}
body.senate-results-page .mot-card.is-open{border-color:rgba(61,184,138,.2)}
body.senate-results-page .mot-card-head{padding:14px 20px;display:flex;align-items:center;gap:12px;cursor:pointer;user-select:none}
body.senate-results-page .mot-card.open .mot-body{display:block}
body.senate-results-page .mot-body{display:none;padding:0 20px 18px;border-top:1px solid var(--border)}
body.senate-results-page .mot-cat{font-family:'Rajdhani',sans-serif;font-size:.65em;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:2px 8px;border-radius:2px;flex-shrink:0}
body.senate-results-page .cat-law{background:rgba(217,64,64,.1);color:var(--red);border:1px solid rgba(217,64,64,.25)}
body.senate-results-page .cat-amendment{background:rgba(136,96,208,.1);color:var(--purple-hi);border:1px solid var(--border-purple)}
body.senate-results-page .cat-resolution{background:rgba(74,158,202,.1);color:var(--blue);border:1px solid rgba(74,158,202,.25)}
body.senate-results-page .cat-budget{background:rgba(232,160,32,.1);color:var(--gold);border:1px solid rgba(232,160,32,.25)}
body.senate-results-page .cat-other{background:rgba(30,42,58,.6);color:var(--muted);border:1px solid var(--border)}
body.senate-results-page .mot-title{font-family:'Rajdhani',sans-serif;font-size:1em;font-weight:700;color:var(--silver-hi);flex:1;letter-spacing:.5px}
body.senate-results-page .mot-chevron{color:var(--muted);font-size:.7em;flex-shrink:0;transition:transform .2s}
body.senate-results-page .mot-card.open .mot-chevron{transform:rotate(180deg)}
body.senate-results-page .mot-summary{font-size:.82em;color:var(--text-dim);line-height:1.7;margin:12px 0}
body.senate-results-page .mot-proposer{font-size:.72em;color:var(--muted);margin-bottom:12px}
body.senate-results-page .mot-proposer span{color:var(--purple-hi)}
body.senate-results-page .tally-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
body.senate-results-page .tally-block{padding:10px;text-align:center;background:var(--card2);border-radius:3px;border:1px solid var(--border)}
body.senate-results-page .tally-num{font-family:'Rajdhani',sans-serif;font-size:1.3em;font-weight:700}
body.senate-results-page .tally-label{font-size:.63em;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:2px}
body.senate-results-page .tally-aye .tally-num{color:var(--teal)}
body.senate-results-page .tally-nay .tally-num{color:var(--red)}
body.senate-results-page .tally-abs .tally-num{color:var(--muted)}
body.senate-results-page .vote-bar{height:5px;display:flex;border-radius:3px;overflow:hidden;background:var(--subtle);margin-bottom:10px}
body.senate-results-page .bar-aye{background:var(--teal)}
body.senate-results-page .bar-nay{background:var(--red)}
body.senate-results-page .bar-abs{background:var(--border-hi)}
body.senate-results-page .mot-dates{font-size:.7em;color:var(--muted)}
body.senate-results-page .mot-dates span{color:var(--text-dim)}
body.senate-results-page .quorum-note{font-size:.75em;color:var(--muted);margin-top:6px}
body.senate-results-page .quorum-note span{color:var(--text-dim)}
body.senate-results-page .empty-state{background:var(--card);border:1px dashed var(--border);border-radius:4px;padding:36px;text-align:center;color:var(--muted);font-size:.82em;letter-spacing:1px}
body.senate-results-page .demo-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
body.senate-results-page .demo-title{font-family:'Rajdhani',sans-serif;font-size:.82em;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-dim);margin-bottom:12px}
body.senate-results-page .demo-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px}
body.senate-results-page .demo-legend-item{display:flex;align-items:center;gap:6px;font-size:.74em;color:var(--text-dim)}
body.senate-results-page .demo-legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}
body.senate-results-page .demo-chart-block{margin-bottom:20px}
body.senate-results-page .demo-chart-label{font-size:.7em;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}
body.senate-results-page .demo-row{display:grid;grid-template-columns:120px 1fr 44px;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid rgba(30,42,58,.4)}
body.senate-results-page .demo-row:last-child{border:none}
body.senate-results-page .demo-row-label{font-size:.74em;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.senate-results-page .demo-row-bars{display:flex;flex-direction:column;gap:3px}
body.senate-results-page .demo-bar-wrap{display:flex;align-items:center;gap:6px;min-height:14px}
body.senate-results-page .demo-bar{height:14px;border-radius:2px;min-width:3px;transition:width .3s;flex-shrink:0}
body.senate-results-page .demo-bar-label{font-size:.68em;color:var(--muted);white-space:nowrap}
body.senate-results-page .demo-bar-wrap:hover .demo-bar{filter:brightness(1.2)}
body.senate-results-page .demo-row-total{font-size:.72em;color:var(--muted);text-align:right;font-family:'Rajdhani',sans-serif;font-weight:600;white-space:nowrap}
@media(max-width:500px){body.senate-results-page .demo-row{grid-template-columns:80px 1fr 36px}}
body.senate-results-page .fade-in{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
body.senate-results-page .fade-in.visible{opacity:1;transform:none}
@media(max-width:600px){body.senate-results-page .cand-row{grid-template-columns:16px 1fr auto 40px}body.senate-results-page .cand-pct{display:none}body.senate-results-page .stats-bar{flex-direction:column}}

/* ── weather_display.php ── */
body.weather-display-page {
  --bg:#06080f;

    --bg-card:rgba(10,14,26,0.96);

    --bg-header:rgba(5,7,16,0.99);

    --border:rgba(90,60,160,0.28);

    --border-hi:rgba(130,90,220,0.50);

    --purple-hi:#b388ff;

    --purple-mid:#7c4dff;

    --teal:#4fc3f7;

    --silver:#dde4f0;

    --muted:#6a7290;

    --text-dim:#9098b8;
  width:100%;
  height:100%;
  margin:0;
  overflow:hidden;
  background:var(--bg);
  color:var(--silver);
  font-family:'Share Tech Mono',monospace;
}
body.weather-display-page::before {
  content:'';pointer-events:none;position:fixed;inset:0;z-index:900;
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.07) 3px,rgba(0,0,0,.07) 4px);
}
body.weather-display-page::after {
  content:'';pointer-events:none;position:fixed;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 90% 45% at 50% -5%, rgba(90,50,190,.13) 0%,transparent 60%),
    radial-gradient(ellipse 50% 35% at 95% 105%,rgba(30,110,200,.08) 0%,transparent 55%);
}
body.weather-display-page .wrap{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;height:100vh}
body.weather-display-page .header{

    flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;

    padding:11px 20px;background:var(--bg-header);

    border-bottom:1px solid var(--border-hi);

    box-shadow:0 1px 0 rgba(124,77,255,.15),0 6px 28px rgba(0,0,0,.55);

}
body.weather-display-page .header-left{display:flex;flex-direction:column;gap:1px;min-width:0}
body.weather-display-page .header-network{

    font-family:'Rajdhani',sans-serif;font-size:.58rem;font-weight:700;

    letter-spacing:4px;text-transform:uppercase;color:var(--purple-hi);

}
body.weather-display-page .header-title{

    font-family:'Rajdhani',sans-serif;font-size:1.5rem;font-weight:700;

    letter-spacing:3px;text-transform:uppercase;color:var(--silver);

    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1;

}
body.weather-display-page .header-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto}
body.weather-display-page .header-clock{

    font-family:'Rajdhani',sans-serif;font-size:1.15rem;font-weight:600;

    letter-spacing:2px;color:var(--teal);line-height:1;

}
body.weather-display-page .header-sublabel{font-size:.55rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
body.weather-display-page .pulse{

    display:inline-block;width:7px;height:7px;border-radius:50%;

    background:var(--teal);box-shadow:0 0 8px var(--teal);

    animation:blink 2s ease-in-out infinite;margin-right:5px;vertical-align:middle;

}
body.weather-display-page .pulse.paused{background:var(--purple-hi);box-shadow:0 0 8px var(--purple-hi);animation:none}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
body.weather-display-page .paused-bar{

    flex:0 0 auto;padding:5px 20px;text-align:center;

    background:rgba(124,77,255,.12);border-bottom:1px solid rgba(124,77,255,.28);

    font-size:.58rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--purple-hi);

}
body.weather-display-page .grid-wrap{flex:1 1 auto;overflow:hidden;padding:14px 16px 10px}
body.weather-display-page .grid{

    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(252px,1fr));

    gap:11px;height:100%;align-content:start;

}
body.weather-display-page .card{

    background:var(--bg-card);border:1px solid var(--border);border-radius:6px;

    padding:13px 15px 11px;display:flex;flex-direction:column;

    position:relative;overflow:hidden;

}
body.weather-display-page .card::before{

    content:'';position:absolute;left:0;top:0;bottom:0;width:3px;

    background:var(--ac,#7c4dff);

    box-shadow:2px 0 14px color-mix(in srgb,var(--ac,#7c4dff) 60%,transparent);

}
body.weather-display-page .card::after{

    content:'';position:absolute;top:0;right:0;width:36px;height:36px;

    background:linear-gradient(135deg,transparent 50%,rgba(255,255,255,.025) 50%);

}
body.weather-display-page .card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:9px}
body.weather-display-page .card-name{

    font-family:'Rajdhani',sans-serif;font-size:1rem;font-weight:700;

    letter-spacing:1.5px;text-transform:uppercase;color:var(--silver);line-height:1.1;

}
body.weather-display-page .card-planet{font-size:.55rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:3px}
body.weather-display-page .card-badge{

    font-size:.55rem;letter-spacing:1.5px;padding:3px 6px;border-radius:3px;

    border:1px solid var(--border);color:var(--muted);background:rgba(255,255,255,.03);

    white-space:nowrap;flex:0 0 auto;

}
body.weather-display-page .card-storm{

    font-family:'Rajdhani',sans-serif;font-size:1.5rem;font-weight:700;

    letter-spacing:1px;color:var(--ac,#7fd678);line-height:1;margin-bottom:5px;

}
body.weather-display-page .card-detail{font-size:.64rem;line-height:1.65;color:var(--text-dim);margin-bottom:9px;flex:1}
body.weather-display-page .card-temp-row{display:flex;align-items:baseline;gap:10px;margin-bottom:5px}
body.weather-display-page .card-temp-main{

    font-family:'Rajdhani',sans-serif;font-size:2rem;font-weight:700;

    color:var(--silver);letter-spacing:1px;line-height:1;

}
body.weather-display-page .card-temp-unit{

    font-family:'Rajdhani',sans-serif;font-size:.9rem;font-weight:600;

    color:var(--muted);margin-left:1px;

}
body.weather-display-page .card-temp-sub{font-size:.6rem;color:var(--muted);line-height:1.9;letter-spacing:.5px}
body.weather-display-page .card-feels{font-size:.57rem;color:var(--muted);letter-spacing:.5px;margin-bottom:8px}
body.weather-display-page .card-stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:9px}
body.weather-display-page .card-stat{font-size:.57rem;letter-spacing:.5px;color:var(--text-dim)}
body.weather-display-page .card-stat b{color:var(--silver);font-style:normal}
body.weather-display-page .card-meter{display:flex;align-items:center;gap:8px;margin-top:auto}
body.weather-display-page .card-meter-track{flex:1;height:4px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden}
body.weather-display-page .card-meter-fill{

    height:100%;border-radius:999px;background:var(--ac,#7c4dff);

    box-shadow:0 0 8px color-mix(in srgb,var(--ac,#7c4dff) 70%,transparent);

}
body.weather-display-page .card-level{

    font-family:'Rajdhani',sans-serif;font-size:.75rem;font-weight:700;

    color:var(--ac,#7c4dff);min-width:24px;text-align:right;

}
body.weather-display-page .card-hazard{font-size:.52rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-left:2px}
body.weather-display-page .empty{

    display:flex;align-items:center;justify-content:center;height:100%;

    color:var(--muted);font-size:.75rem;letter-spacing:3px;text-transform:uppercase;

    border:1px dashed rgba(255,255,255,.07);border-radius:6px;

}
body.weather-display-page .footer{

    flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;

    padding:5px 20px;border-top:1px solid rgba(255,255,255,.05);

    background:rgba(5,7,16,.97);

    font-size:.52rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);

}

/* ── books/read.php (error) ── */
body.book-reader-error .error-wrap{
  width:100vw;
  height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}
body.book-reader-error .error-card{
  width:min(860px,100%);
  background:linear-gradient(180deg,rgba(15,18,32,.98),rgba(10,12,22,.98));
  border:1px solid var(--border-purple);
  border-radius:10px;
  padding:34px;
  box-shadow:0 18px 60px rgba(0,0,0,.45);
}
body.book-reader-error .eyebrow{
  font-family:'Rajdhani',sans-serif;
  font-size:.82em;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--purple-hi);
  margin-bottom:12px;
}
body.book-reader-error h1{
  font-family:'Cinzel',serif;
  font-size:2em;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--silver-hi);
  margin:0 0 16px;
}
body.book-reader-error p{
  font-size:1.08em;
  color:var(--text-dim);
  line-height:1.85;
  margin:0;
}
body.book-reader-error a{color:var(--purple-hi);text-decoration:none}
body.book-reader-error a:hover{color:var(--accent-hi)}

/* ── books/read.php (reader) ── */
body.book-reader-page a{
  color:var(--purple-hi);
  text-decoration:none;
}
body.book-reader-page a:hover{
  color:var(--accent-hi);
}
body.book-reader-page .reader-wrap{
  width:100vw;
  height:100vh;
  margin:0;
  padding:0;
  overflow:hidden;
}
body.book-reader-page .reader-shell{
  width:100%;
  height:100%;
  border:0;
  background:linear-gradient(180deg,rgba(15,18,32,.97),rgba(7,8,15,.99));
  overflow:hidden;
  position:relative;
}
body.book-reader-page .reader-shell::before{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent,rgba(136,96,208,.08),transparent),
    repeating-linear-gradient(90deg,rgba(255,255,255,.016) 0,rgba(255,255,255,.016) 1px,transparent 1px,transparent 22px);
  opacity:.7;
  z-index:0;
}
body.book-reader-page .reader-header{
  position:relative;
  z-index:1;
  min-height:134px;
  padding:24px 30px 20px;
  border-bottom:1px solid var(--border-purple);
  background:
    linear-gradient(180deg,rgba(80,48,160,.20),rgba(10,12,22,.28)),
    linear-gradient(90deg,rgba(136,96,208,.12),transparent 45%,rgba(74,158,202,.08));
}
body.book-reader-page .reader-header-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:8px;
}
body.book-reader-page .library-back-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 12px;
  border:1px solid var(--border-purple);
  border-radius:6px;
  background:rgba(136,96,208,.10);
  color:var(--purple-hi);
  font-family:'Rajdhani',sans-serif;
  font-size:.78em;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  white-space:nowrap;
}
body.book-reader-page .library-back-link:hover{
  background:rgba(136,96,208,.18);
  border-color:var(--purple);
  color:var(--accent-hi);
}
body.book-reader-page .reader-eyebrow{
  font-family:'Rajdhani',sans-serif;
  font-size:.82em;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--purple-hi);
  margin-bottom:0;
}
body.book-reader-page .reader-title{
  font-family:'Cinzel',serif;
  font-size:clamp(1.65em,3.2vw,2.7em);
  line-height:1.12;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--silver-hi);
  margin:0;
  text-shadow:0 0 28px rgba(136,96,208,.35);
}
body.book-reader-page .reader-subtitle{
  font-family:'Cinzel',serif;
  font-size:1em;
  letter-spacing:2px;
  color:var(--gold);
  margin-top:8px;
}
body.book-reader-page .reader-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
body.book-reader-page .meta-pill{
  border:1px solid var(--border);
  background:rgba(7,8,15,.58);
  border-radius:999px;
  padding:7px 11px;
  font-size:.72em;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--text-dim);
  white-space:nowrap;
}
body.book-reader-page .meta-pill strong{
  color:var(--purple-hi);
  font-weight:400;
}
body.book-reader-page .reader-body{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  height:calc(100vh - 134px - 38px);
  min-height:0;
}
body.book-reader-page .reader-sidebar{
  min-height:0;
  overflow:auto;
  border-right:1px solid var(--border);
  background:rgba(7,8,15,.46);
  padding:20px;
  scrollbar-width:thin;
  scrollbar-color:var(--purple) rgba(7,8,15,.4);
}
body.book-reader-page .reader-sidebar::-webkit-scrollbar,body.book-reader-page .reader-content::-webkit-scrollbar{
  width:10px;
}
body.book-reader-page .reader-sidebar::-webkit-scrollbar-track,body.book-reader-page .reader-content::-webkit-scrollbar-track{
  background:rgba(7,8,15,.65);
}
body.book-reader-page .reader-sidebar::-webkit-scrollbar-thumb,body.book-reader-page .reader-content::-webkit-scrollbar-thumb{
  background:rgba(136,96,208,.55);
  border:2px solid rgba(7,8,15,.65);
  border-radius:999px;
}
body.book-reader-page .side-label{
  font-family:'Rajdhani',sans-serif;
  font-size:.78em;
  font-weight:700;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
body.book-reader-page .summary{
  font-size:.92em;
  line-height:1.8;
  color:var(--text-dim);
  margin-bottom:22px;
}
body.book-reader-page .chapter-list{
  display:flex;
  flex-direction:column;
  gap:9px;
}
body.book-reader-page .chapter-link{
  display:block;
  border:1px solid var(--border);
  background:rgba(15,18,32,.76);
  border-radius:6px;
  padding:12px 12px;
  transition:border-color .2s,background .2s,transform .15s;
}
body.book-reader-page .chapter-link:hover{
  border-color:var(--border-hi);
  background:rgba(19,22,37,.94);
  transform:translateX(2px);
}
body.book-reader-page .chapter-link.active{
  border-color:var(--purple);
  background:rgba(136,96,208,.16);
}
body.book-reader-page .chapter-num{
  display:block;
  font-size:.7em;
  color:var(--muted);
  letter-spacing:2px;
  text-transform:uppercase;
  margin-bottom:6px;
}
body.book-reader-page .chapter-title-small{
  display:block;
  font-family:'Rajdhani',sans-serif;
  font-size:1.02em;
  font-weight:700;
  letter-spacing:1px;
  color:var(--text);
}
body.book-reader-page .chapter-link.active .chapter-title-small{
  color:var(--purple-hi);
}
body.book-reader-page .reader-content{
  min-height:0;
  overflow:auto;
  padding:30px 44px 40px;
  scrollbar-width:thin;
  scrollbar-color:var(--purple) rgba(7,8,15,.4);
}
body.book-reader-page .chapter-header{
  border-bottom:1px solid var(--border);
  padding-bottom:18px;
  margin-bottom:26px;
}
body.book-reader-page .chapter-eyebrow{
  font-family:'Rajdhani',sans-serif;
  font-size:.82em;
  font-weight:700;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--purple);
  margin-bottom:8px;
}
body.book-reader-page .chapter-title{
  font-family:'Cinzel',serif;
  font-size:1.7em;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--silver-hi);
  margin:0;
}
body.book-reader-page .chapter-word-count{
  margin-top:10px;
  font-size:.76em;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
}
body.book-reader-page .chapter-prose{
  font-family:'Share Tech Mono',monospace;
  color:var(--text-dim);
  font-size:1.16em;
  line-height:2.05;
  max-width:980px;
}
body.book-reader-page .chapter-prose p{
  margin:0 0 22px;
}
body.book-reader-page .chapter-prose p:last-child{
  margin-bottom:0;
}
body.book-reader-page .chapter-prose h1,body.book-reader-page .chapter-prose h2,body.book-reader-page .chapter-prose h3{
  font-family:'Cinzel',serif;
  color:var(--silver-hi);
  letter-spacing:2px;
  line-height:1.35;
  margin:30px 0 14px;
}
body.book-reader-page .chapter-prose h1{font-size:1.75em}
body.book-reader-page .chapter-prose h2{font-size:1.45em}
body.book-reader-page .chapter-prose h3{font-size:1.25em}
body.book-reader-page .chapter-prose blockquote{
  margin:24px 0;
  padding:16px 20px;
  border-left:3px solid var(--purple);
  background:rgba(136,96,208,.08);
  color:var(--text);
}
body.book-reader-page .chapter-prose hr{
  border:0;
  border-top:1px solid var(--border);
  margin:30px 0;
}
body.book-reader-page .reader-nav{
  display:flex;
  justify-content:space-between;
  gap:14px;
  border-top:1px solid var(--border);
  margin-top:38px;
  padding-top:22px;
}
body.book-reader-page .reader-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:12px 18px;
  border:1px solid var(--border-purple);
  border-radius:6px;
  background:rgba(136,96,208,.10);
  color:var(--purple-hi);
  font-family:'Rajdhani',sans-serif;
  font-size:.88em;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
}
body.book-reader-page .reader-btn:hover{
  background:rgba(136,96,208,.18);
  border-color:var(--purple);
}
body.book-reader-page .reader-btn.disabled{
  opacity:.3;
  pointer-events:none;
}
body.book-reader-page .reader-footer{
  position:relative;
  z-index:1;
  height:38px;
  border-top:1px solid var(--border);
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--muted);
  font-size:.72em;
  letter-spacing:1px;
  white-space:nowrap;
  overflow:hidden;
  background:rgba(7,8,15,.72);
}
body.book-reader-page .reader-footer span{
  overflow:hidden;
  text-overflow:ellipsis;
}


/* ── weather_panel.php ── */
body.weather-panel-page{min-height:100%;background:var(--bg);color:var(--text);font-family:'Share Tech Mono',monospace;overflow-x:hidden}
body.weather-panel-page .panel-wrap{position:relative;z-index:1;min-height:100vh;padding:22px;background:
    radial-gradient(ellipse 70% 60% at 85% 20%, rgba(136,96,208,.12) 0%, transparent 55%),
    radial-gradient(ellipse 50% 50% at 10% 90%, rgba(74,158,202,.08) 0%, transparent 55%),
    var(--bg)}
body.weather-panel-page .panel-head{padding:18px 20px 16px;border:1px solid var(--border);background:rgba(10,12,22,.82);backdrop-filter:blur(8px);border-radius:6px;margin-bottom:16px}
body.weather-panel-page .panel-kicker{font-family:'Rajdhani',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--purple-hi);margin-bottom:8px}
body.weather-panel-page .panel-title{font-family:'Rajdhani',sans-serif;font-size:2.35rem;font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--silver-hi);line-height:1.05}
body.weather-panel-page .panel-sub{margin-top:8px;font-size:.8rem;letter-spacing:1px;color:var(--muted)}
body.weather-panel-page .panel-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
body.weather-panel-page .meta-chip{padding:8px 12px;border:1px solid var(--border);border-radius:4px;background:rgba(255,255,255,.03);font-size:.7rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
body.weather-panel-page .meta-chip strong{color:var(--silver-hi)}
body.weather-panel-page .meta-chip.live{color:var(--teal)}
body.weather-panel-page .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
body.weather-panel-page .card{background:rgba(15,18,32,.92);border:1px solid var(--border);border-left:6px solid var(--purple-mid);border-radius:6px;padding:18px 18px 16px;min-height:190px;display:flex;flex-direction:column}
body.weather-panel-page .card-name{font-family:'Rajdhani',sans-serif;font-size:1.45rem;font-weight:700;letter-spacing:2px;color:var(--silver-hi);text-transform:uppercase}
body.weather-panel-page .card-code{font-size:.68rem;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:4px}
body.weather-panel-page .card-label{font-family:'Rajdhani',sans-serif;font-size:1.7rem;font-weight:700;letter-spacing:1px;margin-top:16px}
body.weather-panel-page .card-detail{font-size:.77rem;line-height:1.7;color:var(--text-dim);margin-top:8px;flex:1}
body.weather-panel-page .card-foot{display:flex;align-items:center;gap:12px;margin-top:14px}
body.weather-panel-page .card-meter-track{flex:1;height:8px;background:rgba(255,255,255,.05);border-radius:999px;overflow:hidden}
body.weather-panel-page .card-meter-fill{height:100%;border-radius:999px}
body.weather-panel-page .card-level{font-family:'Rajdhani',sans-serif;font-size:1rem;font-weight:700;color:var(--silver-hi);min-width:46px;text-align:right}
body.weather-panel-page .empty{padding:36px 20px;border:1px dashed rgba(255,255,255,.16);border-radius:6px;background:rgba(255,255,255,.02);color:var(--muted);text-align:center}
@media (max-width:700px){body.weather-panel-page .panel-wrap{padding:14px}
body.weather-panel-page .panel-title{letter-spacing:3px}}
body.weather-panel-page.is-compact .panel-title{font-size:1.8rem}
body.weather-panel-page.is-compact .grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
body.weather-panel-page.is-compact .card{min-height:160px}
body.weather-panel-page.is-compact .card-name{font-size:1.25rem}
body.weather-panel-page.is-compact .card-label{font-size:1.4rem}


/* ── weather_zone.php ── */
body.weather-zone-page{
  --bg:#06080f;--border:rgba(90,60,160,0.28);--border-hi:rgba(130,90,220,0.50);
  --purple-hi:#b388ff;--purple-mid:#7c4dff;--teal:#4fc3f7;--silver:#dde4f0;
  --muted:#6a7290;--text-dim:#9098b8;
  width:100%;height:100%;margin:0;overflow:hidden;
  background:var(--bg);color:var(--silver);font-family:'Share Tech Mono',monospace;
}
body.weather-zone-page::before{
  content:'';pointer-events:none;position:fixed;inset:0;z-index:900;
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.07) 3px,rgba(0,0,0,.07) 4px);
}
body.weather-zone-page::after{
  content:'';pointer-events:none;position:fixed;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 100% 55% at 50% -5%, color-mix(in srgb, var(--ac) 12%, transparent) 0%, transparent 65%),
    radial-gradient(ellipse 60% 40% at 95% 110%, rgba(30,110,200,.07) 0%, transparent 55%);
}
body.weather-zone-page .wrap{
    position:relative;z-index:1;
    display:flex;flex-direction:column;
    width:100%;height:100vh;
    padding:20px 24px 16px;
}
body.weather-zone-page .top{
    display:flex;align-items:flex-start;justify-content:space-between;
    gap:16px;margin-bottom:20px;flex:0 0 auto;
}
body.weather-zone-page .top-left{display:flex;flex-direction:column;gap:3px}
body.weather-zone-page .network-label{
    font-size:.6rem;font-weight:700;letter-spacing:4px;
    text-transform:uppercase;color:var(--purple-hi);
}
body.weather-zone-page .zone-name{
    font-family:'Rajdhani',sans-serif;font-size:2.4rem;font-weight:700;
    letter-spacing:3px;text-transform:uppercase;color:var(--silver);
    line-height:1;
}
body.weather-zone-page .planet-label{
    font-size:.65rem;letter-spacing:2px;text-transform:uppercase;
    color:var(--muted);margin-top:4px;
}
body.weather-zone-page .top-right{
    display:flex;flex-direction:column;align-items:flex-end;gap:3px;
    flex:0 0 auto;
}
body.weather-zone-page .clock{
    font-family:'Rajdhani',sans-serif;font-size:1.1rem;font-weight:600;
    letter-spacing:2px;color:var(--teal);line-height:1;
}
body.weather-zone-page .clock-label{font-size:.55rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
body.weather-zone-page .zone-badge{
    margin-top:6px;padding:3px 9px;border-radius:3px;
    border:1px solid var(--border);background:rgba(255,255,255,.03);
    font-size:.6rem;letter-spacing:2px;color:var(--muted);
}
body.weather-zone-page .pulse{
    display:inline-block;width:7px;height:7px;border-radius:50%;
    background:var(--teal);box-shadow:0 0 8px var(--teal);
    animation:blink 2s ease-in-out infinite;margin-right:5px;vertical-align:middle;
}
body.weather-zone-page .pulse.paused{background:var(--purple-hi);box-shadow:0 0 8px var(--purple-hi);animation:none}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
body.weather-zone-page .divider{
    flex:0 0 auto;height:1px;
    background:linear-gradient(90deg, var(--ac), rgba(90,60,160,0.15) 80%, transparent);
    box-shadow:0 0 12px color-mix(in srgb, var(--ac) 40%, transparent);
    margin-bottom:20px;
}
body.weather-zone-page .body{flex:1 1 auto;display:flex;flex-direction:column;justify-content:space-evenly;min-height:0;gap:0}
body.weather-zone-page .storm-label{
    font-family:'Rajdhani',sans-serif;font-size:5.5rem;font-weight:700;
    letter-spacing:2px;text-transform:uppercase;
    color:var(--ac);line-height:1;
    text-shadow:0 0 60px color-mix(in srgb, var(--ac) 45%, transparent);
    flex:0 0 auto;
}
body.weather-zone-page .detail{
    font-size:1.3rem;line-height:1.8;color:var(--text-dim);
    flex:0 0 auto;max-width:740px;
}
body.weather-zone-page .temp-block{
    display:flex;align-items:flex-end;gap:22px;
    flex:0 0 auto;
}
body.weather-zone-page .temp-gst{
    font-family:'Rajdhani',sans-serif;font-size:6.5rem;font-weight:700;
    color:var(--silver);letter-spacing:2px;line-height:1;
}
body.weather-zone-page .temp-gst-unit{
    font-family:'Rajdhani',sans-serif;font-size:2.5rem;font-weight:600;
    color:var(--muted);margin-left:3px;
}
body.weather-zone-page .temp-sub-block{display:flex;flex-direction:column;gap:6px;padding-bottom:12px}
body.weather-zone-page .temp-sub{
    font-size:1.1rem;letter-spacing:1px;color:var(--muted);line-height:1.6;
}
body.weather-zone-page .feels-row{
    font-size:1.1rem;letter-spacing:.5px;color:var(--muted);
    flex:0 0 auto;
}
body.weather-zone-page .stats{
    display:flex;gap:32px;flex-wrap:wrap;
    flex:0 0 auto;
}
body.weather-zone-page .stat{font-size:1.1rem;letter-spacing:.5px;color:var(--text-dim)}
body.weather-zone-page .stat b{color:var(--silver);font-size:1.2rem}
body.weather-zone-page .meter-wrap{
    flex:0 0 auto;
    display:flex;align-items:center;gap:14px;
}
body.weather-zone-page .meter-track{
    flex:1;height:6px;background:rgba(255,255,255,.06);
    border-radius:999px;overflow:hidden;
}
body.weather-zone-page .meter-fill{
    height:100%;border-radius:999px;background:var(--ac);
    box-shadow:0 0 12px color-mix(in srgb, var(--ac) 60%, transparent);
    
}
body.weather-zone-page .meter-level{
    font-family:'Rajdhani',sans-serif;font-size:.9rem;font-weight:700;
    color:var(--ac);min-width:32px;text-align:right;
}
body.weather-zone-page .meter-hazard{
    font-size:.58rem;letter-spacing:1.5px;text-transform:uppercase;
    color:var(--muted);
}
body.weather-zone-page .footer{
    flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
    font-size:.52rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);
    border-top:1px solid rgba(255,255,255,.05);padding-top:8px;
}
body.weather-zone-page .no-data{
    flex:1;display:flex;align-items:center;justify-content:center;
    color:var(--muted);font-size:.8rem;letter-spacing:3px;text-transform:uppercase;
}

/* ── weather_ticker.php / weather_ticker_scroll.php ── */
body.weather-ticker-page{
  --ua-bg:rgba(8,10,16,0.88);--ua-bg-2:rgba(18,22,32,0.94);--ua-border:rgba(126,87,194,0.30);
  --ua-glow:rgba(126,87,194,0.28);--ua-text:#e8e4f6;--ua-muted:#b9b0d6;--ua-accent:#a98cff;
  --ua-good:#86d98d;--ua-warn:#ffd36d;--ua-high:#ffab66;--ua-extreme:#ff7272;
  margin:0;padding:0;background:radial-gradient(circle at top,rgba(70,40,110,0.20),transparent 40%),linear-gradient(180deg,#080a10 0%,#10131c 100%);
  min-height:100vh;color:var(--ua-text);font-family:Arial,Helvetica,sans-serif;
}
body.weather-ticker-page.is-embed{
  background:transparent;min-height:auto;
}
body.weather-ticker-page.is-embed .page-wrap{padding:0}
body.weather-ticker-page.is-embed .ticker-shell{border-radius:0}
body.weather-ticker-page .page-wrap{
            max-width: 1180px;
            margin: 0 auto;
            padding:24px;
        }
body.weather-ticker-page .ticker-shell{
            background: linear-gradient(180deg, var(--ua-bg), var(--ua-bg-2));
            border: 1px solid var(--ua-border);
            border-radius:14px;
            box-shadow: 0 0 24px var(--ua-glow), inset 0 1px 0 rgba(255,255,255,0.03);
            overflow: hidden;
        }
body.weather-ticker-page .ticker-head{
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 14px;
            padding: 10px 14px;
            border-bottom: 1px solid rgba(255,255,255,0.06);
            background: rgba(255,255,255,0.02);
            font-size: 12px;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }
body.weather-ticker-page .ticker-head-left{
            display: flex;
            align-items: center;
            gap: 10px;
            min-width: 0;
        }
body.weather-ticker-page .pulse{
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: var(--ua-good);
            box-shadow: 0 0 12px rgba(134,217,141,0.8);
            animation: uaPulse 1.8s infinite ease-in-out;
            flex: 0 0 auto;
        }
body.weather-ticker-page .pulse.stale{
            background: var(--ua-high);
            box-shadow: 0 0 12px rgba(255,171,102,0.8);
        }
body.weather-ticker-page .pulse.offline{
            background: var(--ua-extreme);
            box-shadow: 0 0 12px rgba(255,114,114,0.8);
        }
@keyframes uaPulse {
            0%, 100% { transform: scale(0.92); opacity: 0.8; }
            50% { transform: scale(1.18); opacity: 1; }
        }
body.weather-ticker-page .ticker-head-title{
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
body.weather-ticker-page .ticker-head-meta{
            color: var(--ua-muted);
            font-size: 11px;
            white-space: nowrap;
        }
body.weather-ticker-page .ticker-track-wrap{
            position: relative;
            min-height: 62px;
        }
body.weather-ticker-page .ticker-link{
            display: block;
            text-decoration: none;
            color: inherit;
            padding: 14px 16px;
        }
body.weather-ticker-page .ticker-link:hover{
            background: rgba(255,255,255,0.02);
        }
body.weather-ticker-page .ticker-main{
            display: flex;
            align-items: center;
            gap: 14px;
            min-width: 0;
        }
body.weather-ticker-page .ticker-icon{
            flex: 0 0 auto;
            width: 38px;
            height: 38px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,255,255,0.08);
        }
body.weather-ticker-page .ticker-copy{
            min-width: 0;
            flex: 1 1 auto;
        }
body.weather-ticker-page .ticker-line-1{
            font-size: 15px;
            font-weight: 700;
            color: var(--ua-text);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
body.weather-ticker-page .ticker-line-2{
            margin-top: 5px;
            color: var(--ua-muted);
            font-size: 13px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
body.weather-ticker-page .ticker-badges{
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
            flex: 0 0 auto;
            justify-content: flex-end;
        }
body.weather-ticker-page .badge{
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 7px 10px;
            border-radius: 999px;
            font-size: 12px;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,255,255,0.08);
            color: var(--ua-text);
            white-space: nowrap;
        }
body.weather-ticker-page .badge.hazard-Low{ border-color: rgba(134,217,141,0.35); color: var(--ua-good); }
body.weather-ticker-page .badge.hazard-Moderate{ border-color: rgba(255,211,109,0.35); color: var(--ua-warn); }
body.weather-ticker-page .badge.hazard-High{ border-color: rgba(255,171,102,0.35); color: var(--ua-high); }
body.weather-ticker-page .badge.hazard-Extreme{ border-color: rgba(255,114,114,0.35); color: var(--ua-extreme); }
body.weather-ticker-page .ticker-footer{
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 12px;
            padding: 8px 14px 11px;
            border-top: 1px solid rgba(255,255,255,0.06);
            font-size: 11px;
            color: var(--ua-muted);
        }
body.weather-ticker-page .ticker-footer strong{
            color: var(--ua-text);
            font-weight: 700;
        }
body.weather-ticker-page .ticker-empty, body.weather-ticker-page .ticker-error{
            padding: 18px 16px;
            color: var(--ua-muted);
            font-size: 13px;
        }
body.weather-ticker-page .ticker-error{ color: var(--ua-extreme); }
body.weather-ticker-page .ticker-mini-list{
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
body.weather-ticker-page .mini-pill{
            display: inline-flex;
            padding: 4px 8px;
            border-radius: 999px;
            background: rgba(255,255,255,0.04);
            border: 1px solid rgba(255,255,255,0.06);
        }
@media (max-width: 760px) {body.weather-ticker-page .ticker-badges{ display: none; }
body.weather-ticker-page .ticker-footer{ flex-direction: column; align-items: flex-start; }}

/* ── includes/weather_widget.php ── */
.ua-weather-widget{
background: rgba(13,16,22,0.95);
border: 1px solid rgba(130,145,170,0.18);
border-radius: 14px;
padding: 18px;
color: #e7edf7;
}
.ua-weather-widget .ua-weather-header{
display: flex;
justify-content: space-between;
gap: 16px;
align-items: flex-start;
margin-bottom: 16px;
}
.ua-weather-widget .ua-weather-header h3{
margin: 0 0 4px;
font-size: 1.1rem;
}
.ua-weather-widget .ua-weather-header p, .ua-weather-widget .ua-weather-meta span{
margin: 0;
color: #9aa8bf;
font-size: 0.9rem;
}
.ua-weather-widget .ua-weather-alert.paused{
margin-bottom: 14px;
padding: 10px 12px;
border-radius: 10px;
background: rgba(123, 70, 255, 0.18);
border: 1px solid rgba(160, 110, 255, 0.35);
color: #d7c2ff;
font-weight: 600;
}
.ua-weather-widget .ua-weather-row{
display: grid;
grid-template-columns: 220px 1fr;
gap: 14px;
padding: 12px 0;
border-top: 1px solid rgba(255,255,255,0.07);
}
.ua-weather-widget .ua-weather-row:first-of-type{
border-top: 0;
}
.ua-weather-widget .ua-weather-zone strong{
display: block;
font-size: 1rem;
margin-bottom: 4px;
}
.ua-weather-widget .ua-weather-zone span, .ua-weather-widget .ua-weather-detail{
color: #b7c2d6;
font-size: 0.95rem;
}
.ua-weather-widget .lvl-0 .ua-weather-zone strong{ color: #9ca5b5; }
.ua-weather-widget .lvl-1 .ua-weather-zone strong{ color: #81d881; }
.ua-weather-widget .lvl-2 .ua-weather-zone strong{ color: #d0e86c; }
.ua-weather-widget .lvl-3 .ua-weather-zone strong{ color: #ffc766; }
.ua-weather-widget .lvl-4 .ua-weather-zone strong{ color: #ff3c3c; }
@media (max-width: 760px) {.ua-weather-widget .ua-weather-row{
grid-template-columns: 1fr;
}
.ua-weather-widget .ua-weather-header{
flex-direction: column;
}}
