:root{--bg:#f8f5f0;--surface:#fff;--sunk:#f2ede5;--line:#e5dbcf;--ink:#2d2b2a;--soft:#6b625a;--gold:#c89b3c;--gold-ink:#8a6410;--gold-wash:#f3e8d2;--good:#2f7d4f;--good-wash:#e2f1e7;--warn:#a8590f;--warn-wash:#fbeadb;--bad:#b3342c;--bad-wash:#fae3e1;--display:"Playfair Display", Georgia, serif;--body:"Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1f1c19;--surface:#2a2622;--sunk:#24201c;--line:#40382f;--ink:#f1ebe2;--soft:#b5aa9c;--gold:#d4aa52;--gold-ink:#e3c077;--gold-wash:#41341b;--good:#7fcb9c;--good-wash:#203a2a;--warn:#eeb077;--warn-wash:#46301c;--bad:#f19b93;--bad-wash:#4a2523;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1f1c19;--surface:#2a2622;--sunk:#24201c;--line:#40382f;--ink:#f1ebe2;--soft:#b5aa9c;--gold:#d4aa52;--gold-ink:#e3c077;--gold-wash:#41341b;--good:#7fcb9c;--good-wash:#203a2a;--warn:#eeb077;--warn-wash:#46301c;--bad:#f19b93;--bad-wash:#4a2523;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--body);margin:0}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;font-weight:700}h1{font-size:1.7rem;line-height:1.2}h2{font-size:1.25rem}h3{text-transform:uppercase;letter-spacing:.07em;color:var(--soft);font-size:.78rem;font-weight:700}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.muted{color:var(--soft)}.small{font-size:.84rem}.num{font-variant-numeric:tabular-nums}.top{top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line);position:sticky}.top-in{max-width:1180px;padding:8px max(16px, env(safe-area-inset-right,0px)) 8px max(16px, env(safe-area-inset-left,0px));flex-wrap:wrap;align-items:center;gap:12px;margin:auto;display:flex}.brand{font-family:var(--display);align-items:center;gap:8px;margin-right:auto;font-size:1.08rem;font-weight:700;display:flex}.brand img{border-radius:50%;width:30px;height:30px}.tabs{gap:2px;display:flex}.tab{cursor:pointer;color:var(--soft);background:0 0;border:0;border-radius:8px;padding:7px 11px;font-size:.9rem;font-weight:600}.tab[aria-current=page]{color:var(--gold-ink);background:var(--gold-wash)}main{max-width:1180px;padding-block:18px 90px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));gap:18px;margin:auto;display:grid}.narrow{gap:18px;width:100%;min-width:0;max-width:720px;margin-inline:auto;display:grid}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:9px;padding:8px 14px;font-size:.9rem;font-weight:600}.btn:hover{border-color:var(--gold)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--gold);border-color:var(--gold);color:#2d2b2a}.btn.danger{color:var(--bad)}.btn.sm{padding:4px 9px;font-size:.8rem}.btn.link{color:var(--gold-ink);background:0 0;border:0;padding:0;text-decoration:underline}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.spread>*{min-width:0}.band{border-radius:10px;padding:10px 14px;font-size:.9rem}.band.gold{background:var(--gold-wash)}.band.warn{background:var(--warn-wash);color:var(--warn)}.band.bad{background:var(--bad-wash);color:var(--bad)}.demo-bar{background:var(--gold-wash);font-size:.82rem}.demo-bar>div{max-width:1180px;padding:6px max(16px, env(safe-area-inset-right,0px)) 6px max(16px, env(safe-area-inset-left,0px));flex-wrap:wrap;align-items:center;gap:10px;margin:auto;display:flex}.demo-bar select{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:1px 4px}.pill{white-space:nowrap;background:var(--sunk);color:var(--soft);border-radius:99px;padding:1px 8px;font-size:.75rem;font-weight:700;display:inline-block}.pill.ok{background:var(--good-wash);color:var(--good)}.pill.low{background:var(--warn-wash);color:var(--warn)}.pill.out{background:var(--bad-wash);color:var(--bad)}.cal-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.seg{border:1px solid var(--line);background:var(--surface);border-radius:9px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--soft);background:0 0;border:0;padding:8px 12px;font-size:.86rem;font-weight:600}.seg button[aria-pressed=true]{background:var(--gold-wash);color:var(--gold-ink)}.due-btn{text-align:left;cursor:pointer;border:0;width:100%;font-weight:700}.tg{background:var(--surface);border:1px solid var(--line);border-radius:12px}.tg-head{top:env(safe-area-inset-top,0px);z-index:3;background:var(--surface);border-bottom:1px solid var(--line);border-radius:12px 12px 0 0;display:grid;position:sticky}.tg-head button{cursor:pointer;background:0 0;border:0;justify-items:center;gap:1px;min-width:0;padding:6px 0;display:grid}.tg-head small{color:var(--soft);font-size:.72rem}.tg-head b{border-radius:50%;width:28px;height:28px;font-size:.92rem;line-height:28px}.tg-head .today b{background:var(--gold);color:#2d2b2a}.tg-body{display:grid}.tg-hour{color:var(--soft);text-align:right;padding-right:5px;font-size:.68rem;transform:translateY(-1px)}.tg-col{border-left:1px solid var(--line);cursor:copy;background-image:linear-gradient(to bottom, var(--line) 1px, transparent 1px);min-width:0;position:relative}.block{z-index:1;background:var(--gold-wash);color:var(--ink);text-align:left;cursor:pointer;border:0;border-radius:5px;margin:0 1px;padding:2px 4px;font-size:.74rem;line-height:1.2;display:block;position:absolute;overflow:hidden}.block b,.block span{white-space:nowrap;text-overflow:clip;display:block;overflow:hidden}.block span{color:var(--soft);font-size:.68rem}.block.late{background:var(--warn-wash);color:var(--warn)}.block.done{background:var(--sunk);color:var(--soft)}.block.off{background:var(--sunk);color:var(--soft);text-decoration:line-through}.now{background:var(--bad);z-index:2;pointer-events:none;height:2px;position:absolute;left:0;right:0}.mg{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.mg-row{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mg-heads span{text-align:center;color:var(--soft);border-bottom:1px solid var(--line);padding:6px 0;font-size:.72rem}.mg-cell{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;flex-direction:column;align-items:stretch;gap:2px;min-width:0;min-height:92px;padding:3px 2px;display:flex;overflow:hidden}.mg-cell:nth-child(7n){border-right:0}.mg-cell:nth-last-child(-n+7){border-bottom:0}.mg-cell.other{background:var(--sunk)}.mg-cell.other .mg-date{color:var(--soft)}.mg-date{text-align:center;border-radius:50%;flex:none;align-self:center;width:22px;height:22px;font-size:.78rem;font-weight:600;line-height:22px}.mg-date.today{background:var(--gold);color:#2d2b2a}.chip{background:var(--gold-wash);white-space:nowrap;border-radius:3px;flex:none;padding:0 3px;font-size:.66rem;line-height:1.4;display:block;overflow:hidden}.chip.late{background:var(--warn-wash);color:var(--warn)}.chip.done,.chip.off{background:var(--sunk);color:var(--soft)}.more{color:var(--soft);text-align:center;font-size:.64rem}@media (width<=700px){.top{position:static}.cal-head h1{font-size:1.35rem}.cal-head .row{width:100%}.cal-head .seg{flex:100%}.seg button{flex:1}.cal-head .btn.primary{margin-left:auto}.block{padding:1px 2px;font-size:.66rem}.mg-cell{min-height:74px}}.list{background:var(--surface);border:1px solid var(--line);border-radius:12px}.item{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 14px;display:flex}.item:last-child{border-bottom:0}button.item{cursor:pointer}button.item:hover{background:var(--sunk)}.item>div{overflow-wrap:anywhere;min-width:0}.big{font-family:var(--display);color:var(--gold-ink);font-size:2.6rem;font-weight:700;line-height:1}.big.out{color:var(--bad)}.field{gap:4px;min-width:0;display:grid}.field>span{color:var(--soft);font-size:.82rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:100%;min-width:0;padding:8px 10px}.check{align-items:flex-start;gap:8px;font-size:.9rem;display:flex}.check input{margin-top:4px}.form{gap:12px;display:grid}.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.sheet-bg{z-index:20;background:#0006;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.sheet{background:var(--bg);border-radius:14px;gap:14px;width:min(480px,100%);padding:18px;display:grid}.toast{z-index:30;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);width:min(520px,100% - 32px);color:var(--bg);border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:.9rem;display:flex;position:fixed;transform:translate(-50%)}.toast button{color:var(--gold);cursor:pointer;background:0 0;border:0;font-weight:700;text-decoration:underline}.auth{place-items:center;min-height:100dvh;padding:20px 16px;display:grid}.auth-card{gap:16px;width:min(400px,100%);display:grid}.auth-card img{border-radius:50%;width:64px;height:64px}.rule{background:var(--gold);border:0;height:1px;margin:0}.lock{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:14px;padding:22px;display:grid}@media (prefers-reduced-motion:no-preference){.toast{animation:.16s ease-out rise}@keyframes rise{0%{opacity:0;translate:0 8px}}}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface);position:fixed;inset:0 0 auto}.slots{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:8px;padding:12px 14px;display:grid}.slots.full{border-color:var(--warn);background:var(--warn-wash)}.slot-row{gap:5px;display:flex}.slot-row i{background:var(--sunk);border:1px solid var(--line);border-radius:3px;flex:1 1 0;min-width:0;max-width:56px;height:9px}.slot-row i.on{background:var(--gold);border-color:var(--gold)}
