@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Bricolage+Grotesque:wght@600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--euc-50:#EFF5F2;--euc-100:#DCE9E3;--euc-200:#BAD3C8;--euc-300:#92B7A7;--euc-400:#669680;--euc-500:#4A806B;--euc-600:#3E6F5E;--euc-700:#325A4C;--euc-800:#27463C;--euc-900:#1D352E;--cop-50:#FAF1E8;--cop-100:#F3DFC9;--cop-200:#E6C09A;--cop-300:#D8A16C;--cop-400:#C98A4E;--cop-500:#B87333;--cop-600:#9A5F27;--cop-700:#7D4C1E;--cop-800:#613B17;--cop-900:#472B10;--n-0:#FFFFFF;--n-25:#FCFBFA;--n-50:#F7F6F4;--n-100:#EFEDEA;--n-200:#E2DFDA;--n-300:#CFCBC4;--n-400:#ADA89F;--n-500:#8A857C;--n-600:#6B665E;--n-700:#524E47;--n-800:#3A3733;--n-900:#262421;--n-950:#191715;--cream-50:#FAF7F1;--cream-100:#F4EFE5;--cream-200:#EAE2D2;--surface-app: var(--n-50);--surface-raised: var(--n-0);--surface-sunken: var(--n-100);--surface-brand: var(--cream-50);--surface-brand-2: var(--cream-100);--text-primary: var(--n-800);--text-secondary: var(--n-600);--text-muted: var(--n-500);--text-inverse: #FFFFFF;--border: var(--n-200);--border-strong: var(--n-300);--accent: var(--euc-600);--accent-hover: var(--euc-700);--accent-subtle: var(--euc-50);--on-accent: #FFFFFF;--copper: var(--cop-500);--copper-text: var(--cop-600);--copper-subtle: var(--cop-50);--link: var(--euc-700);--success:#3C8455;--success-bg:#E9F2EC;--success-border:#BFDCCB;--warning:#A9731B;--warning-bg:#F7EFE0;--warning-border:#E6D3A8;--danger:#A63A2B;--danger-bg:#F8E9E6;--danger-border:#ECC6BE;--info:#3E6C8C;--info-bg:#E9F0F5;--info-border:#C2D5E2;--focus: var(--cop-500);--focus-ring: 0 0 0 2px var(--surface-raised), 0 0 0 4px var(--focus);--logo-line: var(--cop-500);--logo-green: var(--euc-600);--logo-copper: var(--cop-500);color-scheme:light}[data-theme=dark],:root[data-theme=dark]{--surface-app:#191715;--surface-raised:#211E1B;--surface-sunken:#131110;--surface-brand:#262019;--surface-brand-2:#2C251C;--text-primary:#ECE8E2;--text-secondary:#B4AEA4;--text-muted:#8A857C;--text-inverse:#191715;--border:#38342E;--border-strong:#4A453E;--accent:#6FA28D;--accent-hover:#8AB5A2;--accent-subtle:#24312B;--on-accent:#14201B;--copper:#CF8B4F;--copper-text:#CF8B4F;--copper-subtle:#33271C;--link:#8AB5A2;--success:#6FB088;--success-bg:#1F2E25;--success-border:#35503F;--warning:#D9A24A;--warning-bg:#322817;--warning-border:#58452A;--danger:#D2705C;--danger-bg:#331F1B;--danger-border:#5A342C;--info:#7FA8C4;--info-bg:#1C2831;--info-border:#33495A;--focus:#CF8B4F;--shadow-menu: 0 4px 14px rgba(0,0,0,.4);--shadow-modal: 0 12px 36px rgba(0,0,0,.55);--logo-line:#CF8B4F;--logo-green:#6FA28D;--logo-copper:#CF8B4F;color-scheme:dark}:root{--font-sans: "Inter", -apple-system, "Segoe UI", sans-serif;--font-brand: "Bricolage Grotesque", var(--font-sans);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-3xl: 28px;--leading: 1.45;--leading-tight: 1.25;--w-regular: 400;--w-medium: 500;--w-semibold: 600}:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--radius: 2px;--radius-table: 0;--shadow-menu: 0 4px 12px rgba(25,23,21,.1);--shadow-modal: 0 10px 32px rgba(25,23,21,.18);--control-h: 30px;--control-pad-x: 10px;--table-row-h: 34px;--cell-pad: 6px 12px;--dur-1:.12s;--dur-2:.18s;--dur-3:.26s;--ease: cubic-bezier(.2,.8,.3,1);--ease-spring: cubic-bezier(.34,1.56,.64,1)}[data-density=comfortable]{--control-h: 36px;--control-pad-x: 12px;--table-row-h: 44px;--cell-pad: 10px 14px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading);color:var(--text-primary);background:var(--surface-app)}a{color:var(--link)}::selection{background:var(--euc-100)}[data-theme=dark] ::selection{background:var(--euc-800)}[hidden]{display:none!important}.link-btn{background:none;border:none;padding:0;color:var(--link);cursor:pointer;font-size:inherit;font-family:inherit;text-decoration:underline;text-underline-offset:2px}.center{display:grid;place-items:center}.muted{color:var(--text-muted)}.small{font-size:var(--text-sm)}.pad{padding:var(--sp-4)}.label{font:var(--w-medium) var(--text-sm)/1.4 var(--font-sans);color:var(--text-secondary);margin:var(--sp-2) 0 var(--sp-1)}.error,.ok{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);font-size:var(--text-base);margin:var(--sp-2) 0}.error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.ok{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}input,select,textarea{height:var(--control-h);padding:0 var(--control-pad-x);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary);background:var(--surface-raised);outline:none;transition:box-shadow var(--dur-1) var(--ease)}textarea{height:auto;min-height:64px;padding:var(--sp-2) var(--control-pad-x);resize:vertical;line-height:var(--leading)}input[type=checkbox],input[type=radio]{height:auto;accent-color:var(--accent)}input:focus-visible,select:focus-visible,textarea:focus-visible,input:focus,select:focus,textarea:focus{box-shadow:var(--focus-ring)}select{appearance:none;cursor:pointer;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%238A857C' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.login-wrap{display:grid;place-items:center;height:100vh;background:var(--surface-brand)}.login{background:var(--surface-raised);padding:var(--sp-8);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none;width:340px;display:flex;flex-direction:column;gap:var(--sp-3)}.login label{display:flex;flex-direction:column;gap:var(--sp-1);font:var(--w-medium) var(--text-sm)/1.4 var(--font-sans);color:var(--text-secondary)}.check-inline{flex-direction:row!important;align-items:center;gap:6px!important;cursor:pointer}.check-inline input{width:auto}.login .btn{width:100%;justify-content:center}.brand{font:var(--w-semibold) var(--text-xl)/1.3 var(--font-sans);letter-spacing:-.2px}.brand.big{font-size:var(--text-2xl);text-align:center}.brand-logo{max-width:100%;max-height:40px;display:block}.powered-by{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:var(--text-xs);opacity:.9}.powered-by img{height:14px;width:auto}.login-powered-by{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-muted);font-size:var(--text-xs);opacity:.9}.app{display:grid;grid-template-columns:232px 1fr;height:100vh}.main{display:flex;flex-direction:column;min-width:0}.content{padding:var(--sp-6);overflow:auto;flex:1}.sidebar{background:var(--surface-raised);color:var(--text-secondary);border-right:1px solid var(--border);padding:0 var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);overflow-y:auto}.sidebar .brand{color:var(--text-primary);padding:var(--sp-5) var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);margin-bottom:var(--sp-2)}.sidebar .brand svg,.sidebar .brand .brand-logo{width:140px;max-height:none;height:auto}.sidebar nav{display:flex;flex-direction:column}.nav-group{margin-bottom:var(--sp-2)}.nav-heading{color:var(--text-muted);font:var(--w-semibold) var(--text-xs)/1.4 var(--font-sans);text-transform:none;letter-spacing:0;padding:var(--sp-3) var(--sp-2) var(--sp-1)}.sidebar a{color:var(--text-secondary);text-decoration:none;padding:0 var(--sp-2);height:var(--control-h);display:flex;align-items:center;border-radius:var(--radius);font-size:var(--text-base);transition:background var(--dur-1) var(--ease)}.sidebar a:hover{background:var(--surface-sunken)}.sidebar a.active{background:var(--accent-subtle);color:var(--text-primary);font-weight:var(--w-medium);box-shadow:inset 2px 0 0 0 var(--accent)}.topbar{display:flex;justify-content:space-between;align-items:center;height:52px;padding:0 var(--sp-5);border-bottom:1px solid var(--border);background:var(--surface-raised)}.topbar-left{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--text-base)}.topbar-left select{height:calc(var(--control-h) - 4px);font-size:var(--text-base)}.client-switcher{display:flex;align-items:center;gap:var(--sp-2)}.client-switcher-label{font:var(--w-semibold) var(--text-xs)/1 var(--font-sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.user{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--text-sm);color:var(--text-secondary)}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4);gap:var(--sp-3)}.section-head h2{margin:0;font:var(--w-medium) var(--text-2xl)/1.25 var(--font-sans);color:var(--text-primary)}.section-head>div{display:flex;gap:var(--sp-2);align-items:center}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--sp-4)}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5)}.card-value{font-size:var(--text-3xl);font-weight:var(--w-medium);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.card-label{color:var(--text-secondary);font-size:var(--text-sm);margin-top:var(--sp-1)}.card-hint{color:var(--text-muted);font-size:var(--text-xs);margin-top:2px}a.card.clickable{display:block;text-decoration:none;color:inherit;transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}a.card.clickable:hover{border-color:var(--border-strong);background:var(--surface-sunken)}a.card.clickable:focus-visible{outline:none;box-shadow:var(--focus-ring)}.card.warning{box-shadow:inset 3px 0 0 0 var(--warning)}.card.danger{box-shadow:inset 3px 0 0 0 var(--danger)}.dashboard-group{margin-bottom:var(--sp-6)}.dashboard-group:last-child{margin-bottom:0}.table{width:100%;border-collapse:collapse;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-table);overflow:hidden;font-size:var(--text-base)}.table th{text-align:left;position:sticky;top:0;z-index:1;background:var(--surface-sunken);padding:var(--cell-pad);border-bottom:1px solid var(--border);color:var(--text-secondary);font:var(--w-semibold) var(--text-sm)/1.3 var(--font-sans);white-space:nowrap}.table td{padding:var(--cell-pad);border-bottom:1px solid var(--border);height:var(--table-row-h)}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer;transition:background var(--dur-1) var(--ease)}.table tr.clickable:hover{background:color-mix(in srgb,var(--surface-sunken) 50%,transparent)}.table tr.selected{background:var(--accent-subtle)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:var(--radius);font:var(--w-medium) var(--text-xs)/1.4 var(--font-sans);border:1px solid var(--border);background:var(--surface-sunken);color:var(--text-secondary);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge.success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.badge.warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.badge.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.badge.info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.badge.copper{background:var(--copper-subtle);color:var(--copper-text);border-color:color-mix(in srgb,var(--copper) 35%,transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid var(--border);background:var(--surface-raised);color:var(--text-primary);height:var(--control-h);padding:0 var(--control-pad-x);border-radius:var(--radius);cursor:pointer;font:var(--w-medium) var(--text-base)/1 var(--font-sans);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.btn:hover{background:var(--surface-raised);border-color:var(--border-strong)}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}.btn.primary:hover{background:var(--accent-hover);filter:none}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn.ghost:hover{background:var(--surface-sunken)}.btn.danger{background:var(--danger);color:#fff;border-color:transparent}.btn.danger:hover{filter:brightness(.94)}.btn.small{height:calc(var(--control-h) - 6px);padding:0 var(--sp-2);font-size:var(--text-sm);margin-right:4px}.btn:disabled,.btn.disabled{opacity:.45;pointer-events:none}.btn:focus-visible,.tab:focus-visible,.sidebar a:focus-visible,.link-btn:focus-visible,.modal-close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.tabs,.tab{display:inline-flex}.tab{align-items:center;padding:0 var(--sp-3);height:var(--control-h);border:1px solid var(--border);background:var(--surface-raised);color:var(--text-secondary);cursor:pointer;font:var(--w-regular) var(--text-base)/1 var(--font-sans);margin-left:-1px;transition:background var(--dur-1) var(--ease)}.tab:hover{background:var(--surface-sunken);color:var(--text-primary)}.tab.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:var(--w-medium);position:relative;z-index:1}.tabs .tab:first-child{border-radius:var(--radius) 0 0 var(--radius);margin-left:0}.tabs .tab:last-child{border-radius:0 var(--radius) var(--radius) 0}.split{display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:start}.split:has(.split-side){grid-template-columns:1fr 320px}.split-side{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5);height:fit-content}.split-side h3{margin:0 0 var(--sp-1);font:var(--w-medium) var(--text-xl)/1.3 var(--font-mono);display:flex;align-items:center;gap:var(--sp-2)}.split-side h4{margin:var(--sp-4) 0 var(--sp-1);font:var(--w-semibold) var(--text-sm)/1.3 var(--font-sans);color:var(--text-secondary)}.line{padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-size:var(--text-base)}.line:last-of-type{border-bottom:none}.line b{font-family:var(--font-mono);font-weight:var(--w-medium);font-size:var(--text-sm)}.version-footer{padding:var(--sp-1) var(--sp-5);font:var(--w-regular) var(--text-xs)/1.6 var(--font-mono);color:var(--text-muted);border-top:1px solid var(--border);background:var(--surface-raised)}.toast{position:fixed;top:var(--sp-4);right:var(--sp-4);z-index:50;background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);font-size:var(--text-base);cursor:pointer;box-shadow:var(--shadow-menu),inset 2px 0 0 0 var(--accent)}.toast.success{box-shadow:var(--shadow-menu),inset 2px 0 0 0 var(--success)}.toast.danger{box-shadow:var(--shadow-menu),inset 2px 0 0 0 var(--danger)}.modal-backdrop{position:fixed;inset:0;background:#19171580;display:grid;place-items:center;z-index:100}.modal{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);width:440px;max-width:92vw;max-height:88vh;overflow:auto;box-shadow:var(--shadow-modal)}.modal.wide{width:680px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font:var(--w-medium) var(--text-lg)/1.3 var(--font-sans)}.modal-close{background:none;border:none;font-size:18px;line-height:1;cursor:pointer;color:var(--text-muted);padding:4px 6px;border-radius:var(--radius)}.modal-close:hover{background:var(--surface-sunken)}.modal-body{padding:var(--sp-5)}.field{display:flex;flex-direction:column;gap:var(--sp-1);font:var(--w-medium) var(--text-sm)/1.4 var(--font-sans);color:var(--text-secondary);margin-bottom:var(--sp-3)}.field input,.field select,.field textarea{font-family:var(--font-sans);color:var(--text-primary)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--sp-4)}.form-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-4)}.checklist-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.checklist-row:last-child{border-bottom:none}.checklist-row .pf{display:flex;gap:var(--sp-2)}.pf button.p,.pf button.f{height:calc(var(--control-h) - 6px);padding:0 var(--sp-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-raised);color:var(--text-secondary);cursor:pointer;font:var(--w-medium) var(--text-sm)/1 var(--font-sans);transition:background var(--dur-1) var(--ease)}.pf button.p.on{background:var(--success);border-color:var(--success);color:#fff}.pf button.f.on{background:var(--danger);border-color:var(--danger);color:#fff}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);padding:2px var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary);margin:2px 4px 2px 0}.chip button{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:var(--text-base);padding:0 0 0 2px}.chip button:hover{color:var(--text-primary)}.skeleton{display:block;background:var(--n-100);border-radius:var(--radius);animation:vskel var(--dur-3) var(--ease) infinite alternate}[data-theme=dark] .skeleton{background:var(--surface-sunken)}@keyframes vskel{0%{opacity:.55}to{opacity:1}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-4);padding:var(--sp-12) var(--sp-6);background:var(--surface-brand);border:1px solid var(--border);border-radius:var(--radius)}.empty p{margin:0;max-width:320px;font-size:var(--text-md);color:var(--text-secondary)}.vl .wm{font-family:var(--font-brand);font-size:32px;font-weight:700;letter-spacing:.5px}.vl .rig,.vl .flap,.vl .stub{transform-box:view-box}.vl .f1{transform-origin:283.7px 142.5px}.vl .f2{transform-origin:413.6px 152.5px}.vl .f3{transform-origin:301px 217.5px}.vl .f4{transform-origin:430.9px 227.5px}.vl .rig{transform-origin:357px 360px}.vl.loop .rig{animation:hop 2.8s infinite}.vl.loop .flap{animation:flapPop 2.8s infinite}.vl.loop .tape{animation:tapeOut 2.8s infinite}.vl.loop .inner{animation:innerFade 2.8s infinite}.vl.loop .stub{animation:stubTear 2.8s infinite}.vl.pop .flap{animation:flapPopOnce .9s var(--ease-spring) .2s both}.vl.pop .tape{animation:tapeOutOnce .35s var(--ease) .25s both}.vl.pop .inner{animation:innerFadeOnce .6s var(--ease) .5s both}.vl.pop .stub{animation:stubTearOnce .7s var(--ease-spring) .45s both}@keyframes hop{0%,30%{transform:translateY(0)}34%{transform:translateY(3px) scale(1.02,.96)}40%{transform:translateY(-14px) scale(.99,1.03)}47%{transform:translateY(0) scale(1.015,.985)}52%{transform:translateY(-4px)}57%,to{transform:translateY(0)}}@keyframes flapPop{0%,30%{opacity:0;transform:scale(.1) rotate(60deg)}42%{opacity:1;transform:scale(1.15) rotate(-6deg)}52%{transform:scale(.96) rotate(2deg)}60%,84%{opacity:1;transform:scale(1) rotate(0)}96%,to{opacity:0;transform:scale(.1) rotate(60deg)}}@keyframes tapeOut{0%,31%{opacity:.9}38%,86%{opacity:0}96%,to{opacity:.9}}@keyframes innerFade{0%,33%{opacity:0}44%,84%{opacity:.5}94%,to{opacity:0}}@keyframes stubTear{0%,34%{opacity:0;transform:rotate(-35deg)}40%{opacity:1;transform:rotate(8deg)}46%{transform:rotate(-3deg)}52%,84%{opacity:1;transform:rotate(0)}94%,to{opacity:0;transform:rotate(-35deg)}}@keyframes flapPopOnce{0%{opacity:0;transform:scale(.1) rotate(60deg)}55%{opacity:1;transform:scale(1.15) rotate(-6deg)}80%{transform:scale(.96) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes tapeOutOnce{0%{opacity:.9}to{opacity:0}}@keyframes innerFadeOnce{0%{opacity:0}to{opacity:.5}}@keyframes stubTearOnce{0%{opacity:0;transform:rotate(-35deg)}45%{opacity:1;transform:rotate(8deg)}70%{transform:rotate(-3deg)}to{opacity:1;transform:rotate(0)}}.loader-overlay{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;background:var(--surface-app)}.loader-overlay svg{width:min(340px,60vw);height:auto}@media(prefers-reduced-motion:reduce){.vl .rig,.vl .flap,.vl .tape,.vl .inner,.vl .stub{animation:none!important}.vl .tape{opacity:0}.vl .flap,.vl .stub{opacity:1}.vl .inner{opacity:.5}}
