:root{--bg:#f7f7f8;--surface:#fff;--surface-2:#f2f2f4;--surface-3:#eaeaee;--border:#e6e6ea;--border-strong:#d6d6dd;--text:#17181c;--text-2:#55565f;--text-muted:#85868f;--accent:#346782;--accent-hover:#275269;--accent-soft:#eaf1f5;--ink:#17181c;--ink-hover:#2a2b31;--on-ink:#fff;--success:#0d8a5b;--success-soft:#e6f6ee;--warning:#a5670a;--warning-soft:#fdf2e0;--danger:#c93444;--danger-soft:#fceded;--chart-1:#346782;--chart-2:#0d8a5b;--chart-3:#c93444;--grid:#ededf0;--shadow-sm:0 1px 2px #14151a0a;--shadow-md:0 4px 16px -6px #14151a1f, 0 1px 2px #14151a0a;--shadow-pop:0 16px 40px -12px #14151a38;--r-lg:14px;--r-md:10px;--r-sm:8px;--sidebar-w:236px}:root[data-theme=dark]{--bg:#0c0d10;--surface:#141519;--surface-2:#1b1c21;--surface-3:#24252b;--border:#24252b;--border-strong:#32333a;--text:#f0f0f3;--text-2:#a8a9b3;--text-muted:#7c7d87;--accent:#5c9fbe;--accent-hover:#75b3d1;--accent-soft:#142530;--ink:#f0f0f3;--ink-hover:#fff;--on-ink:#101116;--success:#38c894;--success-soft:#0e271d;--warning:#e6a74b;--warning-soft:#281e10;--danger:#fa6475;--danger-soft:#2d1419;--chart-1:#5c9fbe;--chart-2:#38c894;--chart-3:#fa6475;--grid:#232429;--shadow-sm:none;--shadow-md:0 4px 20px -8px #0009;--shadow-pop:0 20px 50px -16px #000000bf}*{box-sizing:border-box}html,body{overscroll-behavior-x:none;height:100%}body{background:var(--bg);color:var(--text);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:ui-sans-serif,-apple-system,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.55}h1,h2,h3{letter-spacing:-.021em;color:var(--text);margin:0;font-weight:600}h1{font-size:1.65rem;line-height:1.25}h2{letter-spacing:-.012em;font-size:1.15rem}h3{letter-spacing:-.008em;font-size:1.02rem}p{margin:0}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--text-muted)}.dim{color:var(--text-2)}.small{font-size:.9rem}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.right{text-align:right}.nowrap{white-space:nowrap}.grow{flex:1;min-width:0}.strong{font-weight:600}.stack{flex-direction:column;gap:1.5rem;display:flex}.stack-sm{flex-direction:column;gap:.95rem;display:flex}.row{align-items:center;gap:.55rem;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.95rem;min-height:54px;padding:1rem 1.35rem;display:flex}.card-head+.table-wrap thead th,.card-head+*>table thead th{padding-top:0}.card-head--divided{border-bottom:1px solid var(--border)}.card-body{padding:1.35rem}.card-body+.card-body{border-top:1px solid var(--border)}button,.btn{font:inherit;letter-spacing:-.005em;background:var(--surface-2);height:40px;color:var(--text);cursor:pointer;white-space:nowrap;touch-action:manipulation;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:.45rem;padding:0 .95rem;font-size:.92rem;font-weight:500;transition:background .14s,color .14s,border-color .14s,opacity .14s;display:inline-flex}button:hover,.btn:hover{background:var(--surface-3)}button:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--on-ink)}.btn-primary:hover{background:var(--ink-hover)}.btn-outline{background:var(--surface);border-color:var(--border-strong)}.btn-outline:hover{background:var(--surface-2)}.btn-ghost{color:var(--text-2);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{border-radius:8px;height:34px;padding:0 .75rem;font-size:.86rem}.btn-icon{width:40px;padding:0}.btn-sm.btn-icon{width:34px}label.field,.field-label{color:var(--text-muted);letter-spacing:0;flex-direction:column;gap:.4rem;font-size:.88rem;font-weight:500;display:flex}label.field input,label.field select,label.field textarea{color:var(--text);font-size:.96rem;font-weight:400}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:9px;width:100%;height:42px;padding:0 .85rem;font-size:.96rem;transition:border-color .14s,box-shadow .14s}textarea{resize:vertical;height:auto;min-height:5.2rem;padding:.65rem .85rem;line-height:1.55}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2385868f' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;padding-right:2.2rem}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);outline:none}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex:none}input[type=color]{cursor:pointer;border-radius:8px;width:50px;height:42px;padding:2px}input[type=file]{height:auto;color:var(--text-2);padding:.5rem .75rem;font-size:.9rem}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.form-actions .apart{margin-right:auto}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:end;gap:1rem;display:grid}.check{color:var(--text-2);cursor:pointer;align-items:center;gap:.65rem;font-size:.94rem;display:flex}.segmented{background:var(--surface-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:11px;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented button{height:38px;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;border-radius:8px;flex:none;gap:.45rem;padding:0 .85rem;font-size:.92rem;font-weight:500}.segmented button .mono{opacity:.9;font-size:.86rem}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%}thead th{text-align:left;color:var(--text-muted);letter-spacing:0;white-space:nowrap;border-bottom:1px solid var(--border);padding:.65rem 1.25rem;font-size:.82rem;font-weight:500}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.8rem 1.25rem;font-size:.93rem}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover{background:var(--surface-2)}td .sub{color:var(--text-muted);margin-top:.15rem;font-size:.84rem}.link{color:var(--text);font-weight:500}.link:hover{color:var(--accent)}.only-sm{display:none}@media (width<=900px){.hide-sm{display:none!important}.only-sm{display:block}thead th,td{padding-left:.85rem;padding-right:.85rem}.card-head{padding-left:1rem;padding-right:1rem}.card-body{padding:1.1rem}}.badge{letter-spacing:0;background:var(--surface-2);height:25px;color:var(--text-2);white-space:nowrap;border-radius:7px;align-items:center;gap:.32rem;padding:0 .55rem;font-size:.82rem;font-weight:500;display:inline-flex}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.bad{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--accent-soft);color:var(--accent)}.badge.dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.amount-pos{color:var(--success)}.amount-neg{color:var(--danger)}.bar{background:var(--surface-3);border-radius:999px;min-width:48px;height:5px;overflow:hidden}.bar>span{background:var(--accent);border-radius:999px;height:100%;transition:width .35s cubic-bezier(.4,0,.2,1);display:block}.bar.ok>span{background:var(--success)}.bar.warn>span{background:var(--warning)}.bar.lg{height:8px}.empty{text-align:center;color:var(--text-muted);padding:3rem 1.25rem;font-size:.94rem}.flash{border-radius:var(--r-md);border:1px solid #0000;align-items:center;gap:.6rem;padding:.85rem 1.05rem;font-size:.92rem;animation:.25s flash-in;display:flex}.flash.error{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 18%, transparent)}.flash.ok{background:var(--success-soft);color:var(--success);border-color:color-mix(in srgb, var(--success) 18%, transparent)}@keyframes flash-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.no-print{display:none!important}body{background:#fff;font-size:11pt}.card{box-shadow:none;break-inside:avoid;border-color:#ddd}a{color:#000}}@media (width<=640px){body{font-size:16px}input,select,textarea{height:44px;font-size:16px!important}button,.btn{height:42px;padding:0 1rem;font-size:.95rem}.btn-sm{height:36px;padding:0 .8rem;font-size:.88rem}.btn-icon{width:42px}.btn-sm.btn-icon{width:36px}.badge{height:26px;padding:0 .6rem;font-size:.84rem}.form-grid{grid-template-columns:1fr;gap:.9rem}.card-head{gap:.75rem;padding:.95rem 1rem}.card-body{padding:1rem}thead th{padding:.6rem .75rem;font-size:.84rem}td{padding:.75rem;font-size:.93rem}td .sub{font-size:.85rem}.segmented button{height:38px;font-size:.92rem}.segmented button .mono{font-size:.86rem}.small{font-size:.9rem}}
