*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f0f;--surface:#141414;--surface-2:#181818;--surface-3:#1e1e1e;--surface-input:#1a1a1a;--gap-color:#1a1a1a;--border:#222;--border-2:#1e1e1e;--border-3:#2a2a2a;--text-strong:#fff;--text-1:#e0e0e0;--text-2:#ccc;--text-3:#888;--text-4:#555;--text-5:#444;--text-6:#333;--task-bg:#ffffff0a;--task-bg-hover:#ffffff12;--task-bg-drag:#ffffff1a;--task-bd:#ffffff0f;--task-bd-drag:#ffffff26;--green-bg:#0d2b1a;--green-bg-2:#0a1f12;--green-bd:#14532d;--green-dim:#1f4d2e;--green-time:#166534;--green-comp-bd:#0d2b1a;--yellow-bg:#1a1200;--yellow-bd:#3d2e00;--yellow-tx:#7a6200;--yellow-dim:#2a2200}[data-theme=light]{--bg:#f5f5f5;--surface:#fff;--surface-2:#f0f0f0;--surface-3:#ebebeb;--surface-input:#f0f0f0;--gap-color:#e0e0e0;--border:#e0e0e0;--border-2:#eee;--border-3:#d4d4d4;--text-strong:#000;--text-1:#111;--text-2:#333;--text-3:#666;--text-4:#888;--text-5:#999;--text-6:#bbb;--task-bg:#0000000a;--task-bg-hover:#0000000f;--task-bg-drag:#00000014;--task-bd:#00000014;--task-bd-drag:#0000001f;--green-bg:#f0fdf4;--green-bg-2:#dcfce7;--green-bd:#bbf7d0;--green-dim:#bbf7d0;--green-time:#15803d;--green-comp-bd:#dcfce7;--yellow-bg:#fefce8;--yellow-bd:#fef08a;--yellow-tx:#854d0e;--yellow-dim:#fef9c3}body{background:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5;transition:background .2s,color .2s}#root{width:100%;min-height:100svh}.task-card{background:var(--task-bg);border:1px solid var(--task-bd);border-radius:4px;align-items:center;gap:.4rem;padding:.4rem .5rem;transition:background .1s;display:flex}.task-card:hover{background:var(--task-bg-hover)}.task-dragging{background:var(--task-bg-drag);border-color:var(--task-bd-drag)}.task-drag-handle{color:var(--text-6);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;font-size:.9rem;line-height:1}.task-drag-handle:active{cursor:grabbing}.task-check{color:var(--text-5);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:.75rem;line-height:1;transition:color .15s}.task-completed .task-check{color:#22c55e}.task-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.task-text{color:var(--text-2);cursor:default;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;line-height:1.4;overflow:hidden}.task-completed .task-text{color:var(--text-5);text-decoration:line-through}.task-edit-input{background:var(--surface-input);border:1px solid var(--text-4);color:var(--text-1);border-radius:3px;outline:none;width:100%;padding:.1rem .4rem;font-size:.85rem}.task-time{color:var(--text-5);font-variant-numeric:tabular-nums;font-size:.7rem}.task-time-running{color:#22c55e}.task-actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.task-timer-btn{border:1px solid var(--border-3);color:var(--text-4);cursor:pointer;background:0 0;border-radius:3px;padding:.2rem .35rem;font-size:.6rem;line-height:1;transition:color .15s,border-color .15s}.task-timer-btn:hover{color:#22c55e;border-color:#22c55e}.task-timer-running,.task-timer-running:hover{color:#ef4444;border-color:#ef4444}.task-manual-btn{border:1px solid var(--border-3);color:var(--text-5);cursor:pointer;background:0 0;border-radius:3px;padding:.2rem .35rem;font-size:.68rem;line-height:1;transition:color .15s}.task-manual-btn:hover{color:var(--text-2);border-color:var(--text-4)}.task-manual-row{align-items:center;gap:.2rem;display:flex}.task-manual-input{background:var(--surface-input);border:1px solid var(--text-4);width:42px;color:var(--text-1);-moz-appearance:textfield;border-radius:3px;outline:none;padding:.15rem .3rem;font-size:.78rem}.task-manual-input::-webkit-inner-spin-button{-webkit-appearance:none}.task-manual-input::-webkit-outer-spin-button{-webkit-appearance:none}.task-manual-confirm{color:#000;cursor:pointer;background:#22c55e;border:none;border-radius:3px;padding:.2rem .35rem;font-size:.75rem;font-weight:700;line-height:1}.task-manual-cancel{border:1px solid var(--border-3);color:var(--text-4);cursor:pointer;background:0 0;border-radius:3px;padding:.2rem .3rem;font-size:.7rem;line-height:1}.task-delete{color:var(--text-6);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1.1rem;line-height:1;transition:color .15s}.task-delete:hover{color:#ef4444}.quadrant{background:var(--surface);border-top:2px solid var(--q-color);flex-direction:column;gap:.6rem;min-height:200px;padding:1rem 1.1rem;transition:background .2s;display:flex}.quadrant-over{background:var(--surface-2)}.quadrant-header{align-items:center;gap:.5rem;display:flex}.quadrant-count{color:var(--text-5);background:var(--surface-3);border:1px solid var(--border-3);border-radius:10px;margin-left:auto;padding:0 .45rem;font-size:.7rem}.quadrant-dot{background:var(--q-color);border-radius:50%;flex-shrink:0;width:8px;height:8px}.quadrant-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--q-color);font-size:.8rem;font-weight:700}.quadrant-desc{color:var(--text-4);margin-bottom:.25rem;font-size:.78rem;line-height:1.4}.quadrant-tasks{flex-direction:column;flex:1;gap:.35rem;display:flex}.quadrant-add-btn{border:1px dashed var(--border-3);color:var(--text-5);cursor:pointer;text-align:left;background:0 0;border-radius:4px;margin-top:auto;padding:.4rem .6rem;font-size:.8rem;transition:border-color .15s,color .15s}.quadrant-add-btn:hover{border-color:var(--q-color);color:var(--q-color)}.quadrant-input-row{gap:.4rem;margin-top:auto;display:flex}.quadrant-input{background:var(--surface-input);border:1px solid var(--border);color:var(--text-1);border-radius:4px;outline:none;flex:1;padding:.4rem .6rem;font-size:.85rem}.quadrant-input:focus{border-color:var(--q-color)}.quadrant-add-confirm{background:var(--q-color);color:#000;cursor:pointer;border:none;border-radius:4px;padding:.4rem .7rem;font-size:.8rem;font-weight:600}.quadrant-add-cancel{border:1px solid var(--border-3);color:var(--text-4);cursor:pointer;background:0 0;border-radius:4px;padding:.4rem .5rem;font-size:.85rem;line-height:1}.quadrant-add-cancel:hover{color:var(--text-2)}.matrix-wrapper{flex-direction:column;flex:1;align-items:center;gap:.5rem;display:flex}.matrix-center{align-items:center;gap:.75rem;width:100%;display:flex}.matrix-grid{background:var(--gap-color);border-radius:6px;flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;display:grid;overflow:hidden}.matrix-y-label,.matrix-x-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-6);white-space:nowrap;font-size:.7rem}.matrix-x-label{writing-mode:vertical-rl;text-orientation:mixed}.matrix-x-left{transform:rotate(180deg)}.matrix-y-top,.matrix-y-bottom{text-align:center}.daily-log{border-top:1px solid var(--border-2);flex-direction:column;gap:.75rem;padding-top:1rem;display:flex}.log-header{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.log-title{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-5);flex-shrink:0;font-size:.72rem}.log-totals{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.log-total-pill{color:var(--text-3);align-items:center;gap:.3rem;font-size:.75rem;display:flex}.log-dot{background:var(--q-color);border-radius:50%;flex-shrink:0;width:6px;height:6px}.log-total-all{color:var(--text-5);margin-left:.25rem;font-size:.75rem}.log-empty{color:var(--text-6);font-size:.82rem;font-style:italic}.log-entries{flex-direction:column;gap:.3rem;display:flex}.log-entry{border-bottom:1px solid var(--surface-2);align-items:center;gap:.6rem;padding:.35rem 0;display:flex}.log-entry-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.log-entry-text{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.83rem;overflow:hidden}.log-entry-duration{color:var(--text-4);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.78rem}.log-entry-time{color:var(--text-6);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.72rem}.analytics{border-top:1px solid var(--border-2);flex-direction:column;gap:1.5rem;padding-top:1.5rem;display:flex}.analytics-top{gap:1rem;display:flex}.green-ratio-card{background:var(--green-bg);border:1px solid var(--green-bd);border-radius:8px;flex-direction:column;flex:2;gap:.35rem;padding:1.25rem 1.5rem;display:flex}.green-ratio-label{text-transform:uppercase;letter-spacing:1.5px;color:#4ade80;font-size:.7rem}.green-ratio-value{color:#22c55e;letter-spacing:-2px;font-variant-numeric:tabular-nums;font-size:3rem;font-weight:800;line-height:1}.green-ratio-value.no-data{color:var(--green-dim)}.green-ratio-sub{color:#4ade80;opacity:.6;font-size:.78rem;line-height:1.4}.streak-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;flex:1;gap:.35rem;padding:1.25rem 1.5rem;display:flex}.streak-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-4);font-size:.7rem}.streak-value{color:#eab308;letter-spacing:-2px;font-variant-numeric:tabular-nums;font-size:3rem;font-weight:800;line-height:1}.streak-value.no-data{color:var(--yellow-dim)}.streak-sub{color:var(--text-4);font-size:.78rem}.breakdown{flex-direction:column;gap:.6rem;display:flex}.breakdown-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-5);font-size:.7rem}.breakdown-bar{background:var(--surface-input);border-radius:4px;gap:1px;height:8px;display:flex;overflow:hidden}.breakdown-segment{height:100%;transition:width .4s}.breakdown-legend{flex-wrap:wrap;gap:1rem;display:flex}.breakdown-legend-item{align-items:center;gap:.35rem;display:flex}.breakdown-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.breakdown-legend-label{color:var(--text-4);font-size:.75rem}.breakdown-legend-val{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:.75rem}.breakdown-total{margin-left:auto}.breakdown-total .breakdown-legend-label,.breakdown-total .breakdown-legend-val{color:var(--text-5)}.week-history{flex-direction:column;gap:.75rem;display:flex}.week-history-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-5);font-size:.7rem}.week-bars{align-items:flex-end;gap:.5rem;height:80px;display:flex}.week-bar-col{flex-direction:column;flex:1;align-items:center;gap:.25rem;height:100%;display:flex}.week-bar-track{background:var(--surface-input);border-radius:3px;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.week-bar-fill{opacity:.8;background:#22c55e;border-radius:3px 3px 0 0;width:100%;transition:height .4s}.week-bar-pct{color:var(--text-5);font-variant-numeric:tabular-nums;height:.85rem;font-size:.62rem;line-height:1}.week-bar-day{color:var(--text-5);text-transform:uppercase;letter-spacing:.5px;font-size:.65rem}.green-completions{flex-direction:column;gap:.6rem;padding-bottom:5rem;display:flex}.green-completions-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-5);font-size:.7rem}.green-completions-empty{color:var(--border-3);font-size:.82rem;font-style:italic}.green-completions-list{flex-direction:column;gap:.35rem;padding:0;list-style:none;display:flex}.green-completions-item{color:#4ade80;border-bottom:1px solid var(--green-comp-bd);align-items:center;gap:.6rem;padding:.4rem 0;font-size:.85rem;display:flex}.green-completions-check{color:#22c55e;flex-shrink:0;font-size:.75rem}.green-completions-time{color:var(--green-time);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.75rem}.reflection{border-radius:8px;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;animation:.25s slideIn;display:flex}@keyframes slideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.reflection-nudge{background:var(--yellow-bg);border:1px solid var(--yellow-bd);flex-direction:row;align-items:center;gap:1rem;padding:.85rem 1.25rem}.reflection-nudge .reflection-body{flex:1}.reflection-nudge .reflection-title{color:#eab308;margin:0;font-size:.88rem;font-weight:600}.reflection-nudge .reflection-sub{color:var(--yellow-tx);margin:.2rem 0 0;font-size:.8rem}.reflection-eod{background:var(--green-bg-2);border:1px solid var(--green-bd)}.reflection-week{background:var(--surface);border:1px solid var(--border)}.reflection-header{align-items:center;gap:.6rem;display:flex}.reflection-icon{color:var(--text-4);flex-shrink:0;font-size:.9rem}.reflection-icon.green{color:#22c55e}.reflection-icon.yellow{color:#eab308}.reflection-title{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-4);flex:1;font-size:.72rem}.reflection-dismiss{border:1px solid var(--border);color:var(--text-5);cursor:pointer;background:0 0;border-radius:4px;margin-left:auto;padding:.25rem .6rem;font-size:.75rem;transition:color .15s,border-color .15s}.reflection-dismiss:hover{color:var(--text-2);border-color:var(--text-4)}.reflection-question{color:var(--text-2);margin:0;font-size:1rem;font-style:italic;line-height:1.5}.reflection-sub{color:var(--text-5);margin:0;font-size:.82rem}.reflection-list{flex-direction:column;gap:.35rem;padding:0;list-style:none;display:flex}.reflection-list-item{color:#4ade80;border-bottom:1px solid var(--green-comp-bd);align-items:center;gap:.6rem;padding:.35rem 0;font-size:.88rem;display:flex}.reflection-check{color:#22c55e;flex-shrink:0;font-size:.75rem}.reflection-time{color:var(--green-time);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.75rem}.reflection-footer{color:var(--text-5);margin:0;font-size:.8rem;line-height:1.5}.week-review-stats{gap:1rem;display:flex}.week-review-stat{background:var(--surface-input);border-radius:6px;flex-direction:column;flex:1;gap:.2rem;padding:.75rem 1rem;display:flex}.week-review-stat-val{color:#22c55e;letter-spacing:-1px;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.week-review-stat-label{color:var(--text-5);text-transform:uppercase;letter-spacing:.8px;font-size:.7rem}.week-review-bars{align-items:flex-end;gap:.4rem;height:60px;display:flex}.week-review-bar-col{flex-direction:column;flex:1;align-items:center;gap:.25rem;height:100%;display:flex}.week-review-bar-track{background:var(--surface-3);border-radius:3px;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.week-review-bar-fill{opacity:.7;background:#22c55e;border-radius:3px 3px 0 0;width:100%}.week-review-bar-label{color:var(--text-6);text-transform:uppercase;font-size:.6rem}.theme-toggle{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:999px;align-items:center;gap:.6rem;padding:.4rem .75rem .4rem .5rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 2px 12px #0000004d}.theme-switch{cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:0;display:flex;position:relative}.theme-switch.is-disabled{cursor:not-allowed;opacity:.4}.theme-switch-track{background:var(--surface-3);border:1px solid var(--border);border-radius:999px;flex-shrink:0;align-items:center;width:32px;height:18px;padding:2px;transition:background .2s;display:flex}.is-dark .theme-switch-track{background:#1e3a5f}.is-light .theme-switch-track{background:#f0c040}.theme-switch-thumb{background:var(--text-3);border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:transform .2s,background .2s}.is-dark .theme-switch-thumb{background:#93c5fd;transform:translate(14px)}.is-light .theme-switch-thumb{background:#fff;transform:translate(0)}.theme-switch-icons{gap:.15rem;font-size:.7rem;display:flex}.theme-icon{color:var(--text-5);line-height:1}.theme-auto-label{cursor:pointer;border-left:1px solid var(--border);align-items:center;gap:.3rem;padding-left:.6rem;display:flex}.theme-auto-checkbox{accent-color:#22c55e;cursor:pointer;width:12px;height:12px}.theme-auto-text{text-transform:uppercase;letter-spacing:.8px;color:var(--text-4);-webkit-user-select:none;user-select:none;font-size:.72rem}.app{flex-direction:column;gap:1.5rem;min-height:100svh;padding:1.5rem;display:flex}.app-header{align-items:baseline;gap:1rem;display:flex}.app-header h1{color:var(--text-strong);letter-spacing:-.3px;font-size:1.1rem;font-weight:700}.app-header p{color:var(--text-4);text-transform:uppercase;letter-spacing:1px;font-size:.78rem}.app-footer{opacity:.35;align-items:center;gap:.5rem;margin-top:auto;padding:1.5rem 0 .5rem;transition:opacity .4s;display:flex}.app-footer:hover{opacity:1}.app-footer-text{color:var(--text-4);letter-spacing:.4px;font-size:.68rem}.app-footer-dot{background:var(--text-5);border-radius:50%;flex-shrink:0;width:2px;height:2px}.app-footer-link{color:var(--text-4);letter-spacing:.4px;font-size:.68rem;text-decoration:none;transition:color .2s}.app-footer-link:hover{color:var(--text-2)}
