:root{--bg: #f5f6f3;--surface: #ffffff;--surface2: #eceeea;--ink: #18233a;--muted: #5f6876;--faint: #8c939e;--line: #dadde2;--accent: #18233a;--on-accent: #ffffff;--today: #e7ecf5;--today-ink: #1d3d7a;--warn-bg: #fbefc8;--warn-ink: #7a5600;--pms-bg: #efe6f7;--pms-ink: #5b3a85;--ok: #1e7f4f;--danger: #b3261e;--neg-bg: #f8dada;--neg-ink: #8a1c1c;--neg2-bg: #b3261e;--neg2-ink: #ffffff;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #121821;--surface: #1a2230;--surface2: #222b39;--ink: #e7ebf0;--muted: #9aa4b2;--faint: #7a8494;--line: #2e3848;--accent: #e7ebf0;--on-accent: #121821;--today: #1f2e48;--today-ink: #a9c4f5;--warn-bg: #4a3b10;--warn-ink: #f6d77a;--pms-bg: #35284a;--pms-ink: #d5bff3;--ok: #5bc58e;--danger: #f28b82;--neg-bg: #4a2426;--neg-ink: #f5b8b8;--neg2-bg: #c0392b;--neg2-ink: #ffffff;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Barlow,system-ui,sans-serif;font-size:16px;line-height:1.4;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,.cond{font-family:Barlow Condensed,Arial Narrow,sans-serif;font-weight:600;letter-spacing:.01em}.app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;padding-bottom:84px}@media(min-width:600px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}header.top{position:sticky;top:0;z-index:5;background:var(--bg);padding:14px 16px 10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}header.top h1{font-size:1.6rem;margin:0;flex:1;line-height:1.1}header.top .sub{display:block;font-family:Barlow,sans-serif;font-weight:400;font-size:.85rem;color:var(--muted);letter-spacing:0}.closebtn{width:44px;height:44px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 3px #0000002e}.closebtn:hover{filter:brightness(1.15)}.closebtn svg.i{width:22px;height:22px;stroke-width:2.4}.iconbtn{min-width:44px;min-height:44px;border:0;background:transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);font-size:.95rem;gap:4px;padding:0 8px}.iconbtn:hover{background:var(--surface2)}:focus-visible{outline:2px solid var(--today-ink);outline-offset:2px}svg.i{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}main{padding:0 12px}nav.tabs{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:var(--surface);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:10}nav.tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.8125rem;color:var(--muted);min-height:48px;border-radius:8px;text-decoration:none}nav.tabs a[aria-current=page]{color:var(--ink);font-weight:600}.filterbar{display:flex;gap:6px;overflow-x:auto;padding:10px 0 4px;scrollbar-width:none}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;min-height:44px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;font-size:.92rem}.chip[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.week{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 2px;padding:8px 10px;background:var(--surface2);border-radius:6px;font-size:.9rem}.week b{font-family:Barlow Condensed,sans-serif;font-size:1.05rem;font-weight:600}.week span{color:var(--muted)}.dayrow{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:9px 8px;min-height:50px;cursor:pointer}.dayrow:hover{background:var(--surface)}.dayrow .dt{font-family:Barlow Condensed,sans-serif;font-size:1.05rem;line-height:1.1}.dayrow .dt small{display:block;font-family:Barlow,sans-serif;font-size:.8125rem;color:var(--muted)}.dayrow .what{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:.95rem;min-width:0}.dayrow .empty{color:var(--faint)}.dayrow.today{background:var(--today);border-radius:6px;border-bottom-color:transparent}.dayrow.today .dt{color:var(--today-ink)}.dayrow.weekend .dt{color:var(--muted)}.dayrow.current{outline:2px solid var(--today-ink);outline-offset:-2px;border-radius:6px}.sess{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.sess.planned{border:1.5px dashed var(--faint);border-radius:6px;padding:1px 7px;color:var(--muted)}.tag{font-size:.8125rem;border-radius:4px;padding:1px 7px;white-space:nowrap}.tag.pms{background:var(--pms-bg);color:var(--pms-ink)}.tag.pms.planned{background:transparent;border:1.5px dashed var(--pms-ink)}.tag.flag{background:var(--surface2);color:var(--muted)}.bal{font-family:Barlow Condensed,sans-serif;font-size:1.1rem;white-space:nowrap;text-align:right;border-radius:4px;padding:1px 7px}.bal.plan{border:1.5px dashed var(--faint);color:var(--muted)}.bal.neg{background:var(--neg-bg);color:var(--neg-ink)}.bal.neg2{background:var(--neg2-bg);color:var(--neg2-ink)}.bal.none{color:var(--faint)}.sr{font-size:.8125rem;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.82rem;color:var(--muted);padding:14px 4px 4px}.morebtn{width:100%;margin-top:10px}.sec{margin:16px 0;position:relative}.sec>h2{font-size:1.15rem;margin:0 0 8px;color:var(--muted);font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px;transition:box-shadow .3s}.card.planned{border:1.5px dashed var(--faint);background:transparent}.card.flash{box-shadow:0 0 0 3px var(--today-ink)}.card .head{display:flex;align-items:center;gap:8px;min-height:36px}.card .head .name{font-weight:600;flex:1;display:flex;align-items:center;gap:8px}.card .status{font-size:.8125rem;color:var(--muted)}.card.editor{margin-top:10px;border-left:4px solid var(--ac)}.card.editor.planned{border:1.5px dashed var(--faint);border-left:4px dashed var(--ac)}.linkbtn{border:0;background:transparent;color:var(--today-ink);cursor:pointer;min-height:44px;min-width:44px;padding:0 6px;font-size:.92rem;border-radius:6px}.linkbtn:hover{background:var(--surface2)}.partners{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px;font-size:.9rem;color:var(--muted)}.pchip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:4px 12px;min-height:44px;cursor:pointer;font-size:.9rem}.pchip[aria-pressed=true]{border-color:var(--today-ink);color:var(--today-ink);background:var(--today);font-weight:600}.details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.details .full{grid-column:1 / -1}.field label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:3px}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:var(--bg);min-height:44px}.field textarea{min-height:64px;resize:vertical}.seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.seg button{flex:1;border:0;background:var(--bg);min-height:44px;cursor:pointer;font-size:.9rem}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.empty-state{color:var(--muted);font-size:.95rem;padding:6px 2px}.actrow{display:flex;gap:8px;align-items:stretch}.actscroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;padding:4px 2px}.actscroll::-webkit-scrollbar{display:none}.actrow>.more{margin:4px 0}.actbtn{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:52px;display:flex;align-items:center;gap:8px;padding:0 10px;cursor:pointer;font-weight:500;flex:0 0 auto;max-width:150px}.actbtn span.lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actbtn:hover{border-color:var(--faint)}.actbtn.sel{border:2px solid var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--surface));font-weight:600}.actbtn.sel.pl{border-style:dashed;background:transparent}.actbtn.sel svg{color:var(--ac)}.actbtn.cur{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--ac)}.menu{position:absolute;right:0;top:86px;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #00000024;min-width:220px;padding:4px}.menu button{display:flex;width:100%;align-items:center;gap:10px;border:0;background:transparent;min-height:44px;padding:0 12px;cursor:pointer;border-radius:6px;text-align:left}.menu button:hover{background:var(--surface2)}body.locked{overflow:hidden}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;pointer-events:none}.lane{position:relative;width:100%;max-width:480px;height:100%;pointer-events:auto;overflow:hidden}.dscrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:#0a0e1461}.panel{z-index:1;position:absolute;top:0;bottom:0;left:0;width:calc(100% - 52px);background:var(--bg);box-shadow:6px 0 24px #00000038;display:flex;flex-direction:column}.panelscroll{flex:1;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}.pbody{padding:0 12px;flex:1}.panel .savebar{position:sticky;bottom:0;padding:12px;background:linear-gradient(transparent,var(--bg) 35%);display:flex;justify-content:flex-end}.panel .savebar .btn{width:100%}header.daytop{display:grid;grid-template-columns:1fr 44px;align-items:center;gap:4px;padding:10px 8px}.datepill{justify-self:center;display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:2px;min-width:0;max-width:100%}.pillbtn{width:44px;height:44px;border:0;background:transparent;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);flex:none}.pillbtn:hover{background:var(--surface2)}.dtitle{text-align:center;min-width:0;padding:0 2px}.dtitle h1{font-size:1.15rem;margin:0;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dtitle .sub{display:block;font-size:.8125rem;color:var(--muted)}.draftbar{display:flex;align-items:center;gap:8px;margin-top:12px;padding:4px 4px 4px 10px;background:var(--surface2);border-radius:8px;font-size:.92rem}.draftbar span{flex:1}.draftmark{display:inline-flex;align-items:center;color:var(--muted)}.draftmark svg.i{width:16px;height:16px}.nums{display:grid;grid-template-columns:1fr 1fr;gap:8px}.numf{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.numf label{display:block;font-size:.82rem;color:var(--muted)}.numf input{width:100%;border:0;background:transparent;font-family:Barlow Condensed,sans-serif;font-size:1.5rem;font-weight:600;padding:2px 0;min-height:44px}.numf input::placeholder{color:var(--faint);font-weight:500}.numf input:focus{outline:none}.numf:focus-within{border-color:var(--today-ink)}.numf.plan{border:1.5px dashed var(--faint);background:transparent}.balrow{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:8px;background:var(--surface2);border:0;border-radius:8px;padding:10px 12px;min-height:48px;cursor:pointer;text-align:left}.balrow .v{font-family:Barlow Condensed,sans-serif;font-size:1.5rem;font-weight:600}.balrow.plan{background:transparent;border:1.5px dashed var(--faint)}.balrow.neg{background:var(--neg-bg);color:var(--neg-ink)}.balrow.neg2{background:var(--neg2-bg);color:var(--neg2-ink)}.calc{font-size:.88rem;color:var(--muted);padding:6px 4px 0;margin:0}.disclosure{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:transparent;min-height:44px;padding:0 4px;cursor:pointer;color:var(--muted);font-size:.95rem}.switch{display:flex;justify-content:space-between;align-items:center;min-height:48px;border-bottom:1px solid var(--line);padding:0 4px}.switch:last-child{border-bottom:0}.switch .lab{display:flex;flex-direction:column}.switch .lab small{color:var(--muted);font-size:.8125rem}.tg{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:48px;height:28px;border-radius:14px;background:var(--line);position:relative;cursor:pointer;transition:background .15s;flex:none;margin:0}.tg:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px #00000040}.tg:checked{background:var(--today-ink)}.tg:checked:after{left:23px}.box{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:2px 10px}.check{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--today-ink)}textarea.note{width:100%;min-height:80px;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--surface);resize:vertical}.btn{border:1px solid var(--ink);background:transparent;border-radius:8px;min-height:48px;padding:0 20px;cursor:pointer;font-weight:600}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:default}.hint{font-size:.85rem;color:var(--muted);margin:4px 2px 0}.toast{position:fixed;left:50%;bottom:86px;transform:translate(-50%);background:var(--ink);color:var(--bg);border-radius:8px;padding:10px 14px;display:flex;gap:16px;align-items:center;z-index:30;max-width:calc(100% - 32px);width:440px;justify-content:space-between}.toast button{border:0;background:transparent;color:var(--bg);font-weight:700;text-decoration:underline;cursor:pointer;min-height:44px}.statcard{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:10px}.statcard .t{display:flex;justify-content:space-between;align-items:baseline}.statcard .t b{font-family:Barlow Condensed,sans-serif;font-size:1.25rem}.statcard .t span{color:var(--muted);font-size:.9rem}.stack{display:flex;height:12px;border-radius:3px;overflow:hidden;background:var(--surface2);margin:8px 0 6px}.stack i{display:block;height:100%}.breakdown{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.85rem;color:var(--muted)}.kpis{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:6px;font-size:.9rem}.kpis b{font-family:Barlow Condensed,sans-serif;font-size:1.1rem;display:block}.pmsbox{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:.9rem}.pmshead{display:flex;align-items:center;gap:8px;color:var(--muted)}.pmsstrip{display:flex;gap:2px;margin-top:8px}.pmsstrip span{flex:1;min-width:0;height:24px;border-radius:3px;background:var(--surface2);font-size:.8125rem;color:var(--muted);display:flex;align-items:center;justify-content:center}.pmsstrip span.on{background:var(--pms-ink);color:var(--surface)}.pmsstrip span.fut{background:transparent;border:1px solid var(--line)}.pmsstrip span.plan{background:transparent;border:1.5px dashed var(--pms-ink);color:var(--pms-ink)}.pmscmp{margin-top:8px;color:var(--muted)}.pmscmp b{color:var(--ink);font-family:Barlow Condensed,sans-serif;font-size:1.05rem}.searchbox{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface);min-height:48px;margin-top:12px}.result{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 6px;cursor:pointer;display:block}.result:hover{background:var(--surface)}.result .d{font-family:Barlow Condensed,sans-serif;font-size:1rem}.result .x{font-size:.92rem;color:var(--muted)}.result.planned .x{border-left:2px dashed var(--faint);padding-left:8px}mark{background:var(--warn-bg);color:var(--warn-ink);border-radius:2px}.setrow{display:flex;align-items:center;gap:10px;min-height:52px;border-bottom:1px solid var(--line)}.setrow:last-child{border-bottom:0}.setrow input[type=text]{flex:1;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--bg);min-height:44px;min-width:0}.setrow input[type=color]{width:44px;height:44px;border:1px solid var(--line);border-radius:6px;padding:2px;background:var(--bg);flex:none}.addrow{display:flex;gap:8px;margin-top:8px}.addrow input{flex:1;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--surface);min-height:44px;min-width:0}.err{color:var(--danger);font-size:.85rem;margin:4px 2px 0}.auth{display:flex;flex-direction:column;gap:12px;padding-top:16px}.auth .btn{width:100%}.auth p{margin:0}.auth-more{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.auth-more a.linkbtn{display:inline-flex;align-items:center;text-decoration:none}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
