:root{--bg:#16181edb;--panel:#202329;--fg:#e8eaed;--muted:#9aa0a6;--line:#ffffff14;--hover:#ffffff14;--accent:#8ab4f8;--accent-fg:#202124;--sun:#f28b82;--sat:#8ab4f8;--task:#fdd663;--font-size:13px;--radius:14px;--ease:.16s ease}*{box-sizing:border-box}html,body{-webkit-user-select:none;user-select:none;background:0 0;height:100%;margin:0;font-family:Segoe UI Variable Text,Segoe UI,Malgun Gothic,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;transition:background var(--ease), color var(--ease);background:0 0;border:0;border-radius:8px}input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;margin:0}input[type=range]{width:100%;accent-color:var(--accent)}select{font:inherit;background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:2px 6px}#app{height:100%;color:var(--fg);font-size:var(--font-size);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);transition:background var(--ease), color var(--ease), border-color var(--ease);flex-direction:column;line-height:1.45;display:flex;position:relative;overflow:hidden}#app[data-border=false]{border-color:#0000}header{border-bottom:1px solid var(--line);cursor:grab;align-items:center;gap:6px;padding:8px 10px;display:flex}[data-locked=true] header{cursor:default}#hotspot{display:none}[data-header=hover] #hotspot{z-index:5;height:14px;display:block;position:absolute;top:0;left:0;right:0}[data-header=hover] header{z-index:6;background:var(--panel);border-bottom-color:var(--line);opacity:0;pointer-events:none;transition:opacity var(--ease), transform var(--ease);position:absolute;top:0;left:0;right:0;transform:translateY(-100%);box-shadow:0 6px 18px #0000002e}[data-header=hover] #hotspot:hover+header,[data-header=hover] header:hover,[data-header=hover] header:focus-within{opacity:1;pointer-events:auto;transform:none}.views,.seg,.tabs{background:var(--hover);border-radius:9px;gap:2px;padding:2px;display:flex}.views button,.seg button,.tabs button{color:var(--muted);border-radius:7px;padding:3px 9px}.views button.active,.seg button.active,.tabs button.active{background:var(--panel);color:var(--fg);box-shadow:0 1px 3px #00000026}.status{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.85em;overflow:hidden}button.icon{width:26px;height:26px;color:var(--muted);place-items:center;font-size:1.15em;display:inline-grid}button.icon[aria-pressed=true]{color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent)}button.icon:hover,.nav:hover,.cell:hover,.theme-opt:hover{background:var(--hover);color:var(--fg)}#login{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex}#btn-login,.primary{background:var(--accent);color:var(--accent-fg);padding:7px 16px;font-weight:600}#btn-login:disabled{opacity:.6;cursor:default}[data-auth=out] #content,[data-auth=in] #login{display:none}.muted,.empty{color:var(--muted)}#content{flex-direction:column;flex:1;min-height:0;display:flex}#calendar,#tasks{min-height:0;padding:10px 12px;overflow-y:auto}#calendar{flex-direction:column;flex:0 auto;display:flex;container-type:inline-size}.month-head,.grid{flex:none}#tasks{border-top:1px solid var(--line);flex:auto}[data-view=calendar] #tasks,[data-view=tasks] #calendar{display:none}[data-view=calendar] #calendar{flex:auto}[data-view=tasks] #tasks{border-top:0}[data-view=both] #tasks{flex:1 0 clamp(96px,28%,240px)}[data-view=both] .day-detail ul{max-height:28vh}@media (width>=680px),(width>=420px) and (aspect-ratio>=1){[data-view=both] #content{flex-direction:row}[data-view=both] #calendar{flex:1.4 1 0;min-width:0}[data-view=both] #tasks{border-top:0;border-left:1px solid var(--line);flex:1 1 0;min-width:150px}[data-view=both] .day-detail ul{max-height:none}}#calendar::-webkit-scrollbar{width:6px}#tasks::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar{width:6px}.day-detail ul::-webkit-scrollbar{width:6px}#calendar::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}#tasks::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.panel-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.day-detail ul::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.month-head{align-items:center;gap:2px;margin-bottom:8px;display:flex}.month-title{letter-spacing:-.01em;margin:0 6px;font-size:1.15em;font-weight:650}.nav{color:var(--muted);padding:2px 9px;font-size:1.1em}.today-btn{border:1px solid var(--line);margin-left:auto;font-size:.9em}.grid{flex:0 auto;grid-template-rows:auto repeat(6,minmax(30px,1fr));grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;min-height:calc(1.6em + 192px);display:grid;overflow:hidden}.wd{text-align:center;color:var(--muted);padding-bottom:4px;font-size:.82em;font-weight:600}.wd.wd-0{color:var(--sun)}.wd.wd-6{color:var(--sat)}.cell{border-radius:9px;flex-direction:column;align-items:center;min-width:0;min-height:0;padding:2px 1px 9px;display:flex;position:relative;overflow:hidden}.cell.out{opacity:.35}.cell.wd-0 .num{color:var(--sun)}.cell.wd-6 .num{color:var(--sat)}.cell .num{text-align:center;font-variant-numeric:tabular-nums;border-radius:50%;width:20px;height:20px;line-height:20px}.cell.today .num{background:var(--accent);color:var(--accent-fg);font-weight:700}.cell.selected{background:color-mix(in srgb, var(--accent) 18%, transparent)}.dots{justify-content:center;gap:2px;height:5px;display:flex;position:absolute;bottom:2px;left:0;right:0}.dot{border-radius:50%;flex:none;width:5px;height:5px;display:inline-block}.task-dot{background:var(--task)}.day-detail{border-top:1px solid var(--line);flex-direction:column;flex:1 0 76px;min-height:76px;margin-top:10px;padding-top:8px;display:flex}.day-detail h4{flex:none}.day-detail ul{flex:auto;min-height:0;overflow-y:auto}.day-detail h4{color:var(--muted);margin:0 0 4px;font-size:.92em;font-weight:650}.day-detail ul,.task-group ul{margin:0;padding:0;list-style:none}.day-detail li,.task-group li{border-radius:6px;align-items:center;gap:8px;padding:4px 2px;display:flex}.bar{border-radius:2px;align-self:stretch;width:3px}.task-bar{background:var(--task)}.time{min-width:38px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85em}.title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.task-group+.task-group{margin-top:8px}.task-group h3{color:var(--muted);text-transform:none;margin:2px 0 4px;font-size:.85em;font-weight:650}.task-group li:hover{background:var(--hover)}.task-group label{cursor:pointer;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.task-group li.done .title{color:var(--muted);text-decoration:line-through}.due{color:var(--muted);background:var(--hover);border-radius:6px;padding:0 6px;font-size:.82em}.due.overdue{color:var(--sun)}#overlay{z-index:10;background:#00000059;justify-content:center;align-items:stretch;padding:10px;display:flex;position:absolute;inset:0}#overlay[hidden],#toast[hidden]{display:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;width:100%;min-height:0;display:flex;box-shadow:0 10px 30px #00000040}.panel-head{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px 8px;display:flex}.panel-head h2{flex:1;margin:0;font-size:1.1em}.panel-body{flex:1;min-height:0;padding:0 14px 8px;overflow-y:auto}.panel h3{color:var(--muted);justify-content:space-between;margin:14px 0 6px;font-size:.85em;font-weight:650;display:flex}.row{align-items:center;gap:8px;padding:4px 0;display:flex}.themes{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.theme-opt{border:1px solid var(--line);align-items:center;gap:6px;padding:5px 6px;font-size:.9em;display:flex}.theme-opt.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.swatch{border:1px solid var(--line);border-radius:50%;flex:none;width:18px;height:18px}.accents{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.accent-opt{border:2px solid #0000;border-radius:50%;width:22px;height:22px}.accent-opt.active{border-color:var(--fg)}.accent-opt.default{border:1px solid var(--line);border-radius:11px;width:auto;padding:0 8px;font-size:.85em}.accent-opt.default.active{border-color:var(--accent);color:var(--accent)}.accent-custom input{cursor:pointer;background:0 0;border:0;width:26px;height:24px;padding:0}.hint{font-size:.85em}.actions{border-top:1px solid var(--line);gap:6px;padding:10px 14px 12px;display:flex}.spacer{flex:1}.ghost{background:var(--hover);padding:6px 12px}.danger{color:var(--sun);margin-top:6px}#toast{z-index:20;color:#f1f3f4;background:#323639;border-radius:8px;padding:8px 10px;font-size:.9em;position:absolute;bottom:10px;left:10px;right:10px;box-shadow:0 4px 14px #0000004d}@media (height<=520px){.grid{grid-template-rows:auto repeat(6,minmax(27px,1fr));min-height:calc(1.5em + 174px)}.cell{border-radius:7px;padding:1px 1px 7px}.cell .num{width:19px;height:19px;line-height:19px}.dots{bottom:1px}.cell .num{font-size:.92em}.grid{gap:1px}.wd{padding-bottom:1px;font-size:.75em}.month-head{margin-bottom:2px}.nav{padding:0 8px}.day-detail{flex-basis:56px;min-height:56px;margin-top:4px;padding-top:4px}#calendar,#tasks{padding:6px 10px}header{padding:5px 8px}}@media (height<=330px){.day-detail{display:none}}
