:root{--bg:#f3f5fb;--surface:#fff;--surface-strong:#fff;--surface-sunken:#eef2fb;--ink:#111a3a;--muted:#66708f;--faint:#a5aec8;--line:#dfe5f2;--line-strong:#c9d2e6;--accent:#4d63ff;--accent-strong:#24379c;--accent-soft:#edf0ff;--overdue:#e05b70;--overdue-soft:#ffeaf0;--soon:#6f7cff;--soon-soft:#eef0ff;--ok:#38a3a5;--ok-soft:#e8f7f7;--danger-soft:#ffeaf0;--shadow:0 18px 45px #111a3a1c;--shadow-sm:0 8px 22px #111a3a12;--mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--body:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm:10px;--radius-lg:20px}*{box-sizing:border-box}html{background:radial-gradient(circle at 15% 0%, #4d63ff14, transparent 30rem), radial-gradient(circle at 90% 6%, #24379c14, transparent 28rem), var(--bg);min-height:100%;color:var(--ink)}body{min-height:100vh;font-family:var(--body);margin:0;font-size:15px;line-height:1.5}button,input,textarea,select{font:inherit}button{border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:38px;color:var(--ink);cursor:pointer;padding:0 14px;font-weight:600;transition:background-color .14s,border-color .14s,transform 80ms}button:hover{border-color:var(--accent);background:var(--accent-soft)}button:active{transform:scale(.98)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #4d63ff47}input,textarea,select{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--ink);padding:10px 12px}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent)}textarea{resize:vertical;min-height:92px}h1,h2,h3,p{font-family:var(--display);margin-top:0}.eyebrow{color:var(--accent-strong);font-family:var(--body);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;font-size:.76rem;font-weight:700}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(430px,100%);box-shadow:var(--shadow);padding:36px}.login-panel h1{letter-spacing:0;color:var(--ink);margin-bottom:26px;font-size:clamp(2.2rem,8vw,3.2rem);font-weight:700;line-height:1.05}.login-form,.form-stack{gap:13px;display:grid}label{color:var(--muted);font-family:var(--body);gap:6px;font-size:.82rem;font-weight:600;display:grid}.field-label{color:var(--muted);font-family:var(--body);font-size:.82rem;font-weight:600}.field-help{color:var(--faint);font-family:var(--body);font-size:.76rem;font-weight:500}.form-error{color:var(--overdue);margin:0;font-weight:600}.app-shell{width:min(1240px,100%);margin:0 auto;padding:24px}.app-header{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.app-header h1{letter-spacing:0;color:var(--ink);margin:0;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;line-height:1}.header-actions,.toolbar-actions,.form-actions,.row-actions{flex-wrap:wrap;gap:8px;display:flex}.tabs{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);gap:4px;margin-bottom:18px;padding:4px;display:inline-flex}.tabs button,.drawer-tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px}.tabs button.active,.drawer-tabs button.active{background:var(--accent-strong);color:#fff;box-shadow:none}.dashboard{gap:16px;display:grid}.summary-rail{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.summary-chip{border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);text-align:left;min-height:64px;box-shadow:var(--shadow-sm);justify-content:flex-start;align-items:center;gap:10px;padding:0 16px;display:flex}.summary-chip span{font-family:var(--mono);color:var(--ink);font-size:1.6rem;font-weight:700}.summary-chip.active{border-color:var(--accent);background:var(--accent-soft)}.dashboard-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.search-field input{border-radius:var(--radius-sm);min-height:44px}.primary{border-color:var(--accent);background:var(--accent);color:#fff}.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.message,.empty-state,.muted{color:var(--muted)}.task-sections{gap:14px;display:grid}.task-section{border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.section-header{border:0;border-bottom:1.5px solid var(--line);background:var(--surface-sunken);text-align:left;border-radius:0;justify-content:space-between;align-items:center;width:100%;min-height:58px;padding:0 20px;display:flex}.section-header span{font-family:var(--display);color:var(--ink);font-size:1.08rem;font-weight:600}.section-header small{color:var(--muted);font-family:var(--mono)}.task-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.task-row:last-child{border-bottom:0}.task-row.active,.task-row:hover{background:var(--surface-sunken)}.task-open{text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;gap:12px;width:100%;min-height:82px;padding:13px 0 13px 18px;display:grid}.task-copy{gap:5px;min-width:0;display:grid}.task-copy strong{font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:600;overflow:hidden}.task-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.progress-track{background:var(--surface-sunken);border-radius:999px;width:min(480px,100%);height:6px;display:block;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--ok);min-width:3px;height:100%;display:block}.overdue .progress-track span{background:var(--overdue)}.due-soon .progress-track span{background:var(--soon)}.task-due{min-width:92px;color:var(--muted);font-family:var(--mono);justify-items:end;font-size:.78rem;display:grid}.task-due strong{color:var(--ink);font-size:.9rem}.quick-actions{gap:6px;padding-right:14px;display:flex}.quick-actions button{min-height:32px;padding-inline:10px;font-size:.78rem}.drawer{z-index:8;border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(460px,100vw - 32px);box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;top:16px;bottom:16px;right:16px;overflow:hidden}.drawer-header,.modal-header{border-bottom:1.5px solid var(--line);background:var(--surface-sunken);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px;display:flex}.drawer-header h2,.modal-header h2{letter-spacing:-.01em;color:var(--ink);margin:0;font-weight:600}.icon-button{width:38px;min-height:38px;padding:0;font-size:1.2rem}.drawer-tabs{border-bottom:1.5px solid var(--line);gap:4px;padding:10px 14px;display:flex}.drawer-tabs button{min-height:34px}.drawer-body{padding:18px;overflow:auto}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.data-point{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunken);padding:12px}.data-point span{color:var(--muted);font-size:.74rem;font-weight:700;display:block}.data-point strong{font-family:var(--mono);color:var(--ink);font-size:.86rem}.drawer-note{color:var(--muted);margin:16px 0}.history-panel{gap:8px;margin-top:18px;display:grid}.history-panel h3{color:var(--ink);margin:0;font-weight:600}.history-item{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.history-item strong{font-family:var(--mono);color:var(--ink);font-size:.82rem}.history-item span{color:var(--muted)}.history-item button,.danger-link,.row-actions button:last-child,.quick-actions button:last-child{background:var(--danger-soft);color:var(--overdue);border-color:#d9614f66}.danger-link{margin-top:18px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid .wide{grid-column:1/-1}.category-field{gap:8px;display:grid}.segmented-control{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);gap:3px;width:fit-content;padding:3px;display:inline-flex}.segmented-control button{min-height:30px;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:0 10px}.segmented-control button.active{background:var(--accent-strong);color:#fff}.segmented-control button:disabled{cursor:not-allowed;opacity:.45}.modal-backdrop{z-index:9;background:#3d2b1f73;place-items:start center;padding:28px 14px;display:grid;position:fixed;inset:0;overflow:auto}.modal-panel{border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(740px,100%);box-shadow:var(--shadow);overflow:hidden}.modal-body{padding:18px}.raw-view{gap:18px;display:grid}.raw-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.raw-header h2{color:var(--ink);margin-bottom:6px;font-weight:600}.raw-header p,.raw-note{color:var(--muted);font-family:var(--body);margin-bottom:4px}.raw-note code{border:1px solid var(--line);background:var(--surface-sunken);border-radius:6px;padding:1px 5px}.raw-table-block{gap:8px;display:grid}.raw-table-title{justify-content:space-between;align-items:end;gap:12px;display:flex}.raw-table-title h3{color:var(--ink);margin:0;font-weight:600}.raw-table-title label{width:min(300px,50vw)}.table-scroll{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:auto}.admin-table{border-collapse:collapse;width:100%;min-width:900px}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:7px 10px}.admin-table th{background:var(--surface-sunken);color:var(--muted);font-family:var(--mono);font-size:.74rem}.admin-table th button{min-height:0;color:inherit;font:inherit;background:0 0;border:0;border-radius:6px;padding:3px 4px}.admin-table td span{overflow-wrap:anywhere;max-width:34rem;font-size:.8rem;line-height:1.35;display:block}.admin-table input,.admin-table textarea{min-width:130px;font-family:var(--mono);padding:7px 8px;font-size:.78rem}.admin-table textarea{min-height:42px}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover{background:var(--surface-sunken)}.admin-table tbody tr.selected{background:var(--accent-soft)}.admin-table tbody tr.editing{background:var(--surface)}.raw-action-bar{z-index:3;border:1.5px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);width:min(760px,100vw - 32px);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:14px;margin:12px auto 0;padding:10px 12px;display:flex;position:sticky;bottom:14px}.raw-action-bar>div:first-child{min-width:0;display:grid}.raw-action-bar strong{color:var(--ink);font-size:.86rem}.raw-action-bar span{color:var(--muted);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}@media (width<=840px){.app-shell{padding:16px}.app-header,.dashboard-toolbar,.raw-header,.raw-table-title{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.summary-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.task-row{grid-template-columns:1fr;gap:0}.task-open{grid-template-columns:minmax(0,1fr);padding-right:14px}.task-due{justify-items:start}.quick-actions{justify-content:flex-start;padding:0 14px 12px}.drawer{width:auto;max-height:86vh;inset:auto 10px 10px}.raw-table-title label{width:100%}.raw-action-bar{flex-direction:column;align-items:stretch}.raw-action-bar .row-actions{width:100%}.raw-action-bar .row-actions button{flex:1}}@media (width<=520px){.app-shell{padding:12px}.app-header h1{font-size:2.2rem}.summary-rail,.detail-grid,.form-grid{grid-template-columns:1fr}.tabs,.header-actions,.toolbar-actions{width:100%}.tabs button,.header-actions button,.toolbar-actions button{flex:1}.history-item{grid-template-columns:1fr auto}.history-item span{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){button,input,textarea,select,.task-row,.drawer{transition:none}}
