:root{--bg:#f4f5f7;--card:#fff;--line:#e6e8ec;--line-strong:#d5d9e0;--text:#0f172a;--muted:#64748b;--faint:#94a3b8;--dark:#0f172a;--blue:#3b82f6;--green:#16a34a;--purple:#6366f1;--red:#dc2626;--amber:#d97706;--radius:12px;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}button:disabled{cursor:default;opacity:.5}input,textarea{border:1px solid var(--line-strong);background:#fff;border-radius:8px;outline:none;padding:9px 11px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px #6366f126}input[type=checkbox]{width:16px;height:16px;accent-color:var(--dark);cursor:pointer;margin:0}h1,h2,h3,h4,p{margin:0}a{color:inherit}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.hint{color:var(--faint);margin-top:6px;font-size:12.5px}.warn{color:#9a3412;background:#fff7ed;border-radius:8px;margin-top:12px;padding:9px 12px;font-size:13px}.form-error{color:var(--red);font-size:13px}.form-ok{color:var(--green);font-size:13px}.spacer{flex:1}.row{align-items:center;display:flex}.gap{gap:10px}.gap-sm{gap:6px}.wrap{flex-wrap:wrap}.placeholder{text-align:center;height:100%;min-height:160px;color:var(--faint);justify-content:center;align-items:center;padding:24px;display:flex}.empty,.none{color:var(--faint);padding:6px 4px;font-size:13px;font-style:italic}.btn{border:1px solid var(--line-strong);white-space:nowrap;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover:not(:disabled){background:#f8fafc;border-color:#c3c9d2}.btn.sm{border-radius:8px;padding:5px 11px;font-size:12.5px}.btn.dark{background:var(--dark);border-color:var(--dark);color:#fff}.btn.dark:hover:not(:disabled){background:#1e293b}.btn.soft{color:var(--muted);background:#f1f5f9;border-color:#e2e8f0}.btn.wide{width:100%;padding:11px 14px}.btn.danger-btn{color:var(--red);border-color:#fecaca}.link-btn{color:var(--muted);text-underline-offset:2px;font-size:13px;text-decoration:underline}.link-btn:hover{color:var(--text)}.link-btn.sm{font-size:11.5px}.link-btn.danger{color:var(--faint);text-decoration:none}.link-btn.danger:hover{color:var(--red)}.link-like{text-align:left}.link-like:hover{color:var(--blue)}.icon-btn{width:28px;height:28px;color:var(--faint);border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.icon-btn:hover:not(:disabled){color:var(--text);background:#f1f5f9}.icon-btn.on{color:var(--blue)}.icon-btn.danger:hover:not(:disabled){color:var(--red);background:#fef2f2}.icon-btn.boxed{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);background:#fff}.icon-btn.primary{background:var(--purple);border-color:var(--purple);color:#fff}.icon-btn.primary:hover:not(:disabled){color:#fff;background:#4f46e5}.chip{border:1px solid var(--line-strong);background:#fff;border-radius:10px;padding:9px 15px;font-weight:500}.chip.on{background:var(--dark);border-color:var(--dark);color:#fff}.field{flex-direction:column;gap:6px;margin-top:14px;font-size:13px;font-weight:500;display:flex}.check-row{cursor:pointer;align-items:center;gap:9px;margin-top:14px;font-size:13.5px;display:flex}.code-box{color:#4ade80;letter-spacing:.06em;text-align:center;-webkit-user-select:all;user-select:all;word-break:break-all;background:#0b0d12;border-radius:10px;margin:16px 0 12px;padding:14px;font-size:19px}.code-box.sm{margin:8px 0;font-size:15px}.editable{text-align:left;cursor:text;border-radius:6px;margin:-2px -4px;padding:2px 4px}.editable:hover{background:#f1f5f9}.editable-input{width:100%;margin:-4px -7px;padding:3px 6px}.splash{justify-content:center;align-items:center;min-height:100vh;animation:1.4s ease-in-out infinite pulse;display:flex}@keyframes pulse{50%{opacity:.45}}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:16px;width:100%;max-width:400px;padding:28px;box-shadow:0 10px 40px #0f172a0f}.brand{align-items:center;gap:8px;font-weight:700;display:inline-flex}.brand-lg{gap:10px;font-size:21px}.auth-tag{color:var(--muted);margin:8px 0 20px}.auth-note{color:var(--muted);margin:10px 0 4px}.auth-tabs{background:#f1f5f9;border-radius:10px;margin-bottom:6px;padding:3px;display:flex}.auth-tabs button{color:var(--muted);border-radius:8px;flex:1;padding:8px;font-weight:500}.auth-tabs button.on{color:var(--text);background:#fff;box-shadow:0 1px 3px #0f172a1a}.auth-form{flex-direction:column;gap:12px;margin-top:14px;display:flex}.auth-form label{flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}.auth-form .btn{margin-top:6px}.auth-alt{margin:16px auto 0;display:block}.auth-card .row{margin-bottom:4px}.auth-card>.btn.wide{margin-top:18px}.topbar{background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex}.topbar-left,.topbar-right{align-items:center;gap:12px;display:flex}.topbar h1{font-size:18px;font-weight:700}.save-state{color:var(--faint);min-width:0;font-size:12px}.save-state.error{color:var(--amber)}.stats{background:var(--card);border-bottom:1px solid var(--line);grid-template-columns:minmax(190px,230px) minmax(90px,120px) minmax(130px,180px) minmax(240px,380px) minmax(120px,1fr);padding:18px 0;display:grid}.stat{border-left:1px solid var(--line);min-width:0;padding:2px 24px}.stat:first-child{border-left:none}.stat-label{color:var(--muted);font-size:13px;font-weight:500}.stat-label.sub{margin-top:8px}.stat-big{font-variant-numeric:tabular-nums;margin-top:4px;font-size:30px;font-weight:700;line-height:1.25}.stat-small{color:var(--text);font-size:13px}.stat-hint{color:var(--faint);max-width:200px;margin-top:6px;font-size:12.5px}.stat-hint svg{vertical-align:-2px}.stat-timer{flex-direction:column;gap:8px;margin-top:4px;display:flex}.stat-clock{font-family:var(--mono);color:var(--green);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.stat-clock.over{color:var(--amber)}.stat-clock.paused{color:var(--faint)}.pt-row{margin-top:8px}.pt-top{justify-content:space-between;gap:12px;font-size:13px;display:flex}.pt-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.pt-time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.pt-bar{background:#eef2f7;border-radius:4px;height:4px;margin-top:5px;overflow:hidden}.pt-bar i{background:var(--blue);border-radius:4px;height:100%;transition:width .4s;display:block}.main{gap:24px;padding:24px;display:grid}.row2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.card-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:56px;padding:12px 16px;display:flex}.card-head h2{font-size:15px;font-weight:600}.pct{color:var(--blue);font-size:12px;font-weight:600}.projects-body{grid-template-columns:230px minmax(0,1fr);min-height:380px;display:grid}.project-list{border-right:1px solid var(--line);border-bottom-left-radius:var(--radius);background:#fafbfc;flex-direction:column;gap:4px;max-height:560px;padding:12px;display:flex;overflow-y:auto}.project-new{margin-bottom:4px}.project-item{border:1px solid #0000;border-radius:9px;align-items:center;transition:background .12s;display:flex}.project-item:hover{background:#f1f4f8}.project-item.on{border-color:var(--line-strong);background:#fff;box-shadow:0 1px 2px #0f172a0d}.project-item .grip{opacity:0;padding-left:4px}.project-item:hover .grip{opacity:1}.project-pick{text-align:left;flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:8px 10px 8px 4px;display:flex}.project-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13.5px;font-weight:500;overflow:hidden}.project-count{color:var(--faint);font-size:12px}.empty-cta{border:1px dashed var(--line-strong);color:var(--muted);border-radius:9px;align-items:center;gap:8px;padding:12px;font-weight:500;display:flex}.project-main{min-width:0;padding:18px 22px 22px}.pv-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.pv-title{font-size:21px;font-weight:700}input.pv-title{font-size:19px}.parts-caption{color:var(--faint);margin-bottom:2px;font-size:11px}.parts{margin:0;padding:0;list-style:none}.part{border-radius:9px;transition:background .12s}.part:hover{background:#f8fafc}.part.live{background:#f0fdf4}.part.dragging,.project-item.dragging{opacity:.4}.part.drop-before,.project-item.drop-before{box-shadow:inset 0 2px 0 var(--blue)}.part.drop-after,.project-item.drop-after{box-shadow:inset 0 -2px 0 var(--blue)}.part-row{align-items:center;gap:8px;min-height:42px;padding:6px 8px;display:flex}.grip,.grip-space{color:#c4cad4;cursor:grab;flex:none;width:14px;display:inline-flex}.grip-space{cursor:default}.part-title{overflow-wrap:anywhere;flex:auto;min-width:0;font-size:14px;font-weight:600}.part.done .part-title{color:var(--faint);font-weight:500;text-decoration:line-through}.link-chip{text-overflow:ellipsis;white-space:nowrap;max-width:150px;color:var(--blue);background:#eff6ff;border-radius:6px;flex:none;padding:2px 7px;font-size:11.5px;text-decoration:none;overflow:hidden}.link-chip:hover{text-decoration:underline}.part-actions{flex:none;align-items:center;gap:2px;margin-left:auto;display:flex}.part-actions .danger{opacity:0}.part:hover .part-actions .danger,.part-actions .danger:focus-visible{opacity:1}.timer-btn.live{color:var(--green);position:relative}.timer-btn.live:after{content:"";background:#22c55e;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite pulse;position:absolute;top:4px;right:4px}.part-extra{padding:0 10px 10px 54px}.link-edit{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.link-edit input{flex:1;min-width:200px;padding:6px 10px}.part-notes{resize:vertical;width:100%;line-height:1.5}.add-part{border:1px dashed var(--line-strong);color:var(--faint);border-radius:9px;align-items:center;gap:8px;margin-top:6px;padding:4px 8px 4px 12px;display:flex}.add-part input{box-shadow:none;background:0 0;border:none;flex:1;padding:8px 0}.done-section{margin-top:18px}.done-toggle{color:var(--muted);align-items:center;gap:4px;margin-bottom:4px;font-size:12.5px;font-weight:500;display:inline-flex}.done-toggle svg{transition:transform .15s}.done-toggle .rot{transform:rotate(-90deg)}.focus-part{margin-top:2px;font-weight:500}.presets{grid-template-columns:repeat(6,1fr);gap:8px;margin-top:16px;display:grid}.float-frame{z-index:60;position:fixed}.float{color:#e5e7eb;-webkit-user-select:none;user-select:none;background:#0b0d12;border:1px solid #1f2430;border-radius:12px;width:250px;padding-bottom:10px;box-shadow:0 18px 50px #02061766}.float-head{cursor:move;touch-action:none;border-bottom:1px solid #1a1f29;align-items:center;gap:7px;padding:8px 8px 8px 12px;display:flex}.float-brand{font-size:13px;font-weight:600}.float-icon{color:#9ca3af;border-radius:6px;padding:4px;display:inline-flex}.float-icon:hover{color:#fff;background:#1a1f29}.float-label{color:#8b93a3;white-space:nowrap;text-overflow:ellipsis;text-align:center;padding:8px 12px 0;font-size:11.5px;overflow:hidden}.float-clock{font-family:var(--mono);text-align:center;color:#4ade80;letter-spacing:.04em;font-variant-numeric:tabular-nums;padding-top:2px;font-size:34px;font-weight:600}.float.over .float-clock{color:#fbbf24}.float.paused .float-clock{color:#6b7280}.float-sub{text-align:center;color:#fbbf24;min-height:16px;margin-bottom:8px;padding:0 8px;font-size:11px}.float.paused .float-sub{color:#9ca3af}.float-row{gap:6px;padding:0 10px;display:flex}.float-row button,.float-wide,.float-reasons button{color:#e5e7eb;background:#151922;border:1px solid #2a303c;border-radius:7px;padding:6px 8px;font-size:11.5px;font-weight:600}.float-row button:hover,.float-wide:hover,.float-reasons button:hover{background:#1d2330;border-color:#3a4252}.float-row button{flex:1}.live-badge{color:#4ade80;letter-spacing:.04em;background:#052e16;border:1px solid #14532d;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:10.5px;font-weight:700;display:inline-flex}.live-badge i{background:#22c55e;border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite pulse;box-shadow:0 0 8px #22c55e}.live-badge.over{color:#fbbf24;background:#2b1a05;border-color:#78350f}.live-badge.over i{background:#fbbf24;box-shadow:0 0 8px #fbbf24}.live-badge.paused{color:#9ca3af;background:#111827;border-color:#374151}.live-badge.paused i{box-shadow:none;background:#6b7280;animation:none}.float-wide{width:calc(100% - 20px);margin:6px 10px 0;display:block}.float-wide.end{color:#f87171}.float-picker{padding:0 10px}.float-q{color:#9ca3af;text-align:center;margin-bottom:6px;font-size:11.5px}.float-reasons{grid-template-columns:1fr 1fr;gap:5px;display:grid}.float-picker .float-wide{width:100%;margin:6px 0 0}.pip-body{background:#0b0d12;margin:0;overflow:hidden}.float.in-pip{width:100%;min-height:100vh;box-shadow:none;border:none;border-radius:0}.float.in-pip .float-head{cursor:default}.notes-body{grid-template-columns:270px minmax(0,1fr);min-height:400px;display:grid}.notes-list{border-right:1px solid var(--line);flex-direction:column;min-width:0;display:flex}.notes-tools{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 12px;display:flex}.notes-scroll{max-height:460px;padding:4px 10px 12px;overflow-y:auto}.notes-group{color:var(--muted);margin:12px 4px 6px;font-size:13px;font-weight:600}.note-item{text-align:left;border:1px solid #0000;border-radius:9px;flex-direction:column;width:100%;margin-bottom:2px;padding:9px 12px;display:flex}.note-item:hover{background:#f8fafc}.note-item.on{border-color:var(--purple);background:#eef2ff}.note-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13.5px;font-weight:600;overflow:hidden}.note-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.note-editor{flex-direction:column;min-width:0;display:flex}.note-stamp{color:var(--muted);border-bottom:1px solid var(--line);padding:12px 18px 8px;font-size:12px}.note-text{border-radius:0 0 var(--radius) 0;resize:none;border:none;flex:1;width:100%;min-height:340px;padding:16px 18px;font-size:15px;line-height:1.65}.note-text:focus{box-shadow:none}.loops-toolbar{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:14px 16px 10px;display:flex}.loops-toolbar>.muted{padding-top:8px;font-size:13px}.loops-actions{flex-direction:column;align-items:flex-end;gap:5px;display:flex}.loops-body{border:1px solid var(--line);border-radius:10px;grid-template-columns:220px minmax(0,1fr);min-height:340px;margin:0 16px 16px;display:grid;overflow:hidden}.loops-list{background:#eef0f3;max-height:460px;padding:14px 12px;overflow-y:auto}.loops-list h4{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:2px 4px 8px;font-size:10.5px;font-weight:600}.loops-list hr{border:none;border-top:1px solid #dde1e7;margin:14px 0}.loop-item{border:2px solid #0000;border-radius:8px;align-items:center;margin-bottom:2px;display:flex}.loop-item:hover{background:#e4e8ee}.loop-item.on{border-color:var(--dark);background:#e2e6ec}.loop-mark{color:var(--muted);padding:8px 4px 8px 8px;display:inline-flex}.loop-mark:hover{color:var(--green)}.loop-pick{text-align:left;flex-direction:column;flex:1;min-width:0;padding:7px 8px 7px 4px;display:flex}.loop-name{overflow-wrap:anywhere;font-size:13px;font-weight:500}.loop-item.done .loop-name{color:var(--faint);text-decoration:line-through}.loop-due{color:var(--blue);font-size:11px}.loop-detail-wrap{min-width:0}.loop-detail{flex-direction:column;display:flex}.field-label{color:var(--muted);padding:12px 16px 0;font-size:12px}.field-label.prompt{color:#475569;padding-top:12px;font-size:13px;font-weight:600}.loop-title{border:none;border-bottom:1px solid var(--line);border-radius:0;padding:4px 16px 12px;font-size:17px;font-weight:700}.loop-body{resize:none;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:8px 16px 12px;line-height:1.55}.loop-title:focus,.loop-body:focus{box-shadow:none}.loop-time{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:12px 16px;display:flex}.loop-time-label{color:var(--muted);font-size:12px}.loop-time input{padding:6px 10px}.loop-time .hint{margin-top:0}.loop-foot{align-items:center;padding:10px 16px;display:flex}.prompt-list{gap:8px;margin:14px 0 0;padding-left:20px;display:grid}.overlay{z-index:100;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:100%;max-height:calc(100vh - 32px);padding:22px 22px 20px;position:relative;overflow-y:auto;box-shadow:0 25px 70px #0f172a40}.modal p+p{margin-top:10px}.modal-close{position:absolute;top:14px;right:14px}.modal-title{margin-bottom:6px;padding-right:30px;font-size:18px;font-weight:700}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.toasts{z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;color:#f9fafb;background:#111827;border-radius:10px;align-items:center;gap:14px;padding:10px 14px;font-size:13.5px;display:flex;box-shadow:0 10px 30px #0206174d}.toast button{color:#93c5fd;font-weight:600}.session-list{margin:10px 0 0;padding:0;list-style:none}.session-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.sr-main{flex:1;min-width:0}.sr-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sr-sub{color:var(--muted);font-size:12px}.sr-dur{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.sr-input{width:72px;padding:5px 8px}.badge-live{color:var(--green);background:#f0fdf4;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.eod-text{width:100%;min-height:300px;font-family:var(--mono);resize:vertical;margin-top:12px;font-size:12.5px;line-height:1.55}.account-email{color:var(--muted);margin-bottom:4px}.account-section{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px;padding-top:14px;display:flex}.account-section .field{width:100%;margin-top:0}.account-section h4{font-size:14px}.account-section .hint{margin-top:0}.danger-zone summary{cursor:pointer;color:var(--muted);font-size:13px}.danger-zone form{flex-direction:column;align-items:flex-start;gap:8px;width:100%;margin-top:10px;display:flex}.help-list{gap:10px;margin:12px 0 14px;padding-left:20px;display:grid}@media (width<=1200px){.stats{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px}.stat:nth-child(4){border-left:none}.row2{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.topbar,.main{padding-left:16px;padding-right:16px}.main{gap:16px;padding-top:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:2px 16px}.stat:nth-child(odd){border-left:none}.stat:nth-child(4){border-left:1px solid var(--line)}.stat-projects{grid-column:1/-1;border-left:none!important}.projects-body,.notes-body,.loops-body{grid-template-columns:minmax(0,1fr)}.project-list,.notes-list{border-right:none;border-bottom:1px solid var(--line);border-radius:0;max-height:240px}.project-main{padding:14px}.part-extra{padding-left:12px}.part-actions .danger{opacity:1}.presets{grid-template-columns:repeat(3,1fr)}.loops-actions{align-items:flex-start}.loops-list{max-height:260px}}
