:root{--brand: #2551d6;--brand-600: #1e44b8;--brand-700: #18389a;--brand-050: #eef3ff;--brand-100: #dbe6ff;--navy: #14224e;--navy-2: #1c2f6b;--bg: #f4f6fb;--surface: #ffffff;--surface-2: #fafbfe;--border: #e3e8f2;--border-strong: #cfd7e8;--text: #1b2536;--muted: #6b7688;--success: #12925a;--success-bg: #e7f6ee;--warn: #b9770a;--warn-bg: #fef4e2;--danger: #d64545;--danger-bg: #fdecec;--info-bg: #eaf1ff;--radius: 10px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(20, 34, 78, .06);--shadow: 0 2px 6px rgba(20, 34, 78, .08), 0 1px 2px rgba(20, 34, 78, .05);--shadow-lg: 0 12px 32px rgba(20, 34, 78, .14)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column}.topbar{background:linear-gradient(100deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:0 24px;height:62px;display:flex;align-items:center;gap:28px;box-shadow:var(--shadow);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brand-badge{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#4b78ff,#2551d6);display:grid;place-items:center;font-weight:800;letter-spacing:.5px;color:#fff;box-shadow:0 3px 10px #2551d673}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-title{font-weight:700;font-size:15px}.brand-sub{font-size:11px;color:#aab6de;letter-spacing:.3px}.nav{display:flex;gap:4px;margin-left:8px}.nav a{color:#c9d3ef;text-decoration:none;padding:8px 14px;border-radius:8px;font-weight:600;font-size:13.5px;transition:background .15s,color .15s}.nav a:hover{background:#ffffff17;color:#fff}.nav a.active{background:#ffffff29;color:#fff}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px}.topbar-user{font-size:13px;color:#c9d3ef}.content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:28px 24px 40px}.footer{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);text-align:center;padding:14px 20px;font-size:12.5px}.footer strong{color:var(--text);font-weight:600}.page-title{font-size:22px;font-weight:700;margin:0 0 4px}.page-desc{color:var(--muted);margin:0 0 22px;font-size:13.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;margin-bottom:20px}.card-title{font-size:15px;font-weight:700;margin:0 0 2px;display:flex;align-items:center;gap:8px}.card-sub{color:var(--muted);font-size:12.5px;margin:0 0 14px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:600;padding:9px 16px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .05s}.btn:hover{background:var(--surface-2);border-color:var(--brand-100)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 8px #2551d647}.btn-primary:hover{background:var(--brand-600);border-color:var(--brand-600)}.btn-ghost{background:transparent;border-color:transparent;color:var(--brand)}.btn-ghost:hover{background:var(--brand-050)}.btn-sm{padding:6px 12px;font-size:13px}.btn-light{background:#ffffff1f;border-color:#fff3;color:#fff}.btn-light:hover{background:#fff3}.input,.select{font:inherit;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s;outline:none}.input:focus,.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}.input::placeholder{color:#9aa4b6}.label{font-weight:600;font-size:13px;display:block;margin-bottom:6px}.field-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table thead th{text-align:left;background:var(--surface-2);color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;border-bottom:1px solid var(--border)}.table tbody td{padding:11px 12px;border-bottom:1px solid var(--border)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--brand-050)}.table .num{text-align:center}.table .money{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:JetBrains Mono,ui-monospace,Cascadia Code,monospace;font-size:12.5px}.row-done{background:var(--success-bg)!important}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.4;background:#eef1f6;color:var(--muted)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-info{background:var(--info-bg);color:var(--brand-700)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.alert{padding:11px 14px;border-radius:var(--radius-sm);font-size:13.5px;margin-bottom:16px;border:1px solid transparent}.alert-info{background:var(--info-bg);border-color:var(--brand-100);color:var(--brand-700)}.alert-success{background:var(--success-bg);border-color:#bfe6d1;color:var(--success)}.alert-error{background:var(--danger-bg);border-color:#f4c9c9;color:var(--danger)}.split{display:flex;gap:22px;align-items:flex-start}.split-aside{width:290px;flex-shrink:0}.split-main{flex:1;min-width:0}.list-item{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;cursor:pointer;background:var(--surface);transition:border-color .15s,box-shadow .15s,transform .05s}.list-item:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}.list-item.active{border-color:var(--brand);background:var(--brand-050);box-shadow:0 0 0 1px var(--brand) inset}.list-item .li-title{font-weight:700}.list-item .li-sub{color:var(--muted);font-size:12.5px;margin-top:2px}.empty{color:var(--muted);font-size:13.5px;padding:8px 2px}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 500px at 50% -10%,#e9eefc 0%,var(--bg) 60%)}.login-card{width:380px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);padding:30px}.login-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}.login-brand .brand-badge{width:54px;height:54px;border-radius:15px;font-size:20px}.bip{margin:4px 0 18px}.bip-input{width:100%;font-size:22px;padding:14px 16px;border:2px solid var(--brand);border-radius:var(--radius);outline:none;box-shadow:0 0 0 4px var(--brand-100);font-variant-numeric:tabular-nums}.bip-input:disabled{opacity:.6}.bip-feedback{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);font-weight:600;color:#fff}.bip-ok{background:var(--success)}.bip-err{background:var(--danger)}.counter{font-variant-numeric:tabular-nums;font-weight:700}@media (max-width: 820px){.split{flex-direction:column}.split-aside{width:100%}.nav{display:none}}
