:root{--ivory:#faf6ee;--paper:#fffdf8;--ink:#1c1a15;--ink-soft:#4c463a;--ink-faint:#8a8272;--gold:#b08a3e;--gold-deep:#8f6d2a;--gold-wash:#f3ead6;--line:#e4dcc9;--green:#3e6b45;--green-wash:#e7efe6;--red:#9c3b2e;--red-wash:#f6e6e1;--amber-wash:#f6efdd;--shadow:0 1px 2px #1c1a150d, 0 8px 28px -12px #1c1a1524;--serif:"Fraunces", Georgia, serif;--sans:"Archivo", "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--ivory);color:var(--ink);font-family:var(--sans);background-image:radial-gradient(circle at 12% -4%,#b08a3e12,#0000 42%);min-height:100vh;font-size:15px;line-height:1.55}::selection{background:var(--gold-wash)}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1}a{color:var(--gold-deep)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--ink)}.shell{max-width:1080px;margin:0 auto;padding:0 28px 80px}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:28px;margin-bottom:34px;padding:22px 0 18px;display:flex}.brand{align-items:center;gap:16px;display:flex}.adlogo{width:auto;height:40px;display:block}.adlogo.login{height:48px;margin-bottom:18px}.brand .wordmark{border-left:1px solid var(--line);padding-left:16px}.wordmark{flex-direction:column;line-height:1;display:flex}.wordmark b{font-family:var(--serif);letter-spacing:.01em;font-size:1.35rem;font-weight:700}.wordmark b em{color:var(--gold-deep);font-style:normal}.wordmark span{text-transform:uppercase;letter-spacing:.22em;color:var(--ink-faint);margin-top:5px;font-size:.62rem}nav.mainnav{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}nav.mainnav a{color:var(--ink-soft);border:1px solid #0000;border-radius:999px;padding:7px 13px;font-size:.88rem;text-decoration:none;transition:all .15s}nav.mainnav a:hover{color:var(--ink);background:var(--gold-wash)}nav.mainnav a.active{background:var(--ink);color:var(--ivory);border-color:var(--ink)}nav.mainnav a .dot{background:var(--gold);color:#fff;text-align:center;border-radius:999px;min-width:17px;margin-left:6px;padding:0 4px;font-size:.68rem;line-height:17px;display:inline-block}.userchip{color:var(--ink-soft);align-items:center;gap:12px;font-size:.85rem;display:flex}.userchip button{border:1px solid var(--line);color:var(--ink-soft);background:0 0;border-radius:999px;padding:5px 13px;font-size:.8rem}.userchip button:hover{border-color:var(--ink);color:var(--ink)}.demoflag{background:var(--ink);color:var(--gold-wash);text-align:center;letter-spacing:.06em;padding:7px 14px;font-size:.78rem}.demoflag b{color:#fff}.pagehead{margin-bottom:26px}.pagehead .kicker{text-transform:uppercase;letter-spacing:.24em;color:var(--gold-deep);margin-bottom:8px;font-size:.68rem}.pagehead h1{letter-spacing:-.01em;font-size:2.3rem}.pagehead p.sub{color:var(--ink-soft);max-width:62ch;margin-top:8px}.card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:22px}.grid2{grid-template-columns:1fr 1fr;gap:18px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (width<=780px){.grid2,.grid3{grid-template-columns:1fr}}.statrow{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:26px;display:grid}.stat{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:16px 18px}.stat .n{font-family:var(--serif);font-size:2.2rem;font-weight:600;line-height:1}.stat .n small{color:var(--ink-faint);font-size:1rem}.stat .l{text-transform:uppercase;letter-spacing:.16em;color:var(--ink-faint);margin-top:7px;font-size:.66rem}.stat.hit{border-color:var(--gold);background:linear-gradient(160deg, var(--paper), var(--gold-wash))}.badge{text-transform:uppercase;letter-spacing:.1em;border-radius:999px;padding:2px 10px;font-size:.7rem;font-weight:600;display:inline-block}.badge.pending{background:var(--amber-wash);color:var(--gold-deep)}.badge.approved{background:var(--green-wash);color:var(--green)}.badge.rejected{background:var(--red-wash);color:var(--red)}.badge.empty{color:var(--ink-faint);border:1px dashed var(--line);background:0 0}.badge.planned{color:var(--gold-deep);border:1px solid var(--gold);background:0 0}.badge.in_progress{background:var(--amber-wash);color:var(--gold-deep);border:1px solid var(--gold)}.btn{background:var(--ink);color:var(--ivory);border:1px solid var(--ink);border-radius:999px;padding:9px 20px;font-size:.88rem;font-weight:500;transition:all .15s}.btn:hover{background:var(--gold-deep);border-color:var(--gold-deep)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover{background:var(--gold-wash);color:var(--ink)}.btn.small{padding:5px 14px;font-size:.8rem}.btn.approve{background:var(--green);border-color:var(--green)}.btn.approve:hover{filter:brightness(1.15)}.btn.reject{color:var(--red);border-color:var(--red-wash);background:0 0}.btn.reject:hover{background:var(--red-wash)}.btn:disabled{opacity:.45;cursor:not-allowed}label.field{margin-bottom:14px;display:block}label.field span{text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);margin-bottom:5px;font-size:.7rem;display:block}label.field input,label.field select,label.field textarea{border:1px solid var(--line);background:#fff;border-radius:9px;width:100%;padding:9px 12px}label.field textarea{resize:vertical;min-height:76px}label.field input:focus,label.field select:focus,label.field textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}.hint{color:var(--ink-faint);margin-top:-8px;margin-bottom:14px;font-size:.78rem}.error{background:var(--red-wash);color:var(--red);border-radius:9px;margin-bottom:14px;padding:10px 14px;font-size:.85rem}.success{background:var(--green-wash);color:var(--green);border-radius:9px;margin-bottom:14px;padding:10px 14px;font-size:.85rem}table.tbl{border-collapse:collapse;width:100%}table.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-faint);border-bottom:1px solid var(--line);padding:8px 10px;font-size:.66rem;font-weight:600}table.tbl td{border-bottom:1px solid var(--line);vertical-align:top;padding:11px 10px}table.tbl tr:last-child td{border-bottom:0}table.tbl td.num{font-family:var(--serif);font-size:1.15rem;font-weight:600}.scrollx{overflow-x:auto}.loginwrap{background:radial-gradient(circle at 80% 10%, #b08a3e1f, transparent 50%), radial-gradient(circle at 8% 90%, #b08a3e14, transparent 45%), var(--ivory);place-items:center;min-height:100vh;padding:30px;display:grid}.logincard{background:var(--paper);border:1px solid var(--line);width:min(430px,100%);box-shadow:var(--shadow);border-radius:20px;padding:44px 40px;animation:.5s both rise}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.logincard .wordmark{margin-bottom:8px}.logincard h1{margin:18px 0 6px;font-size:1.75rem}.logincard p.tag{color:var(--ink-soft);margin-bottom:26px;font-size:.9rem}.logincard p.tag em{color:var(--gold-deep);font-style:italic;font-family:var(--serif)}.rule{background:var(--gold);border-radius:2px;width:52px;height:3px}.monthblock{margin-bottom:30px}.monthblock h3{align-items:baseline;gap:12px;margin-bottom:12px;font-size:1.15rem;display:flex}.monthblock h3 small{font-family:var(--sans);color:var(--ink-faint);font-size:.75rem;font-weight:400}.weekgrid{grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:10px;display:grid}.weekcell{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:12px 14px;transition:all .15s;position:relative}.weekcell:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-1px)}.weekcell .wk{font-size:.8rem;font-weight:600}.weekcell .st{margin-top:7px}.weekcell.approved{background:linear-gradient(160deg, var(--paper), var(--green-wash))}.weekcell.pending{background:linear-gradient(160deg, var(--paper), var(--amber-wash))}.weekcell.planned,.weekcell.in_progress{border-style:dashed;border-color:var(--gold)}.weekcell.current{outline:2px solid var(--gold);outline-offset:1px}.overlay{z-index:40;background:#1c1a156b;place-items:center;padding:24px;animation:.18s both fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--paper);border-radius:16px;width:min(560px,100%);max-height:88vh;padding:28px;animation:.25s both rise;overflow-y:auto;box-shadow:0 24px 70px -20px #1c1a1573}.modal h2{margin-bottom:4px;font-size:1.4rem}.modalx{float:right;z-index:2;background:var(--paper);border:1px solid var(--line);width:34px;height:34px;color:var(--ink-soft);cursor:pointer;border-radius:50%;margin:-12px -12px 0 0;font-size:1.1rem;line-height:1;position:sticky;top:0}.modalx:hover{border-color:var(--gold);color:var(--ink)}.modal .sub{color:var(--ink-faint);margin-bottom:20px;font-size:.85rem}.modal .actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.menugroup{margin-bottom:26px}.menugroup h3{color:var(--gold-deep);margin-bottom:10px;font-size:1.05rem}.actrow{border-bottom:1px solid var(--line);align-items:flex-start;gap:16px;padding:13px 4px;display:flex}.actrow:last-child{border-bottom:0}.actrow .pts{font-family:var(--serif);color:var(--gold-deep);min-width:52px;font-size:1.5rem;font-weight:700;line-height:1.1}.actrow .pts small{font-size:.58rem;font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);display:block}.actrow .body{flex:1}.actrow .body b{font-size:.95rem}.actrow .body p{color:var(--ink-soft);margin-top:2px;font-size:.82rem}.claimitem{border-bottom:1px solid var(--line);padding:14px 0}.claimitem:last-child{border-bottom:0}.claimhead{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.claimhead b{font-size:.95rem}.claimhead .who{color:var(--gold-deep);font-size:.85rem}.claimhead .when{color:var(--ink-faint);margin-left:auto;font-size:.78rem}.claimbody{color:var(--ink-soft);white-space:pre-wrap;margin-top:6px;font-size:.87rem}.claimmeta{flex-wrap:wrap;align-items:center;gap:14px;margin-top:6px;font-size:.8rem;display:flex}.libgrid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;display:grid}.libcard{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:9px;padding:20px;transition:all .15s;display:flex}.libcard:hover{border-color:var(--gold);transform:translateY(-2px)}.libcard .cat{text-transform:uppercase;letter-spacing:.18em;color:var(--gold-deep);font-size:.64rem}.libcard h3{font-size:1.12rem}.libcard p{color:var(--ink-soft);flex:1;font-size:.85rem}.libcard .foot{color:var(--ink-faint);justify-content:space-between;align-items:center;font-size:.78rem;display:flex}.libcard a.open{font-weight:600;text-decoration:none}.libcard a.open:hover{text-decoration:underline}.lb-target{border:1px solid var(--line);background:var(--paper);border-radius:14px;align-items:center;gap:14px;margin-bottom:22px;padding:16px 20px;display:flex}.lb-target.hit{background:linear-gradient(120deg, var(--gold-wash), var(--paper));border-color:var(--gold)}.lb-target .ic{font-size:1.6rem}.lb-target b{font-family:var(--serif)}.bar{background:var(--gold-wash);border-radius:99px;height:7px;margin-top:6px;overflow:hidden}.bar i{background:var(--gold);border-radius:99px;height:100%;transition:width .5s;display:block}.rank{font-family:var(--serif);color:var(--ink-faint);width:34px;font-weight:700}tr.me td{background:var(--gold-wash)}tr.rank1 .rank{color:var(--gold-deep);font-size:1.2rem}.monthpick{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;display:flex}.monthpick select{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px}.admin-section{margin-bottom:34px}.admin-section>h2{margin-bottom:4px;font-size:1.35rem}.admin-section>p.sub{color:var(--ink-faint);margin-bottom:14px;font-size:.85rem}.review-extra{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:10px;display:flex}.review-extra label.field{width:150px;margin-bottom:0}.empty-state{text-align:center;color:var(--ink-faint);border:1px dashed var(--line);border-radius:14px;padding:44px 20px;font-size:.9rem}.empty-state .big{font-family:var(--serif);color:var(--ink-soft);margin-bottom:6px;font-size:1.3rem}.kanban{grid-template-columns:repeat(3,1fr);align-items:start;gap:14px;display:grid}@media (width<=780px){.kanban{grid-template-columns:1fr}}.kcol{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.khead{text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);justify-content:space-between;align-items:baseline;padding:2px 4px 6px;font-size:.72rem;font-weight:600;display:flex}.kcount{color:var(--ink-faint)}.taskcard{text-align:left;background:var(--ivory);border:1px solid var(--line);border-radius:10px;width:100%;padding:10px 12px;transition:all .15s}.taskcard:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-1px)}.taskcard{min-width:0;overflow:hidden}.taskcard .tt{font-size:.9rem;font-weight:600}.taskcard .tt span{overflow-wrap:anywhere;min-width:0}.taskcard .tmeta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.donecheck{border:2px solid var(--line);color:#0000;cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:19px;height:19px;margin-top:1px;font-size:.7rem;font-weight:700;transition:all .15s;display:inline-flex}.donecheck:hover{border-color:var(--green);transform:scale(1.15)}.donecheck.is-done{background:var(--green);border-color:var(--green);color:#fff;animation:.25s pop}@keyframes pop{50%{transform:scale(1.35)}}.donecheck.big{width:28px;height:28px;margin-top:0;font-size:1rem}.kadd{border:1px dashed var(--line);color:var(--ink-faint);background:0 0;border-radius:10px;padding:8px;font-size:.82rem}.kadd:hover{color:var(--gold-deep);border-color:var(--gold)}.weekcols{grid-template-columns:repeat(4,minmax(205px,1.4fr)) repeat(3,minmax(112px,.55fr));gap:8px;min-width:1160px;display:grid}.weekcols.compact{grid-template-columns:repeat(4,minmax(180px,1.4fr)) repeat(3,minmax(100px,.55fr));min-width:1025px}.weekcols.compact .kcol{gap:6px;min-height:74px;padding:8px}.weekcols.compact .taskcard{padding:7px 9px}.weekcols.compact .taskcard .tt{font-size:.82rem}.weekcols.compact .kadd{padding:4px;font-size:.75rem}.kcol-today{outline:2px solid var(--gold);outline-offset:1px}.calgrid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.caldow{text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);text-align:center;padding:4px 0;font-size:.66rem}.calcell{background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;min-height:84px;padding:6px;display:flex}.calcell.dim{opacity:.45}.calcell.today{outline:2px solid var(--gold);outline-offset:1px}.caldate{color:var(--ink-faint);pointer-events:none;font-size:.72rem;font-weight:600}.calchip{text-align:left;border:1px solid var(--line);background:var(--ivory);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:3px 7px;font-size:.72rem;overflow:hidden}.calchip.in_progress{background:var(--amber-wash);border-color:var(--gold)}.calchip.done{background:var(--green-wash);color:var(--green);text-decoration:line-through}.calchip:hover{border-color:var(--gold-deep)}footer.colophon{border-top:1px solid var(--line);color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:60px;padding-top:18px;font-size:.75rem;display:flex}.pulse{max-width:820px;margin:0 auto}.pulse-masthead{border-bottom:3px double var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;padding:8px 0 18px;display:flex}.pulse-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:8px;font-size:.72rem;font-weight:600}.pulse-masthead h1{font-family:var(--serif);margin-bottom:6px;font-size:1.9rem}.pulse-headline{color:var(--ink-soft);font-style:italic}.pulse-datepick{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;flex-direction:column;gap:6px;font-size:.75rem;display:flex}.pulse-datepick select{font:inherit;text-transform:none;letter-spacing:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:7px 10px;font-size:.9rem}.pulse-count{text-transform:none;letter-spacing:0;font-size:.72rem}.pulse-section{margin-bottom:40px}.pulse-seclabel{align-items:center;gap:12px;margin-bottom:4px;display:flex}.pulse-seclabel span{letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);white-space:nowrap;font-size:.72rem;font-weight:600}.pulse-seclabel i{border-top:1px solid var(--line);flex:1}.pulse-section h2{font-family:var(--serif);margin-bottom:4px;font-size:1.35rem}.pulse-note{color:var(--ink-faint);max-width:64ch;margin-bottom:16px;font-size:.88rem}.pulse-card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;margin-bottom:12px;padding:16px 18px}.pulse-card h3{font-family:var(--serif);margin-bottom:8px;font-size:1.05rem}.pulse-heat{vertical-align:2px;background:var(--gold-wash);color:var(--gold-deep);border-radius:999px;margin-left:8px;padding:2px 9px;font-size:.7rem;font-weight:600;display:inline-block}.pulse-heat.hot{background:var(--red-wash);color:var(--red)}.pulse-body p,.pulse-body ul{margin-bottom:8px}.pulse-body ul{padding-left:20px}.pulse-body li{margin-bottom:6px}.pulse-quote{border-left:3px solid var(--gold);color:var(--ink-faint);margin:10px 0;padding:2px 0 2px 12px;font-size:.88rem;font-style:italic}.pulse-angle{background:var(--green-wash);border-radius:8px;margin-top:10px;padding:10px 14px;font-size:.88rem}.pulse-angle b{color:var(--green)}.pulse-src{border-top:1px dashed var(--line);color:var(--ink-faint);margin-top:10px;padding-top:8px;font-size:.78rem}.pulse-fbnote{font-style:italic}.pulse-method{border-top:3px double var(--line);color:var(--ink-faint);max-width:68ch;margin-top:8px;padding-top:16px;font-size:.8rem}.hub .pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.hub .pagehead h1{margin-bottom:4px}.hub .pagehead .sub{color:var(--ink-soft);max-width:640px;font-size:.9rem}.hubtabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;display:flex}.hubtabs button{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px}.hubtabs button.active{color:var(--ink);border-bottom-color:var(--gold);font-weight:600}.hubtoolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.hubtoolbar input,.hubtoolbar select{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 10px}.hubtoolbar input{flex:1;min-width:200px}.hubcount{color:var(--ink-faint);margin-left:auto;font-size:.85rem}.familyrow{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.famchip{border:1px solid var(--line);background:var(--paper);font:inherit;cursor:pointer;color:var(--ink-soft);border-radius:999px;padding:4px 12px;font-size:.82rem}.famchip b{color:var(--ink);margin-left:4px}.famchip.on{border-color:var(--gold);background:var(--gold-wash);color:var(--ink)}.hub .tiny{color:var(--ink-faint);font-size:.78rem}.hub .tiny.warn,.hub .warn{color:var(--red)}.hub .ok{color:var(--green)}.badge.active{background:var(--green-wash);color:var(--green)}.badge.cancelling{background:var(--amber-wash);color:var(--gold-deep);border:1px solid var(--gold)}.badge.cancelled{background:var(--red-wash);color:var(--red)}.badge.paused{color:var(--ink-faint);border:1px solid var(--line);background:0 0}.badge.failed_payment{background:var(--red-wash);color:var(--red);border:1px solid var(--red)}.hubsection{margin-top:18px}.hubsectionhead{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.hubsectionhead h3{margin:0;font-size:1rem}.subrow{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.subrow:first-of-type{border-top:0}.subactions{flex-wrap:wrap;place-content:flex-start flex-end;gap:6px;display:flex}.hubnote{background:var(--gold-wash);border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:12px 14px;font-size:.88rem}.hubnote ol{margin:8px 0 0 18px}.hubnote li{margin-bottom:4px}.hubnote code{background:#0000000d;border-radius:4px;padding:1px 5px;font-size:.85em}.prepbar{background:var(--line);border-radius:3px;height:6px;margin:8px 0 10px;overflow:hidden}.prepbar i{background:var(--gold);height:100%;display:block}.prepgrid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px;display:grid}.prepitem{color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;font-size:.86rem;display:flex}.prepitem.done{color:var(--ink-faint);text-decoration:line-through}.hub details summary{cursor:pointer}.hub .cycle{color:var(--gold-deep);font-weight:600}.hub datalist{display:none}.hub .verify{color:var(--gold-deep);font-weight:600}.hub .verify a{text-decoration:underline}.hub .actodo{color:var(--red);font-weight:600}.hub .actodo a{text-decoration:underline}.firmcard{margin-bottom:16px}.seatcount{font-family:var(--serif);font-size:1.3rem;font-weight:600}.seatcount.over{color:var(--red)}.hub tr.pastseat td{opacity:.62}.firmgroup{border-bottom:2px solid var(--gold);align-items:baseline;gap:12px;margin:26px 0 10px;padding-bottom:6px;display:flex}.firmgroup h2{margin:0;font-size:1.1rem}.hub .renewline{margin-top:3px}.hub .renewline .soon{color:var(--red);font-weight:600}.hub input.amtbox{border:1px solid var(--line);width:92px;font:inherit;border-radius:6px;padding:2px 6px;font-size:.78rem}.hub input.amtbox:focus{border-color:var(--gold);outline:none}.firmgroup.ended{border-bottom-color:var(--line);margin-top:40px}.firmgroup.ended h2{color:var(--muted)}.firmsub{align-items:baseline;gap:10px;margin:18px 0 8px;display:flex}.firmsub h3{color:var(--muted);margin:0;font-size:.95rem}.hub .endedcard{opacity:.82;border-left:3px solid var(--line)}.hub .attention{border-left:4px solid var(--gold);margin:18px 0 8px}.hub .noticeform{border-bottom:1px solid var(--line);gap:8px;margin-bottom:8px;padding:10px 0 14px;display:grid}.hub .noticeform input,.hub .noticeform textarea{font:inherit;border:1px solid var(--line);border-radius:6px;width:100%;padding:7px 10px;font-size:.9rem}.hub .noticeform input[type=date]{width:auto;margin-left:6px}.hub .attnlist{margin:0;padding:0;list-style:none}.hub .attn{border-bottom:1px solid var(--line-soft,#eee6d6);grid-template-columns:118px minmax(0,1fr) auto;align-items:start;gap:14px;padding:10px 0;display:grid}.hub .attn:last-child{border-bottom:0}.hub .attnwhen{color:var(--muted);flex-direction:column;font-size:.8rem;display:flex}.hub .attnwhen b{color:var(--ink,#222);font-size:.85rem}.hub .attn.soon .attnwhen b{color:var(--gold)}.hub .attn.overdue .attnwhen b,.hub .attn.overdue .attnwhen span{color:var(--red);font-weight:600}.hub .attntitle{font-size:.92rem;font-weight:600}.hub .attn.step .attntitle{font-weight:500}.hub .attn.notice .attntitle:before{content:"📌 "}.hub .attnact{white-space:nowrap}@media (width<=700px){.hub .attn{grid-template-columns:1fr;gap:4px}}.hub .firmsummary{margin-bottom:22px}.hub table.summary th.num,.hub table.summary td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.hub table.summary td.num.warn{color:var(--red);font-weight:600}.hub table.summary .grouprow td{background:var(--sunk,#f3eee3);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-top:12px;font-size:.82rem;font-weight:600}.hub table.summary .totalrow td{border-top:2px solid var(--line);font-weight:600}.hub table.summary td.name{white-space:nowrap}.hub table.summary .soon{color:var(--red);font-weight:600}.hub .sessionpick{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px;margin-top:8px;display:grid}.hub .sessbtn{text-align:left;background:var(--surface,#fff);border:1px solid var(--line);cursor:pointer;font:inherit;border-radius:8px;padding:10px 12px}.hub .sessbtn:hover{border-color:var(--gold)}.hub .sessbtn.active{border-color:var(--gold);box-shadow:0 0 0 2px var(--accent-soft,#f2e9d5)}.hub .sessbtn .sesswhen{color:var(--muted);font-size:.78rem}.hub .sessbtn .sessname{margin:2px 0;font-size:.9rem;font-weight:600}.hub .statrow.compact .stat{padding:10px 14px}.hub .statrow.compact .stat .n{font-size:1.4rem}.hub .checkgroup{margin-top:18px}.hub .checkgroup h3{margin:0 0 2px;font-size:1rem}.hub .checkgroup .count{background:var(--gold);color:#fff;text-align:center;border-radius:11px;min-width:22px;margin-left:6px;padding:0 7px;font-size:.78rem;display:inline-block}.hub .checkgroup .hint{margin-bottom:4px}.hub .confirmpair{gap:6px;display:inline-flex}.hub .btn.danger{background:var(--red);border-color:var(--red);color:#fff}.hub .btn.ghost.danger{color:var(--red);background:0 0}.hub .ok{color:var(--ok,#4e6b45);font-weight:600}.hub .checknote{align-items:flex-start;gap:8px;margin-top:18px;display:flex}.hub .checknote textarea{font:inherit;border:1px solid var(--line);border-radius:6px;flex:1;padding:7px 10px;font-size:.88rem}.hub .prevchecks{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.hub .prevchecks h3{color:var(--muted);margin:0 0 4px;font-size:.9rem}.hub .ptbl th,.hub .ptbl td{font-size:.86rem}.hub .ptbl td.pmark{width:24px;font-size:1rem}.hub .ptbl td.name{min-width:170px}.hub .ptbl td.pstep{max-width:260px;color:var(--ink-soft)}.hub .ptbl td.pstep.overdue{color:var(--red);font-weight:600}.hub .ptbl td.pstep.ok{color:var(--green)}.hub .ptbl td.warn{color:var(--red)}.hub .ptbl tr.pcase.overdue td.pmark{background:var(--red-wash)}.hub .pbtns{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.hub .pdetail td{background:var(--sunk,#f7f3ea)}.hub .plog{margin:0;padding:0;list-style:none}.hub .plog li{border-bottom:1px dashed var(--line-soft,#eee6d6);padding:3px 0;font-size:.84rem}.hub .plog li:last-child{border-bottom:0}.hub .btn.okbtn{border-color:var(--green);color:var(--green)}.hub .payments .grid2 input,.hub .payments .grid2 select{width:100%}.hub .ptbl td.pact{min-width:190px}.hub .pbtns .btn.small{padding:3px 8px}.hub .cancelcard{border:1px solid var(--line);background:var(--paper);border-radius:10px;margin-bottom:12px;padding:14px 16px}.hub .cancelcard.past{border-left:4px solid var(--red)}.hub .cancelbody{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.hub .steplist{margin:0;padding:0;list-style:none}.hub .steplist li{border-bottom:1px dashed var(--line-soft,#eee6d6);padding:5px 0;font-size:.86rem}.hub .steplist li:last-child{border-bottom:0}.hub .steplist label{cursor:pointer}.hub .btn.danger{border-color:var(--red);color:var(--red)}.hub .stripbox{background:var(--sunk,#f7f3ea);border-radius:8px;margin-top:8px;padding:10px 12px}.hub .stripperson{border-bottom:1px dashed var(--line-soft,#eee6d6);padding:6px 0}.hub .stripperson:last-child{border-bottom:0}.hub .stripsession{margin:4px 0 4px 14px}.hub td.rownum,.hub th.rownum{text-align:right;width:34px;color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-right:10px;font-size:.8rem}
