@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-sans-latin-400-normal-gapTbOY8.woff2) format("woff2"),url(/assets/geist-sans-latin-400-normal-BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-sans-latin-500-normal-uokXdC-Q.woff2) format("woff2"),url(/assets/geist-sans-latin-500-normal-CN2lyvyL.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/geist-sans-latin-600-normal-DFOURf8L.woff2) format("woff2"),url(/assets/geist-sans-latin-600-normal-CA1yjETN.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/geist-sans-latin-700-normal-BmN9tIp5.woff2) format("woff2"),url(/assets/geist-sans-latin-700-normal-CjScfYeH.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-DKaoCDn5.woff2) format("woff2"),url(/assets/geist-mono-latin-400-normal-BXAprPdR.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-latin-500-normal-C3sF8Y1B.woff2) format("woff2"),url(/assets/geist-mono-latin-500-normal-YfPbDI_o.woff) format("woff")}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=dark]{--font-sans: "Geist Sans Variable", "Geist Sans", system-ui, -apple-system, sans-serif;--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;--font-mono: "Geist Mono Variable", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ease: cubic-bezier(.32, .72, 0, 1);--dur-fast: .14s;--dur-base: .2s;--bg: #17130f;--surface: #201a16;--surface2: #271f1a;--surface3: #30251f;--border: #322620;--border2: #40312a;--text: #f4ede8;--dim: #baaaa1;--faint: #9a8880;--accent: #e35336;--accent2: #f38c81;--accentSoft: rgba(227, 83, 54, .16);--onAccent: #ffffff;--accentSolid: #b6431f;--plan: #5a9bb5;--plan2: #8fc0d3;--planSoft: rgba(90, 155, 181, .16);--planDim: #3b6b7a;--archi: #e35336;--archiSoft: rgba(227, 83, 54, .16);--ok: #34d399;--okSoft: rgba(52, 211, 153, .15);--onOk: #06251a;--warn: #e0a33a;--warnSoft: rgba(224, 163, 58, .15);--danger: #f4506e;--dangerSoft: rgba(244, 80, 110, .15);--goldSoft: rgba(227, 83, 54, .16);--goldDim: #a85f4a;--money: #e35336;--logoInk: #f4ede8;--sk-bone: #322620;--sk-shimmer: rgba(227, 83, 54, .1);--sk-beam: rgba(227, 83, 54, .85);--sk-beam-core: #ffd0c6;--shadow: 0 16px 40px rgba(15, 8, 4, .5);--shadow-e1: 0 2px 8px rgba(15, 8, 4, .3);--shadow-e2: 0 10px 28px rgba(15, 8, 4, .4);--glass-bg: rgba(32, 26, 22, .55);--glass-border: rgba(255, 255, 255, .08);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .06);--glass-shadow: 0 8px 40px rgba(0, 0, 0, .35);--glass-blur: saturate(180%) blur(24px);--dc-1: #e08a5e;--dc-2: #7fa6b2;--dc-3: #c9a66b;--dc-4: #8fbf8a;--dc-5: #b48ed6;--dc-6: #e5a5c0;--onData: #0d0e12}[data-theme=light]{--bg: #faf6f3;--surface: #ffffff;--surface2: #f5efeb;--surface3: #ede4de;--border: #eaddd5;--border2: #ddccc2;--text: #2a1c16;--dim: #57453c;--faint: #715f56;--accent: #b6431f;--accent2: #9e3a26;--accentSoft: rgba(182, 67, 31, .1);--onAccent: #ffffff;--accentSolid: #b6431f;--plan: #2f5c6b;--plan2: #234653;--planSoft: rgba(47, 92, 107, .1);--planDim: #3b6b7a;--archi: #b6431f;--archiSoft: rgba(182, 67, 31, .1);--ok: #03724e;--okSoft: rgba(5, 150, 105, .1);--onOk: #ffffff;--warn: #8f5c14;--warnSoft: rgba(184, 121, 27, .12);--danger: #d63a56;--dangerSoft: rgba(214, 58, 86, .1);--goldSoft: rgba(182, 67, 31, .1);--goldDim: #8a4024;--money: #b6431f;--sk-bone: #ede4de;--sk-shimmer: rgba(182, 67, 31, .1);--sk-beam: rgba(182, 67, 31, .75);--sk-beam-core: #e35336;--shadow: 0 18px 50px rgba(60, 30, 20, .14);--shadow-e1: 0 1px 4px rgba(60, 30, 20, .08);--shadow-e2: 0 10px 24px rgba(60, 30, 20, .12);--glass-bg: rgba(255, 255, 255, .55);--glass-border: rgba(0, 0, 0, .06);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .65);--glass-shadow: 0 8px 40px rgba(60, 30, 20, .12);--glass-blur: saturate(180%) blur(24px);--dc-1: #ab5a37;--dc-2: #2f5c6b;--dc-3: #8a6a2f;--dc-4: #3f7a48;--dc-5: #6d4f96;--dc-6: #a14f72;--onData: #ffffff}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;-webkit-font-smoothing:antialiased}.display,h1.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}@keyframes arx-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.reveal{animation:arx-reveal var(--dur-base) var(--ease) both;animation-delay:calc(var(--i, 0) * var(--stagger, 30ms))}@media(prefers-reduced-motion:reduce){.reveal{animation:none}}*{box-sizing:border-box}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:9px}::-webkit-scrollbar-track{background:transparent}.glass{background:var(--surface);border:1px solid var(--border)}@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)){.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-highlight),var(--glass-shadow)}}@media(prefers-reduced-transparency:reduce){.glass{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--border);box-shadow:none}}.arx-logo{position:relative;display:block;width:44px;height:44px;border-radius:13px;background:linear-gradient(100.6deg,var(--planDim) 0 50%,var(--accent) 50% 100%);box-shadow:inset 0 0 0 1px #ffffff0f}.arx-logo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--logoInk);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='black' stroke='black'%3E%3Ccircle cx='17' cy='30' r='6.2' fill='none' stroke-width='3.6'/%3E%3Crect x='9' y='22' width='3.6' height='24' stroke='none'/%3E%3Ccircle cx='32' cy='30' r='4' stroke='none'/%3E%3Ccircle cx='47' cy='30' r='6.2' fill='none' stroke-width='3.6'/%3E%3Crect x='51.4' y='22' width='3.6' height='16' stroke='none'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='black' stroke='black'%3E%3Ccircle cx='17' cy='30' r='6.2' fill='none' stroke-width='3.6'/%3E%3Crect x='9' y='22' width='3.6' height='24' stroke='none'/%3E%3Ccircle cx='32' cy='30' r='4' stroke='none'/%3E%3Ccircle cx='47' cy='30' r='6.2' fill='none' stroke-width='3.6'/%3E%3Crect x='51.4' y='22' width='3.6' height='16' stroke='none'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat}.arx-wordmark{font-family:var(--font-display);font-weight:600;color:var(--text);letter-spacing:-.01em}.arx-wordmark .plan{color:var(--plan)}.arx-wordmark .archi{color:var(--accent)}.arx-wordmark .sep{color:var(--faint);padding:0 .06em}.arx-wordmark .on{font-weight:700;color:var(--accent)}:root{--scrim: rgba(0, 0, 0, .45);--stagger: 30ms}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-48px;z-index:200;padding:8px 14px;border-radius:9px;background:var(--accentSolid);color:var(--onAccent);font-weight:600;font-size:13px;text-decoration:none;transition:top .15s var(--ease)}.skip-link:focus-visible{top:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:9px;padding:9px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;color:var(--text);background:transparent;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accentSolid);color:var(--onAccent)}.btn-primary:not(:disabled):hover{filter:brightness(1.05)}.btn-ok{background:var(--ok);color:var(--onOk)}.btn-ok:not(:disabled):hover{filter:brightness(1.08)}.btn-secondary{background:var(--surface2);border-color:var(--border)}.btn-secondary:not(:disabled):hover{background:var(--surface3)}.btn-ghost{color:var(--dim)}.btn-ghost:not(:disabled):hover{background:var(--surface2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:not(:disabled):hover{filter:brightness(1.1)}.btn-sm{padding:6px 10px;font-size:12.5px;border-radius:8px}.btn-icon{width:32px;height:32px;padding:0;border-radius:8px}.input,.select,.textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font:inherit;font-size:13.5px;transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border2)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accentSoft)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.input[aria-invalid=true]:focus,.textarea[aria-invalid=true]:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.textarea{resize:vertical;min-height:72px;line-height:1.5}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-root{display:flex;height:100vh;overflow:hidden}.app-col{flex:1;min-width:0;display:flex;flex-direction:column}.icon-sidebar{width:62px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0;flex-shrink:0;z-index:10}.icon-btn{width:48px;height:48px;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;font:inherit;cursor:pointer;text-decoration:none;color:var(--dim);background:transparent;transition:background .12s var(--ease),color .12s var(--ease)}.icon-btn:hover{background:var(--surface2);color:var(--text)}.icon-btn.active{color:var(--accent2);background:var(--accentSoft)}.icon-btn-label{font-size:9px;font-weight:500}.topbar{height:54px;display:flex;align-items:center;gap:12px;padding:0 16px;flex-shrink:0;z-index:10}.pnav{width:232px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 10px 10px;gap:2px;overflow-y:auto;transition:width .2s var(--ease)}.pnav.collapsed{width:60px;padding-left:6px;padding-right:6px}.pnav.collapsed .pnav-label,.pnav.collapsed .pnav-group-label,.pnav.collapsed .pnav-project-meta{display:none}.pnav.collapsed .pnav-item{justify-content:center;padding:9px 0}.pnav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--dim);text-decoration:none;font-size:13.5px;font-weight:500;border:none;background:none;font-family:inherit;cursor:pointer;width:100%;text-align:left;transition:background .12s var(--ease),color .12s var(--ease)}.pnav-item:hover{background:var(--surface2);color:var(--text)}.pnav-item[aria-current=page]{background:var(--accentSoft);color:var(--accent2);font-weight:600}.pnav-item.disabled{opacity:.6;cursor:default}.pnav-item.disabled:hover{background:none;color:var(--dim)}.pnav-group-label{display:flex;align-items:center;gap:8px;padding:12px 10px 4px;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}.main-scroll{flex:1;min-width:0;overflow-y:auto;padding:22px clamp(16px,4vw,40px) 48px}.two-col{display:flex;flex:1;min-height:0}.card{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:16px}.card-hover{transition:border-color .12s var(--ease),background .12s var(--ease)}.card-hover:hover{border-color:var(--border2)}.card.focused{outline:2px solid var(--accent);outline-offset:2px}.dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi-row{display:flex;gap:22px;flex-wrap:wrap}.kpi-value{font-size:18px;font-weight:700;color:var(--text)}.kpi-label{font-size:11.5px;color:var(--faint);margin-bottom:3px}@media(max-width:1180px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.gantt{--gantt-label-w: 180px;--gantt-gap: 12px;--gantt-pad-x: 12px;--gantt-track-x: calc(var(--gantt-pad-x) + var(--gantt-label-w) + var(--gantt-gap));position:relative;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px var(--gantt-pad-x)}.gantt-row{display:grid;grid-template-columns:var(--gantt-label-w, 180px) 1fr;align-items:center;gap:var(--gantt-gap, 12px);padding:7px 0;border-bottom:1px solid var(--border)}.gantt-label{font-size:12.5px;color:var(--text);padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track{position:relative;height:22px;background:var(--surface2);border-radius:6px}.gantt-bar{position:absolute;top:0;height:100%;border-radius:6px;background:var(--plan)}.gantt-bar.done{background:var(--ok)}.gantt-bar.current{background:var(--accent)}.gantt-bar.late{background:var(--danger)}.gantt-bar.inverted{border:2px dashed var(--danger)}.gantt-today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--danger);z-index:1}.gantt-milestone{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--accent2);z-index:1}.gantt-milestone-flag{position:absolute;top:-16px;transform:translate(-50%);color:var(--accent2);background:var(--surface);border-radius:50%}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--dim)}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:2px 9px;font-size:10.5px;font-weight:600;letter-spacing:.03em;white-space:nowrap}.proj-card{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:14px 16px;text-decoration:none;color:var(--text);transition:border-color .12s var(--ease),background .12s var(--ease)}.proj-card:hover{border-color:var(--border2);background:var(--surface2)}.proj-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:9px;width:34px;height:34px}.progress-track{height:7px;border-radius:20px;background:var(--surface3);overflow:hidden}.progress-fill{height:100%;border-radius:20px;background:var(--accent);transition:width .3s var(--ease)}.progress-fill.over-budget{background:var(--danger)}.phase-list{display:flex;flex-direction:column}.phase-row{display:flex;gap:14px;align-items:stretch}.phase-rail{display:flex;flex-direction:column;align-items:center;width:26px;flex-shrink:0}.phase-dot{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--border2);background:var(--surface);color:var(--faint);font-size:11px;font-weight:700;z-index:1}.phase-dot.done{border-color:var(--ok);background:var(--okSoft);color:var(--ok)}.phase-dot.current{border-color:var(--accent);background:var(--accentSoft);color:var(--accent2)}.phase-dot.review{border-color:var(--warn);background:var(--warnSoft);color:var(--warn)}.phase-connector{flex:1;width:2px;background:var(--border);min-height:14px}.phase-connector.done{background:var(--ok)}.phase-body{flex:1;min-width:0;padding-bottom:18px}.phase-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px;transition:border-color .12s var(--ease)}.phase-card.current{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 0 0 3px var(--accentSoft)}.phase-card.future{opacity:.88}.phase-card.clickable{cursor:pointer}.phase-card.clickable:hover{border-color:var(--border2)}.board-grid{display:grid;grid-template-columns:repeat(var(--board-cols, 4),minmax(0,1fr));gap:14px;align-items:start}.board-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.board-col{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px;min-height:140px;transition:border-color .15s var(--ease)}.board-col.drag-over{border-color:var(--accent)}.board-col-header{display:flex;align-items:center;gap:8px;padding:2px 4px 10px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}.board-col-count{background:var(--surface3);color:var(--dim);border-radius:20px;font-size:10px;font-weight:700;padding:0 6px;line-height:16px}.board-card{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:10px 11px;margin-bottom:8px;display:flex;flex-direction:column;gap:7px;cursor:grab;transition:border-color .12s var(--ease)}.board-card:hover{border-color:var(--border2)}.board-card.dragging{opacity:.4}.board-card-title{font-size:13px;font-weight:500;color:var(--text);line-height:1.4}.board-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-code{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--faint)}.prio-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.deliv-card{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}.deliv-head{display:flex;align-items:center;gap:12px;padding:14px 16px;flex-wrap:wrap}.deliv-icon{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--surface2);color:var(--dim)}.rev-table{width:100%;border-collapse:collapse;font-size:13px}.rev-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);padding:8px 16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap}.rev-table td{padding:11px 16px;border-bottom:1px solid var(--border);color:var(--dim);vertical-align:middle}.rev-table tr:last-child td{border-bottom:none}.rev-table tr.obsolete td{opacity:.55}.rev-code{font-family:var(--font-mono);font-weight:700;color:var(--text)}.preview-frame{border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--bg) 60%,var(--surface));aspect-ratio:8.5 / 11;max-width:320px;display:flex;flex-direction:column;overflow:hidden}.preview-chrome{display:flex;align-items:center;gap:6px;padding:7px 10px;border-bottom:1px solid var(--border);font-size:11px;color:var(--dim);background:var(--surface)}.preview-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:16px 18px}.preview-line{height:8px;border-radius:4px;background:color-mix(in srgb,var(--dim) 22%,transparent)}.preview-block{flex:1;border-radius:6px;border:1px dashed var(--border2);background:color-mix(in srgb,var(--dim) 8%,transparent);display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:11px;text-align:center;padding:12px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--dim);vertical-align:middle}.data-table tr.clickable{cursor:pointer}.data-table tr.clickable:hover td,.data-table tr.clickable:focus-within td{background:var(--surface2)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.row-actions{display:inline-flex;gap:4px;opacity:0;transition:opacity .12s var(--ease)}tr:hover .row-actions,tr:focus-within .row-actions{opacity:1}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:0 0 18px;flex-wrap:wrap}.tab{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:none;background:none;font:inherit;font-size:13px;font-weight:500;color:var(--dim);border-radius:8px 8px 0 0;cursor:pointer;text-decoration:none}.tab:hover{background:var(--surface2);color:var(--text)}.tab[aria-current=page],.tab.active{color:var(--accent2);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.chip-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface2);color:var(--dim);border-radius:20px;padding:4px 11px;font:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease),border-color .12s var(--ease)}.chip-toggle:hover{border-color:var(--border2);color:var(--text)}.chip-toggle.on{background:var(--accentSoft);border-color:var(--accent);color:var(--accent2);font-weight:600}.savebar{position:sticky;bottom:0;display:flex;align-items:center;gap:8px;margin-top:20px;padding:12px 0;background:var(--bg);border-top:1px solid var(--border);z-index:5}.popover{position:absolute;z-index:80;border-radius:14px;padding:8px;transform-origin:top right;animation:pop-in .2s var(--ease)}.modal-overlay,.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:90;animation:fade-in .18s var(--ease);display:flex;align-items:center;justify-content:center;padding:20px}.drawer-overlay{justify-content:flex-start;padding:0}.modal-panel{border-radius:18px;width:100%;max-height:min(88vh,760px);display:flex;flex-direction:column;animation:modal-in .26s var(--ease)}.drawer-panel{width:292px;max-width:84vw;height:100%;border-radius:0 18px 18px 0;animation:drawer-in .26s var(--ease);display:flex;flex-direction:column;overflow-y:auto}.toast-stack{position:fixed;right:16px;bottom:16px;z-index:120;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(100vw - 32px))}.toast{border-radius:14px;padding:12px 14px 14px;position:relative;overflow:hidden;animation:toast-in .24s var(--ease);font-size:13px}.toast-bar{position:absolute;left:0;bottom:0;height:2px;background:var(--accent);animation:toast-bar 4.2s linear forwards}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:scale(.97) translateY(8px)}}@keyframes drawer-in{0%{transform:translate(-100%)}}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}}@keyframes toast-bar{0%{width:100%}to{width:0%}}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:8px;background:linear-gradient(100deg,var(--sk-bone) 30%,var(--sk-shimmer) 50%,var(--sk-bone) 70%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.portal-root{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.portal-topbar{display:flex;align-items:center;gap:12px;padding:12px clamp(16px,5vw,40px);border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.portal-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--border);padding:clamp(36px,7vw,68px) clamp(16px,5vw,40px);background:radial-gradient(120% 140% at 15% 0%,var(--accentSoft),transparent 55%),linear-gradient(180deg,var(--surface),var(--bg))}.portal-hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(color-mix(in srgb,var(--accent) 8%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 8%,transparent) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(80% 80% at 20% 0%,#000,transparent 75%);mask-image:radial-gradient(80% 80% at 20% 0%,#000,transparent 75%);animation:hero-drift 22s linear infinite;pointer-events:none}@keyframes hero-drift{to{background-position:32px 32px}}@media(prefers-reduced-motion:reduce){.portal-hero-grid{animation:none}}.portal-main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:32px clamp(16px,5vw,40px) 72px}.portal-deliv-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface2)}.portal-deliv-actions{display:flex;gap:6px;flex-shrink:0}@media(max-width:480px){.portal-deliv-row{flex-wrap:wrap}.portal-deliv-actions{width:100%}.portal-deliv-actions .btn{flex:1}}.portal-empty{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.spacer{flex:1}.muted{color:var(--dim)}.faint{color:var(--faint)}.hover-actions{display:inline-flex;gap:2px;opacity:0;transition:opacity .12s var(--ease)}.card-hover:hover .hover-actions,.card-hover:focus-within .hover-actions{opacity:1}@media(max-width:1024px){.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.hover-actions{opacity:1}.pnav{display:none}[data-hamburger]{display:inline-flex!important}}@media(max-width:640px){.board-grid{grid-template-columns:1fr}.main-scroll{padding:16px 14px 40px}.dash-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn-plan{background:var(--plan);color:#fff}.icon-btn.cad{color:var(--plan2);opacity:.85}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:22px;font-weight:600;margin:0 0 4px;letter-spacing:-.01em}.page-sub{margin:0;color:var(--dim);font-size:13px}.progress-fill.plan{background:var(--plan)}.data-table tr:last-child td{border-bottom:none}.avatar{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;color:var(--onData)}.switch{width:40px;height:22px;border-radius:20px;border:1px solid var(--border2);background:var(--surface3);position:relative;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s var(--ease),border-color .15s var(--ease)}.switch:disabled{cursor:not-allowed;opacity:.55}.switch .knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--dim);transition:left .15s var(--ease),background .15s var(--ease)}.switch.on{border-color:var(--accent);background:var(--accent)}.switch.on .knob{left:20px;background:var(--onAccent)}.modal{width:min(440px,calc(100vw - 32px));border:1px solid var(--border2);border-radius:16px;background:var(--surface);color:var(--text);padding:0;box-shadow:var(--shadow)}.modal::backdrop{background:#00000080}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:14.5px;font-weight:600}.modal-body{padding:18px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--border)}.modal .field-label{display:block;font-size:12px;color:var(--dim);margin-bottom:4px}.profile-menu{position:relative}.profile-menu>summary{list-style:none;width:48px;height:48px;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;color:var(--dim);transition:background .12s var(--ease),color .12s var(--ease)}.profile-menu>summary::-webkit-details-marker{display:none}.profile-menu>summary::marker{content:""}.profile-menu>summary:hover,.profile-menu[open]>summary{background:var(--surface2);color:var(--text)}.profile-dropdown{position:absolute;left:100%;bottom:0;margin-left:8px;width:200px;background:var(--surface);border:1px solid var(--border2);border-radius:12px;box-shadow:var(--shadow-e2);padding:6px;z-index:40}.profile-dropdown-label{padding:8px 10px 6px;font-size:11.5px;color:var(--faint)}.profile-dropdown-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border-radius:8px;border:none;background:none;font:inherit;font-size:13px;font-weight:500;color:var(--text);text-decoration:none;cursor:pointer;text-align:left}.profile-dropdown-item:hover{background:var(--surface2)}.profile-dropdown-divider{height:1px;background:var(--border);margin:4px}.notif-menu{position:relative}.notif-menu>summary{list-style:none}.notif-menu>summary::-webkit-details-marker{display:none}.notif-menu>summary::marker{content:""}.notif-dropdown{position:absolute;top:100%;right:0;margin-top:10px;width:340px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border2);border-radius:14px;box-shadow:var(--shadow-e2);padding:8px;z-index:50}.notif-dropdown-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 10px;font-size:13px;font-weight:600}.notif-dropdown-item{display:flex;gap:10px;align-items:flex-start;padding:9px 8px;border-radius:9px;text-decoration:none;color:var(--text)}.notif-dropdown-item:hover{background:var(--surface2)}.notif-dropdown-foot{padding:8px;margin-top:2px;border-top:1px solid var(--border);text-align:center}.notif-dropdown-foot a{font-size:12.5px;font-weight:600;color:var(--accent2);text-decoration:none}.timer{display:inline-flex;align-items:center;gap:6px;font:inherit;padding:3px 4px 3px 3px;border:1px solid var(--border);border-radius:20px;background:var(--surface2);color:var(--dim);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.timer:hover{border-color:var(--border2);color:var(--text)}.timer-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--surface3);color:var(--dim);flex:none}.timer-value{font-family:var(--font-mono);font-size:11.5px;font-variant-numeric:tabular-nums;letter-spacing:-.2px;padding-right:5px}.timer.running{border-color:var(--accent);background:var(--accentSoft);color:var(--accent2)}.timer.running .timer-icon{background:var(--accent);color:#fff}.timer.running .timer-value{font-weight:600}.timer.capped{border-color:var(--warn);background:var(--warnSoft);color:var(--warn)}.timer.capped .timer-icon{background:var(--warn);color:#fff}.timer-live{width:5px;height:5px;border-radius:50%;background:var(--accent2);flex:none;display:none}.timer.running .timer-live{display:block;animation:timer-pulse 1.6s var(--ease) infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.25}}.timer.capped .timer-live{background:var(--warn);animation:none;opacity:1}.timer-sm .timer-icon{width:17px;height:17px}.timer-sm .timer-value{font-size:10.5px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:13px;overflow:hidden}.cal-head{background:var(--surface2);padding:8px 10px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.cal-day{background:var(--surface);min-height:104px;padding:7px 8px 9px;display:flex;flex-direction:column;gap:5px;text-align:left;font:inherit;border:0;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.cal-day:hover{background:var(--surface2)}.cal-day.outside{background:var(--bg)}.cal-day.outside .cal-daynum{color:var(--faint);opacity:.5}.cal-day.today{background:var(--accentSoft)}.cal-day.selected{box-shadow:inset 0 0 0 2px var(--accent)}.cal-daynum{font-family:var(--font-mono);font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}.cal-day.today .cal-daynum{color:var(--accent2);font-weight:700}.cal-event{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.3;color:var(--text);padding:3px 5px;border-radius:6px;background:var(--surface2);border-left:2px solid var(--dc-1);overflow:hidden}.cal-event-icon{flex-shrink:0;opacity:.75}.cal-event-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-day.today .cal-event{background:var(--surface)}.cal-event.late{background:var(--dangerSoft);border-left-color:var(--danger)}.cal-event-more{font-size:10.5px;color:var(--faint);padding-left:5px}.cal-event-more.has-late{color:var(--danger);font-weight:700}.day-item{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.day-item+.day-item{margin-top:8px}.day-item.late{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.day-item.done{opacity:.55}.day-item.done .day-item-title{text-decoration:line-through}.day-item.focused{outline:2px solid var(--accent);outline-offset:2px}.row.focused{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.day-item-title{font-size:13px;font-weight:600;line-height:1.35}.day-item-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:5px;font-size:11.5px;color:var(--faint)}.day-rail{width:3px;align-self:stretch;border-radius:3px;background:var(--dc-1);flex:none}.split-2{display:grid;grid-template-columns:minmax(0,1fr) var(--split-right, minmax(0, 1fr));gap:18px;align-items:start}@media(max-width:1100px){.split-2{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.cal-day{min-height:78px}}
