@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.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{--brand-50: #f2f4fb;--brand-100: #e4e9f6;--brand-200: #c7d0ec;--brand-300: #9dabdb;--brand-400: #6d80c4;--brand-500: #4c5ea8;--brand-600: #3a4a89;--brand-700: #2b3970;--brand-800: #1d2b61;--brand-900: #16214c;--brand-950: #0d1430;--bg: #f5f7fb;--surface: #ffffff;--surface-2: #fafbfd;--border: #e6e9f1;--border-str: #d4d9e6;--text: #141b2e;--muted: #667292;--primary: var(--brand-800);--primary-dark: var(--brand-900);--on-primary: #ffffff;--link: var(--brand-600);--link-hover: var(--brand-800);--brand-mark: var(--brand-800);--header-bg: rgba(255, 255, 255, .85);--soft: var(--brand-50);--soft-strong: var(--brand-100);--soft-fg: var(--brand-800);--neutral-soft: #f1f3f8;--neutral-soft-fg: #3b4664;--backdrop: rgba(13, 20, 48, .5);--shimmer: rgba(255, 255, 255, .7);color-scheme:light;--st-open: #6b7a99;--st-in_progress: #d97706;--st-ready: #0891b2;--st-done: #16a34a;--st-voided: #9aa4bb;--danger: #dc2626;--danger-bg: #fef2f2;--warn: #b45309;--warn-bg: #fffbeb;--ok: #15803d;--ok-bg: #f0fdf4;--radius-sm: 8px;--radius: 14px;--radius-lg: 18px;--shadow-sm: 0 1px 2px rgba(20, 27, 46, .05), 0 1px 3px rgba(20, 27, 46, .04);--shadow: 0 1px 2px rgba(20, 27, 46, .04), 0 4px 12px rgba(20, 27, 46, .06);--shadow-md: 0 2px 4px rgba(20, 27, 46, .05), 0 12px 24px rgba(20, 27, 46, .08);--shadow-lg: 0 4px 8px rgba(20, 27, 46, .06), 0 24px 48px rgba(20, 27, 46, .14);--ring: 0 0 0 3px rgba(29, 43, 97, .16);--ease: cubic-bezier(.4, 0, .2, 1);--fast: .13s var(--ease);--med: .2s var(--ease);--font: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;font-family:var(--font);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;letter-spacing:-.005em}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}h1{font-size:1.5rem;margin:0 0 .25rem;letter-spacing:-.02em;font-weight:650}h2{font-size:1.1rem;margin:0 0 .75rem;letter-spacing:-.015em;font-weight:650}h3{font-size:1rem;margin:0 0 .5rem;letter-spacing:-.01em;font-weight:600}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.92em}.right{text-align:right}.nowrap{white-space:nowrap}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.app-header{background:var(--header-bg);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.app-header-inner{max-width:1100px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--brand-mark)}.brand:hover{text-decoration:none;color:var(--brand-mark)}.brand-mark{height:22px;width:auto;display:block}.brand-name{font-size:.95rem;font-weight:600;color:var(--muted);padding-left:.6rem;border-left:1px solid var(--border-str);letter-spacing:-.01em}.nav{display:flex;gap:.15rem;flex-wrap:wrap;flex:1}.nav a{padding:.4rem .75rem;border-radius:var(--radius-sm);color:var(--muted);font-weight:500;font-size:.9rem;transition:background var(--fast),color var(--fast)}.nav a:hover{background:var(--soft);color:var(--soft-fg);text-decoration:none}.nav a.active{background:var(--soft-strong);color:var(--soft-fg);font-weight:600}.login-brand{text-align:center;margin-bottom:.15rem}.login-mark{height:26px;width:auto;display:inline-block;color:var(--brand-mark)}.login-brand h1{font-size:1.15rem;color:var(--muted);font-weight:600;margin:.5rem 0 0}.icon-btn{display:inline-grid;place-items:center;width:2rem;height:2rem;flex:none;border-radius:var(--radius-sm);border:1px solid var(--border-str);background:var(--surface);color:var(--muted);cursor:pointer;transition:background var(--fast),color var(--fast),border-color var(--fast),transform var(--fast)}.icon-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--muted)}.icon-btn:active{transform:translateY(1px)}.icon-btn svg{width:1.05rem;height:1.05rem;display:block}.user-chip{display:flex;align-items:center;gap:.7rem;font-size:.85rem}.user-chip .who{text-align:right;line-height:1.25;color:var(--text);padding:.2rem .4rem;margin:-.2rem -.4rem;border-radius:var(--radius-sm);transition:background var(--fast)}.user-chip .who:hover{background:var(--soft);text-decoration:none}main.content{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 5rem}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:radial-gradient(1000px 500px at 50% -10%,var(--soft-strong),transparent 70%),var(--bg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.15rem 1.3rem;margin-bottom:1.1rem}.card.narrow{max-width:400px;width:100%;box-shadow:var(--shadow-md)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .95rem;border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--fast),border-color var(--fast),box-shadow var(--fast),transform var(--fast),opacity var(--fast)}.btn:hover{background:var(--primary-dark);border-color:var(--primary-dark);text-decoration:none;box-shadow:var(--shadow)}.btn:active{transform:translateY(1px);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-str)}.btn.secondary:hover{background:var(--surface-2);border-color:var(--muted)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:#b91c1c;border-color:#b91c1c}.btn.ok{background:var(--ok);border-color:var(--ok)}.btn.ok:hover{background:#166534;border-color:#166534}.btn.small{padding:.32rem .65rem;font-size:.8rem}label{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.3rem;letter-spacing:.01em}input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--border-str);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;line-height:1.4;background:var(--surface);color:var(--text);transition:border-color var(--fast),box-shadow var(--fast),background var(--fast)}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-600);box-shadow:var(--ring)}input::placeholder,textarea::placeholder{color:#9aa4bb}textarea{resize:vertical;min-height:64px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23667292' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;background-size:1rem}.field{margin-bottom:.9rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 .9rem}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 .9rem}@media(max-width:620px){.grid2,.grid3{grid-template-columns:1fr}}.form-actions{display:flex;gap:.6rem;margin-top:.6rem;flex-wrap:wrap}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--border)}th{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;background:var(--surface-2);border-bottom-color:var(--border-str)}tbody tr{transition:background var(--fast)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--soft)}tbody tr.clickable{cursor:pointer}.status{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;white-space:nowrap;color:var(--text)}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dot, var(--muted));box-shadow:0 0 0 3px color-mix(in srgb,var(--dot, var(--muted)) 18%,transparent);flex:none}.status.open{--dot: var(--st-open)}.status.in_progress{--dot: var(--st-in_progress)}.status.ready{--dot: var(--st-ready)}.status.done{--dot: var(--st-done)}.status.voided{--dot: var(--st-voided);color:var(--muted);text-decoration:line-through}.status.ready:before{animation:pulse-dot 2.4s var(--ease) infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--dot) 18%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--dot) 8%,transparent)}}.chip{display:inline-flex;align-items:center;gap:.25rem;padding:.12rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap;background:var(--soft);color:var(--soft-fg);border:1px solid var(--soft-strong)}.chip.ok{background:var(--ok-bg);color:var(--ok);border-color:#bbf7d0}.chip.danger{background:var(--danger-bg);color:var(--danger);border-color:#fecaca}.chip.warn{background:var(--warn-bg);color:var(--warn);border-color:#fde68a}.chip.muted{background:var(--neutral-soft);color:var(--muted);border-color:var(--border)}.pill-balance{font-weight:650}.pill-balance.owing{color:var(--danger)}.pill-balance.paid{color:var(--ok)}.banner{padding:.75rem .95rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem;line-height:1.5}.banner.lock{background:var(--neutral-soft);color:var(--neutral-soft-fg);border:1px solid var(--border-str)}.banner.warn{background:var(--warn-bg);color:var(--warn);border:1px solid #fde68a}.banner.error{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca}.banner.ok{background:var(--ok-bg);color:var(--ok);border:1px solid #bbf7d0}.row-between{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.15rem}.toolbar{display:flex;gap:.5rem;margin-bottom:1.1rem;flex-wrap:wrap;align-items:center}.toolbar .search{flex:1;min-width:200px}.toolbar input[type=date]{width:auto;font-size:.8rem;line-height:normal;padding:.32rem .4rem .32rem .55rem}.range-toolbar .btn.small,.range-toolbar input[type=date]{height:1.75rem}.toolbar input[type=date]::-webkit-calendar-picker-indicator{margin-left:.1rem;padding:0;opacity:.6;cursor:pointer;transition:opacity var(--fast)}.toolbar input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem 1.4rem}@media(max-width:620px){.spec-grid{grid-template-columns:1fr}}.spec-grid .k{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:.1rem}.spec-grid .v{font-weight:500}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50;animation:fade-in .16s var(--ease)}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:1.4rem;max-width:460px;width:100%;box-shadow:var(--shadow-lg);animation:pop-in .18s var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.skeleton{position:relative;overflow:hidden;display:block;background:var(--border);border-radius:6px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--shimmer),transparent);animation:shimmer 1.4s var(--ease) infinite}@keyframes shimmer{to{transform:translate(100%)}}.sk-line{height:.72rem}.sk-line.tall{height:1.15rem}.sk-rows{display:flex;flex-direction:column;gap:.95rem;padding:1.1rem 1.2rem}.sk-row{display:grid;align-items:center;gap:1.2rem}.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}.boot{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--brand-mark)}.boot-mark{height:30px;width:auto;animation:boot-pulse 1.8s var(--ease) infinite}@keyframes boot-pulse{0%,to{opacity:1}50%{opacity:.45}}.empty{text-align:center;padding:2.5rem 1rem;color:var(--muted)}.error-text{color:var(--danger);font-size:.85rem;margin-top:.4rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.7rem}.stat{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent, var(--brand-300));border-radius:var(--radius-sm);padding:.7rem .85rem;transition:border-color var(--fast),background var(--fast)}.stat .n{font-size:1.45rem;font-weight:650;letter-spacing:-.025em;line-height:1.15;display:block}.stat .l{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-top:.15rem;display:block}.stat.accent-brand{--accent: var(--brand-500)}.stat.accent-neutral{--accent: var(--border-str)}.stat.accent-ok{--accent: var(--st-done)}.stat.accent-warn{--accent: var(--st-in_progress)}.stat.accent-ready{--accent: var(--st-ready)}.stat.accent-danger{--accent: var(--danger)}@media(max-width:760px){.app-header-inner{padding:.6rem .9rem;gap:.5rem .75rem}.brand{flex:1}.brand-mark{height:19px}.nav{order:3;flex:0 0 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin:0 -.9rem;padding:0 .9rem}.nav::-webkit-scrollbar{display:none}.nav a{white-space:nowrap}.user-chip{font-size:.8rem;gap:.5rem}main.content{padding:1.1rem .9rem 4rem}h1{font-size:1.3rem}}.board-cards{display:none}@media(max-width:760px){.board-table{display:none}.board-cards{display:grid;gap:.7rem}.job-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:.85rem .95rem;cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;transition:box-shadow var(--fast),border-color var(--fast),transform var(--fast)}.job-card:active{transform:scale(.995);box-shadow:var(--shadow)}.job-card-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.35rem}.job-card-num{font-family:var(--font-mono);font-size:.85rem;color:var(--muted)}.job-card-customer{font-weight:650;letter-spacing:-.01em}.job-card-job{color:var(--muted);font-size:.9rem;margin-bottom:.6rem}.job-card-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding-top:.6rem;border-top:1px solid var(--border);font-size:.82rem}.job-card-meta{display:flex;gap:.9rem;color:var(--muted);flex-wrap:wrap}.job-card-money{font-weight:650}}.debt-rows{display:none}@media(max-width:760px){.debt-table{display:none}.debt-rows{display:block}.debt-row{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:none;border-top:1px solid var(--border);padding:.75rem .95rem;cursor:pointer;transition:background var(--fast)}.debt-row:active{background:var(--soft)}.debt-row-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.15rem}.debt-row-num{font-family:var(--font-mono);font-size:.82rem;color:var(--muted)}.debt-row-job{font-weight:600;letter-spacing:-.01em}.debt-row-foot{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;margin-top:.4rem;font-size:.82rem;color:var(--muted)}.debt-row-owing{font-weight:650}.debt-group-head{padding:.8rem .95rem!important}.debt-group-head>:last-child{margin-left:auto}}.toasts{position:fixed;right:1.25rem;bottom:1.25rem;z-index:60;display:flex;flex-direction:column;gap:.55rem;align-items:flex-end;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.6rem;max-width:24rem;padding:.7rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border-str);background:var(--surface);color:var(--text);box-shadow:var(--shadow-md);font:inherit;font-size:.88rem;font-weight:500;text-align:left;cursor:pointer;animation:toast-in .2s var(--ease)}.toast:hover{box-shadow:var(--shadow-lg)}.toast-icon{flex:none;width:1.15rem;height:1.15rem;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;color:#fff}.toast.success .toast-icon{background:var(--st-done)}.toast.error .toast-icon{background:var(--danger)}.toast.info .toast-icon{background:var(--st-ready)}.toast.error{border-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:760px){.toasts{left:.9rem;right:.9rem;bottom:.9rem;align-items:stretch}.toast{max-width:none}}:root[data-theme=dark]{--bg: #0d1120;--surface: #151a2b;--surface-2: #1a2035;--border: #262d44;--border-str: #39425f;--text: #e9ecf6;--muted: #99a3c0;--primary: var(--brand-500);--primary-dark: var(--brand-400);--on-primary: #ffffff;--link: var(--brand-300);--link-hover: var(--brand-200);--brand-mark: var(--brand-200);--header-bg: rgba(21, 26, 43, .82);--soft: rgba(109, 128, 196, .1);--soft-strong: rgba(109, 128, 196, .2);--soft-fg: var(--brand-200);--neutral-soft: #212942;--neutral-soft-fg: #b9c2dd;--backdrop: rgba(3, 6, 15, .65);--shimmer: rgba(255, 255, 255, .06);--st-open: #8f9cbb;--st-in_progress: #f59e0b;--st-ready: #22d3ee;--st-done: #4ade80;--st-voided: #6f7a97;--danger: #f87171;--danger-bg: #2b1618;--warn: #fbbf24;--warn-bg: #2b2211;--ok: #4ade80;--ok-bg: #10251a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 4px 12px rgba(0, 0, 0, .28);--shadow-md: 0 2px 4px rgba(0, 0, 0, .4), 0 12px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .45), 0 24px 48px rgba(0, 0, 0, .5);--ring: 0 0 0 3px rgba(109, 128, 196, .35);color-scheme:dark}[data-theme=dark] .btn.ok,[data-theme=dark] .btn.danger{color:#0d1120}[data-theme=dark] .btn.ok:hover{background:#22c55e;border-color:#22c55e}[data-theme=dark] .btn.danger:hover{background:#ef4444;border-color:#ef4444}[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%2399a3c0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8l4 4 4-4'/%3E%3C/svg%3E")}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#6d7796}[data-theme=dark] .chip.ok{background:var(--ok-bg);border-color:#1c3b2a}[data-theme=dark] .chip.danger{background:var(--danger-bg);border-color:#4a2224}[data-theme=dark] .chip.warn{background:var(--warn-bg);border-color:#4a3a16}[data-theme=dark] .banner.warn{border-color:#4a3a16}[data-theme=dark] .banner.error{border-color:#4a2224}[data-theme=dark] .banner.ok{border-color:#1c3b2a}[data-theme=dark] .toast-icon{color:#0d1120}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
