:root{--bg: #f5f7f6;--panel: #fff;--panel2: #fafbfa;--line: #dfe4e1;--line-soft: #ebefec;--text: #111;--muted: #59635e;--mint: #01eca4;--mint-ink: #00785a;--mint-dim: rgba(1, 236, 164, .14);--mint-mid: rgba(1, 236, 164, .55);--orange: #ff8a3d;--orange-ink: #b8560f;--orange-dim: rgba(255, 138, 61, .16);--blue: #3d8bff;--blue-ink: #1a55c4;--alert: #ff4f6d;--alert-ink: #c31f3d;--alert-dim: rgba(255, 79, 109, .14);--grad-warm: linear-gradient(90deg, #01eca4 0%, #ff8a3d 100%);--font: "Nunito Sans", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);padding:10px 12px 24px}button,input,select,textarea{font:inherit}button{font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;background:var(--mint);color:#06251c;border:0;padding:7px 11px;border-radius:4px;cursor:pointer;white-space:nowrap}button:hover{filter:brightness(1.04)}button:disabled{cursor:not-allowed;filter:none;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--mint-ink);outline-offset:2px}button.ghost{background:#fff;border:1px solid var(--line);color:var(--muted)}button.ghost:hover{color:var(--text);border-color:var(--mint-ink)}button.danger{background:#fff;border:1px solid var(--alert);color:var(--alert-ink)}.wrap{max-width:1480px;margin:0 auto}.brand-logo{height:29px;width:auto;display:block;flex:none}.appbar{min-height:46px;display:flex;align-items:center;gap:6px;padding:7px 8px;margin-bottom:8px;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 2px #1111110a}.app-brand{display:flex;align-items:center;flex:none}.appbar-divider{width:1px;height:24px;margin:0 3px;background:var(--line)}.cycle-picker select{width:190px;min-width:0;font-weight:800}.cycle-range{color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.cycle-actions{display:flex;align-items:center;gap:6px}.appbar-spacer{flex:1;min-width:4px}.app-actions{display:flex;align-items:center;gap:5px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.status{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:20px;padding:4px 7px;background:#fff;color:var(--muted);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange)}.status.live:before{background:var(--mint-ink)}.status.error:before{background:var(--alert)}.presence{display:flex;align-items:center;gap:7px;flex:none}.presence-label{font-size:11.5px;color:var(--muted);font-weight:700;white-space:nowrap}.presence-avatars{display:flex;align-items:center;padding-left:6px}.viewer-avatar{position:relative;width:28px;height:28px;margin-left:-6px;display:grid;place-items:center;overflow:hidden;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--line);color:#fff;font-size:10.5px;font-weight:900;letter-spacing:.02em}.viewer-avatar.current{box-shadow:0 0 0 2px var(--mint-ink);z-index:2}.viewer-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.viewer-more{background:var(--panel2);color:var(--muted);font-size:10px}.viewer-color-0{background:#00785a}.viewer-color-1{background:#3153a4}.viewer-color-2{background:#a34e12}.viewer-color-3{background:#7651a8}.viewer-color-4{background:#a92e51}.viewer-color-5{background:#397080}h1{font-weight:900;text-transform:uppercase;font-size:29px;letter-spacing:-.005em;margin:2px 0 7px;line-height:1.04}.sub{color:var(--muted);font-size:14px;line-height:1.45;max-width:720px;margin:10px auto 14px}.sub strong{color:var(--text)}.panel,.form,.meter,.gridwrap{background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 2px #1111110a}.meter{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:10px;padding:8px 10px;margin-bottom:8px;position:relative;overflow:hidden}.meter:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--grad-warm)}.meter-lab,.panel h2,.form h2{font-weight:800;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mint-ink);margin:0 0 9px}.meter-lab{margin:0}.meter-nums{font-weight:600;font-size:11.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.meter-nums b{color:var(--text);font-size:16px;font-weight:900}.meter-nums .over{color:var(--alert-ink)}.capacity-bar{height:9px;border-radius:3px;background:#eceeed;border:1px solid var(--line);overflow:hidden;display:flex}.capacity-bar span{display:block;height:100%;transition:width .18s ease}.capacity-bar .used{background:var(--grad-warm)}.capacity-bar .spill{background:var(--alert)}.form,.panel{padding:11px 12px;margin-bottom:9px}.frow{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.fld{display:flex;flex-direction:column;gap:4px}.fld.hide,.hide{display:none!important}.fld>label,.fld>span{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}input,select,textarea{background:#fff;border:1px solid var(--line);color:var(--text);font-size:13.5px;font-weight:600;padding:6px 8px;border-radius:4px;min-width:0}input[type=text]{width:210px}input[type=number]{width:68px}select{min-width:140px}.composer{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(128px,.8fr) minmax(138px,.9fr) 112px minmax(330px,2.1fr) auto;grid-template-areas:"name type start days people submit";gap:10px;align-items:start}.composer-field{display:grid;grid-template-rows:16px minmax(36px,auto);gap:5px;min-width:0}.composer-field>label{height:16px;display:flex;align-items:center;font-size:10.5px;line-height:16px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.composer-field input,.composer-field select{width:100%;height:36px;min-width:0}.composer-name{grid-area:name}.composer-type{grid-area:type}.composer-start{grid-area:start}.composer-days{grid-area:days}.composer-people{grid-area:people}.composer-submit{grid-area:submit;padding-top:21px}.composer-submit button{height:36px}.composer #add-people{min-height:36px;align-items:center}.composer.milestone{grid-template-columns:minmax(240px,320px) 150px 180px auto 1fr;grid-template-areas:"name type start submit ."}.field-optional{margin-left:6px;color:var(--orange-ink);font-size:9px;letter-spacing:.08em}input:focus,select:focus{border-color:var(--mint-ink);box-shadow:0 0 0 3px var(--mint-dim);outline:0}.chips,.button-row{display:flex;gap:6px;flex-wrap:wrap}.chip{font-weight:700;font-size:12.5px;padding:6px 10px;border-radius:20px;cursor:pointer;user-select:none;background:#fff;border:1px solid var(--line);color:var(--muted)}.chip.on{background:var(--mint);border-color:var(--mint);color:#06251c;font-weight:800}.chip.inactive{background:#f2f4f3;border-style:dashed;color:#4b5650}.hint,.store,.holiday-note{font-size:12.5px;color:var(--muted);margin-top:7px;line-height:1.4}.holding{padding:10px 12px;background:var(--panel2)}.holding-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.holding-head .holding-count{flex:none}.holding-head h2{margin:0 0 2px}.holding-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.holding-count{padding:3px 8px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--muted);font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.holding-list{display:flex;flex-wrap:wrap;gap:6px}.holding-item{width:min(420px,100%);min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:5px;background:#fff;color:var(--text);text-align:left;text-transform:none;letter-spacing:0}.holding-item:hover{border-color:var(--orange);filter:none}.holding-item.selected{outline:2px solid var(--mint-ink);outline-offset:1px}.holding-copy{min-width:0;display:grid;gap:3px}.holding-name{min-width:0;display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:800}.holding-meta{overflow:hidden;color:var(--muted);font-size:11.5px;font-weight:600;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.holding-assign{flex:none;color:var(--mint-ink);font-size:10.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.gridwrap{overflow-x:auto;padding:6px 6px 3px}.gridinner{min-width:1040px;position:relative}.depsvg{position:absolute;inset:0 auto auto 0;pointer-events:none;overflow:visible;z-index:4}.depline{fill:none;stroke:#8e968f;stroke-width:1.6}.depline.bad{stroke:var(--alert);stroke-width:2;stroke-dasharray:4 3}.dephead{fill:#8e968f}.dephead.bad{fill:var(--alert)}.grow{display:grid;grid-template-columns:104px 1fr;align-items:stretch}.gname{font-size:13.5px;font-weight:800;padding:4px 7px 4px 2px;display:flex;align-items:center;justify-content:space-between;gap:5px;border-bottom:1px solid var(--line-soft)}.whead,.dhead,.bgcells,.lanes{display:grid;grid-template-columns:repeat(var(--day-count),1fr)}.whead div{font-weight:800;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mint-ink);text-align:center;padding:3px 2px;border-left:1px solid var(--line);white-space:nowrap;overflow:hidden}.dhead div{font-size:9.5px;font-weight:700;text-align:center;padding:3px 1px 4px;color:var(--muted);line-height:1.25;border-bottom:1px solid var(--line)}.dhead b{display:block;color:var(--text);font-size:12px;font-weight:800}.wkstart{border-left:1px solid var(--line)!important}.track{position:relative;border-bottom:1px solid var(--line-soft)}.bgcells{position:absolute;inset:0}.bgcells div{border-right:1px solid var(--line-soft)}.bgcells .avail{background:var(--mint-dim)}.bgcells .off{background:repeating-linear-gradient(135deg,#f2f4f3 0 5px,#e4e8e6 5px 10px)}.lanes{position:relative;z-index:2;grid-auto-rows:22px;row-gap:2px;padding:3px 0;min-height:28px}.bar-task{grid-row:var(--lane);margin:0 1px;border-radius:3px;cursor:grab;display:flex;align-items:center;padding:0 6px;overflow:hidden;white-space:nowrap;font-size:12.5px;font-weight:800;color:#111;position:relative;touch-action:none;user-select:none}.bar-task.selected{outline:2px solid var(--text);outline-offset:1px}.bar-task.dragging{cursor:grabbing;z-index:6;box-shadow:0 5px 16px #11111142}.off-mark{opacity:.6}.mslanes{position:relative;z-index:3;min-height:30px;padding:5px 0;overflow:visible}.ms{position:absolute;width:14px;height:26px;margin-left:-7px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;user-select:none}.ms .dia{width:13px;height:13px;background:var(--text);transform:rotate(45deg);border-radius:2px;box-shadow:0 0 0 3px #fff}.ms.bad .dia{background:var(--alert)}.ms .lbl{position:absolute;left:calc(50% + 12px);white-space:nowrap;font-size:12.5px;font-weight:800;background:#fff;padding:1px 4px;border-radius:3px}.ms.flip .lbl{left:auto;right:calc(50% + 12px)}.ms.selected .dia{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--text)}.offrow div{font-size:12.5px;font-weight:900;text-align:center;padding:5px 0}.tier-full{background:var(--mint);color:#06251c}.tier-high{background:var(--mint-dim)}.tier-mid{background:var(--orange-dim);color:var(--orange-ink)}.tier-low{background:var(--alert-dim);color:var(--alert-ink);box-shadow:inset 0 0 0 1px var(--alert)}.tier-none{background:var(--line-soft);color:var(--muted)}.offlab{font-size:11.5px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}.pswitch{position:relative;width:30px;height:17px;border-radius:9px;background:var(--line);padding:0}.pswitch:after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #11111140;transition:left .15s}.pswitch.on{background:var(--mint)}.pswitch.on:after{left:15px}.row-inactive{opacity:.58}.legend{display:flex;gap:12px;flex-wrap:wrap;margin:7px 0 0;font-size:12.5px;color:var(--muted);align-items:center}.sw{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-2px}.swd{display:inline-block;width:8px;height:8px;background:var(--text);transform:rotate(45deg);margin-right:7px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}.tlist{display:flex;flex-direction:column;gap:5px}.titem{background:var(--panel2);border:1px solid var(--line);border-left:3px solid transparent;border-radius:5px;padding:7px 9px;display:flex;justify-content:space-between;gap:7px;align-items:flex-start;cursor:pointer}.titem.selected{border-color:var(--mint-ink)}.titem .meta{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.35}.titem .nm{font-size:14px;font-weight:800;display:flex;align-items:center;gap:6px}.kind{font-size:10.5px;letter-spacing:.1em;padding:3px 7px;border-radius:3px;text-transform:uppercase;font-weight:800}.kind.lg{background:#3d8bff24;color:var(--blue-ink)}.kind.sm{background:var(--mint-dim);color:var(--mint-ink)}.kind.milestone{background:#11111117}.nudge{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.nudge button{padding:5px 9px;font-size:12.5px;letter-spacing:.05em;background:#fff;border:1px solid var(--line);color:var(--muted)}.warn{font-size:13px;line-height:1.4;padding:7px 0;border-top:1px solid var(--line-soft);display:flex;gap:7px}.warn:first-child{border-top:0;padding-top:0}.badge{font-size:10.5px;font-weight:800;letter-spacing:.1em;padding:3px 7px;border-radius:3px;flex:none;margin-top:2px;text-transform:uppercase}.badge.rule{background:var(--alert-dim);color:var(--alert-ink)}.badge.soft{background:var(--orange-dim);color:var(--orange-ink)}.ok{font-size:13px;color:var(--mint-ink);font-weight:600}.empty{font-size:13px;color:var(--muted)}textarea{width:100%;min-height:120px;background:var(--panel2);font-family:ui-monospace,Menlo,monospace;font-size:12px;margin-top:7px;resize:vertical}.toast{position:fixed;right:12px;bottom:12px;z-index:80;max-width:390px;padding:9px 11px;border:1px solid var(--line);background:#fff;box-shadow:0 8px 30px #1111112e;border-radius:6px;font-size:13px}.toast.error{border-color:var(--alert);color:var(--alert-ink)}.auth-shell{min-height:70vh;display:grid;place-items:center}.auth-card{width:min(420px,100%);text-align:center;padding:24px}.auth-card .brand-logo{height:38px;margin:0 auto}.auth-card h1{font-size:25px}.modal-backdrop{position:fixed;inset:0;z-index:70;background:#11111157;display:grid;place-items:center;padding:12px}.modal{width:min(620px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:8px;border:1px solid var(--line);box-shadow:0 20px 70px #11111147;padding:15px}.modal h2{margin:0 0 11px;font-size:18px}.modal h3{margin:15px 0 6px;font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--mint-ink)}.modal-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:13px}.settings-list{display:grid;gap:7px}.settings-row{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:14px}.settings-row code{font-size:13px}.settings-row input{width:100%}.activity-row{align-items:flex-start;line-height:1.35}.activity-row time{color:var(--muted);font-size:12px}.error-box{border:1px solid var(--alert);background:var(--alert-dim);color:var(--alert-ink);padding:8px 10px;border-radius:5px;margin-bottom:9px;font-size:13px}.sync-note{font-size:13px;color:var(--muted);line-height:1.45}@media(max-width:1120px){.composer{grid-template-columns:minmax(190px,1.3fr) 140px 155px 112px;grid-template-areas:"name type start days" "people people people submit"}.composer.milestone{grid-template-columns:minmax(220px,1fr) 150px 180px auto;grid-template-areas:"name type start submit"}}@media(max-width:860px){body{padding:7px 7px 20px}.cols{grid-template-columns:1fr}h1{font-size:25px}.appbar{display:grid;grid-template-columns:auto 1px minmax(150px,1fr) auto auto}.app-brand{grid-column:1}.appbar-divider{grid-column:2}.cycle-picker{grid-column:3}.cycle-picker select{width:100%}.presence{grid-column:4}.status{grid-column:5}.cycle-actions{grid-column:1 / 4;grid-row:2}.app-actions{grid-column:4 / 6;grid-row:2;justify-self:end}.appbar-spacer,.cycle-range,.presence-label{display:none}.meter{grid-template-columns:auto 1fr}.meter-nums{grid-column:1 / -1}.composer,.composer.milestone{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"name name name" "type start days" "people people people" "submit submit submit"}.composer.milestone{grid-template-areas:"name name name" "type start start" "submit submit submit"}.composer-submit{padding-top:0}.composer-submit button{width:100%}}@media(max-width:560px){.appbar{grid-template-columns:1fr auto auto}.appbar-divider{display:none}.app-brand{grid-column:1;grid-row:1}.presence{grid-column:2;grid-row:1}.status{grid-column:3;grid-row:1}.cycle-picker{grid-column:1 / 4;grid-row:2}.cycle-actions{grid-column:1 / 2;grid-row:3;flex-wrap:nowrap}.app-actions{grid-column:2 / 4;grid-row:3;flex-wrap:nowrap;justify-content:flex-end}.appbar button{padding:7px 8px;font-size:11px;letter-spacing:.05em}.composer,.composer.milestone{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"name name" "type type" "start days" "people people" "submit submit"}.composer.milestone{grid-template-areas:"name name" "type type" "start start" "submit submit"}.holding-head{align-items:flex-start}.holding-meta{white-space:normal}}
