/* 67CD Living Portal v0.9.1 cleanup
   Split from index(20).html without functional/UI changes. */

:root{--bg:#f6f7fb;--paper:rgba(255,255,255,.92);--paper2:rgba(247,249,252,.96);--ink:#101418;--muted:#5e6673;--line:#111827;--soft:#d9dee8;--c:#0f766e;--d:#2563eb;--q:#7c3aed;--danger:#dc2626;--blue:#0284c7;--glass:rgba(255,255,255,.64);--glassLine:rgba(17,24,39,.16);--shadow:0 0 0 rgba(0,0,0,0);--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;--base:14px}
[data-theme="dark"]{--bg:#070b12;--paper:rgba(13,18,28,.88);--paper2:rgba(17,24,39,.9);--ink:#f7f8fb;--muted:#a8b0bd;--line:#dbe4f0;--soft:#273244;--c:#2dd4bf;--d:#60a5fa;--q:#a78bfa;--danger:#fb7185;--blue:#38bdf8;--glass:rgba(15,23,42,.66);--glassLine:rgba(255,255,255,.18);--shadow:0 0 0 rgba(0,0,0,0)}
*{box-sizing:border-box}html{font-size:var(--base)}body{margin:0;min-height:100vh;font-family:var(--font);background:var(--bg);color:var(--ink)}body:before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 6% 2%,rgba(37,99,235,.10),transparent 30%),radial-gradient(circle at 96% 4%,rgba(124,58,237,.10),transparent 27%),linear-gradient(135deg,var(--bg),rgba(226,232,240,.42))}body.has-bg:after{content:"";position:fixed;inset:0;z-index:-1;background-image:var(--custom-bg);background-size:cover;background-position:center;opacity:.18;filter:saturate(.8) contrast(1.04)}
.app{display:grid;grid-template-columns:238px 1fr;min-height:100vh}.side{position:sticky;top:0;height:100vh;overflow:auto;border-right:2px solid var(--line);background:var(--paper);padding:20px 16px;backdrop-filter:blur(18px)}.brand{border:1px solid var(--soft);padding:14px;background:var(--paper2);box-shadow:var(--shadow);margin-bottom:18px}.signal{display:inline-flex;align-items:center;gap:8px;font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);font-weight:950;margin-bottom:12px;border:1px solid var(--soft);background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.38));padding:7px 10px;border-radius:999px;box-shadow:0 6px 14px rgba(18,25,38,.12),inset 0 1px 0 rgba(255,255,255,.75)}.status-dot{width:9px;height:9px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.16),0 0 12px rgba(34,197,94,.65)}.brand h1{font-size:1.35rem;line-height:1.02;margin:0;text-transform:none;letter-spacing:.01em}.brand p{font-size:.78rem;color:var(--muted);line-height:1.35;margin:9px 0 0}.nav{display:grid;gap:7px}.nav button,.btn{border:1px solid var(--soft);background:transparent;color:var(--ink);font:inherit;font-size:.74rem;font-weight:950;text-transform:uppercase;letter-spacing:.04em;padding:10px 13px;text-align:left;cursor:pointer;border-radius:999px}.nav button.active,.btn{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.ghost{background:transparent;color:var(--ink)}.btn.small{font-size:.7rem;padding:7px 8px}.idbox{margin-top:18px;border:2px solid var(--line);background:var(--paper2);padding:11px;font-size:.8rem;line-height:1.7}.idbox b{border:1px solid var(--soft);padding:1px 6px;background:var(--paper);margin-right:5px}
main{padding:26px clamp(18px,3.8vw,46px) 52px}.top{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start;border-bottom:3px solid var(--line);padding-bottom:18px;margin-bottom:18px}.title h2{font-size:3.25rem;line-height:.88;letter-spacing:-.08em;text-transform:uppercase;margin:0;display:inline-block;border:1px solid var(--line);background:var(--paper);padding:10px 16px 12px}.title p{display:none}.glass{border:1px solid var(--glassLine);background:var(--glass);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);box-shadow:0 18px 36px rgba(0,0,0,.16);padding:10px 12px;min-width:286px}.glass .row{display:flex;justify-content:space-between;gap:12px;align-items:center}.orb{width:10px;height:10px;background:var(--c);box-shadow:0 0 18px var(--c);display:inline-block;margin-right:8px}.glass b{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}.glass small{display:block;margin-top:4px;color:var(--muted);font-size:.72rem}.code{display:flex;gap:5px}.code span{border:1px solid var(--glassLine);padding:4px 7px;background:rgba(255,255,255,.19);font-size:.72rem;font-weight:950;text-transform:uppercase}.code span.quiet-active{background:rgba(124,58,237,.24);border-color:var(--q)}.code span.quiet-normal{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.45)}
.top-status-main{display:flex;align-items:center;gap:10px;justify-content:flex-start;min-width:390px}.top-profile-chip{display:inline-flex;align-items:center;justify-content:center;gap:0;padding:0;border:0;background:transparent;font-size:.72rem;font-weight:950;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;min-width:28px}.top-profile-chip .profile-pic{width:24px;height:24px;font-size:.58rem;box-shadow:none;border-width:1px}.top-status-pills{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;justify-content:flex-start}.top-status-pills span{border:1px solid var(--glassLine);padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.16);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.top-time-chip{text-transform:none!important;letter-spacing:.02em!important;color:var(--muted);border-color:transparent!important;background:transparent!important;padding-left:2px!important;padding-right:2px!important}.top-message-chip{color:var(--ink)}#quietLiveStatus.quiet-active{background:rgba(124,58,237,.92);border-color:rgba(124,58,237,.96);color:white;box-shadow:0 0 0 3px rgba(124,58,237,.16),0 10px 22px rgba(124,58,237,.22)}#quietLiveStatus.quiet-normal{background:rgba(34,197,94,.10);border-color:rgba(34,197,94,.34);color:var(--c)}.glass.quiet-mode{background:linear-gradient(135deg,rgba(124,58,237,.88),rgba(91,33,182,.72));border-color:rgba(196,181,253,.86);box-shadow:0 18px 42px rgba(124,58,237,.34),inset 0 1px 0 rgba(255,255,255,.26);color:white}.glass.quiet-mode .top-time-chip{color:rgba(255,255,255,.82)!important}.glass.quiet-mode .top-message-chip{color:white;border-color:rgba(255,255,255,.34);background:rgba(255,255,255,.12)}.glass.quiet-mode .top-profile-chip .profile-pic{border-color:rgba(255,255,255,.55);box-shadow:0 0 0 3px rgba(255,255,255,.12)}[data-theme="dark"] .glass.quiet-mode{background:linear-gradient(135deg,rgba(124,58,237,.92),rgba(76,29,149,.74))}@media(max-width:980px){.top-status-main{min-width:0;display:grid;grid-template-columns:1fr;gap:8px}.top-status-pills{justify-content:flex-start}.top-status-pills span{font-size:.66rem}.top-profile-chip{width:max-content}}
.message-center{position:fixed;right:clamp(14px,4vw,54px);top:88px;width:min(420px,calc(100vw - 28px));max-height:min(560px,calc(100vh - 112px));overflow:hidden;border:1px solid var(--line);background:var(--paper);box-shadow:0 26px 80px rgba(0,0,0,.34);z-index:2147483647!important;padding:16px;color:var(--ink);isolation:isolate;backdrop-filter:blur(22px) saturate(1.25);-webkit-backdrop-filter:blur(22px) saturate(1.25);display:flex;flex-direction:column}

.message-center{transform:translateZ(0);contain:layout style;outline:1px solid rgba(0,0,0,.02)}
body>.message-center{position:fixed!important;z-index:2147483647!important}
.message-center h4{margin:0 0 12px;font-size:1rem;text-transform:none;letter-spacing:.01em;border-bottom:1px solid var(--soft);padding-bottom:10px;background:transparent;font-weight:950}
.message-list{display:grid;gap:10px;max-height:min(390px,calc(100vh - 240px));overflow-y:auto;overflow-x:hidden;padding-right:6px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.message-list::-webkit-scrollbar{width:8px}.message-list::-webkit-scrollbar-thumb{background:rgba(100,116,139,.34);border-radius:999px}.message-item{border:1px solid var(--soft);background:var(--paper2);padding:12px;font-size:.82rem;line-height:1.42;min-height:0;overflow-wrap:anywhere;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.message-item:hover{border-color:rgba(15,23,42,.30);background:rgba(255,255,255,.82);transform:translateY(-1px)}.message-item.unread{border-left:5px solid var(--blue)}.message-item b{display:block;font-size:.9rem;letter-spacing:.01em;text-transform:none;margin-bottom:5px;font-weight:950}.message-item .message-detail{color:var(--muted);font-weight:750}.message-item small{display:block;color:var(--muted);margin-top:8px;font-weight:800}.message-actions{display:flex;gap:10px;margin-top:14px;border-top:1px solid var(--soft);padding-top:12px;background:var(--paper);position:sticky;bottom:0;z-index:2}.message-actions .btn{width:auto;font-size:.7rem;padding:8px 11px}.top-message-chip{cursor:pointer;position:relative;overflow:visible}.top-message-chip.has-unread{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.06);color:var(--ink)}.top-message-chip.has-unread:after{content:attr(data-count);position:absolute;right:-9px;top:-10px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#ef4444;color:white;border:2px solid var(--paper);display:grid;place-items:center;font-size:.62rem;font-weight:1000;line-height:1;letter-spacing:-.02em;box-shadow:0 6px 16px rgba(239,68,68,.32)}.glass.quiet-mode .top-message-chip.has-unread{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.48);color:white}.glass.quiet-mode .top-message-chip.has-unread:after{border-color:rgba(91,33,182,.88);box-shadow:0 6px 18px rgba(0,0,0,.26)}@media(max-width:720px){.message-center{top:76px;right:12px;left:12px;width:auto;max-height:calc(100vh - 92px)}.message-list{max-height:calc(100vh - 230px)}}


.quiet-strip{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);padding:12px 14px;margin-bottom:18px;border-left:6px solid var(--q)}.quiet-strip .big{font-size:1.9rem;font-weight:1000;letter-spacing:-.08em}.quiet-strip .mini-text{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:950}.quiet-track{height:10px;border:1px solid var(--line);background:linear-gradient(90deg,var(--soft) 0 68%,var(--q) 68% 100%)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:15px}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);padding:14px}.card h3{margin:0 0 12px;font-size:.86rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--soft);padding-bottom:9px;color:var(--ink)}.sub{color:var(--muted);font-size:.78rem}.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.history-stats{grid-template-columns:1.2fr 1fr 1fr;gap:10px}.history-stats .kpi{padding:16px}.history-stats .kpi label{font-size:.68rem}.history-stats .kpi .value{font-size:2.25rem}.history-stats .kpi p{font-size:.78rem}.history-stats .kpi.primary-bill-stat{border-left-color:var(--danger);background:linear-gradient(180deg,rgba(220,38,38,.06),var(--paper2))}.history-stats .kpi.paid-bill-stat{border-left-color:var(--c)}.history-stats .kpi.month-bill-stat{border-left-color:var(--blue)}.kpi{border:1px solid var(--soft);background:var(--paper2);padding:12px}.kpi label{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:950;color:var(--muted)}.kpi .value{font-size:2rem;font-weight:1000;letter-spacing:-.09em;margin-top:7px;line-height:1}.kpi p{margin:4px 0 0;color:var(--muted);font-size:.76rem}.viz-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.donut-wrap{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.donut{--p:50;width:118px;height:118px;border:1px solid var(--line);border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*1%),var(--danger) 0);position:relative}.donut:after{content:"";position:absolute;inset:22px;background:var(--paper);border:1px solid var(--line);border-radius:50%}.legend{display:grid;gap:8px}.legend div{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--soft);padding:8px;background:var(--paper2);font-weight:850}.spark{height:118px;border:1px solid var(--soft);padding:10px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;background:var(--paper2)}.spark i{display:block;border:1px solid var(--line);background:var(--blue);min-height:12px}.spark i.c{background:var(--c)}.spark i.d{background:var(--d)}.spark i.q{background:var(--q)}
.bill-list{display:grid;gap:9px}.bill{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border:1px solid var(--soft);padding:10px;background:var(--paper2)}.bill h4{margin:0;font-size:.86rem}.bill small{color:var(--muted);font-size:.72rem}.payer-badge{display:inline-flex;align-items:center;gap:5px;margin-left:4px;font-weight:950}.payer-badge:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--blue);box-shadow:0 0 10px rgba(56,189,248,.35)}.payer-badge.c{color:var(--d)}.payer-badge.c:before{background:var(--d)}.payer-badge.d{color:var(--q)}.payer-badge.d:before{background:var(--q)}.payer-badge.both{color:var(--blue)}.payer-badge.both:before{background:var(--blue)}.split-note{margin-top:5px;font-size:.72rem;color:var(--muted);font-weight:850;letter-spacing:.02em}.split-breakdown{margin-top:7px;display:flex;gap:6px;flex-wrap:wrap}.split-pill{border:1px solid var(--soft);border-left:4px solid var(--soft);background:var(--paper);padding:5px 7px;font-size:.68rem;font-weight:900;color:var(--muted)}.split-pill b{color:var(--ink);margin-left:4px}.split-pill.c{border-left-color:var(--d)}.split-pill.d{border-left-color:var(--q)}.split-pill.both{border-left-color:var(--blue)}.amount{font-weight:1000}.amount.c{color:var(--d)}.amount.d{color:var(--q)}.amount.both{color:var(--blue)}.notice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.notice{border:1px solid var(--soft);border-left:5px solid var(--d);background:var(--paper2);padding:10px}.notice h4{margin:3px 0 3px;font-size:.86rem}.notice p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.32}.notice .meta{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:950;color:var(--d)}
.vertical-schedule{display:grid;grid-template-columns:62px repeat(7,1fr);gap:0;border:1px solid var(--line);overflow:hidden;background:var(--paper2)}.time-col,.day-col{position:relative;min-height:720px;border-right:1px solid var(--soft);background:linear-gradient(to bottom,transparent 0 12.4%,var(--soft) 12.5%,transparent 12.7% 24.9%,var(--soft) 25%,transparent 25.2% 37.4%,var(--soft) 37.5%,transparent 37.7% 49.9%,var(--soft) 50%,transparent 50.2% 62.4%,var(--soft) 62.5%,transparent 62.7% 74.9%,var(--soft) 75%,transparent 75.2% 87.4%,var(--soft) 87.5%,transparent 87.7%)}.day-col:last-child{border-right:0}.day-head{position:sticky;top:0;z-index:2;border-bottom:1px solid var(--soft);background:var(--paper);padding:8px;text-align:center;font-size:.72rem;font-weight:1000;text-transform:uppercase}.day-head .day-name{display:block;line-height:1}.day-head .day-date{display:block;margin-top:3px;font-size:.64rem;letter-spacing:.02em;text-transform:none;color:var(--muted);font-weight:850}.time-col .tick{position:absolute;left:7px;font-size:.65rem;color:var(--muted);font-weight:900}.vblock{position:absolute;left:8px;right:8px;border:1px solid var(--line);padding:6px 6px;font-size:.68rem;font-weight:950;line-height:1.05;overflow:hidden;background:var(--paper);box-shadow:none}.vblock.c{background:rgba(22,114,79,.18);border-color:var(--c)}.vblock.d{background:rgba(155,98,20,.18);border-color:var(--d)}.vblock.q{background:rgba(156,122,18,.22);border-color:var(--q)}.vblock b{display:block;font-size:.65rem}.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.today-card{border:1px solid var(--soft);background:var(--paper2);padding:12px}.today-card h4{margin:0 0 8px;font-size:.8rem;text-transform:uppercase}.mini-event{display:grid;grid-template-columns:54px 1fr;gap:8px;border-top:1px solid var(--soft);padding:7px 0;font-size:.75rem}.mini-event b{font-size:.7rem;text-transform:uppercase}
table{width:100%;border-collapse:collapse;background:var(--paper2)}th,td{border:1px solid var(--soft);padding:9px;text-align:left;vertical-align:top}th{text-transform:uppercase;font-size:.68rem;letter-spacing:.06em}td{color:var(--muted);font-size:.78rem}input,textarea,select{width:100%;border:1px solid var(--soft);background:var(--paper2);color:var(--ink);font:inherit;font-size:.82rem;padding:10px;border-radius:0}textarea{min-height:120px}.form{display:grid;grid-template-columns:repeat(12,1fr);gap:9px}.field-4{grid-column:span 4}.field-6{grid-column:span 6}.field-8{grid-column:span 8}.field-12{grid-column:span 12}.split-field{position:relative;display:block}.split-field input{padding-right:34px}.split-field .unit{position:absolute;right:12px;top:10px;font-weight:1000;color:var(--muted);pointer-events:none}.split-field small{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.labeled-field{display:block}.labeled-field small{display:block;margin-bottom:4px;color:var(--muted);font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.labeled-field input{width:100%}
.toolbar{display:flex;gap:8px;flex-wrap:wrap}.hidden{display:none!important}.history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--soft);background:var(--paper2);padding:10px 12px;margin-bottom:10px}.history-head b{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.history-head small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}.history-toggle{width:auto}.history-collapsed #historyPayments{display:none}.history-collapsed #historyPaymentStats{display:none}.btn.danger{background:var(--danger);color:white;border-color:var(--danger)}.btn.danger.ghost{background:transparent;color:var(--danger);border-color:var(--danger)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.68);display:grid;place-items:center;z-index:100;padding:18px}#editBillBackdrop{z-index:200}#confirmBackdrop{z-index:300}.confirm-modal{width:min(430px,100%);border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.42)}.edit-modal{width:min(760px,calc(100vw - 36px));max-height:calc(100vh - 36px);overflow:auto;padding:24px 28px;background:var(--bg)}.confirm-modal h3{margin:0 0 9px;font-size:1rem;text-transform:uppercase;letter-spacing:.08em}.edit-modal h3{font-size:1.18rem}.edit-actions{display:flex;gap:8px;align-items:center}.bill-detail{margin-top:5px;color:var(--muted);font-size:.72rem;line-height:1.35}.confirm-modal .form{margin-top:12px}.confirm-modal textarea{min-height:92px}.confirm-modal p{margin:0 0 14px;color:var(--muted);font-size:.86rem;line-height:1.45}.edit-modal p{font-size:.9rem}.confirm-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.edit-modal .confirm-actions{border-top:1px solid var(--soft);padding-top:14px}.edit-modal select,.edit-modal input,.edit-modal textarea{background:var(--paper2)}@media(max-width:720px){.edit-modal{width:100%;padding:18px;max-height:calc(100vh - 24px)}.edit-modal .field-6{grid-column:1/-1}.confirm-actions{display:grid;grid-template-columns:1fr}.confirm-actions .btn{text-align:center}}
@media(max-width:980px){:root{--base:17px}.app{display:block}.side{position:sticky;z-index:30;height:auto;border-right:0;border-bottom:2px solid var(--line);padding:10px;background:var(--glass);backdrop-filter:blur(20px) saturate(1.45)}.brand,.idbox{display:none}.nav{display:flex;overflow-x:auto;gap:8px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{white-space:nowrap;font-size:.9rem;padding:12px 14px}main{padding:18px 13px 44px}.top{display:block;padding-bottom:14px;margin-bottom:14px}.title h2{font-size:3.15rem}.title p{font-size:1rem;line-height:1.35}.glass{margin-top:12px;width:100%;min-width:0}.quiet-strip{grid-template-columns:1fr;gap:8px;padding:13px}.quiet-strip .big{font-size:2.2rem}.grid{gap:14px}.span-3,.span-4,.span-5,.span-6,.span-7,.span-8,.span-12{grid-column:span 12}.mini-grid{grid-template-columns:repeat(2,1fr)}.history-stats{grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto}.history-stats .kpi .value{font-size:1.35rem}.kpi{padding:14px}.kpi label{font-size:.76rem}.kpi .value{font-size:2.3rem}.viz-grid,.notice-grid,.today-grid{grid-template-columns:1fr}.card{padding:14px}.card h3{font-size:1rem}.sub{font-size:.9rem}.bill{grid-template-columns:1fr;gap:8px}.btn{width:100%;text-align:center;font-size:.86rem}.btn.small{width:100%;font-size:.8rem}.vertical-schedule{grid-template-columns:54px repeat(7,150px);overflow-x:auto;display:grid}.time-col,.day-col{min-height:760px}.day-head{font-size:.78rem}.vblock{font-size:.76rem;padding:7px}.vblock b{font-size:.72rem}.mini-event{font-size:.9rem;grid-template-columns:66px 1fr}.notice h4{font-size:1rem}.notice p{font-size:.92rem}.form{grid-template-columns:1fr}.field-4,.field-6,.field-8,.field-12{grid-column:1/-1}}
@media(min-width:981px){.desktop-small{font-size:.92rem}}

/* Theme pass: rounded navigation, sharp content, flat visuals */
.side{box-shadow:inset -1px 0 0 rgba(0,0,0,.04)}
.nav button{transition:background .16s ease,color .16s ease,border-color .16s ease}
.nav button:hover{background:var(--paper2);border-color:var(--line)}
.nav button.active{box-shadow:0 0 0 3px rgba(37,99,235,.10)}
.card,.kpi,.bill,.notice,.today-card,.quiet-strip,.vertical-schedule,table,input,textarea,select{border-radius:0}
.glass{border-radius:18px}
.orb{border-radius:50%;background:var(--blue);box-shadow:0 0 16px rgba(2,132,199,.45)}
.code span{border-radius:999px}
.kpi{border-left:4px solid var(--blue)}
.kpi:nth-child(1){border-left-color:var(--danger)}
.kpi:nth-child(2){border-left-color:var(--c)}
.kpi:nth-child(3){border-left-color:var(--d)}
.kpi:nth-child(4){border-left-color:var(--q)}
.spark i{box-shadow:none}
.donut,.donut:after{box-shadow:none}
.notice .meta{color:var(--d)}
.brand,.card,.quiet-strip,.kpi,.bill,.notice,.today-card,.vertical-schedule,.spark,.legend div{box-shadow:none}

.weekly-switch{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;align-items:center;margin:14px auto 6px}.week-switch{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin:12px auto 4px}.week-switch .btn{width:auto;min-width:150px;text-align:center;border-radius:999px}.week-switch .btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.week-label{border:1px solid var(--soft);background:var(--paper2);padding:10px 14px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:260px;text-align:center}.week-picker{width:auto;min-width:170px;border-radius:999px;text-align:center;font-weight:900}.weekly-switch .btn{width:auto;min-width:260px;text-align:center;font-size:1rem;padding:14px 22px;border-radius:999px}.weekly-switch .btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink);box-shadow:0 0 0 4px rgba(37,99,235,.10)}.calendar-note{display:none!important}.schedule-actions{display:flex;gap:8px;flex-wrap:wrap}.schedule-actions .btn{width:auto}.schedule-mini{font-size:.72rem;color:var(--muted);font-weight:850;margin-top:4px}.schedule-scope-badge{display:inline-flex;border:1px solid var(--soft);background:var(--paper2);padding:4px 8px;font-size:.68rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em;margin-left:6px}.vblock{cursor:pointer;overflow:hidden;min-height:0}.vblock:hover{outline:2px solid var(--ink);outline-offset:-2px;z-index:20}.vblock .schedule-title-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vblock .schedule-subtitle{display:block;margin-top:3px;font-size:.62rem;font-weight:850;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vblock .schedule-mini{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weekly-hover-tooltip{position:fixed;z-index:999999;max-width:360px;white-space:pre-line;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 18px 42px rgba(0,0,0,.28);padding:12px 14px;font-size:.82rem;font-weight:850;line-height:1.38;text-transform:none;letter-spacing:0;pointer-events:none;display:none}.vblock.overlap{padding:5px 5px;font-size:.62rem;line-height:1.02}.vblock.overlap b{font-size:.6rem}.vblock.overlap .schedule-subtitle,.vblock.overlap .schedule-mini{display:none}.vblock.compact{padding:5px}.vblock.compact .schedule-title-text{font-size:.62rem}.vblock.compact .schedule-subtitle,.vblock.compact .schedule-mini{display:none}.vblock{word-break:break-word}.vblock .schedule-title-text{max-width:100%}.vblock .schedule-block-actions{position:absolute;right:3px;top:3px;display:flex;gap:3px;opacity:0;transition:.12s}.vblock:hover .schedule-block-actions{opacity:1}.schedule-icon-btn{border:1px solid var(--soft);background:var(--paper);color:var(--ink);font-size:.58rem;font-weight:1000;line-height:1;padding:3px 5px;cursor:pointer}.schedule-icon-btn:hover{background:var(--ink);color:var(--bg)}.time-picker{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}.time-picker .time-label{grid-column:1/-1;font-size:.66rem;font-weight:1000;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:-3px}.time-picker input{min-width:0}.ampm-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px}.ampm-btn{border:1px solid var(--soft);background:var(--paper2);color:var(--muted);font:inherit;font-size:.68rem;font-weight:1000;letter-spacing:.06em;padding:8px 9px;cursor:pointer;text-transform:uppercase}.ampm-btn.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}@media(max-width:980px){.time-picker{grid-template-columns:1fr}.ampm-toggle{grid-template-columns:1fr 1fr}}
.quick-add-box{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:stretch}.quick-add-box textarea{min-height:74px}.quick-add-hints{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.quick-chip{border:1px solid var(--soft);background:var(--paper2);padding:6px 9px;font-size:.72rem;font-weight:850;color:var(--muted);cursor:pointer}.manual-weekly-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.manual-weekly-head h3{margin:0}.manual-weekly-body.collapsed{display:none}.manual-toggle{width:auto!important}.manual-subsection{border-top:1px solid var(--soft);padding-top:14px;margin-top:14px}.manual-subsection:first-child{border-top:0;margin-top:0;padding-top:0}.manual-subsection h4{margin:0 0 12px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.quick-result{margin-top:8px;border:1px solid var(--soft);background:var(--paper2);padding:8px 10px;font-size:.78rem;font-weight:850;color:var(--muted)}.repeat-field{border:1px solid var(--soft);background:var(--paper2);padding:10px}.repeat-field small{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}@media(max-width:980px){.quick-add-box{grid-template-columns:1fr}.manual-weekly-head{display:grid}.manual-toggle{width:100%!important}}


/* Rules priority redesign */
.rules-board{display:grid;gap:12px}
.rule-tile{position:relative;border:1px solid var(--soft);background:linear-gradient(135deg,var(--paper2),rgba(255,255,255,.04));padding:14px 16px 14px 18px;overflow:hidden}
.rule-tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--rule-color,var(--blue))}
.rule-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.rule-priority{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--soft);background:var(--paper);padding:5px 8px;border-radius:999px;font-size:.62rem;font-weight:1000;text-transform:uppercase;letter-spacing:.09em;color:var(--rule-color,var(--blue))}
.rule-priority:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--rule-color,var(--blue));box-shadow:0 0 12px var(--rule-color,var(--blue))}
.rule-tile h4{margin:0;font-size:1rem;letter-spacing:-.02em}
.rule-tile p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.38}
.rule-tile.high{--rule-color:var(--danger)}
.rule-tile.medium{--rule-color:#f59e0b}
.rule-tile.low{--rule-color:var(--blue)}
.rule-tile.info{--rule-color:var(--c)}
.rule-form-priority{font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.rule-tile{cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease}
.rule-tile:hover{transform:translateY(-1px);border-color:var(--rule-color,var(--blue));background:linear-gradient(135deg,var(--paper2),rgba(255,255,255,.08))}
.rule-edit-hint{margin-top:10px;font-size:.62rem;font-weight:1000;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.rule-edit-modal{width:min(620px,calc(100vw - 36px));max-height:calc(100vh - 36px);overflow:auto}
.rule-edit-modal .form{margin-top:12px}
.rule-edit-actions{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-top:14px;border-top:1px solid var(--soft);padding-top:14px}
.rule-edit-actions .right{display:flex;gap:8px}

.profile-mini{display:inline-flex;align-items:center;gap:9px;font-weight:1000}
.profile-pic{width:42px;height:42px;border-radius:999px;border:1px solid var(--soft);background:var(--paper2);display:grid;place-items:center;overflow:hidden;font-weight:1000;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 0 0 3px rgba(37,99,235,.06);flex:0 0 auto}
.profile-pic.small{width:28px;height:28px;font-size:.62rem;box-shadow:none}
.profile-pic img{width:100%;height:100%;object-fit:cover;display:block}
.request-author{display:flex;align-items:center;gap:10px;margin:0 0 10px 7px}
.request-author b{font-size:.9rem}.request-author small{display:block;color:var(--muted);font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.settings-profile{display:flex;gap:14px;align-items:center;border:1px solid var(--soft);background:var(--paper2);padding:14px;margin-bottom:14px}
.settings-profile-pic{width:74px;height:74px;border-radius:999px;border:1px solid var(--soft);display:grid;place-items:center;overflow:hidden;background:var(--paper);font-size:1.25rem;font-weight:1000;letter-spacing:.04em;text-transform:uppercase}
.settings-profile-pic img{width:100%;height:100%;object-fit:cover;display:block}

.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 10% 10%,rgba(37,99,235,.12),transparent 28%),radial-gradient(circle at 90% 0,rgba(124,58,237,.14),transparent 30%),var(--bg)}
.auth-card{width:min(520px,100%);border:1px solid var(--line);background:var(--paper);padding:22px;box-shadow:0 22px 60px rgba(0,0,0,.18)}
.auth-card h1{margin:0;font-size:2.2rem;letter-spacing:-.07em;line-height:.95;text-transform:uppercase}.auth-card p{margin:10px 0 18px;color:var(--muted);line-height:1.4}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.auth-tabs button{border:1px solid var(--soft);background:transparent;color:var(--ink);font:inherit;font-weight:950;text-transform:uppercase;letter-spacing:.06em;padding:10px;cursor:pointer}.auth-tabs button.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.auth-form{display:grid;gap:10px}.auth-form#developerBypassForm{margin-bottom:12px}.other-auth-toggle{border:0;background:transparent;color:var(--muted);font:inherit;font-size:.74rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em;padding:4px 0;margin:0 0 10px;cursor:pointer;text-align:left;width:auto}.other-auth-toggle:hover{color:var(--ink);text-decoration:underline}.auth-message{min-height:20px;color:var(--muted);font-size:.82rem;font-weight:850;line-height:1.35}.auth-message.error{color:var(--danger)}.auth-message.success{color:var(--c)}.dev-option{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--soft);background:var(--paper2);padding:10px;margin:10px 0 12px;font-size:.78rem;font-weight:900;line-height:1.35;color:var(--ink)}.dev-option input{width:auto;margin-top:2px}.dev-option small{display:block;color:var(--muted);font-weight:800;margin-top:2px}.observer-lock{border:1px solid var(--q);background:rgba(124,58,237,.10);padding:8px 10px;margin-top:10px;font-size:.74rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:var(--q)}.dev-switcher{margin-top:10px;border:1px solid var(--soft);background:var(--paper2);padding:10px;display:grid;gap:8px}.dev-switcher b{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.dev-switcher .toolbar{gap:6px}.dev-switcher .btn{font-size:.62rem;padding:7px 8px;text-align:center}.dev-switcher .btn.active{background:var(--q);border-color:var(--q);color:white}.observer-lock .btn.active{background:var(--q);border-color:var(--q);color:white}.user-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;border:1px solid var(--soft);background:var(--paper2);padding:9px 10px;font-size:.76rem;font-weight:900}.user-strip span{color:var(--muted)}.btn.logout{padding:6px 8px;font-size:.62rem}.auth-card .btn{text-align:center;width:100%}
@media(max-width:980px){.auth-card{padding:18px}.auth-card h1{font-size:2.4rem}.user-strip{display:none}}

/* Weekly 24-hour scroll fix */
.vertical-schedule{max-height:760px;overflow:auto!important;align-items:start;}
#weeklyBoard.vertical-schedule{max-height:520px;}
.time-col,.day-col{min-height:1440px!important;}
.time-col{position:sticky;left:0;z-index:4;}
.day-head{top:0;}

/* Request tracker redesign */
.request-board-head{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--soft);background:var(--paper2);padding:10px 12px;margin-bottom:12px}
.request-board-head b{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em}.request-board-head span{font-size:.76rem;color:var(--muted);font-weight:850}.request-author-strip{border:1px solid var(--soft);background:var(--paper2);padding:10px 12px;margin-bottom:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.request-stack{display:grid;gap:12px}.request-card{border:1px solid var(--soft);background:linear-gradient(180deg,var(--paper2),var(--paper));padding:13px 14px;cursor:pointer;position:relative;overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease}.request-card:hover{border-color:var(--line);box-shadow:0 0 0 2px rgba(17,24,39,.06) inset}.request-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--blue)}.request-card.high:before{background:var(--danger)}.request-card.medium:before{background:#eab308}.request-card.low:before{background:var(--blue)}.request-card.info:before{background:#22c55e}.request-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-left:7px}.request-kicker{display:flex;gap:6px;flex-wrap:wrap}.request-chip{border:1px solid var(--soft);background:var(--paper);padding:4px 7px;font-size:.64rem;font-weight:1000;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.request-chip.high{color:var(--danger);border-color:rgba(220,38,38,.35)}.request-chip.medium{color:#a16207;border-color:rgba(234,179,8,.4)}.request-chip.low{color:var(--blue);border-color:rgba(2,132,199,.35)}.request-chip.info{color:#16a34a;border-color:rgba(34,197,94,.35)}.request-status{font-weight:1000}.request-status.resolved,.request-status.agreed{color:#16a34a}.request-status.rejected{color:var(--danger)}.request-status.discussing{color:#a16207}.request-card h4{margin:11px 0 6px 7px;font-size:1rem;letter-spacing:-.02em}.request-body{margin:0 0 10px 7px;color:var(--muted);font-size:.82rem;line-height:1.38}.request-replies{margin-left:7px;border-top:1px solid var(--soft);padding-top:8px;display:grid;gap:6px}.request-reply{border:1px solid var(--soft);background:var(--paper);padding:8px 9px;font-size:.76rem;color:var(--muted)}.request-reply b{color:var(--ink);margin-right:6px}.request-actions{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0 7px}.request-actions .btn{width:auto}.request-edit-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px;border-top:1px solid var(--soft);padding-top:14px}.request-edit-actions .btn{width:auto}
.request-status-actions{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0 7px;border-top:1px solid var(--soft);padding-top:10px}
.request-status-actions .btn{width:auto;font-size:.66rem;padding:7px 10px}
.request-status-actions .status-reject{color:var(--danger);border-color:rgba(220,38,38,.5)}
.request-status-actions .status-approve{color:#16a34a;border-color:rgba(34,197,94,.5)}
.request-stamp{position:absolute;right:16px;top:72px;z-index:2;border:3px solid currentColor;border-radius:10px;padding:7px 12px;font-size:1rem;font-weight:1000;text-transform:uppercase;letter-spacing:.12em;transform:rotate(-10deg);opacity:.88;pointer-events:none;background:rgba(255,255,255,.08)}
.request-stamp.rejected{color:var(--danger)}
.request-stamp.agreed,.request-stamp.resolved{color:#16a34a}
.request-check{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;background:#16a34a;color:white;font-size:.78rem;margin-right:6px}
@media(max-width:720px){.request-top{display:block}.request-board-head{display:block}.request-board-head span{display:block;margin-top:6px}.request-edit-actions{display:grid;grid-template-columns:1fr}.request-edit-actions .btn{width:100%}}


/* Stable document editor for Agreement */
.agreement-card{padding:20px}.agreement-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.agreement-head h3{margin-bottom:6px}.agreement-toolbar{display:flex;gap:7px;flex-wrap:wrap;border:1px solid var(--soft);background:var(--paper2);padding:9px;margin-bottom:10px}.agreement-toolbar button{border:1px solid var(--soft);background:var(--paper);color:var(--ink);font:inherit;font-size:.7rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;cursor:pointer;border-radius:999px}.agreement-toolbar button:hover{border-color:var(--line)}.agreement-editor{min-height:520px;line-height:1.55;font-size:1rem;background:var(--paper2);font-family:var(--font);resize:vertical}.agreement-preview{min-height:520px;border:1px solid var(--soft);background:var(--paper2);padding:24px;line-height:1.55;font-size:1rem;white-space:normal}.agreement-preview h1{font-size:2rem;margin:0 0 14px;letter-spacing:-.04em}.agreement-preview h2{font-size:1.2rem;margin:22px 0 10px;text-transform:uppercase;letter-spacing:.08em}.agreement-preview p{margin:0 0 12px}.agreement-preview ul,.agreement-preview ol{margin:0 0 14px 22px}.agreement-preview blockquote{margin:0 0 14px;border-left:4px solid var(--blue);padding:8px 12px;background:rgba(56,189,248,.08);color:var(--muted)}.agreement-preview hr{border:0;border-top:1px solid var(--soft);margin:18px 0}.agreement-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.agreement-foot .btn{width:auto;min-width:220px;text-align:center}@media(max-width:720px){.agreement-head,.agreement-foot{display:grid}.agreement-foot .btn{width:100%}.agreement-toolbar button{flex:1}.agreement-editor,.agreement-preview{min-height:420px}}
/* Agreement editor refinements */
.agreement-paper{border:1px solid var(--soft);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent);padding:14px}.agreement-toolbar button.active{background:var(--ink);color:var(--bg)}.agreement-preview h3{font-size:1rem;margin:18px 0 8px;text-transform:uppercase;letter-spacing:.06em}.agreement-preview table{width:100%;border-collapse:collapse;margin:12px 0}.agreement-preview th,.agreement-preview td{border:1px solid var(--soft);padding:8px;text-align:left}.agreement-preview input[type="checkbox"]{width:auto;margin-right:8px}.agreement-print-title{display:none}@media print{body{background:white!important;color:#111!important}.side,.top,.agreement-toolbar,.agreement-foot,.nav,.auth-screen{display:none!important}.app{display:block!important}.page{display:none!important}#agreement{display:block!important}.card{border:0!important;background:white!important}.agreement-preview,.agreement-editor{display:block!important;border:0!important;background:white!important;color:#111!important;min-height:0!important}.agreement-print-title{display:block!important;font-size:22px;font-weight:900;margin-bottom:18px}}

/* Agreement rich editor: Quill document mode */
.agreement-rich-wrap{border:1px solid var(--soft);background:var(--paper2)}
.agreement-rich-toolbar{border:0!important;border-bottom:1px solid var(--soft)!important;background:var(--paper);padding:10px!important}
.agreement-rich-editor{min-height:620px;background:var(--paper2);color:var(--ink);font-size:1rem;line-height:1.6}
.agreement-rich-editor .ql-editor{min-height:620px;padding:30px 34px;font-family:var(--font);font-size:1rem;color:var(--ink)}
.agreement-rich-editor .ql-editor h1{font-size:2rem;letter-spacing:-.04em}
.agreement-rich-editor .ql-editor h2{font-size:1.32rem;text-transform:uppercase;letter-spacing:.06em}
.agreement-rich-editor .ql-editor blockquote{border-left:4px solid var(--blue);background:rgba(56,189,248,.08);padding:10px 14px;color:var(--muted)}
.agreement-rich-editor .ql-editor table{border-collapse:collapse;width:100%}
.agreement-rich-editor .ql-editor td{border:1px solid var(--soft);padding:8px}
.agreement-source{display:none!important}
.agreement-toolbar.legacy{display:none!important}
.agreement-preview{display:none!important}
.ql-snow .ql-picker,.ql-snow .ql-stroke{color:var(--ink);stroke:var(--ink)}
.ql-snow .ql-fill{fill:var(--ink)}
.ql-snow .ql-picker-options{background:var(--paper);color:var(--ink);border-color:var(--soft)}
@media print{.agreement-rich-toolbar,.agreement-foot{display:none!important}.agreement-rich-wrap{border:0!important}.agreement-rich-editor .ql-editor{color:#111!important;background:white!important}}


.week-picker-wrap{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--soft);background:var(--paper2);padding:8px 12px;border-radius:999px;font-weight:950;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.week-picker-wrap span{font-size:.72rem;white-space:nowrap}.week-picker-wrap input{border:0;background:transparent;padding:0;min-width:136px;font-weight:950;text-align:center}.week-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.week-tools .btn{width:auto!important}.now-badge{border:1px solid var(--soft);background:var(--paper2);padding:7px 10px;border-radius:999px;font-size:.72rem;font-weight:1000;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.vertical-schedule{--time-col-w:62px;position:relative}.now-time-pill{position:absolute;left:4px;transform:translateY(-50%);z-index:20;background:var(--danger);color:white;border-radius:999px;padding:4px 8px;font-size:.62rem;font-weight:1000;letter-spacing:.02em;white-space:nowrap;box-shadow:0 8px 18px rgba(0,0,0,.18);pointer-events:none}.now-segment{position:absolute;left:0;right:0;transform:translateY(-50%);height:0;border-top:2px solid rgba(220,38,38,.24);z-index:16;pointer-events:none}.now-segment.today{border-top:3px solid var(--danger);box-shadow:0 0 0 1px rgba(220,38,38,.05)}.now-segment.today:before{content:"";position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:999px;background:var(--danger);box-shadow:0 0 0 4px rgba(220,38,38,.14)}@media(max-width:980px){.vertical-schedule{--time-col-w:54px}}

/* Weekly calendar controls: Apple-calendar-inspired compact header */
.weekly-control-card{padding:22px 24px 26px}
.weekly-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--soft);padding-bottom:16px;margin-bottom:18px}
.calendar-title-wrap{min-width:260px}
.calendar-month-title{font-size:2.6rem;line-height:1;font-weight:1000;letter-spacing:-.06em;text-transform:none;color:var(--ink)}
.calendar-week-subtitle{margin-top:7px;color:var(--muted);font-size:.9rem;font-weight:900;letter-spacing:.02em}
.calendar-nav-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.calendar-arrow,.calendar-today{border:1px solid var(--soft);background:var(--paper2);color:var(--ink);font:inherit;font-weight:1000;cursor:pointer;box-shadow:none}
.calendar-arrow{width:44px;height:40px;border-radius:12px;font-size:2rem;line-height:.8;display:grid;place-items:center;padding-bottom:5px}
.calendar-today{height:40px;border-radius:12px;padding:0 18px;font-size:.86rem;text-transform:uppercase;letter-spacing:.06em}
.calendar-today.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.calendar-date-jump{height:40px;border:1px solid var(--soft);background:var(--paper2);border-radius:12px;padding:7px 12px;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.72rem;font-weight:1000;text-transform:uppercase;letter-spacing:.06em}
.calendar-date-jump input{border:0;background:transparent;padding:0;width:132px;min-width:0;font-weight:1000;color:var(--ink);font-size:.84rem}
.weekly-switch{display:grid!important;grid-template-columns:1fr 1fr;gap:12px;max-width:760px;margin:0 auto 14px!important;justify-content:stretch!important}
.weekly-switch .btn{min-width:0!important;width:100%;font-size:1.05rem;padding:17px 22px;border-radius:20px}
.weekly-switch .btn.active{box-shadow:0 0 0 5px rgba(37,99,235,.10)}
.quick-week-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.quick-week-row .btn{width:auto;min-width:170px;border-radius:999px;text-align:center}
.quick-week-row .btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
@media(max-width:980px){.weekly-calendar-header{display:grid}.calendar-month-title{font-size:2.15rem}.calendar-nav-tools{justify-content:flex-start}.weekly-switch{grid-template-columns:1fr}.quick-week-row .btn{width:100%}.calendar-date-jump{width:100%;justify-content:space-between}.calendar-date-jump input{width:auto}}


.request-reply-edit-list{grid-column:1/-1;display:grid;gap:8px;border:1px solid var(--soft);background:var(--paper2);padding:10px}
.request-reply-edit-row{display:grid;grid-template-columns:140px 1fr auto;gap:8px;align-items:start;border:1px solid var(--soft);background:var(--paper);padding:8px}
.request-reply-edit-row label{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:950;color:var(--muted);padding-top:8px}
.request-reply-edit-row textarea{min-height:64px}
.request-reply-edit-empty{color:var(--muted);font-size:.82rem;font-weight:850}
@media(max-width:720px){.request-reply-edit-row{grid-template-columns:1fr}.request-reply-edit-row label{padding-top:0}.request-reply-edit-row .btn{width:100%}}

.request-deadline{display:inline-flex;align-items:center;border:1px solid var(--soft);background:rgba(255,255,255,.55);padding:7px 10px;margin-top:10px;font-size:.72rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
[data-theme="dark"] .request-deadline{background:rgba(15,23,42,.45)}
.request-deadline.expiring{border-color:rgba(34,197,94,.45);color:#16a34a}
.request-deadline.rejecting{border-color:rgba(239,68,68,.45);color:#dc2626}

/* Weekly overlap readability fix: cascaded overlapping events, readable text, visible actions */
.vblock{white-space:nowrap;word-break:normal!important;overflow:hidden}
.vblock b,.vblock .schedule-title-text,.vblock .schedule-subtitle,.vblock .schedule-mini{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:normal!important}
.vblock.overlap{padding:6px 7px;font-size:.68rem;line-height:1.08;box-shadow:0 5px 12px rgba(0,0,0,.08)}
.vblock.overlap b{font-size:.64rem}
.vblock.overlap .schedule-subtitle{display:block;font-size:.58rem}
.vblock.overlap .schedule-mini{display:block;font-size:.58rem}
.vblock.compact .schedule-subtitle,.vblock.compact .schedule-mini{display:none!important}
.vblock .schedule-block-actions{opacity:.18;background:rgba(255,255,255,.72);backdrop-filter:blur(6px)}

.vblock.compact .schedule-block-actions .schedule-icon-btn{font-size:.52rem;padding:2px 4px}


/* Weekly quiet hour visual layer: QH is a soft overnight band, separate from normal schedule blocks */
.quiet-band{
  position:absolute;
  left:6px;
  right:6px;
  border:1px solid rgba(124,58,237,.28);
  background:
    linear-gradient(135deg,rgba(124,58,237,.18),rgba(168,85,247,.08)),
    repeating-linear-gradient(45deg,rgba(255,255,255,.24) 0 7px,rgba(255,255,255,.04) 7px 14px);
  box-shadow:0 12px 26px rgba(124,58,237,.18), inset 0 1px 0 rgba(255,255,255,.42);
  backdrop-filter:blur(1px);
  -webkit-backdrop-filter:blur(1px);
  z-index:3;
  overflow:hidden;
  cursor:pointer;
}
.quiet-band:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,rgba(124,58,237,.95),rgba(168,85,247,.72));
}
.quiet-band .quiet-band-label{
  position:absolute;
  left:12px;top:9px;
  display:inline-flex;align-items:center;gap:5px;
  max-width:calc(100% - 24px);
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.46);
  box-shadow:0 6px 16px rgba(124,58,237,.10);
  font-size:.58rem;font-weight:900;
  color:rgba(76,29,149,.88);
  letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.quiet-band.continued .quiet-band-label{top:9px;bottom:auto}
.quiet-band.compact .quiet-band-label{display:none}
.quiet-band:hover{
  border-color:rgba(124,58,237,.52);
  box-shadow:0 16px 34px rgba(124,58,237,.24), inset 0 1px 0 rgba(255,255,255,.56);
  z-index:18;
}
[data-theme="dark"] .quiet-band{
  background:linear-gradient(135deg,rgba(124,58,237,.25),rgba(168,85,247,.10));
  border-color:rgba(196,181,253,.28);
}
[data-theme="dark"] .quiet-band .quiet-band-label{color:rgba(221,214,254,.92)}


/* Weekly click actions: hide in-block edit/delete buttons and show a clean popover after single click */
.vblock .schedule-block-actions{display:none!important}
.weekly-action-popover{position:fixed;z-index:1000000;width:min(320px,calc(100vw - 28px));border:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:0 18px 44px rgba(0,0,0,.26);padding:12px;display:none}
.weekly-action-popover .wap-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border-bottom:1px solid var(--soft);padding-bottom:9px;margin-bottom:10px}
.weekly-action-popover .wap-title{font-weight:1000;font-size:.88rem;line-height:1.15}
.weekly-action-popover .wap-meta{margin-top:4px;color:var(--muted);font-size:.72rem;font-weight:850;line-height:1.25}
.weekly-action-popover .wap-close{border:1px solid var(--soft);background:transparent;color:var(--ink);font:inherit;font-weight:1000;font-size:.68rem;padding:4px 7px;cursor:pointer}
.weekly-action-popover .wap-actions{display:flex;gap:8px;flex-wrap:wrap}
.weekly-action-popover .wap-actions .btn{width:auto!important;text-align:center}
.weekly-action-popover .wap-actions .btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}
.vblock.selected{outline:2px solid var(--ink);outline-offset:-2px;z-index:50!important}


/* Weekly overlap/popup stability pass */
.vertical-schedule{grid-template-columns:62px repeat(7,minmax(220px,1fr))!important;overflow:auto!important;}
#weeklyBoard.vertical-schedule{grid-template-columns:62px repeat(7,minmax(180px,1fr))!important;}
.day-col{min-width:220px;}
#weeklyBoard .day-col{min-width:180px;}
.vblock{white-space:normal!important;word-break:normal!important;overflow:hidden!important;}
.vblock b,.vblock .schedule-title-text,.vblock .schedule-subtitle,.vblock .schedule-mini{display:block;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:normal!important;}
.vblock.overlap{font-size:.66rem;line-height:1.08;padding:6px 7px;}
.vblock.overlap .schedule-title-text{font-size:.66rem;}
.vblock.compact b,.vblock.compact .schedule-title-text{font-size:.62rem;}
.weekly-action-popover{pointer-events:auto;}
.weekly-action-popover .wap-title{word-break:break-word;}
@media(max-width:980px){.vertical-schedule{grid-template-columns:54px repeat(7,minmax(190px,1fr))!important}.day-col{min-width:190px}}


/* Weekly zoom controls */
:root{--weekly-zoom:1}
.weekly-board-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.weekly-scale-panel{display:flex;align-items:center;gap:28px;min-width:0;width:max-content;max-width:100%;border:1px solid var(--soft);background:var(--paper2);padding:8px 12px;flex-wrap:wrap}
.weekly-scale-row{display:flex;align-items:center;gap:12px;min-width:260px}
.weekly-scale-row span{font-size:.68rem;font-weight:1000;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.weekly-zoom-slider,.weekly-width-slider{width:clamp(150px,18vw,240px);accent-color:var(--ink);cursor:pointer}
.weekly-zoom-value,.weekly-width-value{display:none}
.vertical-schedule.zoomable .time-col,.vertical-schedule.zoomable .day-col{min-height:calc(720px * var(--weekly-zoom))!important}
.vertical-schedule.zoomable{grid-template-columns:62px repeat(7,minmax(calc(220px * var(--weekly-zoom)),1fr))!important}
.vertical-schedule.zoomable .day-col{min-width:calc(220px * var(--weekly-zoom))!important}
#weeklyBoard.vertical-schedule.zoomable{grid-template-columns:62px repeat(7,minmax(calc(180px * var(--weekly-zoom)),1fr))!important}
#weeklyBoard.vertical-schedule.zoomable .day-col{min-width:calc(180px * var(--weekly-zoom))!important}
@media(max-width:980px){.vertical-schedule.zoomable{grid-template-columns:54px repeat(7,minmax(calc(190px * var(--weekly-zoom)),1fr))!important}.vertical-schedule.zoomable .day-col{min-width:calc(190px * var(--weekly-zoom))!important}.weekly-board-toolbar{display:grid}.weekly-scale-panel{justify-self:start}}
/* Safe weekly width control: does not touch date/week rendering logic */
:root{--weekly-day-width:160px}
.vertical-schedule.zoomable{grid-template-columns:62px repeat(7,minmax(var(--weekly-day-width),1fr))!important}
.vertical-schedule.zoomable .day-col{min-width:var(--weekly-day-width)!important}
#weeklyBoard.vertical-schedule.zoomable{grid-template-columns:62px repeat(7,minmax(calc(var(--weekly-day-width) * .86),1fr))!important}
#weeklyBoard.vertical-schedule.zoomable .day-col{min-width:calc(var(--weekly-day-width) * .86)!important}
@media(max-width:980px){:root{--weekly-day-width:150px}.weekly-scale-panel{width:100%;gap:14px}.weekly-scale-row{min-width:0;flex:1 1 220px}.weekly-zoom-slider,.weekly-width-slider{width:100%}}
/* Weekly width refinement: column width can change without stretching event cards too much */
.vblock{max-width:210px!important}
.vblock.overlap{max-width:155px!important}
.vblock.compact{max-width:145px!important}




/* Hub direct dashboard */
.hub-direct-grid{display:block;border:0;background:transparent;box-shadow:none;overflow:visible}
.hub-chart-grid{display:none}
.hub-command-panel{position:relative;overflow:hidden;border:1px solid var(--soft);background:radial-gradient(circle at 14% 0%,rgba(239,68,68,.13),transparent 32%),radial-gradient(circle at 86% 0%,rgba(124,58,237,.16),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.84),rgba(241,245,249,.58));box-shadow:0 22px 70px rgba(15,23,42,.10);padding:22px;min-height:260px}
.hub-command-panel::before{content:none}
.hub-command-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px;position:relative;z-index:1}
.hub-command-title{display:grid;gap:8px}.hub-command-title b{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.hub-command-title span{font-size:2.35rem;letter-spacing:-.035em;font-weight:1000;color:var(--ink);line-height:1.02}.hub-command-title small{font-size:.82rem;font-weight:850;color:var(--muted);line-height:1.35}
.hub-quiet-chip{border:1px solid rgba(15,23,42,.14);background:rgba(255,255,255,.74);padding:10px 14px;font-size:.82rem;font-weight:950;border-radius:999px;letter-spacing:.04em;cursor:pointer;color:var(--muted);box-shadow:0 10px 28px rgba(15,23,42,.08)}
.hub-quiet-chip.on{background:linear-gradient(135deg,rgba(124,58,237,.92),rgba(168,85,247,.74));color:white;border-color:rgba(124,58,237,.32);box-shadow:0 18px 45px rgba(124,58,237,.26)}
.hub-signal-map{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:14px;position:relative;z-index:1}
.hub-node{appearance:none;border:1px solid rgba(148,163,184,.34);background:rgba(255,255,255,.68);padding:16px;text-align:left;cursor:pointer;min-height:118px;display:grid;align-content:space-between;gap:14px;box-shadow:0 16px 38px rgba(15,23,42,.06);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease;color:var(--ink)}
.hub-node:hover{transform:translateY(-2px);border-color:rgba(15,23,42,.28);box-shadow:0 22px 55px rgba(15,23,42,.10);background:rgba(255,255,255,.86)}
.hub-node .node-kicker{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.7rem;font-weight:950;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;line-height:1.25}.hub-node .node-kicker i{font-style:normal;font-size:1rem;letter-spacing:0}.hub-node .node-value{font-size:2.05rem;font-weight:1000;letter-spacing:-.035em;line-height:1.02}.hub-node .node-detail{font-size:.78rem;font-weight:850;color:var(--muted);line-height:1.32}.hub-node.money{border-left:5px solid var(--danger)}.hub-node.paid{border-left:5px solid var(--blue)}.hub-node.req{border-left:5px solid var(--danger)}.hub-node.rule{border-left:5px solid var(--c)}
.hub-pulse-wrap{margin-top:14px;position:relative;z-index:1;border:1px dashed rgba(100,116,139,.36);background:rgba(255,255,255,.42);overflow:hidden}
.hub-pulse-wrap summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;color:var(--ink)}
.hub-pulse-wrap summary::-webkit-details-marker{display:none}
.hub-pulse-summary{display:flex;align-items:center;gap:12px;min-width:0}
.hub-money-orb{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;font-weight:1000;font-size:1.05rem;border:2px solid rgba(239,68,68,.34);color:var(--danger);background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.96),rgba(254,226,226,.70));box-shadow:0 12px 26px rgba(239,68,68,.14)}
.hub-money-orb.clear{border-color:rgba(20,184,166,.38);color:var(--c);background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.96),rgba(204,251,241,.72));box-shadow:0 12px 26px rgba(20,184,166,.14)}
.hub-pulse-title{display:grid;gap:2px}.hub-pulse-title b{font-size:.86rem;font-weight:950;letter-spacing:.025em;color:var(--ink)}.hub-pulse-title span{font-size:.72rem;font-weight:850;color:var(--muted);line-height:1.25}
.hub-pulse-toggle{font-size:.78rem;font-weight:950;color:var(--muted);white-space:nowrap}.hub-pulse-wrap[open] .hub-pulse-toggle::after{content:' Hide'}.hub-pulse-wrap:not([open]) .hub-pulse-toggle::after{content:' Show'}
.hub-pulse-strip{display:grid;grid-template-columns:1.05fr 1.05fr .9fr;gap:12px;padding:0 14px 14px}
.hub-pulse{appearance:none;border:1px dashed rgba(100,116,139,.30);background:rgba(255,255,255,.52);padding:12px 14px;text-align:left;cursor:pointer;display:grid;gap:9px;color:var(--ink);transition:background .14s ease,border-color .14s ease}.hub-pulse:hover{background:rgba(255,255,255,.86);border-color:rgba(15,23,42,.34)}
.hub-pulse h3{font-size:.84rem;margin:0;font-weight:950;letter-spacing:.035em;text-transform:none;color:var(--ink);display:flex;justify-content:space-between;gap:10px;line-height:1.28}.hub-pulse h3 span{color:var(--muted)}
.hub-bars{display:grid;gap:6px}.hub-bar-row{display:grid;grid-template-columns:52px 1fr 26px;gap:8px;align-items:center;font-size:.7rem;font-weight:850;color:var(--muted);line-height:1.28}.hub-bar-track{height:8px;border:1px solid var(--soft);background:rgba(15,23,42,.04);overflow:hidden}.hub-bar-fill{height:100%;width:var(--w,0%);background:linear-gradient(90deg,var(--blue),var(--q))}.hub-bar-fill.warn{background:linear-gradient(90deg,var(--danger),#f59e0b)}.hub-bar-fill.ok{background:linear-gradient(90deg,var(--c),var(--blue))}
@media(max-width:980px){.hub-command-panel{padding:16px}.hub-command-top{display:grid}.hub-signal-map{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-pulse-strip{grid-template-columns:1fr}.hub-command-title span{font-size:2rem}.hub-node{min-height:108px}}
@media(max-width:620px){.hub-signal-map{grid-template-columns:1fr}}
.hub-preview-card{cursor:pointer}.hub-preview-card:hover{border-color:var(--line)}
.hub-mini-list{display:grid;gap:8px}.hub-mini-item{border:1px solid var(--soft);background:var(--paper2);padding:10px;font-size:.78rem;color:var(--muted);font-weight:800}.hub-mini-item b{display:block;color:var(--ink);font-size:.88rem;margin-bottom:3px}

.hub-mini-week-card{cursor:default}
.hub-mini-week-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hub-mini-week{appearance:none;border:1px solid rgba(148,163,184,.34);background:rgba(255,255,255,.58);padding:14px;text-align:left;cursor:pointer;color:var(--ink);box-shadow:0 16px 38px rgba(15,23,42,.05);transition:transform .14s ease,border-color .14s ease,background .14s ease}
.hub-mini-week:hover{transform:translateY(-2px);border-color:rgba(15,23,42,.32);background:rgba(255,255,255,.86)}
.hub-mini-week-title{font-size:.86rem;font-weight:950;letter-spacing:.04em;color:var(--ink);margin-bottom:12px;text-transform:none}
.hub-mini-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;min-height:96px}
.hub-mini-day{height:96px;border:1px solid rgba(148,163,184,.28);background:rgba(241,245,249,.58);position:relative;overflow:hidden}
.hub-mini-mark{position:absolute;left:3px;right:3px;top:calc(var(--start,0) * 1%);height:max(4px,calc(var(--dur,4) * 1%));border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--q));box-shadow:0 6px 14px rgba(37,99,235,.18)}
.hub-mini-mark.quiet{background:linear-gradient(90deg,rgba(124,58,237,.9),rgba(168,85,247,.55));box-shadow:0 6px 14px rgba(124,58,237,.18)}
@media(max-width:760px){.hub-mini-week-wrap{grid-template-columns:1fr}.hub-mini-day{height:78px}.hub-mini-calendar{min-height:78px}}
@media(max-width:980px){.hub-direct-grid{grid-template-columns:repeat(9,minmax(128px,1fr));overflow-x:auto}.hub-link-card,.hub-chart-card{min-height:116px}.hub-link-card .hub-number{font-size:1.8rem}}



/* Weekly quiet hour layer depth fix: place QH band behind the calendar grid lines */
.day-col{
  background:var(--paper2)!important;
  isolation:isolate;
}
.day-col::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(to bottom,transparent 0 12.4%,var(--soft) 12.5%,transparent 12.7% 24.9%,var(--soft) 25%,transparent 25.2% 37.4%,var(--soft) 37.5%,transparent 37.7% 49.9%,var(--soft) 50%,transparent 50.2% 62.4%,var(--soft) 62.5%,transparent 62.7% 74.9%,var(--soft) 75%,transparent 75.2% 87.4%,var(--soft) 87.5%,transparent 87.7%);
}
.day-head{z-index:12}
.quiet-band{
  z-index:1!important;
  pointer-events:auto;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.12),0 10px 24px rgba(124,58,237,.12);
}
.quiet-band:hover{
  z-index:1!important;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.22),0 12px 28px rgba(124,58,237,.16);
}
.vblock{z-index:5}


.schedule-list-table td{vertical-align:top}
.schedule-table-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(203,213,225,.65)}
.schedule-table-item:last-child{border-bottom:none}
.schedule-table-text{min-width:0;line-height:1.25}
.schedule-inline-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}
.schedule-inline-actions .btn.small{padding:6px 10px;font-size:11px;letter-spacing:.08em}
.schedule-table-item.quiet-item{border-left:3px solid rgba(124,58,237,.65);padding-left:9px;background:linear-gradient(90deg,rgba(124,58,237,.08),transparent 72%)}
@media(max-width:760px){.schedule-table-item{display:block}.schedule-inline-actions{justify-content:flex-start;margin-top:8px}}

.weekly-scale-panel-compact{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center;padding:12px 14px;margin:0 0 14px 0;}
.weekly-scale-panel-compact .weekly-scale-row{display:grid;grid-template-columns:auto minmax(140px,1fr);gap:14px;align-items:center;margin:0;}
.weekly-scale-panel-compact output{display:none!important;}
@media(max-width:760px){.weekly-scale-panel-compact{grid-template-columns:1fr;gap:10px}.weekly-scale-panel-compact .weekly-scale-row{grid-template-columns:72px 1fr}}

/* v0.9.1 hotfix 7: make repeated-delete choice modal the top clickable layer */
#scheduleDeleteChoiceBackdrop{
  z-index:2147483646!important;
  pointer-events:auto!important;
}
#scheduleDeleteChoiceBackdrop .confirm-modal,
#scheduleDeleteChoiceBackdrop button{
  pointer-events:auto!important;
}
#editScheduleBackdrop.choice-open{
  pointer-events:none!important;
}

/* v0.9.1 hotfix 8: themed Weekly delete dialog; replaces native browser confirm UX */
#scheduleDeleteChoiceBackdrop{
  background:rgba(2,6,23,.66)!important;
  backdrop-filter:blur(12px) saturate(1.1)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.1)!important;
}
#scheduleDeleteChoiceBackdrop .confirm-modal{
  width:min(720px,calc(100vw - 32px));
  border:1px solid var(--line);
  background:linear-gradient(180deg,var(--paper),var(--paper2));
  box-shadow:0 30px 90px rgba(0,0,0,.42);
  padding:28px 30px;
}
#scheduleDeleteChoiceBackdrop .confirm-modal h3{
  margin:0 0 12px;
  font-size:1.25rem;
  letter-spacing:.12em;
}
#scheduleDeleteChoiceBackdrop .confirm-modal p{
  margin:0 0 24px;
  font-size:1rem;
  line-height:1.45;
}
#scheduleDeleteChoiceBackdrop .confirm-actions{
  display:grid;
  grid-template-columns:auto 1fr 1fr;
  gap:12px;
  justify-content:stretch;
  align-items:center;
}
#scheduleDeleteChoiceBackdrop .confirm-actions .btn{
  width:100%;
  text-align:center;
  border-radius:999px;
  padding:14px 20px;
  font-size:.82rem;
  letter-spacing:.08em;
}
#scheduleDeleteChoiceBackdrop .confirm-modal.single-delete-mode .confirm-actions{
  grid-template-columns:1fr 1.35fr;
  max-width:520px;
  margin-left:auto;
}
#scheduleDeleteChoiceBackdrop .confirm-modal.single-delete-mode #scheduleDeleteSingleBtn{
  background:var(--danger);
  color:#fff;
  border-color:var(--danger);
}
@media(max-width:720px){
  #scheduleDeleteChoiceBackdrop .confirm-modal{padding:22px 18px}
  #scheduleDeleteChoiceBackdrop .confirm-actions,
  #scheduleDeleteChoiceBackdrop .confirm-modal.single-delete-mode .confirm-actions{
    grid-template-columns:1fr;
    max-width:none;
  }
}

/* v0.9.1 hotfix 9: compact Weekly delete confirmation dialog */
#scheduleDeleteChoiceBackdrop .confirm-modal{
  width:min(430px,calc(100vw - 28px))!important;
  padding:16px 18px!important;
  box-shadow:0 18px 52px rgba(0,0,0,.34)!important;
}
#scheduleDeleteChoiceBackdrop .confirm-modal h3{
  margin:0 0 7px!important;
  font-size:.92rem!important;
  letter-spacing:.08em!important;
  line-height:1.15!important;
}
#scheduleDeleteChoiceBackdrop .confirm-modal p{
  margin:0 0 14px!important;
  font-size:.78rem!important;
  line-height:1.35!important;
}
#scheduleDeleteChoiceBackdrop .confirm-actions{
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:8px!important;
}
#scheduleDeleteChoiceBackdrop .confirm-actions .btn{
  width:auto!important;
  min-width:96px!important;
  padding:9px 12px!important;
  font-size:.68rem!important;
  letter-spacing:.06em!important;
  border-radius:999px!important;
}
#scheduleDeleteChoiceBackdrop .confirm-modal.single-delete-mode .confirm-actions{
  max-width:none!important;
  margin-left:0!important;
}
#scheduleDeleteChoiceBackdrop #scheduleDeleteSeriesBtn{
  min-width:126px!important;
}
@media(max-width:520px){
  #scheduleDeleteChoiceBackdrop .confirm-modal{width:calc(100vw - 24px)!important;padding:15px!important}
  #scheduleDeleteChoiceBackdrop .confirm-actions{display:grid!important;grid-template-columns:1fr!important}
  #scheduleDeleteChoiceBackdrop .confirm-actions .btn{width:100%!important}
}

/* v0.9.1 hotfix 11: compact themed delete confirmation for Bills / Rules / Requests */
#confirmBackdrop{z-index:2147483645!important;}
#confirmBackdrop .confirm-modal.global-delete-modal{
  width:min(430px,calc(100vw - 28px));
  padding:16px 18px;
  border-radius:0;
  background:var(--bg);
  box-shadow:0 18px 44px rgba(0,0,0,.34);
}
#confirmBackdrop .confirm-modal.global-delete-modal h3{
  margin:0 0 8px;
  font-size:.9rem;
  letter-spacing:.09em;
}
#confirmBackdrop .confirm-modal.global-delete-modal p{
  margin:0 0 14px;
  font-size:.78rem;
  line-height:1.35;
}
#confirmBackdrop .confirm-modal.global-delete-modal .confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:0;
}
#confirmBackdrop .confirm-modal.global-delete-modal .confirm-actions .btn{
  width:auto!important;
  min-width:104px;
  padding:8px 12px;
  font-size:.72rem;
  text-align:center;
}
@media(max-width:720px){
  #confirmBackdrop .confirm-modal.global-delete-modal{padding:15px!important;}
  #confirmBackdrop .confirm-modal.global-delete-modal .confirm-actions{display:grid!important;grid-template-columns:1fr!important;}
  #confirmBackdrop .confirm-modal.global-delete-modal .confirm-actions .btn{width:100%!important;}
}

/* Settings advanced profile section */
.advanced-settings{margin-top:14px;border:1px solid var(--soft);background:var(--paper2);padding:0}
.advanced-settings summary{cursor:pointer;list-style:none;padding:11px 12px;font-size:.72rem;font-weight:1000;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:0}
.advanced-settings summary::-webkit-details-marker{display:none}
.advanced-settings summary:after{content:"Show";float:right;color:var(--ink)}
.advanced-settings[open] summary{border-bottom:1px solid var(--soft)}
.advanced-settings[open] summary:after{content:"Hide"}
.advanced-settings .form{padding:12px}

/* v21: Dark mode Hub readability pass */
[data-theme="dark"] .hub-command-panel{
  background:
    radial-gradient(circle at 12% 0%,rgba(56,189,248,.18),transparent 34%),
    radial-gradient(circle at 88% 0%,rgba(124,58,237,.24),transparent 36%),
    linear-gradient(135deg,rgba(15,23,42,.96),rgba(30,41,59,.92));
  border-color:rgba(226,232,240,.28);
  box-shadow:0 24px 72px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08);
}
[data-theme="dark"] .hub-command-title b,
[data-theme="dark"] .hub-node .node-kicker,
[data-theme="dark"] .hub-node .node-detail,
[data-theme="dark"] .hub-pulse-title span,
[data-theme="dark"] .hub-pulse-toggle,
[data-theme="dark"] .hub-pulse h3 span,
[data-theme="dark"] .hub-bar-row{
  color:rgba(226,232,240,.76);
}
[data-theme="dark"] .hub-command-title span,
[data-theme="dark"] .hub-command-title small,
[data-theme="dark"] .hub-node,
[data-theme="dark"] .hub-node .node-value,
[data-theme="dark"] .hub-pulse-wrap summary,
[data-theme="dark"] .hub-pulse-title b,
[data-theme="dark"] .hub-pulse h3{
  color:#f8fafc;
}
[data-theme="dark"] .hub-node{
  background:rgba(15,23,42,.78);
  border-color:rgba(226,232,240,.24);
  box-shadow:0 18px 44px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="dark"] .hub-node:hover{
  background:rgba(30,41,59,.92);
  border-color:rgba(226,232,240,.42);
  box-shadow:0 22px 58px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.10);
}
[data-theme="dark"] .hub-pulse-wrap{
  background:rgba(15,23,42,.62);
  border-color:rgba(226,232,240,.22);
}
[data-theme="dark"] .hub-money-orb{
  background:radial-gradient(circle at 35% 25%,rgba(51,65,85,.96),rgba(127,29,29,.42));
  color:#fb7185;
  border-color:rgba(251,113,133,.48);
  box-shadow:0 12px 26px rgba(0,0,0,.28);
}
[data-theme="dark"] .hub-money-orb.clear{
  background:radial-gradient(circle at 35% 25%,rgba(51,65,85,.96),rgba(20,83,45,.48));
  color:#5eead4;
  border-color:rgba(45,212,191,.56);
}
[data-theme="dark"] .hub-pulse{
  background:rgba(15,23,42,.70);
  border-color:rgba(226,232,240,.22);
  color:#f8fafc;
}
[data-theme="dark"] .hub-pulse:hover{
  background:rgba(30,41,59,.92);
  border-color:rgba(226,232,240,.38);
}
[data-theme="dark"] .hub-bar-track{
  background:rgba(2,6,23,.52);
  border-color:rgba(226,232,240,.20);
}
[data-theme="dark"] .hub-mini-week{
  background:rgba(15,23,42,.72);
  color:#f8fafc;
  border-color:rgba(226,232,240,.22);
}
[data-theme="dark"] .hub-mini-week:hover{
  background:rgba(30,41,59,.92);
  border-color:rgba(226,232,240,.38);
}
[data-theme="dark"] .hub-mini-week-title{
  color:#f8fafc;
}
[data-theme="dark"] .hub-mini-day{
  background:rgba(2,6,23,.42);
  border-color:rgba(226,232,240,.18);
}
[data-theme="dark"] .hub-quiet-chip{
  background:rgba(15,23,42,.78);
  color:#e2e8f0;
  border-color:rgba(226,232,240,.24);
  box-shadow:0 14px 34px rgba(0,0,0,.28);
}
[data-theme="dark"] .hub-quiet-chip.on{
  background:linear-gradient(135deg,rgba(124,58,237,.98),rgba(168,85,247,.82));
  color:#fff;
  border-color:rgba(216,180,254,.44);
}
[data-theme="dark"] .hub-node.money{border-left-color:#fb7185}
[data-theme="dark"] .hub-node.paid{border-left-color:#38bdf8}
[data-theme="dark"] .hub-node.req{border-left-color:#fb7185}
[data-theme="dark"] .hub-node.rule{border-left-color:#2dd4bf}
/* Notification stack v24: clean replacement for the old right-corner toast. */
.notification-stack{position:fixed;right:18px;bottom:18px;z-index:1000002;display:grid;gap:10px;width:min(360px,calc(100vw - 36px));pointer-events:none}.notification-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;border:1px solid var(--line);background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 18px 44px rgba(0,0,0,.24);padding:11px 12px;transform:translateY(12px);opacity:0;transition:transform .18s ease,opacity .18s ease;pointer-events:auto;backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25)}.notification-item.show{transform:translateY(0);opacity:1}.notification-item.leaving{transform:translateY(10px);opacity:0}.notification-icon{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:var(--soft);color:var(--ink);font-size:.72rem;font-weight:1000;line-height:1;margin-top:1px}.notification-content{min-width:0}.notification-title{font-size:.8rem;font-weight:950;line-height:1.25;overflow-wrap:anywhere}.notification-detail{margin-top:3px;font-size:.7rem;line-height:1.25;color:var(--muted);font-weight:800;overflow-wrap:anywhere}.notification-actions{display:flex;align-items:center;gap:6px}.notification-action,.notification-close{border:1px solid var(--soft);background:transparent;color:var(--ink);font:inherit;cursor:pointer}.notification-action{border-radius:999px;padding:6px 9px;font-size:.66rem;font-weight:1000;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.notification-close{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-size:1rem;line-height:1;font-weight:900;padding:0}.notification-action:hover,.notification-close:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.notification-success .notification-icon{background:rgba(34,197,94,.14);color:#16a34a}.notification-error .notification-icon{background:rgba(239,68,68,.14);color:var(--danger)}.notification-warning .notification-icon{background:rgba(245,158,11,.16);color:#d97706}.notification-info .notification-icon{background:rgba(56,189,248,.14);color:var(--blue)}[data-theme="dark"] .notification-item{background:rgba(15,23,42,.94);border-color:rgba(255,255,255,.18);box-shadow:0 20px 50px rgba(0,0,0,.55)}[data-theme="dark"] .notification-action,[data-theme="dark"] .notification-close{border-color:rgba(255,255,255,.22);color:var(--ink)}[data-theme="dark"] .notification-action:hover,[data-theme="dark"] .notification-close:hover{background:#f8fafc;color:#0f172a;border-color:#f8fafc}@media(max-width:980px){.notification-stack{left:12px;right:12px;bottom:12px;width:auto}.notification-item{grid-template-columns:auto 1fr;gap:9px}.notification-actions{grid-column:1/-1;justify-content:flex-end}.notification-action{flex:0 0 auto}}

/* v0.9.3 independent site alerts */
.message-item.site-alert{cursor:default;border-left:5px solid var(--blue)}
.message-item.site-alert.warning{border-left-color:#f59e0b}
.message-item.site-alert.error,.message-item.site-alert.critical{border-left-color:var(--danger)}
.message-item.site-alert.success{border-left-color:#22c55e}
[data-theme="dark"] .message-item:hover{background:rgba(30,41,59,.86);border-color:rgba(255,255,255,.24)}
[data-theme="dark"] .message-item.site-alert.warning{background:rgba(245,158,11,.08)}
[data-theme="dark"] .message-item.site-alert.error,[data-theme="dark"] .message-item.site-alert.critical{background:rgba(239,68,68,.08)}
[data-theme="dark"] .message-item.site-alert.success{background:rgba(34,197,94,.08)}

/* v0.9.3 activity alerts: isolated Messages panel */
.message-section-label{margin:8px 0 4px;padding:4px 2px;font-size:.62rem;font-weight:1000;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.message-item.activity.unread{border-left:5px solid var(--blue);background:linear-gradient(90deg,rgba(56,189,248,.08),var(--paper2))}
.message-item.site-alert.error,.message-item.site-alert.critical{border-left:5px solid var(--danger)}
[data-theme="dark"] .message-item.activity.unread{background:linear-gradient(90deg,rgba(56,189,248,.14),var(--paper2))}

/* v40: authenticated user strip readability fix */
.user-strip{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
}
.user-strip>div{
  min-width:0;
  overflow:hidden;
}
.user-strip b,
.user-strip span{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.user-strip .logout{
  width:auto!important;
  flex:0 0 auto;
  white-space:nowrap;
  padding:8px 12px;
}
@media(max-width:980px){.user-strip{display:none!important}}
