:root{--bg: #12141a;--bg-raised: #1a1d26;--bg-input: #21252f;--border: #2c3140;--border-strong: #3a4154;--text: #e6e8ee;--text-muted: #9099ad;--accent: #5b8cff;--accent-hover: #6d99ff;--positive: #4ac28a;--negative: #f2626b;--warn: #e0a34a;--radius: 8px;--radius-lg: 12px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55}h1{font-size:1.6rem;margin:0 0 .2rem}h2{font-size:1.15rem;margin:0 0 .75rem}h3{font-size:1rem;margin:1.5rem 0 .5rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.boot{padding:3rem;text-align:center;color:var(--text-muted)}.shell{min-height:100vh}.topbar{background:var(--bg-raised);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar-inner{max-width:1200px;margin:0 auto;padding:.7rem 1.5rem;display:flex;align-items:center;gap:1.5rem}.brand{font-weight:700;font-size:1.05rem;color:var(--text)}.brand:hover{text-decoration:none;color:var(--accent)}.nav{display:flex;gap:.35rem;flex:1}.nav a{padding:.35rem .75rem;border-radius:var(--radius);color:var(--text-muted);font-weight:500}.nav a:hover{background:var(--bg-input);color:var(--text);text-decoration:none}.nav a.active{background:var(--bg-input);color:var(--text)}.topbar-right{display:flex;align-items:center;gap:.6rem}.user-chip{display:flex;align-items:center;gap:.45rem;color:var(--text-muted);font-size:.9rem}.user-chip:hover{text-decoration:none;color:var(--text)}.role-tag{font-size:.7rem;padding:.1rem .4rem;border:1px solid var(--border-strong);border-radius:4px;letter-spacing:.03em}.content{max-width:1200px;margin:0 auto;padding:1.75rem 1.5rem 4rem}.page.narrow{max-width:620px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.back-link{font-size:.85rem;color:var(--text-muted)}.block{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.25rem}.block-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.block-head h2{margin:0}.muted{color:var(--text-muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em}.pos{color:var(--positive)}.neg{color:var(--negative)}.num{text-align:right}.link-strong{font-weight:600}.balances{margin-bottom:1.25rem}.balance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem}.balance-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.15rem}.balance-card.is-negative{border-color:var(--negative);background:color-mix(in srgb,var(--negative) 8%,var(--bg-raised))}.balance-label{font-size:.85rem;color:var(--text-muted)}.balance-value{font-size:2.4rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.balance-card.is-negative .balance-value{color:var(--negative)}.eligibility{display:flex;gap:1.25rem;margin-top:.75rem;font-size:.9rem;flex-wrap:wrap}.eligibility .ok{color:var(--positive)}.eligibility .no{color:var(--text-muted)}.overdrawn-hint{margin:.6rem 0 0;font-size:.875rem;color:var(--warn)}.mini-counter{display:inline-block;min-width:1.9rem;padding:.1rem .4rem;border-radius:5px;background:var(--bg-input);text-align:center;font-variant-numeric:tabular-nums;font-weight:600}.mini-counter.is-negative{background:color-mix(in srgb,var(--negative) 20%,transparent);color:var(--negative)}.action-bar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.25rem}.cc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.cc-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.85rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius)}.cc-item.is-inactive{opacity:.85;border-style:dashed}.cc-actions{display:flex;gap:.4rem;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.lore{margin:.35rem 0;font-size:.9rem;color:var(--text-muted);max-width:60ch}.badge{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;border-radius:4px;font-size:.72rem;font-weight:600;background:var(--bg);border:1px solid var(--border-strong);color:var(--text-muted)}.badge-free{border-color:var(--positive);color:var(--positive)}.badge-paid{border-color:var(--warn);color:var(--warn)}.badge-new{border-color:var(--accent);color:var(--accent)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.table-wrap.scroll{max-height:60vh;overflow-y:auto}.table{width:100%;border-collapse:collapse;font-size:.925rem}.table.small{font-size:.85rem}.table th{text-align:left;padding:.6rem .8rem;background:var(--bg-input);border-bottom:1px solid var(--border);font-weight:600;font-size:.82rem;color:var(--text-muted);position:sticky;top:0}.table td{padding:.6rem .8rem;border-bottom:1px solid var(--border);vertical-align:top}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.table .empty{text-align:center;color:var(--text-muted);padding:2rem}.is-reversed td{opacity:.45;text-decoration:line-through}.is-skipped td{opacity:.5}.row-actions{display:flex;gap:.3rem;justify-content:flex-end}.details{max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}label{display:block;margin:.85rem 0 .3rem;font-size:.875rem;font-weight:500}input[type=text],input[type=password],input[type=search],input:not([type]),select,textarea{width:100%;padding:.5rem .7rem;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.925rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}textarea{resize:vertical}.search{margin-bottom:1rem}.field label{margin-top:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-bottom:.85rem}.inline-form{display:flex;gap:.6rem;margin:1rem 0}.inline-form input{flex:1}.inline-form select{width:auto}.checkbox,.radio{display:flex;align-items:flex-start;gap:.55rem;margin:.5rem 0;font-weight:400;cursor:pointer}.checkbox input,.radio input{width:auto;margin-top:.3rem}.radio-group{display:flex;flex-direction:column;gap:.2rem;padding:.6rem .8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius)}.form-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.25rem}.file-drop{display:block;margin:1rem 0 0;padding:2.5rem;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;cursor:pointer;color:var(--text-muted)}.file-drop:hover{border-color:var(--accent);color:var(--text)}.file-drop input{display:none}.qr{display:block;margin:1rem 0;border-radius:var(--radius);background:#fff;padding:.5rem}.btn{padding:.5rem .9rem;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--bg-input);color:var(--text)}.btn-danger{background:transparent;border-color:var(--negative);color:var(--negative)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--negative) 15%,transparent)}.btn-small{padding:.3rem .65rem;font-size:.85rem}.btn-tiny{padding:.2rem .5rem;font-size:.78rem}.btn-block{width:100%;margin-top:.85rem}.notice{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.7rem .9rem;border-radius:var(--radius);margin:.85rem 0;font-size:.9rem;border:1px solid}.notice-error{background:color-mix(in srgb,var(--negative) 12%,transparent);border-color:var(--negative);color:var(--negative)}.notice-success{background:color-mix(in srgb,var(--positive) 12%,transparent);border-color:var(--positive);color:var(--positive)}.notice-warn{background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:var(--warn);color:var(--warn)}.notice-info{background:var(--bg-input);border-color:var(--border);color:var(--text-muted)}.notice-close{background:none;border:none;color:inherit;cursor:pointer;opacity:.7;font-size:.85rem;padding:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;z-index:100;overflow-y:auto}.modal{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:520px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;font-size:1.05rem}.modal-body{padding:.5rem 1.25rem 1.25rem}.modal-foot{padding:1rem 1.25rem;border-top:1px solid var(--border)}.tabs{display:flex;gap:.3rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border)}.tab{padding:.55rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font:inherit;font-weight:500;cursor:pointer}.tab:hover{color:var(--text)}.tab.is-active{color:var(--text);border-bottom-color:var(--accent)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:1rem 0}.summary-card{padding:.75rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.summary-card.is-active{border-color:var(--accent)}.summary-value{display:block;font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.summary-label{display:block;font-size:.78rem;color:var(--text-muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{width:100%;max-width:370px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem}.login-card h1{text-align:center;margin-bottom:.2rem}.login-sub{text-align:center;color:var(--text-muted);margin:0 0 1.25rem;font-size:.9rem}@media(max-width:820px){.balance-grid,.grid-2{grid-template-columns:1fr}.topbar-inner{flex-wrap:wrap;gap:.75rem}.cc-item{flex-direction:column}.cc-actions{justify-content:flex-start}.content{padding:1.25rem 1rem 3rem}}.head-actions{display:flex;gap:.6rem;flex-shrink:0}.block-flag{border-color:var(--warn)}.usage-hint{margin:-.5rem 0 1.25rem}
