:root{--bg:#f7f2f5;--surface:#fff;--surface-2:#fbf8fa;--line:#ece4ea;--line-strong:#ddd2da;--text:#4a4350;--muted:#9a8f9c;--accent:#b9a6e0;--accent-strong:#8f7bc4;--pink:#f4a7b9;--danger:#d9788f;--sun:#d9788f;--sat:#7f9fcc;--work:#efedef;--work-line:#cfcace;--radius:14px;--shadow:0 8px 28px #5a46641f;color:var(--text);-webkit-font-smoothing:antialiased;font-family:"Source Sans 3",Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg)}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit;color:inherit}h2,h3,h4{margin:0}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 20px;display:flex}.brand{color:var(--accent-strong);letter-spacing:-.02em;font-size:18px;font-weight:800}.nav{align-items:center;gap:6px;display:flex}.nav h2{min-width:120px;margin:0 8px;font-size:20px;font-weight:700}.actions{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;display:flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:5px 16px;font-weight:600}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #5a46641f}.btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:10px;padding:8px 14px;font-weight:600;transition:background .15s}.btn:hover{background:var(--surface-2)}.btn.small{padding:6px 12px;font-size:13px}.btn.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn.primary:hover{background:#7f6bb5}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.danger{color:var(--danger);border-color:#f0cdd6}.btn.active{border-color:var(--accent);color:var(--accent-strong);background:#efe9fa}.btn.add{width:100%;color:var(--muted);border-style:dashed;margin-top:8px}.mini{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:7px;padding:2px 8px;font-size:12px}.mini:hover{color:var(--text)}.icon-btn{width:30px;height:30px;color:var(--muted);background:0 0;border:0;border-radius:8px;font-size:18px}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.row{align-items:center;gap:8px;display:flex}.row.end{justify-content:flex-end;margin-top:16px}.row.center{justify-content:center}.row.wrap{flex-wrap:wrap;margin-top:16px}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.body{flex:1;min-height:0;display:flex;position:relative}.calendar{flex:1;min-width:0;padding:14px;display:flex}.month{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;flex:1;display:flex;overflow:hidden}.month-head{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,1fr);display:grid}.month-head div{text-align:center;color:var(--muted);padding:8px 0;font-size:12px;font-weight:600}.sun{color:var(--sun)!important}.sat{color:var(--sat)!important}.month-grid{flex:1;grid-template-columns:repeat(7,1fr);min-height:0;display:grid}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;min-height:0;padding:4px 5px;transition:background .12s;overflow:hidden}.cell:nth-child(7n){border-right:0}.cell:hover{background:var(--surface-2)}.cell.dim{background:#fcfafb}.cell.over,.over{outline:2px dashed var(--accent);outline-offset:-3px;background:#f1ebfb!important}.date-num{border-radius:50%;place-items:center;width:22px;height:22px;margin-bottom:2px;font-size:12px;font-weight:600;display:grid}.date-num.today{background:var(--pink);color:#fff!important}.cell-items{flex-direction:column;gap:2px;display:flex}.bar{white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;gap:4px;padding:2px 6px;font-size:12px;line-height:1.25;display:flex;overflow:hidden}.shift-bar{border:1.5px solid var(--work-line);color:var(--muted);background:0 0;font-weight:600}.task-bar{cursor:grab;border:0}.task-bar.done .bar-title,.task-bar.done .bar-time{text-decoration:line-through}.task-bar.running{border:2px solid;font-weight:700}.bar-time{opacity:.75;font-variant-numeric:tabular-nums;font-size:10.5px}.bar-title{text-overflow:ellipsis;overflow:hidden}.check{font-weight:700}.more{color:var(--muted);padding:1px 6px;font-size:11.5px;font-weight:600}.week{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.week-row{border-bottom:1px solid var(--line);grid-template-columns:52px repeat(7,1fr);display:grid}.gutter{border-right:1px solid var(--line)}.gutter.label{color:var(--muted);text-align:center;padding:6px 2px;font-size:10.5px;font-weight:600;line-height:1.3}.week-day-head{text-align:center;flex-direction:column;gap:2px;padding:8px 0 6px;display:flex}.week-day-head span{color:var(--muted);font-size:12px}.week-day-head b{border-radius:50%;place-items:center;width:32px;height:32px;margin:0 auto;font-size:18px;display:grid}.week-day-head.today b{background:var(--pink);color:#fff}.week-strip{background:#fdfbf3;grid-template-columns:52px 1fr}.strip-body{flex-wrap:wrap;align-items:center;gap:4px;min-height:34px;padding:6px;display:flex}.hint{color:var(--muted);font-size:12px}.allday-cell{border-right:1px solid var(--line);flex-direction:column;gap:3px;min-height:38px;padding:4px;display:flex}.allday-cell:last-child{border-right:0}.chip{cursor:grab;white-space:nowrap;text-overflow:ellipsis;border:0;border-radius:6px;padding:3px 7px;font-size:12px;overflow:hidden}.chip.done{color:var(--muted);text-decoration:line-through}.week-scroll{flex:1;min-height:0;overflow-y:auto}.week-row.grid{border-bottom:0}.hours{position:relative}.hour-label{color:var(--muted);font-size:10.5px;position:absolute;right:6px;transform:translateY(-50%)}.day-col{border-right:1px solid var(--line);position:relative}.day-col:last-child{border-right:0}.hour-line{border-top:1px solid #f3eef2;position:absolute;left:0;right:0}.block{border-radius:7px;flex-direction:column;padding:3px 6px;font-size:11.5px;display:flex;position:absolute;overflow:hidden}.block.shift{background:var(--work);border:1px dashed var(--work-line);color:var(--muted);cursor:pointer;border-radius:0;left:0;right:0}.block.task{cursor:grab;z-index:2;border:0;box-shadow:0 1px 3px #5a466414}.block.task.running{border:2.5px solid;font-weight:700}.block.task.done{color:var(--muted)}.block.task.done .block-title,.block.task.done .block-time{text-decoration:line-through}.block-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.block-time{opacity:.8;font-variant-numeric:tabular-nums;font-size:10.5px}.resize{cursor:ns-resize;height:7px;position:absolute;bottom:0;left:0;right:0}.resize:hover{background:#0000000f}.drop-preview{z-index:4;pointer-events:none;border:2px dashed var(--accent-strong);color:var(--accent-strong);background:#b9a6e047;border-radius:7px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;left:2px;right:2px}.now-line{background:var(--danger);z-index:3;height:2px;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.sidebar{background:var(--bg);border-left:1px solid var(--line);flex-direction:column;flex:none;gap:12px;width:300px;min-height:0;padding:14px;display:flex;overflow:hidden}.sidebar>section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:0 2px 10px #5a46640f}.sidebar h4{border-bottom:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:6px;margin:-12px -12px 10px;padding:10px 12px;font-size:13px;font-weight:700;display:flex}.count{color:var(--danger);background:#fbe4ea;border-radius:10px;padding:0 7px;font-size:11px}.side-hint{color:var(--muted);margin:2px 0 8px;font-size:11.5px;line-height:1.45}.cat-group{border-radius:10px;margin-bottom:8px}.cat-head{border-radius:8px;align-items:center;gap:7px;padding:5px 6px;font-size:13px;font-weight:600;display:flex}.side-item{cursor:grab;border:1px solid #0000;border-radius:9px;align-items:center;gap:8px;margin:2px 0;padding:7px 9px;font-size:13px;display:flex}.side-item:hover{border-color:var(--line-strong);background:var(--surface-2)}.side-item.template{margin-left:12px}.side-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.memo-input{border:1px dashed var(--line-strong);background:#fffdf6;border-radius:9px;outline:none;width:100%;margin-top:4px;padding:8px 10px}.memo-input:focus{border-color:var(--accent);border-style:solid}.cat-chips{flex-wrap:wrap;gap:5px;margin:2px 0 8px;display:flex}.cat-chip{border:1.5px solid;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.ctx-menu{z-index:60;background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:150px;padding:4px;display:flex;position:fixed}.ctx-menu button{text-align:left;background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:13px}.ctx-menu button:hover{background:var(--surface-2)}.ctx-menu .danger{color:var(--danger)}.work-panel{background:var(--surface);border-left:1px solid var(--line);flex:none;width:290px;padding:14px 14px 40px;overflow-y:auto}.wt-list{flex-direction:column;gap:6px;display:flex}.wt-item{border:1.5px solid var(--work-line);background:var(--work);cursor:grab;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.wt-form{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:8px;margin-top:10px;padding:10px;display:flex}.wt-form input,.form input,.modal label input{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;outline:none;padding:7px 9px}.wt-form input:focus,.form input:focus{border-color:var(--accent)}.colors{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:22px;height:22px}.swatch.on{border-color:var(--text)}.overlay{z-index:40;background:#4a435040;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.overlay.top{z-index:50}.modal{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;width:100%;max-width:420px;max-height:85vh;padding:18px 20px;overflow-y:auto}.modal.wide{max-width:560px}.modal.small{max-width:380px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal-head h3{align-items:center;gap:6px;font-size:16px;display:flex}.modal label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.modal label.inline{color:var(--text);flex-direction:row;justify-content:space-between;align-items:center;font-size:13px}.modal label.inline input{width:70px}.modal label.check-label{flex-direction:row;align-items:center}.form{flex-direction:column;gap:10px;margin-top:8px;display:flex}.ask-msg{white-space:pre-line;margin:4px 0;line-height:1.6}.title-input{border:0;border-bottom:1px solid var(--line);outline:none;width:100%;padding:6px 0;font-size:17px;font-weight:700}.title-input:focus{border-color:var(--accent)}.meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;display:flex}.pill{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:600}.done-pill{color:#5c9a70;background:#e6f3ea}.day-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.day-list li{background:var(--surface-2);border-radius:9px;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.day-list li.done .grow{color:var(--muted);text-decoration:line-through}.day-list li.day-shift{border:1.5px solid var(--work-line);color:var(--muted);background:0 0;font-weight:600}.day-list .time{color:var(--muted);font-variant-numeric:tabular-nums;min-width:72px;font-size:11.5px}.stat-h{margin:18px 0 8px;font-size:13px}.stat-tiles{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;display:grid}.tile{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:4px;padding:12px;font-size:12px;display:flex}.tile b{font-size:18px}.cat-bars{flex-direction:column;gap:8px;display:flex}.cat-bar-row{grid-template-columns:72px 1fr 80px;align-items:center;gap:8px;font-size:13px;display:grid}.cat-bar-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cat-bar-track{background:var(--surface-2);border-radius:6px;height:12px;overflow:hidden}.cat-bar{border-radius:6px;height:100%}.cat-bar-val{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.cat-manage{flex-direction:column;gap:4px;display:flex}.cat-row{background:var(--surface-2);border-radius:9px;align-items:center;gap:8px;padding:6px 8px;display:flex}.running-stack{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:30;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.running-bar{background:var(--surface);box-shadow:var(--shadow);border:2px solid var(--accent);border-radius:30px;align-items:center;gap:10px;padding:8px 10px 8px 18px;display:flex}.pulse{background:var(--danger);border-radius:50%;width:9px;height:9px;animation:1.4s infinite pulse}@keyframes pulse{50%{opacity:.3}}.toasts{z-index:70;flex-direction:column;gap:6px;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow);background:#4a4350;border-radius:10px;padding:9px 16px;font-size:13px}@media (width<=900px){.body{flex-direction:column}.sidebar,.work-panel{border-left:0;border-top:1px solid var(--line);width:100%;max-height:40vh}.calendar{min-height:60vh}}.month{--muted:#6f6573}.month-head div{color:#5f5663}.date-num{color:var(--text);font-weight:700}.bar{color:var(--text);font-size:12.5px;font-weight:500}.shift-bar{color:#5f5663;border-color:#b9b2b7}.bar-time{opacity:1;color:#6f6573;font-weight:600}.task-bar.done{color:#7d7380}.more{color:#6f6573}.cell.dim .date-num{opacity:.5}.wt-form label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;font-weight:600;display:flex}.wt-form .days-input{flex:none;width:76px}.wt-code{background:var(--surface);border:1px solid var(--work-line);color:#5f5663;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:700}.muted.small{margin-top:2px;font-size:11.5px}.form-error{color:#c4566e;margin:2px 0;font-size:12px}.form-preview{color:var(--accent-strong);margin:2px 0;font-size:12px;font-weight:600}.shift-bar.cont-left{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-5px}.shift-bar.cont-right{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-5px}.shift-bar.cont-left,.shift-bar.cont-right{background:var(--work)}.shift-line{z-index:2;pointer-events:none;align-self:end;height:14px;margin:0 7px;position:relative}.month.editing .shift-line{pointer-events:auto;cursor:context-menu}.shift-line:hover .shift-rule{border-top-color:#8f878d}body.dragging .shift-line{pointer-events:none}.shift-line.cont-left{margin-left:0}.shift-line.cont-right{margin-right:0}.shift-rule{border-top:2px solid #b9b2b7;border-radius:2px;position:absolute;top:50%;left:0;right:0}.shift-label{white-space:nowrap;background:var(--surface);color:#5f5663;padding:0 6px;font-size:11.5px;font-weight:600;line-height:14px;position:absolute;top:50%;transform:translate(-50%,-50%)}.wt-search{width:100%;margin:0 0 10px}.icon-btn.on{background:var(--surface-2);color:var(--accent-strong)}.work-panel .btn.add{margin:0 0 10px}.work-panel .wt-form{margin-bottom:12px}.side-item.unplaced{background:#fdf3f5;border:1px dashed #e9b8c4}.unplaced-tag{color:#c4566e;background:#fbe3e9;border-radius:6px;flex:none;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:700}.side-item.renaming{cursor:text}.rename-input{flex:1;min-width:0;padding:3px 6px;font-size:13px}.schedule-guide{color:var(--text);background:var(--surface-2);border-radius:10px;margin:4px 0 12px;padding:12px;font-size:13.5px;line-height:1.5}.btn.wide{width:100%}.month.editing .cell{cursor:copy;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.month.editing .month-grid{outline:2px dashed var(--accent);outline-offset:-2px}.overlay.clear{background:0 0}.name-prompt{z-index:70;background:var(--surface);border:1px solid var(--line);width:240px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex;position:fixed}.name-prompt label{color:var(--muted);font-size:12px;font-weight:700}.week-shift{color:#5f5663;background:var(--work);border:1px solid var(--work-line);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:100%;margin-top:2px;padding:0 6px;font-size:11px;font-weight:600;display:block;overflow:hidden}.shift-label{left:50%}.month.editing .cell{touch-action:none}.cell.in-range{box-shadow:inset 0 0 0 2px var(--accent);background:#ede5fa!important}.week-shift-bar{background:#fff;border:1px solid #b9b2b7;border-radius:6px;height:18px;margin:0 6px 5px;position:relative}.week-shift-bar.cont-left{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.week-shift-bar.cont-right{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.week-shift-bar span{color:#000;white-space:nowrap;font-size:11px;font-weight:600;position:absolute;top:50%;transform:translate(-50%,-50%)}.time-editor{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:8px;margin:4px 0 12px;padding:10px 12px;display:flex}.time-editor .row{align-items:flex-end;gap:8px}.time-pick{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;font-weight:600;display:flex}.time-pick .row{gap:4px}.time-pick select{border:1px solid var(--line);background:var(--surface);font:inherit;color:var(--text);border-radius:8px;padding:5px 6px;font-size:13px}.time-editor .tilde{color:var(--muted);padding-bottom:6px}.time-editor .btn{align-self:flex-end}.btn.push-right{margin-left:auto}.btn.same-w{text-align:center;justify-content:center;width:96px}.planned-time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-weight:600}.block-title{flex-shrink:0}.block.task.short{flex-direction:row;align-items:center;gap:5px;padding-top:1px;padding-bottom:1px}.block.task.short .block-title{flex-shrink:1;min-width:0}.block.task.short .block-time{display:none}.sidebar>section.repeat-section{flex-direction:column;flex:0 auto;min-height:0;display:flex;overflow:hidden}.sidebar>section.repeat-section.closed h4{border-radius:var(--radius);border-bottom:0;margin-bottom:-12px}.repeat-body{min-height:0;margin:0 -12px -12px;padding:0 12px 12px;overflow-y:auto}.sidebar>section.memo{flex-direction:column;flex:none;min-height:0;max-height:50%;margin-top:auto;display:flex;overflow:hidden}.section-toggle{all:unset;cursor:pointer;width:100%;font:inherit;color:var(--text);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.section-toggle .chev{width:12px;color:var(--text);font-size:12px}.section-toggle .count{background:var(--surface);color:var(--muted);border:1px solid var(--line);margin-left:auto}.time8 label,.form .date-field+.form-error{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;font-weight:600;display:flex}.time8 input{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:15px}.time8 .form-preview,.time8 .form-error{margin-top:4px}.date-field{align-items:center;gap:6px;position:relative}.date-field input:first-child{font-variant-numeric:tabular-nums;flex:1}.hidden-picker{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;bottom:0;right:0}.goal-left{text-align:right;min-width:20px;color:var(--text);font-variant-numeric:tabular-nums;flex:none;justify-content:flex-end;align-items:center;gap:3px;margin-left:auto;padding:0 4px;font-size:11.5px;font-weight:700;display:inline-flex}.auto-mark{color:var(--accent-strong);flex:none;display:block}.goal-left.zero{color:var(--muted)}.goal-row{align-items:center;gap:6px}.goal-row input{text-align:center;width:56px}.seg.small button{padding:4px 10px;font-size:12px}.side-item.template.achieved .side-title,.cat-group.achieved .cat-name{color:var(--muted);text-decoration:line-through}.cat-head .goal-left{margin-left:auto}.repeat-check{align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--text)!important;flex-direction:row!important}.done-group{border-top:1px dashed var(--line);margin-top:6px;padding-top:8px}.done-toggle{all:unset;cursor:pointer;width:100%;color:var(--muted);align-items:center;gap:6px;margin-bottom:6px;padding:2px 4px;font-size:12.5px;font-weight:700;display:flex}.done-toggle .chev{width:12px;font-size:12px}.done-toggle .count{background:var(--surface);color:var(--muted);border:1px solid var(--line);margin-left:auto}.done-section h4 .section-toggle{color:var(--muted)}.sidebar{overflow-y:auto}.sidebar>section.repeat-section:not(.closed){min-height:var(--min-open-card,124px)}.memo-list{flex:0 auto;min-height:36px;margin:0 -4px;padding:0 4px;overflow-y:auto}.sidebar>section.memo>h4,.sidebar>section.memo>.cat-chips,.sidebar>section.memo>.memo-input{flex:none}.repeat-section h4 .section-toggle{flex:1;width:auto;min-width:0}.done-tab{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:10px;flex:none;padding:2px 9px;font-size:11.5px;font-weight:700}.done-tab:hover{color:var(--text)}.done-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}.repeat-section h4 .section-toggle.title-only{flex:none}.repeat-section h4 .header-count{color:var(--muted);background:0 0;border:0;margin-left:auto;padding:0 2px}.cat-chips{overscroll-behavior-x:contain;scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.cat-chip{white-space:nowrap;flex:none}.chev-btn{all:unset;cursor:pointer;width:14px;color:var(--text);text-align:center;font-size:12px}.head-tabs{align-self:stretch;align-items:stretch;gap:14px;margin:-10px 0 -11px;display:flex}.head-tab{all:unset;cursor:pointer;color:var(--muted);border-bottom:2px solid #0000;align-items:center;padding:0 1px;font-size:13px;font-weight:700;display:flex}.head-tab:hover{color:var(--text)}.head-tab.on{color:var(--text);border-bottom-color:var(--accent-strong)}button.more{all:unset;cursor:pointer;color:#6f6573;border-radius:6px;padding:1px 6px;font-size:11.5px;font-weight:600}button.more:hover{background:var(--surface-2);color:var(--text)}.month-grid.has-expanded{overflow-y:auto}.trash-btn{all:unset;color:#b3a9b5;cursor:pointer;border-radius:6px;flex:none;place-items:center;width:22px;height:22px;margin-left:auto;display:grid}.trash-btn:hover{color:var(--danger);background:#fbe4ea}.side-item .unplaced-tag+.trash-btn,.side-item .planned-time+.trash-btn{margin-left:4px}.side-item .planned-time{margin-left:auto}.side-item .planned-time+.unplaced-tag{margin-left:4px}@font-face{font-family:"Source Sans 3";src:url(/fonts/SourceSans3-VariableFont_wght.ttf)format("truetype");font-weight:200 900;font-style:normal;size-adjust:111%;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/fonts/SourceSans3-Italic-VariableFont_wght.ttf)format("truetype");font-weight:200 900;font-style:italic;size-adjust:111%;font-display:swap}.sc{font-feature-settings:"smcp", "c2sc";letter-spacing:.05em;font-family:"Source Sans 3",Pretendard,-apple-system,sans-serif;font-variant-caps:all-small-caps}.resize.top{top:0;bottom:auto}.cat-row.dragging{opacity:.4}.cat-row.drop-here{box-shadow:inset 0 2px 0 var(--accent-strong)}.drag-grip{color:var(--muted);letter-spacing:-2px;cursor:grab;-webkit-user-select:none;user-select:none;margin-left:-4px;padding:4px 6px 4px 2px;font-size:13px}.drag-grip:hover{color:var(--text)}.mini:disabled{opacity:.35;cursor:default}.note-field{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:12px;font-weight:600;display:flex}.note-field textarea{font:inherit;color:var(--text);border:1px solid var(--line);resize:vertical;background:var(--surface);border-radius:10px;min-height:64px;padding:8px 10px;font-size:14px;font-weight:400;line-height:1.5}.note-field textarea:focus{border-color:var(--accent);outline:none}.note-icon{color:var(--muted);vertical-align:-1px;flex:none}.note-label{align-items:center;gap:6px;display:flex}.note-progress{color:var(--accent-strong);background:var(--surface-2);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:10px;padding:0 7px;font-size:11px;font-weight:700}.note-view{border:1px solid var(--line);cursor:text;background:var(--surface);min-height:44px;color:var(--text);border-radius:10px;flex-direction:column;gap:3px;padding:8px 10px;font-size:14px;font-weight:400;display:flex}.note-view:hover{border-color:var(--accent)}.note-line{white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.5}.note-check{cursor:pointer;align-items:flex-start;gap:8px;width:fit-content;max-width:100%;line-height:1.5;display:flex}.note-check input{accent-color:var(--accent-strong);flex:none;margin-top:3px}.note-check span{word-break:break-word}.note-check.done span{color:var(--muted);text-decoration:line-through}.modal .note-view .note-check{color:var(--text);flex-direction:row;align-items:flex-start;gap:8px;font-size:14px;font-weight:400}.modal .note-view .note-check.done{color:var(--muted)}.modal .note-view .note-check input{width:auto;margin:4px 0 0;padding:0}.auth-wrap{background:var(--bg);place-items:center;min-height:100%;padding:24px 16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:12px;padding:28px 24px;display:flex}.auth-brand{color:var(--accent-strong);font-size:20px;font-weight:800}.auth-card h1{margin:0 0 4px;font-size:22px}.auth-card label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.auth-card input[type=email],.auth-card input[type=password]{font:inherit;color:var(--text);border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 12px;font-size:15px}.auth-card input:focus{border-color:var(--accent);outline:none}.auth-card .auth-check{color:var(--text);flex-direction:row;align-items:center;gap:8px;font-size:13px}.auth-submit{justify-content:center;width:100%;padding:10px;font-size:15px}.auth-info{color:var(--accent-strong);margin:0;font-size:13px}.auth-links{justify-content:center;gap:14px;display:flex}.auth-links button{all:unset;cursor:pointer;color:var(--muted);font-size:13px}.auth-links button:hover{color:var(--text);text-decoration:underline}.account{flex-direction:column;gap:8px;display:flex}.account .row{flex-wrap:wrap;gap:8px}.sync-status{top:calc(10px + env(safe-area-inset-top,0px));z-index:80;background:var(--surface);border:1px solid var(--line);color:var(--muted);box-shadow:var(--shadow);border-radius:14px;padding:4px 12px;font-size:12px;position:fixed;left:50%;transform:translate(-50%)}.sync-status.offline{color:var(--danger)}.week-row{grid-template-columns:52px repeat(7,minmax(0,1fr))}.week-strip{grid-template-columns:52px minmax(0,1fr)}.allday-cell,.week-day-head,.day-col{min-width:0}.allday-cell .chip{white-space:normal;overflow-wrap:anywhere;word-break:break-all;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box}@media (width<=600px){.allday-cell{padding:3px 2px}.allday-cell .chip{padding:2px 4px;font-size:11px}.gutter.label{padding:4px 1px;font-size:9.5px}.week{overscroll-behavior:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scroll-padding-left:34px;display:block;overflow:auto;container-type:inline-size}.week>*{--col:calc((100cqw - 34px) / 4);width:calc(34px + 7 * var(--col))}.week-row{grid-template-columns:34px repeat(7, var(--col))}.week-strip{grid-template-columns:34px minmax(0,1fr)}.week-top{z-index:6;background:var(--surface);position:sticky;top:0}.week-scroll{overflow:visible}.week-day-head{scroll-snap-align:start}.gutter{z-index:5;background:var(--surface);position:sticky;left:0}.week-strip .gutter{background:#fdfbf3}.calendar.month-view{padding:0}.calendar.month-view .month{box-shadow:none;border-radius:0}.calendar.week-view{padding:0}.calendar.week-view .week{box-shadow:none;border-radius:0}.month .task-bar .bar-time{display:none}}.mobile-actions{display:none}@media (width<=600px){.topbar{padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top,0px));flex-wrap:nowrap;gap:6px}.topbar .brand,.topbar .actions{display:none}.nav{flex:0 auto;gap:2px;min-width:0}.nav h2{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0 4px;font-size:15px;overflow:hidden}.nav .icon-btn{width:26px;padding:0}.nav .btn.small{white-space:nowrap;padding:4px 9px}.seg{flex:none;padding:2px}.seg button{padding:4px 10px;font-size:13px}.mobile-actions{flex:none;align-items:center;gap:4px;margin-left:auto;display:flex;position:relative}.mobile-actions .btn.small{white-space:nowrap;padding:4px 8px}.top-menu{min-width:140px;position:absolute;top:calc(100% + 6px);left:auto;right:0}}.push-setting{margin-top:10px}.push-setting .row{justify-content:space-between;align-items:center;gap:8px;display:flex}.push-setting p{margin:4px 0 0;font-size:12px}
