:root{--bg:#0b1120;--paper:#131a2b;--paper-hover:#1b2438;--ink:#f8fafc;--ink-soft:#94a3b8;--ink-faint:#475569;--line:#1e293b;--line-strong:#334155;--accent:#f97316;--accent-soft:#f9731626;--good:#4ade80;--good-soft:#4ade8026;--warn:#f87171;--warn-soft:#f8717126;--sans:"Inter", system-ui, -apple-system, sans-serif;--display:var(--sans);--mono:ui-monospace, monospace;--r:8px;--r-card:12px;--r-chip:6px;--shadow-card:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);min-height:100%;color:var(--ink-soft);font:13px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit;outline:none}input[type=text],input[type=email],input[type=password],select,textarea{background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r);color:var(--ink);padding:6px 10px;transition:border-color .15s}input[type=text]:focus,select:focus{border-color:var(--accent)}button{cursor:pointer;transition:all .15s}#app{flex-direction:column;min-height:100vh;display:flex}.header{border-bottom:1px solid var(--line);background:var(--bg);z-index:100;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.brand{font-family:var(--display);color:var(--ink);margin-right:24px;font-size:1.1rem;font-weight:700}.brand span{color:var(--accent)}.nav-tabs{gap:8px;display:flex}.nav-tab{color:var(--ink-faint);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--r-chip);background:0 0;border:none;padding:6px 12px;font-size:.8rem;font-weight:600;text-decoration:none}.nav-tab:hover{color:var(--ink);background:var(--paper)}.nav-tab.active{color:var(--accent);background:var(--accent-soft)}.header-spacer{flex:1}.user-menu{align-items:center;gap:12px;font-size:.8rem;display:flex}.support-link{color:var(--ink-soft);align-items:center;gap:6px;text-decoration:none;display:flex}.support-link:hover{color:var(--ink)}.guest-badge{color:var(--ink-faint);border:1px solid var(--line);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.7rem;display:flex}.guest-badge:before{content:"";background:var(--ink-faint);border-radius:50%;width:6px;height:6px}.sign-in-btn,.logout-btn{border:1px solid var(--line-strong);color:var(--ink);background:0 0;border-radius:999px;padding:6px 16px;font-weight:500;text-decoration:none}.sign-in-btn:hover,.logout-btn:hover{background:var(--paper);border-color:var(--ink-soft)}.main-content{flex-direction:column;flex:1;padding:24px;display:flex}.toolbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.toolbar-left{align-items:center;gap:12px;display:flex}.week-date-box{background:var(--bg);border:1px solid var(--line);border-radius:999px;justify-content:space-between;align-items:center;min-width:260px;padding:8px 20px;display:flex}.icon-btn{color:var(--ink-faint);background:0 0;border:none;place-items:center;width:32px;height:32px;transition:color .15s;display:grid}.icon-btn:hover{color:var(--ink);background:0 0}.week-title{color:var(--good);font-size:.85rem;font-weight:600}.week-dates{color:var(--ink-soft);font-size:.85rem;font-family:var(--mono)}.today-link{color:var(--ink-faint);cursor:pointer;margin-left:8px;font-size:.85rem}.today-link:hover{color:var(--ink)}.toolbar-right{gap:12px;display:flex}.toolbar-right button{border:1px solid var(--line);color:var(--ink-soft);background:0 0;border-radius:999px;padding:6px 14px;font-size:.8rem}.toolbar-right button:hover{background:var(--paper);color:var(--ink)}.progress-section{margin-bottom:32px}.progress-track{background:var(--line);border-radius:2px;width:100%;height:2px;margin-bottom:8px}.progress-fill{background:var(--ink-soft);border-radius:2px;height:100%;transition:width .4s}.progress-stats{color:var(--ink-faint);font-size:.75rem;font-family:var(--mono);justify-content:space-between;display:flex}.planning-board{flex:1;align-items:flex-start;gap:32px;display:flex}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.7rem;font-weight:600}.sidebar{flex-direction:column;flex-shrink:0;gap:16px;width:320px;display:flex}.sidebar-header{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.header-links{font-size:.75rem}.header-links a{color:var(--accent);text-decoration:none}.header-links a:hover{text-decoration:underline}.header-links .sep{color:var(--ink-faint);margin:0 4px}.project-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);flex-direction:column;gap:12px;padding:16px;display:flex}.project-card-head{justify-content:space-between;align-items:flex-start;display:flex}.proj-title{color:var(--ink);font-size:1.05rem;font-weight:600}.proj-meta{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:.65rem}.add-task-btn{color:var(--ink-soft);text-align:left;background:0 0;border:none;padding:4px 26px;font-size:.8rem}.add-task-btn:hover{color:var(--ink)}.add-project-dashed{border:1px dashed var(--line-strong);color:var(--ink-soft);border-radius:var(--r-card);letter-spacing:.05em;text-transform:uppercase;background:0 0;padding:16px;font-size:.75rem}.add-project-dashed:hover{border-color:var(--ink-soft);color:var(--ink)}.week-grid-container{flex-direction:column;flex:1;gap:16px;display:flex}.grid-header{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.days-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.day-box{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-card);flex-direction:column;gap:8px;min-height:220px;padding:12px;display:flex}.day-box:hover{border-color:var(--line-strong);background:var(--paper)}.day-box-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.day-name{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.7rem;font-weight:600}.day-count{background:var(--good-soft);color:var(--good);font-family:var(--mono);border-radius:999px;padding:2px 6px;font-size:.65rem}.task-item{align-items:flex-start;gap:10px;padding:6px 0;display:flex}.task-check{appearance:none;border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-top:2px}.task-check:checked{background:var(--ink-faint);border-color:var(--ink-faint)}.task-name{color:var(--ink-soft);flex:1;font-size:.85rem}.task-name.done{color:var(--ink-faint);text-decoration:line-through}.task-meta-right{gap:6px;display:flex}.day-task-item{background:var(--paper-hover);border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px;padding:10px}.day-task-top{align-items:center;gap:8px;margin-bottom:6px;display:flex}.proj-badge{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);flex:1;font-size:.65rem}.overdue-badge{color:var(--warn);text-transform:uppercase;letter-spacing:.05em;font-size:.6rem}.auth-page{justify-content:center;align-items:center;min-height:80vh;display:flex}.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);width:340px;padding:32px}.auth-field{margin-bottom:16px}.auth-field label{color:var(--ink-soft);margin-bottom:6px;font-size:.75rem;display:block}.auth-field input{background:var(--bg);border:1px solid var(--line-strong);width:100%;color:var(--ink);border-radius:var(--r);padding:8px 12px}.auth-submit{background:var(--ink);width:100%;color:var(--bg);border-radius:var(--r);border:none;margin-top:8px;padding:10px;font-weight:600}.dialog{background:0 0;border:none;width:100%;max-width:400px;padding:0}.dialog::backdrop{background:#0009}.dialog-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);color:var(--ink-soft);padding:24px}.dialog-title{color:var(--ink);margin-bottom:16px;font-size:1.1rem}.dialog-field{margin-bottom:16px}.dialog-field label{color:var(--ink-soft);margin-bottom:6px;font-size:.75rem;display:block}.dialog-field input,.dialog-field textarea,.dialog-field select{background:var(--bg);border:1px solid var(--line-strong);width:100%;color:var(--ink);border-radius:var(--r);padding:8px 12px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.ghost-btn{border:1px solid var(--line-strong);color:var(--ink);border-radius:var(--r);background:0 0;padding:8px 16px}.accent-btn{background:var(--ink);color:var(--bg);border-radius:var(--r);border:none;padding:8px 16px}.toast-container{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--paper-hover);border:1px solid var(--line-strong);color:var(--ink);border-radius:var(--r);box-shadow:var(--shadow-card);padding:12px 16px;font-size:.85rem}.toast.error{border-color:var(--warn);color:var(--warn)}@media (width<=1024px){.days-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=800px){.planning-board{flex-direction:column}.sidebar{width:100%}.days-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=500px){.days-grid{grid-template-columns:1fr}}
