
:root{--ink:#1E2A40;--ink2:#56627A;--paper:#F3F5F8;--surf:#FFFFFF;--line:#DCE2EA;--soft:#EBEFF5;--acc:#F08A00;--accInk:#FFFFFF;--accSoft:#FFF1DC;--maroon:#7B1020;--maroon2:#9A1B2E;
--green:#1E9152;--greenSoft:#E2F4EA;--red:#CF3D3D;--redSoft:#FBE6E6;--amber:#B57A00;--amberSoft:#FBF0D4;--blue:#2F62C9;--blueSoft:#E3ECFB;
color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#E6EAF2;--ink2:#9AA6BC;--paper:#12171F;--surf:#1A212C;--line:#2C3646;--soft:#222B38;--acc:#FF9E1F;--accInk:#1A1205;--accSoft:#3A2A10;
--green:#4CC383;--greenSoft:#163526;--red:#FF7676;--redSoft:#3D1C1E;--amber:#F0B640;--amberSoft:#3A2E12;--blue:#7EA6FF;--blueSoft:#1D2A44;color-scheme:dark}}
:root[data-theme="dark"]{--ink:#E6EAF2;--ink2:#9AA6BC;--paper:#12171F;--surf:#1A212C;--line:#2C3646;--soft:#222B38;--acc:#FF9E1F;--accInk:#1A1205;--accSoft:#3A2A10;
--green:#4CC383;--greenSoft:#163526;--red:#FF7676;--redSoft:#3D1C1E;--amber:#F0B640;--amberSoft:#3A2E12;--blue:#7EA6FF;--blueSoft:#1D2A44;color-scheme:dark}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 56px)}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.45 Figtree,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--ink)}
button,input,select{font:inherit;color:inherit}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--maroon);color:#fff;display:flex;align-items:center;gap:8px;padding:8px 10px}
body::before{background:var(--maroon)!important}
.top .ham{background:none;border:0;color:#fff;font-size:22px;width:38px;height:38px;border-radius:8px;cursor:pointer}
.top .ttl{flex:1;min-width:0;line-height:1.15}.top .ttl b{display:block;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top .ttl small{opacity:.8;font-size:11.5px}
.tb{background:rgba(255,255,255,.14);border:0;color:#fff;border-radius:10px;height:38px;min-width:40px;padding:0 9px;cursor:pointer;font-size:16px}.tb.hi{font-weight:700;font-size:15px}
.tb:hover,.top .ham:hover{background:rgba(255,255,255,.24)}
.wrapM{max-width:1150px;margin:0 auto;padding:14px 12px 96px}
#drawer{position:fixed;top:0;bottom:0;left:0;width:290px;max-width:86vw;background:var(--surf);z-index:50;transform:translateX(-105%);transition:transform .2s;padding:calc(env(safe-area-inset-top,0px) + 12px) 10px 24px;overflow:auto;border-right:1px solid var(--line)}
#drawer.open{transform:none}
#scrim{position:fixed;inset:0;background:rgba(10,14,20,.45);z-index:40;display:none}#scrim.open{display:block}
.dh{display:flex;align-items:center;gap:10px;padding:4px 6px 12px;border-bottom:1px solid var(--line);margin-bottom:10px}.dh img{width:56px}.dh b{display:block;font-size:19px}.dh small{color:var(--ink2)}
.msearch{margin:0 0 6px}
#drawer h3{font-size:12px;color:var(--ink2);margin:16px 10px 4px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
#drawer .mi{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:9px;cursor:pointer;font-weight:700;font-size:15.5px}
#drawer .mi .ic{width:24px;text-align:center;font-size:19px}
#drawer .mi:hover{background:var(--soft)}#drawer .mi.on{background:var(--accSoft);box-shadow:inset 3px 0 0 var(--maroon)}
.drTag{display:block;width:120px;margin:22px auto 0}
.who{margin:14px 10px 0;font-size:12.5px;color:var(--ink2)}
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:15;background:var(--surf);border-top:1px solid var(--line);display:flex;gap:6px;overflow-x:auto;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))}
.bnav button{flex:1 1 0;min-width:52px;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11.5px;font-weight:700;color:var(--ink2);cursor:pointer;padding:0}
.bnav .bi{width:46px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:19px}
.bnav button.on{color:var(--maroon)}.bnav button.on .bi{outline:2px solid var(--maroon)}
.c1{background:#FFE9D6}.c2{background:#FFF3C9}.c3{background:#ECE4FB}.c4{background:#E1ECFB}.c5{background:#DDF4E6}.c6{background:#F5E7DA}
:root[data-theme="dark"] .bnav .bi{filter:brightness(.55)}
.phead{display:flex;align-items:center;gap:10px;margin:2px 0 12px;flex-wrap:wrap}
.phead h1{font-size:20px;margin:0;flex:1;min-width:120px}
.back{background:var(--surf);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer;font-weight:600}
.hero{background:var(--maroon);color:#fff;border-radius:14px;padding:16px;margin-bottom:14px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-40px;top:-40px;width:130px;height:130px;border-radius:50%;border:18px solid var(--acc);opacity:.35}
.hero .lbl{display:block;font-size:13px;opacity:.8}.hero .big{font-size:32px;font-weight:800;letter-spacing:-.5px;position:relative;z-index:1}
.hero .sub{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;opacity:.9}
.hero .btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}.hero .btn.primary{background:var(--acc);border-color:var(--acc);color:var(--accInk)}
.hero .btn:disabled{opacity:.4}
.hero.slim .big{font-size:28px}.amberT{color:#FFC861}
:root[data-theme="dark"] .hero{background:#0B0F15;border:1px solid var(--line)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hero{background:#0B0F15;border:1px solid var(--line)}}
.card{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}
.ch{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}.ch h2{font-size:16px;margin:0}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tiles.four{grid-template-columns:repeat(4,1fr);margin-bottom:12px}
@media(min-width:700px){.tiles{grid-template-columns:repeat(6,1fr)}}
.tile{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surf)}.tile b{display:block;font-size:20px}.tile span{font-size:12px;color:var(--ink2)}
.tile.p{border-left:4px solid var(--green)}.tile.h{border-left:4px solid var(--amber)}.tile.a{border-left:4px solid var(--red)}.tile.n{border-left:4px solid var(--ink2)}
.row{display:flex;align-items:center}.gap{gap:8px}.wrap{flex-wrap:wrap}.row input,.row select{flex:1;min-width:0}
.btn{border:1px solid var(--line);background:var(--surf);border-radius:8px;padding:8px 13px;cursor:pointer;font-weight:600;white-space:nowrap}
.btn:hover{background:var(--soft)}.btn.primary{background:var(--acc);border-color:var(--acc);color:var(--accInk)}.btn.primary:hover{filter:brightness(.95)}
.btn.danger{color:var(--red);border-color:var(--red)}.btn.sm{padding:5px 10px;font-size:13.5px}.btn.xs{padding:3px 7px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}
.link{background:none;border:0;color:var(--blue);cursor:pointer;font-weight:600;padding:2px}.link.red{color:var(--red)}
input,select{border:1px solid var(--line);background:var(--surf);border-radius:8px;padding:8px 10px;width:100%;min-height:38px}
input:focus,select:focus,button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
label{display:block;font-size:13px;color:var(--ink2);font-weight:600;margin-bottom:10px}label input,label select{margin-top:4px;color:var(--ink);font-weight:400}
label.inl{display:flex;align-items:center;gap:8px;margin:0}label.chk{display:flex;gap:8px;align-items:center;color:var(--ink)}label.chk input{width:auto;min-height:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.form{max-width:560px}
.stepper{display:inline-flex;align-items:center;gap:4px;background:var(--surf);border:1px solid var(--line);border-radius:9px;padding:2px;margin-bottom:10px}
.stepper span{min-width:96px;text-align:center;font-weight:700}.stepper.wide{display:flex;margin-bottom:12px}.stepper.wide input{border:0;text-align:center;font-weight:700}
.icon{background:none;border:0;width:34px;height:34px;border-radius:7px;cursor:pointer;font-size:20px;line-height:1}.icon:hover{background:var(--soft)}
.ch .stepper{margin:0}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surf);margin-bottom:10px}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:middle}
thead th{background:var(--soft);font-weight:700;font-size:12.5px;white-space:nowrap;position:sticky;top:0}
tr>*:first-child{border-left:0}tr>*:last-child{border-right:0}thead tr:first-child>*{border-top:0}tbody tr:last-child>*,tfoot tr:last-child>*{border-bottom:0}
tfoot td{font-weight:700;background:var(--soft)}
td.r,th.r{text-align:right}.nw{white-space:nowrap}
table.click tbody tr,tr.clickrow{cursor:pointer}table.click tbody tr:hover,tr.clickrow:hover{background:var(--soft)}
td small{display:block}
.due,.adv,.nil{font-weight:700;display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.15}.due{color:var(--red)}.adv{color:var(--amber)}.nil{color:var(--green)}
.due small,.adv small,.nil small{font-weight:500;font-size:11px;color:var(--ink2)}
.pill{display:inline-block;min-width:30px;text-align:center;border-radius:6px;padding:1px 6px;font-weight:700;font-size:12px}
.pill.P{background:var(--greenSoft);color:var(--green)}.pill.HD{background:var(--amberSoft);color:var(--amber)}.pill.AB{background:var(--redSoft);color:var(--red)}
.tag{display:inline-block;font-size:11px;font-weight:600;border-radius:5px;padding:1px 6px;background:var(--soft);color:var(--ink2);margin:3px 4px 0 0}
.tag.face{background:var(--greenSoft);color:var(--green)}.tag.sup{background:var(--blueSoft);color:var(--blue)}.tag.adm{background:var(--accSoft);color:var(--amber)}
.tag.night{background:#2A2F5A;color:#D7DBFF}.tag.adv2{background:var(--amberSoft);color:var(--amber)}.tag.sal{background:var(--greenSoft);color:var(--green)}
.att{display:flex;flex-direction:column;gap:8px}
.arow{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.an{flex:1;min-width:160px}.an b{display:block}.an small{color:var(--ink2);display:block}
.ab{display:flex;gap:6px}
.st{width:46px;height:38px;border-radius:8px;border:1px solid var(--line);background:var(--soft);font-weight:700;cursor:pointer;color:var(--ink2)}
.st.P.on{background:var(--green);border-color:var(--green);color:#fff}.st.HD.on{background:var(--amber);border-color:var(--amber);color:#fff}.st.AB.on{background:var(--red);border-color:var(--red);color:#fff}
.st.more{width:38px;background:var(--surf)}
.banner{background:var(--accSoft);border:1px solid var(--acc);border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:13.5px}.banner.lock{background:var(--blueSoft);border-color:var(--blue)}
.list .li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.list .li:last-child{border-bottom:0}
.li small{display:block;color:var(--ink2);font-size:12px}
.kv{display:grid;grid-template-columns:minmax(110px,40%) 1fr;gap:6px 12px;font-size:14px;margin:6px 0 10px}.kv span{color:var(--ink2)}.kv b{font-weight:600}
details{border-top:1px solid var(--line);padding:6px 0}details summary{cursor:pointer;font-weight:700;padding:6px 0;display:flex;justify-content:space-between;list-style:none}
details summary::-webkit-details-marker{display:none}details summary::before{content:"▸";margin-right:6px;color:var(--ink2)}details[open] summary::before{content:"▾"}
details summary span:first-child{flex:1}
.empty{color:var(--ink2);text-align:center;padding:14px}.note{color:var(--ink2);font-size:13px;margin:6px 0}.muted{color:var(--ink2)}
.red{color:var(--red)}.green{color:var(--green)}.amber{color:var(--amber);font-weight:600}
.filters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:12px;padding-bottom:2px}.tabs button{border:1px solid var(--line);background:var(--surf);border-radius:20px;padding:6px 13px;cursor:pointer;white-space:nowrap;font-weight:600}
.tabs button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
table.bulk input{min-height:34px;padding:5px 8px;min-width:90px}.cell{display:flex;gap:4px;align-items:center}
table.grid{font-size:12px}table.grid th,table.grid td{padding:3px 4px;text-align:center;min-width:26px}table.grid th small{display:block;font-weight:500;color:var(--ink2)}
table.grid .sticky{position:sticky;left:0;background:var(--surf);text-align:left;min-width:120px;z-index:1}table.grid thead .sticky{background:var(--soft);z-index:2}
table.grid th.off,table.grid td.off{background:var(--soft)}td.g{cursor:pointer;font-weight:700}td.g.P{color:var(--green)}td.g.HD{color:var(--amber);background:var(--amberSoft)}td.g.AB{color:var(--red);background:var(--redSoft)}
#modal{position:fixed;inset:0;z-index:60;display:none;align-items:flex-end;justify-content:center;background:rgba(10,14,20,.5)}#modal.open{display:flex}
.mbox{background:var(--surf);width:100%;max-width:520px;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));max-height:90vh;overflow:auto}
@media(min-width:600px){#modal{align-items:center}.mbox{border-radius:14px}}
.mbox h2{margin:0 0 12px;font-size:17px}.mact{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,30px);opacity:0;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:10px;z-index:70;transition:.2s;max-width:90vw;font-weight:600;pointer-events:none}
#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:520px){.filters{grid-template-columns:1fr 1fr}.hero .big{font-size:28px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

.hero .mascot{position:absolute;right:4px;bottom:0;height:104px;z-index:0;pointer-events:none}.hero>*:not(.mascot){position:relative;z-index:1}.hero.withM .sub{padding-right:84px}.hero.withM .row{flex-wrap:wrap;padding-right:84px}
.tile{border-left-width:5px!important}
.gtool{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 8px}.gtool h2{font-size:17px;margin:0;flex:1;min-width:120px}
.cnt{display:inline-block;background:var(--accSoft);border:1px solid var(--acc);color:var(--amber);border-radius:20px;padding:2px 12px;font-weight:700;font-size:13px}
th .thw{display:flex;align-items:center;gap:6px;justify-content:space-between}th .srt{cursor:pointer;user-select:none;text-transform:uppercase;letter-spacing:.5px}
th .flt{background:none;border:0;cursor:pointer;color:var(--ink2);font-size:12px;padding:2px 4px;border-radius:5px}th .flt.on{background:var(--acc);color:#fff}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.chip{background:var(--soft);border-radius:14px;padding:2px 10px;font-size:12.5px}
.thumbs{display:flex;gap:6px;margin-top:5px}.thumbs img{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:pointer}
.tag.far{background:var(--redSoft);color:var(--red)}.tag.off{background:var(--blueSoft);color:var(--blue)}.tag.photo{background:var(--amberSoft);color:var(--amber)}
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(160deg,var(--maroon),#3a0710)}
.lbox{background:var(--surf);border-radius:18px;padding:22px;width:100%;max-width:380px;text-align:center;position:relative}
.lbox label{text-align:left}.llogo{height:54px}.lmasc{height:110px;display:block;margin:-80px auto 4px}.lbox h1{font-size:20px;margin:8px 0 0}.lbox .muted{margin:0 0 14px}
.btn.wide{width:100%;padding:12px}
#busy{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.15)}#busy.on{display:flex}
.spin{width:44px;height:44px;border:5px solid rgba(123,16,32,.25);border-top-color:var(--maroon);border-radius:50%;animation:sp 1s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
.photoBig{max-width:100%;border-radius:10px;display:block;margin:0 auto}
@media(min-width:1000px){.bnav{display:none}.wrapM{padding-bottom:40px}}

[hidden]{display:none!important}
#toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
@media(min-width:1000px){#toast{bottom:20px}}
.av{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:var(--soft);display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:var(--maroon);border:1px solid var(--line)}
.av.sm{width:30px;height:30px;font-size:13px}.av.big{width:84px;height:84px;font-size:30px}
.nmc{display:inline-flex;align-items:center;gap:8px}
.arow .av{align-self:flex-start}
.an .dn{color:var(--maroon);font-weight:600}
.pcard{display:flex;gap:14px;align-items:center}.pcard h2{margin:0;font-size:19px}.pcard p{margin:2px 0}
#drawer .mi .badge{margin-left:auto;background:var(--red);color:#fff;border-radius:12px;padding:0 8px;font-size:12px}
.bnav .bi{position:relative}.bnav .dot{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;font-style:normal;font-size:10.5px;border-radius:10px;padding:0 5px;line-height:16px}
.reqcard{border-color:var(--acc);background:var(--accSoft)}
.req .rq{display:flex;gap:10px;align-items:center}.req p{margin:8px 0}
.dsel{width:auto;min-width:150px}

.btn.wa{background:#25D366;border-color:#25D366;color:#fff}.btn.wa:hover{filter:brightness(.95)}
.angrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:14px}
.card.an{margin:0}.card.an h3{margin:0 0 8px;font-size:15px}.card.an ol{margin:0;padding-left:20px}.card.an li{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px dashed var(--line)}.card.an li:last-child{border:0}
.card h3{margin:0 0 10px;font-size:15px}
.bars{display:flex;gap:6px;align-items:flex-end;height:170px;overflow-x:auto;padding-top:8px}
.bar{flex:1 0 34px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px;font-size:11px}
.bar .bv{width:70%;background:var(--maroon);border-radius:5px 5px 0 0;min-height:2px}.bar b{font-size:11px}.bar small{color:var(--ink2);white-space:nowrap}
