:root{--paper:#f3eee4;--paper-raised:#fbf8f2;--ink:#1f1a16;--ink-muted:#6d6359;--line:#e4d8c6;--vermillion:#c44536;--saturday:#1a6fd4;--navy:#2c4a6e;--shadow:0 10px 30px #30201214;--topbar-h:0px;color:var(--ink);background:var(--paper);font-family:Zen Kaku Gothic New,Hiragino Sans,Yu Gothic UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{max-width:100%;min-height:100%;margin:0}html{overflow-x:clip}body{background:radial-gradient(1200px 500px at 10% -10%, #efe4d0 0%, transparent 55%), radial-gradient(900px 400px at 100% 0%, #e7d7c4 0%, transparent 50%), var(--paper)}button,input,select{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;font-family:Shippori Mincho,Yu Mincho,serif;font-weight:700}p{margin:0}.app{width:100%;min-width:0;max-width:min(1440px,100%);margin:0 auto;padding:0 20px 64px}.workspace{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;min-width:0;max-width:100%;display:grid}.workspace.has-tray,.workspace.has-tray.is-tray-collapsed{grid-template-columns:minmax(0,1fr)}.workspace.has-tray>main{grid-area:1/1;min-width:0;max-width:100%}.week-calendar-row{grid-template-columns:minmax(0,1fr);align-items:stretch;column-gap:18px;min-width:0;display:grid;position:relative}.week-calendar-row.has-tray{grid-template-columns:minmax(0, 1fr) var(--tray-width,168px)}.week-calendar-row:not(.has-tray) .week-jump-actions{pointer-events:auto}@media (width>=1201px){.week-calendar-row:not(.has-tray){grid-template-columns:minmax(0, 1fr) var(--tray-width,168px)}.week-calendar-row:not(.has-tray) .calendar-panel{grid-area:1/1/auto/-1;width:100%}.week-calendar-row:not(.has-tray) .tray-aside.is-tools-only{pointer-events:none;z-index:46;grid-area:1/2;align-self:stretch}}.tray-aside{flex-direction:column;align-self:stretch;align-items:stretch;gap:8px;width:100%;min-width:0;max-height:100dvh;display:flex;position:sticky;top:0}.tray-aside .week-jump-actions{margin-top:-44px}.week-jump-actions{z-index:46;flex:none;justify-content:center;align-self:center;align-items:center;gap:8px;width:max-content;max-width:100%;display:flex;position:sticky;top:12px}.tray-stack{flex-direction:column;flex:auto;align-items:stretch;width:100%;min-height:0;display:flex}.tray-column{flex-direction:column;flex:auto;align-items:center;gap:10px;width:100%;min-height:0;max-height:none;display:flex;position:relative}.tray-resize{cursor:ew-resize;touch-action:none;z-index:6;background:0 0;border:0;place-items:center;width:18px;padding:0;display:grid;position:absolute;top:0;bottom:0;left:-9px}.tray-resize-grip{border:1px solid var(--line);background:radial-gradient(circle at 50% 14px, var(--ink-muted) 1.15px, transparent 1.35px), radial-gradient(circle at 50% 26px, var(--ink-muted) 1.15px, transparent 1.35px), radial-gradient(circle at 50% 38px, var(--ink-muted) 1.15px, transparent 1.35px), var(--paper-raised);width:8px;height:52px;box-shadow:var(--shadow);border-radius:999px}.tray-resize:hover .tray-resize-grip,.tray-resize:active .tray-resize-grip{border-color:var(--navy);background:radial-gradient(circle at 50% 14px, var(--navy) 1.15px, transparent 1.35px), radial-gradient(circle at 50% 26px, var(--navy) 1.15px, transparent 1.35px), radial-gradient(circle at 50% 38px, var(--navy) 1.15px, transparent 1.35px), #fffdf8}.subject-tray{flex-direction:column;flex:auto;width:100%;min-height:0;padding:16px 14px;display:flex;overflow:hidden}.subject-tray h3,.subject-tray .tray-tools,.subject-tray .tray-add{flex:none}.tray-scroll{overscroll-behavior:contain;flex:auto;min-height:0;margin-top:12px;padding-right:2px;overflow:hidden auto}.subject-tray h3{font-size:16px}.subject-tray .muted{margin-top:6px;font-size:12px;line-height:1.45}.subject-stock{gap:8px;margin:0;padding:0;list-style:none;display:grid}.subject-stock li{border:1px dashed var(--subject-color,var(--line));cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;background:#fffdf8;border-radius:12px;align-items:center;gap:8px;min-height:40px;padding:8px 10px;font-size:14px;font-weight:500;transition:transform .18s,box-shadow .18s,opacity .18s,border-color .18s;display:flex;position:relative}.subject-stock li span{flex:1;min-width:0}.subject-tray .color-dot{cursor:pointer;flex-shrink:0;width:22px;height:22px}.subject-tray .text-btn{flex-shrink:0;font-size:12px}.subject-stock li:active{cursor:grabbing}body.is-placing-subject,body.is-placing-subject *{cursor:none!important}.subject-stock li.is-dragging,.subject-stock li.is-grabbed{opacity:.38;border-style:solid;transform:scale(.96)}.subject-tray .chip-row{margin:0 0 12px}.subject-tray .chip{padding:4px 8px;font-size:12px}.tray-add{gap:8px;margin:10px 0 0;display:grid}.tray-add input{border:1px solid var(--line);background:#fffdf8;border-radius:10px;width:100%;min-width:0;padding:8px 10px}.tray-add .primary{width:100%}.drop-well{border:1px dashed var(--line);border-radius:14px;padding:18px 14px}.drop-well.is-drop-target{box-shadow:0 0 0 2px var(--vermillion)}.topbar{background:var(--paper);box-shadow:0 1px 0 var(--line);margin:0 0 24px;padding:16px 0 14px}.topbar-main{justify-content:space-between;align-items:flex-end;gap:12px;width:100%;min-width:0;display:flex}.brand{flex:none;align-items:center;gap:12px;min-width:0;display:flex}.brand>div strong{font-family:Shippori Mincho,serif;font-size:20px;font-weight:700;line-height:1.2;display:block}.brand-exam{appearance:none;min-width:0;max-width:100%;color:inherit;text-align:center;cursor:pointer;background:0 0;border:0;border-radius:12px;flex:none;align-content:center;justify-items:center;gap:4px;padding:6px 16px;display:grid}.brand-exam:hover{background:#2c4a6e0f}.brand-exam strong{font-family:Shippori Mincho,serif;font-size:20px;font-weight:700;line-height:1.2}.brand-exam p{margin:0;font-size:22.5px}.brand-exam em{color:var(--vermillion);font-size:1.2em;font-style:normal;font-weight:700}.seal{background:var(--vermillion);color:#fff8ef;border-radius:50%;place-items:center;width:44px;height:44px;font-family:Shippori Mincho,serif;font-size:22px;display:grid;box-shadow:0 6px #9c2f24}.tabs{background:#efe6d6;border-radius:999px;flex:none;padding:4px;display:flex}.tabs button{cursor:pointer;color:var(--ink-muted);background:0 0;border:0;border-radius:999px;padding:8px 14px}.tabs button.active{background:var(--paper-raised);color:var(--ink);box-shadow:var(--shadow)}.pager{flex:none;justify-content:center;align-items:center;min-width:0;display:flex}.study-clock{flex:none;justify-content:center;align-items:flex-end;gap:8px;min-width:0;display:flex}.study-clock-face{align-content:start;justify-items:start;gap:2px;min-width:7.5rem;display:grid}.study-clock-digits{letter-spacing:.02em;white-space:nowrap;font-variant-numeric:tabular-nums;grid-template-columns:4.6em 8.6em;align-items:baseline;column-gap:.35em;font-family:Shippori Mincho,serif;font-size:18px;font-weight:700;line-height:1.25;display:grid}.study-clock-digits.is-active{color:var(--vermillion)}.study-clock-digits.is-slot-hidden{visibility:hidden}.brand-qr{border:1px solid var(--line);appearance:none;width:52px;height:52px;font:inherit;color:inherit;cursor:zoom-in;background:#fffdf8;border-radius:8px;flex:none;place-items:center;margin:0;padding:4px;display:grid}.brand-qr:hover,.brand-qr:focus-visible{border-color:var(--navy)}.brand-qr svg{width:100%;height:100%;display:block}.study-clock-qr{border:1px solid var(--line);appearance:none;width:52px;height:52px;font:inherit;color:inherit;cursor:zoom-in;background:#fffdf8;border-radius:8px;flex:none;place-items:center;margin:0 0 1px 6px;padding:4px;display:grid}.study-clock-qr:hover,.study-clock-qr:focus-visible{border-color:var(--navy)}.study-clock-qr svg{width:100%;height:100%;display:block}.qr-lightbox{z-index:90;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#120c08a3;place-items:center;padding:24px 16px;display:grid;position:fixed;inset:0}.qr-lightbox-shot{background:#fffdf8;border-radius:28px;justify-items:center;gap:14px;width:min(22.5rem,100vw - 32px);padding:28px 22px 20px;animation:.22s ease-out qr-lightbox-pop;display:grid;position:relative;box-shadow:0 28px 70px #0a060266}@keyframes qr-lightbox-pop{0%{opacity:.35;transform:scale(.86)}to{opacity:1;transform:scale(1)}}.qr-lightbox-code{aspect-ratio:1;background:#fff;border-radius:22px;width:min(18.5rem,100vw - 76px);padding:14px;box-shadow:0 10px 28px #3020121a}.qr-lightbox-code svg{width:100%;height:100%;display:block}.qr-lightbox-kicker{color:var(--ink);margin:0;font-size:16px;font-weight:700}.qr-lightbox-url{max-width:100%;color:var(--ink-muted);word-break:break-all;text-align:center;margin:0;font-size:12px;line-height:1.4}.qr-lightbox-close{width:36px;height:36px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;font-size:26px;line-height:1;position:absolute;top:8px;right:8px}.qr-lightbox-close:hover,.qr-lightbox-close:focus-visible{color:var(--ink)}.study-clock-label{color:var(--ink-muted);white-space:nowrap;min-height:1.2em;font-size:11px}.study-clock-toggles{flex-shrink:0;gap:4px;display:grid}.study-clock-toggle{appearance:none;border:1px solid var(--line);background:var(--paper-raised);color:var(--ink-muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;line-height:1.2}.study-clock-toggle.is-on{background:var(--navy);border-color:var(--navy);color:#fff8ef}.study-clock-toggle:disabled{opacity:.45;cursor:default}.study-clock-solo{z-index:80;background:radial-gradient(1200px 500px at 10% -10%, #efe4d0 0%, transparent 55%), radial-gradient(900px 400px at 100% 0%, #e7d7c4 0%, transparent 50%), var(--paper);width:100%;max-width:100vw;color:var(--ink);grid-template-rows:auto minmax(0,1fr);display:grid;position:fixed;inset:0;overflow:hidden}.study-clock-solo-bar{justify-content:flex-end;align-items:center;gap:10px;padding:20px 24px 0;display:flex}.study-clock-solo-bar .study-clock-toggle{padding:8px 16px;font-size:14px}.study-clock-solo-body{flex-direction:column;justify-content:center;align-items:center;gap:18px;width:100%;min-width:0;min-height:0;padding:24px 4vw 48px;display:flex;overflow:hidden}.study-clock-solo-subject{text-align:center;font-family:Shippori Mincho,serif;font-size:clamp(22px,4vw,48px);font-weight:700}.study-clock-solo-line{flex-direction:column;align-items:center;gap:12px;width:100%;min-width:0;max-width:100%;margin:0;display:flex}.study-clock-solo-line>span{color:var(--ink-muted);font-size:clamp(18px,3vw,32px)}.study-clock-solo-time{font-variant-numeric:tabular-nums;justify-content:center;align-items:baseline;max-width:100%;margin:0;font-family:Shippori Mincho,serif;font-size:min(13vw,22dvh,160px);font-weight:700;line-height:1;display:flex}.study-clock-solo-time span{box-sizing:content-box;width:.62em;min-width:0;color:inherit;text-align:center;flex:none;font-size:1em;display:block;overflow:hidden}.study-clock-solo-time .is-sep{width:.8em}.study-clock-solo-line.is-active>span,.study-clock-solo-line.is-active .study-clock-solo-time{color:var(--vermillion)}.pager h1{text-align:center;min-width:0;font-size:22px}.icon-btn,.ghost,.primary,.text-btn,.chip{cursor:pointer}.icon-btn{border:1px solid var(--line);background:var(--paper-raised);border-radius:10px;width:36px;height:36px}.tray-column>.scroll-fab{z-index:46;flex:none;width:max-content;margin-top:2px}.tray-column .tray-tools{justify-content:center;align-items:center;gap:6px;width:100%;margin:0 0 12px;display:flex}.tray-column.is-collapsed .tray-tools{margin:0}.tray-column .tray-today{white-space:nowrap;padding:6px 8px;font-size:13px}.tray-column .scroll-fab{gap:6px}.tray-column .scroll-fab button{width:32px;height:32px;box-shadow:none;font-size:16px}.scroll-fab{flex-direction:row;justify-content:center;gap:8px;display:flex}.scroll-fab button{border:1px solid var(--line);background:var(--paper-raised);width:44px;height:44px;box-shadow:var(--shadow);cursor:pointer;color:var(--ink);border-radius:50%;font-size:20px;line-height:1}.scroll-fab button:hover:not(:disabled){border-color:var(--navy);color:var(--navy)}.scroll-fab button:disabled{opacity:.35;cursor:default}.ghost,.primary{border:1px solid var(--line);background:var(--paper-raised);border-radius:999px;padding:8px 16px}.primary{background:var(--vermillion);border-color:var(--vermillion);color:#fff8ef}.primary:disabled{opacity:.45;cursor:default}.text-btn{color:var(--ink-muted);background:0 0;border:0;font-size:13px}.text-btn.danger:hover,.text-btn:hover{color:var(--vermillion)}.view{gap:18px;min-width:0;max-width:100%;display:grid}.view.week-layout{gap:10px}.panel{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;min-width:0;padding:20px}.welcome{justify-items:start;gap:10px;margin-bottom:18px;display:grid}.hero-row{grid-template-columns:minmax(16rem,calc(28% + 20px)) minmax(0,1fr);align-items:stretch;gap:18px;display:grid}.hero-row.is-single{grid-template-columns:1fr}.panel-toggles{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.panel-toggles>button,.week-jump-actions .ghost,.week-jump-actions .scroll-fab button{appearance:none;border:1px solid var(--line);background:var(--paper-raised);cursor:pointer;color:var(--ink-muted);box-shadow:none;font:inherit;border-radius:999px;width:auto;min-width:0;height:auto;padding:6px 14px;line-height:1.2}.panel-toggles>button.active{background:var(--navy);border-color:var(--navy);color:#fff8ef}.week-jump-actions .scroll-fab button{text-align:center;min-width:2.25rem;padding:6px 10px;font-size:16px}.week-jump-actions .scroll-fab button:hover:not(:disabled){border-color:var(--navy);color:var(--navy)}.week-jump-actions .scroll-fab button:disabled{opacity:.35;cursor:default}.hero-row>.panel{flex-direction:column;display:flex}.hero-row .progress-list{flex:1}.study-wd.sun{color:var(--vermillion)}.study-wd.sat{color:var(--saturday)}.kicker{color:var(--ink-muted);margin-bottom:8px;font-size:13px}.countdown h2{font-size:36px}.countdown em{color:var(--vermillion);font-style:normal}.muted{color:var(--ink-muted);font-size:14px}.empty{margin-top:12px}.progress-list,.goal-list,.task-list,.subject-list,.mini-break{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.progress-meta,.mini-break li{justify-content:space-between;gap:12px;font-size:14px;display:flex}.progress-meta span,.mini-break li{align-items:center;gap:8px;display:flex}.swatch{border-radius:50%;width:10px;height:10px;display:inline-block}.bar{background:#eee4d4;border-radius:99px;height:8px;margin-top:6px;overflow:hidden}.bar.thin{height:5px}.bar-fill{background:var(--vermillion);border-radius:inherit;height:100%}.month-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.year-months-head{margin-bottom:8px}.year-months-head .muted{margin-top:6px}.term-block{margin-top:20px}.term-label{align-items:baseline;gap:8px;margin:0 0 10px;font-size:16px;display:flex}.term-label small{color:var(--ink-muted);font-size:13px;font-weight:500}.month-card{appearance:none;text-align:left;border:1px solid var(--line);cursor:pointer;background:#fffdf8;border-radius:24px;flex-direction:column;align-items:stretch;width:100%;min-width:0;min-height:156px;padding:16px;display:flex}.month-card.is-empty{background:#f7f1e6}.month-card .month-num{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.month-card .month-num strong{color:var(--vermillion);font-family:Shippori Mincho,serif;font-size:22px;font-weight:700}.month-card .month-num small{color:var(--ink-muted);font-size:12px;font-weight:500}.now-badge{color:#fff8ef;background:var(--vermillion);border-radius:999px;padding:2px 8px;font-size:11px;font-style:normal;font-weight:700}.month-status{margin-top:14px;font-size:18px;line-height:1.35}.month-status small{color:var(--ink-muted);font-size:13px;font-weight:500}.month-hint{color:var(--ink-muted);margin-top:6px;font-size:13px;line-height:1.45}.month-card .bar{width:100%;margin-top:auto}.month-card.is-current{border-color:var(--vermillion);box-shadow:0 0 0 1px var(--vermillion)}.year-range{margin:6px 0 0}.add-row{grid-template-columns:1fr 180px auto;gap:8px;margin:12px 0 4px;display:grid}.task-form,.task-list li{grid-template-columns:18px 16px max-content minmax(8rem,1fr) 4.75rem;grid-template-areas:"lead check when what action";align-items:center;gap:10px;width:100%;min-width:0;margin:0;padding:10px 12px;display:grid}.task-list li{cursor:grab}.task-list li.is-dragging,.month-agenda-item.is-dragging{cursor:grabbing}.task-form>.task-lead,.task-list li>.task-lead{grid-area:lead}.task-form>.task-lead-check,.task-list li>input[type=checkbox]{grid-area:check}.task-when{grid-area:when;align-items:center;gap:10px;display:flex}.task-what{grid-area:what;grid-template-columns:8.5rem minmax(8rem,1fr);gap:10px;min-width:0;display:grid}.task-action{grid-area:action}.subject-first .task-form,.subject-first .task-list li{grid-template-columns:18px 16px minmax(8rem,1fr) max-content 4.75rem;grid-template-areas:"lead check what when action"}.task-subject{font-weight:700}.task-form,.task-list li{box-shadow:inset 4px 0 0 var(--subject-color,transparent)}.task-form{background:#efe6d6;border:1px solid #dccdb8;border-radius:14px;margin:12px 0 8px}.task-lead{flex-shrink:0;width:12px}.task-lead-check,.task-list li>input[type=checkbox]{flex-shrink:0;width:16px;height:16px;margin:0}.task-lead-check{visibility:hidden;pointer-events:none}.task-subject,.task-title,.task-action{width:100%;min-width:0}.task-action{text-align:center;min-height:42px;padding-left:8px;padding-right:8px}.task-delete{background:var(--navy);border-color:var(--navy);color:#fff8ef}.task-delete:hover{filter:brightness(1.1)}.add-row input,.add-row select,.task-form input,.task-form select,.stack-form input,.stack-form select,.field input,.subject-row input,.minutes input,.task-list .task-title,.task-list .task-subject{border:1px solid var(--line);background:#fffdf8;border-radius:10px;padding:10px 12px}.goal-list li,.subject-row{border-top:1px dashed var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.task-list li{border-top:1px dashed var(--subject-color,var(--line));cursor:grab;padding:10px 12px}.task-list li.is-dragging,.week-tasks li.is-dragging{opacity:.4}.task-list li.drop-before{box-shadow:inset 4px 0 0 var(--subject-color,transparent), inset 0 3px 0 var(--vermillion)}.week-tasks li.drop-before{box-shadow:0 -3px 0 var(--vermillion)}.week-col.is-drop-target{box-shadow:0 0 0 2px var(--vermillion)}.goal-list label{flex:1;align-items:center;gap:10px;display:flex}.task-list .minutes{flex:none}.goal-list li.is-dragging{opacity:.4}.goal-list li{cursor:grab}.goal-list li.is-editing{cursor:default}.goal-list li.drop-before{box-shadow:0 -3px 0 var(--vermillion)}.goal-list li.drop-after{box-shadow:0 3px 0 var(--vermillion)}.goal-drag{cursor:grab;color:var(--ink-muted);letter-spacing:-2px;-webkit-user-select:none;user-select:none;flex:none;padding:0 2px;line-height:1}.goal-list.compact li{flex-wrap:wrap}.done .task-title{color:var(--ink-muted);text-decoration:line-through}.tag{border-radius:999px;padding:2px 8px;font-size:12px;font-style:normal;font-weight:500}.week-layout{grid-template-columns:1fr;min-width:0;max-width:100%}.calendar-panel{min-width:0;overflow:visible}.month-goals{border-bottom:1px dashed var(--line);margin-bottom:16px;padding-bottom:16px}.month-goals .stack-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.month-goals .stack-form input{flex:14rem;min-width:12rem}.month-goals .stack-form select,.month-goals .stack-form .primary{flex:none}.month-goals .goal-list{margin-top:4px}.month-goals .done span{color:var(--ink-muted);text-decoration:line-through}.goal-edit{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.goal-edit input,.goal-edit select{border:1px solid var(--line);background:#fffdf8;border-radius:10px;padding:8px 10px}.goal-edit input{flex:12rem;min-width:8rem}.panel>.month-goals:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.week-board{--hour-width:48px;--track-hours:18;--date-col:8.5rem;cursor:grab;min-width:0;max-width:100%;overflow:visible}.week-board.is-panning,.week-hscroll.is-panning,.week-board.is-track-editing{cursor:grabbing;-webkit-user-select:none;user-select:none}.week-board.is-track-editing.is-copying{cursor:copy}.week-board.is-selecting{cursor:crosshair;-webkit-user-select:none;user-select:none}.week-marquee{z-index:70;pointer-events:none;box-sizing:border-box;border:1.5px solid var(--navy);background:color-mix(in srgb, var(--navy) 14%, transparent);border-radius:4px;position:fixed}.week-hscroll{cursor:grab;overscroll-behavior-x:contain;touch-action:pan-x pan-y;min-width:0;max-width:100%;overflow:hidden visible}.week-cal-head{z-index:20;background:var(--paper-raised);min-width:0;max-width:100%;box-shadow:0 12px 18px #f3eee4f5, 0 -12px 0 var(--paper-raised);padding-bottom:8px;position:sticky;top:0}.week-month-bar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:2px 0 10px;display:grid}.week-month-nav{grid-column:2;justify-content:center;align-items:center;gap:8px;display:flex}.week-month-bar .month-clip-actions{grid-column:1;justify-self:start}.week-month-bar h3{text-align:center;min-width:10rem;margin:0;font-size:20px}.week-jump-actions .scroll-fab{gap:8px}.month-clip-actions{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.month-clip-actions .ghost{padding:4px 10px;font-size:12px}.week-time-head{z-index:1;grid-template-columns:var(--date-col) minmax(0, 1fr);background:var(--paper-raised);border:1px solid var(--line);width:100%;min-width:0;box-shadow:none;border-radius:18px;margin:0;display:grid;position:relative;top:auto;overflow:hidden}.week-time-head-date{border-right:1px dashed var(--line);min-width:0;color:var(--ink-muted);background:#f7f1e6;border-radius:17px 0 0 17px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px 4px;font-size:12px;font-weight:700;display:flex}.hour-zoom{gap:2px;display:flex}.hour-zoom button{border:1px solid var(--line);background:var(--paper-raised);width:22px;height:20px;color:var(--ink);cursor:pointer;border-radius:6px;padding:0;font-size:14px;line-height:1}.hour-zoom button:hover:not(:disabled){border-color:var(--navy);color:var(--navy)}.hour-zoom button:disabled{opacity:.4;cursor:default}.week-time-scale-clip{scrollbar-width:none;min-width:0;height:100%;overflow:auto hidden}.week-time-scale-clip::-webkit-scrollbar{display:none}.week-time-scale-wrap{width:100%;height:100%;min-width:calc(var(--track-hours) * var(--hour-width));position:relative}.week-scale-resize{cursor:ew-resize;touch-action:none;z-index:2;background:0 0;border:0;width:10px;padding:0;position:absolute;top:0;bottom:0;right:0}.week-scale-resize:hover,.week-scale-resize:active{background:#2c4a6e1f}.week-time-scale{grid-template-columns:repeat(var(--track-hours), minmax(var(--hour-width), 1fr));font-variant-numeric:tabular-nums;width:100%;color:var(--ink-muted);padding:6px 0 22px;font-size:11px;font-weight:700;display:grid}.week-time-scale span{text-align:left;border-left:1px solid var(--line);padding-left:3px}.week-time-scale span:first-child{border-left:0}.week-time-end{font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:11px;font-weight:700;position:absolute;top:6px;right:2px}.week-now-line{z-index:6;background:var(--vermillion);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.week-now-line.is-day{opacity:.32;width:1px}.week-now-line.is-today{opacity:1;width:2px;box-shadow:0 0 0 1px #c445361f}.week-now-dot{background:var(--vermillion);width:11px;height:11px;box-shadow:0 0 0 2px var(--paper-raised);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.week-now-label{background:var(--paper-raised);color:var(--vermillion);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:13px;font-weight:800;line-height:1.25;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.week-now-line.is-end .week-now-label{left:auto;right:8px}.week-grid{grid-template-columns:repeat(21,minmax(148px,1fr));gap:10px;min-width:3240px;display:grid}.week-col{border:1px solid var(--line);background:#fffdf8;border-radius:24px;flex-direction:column;min-height:340px;display:flex;overflow:hidden}.week-col.is-today{border-color:var(--vermillion)}.week-col.is-selected{box-shadow:0 0 0 2px var(--navy)}.week-col.is-adjacent{opacity:.7}.week-col-head{border:0;border-bottom:1px dashed var(--line);cursor:pointer;background:#f7f1e6;flex-shrink:0;justify-items:center;gap:2px;width:100%;padding:10px 6px 8px;display:grid}.week-col-head span{color:var(--ink-muted);font-size:12px}.week-col-head .sun{color:var(--vermillion)}.week-col-head .sat{color:var(--saturday)}.week-col-head strong{font-size:20px}.week-col-head em{color:var(--ink-muted);font-size:12px;font-style:normal}.week-empty{color:var(--ink-muted);pointer-events:none;background:0 0;border:0;flex:1;place-items:center;padding:12px 8px;font-size:13px;display:grid}.week-col.is-drop-target .week-empty{color:var(--vermillion)}.week-tasks{flex-direction:column;flex:1;gap:8px;margin:0;padding:8px;list-style:none;display:flex}.week-tasks li{border:1px solid var(--line);background:var(--paper-raised);border-radius:12px;align-items:flex-start;gap:6px;padding:8px;display:flex}.week-tasks label{flex:1;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"check time""check mins""check subject""check title";align-items:start;gap:2px 6px;min-width:0;font-size:13px;line-height:1.35;display:grid}.week-tasks label:not(:has(.week-subject)){grid-template-areas:"check time""check mins""check title"}.week-tasks input[type=checkbox]{grid-area:check;margin:3px 0 0}.week-time{color:var(--ink-muted);font-variant-numeric:tabular-nums;grid-area:time;font-size:11px}.week-mins{color:var(--ink-muted);grid-area:mins;font-size:11px}.week-subject{grid-area:subject;font-size:12px;font-weight:700}.week-tasks .task-title{overflow-wrap:anywhere;grid-area:title}.week-tasks .swatch{flex-shrink:0;margin-top:4px}.week-tasks .done .task-title{color:var(--ink-muted);text-decoration:line-through}.side-stack{gap:18px;min-width:0;display:grid}.calendar-panel .section-head{margin-bottom:14px}.month-agenda{gap:8px;display:grid}.week-agenda{gap:8px;width:100%;min-width:0;display:grid}.week-agenda .month-agenda-row{grid-template-columns:var(--date-col) minmax(0, 1fr);width:100%;min-width:0;overflow:hidden}.week-agenda .month-agenda-date{border-radius:17px 0 0 17px;position:static}.week-agenda .month-agenda-body{scrollbar-width:none;min-width:0;padding:4px 0 6px;overflow:auto hidden;container-type:inline-size}.week-agenda .month-agenda-body::-webkit-scrollbar{display:none}.week-day-track{--lanes:1;--lane-h:7.75rem;width:100%;min-width:calc(var(--track-hours) * var(--hour-width));min-height:var(--lane-h);height:calc(var(--lanes) * var(--lane-h) + 10px);background-image:repeating-linear-gradient(to right, transparent 0, transparent calc(100% / var(--track-hours) - 1px), var(--line) calc(100% / var(--track-hours) - 1px), var(--line) calc(100% / var(--track-hours)));position:relative}.week-day-track.is-empty{height:var(--lane-h)}.week-day-track .cal-empty{z-index:0;width:100cqi;height:var(--lane-h);pointer-events:none;place-items:center;display:grid;position:sticky;left:0}.week-day-track .month-agenda-item,.subject-place-ghost{top:calc(var(--lane,0) * var(--lane-h) + 6px);box-sizing:border-box;text-align:center;border:1px solid var(--subject-color,var(--line));min-width:0;max-width:none;box-shadow:inset 3px 0 0 var(--subject-color,transparent);z-index:1;cursor:grab;touch-action:none;background:#fffdf8;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 6px;font-size:20px;line-height:1.2;display:flex;position:absolute;overflow:visible}.week-day-track .month-agenda-item .week-time,.week-day-track .month-agenda-item .week-range,.subject-place-ghost .week-time,.subject-place-ghost .week-range{align-items:center}.week-resize{cursor:ew-resize;touch-action:none;z-index:4;background:0 0;border:0;width:10px;padding:0;position:absolute;top:0;bottom:0}.week-resize-start{border-radius:10px 0 0 10px;left:0}.week-resize-end{border-radius:0 10px 10px 0;right:0}.week-resize:hover,.week-resize:active{background:#2c4a6e29}.task-list li.is-overlap{border-color:var(--vermillion);box-shadow:inset 4px 0 0 var(--vermillion);background:#fbeeee}.week-day-track .month-agenda-item.is-overlap{border-color:var(--vermillion);box-shadow:0 0 0 1px var(--vermillion);z-index:2;background:#fbeeee}.week-day-track .month-agenda-item.is-holding{z-index:5;box-shadow:0 0 0 3px var(--subject-color,var(--navy));transition:transform .18s,box-shadow .18s;transform:scale(.97)}.week-day-track .month-agenda-item.is-dragging{cursor:grabbing;pointer-events:none;opacity:.4}.week-day-track .month-agenda-item.is-place-preview{pointer-events:none;opacity:1;cursor:grabbing}.subject-place-ghost{z-index:90;pointer-events:none;min-width:0;max-width:none;height:calc(7.75rem - 12px);box-shadow:inset 3px 0 0 var(--subject-color,transparent), 0 10px 24px #3020122e;flex:none;margin:0;position:fixed;top:auto;left:auto;transform:translateY(-50%)}.subject-place-ghost .week-subject{font-size:13.3333px;line-height:1.2}.subject-place-ghost .task-title{text-overflow:ellipsis;overflow-wrap:normal;white-space:nowrap;align-self:stretch;min-width:0;max-width:100%;font-size:13.3333px;font-weight:500;line-height:1.2;overflow:hidden}.subject-place-ghost.is-copy-preview{outline:2px dashed var(--navy)}.week-day-track .month-agenda-item.is-copy-source{opacity:.55}.week-day-track .month-agenda-item.is-task-selected{box-shadow:0 0 0 2px var(--navy);z-index:3}.week-day-track .month-agenda-item.is-dragging,.week-day-track .month-agenda-item.drop-before{z-index:3}.month-agenda-item.is-overlap .week-time,.task-list li.is-overlap .end-time,.task-list li.is-overlap .mins,.task-list li.is-overlap .clock-trigger{color:var(--vermillion)}.task-list li.is-overlap .clock-trigger{background:#fff7f5;border-color:#e8b4ad}.week-agenda .month-agenda-row.is-adjacent{opacity:.78}.month-agenda-row{appearance:none;grid-template-columns:var(--date-col) minmax(0, 1fr);border:1px solid var(--line);cursor:pointer;text-align:left;width:100%;min-width:0;color:inherit;background:#fffdf8;border-radius:18px;align-items:stretch;padding:0;display:grid;overflow:hidden}.month-agenda-row.is-today{border-color:var(--vermillion)}.month-agenda-row.is-selected{box-shadow:0 0 0 2px var(--navy)}.week-agenda .month-agenda-row.is-selected{border-color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy);background:#f3f6fb}.week-agenda .month-agenda-row.is-selected.is-today{border-color:var(--vermillion)}.week-agenda .month-agenda-row.is-selected .month-agenda-date{background:#dfe8f3}.month-agenda-row.is-drop-target{box-shadow:0 0 0 2px var(--vermillion)}.week-agenda .month-agenda-row.is-drop-target{box-shadow:none;outline:2px solid var(--vermillion)}.month-agenda-date{appearance:none;border:0;border-right:1px dashed var(--line);min-width:0;color:inherit;background:#f7f1e6;align-content:center;justify-items:center;gap:2px;padding:10px 6px;display:grid}.agenda-date-main{appearance:none;width:100%;color:inherit;font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;align-content:center;justify-items:center;gap:2px;padding:0;display:grid}.day-clip-actions{gap:4px;width:100%;margin-top:6px;display:grid}.day-clip-actions .ghost{width:100%;padding:3px 6px;font-size:11px}.week-agenda .month-agenda-row.is-day-copied .month-agenda-date{box-shadow:inset 3px 0 0 var(--navy)}.month-agenda-date .agenda-date-line{white-space:nowrap;align-items:baseline;gap:1px;display:inline-flex}.month-agenda-date strong{white-space:nowrap;font-size:20px;font-weight:700;line-height:1}.month-agenda-date .agenda-wd{letter-spacing:.02em;font-family:Shippori Mincho,serif;font-size:20px;font-weight:700;line-height:1}.month-agenda-date.sun,.month-agenda-date.sun strong,.month-agenda-date .agenda-wd.sun{color:var(--vermillion)}.month-agenda-date.sat,.month-agenda-date.sat strong,.month-agenda-date .agenda-wd.sat{color:var(--saturday)}.month-agenda-date.sun{background:#fbeeee}.month-agenda-date.sat{background:#e8f1fc}.month-agenda-date em{font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:12px;font-style:normal;font-weight:700}.month-agenda-body{flex-direction:column;align-items:stretch;gap:6px;min-width:0;padding:10px 4px 10px 12px;display:flex}.month-agenda-item .week-time{white-space:nowrap;flex-direction:column;align-items:flex-start;font-size:.72em;font-weight:700;line-height:1.25;display:flex}.month-agenda-item .week-range{flex-direction:column;align-items:flex-start;display:flex}.month-agenda-slots{overscroll-behavior-x:contain;flex-wrap:nowrap;flex:1;align-items:stretch;gap:0;min-width:0;display:flex;overflow-x:auto}.month-agenda-item{cursor:grab;flex-direction:column;flex:none;align-items:flex-start;gap:2px;min-width:10rem;max-width:15.75rem;padding:2px 12px 2px 0;font-size:19.5px;line-height:1.35;display:flex}.week-agenda .month-agenda-item{max-width:none;font-size:20px}.week-agenda .month-agenda-item .week-subject{font-size:13.3333px;line-height:1.2}.month-agenda-item .week-subject{white-space:nowrap;font-size:13.3333px}.month-agenda-item label{align-self:center;margin:0;display:flex}.month-agenda-item .week-time,.month-agenda-item .week-mins,.month-agenda-item .week-subject,.month-agenda-item .task-title{grid-area:auto}.month-agenda-item .week-mins{font-size:inherit;white-space:nowrap;margin-left:0;font-weight:500}.month-agenda-item .task-title{overflow-wrap:anywhere}.week-agenda .month-agenda-item .task-title{text-overflow:ellipsis;overflow-wrap:normal;white-space:nowrap;align-self:stretch;min-width:0;max-width:100%;font-size:13.3333px;font-weight:500;line-height:1.2;overflow:hidden}.week-agenda .month-agenda-item .task-title.is-empty{font-size:13.3333px;font-weight:500;line-height:1.2}.month-agenda-item.subject-place-ghost{z-index:90;pointer-events:none;text-align:center;box-sizing:border-box;border:1px solid var(--subject-color,var(--line));width:auto;min-width:0;max-width:none;height:calc(7.75rem - 12px);box-shadow:inset 3px 0 0 var(--subject-color,transparent), 0 10px 24px #3020122e;cursor:none;background:#fffdf8;border-radius:10px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;margin:0;padding:4px 6px;font-size:20px;line-height:1.2;display:flex;position:fixed;top:auto;left:auto;transform:translateY(-50%)}.month-agenda-item.subject-place-ghost .week-time,.month-agenda-item.subject-place-ghost .week-range{align-items:center}.month-agenda-item.subject-place-ghost .week-subject{font-size:13.3333px;line-height:1.2}.month-agenda-item.subject-place-ghost .task-title{text-overflow:ellipsis;overflow-wrap:normal;white-space:nowrap;align-self:stretch;min-width:0;max-width:100%;font-size:13.3333px;font-weight:500;line-height:1.2;overflow:hidden}.week-agenda .month-agenda-item .task-title-input{border:1px solid var(--navy);width:12rem;min-width:6rem;max-width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:1px 6px;font-size:13.3333px;font-weight:500;line-height:1.35}.week-agenda .month-agenda-item .week-subject-select{border:1px solid var(--navy);max-width:100%;font:inherit;background:#fff;border-radius:8px;padding:1px 4px;font-size:13.3333px;font-weight:700;line-height:1.35}.month-agenda-item+.month-agenda-item{border-left:1px dashed var(--line);padding-left:12px}.month-agenda-item.done .task-title{color:var(--ink-muted);text-decoration:none}.week-day-track .month-agenda-item.done{color:var(--ink-muted);background:#e6e2dc}.week-day-track .month-agenda-item.done .week-time,.week-day-track .month-agenda-item.done .task-title{color:var(--ink-muted);filter:grayscale();text-decoration:none}.month-agenda-item .task-title.is-empty{color:var(--ink-muted);font-size:13.3333px;font-weight:500;line-height:1.2}.month-agenda-item.is-dragging{opacity:.4}.month-agenda-item.drop-before{box-shadow:inset 3px 0 0 var(--vermillion)}.cal-empty{color:var(--ink-muted);font-size:24px}.stat-big{font-family:Shippori Mincho,serif;font-size:34px}.stat-big small{color:var(--ink-muted);margin-left:6px;font-size:16px}.section-head{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:8px 12px;min-width:0;display:flex}.section-head h3{white-space:nowrap;flex:none;min-width:max-content;overflow:visible}.scope-tabs{background:#efe6d6;border:2px solid #8a7c6c;border-radius:12px;flex-wrap:nowrap;flex:none;padding:0;display:flex;overflow:hidden}.scope-tabs button{cursor:pointer;color:var(--ink-muted);white-space:nowrap;background:0 0;border:0;border-right:2px solid #8a7c6c;border-radius:0;flex:none;padding:5px 10px;font-size:13px}.scope-tabs button:last-child{border-right:0}.scope-tabs button.active{background:var(--paper-raised);color:var(--ink);box-shadow:none;font-weight:700}.section-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.day-sticky{margin:0 0 8px}.task-list .task-title{min-width:0}.task-form input::placeholder,.task-list .task-title::placeholder{color:var(--ink-muted)}.week-tasks .task-title.is-empty{color:var(--ink-muted);font-size:13.3333px;font-weight:500;line-height:1.2}.time-range{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.end-time{font-variant-numeric:tabular-nums;color:var(--ink-muted);white-space:nowrap;font-size:13px}.time{font-variant-numeric:tabular-nums;color:var(--ink-muted);width:52px}.mins{color:var(--ink-muted);font-size:13px}.minutes,.hours{white-space:nowrap;align-items:center;gap:6px;display:flex}.minutes input,.hours input{text-align:center;width:64px}.stack-form{gap:8px;display:grid}.modal-backdrop{z-index:80;background:#1f1a1673;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--paper-raised);border:1px solid var(--line);border-radius:24px;width:min(520px,100%);max-height:min(90dvh,44rem);padding:24px;overflow:auto;box-shadow:0 24px 60px #1f1a1638}.modal-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal.compact{width:min(400px,100%)}.modal .add-row{grid-template-columns:1fr auto}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.delete-confirm-lead{color:var(--ink);margin:0 0 10px;font-size:15px}.delete-confirm-meta{color:var(--ink-muted);margin:0 0 6px;font-size:13px}.delete-confirm-title{margin:0;font-size:16px;font-weight:600}.field{color:var(--ink-muted);gap:6px;margin-bottom:14px;font-size:13px;display:grid}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.chip{border:1px dashed var(--line);background:#f7f1e6;border-radius:999px;padding:6px 12px}.color-dot{background:0 0;border:0;width:36px;height:36px;padding:0}.subhead{margin:18px 0 10px}.hint{color:var(--navy);margin:-6px 0 16px}@media (width<=1200px){.workspace,.workspace.has-tray,.week-calendar-row,.week-calendar-row.has-tray,.add-row{grid-template-rows:none;grid-template-columns:1fr}.workspace.has-tray>.tray-column,.tray-column,.tray-aside,.tray-stack{flex-direction:column;grid-area:auto;width:100%;max-height:none;display:flex;position:static;overflow:visible}.week-calendar-row>.calendar-panel,.week-calendar-row.has-tray>.calendar-panel{grid-area:auto}.tray-resize{display:none}.subject-tray{grid-area:auto;position:static}.workspace.has-tray>main{grid-area:auto;min-width:0;max-width:100%}.topbar-main{flex-wrap:wrap}.subject-stock{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr))}.brand-qr,.study-clock-qr{display:none}.pager h1{font-size:20px}.task-form,.task-list li{grid-template-columns:18px 16px max-content minmax(7rem,1fr) 4.75rem;grid-template-areas:"lead check when what action"}.subject-first .task-form,.subject-first .task-list li{grid-template-columns:18px 16px minmax(7rem,1fr) max-content 4.75rem;grid-template-areas:"lead check what when action"}.task-what{grid-template-columns:minmax(6.5rem,8.5rem) minmax(7rem,1fr)}}@media (width<=720px){.month-grid{grid-template-columns:1fr}}@media (width<=900px){html,body{-webkit-text-size-adjust:100%}button:not(.week-resize),.chip,.ghost,.primary,.text-btn,.icon-btn{touch-action:manipulation}input,select,textarea{font-size:16px}.app{padding:0 12px calc(188px + env(safe-area-inset-bottom,0px))}.app.tray-closed{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.topbar{z-index:45;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;margin:0 -12px 16px;position:sticky;top:0}.topbar-main{flex-wrap:wrap;align-items:flex-start;gap:8px 12px}.topbar-account{min-height:0;margin-left:auto}.brand{gap:8px}.seal{width:36px;height:36px;font-size:18px;box-shadow:0 4px #9c2f24}.brand>div strong{font-size:16px}.brand-exam{flex:10rem;min-width:0;padding:4px 8px}.brand-exam strong{font-size:16px}.brand-exam p{font-size:15px}.exam-when-date{display:none}.study-clock{flex-wrap:wrap;flex:100%;justify-content:flex-start;align-items:flex-end;gap:8px;min-width:0;max-width:100%}.study-clock-toggles{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%;display:grid}.study-clock-toggle{text-align:center;width:100%;min-width:0;min-height:40px;padding:8px 4px;font-size:clamp(10px,2.9vw,13px)}.study-clock-face{min-width:0}.study-clock-digits{grid-template-columns:4em minmax(0,1fr);max-width:100%;font-size:16px}.study-clock-solo-bar{padding:calc(12px + env(safe-area-inset-top,0px)) 16px 0}.study-clock-solo-bar .study-clock-toggle{padding:10px 14px;font-size:14px}.week-calendar-row:not(.has-tray){grid-template-columns:1fr}.week-calendar-row:not(.has-tray) .calendar-panel{grid-area:auto}.week-calendar-row:not(.has-tray) .tray-aside{pointer-events:auto;width:100%;position:static}.tray-aside{z-index:40;width:100%;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--paper-raised);flex-direction:column;gap:8px;display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -10px 28px #3020121f}.tray-aside.is-tools-only{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}.tray-aside .week-jump-actions{margin-top:0}.tray-stack{width:100%;max-height:none;position:static}.week-jump-actions{justify-content:space-between;width:100%;margin:0;position:static;top:auto}.tray-column{width:100%;max-height:none;box-shadow:none;background:0 0;padding:0;position:static}.subject-tray{padding:10px 10px 8px;overflow:visible}.tray-scroll{touch-action:pan-x;flex:none;margin-top:8px;padding-right:0;overflow:visible}.subject-tray h3{display:none}.panel-toggles>button,.week-jump-actions .ghost,.week-jump-actions .scroll-fab button,.scope-tabs button{min-height:40px;padding:8px 12px}.tray-add{gap:8px;margin:0;display:flex}.tray-add input{flex:auto;min-width:0;padding:10px 12px}.tray-add .primary{flex:none;width:auto;padding:10px 14px}.subject-tray .chip-row{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:8px;margin:0 0 8px;padding-bottom:2px;display:flex;overflow-x:auto}.subject-tray .chip{flex:none;padding:8px 12px;font-size:13px}.subject-stock{-webkit-overflow-scrolling:touch;touch-action:pan-x;flex-flow:row;gap:8px;margin:0;padding:2px 0 4px;display:flex;overflow-x:auto}.subject-stock li{touch-action:pan-x;flex:none;min-width:8.5rem;min-height:44px}.subject-stock li.is-grabbed{touch-action:none}.subject-tray .color-dot{width:28px;height:28px}.hero-row{grid-template-columns:1fr}.section-head{flex-wrap:wrap;align-items:flex-start}.section-head h3{white-space:normal;min-width:0}.scope-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.week-month-bar{background:var(--paper-raised);flex-wrap:wrap}.month-clip-actions{justify-content:flex-start}.week-month-bar{grid-template-columns:1fr;justify-items:stretch}.week-month-nav{grid-area:2/1}.week-month-bar .month-clip-actions{grid-area:1/1;justify-content:flex-start}.month-clip-actions .ghost{padding:3px 8px;font-size:11px}.week-month-bar h3{min-width:0;font-size:18px}.icon-btn{width:44px;height:44px}.hour-zoom{flex-direction:row}.hour-zoom button{width:24px;height:32px;font-size:18px}.week-board{--date-col:3.6rem}.week-time-head,.week-agenda .month-agenda-row,.month-agenda-row{grid-template-columns:var(--date-col) minmax(0, 1fr);min-width:0;max-width:100%}.week-cal-head{display:block}.week-time-head{top:calc(var(--topbar-h,0px) + 10px);z-index:30;border-radius:18px;position:sticky;box-shadow:0 12px 16px #f3eee4f5}.month-agenda-row{scroll-margin-top:calc(var(--topbar-h,0px) + 10px + 5.25rem)}.week-time-head-date,.month-agenda-date{padding:6px 2px}.week-time-scale{padding:8px 0 10px}.week-time-end{top:8px}.week-now-dot{top:50%;bottom:auto;transform:translate(-50%,-50%)}.week-now-label{top:50%;bottom:auto;transform:translateY(-50%)}.month-agenda-date .agenda-date-line{white-space:normal;flex-direction:column;align-items:center;gap:2px;display:flex}.month-agenda-date strong{font-size:15px}.month-agenda-date .agenda-wd{font-size:13px}.week-day-track{--lane-h:8rem;height:calc(var(--lanes) * var(--lane-h))}.week-day-track.is-empty{height:var(--lane-h)}.week-agenda .month-agenda-body{padding:6px 0}.week-day-track .month-agenda-item{top:calc(var(--lane,0) * var(--lane-h) + 6px);height:auto;max-height:calc(var(--lane-h) - 12px);touch-action:none;padding:4px 8px;font-size:16px}.week-day-track .month-agenda-item .week-time,.week-day-track .month-agenda-item .week-range{flex-direction:column;justify-content:center;align-items:center;gap:0}.week-agenda .month-agenda-item .week-subject,.week-agenda .month-agenda-item .task-title,.week-agenda .month-agenda-item .task-title.is-empty{flex-shrink:0;font-size:14px}.week-day-track .month-agenda-item.is-holding{box-shadow:0 0 0 4px var(--subject-color,var(--navy));transform:scale(.96)}.month-agenda-item.subject-place-ghost{box-shadow:inset 3px 0 0 var(--subject-color,transparent), 0 18px 40px #30201252, 0 0 0 3px var(--subject-color,var(--navy));transform:translateY(-50%)scale(1.08)}.week-resize{touch-action:none;width:28px}.week-resize-start{left:-10px}.week-resize-end{right:-10px}.week-resize:after{content:"";background:var(--subject-color,var(--navy));opacity:.7;border-radius:999px;width:5px;position:absolute;top:22%;bottom:22%}.week-resize-start:after{left:8px}.week-resize-end:after{right:8px}.week-day-track .month-agenda-item.is-task-selected .week-resize:after{opacity:1;width:6px}.cal-empty{font-size:15px}.modal{width:min(100% - 16px,28rem);max-height:min(92dvh,40rem)}}.clock-picker{display:inline-block}.clock-trigger{border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#fffdf8;border-radius:12px;align-items:center;gap:8px;min-height:42px;padding:8px 12px;font-weight:700;display:inline-flex}.clock-trigger:hover:not(:disabled){background:#f7f1e6}.clock-trigger:disabled{cursor:not-allowed;opacity:.6}.clock-trigger .is-empty{color:var(--ink-muted);font-weight:500}.task-clock .clock-trigger{justify-content:flex-start;min-width:6.75rem;min-height:42px;padding:8px 10px;font-size:14px}.clock-overlay{z-index:1200;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.clock-dialog{--clock-ink:#14352f;--clock-ink-soft:#3d5c55;--clock-leaf:#1f7a63;--clock-leaf-deep:#0f5a48;--clock-line:#14352f1f;--clock-mist:#eef6f2;width:min(100%,24rem);max-height:min(92dvh,42rem);color:var(--clock-ink);background:#fff;border:2px solid #14352f26;border-radius:28px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000059}.clock-head{border-bottom:1px solid var(--clock-line);background:linear-gradient(165deg,#e7f7ef 0%,#fff 70%);padding:16px 20px}.clock-title{color:var(--clock-leaf-deep);margin:0;font-size:14px;font-weight:700}.clock-digits{justify-content:center;align-items:flex-end;gap:4px;margin-top:12px;font-family:"M PLUS Rounded 1c",Hiragino Maru Gothic ProN,sans-serif;display:flex}.clock-digits button{font-variant-numeric:tabular-nums;cursor:pointer;color:var(--clock-ink);background:0 0;border:0;border-radius:12px;padding:4px 12px;font-size:36px;font-weight:800}.clock-digits button.is-active{background:var(--clock-leaf);color:#fff}.clock-digits span{padding-bottom:8px;font-size:30px;font-weight:800}.clock-hint{text-align:center;height:16px;color:var(--clock-ink-soft);margin:8px 0 0;font-size:12px;line-height:16px}.clock-face-wrap{flex:1;justify-content:center;min-height:0;padding:12px 16px;display:flex;overflow:hidden}.clock-face{touch-action:none;-webkit-user-select:none;user-select:none;width:min(52vw,14rem);height:min(52vw,14rem);max-height:100%}.clock-stepper{flex-shrink:0;justify-content:center;align-items:center;gap:12px;height:48px;display:flex}.clock-stepper.is-hidden{visibility:hidden;pointer-events:none}.clock-stepper button{border:1px solid var(--clock-line);cursor:pointer;background:#fff;border-radius:50%;width:40px;height:40px;font-size:18px;font-weight:700}.clock-stepper span{text-align:center;min-width:4.5rem;color:var(--clock-ink-soft);font-size:13px;font-weight:700}.clock-actions{border-top:1px solid var(--clock-line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.clock-btn{cursor:pointer;border-radius:999px;padding:10px 20px;font-size:14px;font-weight:700}.clock-btn.ghost{border:1px solid var(--clock-line);color:var(--clock-ink);background:#fff}.clock-btn.ghost.left{color:var(--clock-ink-soft);margin-right:auto}.clock-btn.save{background:var(--clock-leaf);color:#fff;border:0}.clock-btn.save:hover{background:var(--clock-leaf-deep)}.clock-btn.ghost:hover{background:var(--clock-mist)}.item-tip{z-index:80;color:#fff8ef;white-space:pre-wrap;pointer-events:none;background:#1f1a16;border-radius:10px;max-width:min(280px,100vw - 24px);padding:8px 10px;font-size:13px;line-height:1.45;position:fixed;transform:translateY(8px);box-shadow:0 8px 24px #1f1a1638}.auth-shell{place-items:center;min-height:70vh;padding:32px 16px;display:grid}.auth-loading{color:var(--ink-muted)}.auth-card{border:1px solid var(--line);background:var(--paper-raised);width:min(420px,100%);box-shadow:var(--shadow);border-radius:18px;gap:14px;padding:28px 24px;display:grid}.auth-brand{align-items:center;gap:12px;margin-bottom:4px;display:flex}.auth-brand strong{font-size:18px;display:block}.auth-brand p{color:var(--ink-muted);margin:2px 0 0;font-size:14px}.auth-field{color:var(--ink-muted);gap:6px;font-size:13px;display:grid}.auth-field input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px;font-size:15px}.auth-password-wrap{display:block;position:relative}.auth-password-wrap input{padding-right:44px}.auth-password-toggle{width:36px;height:36px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.auth-password-toggle:hover,.auth-password-toggle[aria-pressed=true]{color:var(--navy)}.auth-submit{width:100%;margin-top:4px}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:10px 16px;display:flex}.text-btn{color:var(--navy);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.text-btn.danger{color:var(--vermillion)}.auth-error{color:var(--vermillion);margin:0;font-size:13px}.auth-message{color:var(--navy);margin:0;font-size:13px}.topbar-account{flex-direction:column;flex:none;justify-content:flex-end;align-items:flex-end;gap:10px;min-height:52px;margin:0 36px 1px 12px;display:flex}.account-email{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:12px;line-height:1.3;overflow:hidden}.migrate-banner{border:1px solid var(--line);background:#fff8ef;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;padding:12px 14px;display:flex}.migrate-actions{gap:8px;display:flex}.admin-shell{gap:18px;max-width:1100px;margin:0 auto;padding:20px 16px 48px;display:grid}.admin-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-top h1{margin:0;font-size:28px}.admin-actions{gap:8px;display:flex}.admin-panel{gap:12px;display:grid}.admin-panel h2{margin:0;font-size:18px}.admin-create{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;display:grid}.admin-create input{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 8px}.admin-row-actions{white-space:nowrap;flex-wrap:wrap;gap:8px;display:flex}.admin-detail-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-state-summary{gap:6px;margin:0;padding-left:1.2em;display:grid}.access-banner{color:#f4f7fb;text-align:center;background:#1e3a5f;padding:8px 16px;font-size:13px}.admin-tabs{border:1px solid var(--line);background:#f7f1e8;border-radius:14px;gap:4px;width:fit-content;max-width:100%;margin:0 0 16px;padding:4px;display:flex}.admin-tab{appearance:none;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 16px;font-weight:700}.admin-tab.is-active{color:var(--ink);box-shadow:var(--shadow);background:#fff}.ad-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 18px;display:grid}.ad-stat-card{background:#f3eee4;border-radius:12px;gap:4px;padding:12px;display:grid}.ad-stat-card span{color:var(--ink-muted);font-size:12px}.ad-stat-card strong{font-variant-numeric:tabular-nums;font-size:22px}.ad-settings-form{gap:14px;display:grid}.ad-settings-save{width:fit-content;min-width:5.5rem;padding:10px 20px}.ad-field{color:var(--ink-muted);gap:6px;font-size:13px;display:grid}.ad-field input,.ad-field select,.ad-field textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:10px;padding:10px 12px}.ad-field textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.ad-check{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.ad-fieldset{border:1px solid var(--line);background:#faf6ef;border-radius:12px;gap:8px;margin:0;padding:12px;display:grid}.ad-fieldset.is-disabled{opacity:.55}.ad-fieldset legend{padding:0 4px;font-size:13px;font-weight:700}.calendar-panel .site-ad{display:none}.subject-tray .site-ad{border:1px solid var(--line);box-shadow:none;background:#fffdf8;border-radius:12px;gap:6px;margin:10px 0 0;padding:10px;display:grid}.subject-tray .site-ad-badge{font-size:10px}.subject-tray .site-ad-link{word-break:break-word;font-size:12px;line-height:1.35}.subject-tray .site-ad-html{min-height:72px}.subject-tray .site-ad-video{object-fit:contain;background:#111;border-radius:8px;width:100%;min-width:100%;max-height:180px;display:block}.site-ad{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffdf8;border-radius:16px;gap:8px;margin:16px 0 0;padding:12px 14px;display:grid}.site-ad-badge{color:var(--ink-muted);background:#efe6d6;border-radius:999px;justify-self:start;padding:2px 8px;font-size:11px;font-weight:700}.site-ad-link{color:var(--navy);font-weight:700;text-decoration:none}.site-ad-link:hover{text-decoration:underline}.site-ad-html{background:0 0;border:0;border-radius:10px;width:100%;min-height:90px}.site-ad-video-wrap{gap:8px;display:grid}.site-ad-video{background:#111;border-radius:10px;width:100%;max-height:240px}.site-ad-video-click{color:var(--navy);justify-self:start;font-size:13px;font-weight:700}@media (width<=720px){.admin-create{grid-template-columns:1fr}.ad-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-account{align-items:flex-start;width:100%}}
