:root{--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--accent: #3d5bfe;--accent-fg: #ffffff;--app-font-scale: 1}body{--text-8-5: calc(8.5px * var(--app-font-scale));--text-9: calc(9px * var(--app-font-scale));--text-9-5: calc(9.5px * var(--app-font-scale));--text-10: calc(10px * var(--app-font-scale));--text-10-5: calc(10.5px * var(--app-font-scale));--text-11: calc(11px * var(--app-font-scale));--text-11-5: calc(11.5px * var(--app-font-scale));--text-12: calc(12px * var(--app-font-scale));--text-12-5: calc(12.5px * var(--app-font-scale));--text-13: calc(13px * var(--app-font-scale));--text-13-5: calc(13.5px * var(--app-font-scale));--text-14: calc(14px * var(--app-font-scale));--text-14-5: calc(14.5px * var(--app-font-scale));--text-15: calc(15px * var(--app-font-scale));--text-16: calc(16px * var(--app-font-scale));--text-17: calc(17px * var(--app-font-scale));--text-18: calc(18px * var(--app-font-scale));--text-19: calc(19px * var(--app-font-scale));--text-20: calc(20px * var(--app-font-scale));--text-21: calc(21px * var(--app-font-scale));--text-22: calc(22px * var(--app-font-scale));--text-24: calc(24px * var(--app-font-scale));--text-26: calc(26px * var(--app-font-scale));--text-27: calc(27px * var(--app-font-scale));--text-28: calc(28px * var(--app-font-scale));--font-caption: var(--text-11);--font-meta: var(--text-11-5);--font-control-sm: var(--text-12);--font-control: var(--text-12-5);--font-body-sm: var(--text-13);--font-body: var(--text-14);--font-title-sm: var(--text-15);--font-title: var(--text-16);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 22px;--radius-control: 8px;--radius-panel: 14px;--control-height: 34px;--shadow-modal: 0 24px 70px rgba(0, 0, 0, .22)}body[data-theme=light]{--bg: #fafaf7;--surface-1: #f4f3ee;--surface-2: #ecebe4;--line: #e5e3da;--line-2: #d8d5c9;--ink-1: #1a1a19;--ink-2: #595955;--ink-3: #95938a;--status-backlog-bg: oklch(.94 .005 250);--status-backlog-fg: oklch(.5 .02 250);--status-todo-bg: oklch(.94 .02 250);--status-todo-fg: oklch(.45 .06 250);--status-in_progress-bg: oklch(.93 .05 80);--status-in_progress-fg: oklch(.45 .1 70);--status-review-bg: oklch(.93 .05 290);--status-review-fg: oklch(.45 .12 290);--status-done-bg: oklch(.93 .05 150);--status-done-fg: oklch(.42 .08 150);--color-overdue: oklch(.55 .18 25);--color-due-today: oklch(.55 .16 40);--color-warn: oklch(.62 .14 70);--color-danger: oklch(.55 .18 25);--priority-low: oklch(.72 .04 250);--priority-medium: oklch(.68 .12 80);--priority-high: oklch(.62 .15 40);--priority-urgent: oklch(.58 .18 25)}body[data-theme=dark]{--bg: #15161a;--surface-1: #1b1d22;--surface-2: #23262c;--line: #2a2d34;--line-2: #3a3e47;--ink-1: #e8e8e6;--ink-2: #a6a6a1;--ink-3: #6e6e68;--status-backlog-bg: oklch(.25 .01 250);--status-backlog-fg: oklch(.78 .02 250);--status-todo-bg: oklch(.26 .04 250);--status-todo-fg: oklch(.82 .06 250);--status-in_progress-bg: oklch(.3 .06 70);--status-in_progress-fg: oklch(.88 .1 80);--status-review-bg: oklch(.28 .05 290);--status-review-fg: oklch(.85 .1 290);--status-done-bg: oklch(.28 .05 150);--status-done-fg: oklch(.85 .1 150);--color-overdue: oklch(.76 .18 25);--color-due-today: oklch(.78 .16 40);--color-warn: oklch(.82 .14 70);--color-danger: oklch(.76 .18 25);--priority-low: oklch(.8 .04 250);--priority-medium: oklch(.84 .12 80);--priority-high: oklch(.82 .15 40);--priority-urgent: oklch(.8 .18 25)}body[data-density=compact]{--row-pad-y: 5px;--row-pad-x: 8px;--card-gap: 6px;--card-pad: 9px;--section-pad: 12px 18px}body[data-density=comfortable]{--row-pad-y: 9px;--row-pad-x: 12px;--card-gap: 8px;--card-pad: 12px;--section-pad: 20px 24px}body[data-density=spacious]{--row-pad-y: 13px;--row-pad-x: 16px;--card-gap: 12px;--card-pad: 16px;--section-pad: 28px 32px}body[data-font-scale=normal]{--app-font-scale: 1}body[data-font-scale=large]{--app-font-scale: 1.08}body[data-font-scale=xlarge]{--app-font-scale: 1.16}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink-1);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:var(--font-body);line-height:1.4}button{font-family:inherit}::selection{background:color-mix(in oklab,var(--accent) 30%,transparent)}input:focus,textarea:focus,select:focus{outline:none}a{color:var(--accent)}.navitem:focus-visible,.ghostbtn:focus-visible,.primarybtn:focus-visible,.tab:focus-visible,.rowbtn:focus-visible,.listrow:focus-visible,.iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border:2px solid var(--bg);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:transparent;border:none;cursor:pointer;color:var(--ink-2);padding:0;transition:background .12s,color .12s}.iconbtn:hover{background:var(--surface-2);color:var(--ink-1)}.ghostbtn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;background:transparent;border:1px solid var(--line);cursor:pointer;font-size:var(--text-12-5);color:var(--ink-1);transition:background .12s,border-color .12s}.ghostbtn:hover{background:var(--surface-2)}.ghostbtn[data-active=true]{background:var(--surface-2);border-color:var(--line-2)}.ghostbtn:disabled{opacity:.5;cursor:default}.primarybtn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;background:var(--accent);color:var(--accent-fg);border:none;cursor:pointer;font-size:var(--text-12-5);font-weight:500;transition:filter .12s,transform 80ms}.primarybtn:hover{filter:brightness(1.08)}.primarybtn:active{transform:translateY(1px)}.primarybtn:disabled{opacity:.4;cursor:default}.app-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a0c1261;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app-dialog{width:min(440px,100%);padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink-1);box-shadow:0 24px 70px #00000038}.app-dialog-title{margin:0;font-size:var(--text-16);line-height:1.3}.app-dialog-message{margin:8px 0 0;color:var(--ink-2);font-size:var(--text-13);line-height:1.5;white-space:pre-wrap}.app-dialog-input{width:100%;margin-top:14px;padding:9px 10px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface-1);color:var(--ink-1);font:inherit}.app-dialog-input:focus{outline:2px solid var(--accent);outline-offset:1px}.app-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.app-dialog-danger{background:var(--color-danger)!important;border-color:var(--color-danger)!important}.app-toast-host{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:10001;display:flex;flex-direction:column-reverse;align-items:center;gap:8px;pointer-events:none}.app-toast{display:inline-flex;align-items:center;gap:14px;max-width:min(440px,calc(100vw - 32px));padding:8px 8px 8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink-1);box-shadow:0 12px 32px color-mix(in oklab,var(--ink-1) 16%,transparent);font-size:var(--text-13);pointer-events:auto;animation:app-toast-in .16s cubic-bezier(.2,.8,.2,1)}.app-toast[data-leaving=true]{opacity:0;transform:translateY(6px);transition:opacity .16s,transform .16s}@keyframes app-toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-toast-msg{color:var(--ink-2)}.app-toast-action{flex-shrink:0;border:none;border-radius:999px;padding:6px 14px;background:var(--surface-1);color:var(--ink-1);font:inherit;font-weight:500;cursor:pointer;transition:background .12s}.app-toast-action:hover{background:var(--surface-2)}.navitem{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:6px;background:transparent;border:none;cursor:pointer;color:var(--ink-2);font-size:var(--text-13);font-family:inherit;text-align:left;width:100%;transition:background .12s,color .12s}.navitem:hover{background:var(--surface-1);color:var(--ink-1)}.navitem[data-active=true]{background:var(--surface-2);color:var(--ink-1);font-weight:500}.tab{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;background:transparent;border:none;cursor:pointer;color:var(--ink-3);font-size:var(--text-12-5);font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s}.tab:hover{color:var(--ink-1)}.tab[data-active=true]{color:var(--ink-1);font-weight:500;border-bottom-color:var(--ink-1)}.rowbtn{display:flex;align-items:center;gap:10px;padding:var(--row-pad-y) 8px;background:transparent;border:none;cursor:pointer;color:inherit;border-bottom:1px solid var(--line);text-align:left;font-family:inherit;width:100%;transition:background .12s}.rowbtn:last-child{border-bottom:none}.rowbtn:hover{background:var(--surface-1)}.personrow{display:flex;align-items:center;gap:8px;padding:calc(var(--row-pad-y) - 2px) 4px;background:transparent;border:none;cursor:pointer;text-align:left;font-family:inherit;width:100%;color:var(--ink-1);border-radius:4px;transition:background .12s}.personrow:hover{background:var(--surface-1)}.calchip{display:inline-flex;align-items:center;gap:5px;padding:3px 5px;border-radius:4px;background:var(--surface-2);color:var(--ink-1);border:none;cursor:pointer;font-family:inherit;font-size:var(--text-11);line-height:1.3;font-weight:500;width:100%;text-align:left}.calchip:hover{filter:brightness(.97)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:var(--text-11-5);transition:background .12s,color .12s,border-color .12s}.chip:hover{color:var(--ink-1)}.chip[data-active=true]{background:var(--ink-1);color:var(--bg);border-color:var(--ink-1)}.bareSelect{border:none;outline:none;background:transparent;font-family:inherit;font-size:var(--text-12-5);color:var(--ink-1);padding:0;cursor:pointer}.bareSelect option{color:#1a1a19;background:#fafaf7}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.form-field{display:flex;min-width:0;flex-direction:column;gap:5px}.form-field-label{color:var(--ink-3);font-size:var(--font-caption);font-weight:500;letter-spacing:0;text-transform:uppercase}.form-field-optional{font-weight:400;text-transform:none}.form-control{width:100%;min-width:0;min-height:var(--control-height);padding:6px 10px;color:var(--ink-1);font-family:inherit;font-size:var(--font-body-sm);line-height:1.4;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-control);transition:border-color .12s,box-shadow .12s,background .12s}.form-control:hover:not(:disabled){border-color:var(--line-2)}.form-control:focus-visible{border-color:color-mix(in oklab,var(--accent) 55%,var(--line));box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 16%,transparent);outline:none}.form-control:disabled{cursor:not-allowed;opacity:.55}.form-control[data-size=compact]{width:auto;min-height:28px;padding:3px 6px;font-size:var(--font-control-sm);border-radius:6px}.form-control[data-emphasis=strong]{font-weight:600}.form-control-fit{width:fit-content;max-width:100%}.form-control.money-input{padding-right:42px;text-align:right}.form-control.money-input-sm{padding-right:30px}.form-control.money-input-lg{padding-right:58px}.form-control.numeric-right{text-align:right}.form-textarea{min-height:64px;line-height:1.55;resize:vertical}.form-textarea[data-size=compact]{width:100%;min-height:58px;padding:6px 9px;font-size:var(--font-control)}.proposal-editor{min-width:0}.proposal-task-editor{margin-bottom:18px}.proposal-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.proposal-header h3{flex:1;margin:0;color:var(--ink-3);font-size:var(--font-caption);font-weight:500;letter-spacing:0;text-transform:uppercase}.ghostbtn.proposal-add{padding:3px 10px;font-size:var(--font-meta)}.proposal-empty{padding:18px;color:var(--ink-3);font-size:var(--font-control);text-align:center;border:1px dashed var(--line);border-radius:var(--radius-control)}.proposal-list{display:flex;flex-direction:column;gap:var(--space-2)}.proposal-card{display:flex;gap:10px;padding:10px var(--space-3);background:var(--surface-1);border:1px solid var(--line);border-radius:10px;opacity:.6}.proposal-card[data-selected=true]{background:var(--bg);opacity:1}.proposal-checkbox{flex-shrink:0;margin-top:6px}.proposal-content{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.proposal-controls,.proposal-assignees{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.proposal-assignees{gap:3px}.proposal-control-label,.proposal-confidence{color:var(--ink-3);font-size:var(--font-caption)}.proposal-confidence{margin-left:auto}.proposal-remove{display:inline-flex;align-items:center;justify-content:center;padding:3px;color:var(--ink-3);cursor:pointer;background:transparent;border:0}.proposal-remove:hover{color:var(--color-danger)}.proposal-quote{padding-left:var(--space-2);color:var(--ink-2);font-size:var(--font-meta);line-height:1.5;border-left:2px solid var(--line)}.inline-alert{padding:9px 11px;color:var(--ink-2);font-size:var(--font-control-sm);line-height:1.45;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-control)}.inline-alert[data-compact=true]{padding:6px 9px;font-size:var(--font-meta)}.inline-alert[data-kind=error]{color:var(--color-danger);background:color-mix(in oklab,var(--color-danger) 7%,var(--bg));border-color:color-mix(in oklab,var(--color-danger) 25%,var(--line))}.inline-alert[data-kind=warning]{color:var(--color-warn);background:color-mix(in oklab,var(--color-warn) 8%,var(--bg));border-color:color-mix(in oklab,var(--color-warn) 28%,var(--line))}.inline-alert[data-kind=success]{color:var(--status-done-fg);background:var(--status-done-bg);border-color:color-mix(in oklab,var(--status-done-fg) 24%,var(--line))}@keyframes slideInRight{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(20px);opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@keyframes popIn{0%{transform:scale(.97) translateY(-4px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--modal-z-index, 300);display:flex;align-items:center;justify-content:center;padding:24px;background:#0006;animation:fadeIn .16s}.app-modal-backdrop[data-placement=top]{align-items:flex-start;padding-top:var(--modal-top, 24px)}.app-modal-panel{position:relative;display:flex;flex-direction:column;width:var(--modal-width, 720px);max-width:calc(100vw - 48px);height:var(--modal-height, min(760px, calc(100dvh - 48px) ));max-height:calc(100dvh - 48px);margin:0;overflow:hidden;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow-modal);animation:popIn .2s cubic-bezier(.2,.8,.2,1)}.app-modal-panel[data-scroll=true]{overflow-y:auto}.app-modal-header,.app-modal-body,.app-modal-footer{min-width:0;max-width:100%;overflow-x:hidden}.app-modal-header{display:flex;align-items:center;gap:var(--space-3);padding:18px 54px 12px var(--space-5);border-bottom:1px solid var(--line)}.app-modal-body{flex:1;min-height:0;padding:18px var(--space-5);overflow-y:auto}.app-modal-footer{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--surface-1);border-top:1px solid var(--line)}.app-modal-close{position:absolute;top:var(--space-3);right:14px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0}.ghostbtn.app-modal-close,.iconbtn.app-modal-close{padding:0}.app-modal-footer-spacer{flex:1}.app-modal-split{display:flex;flex:1;min-height:0}.app-modal-tab-rail{display:flex;flex:none;width:184px;flex-direction:column;gap:2px;padding:12px 10px;overflow:auto;border-right:1px solid var(--line)}.app-modal-tab-content{flex:1;min-width:0;padding:20px 22px;overflow:auto}.crud-modal-body{display:flex;flex-direction:column;gap:16px}.crud-modal-footer{justify-content:flex-end}.app-modal-header :is(span,strong),.app-modal-body :is(p,li,code,input,textarea){overflow-wrap:anywhere}.app-modal-body :is(label,details,input,textarea,select),.app-modal-body details>div{min-width:0;max-width:100%}.stack{display:flex;min-width:0;flex-direction:column;gap:var(--space-3)}.stack-sm{gap:var(--space-2)}.cluster,.toolbar,.split-row{display:flex;min-width:0;align-items:center;gap:var(--space-2)}.cluster,.toolbar{flex-wrap:wrap}.split-row{justify-content:space-between}.grow{flex:1;min-width:0}.section-header{color:var(--ink-3);font-size:var(--text-10-5);font-weight:600;letter-spacing:0;text-transform:uppercase}@media(max-width:768px){.app-modal-backdrop{align-items:stretch;justify-content:stretch;padding:0}.app-modal-panel[role=dialog][aria-modal=true]{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0;box-shadow:none}.app-modal-panel[role=dialog][aria-modal=true][data-scroll=true]{overflow-y:auto}.app-modal-header{padding:16px 52px 12px 16px}.app-modal-body{padding:16px}.app-modal-footer{padding:12px 16px}}@media(max-width:1024px),(pointer:coarse){.app-modal-backdrop[data-fullscreen=tablet]{align-items:stretch;justify-content:stretch;padding:0}.app-modal-backdrop[data-fullscreen=tablet]>.app-modal-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;overflow:hidden;border:0;border-radius:0;box-shadow:none}}@media(max-width:560px){.form-grid{grid-template-columns:minmax(0,1fr)}.app-modal-header{padding:14px 48px 10px 14px}.app-modal-body{padding:14px}.app-modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:6px;padding:12px 14px}.app-modal-footer-spacer{display:none}.app-modal-split{flex-direction:column}.app-modal-tab-rail{width:100%;flex-direction:row;padding:8px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.app-modal-tab-rail>*{flex:0 0 auto}.app-modal-tab-content{padding:16px 14px}}@media(max-width:1024px){body{font-size:var(--text-13-5)}.tab{padding:7px 9px;font-size:var(--text-12)}.view-shell{padding:18px 16px 32px!important}}@media(max-width:768px){body{font-size:var(--text-13)}.tab{padding:6px 7px;font-size:var(--text-11-5);gap:4px}.ghostbtn{padding:6px 8px;font-size:var(--text-12)}.primarybtn{padding:6px 10px;font-size:var(--text-12)}.iconbtn{width:28px;height:28px}.view-shell{padding:14px 12px 28px!important}::-webkit-scrollbar{width:6px;height:6px}.kanban-status-grid{display:flex!important;overflow-x:auto!important;gap:8px!important;scroll-snap-type:x mandatory}.kanban-status-grid>*{flex:0 0 78%;min-width:240px;scroll-snap-align:start}}@media(max-width:560px){main,main *{max-width:100vw;min-width:0}}
