@import"https://fonts.bunny.net/css?family=inter:400,500,600,700&display=swap";:root{color-scheme:dark;--bg: #0a0b0d;--panel: #1c1e22;--panel-side: #141518;--panel-2: #26282d;--panel-3: #30333a;--border: #2c2f35;--field-border: #2c2f35;--border-strong: #3a3d44;--field: #16181c;--th-bg: #17191d;--th-ink: #9aa0a6;--row-hover: #202329;--text: #e8eaed;--muted: #9aa0a6;--faint: #6b7075;--accent: #8dcf19;--accent-ink: #8dcf19;--accent-2: #7c5cff;--on-accent: #000;--ok: #22c55e;--series: #74a815;--gold: #e5b21e;--gold-fill: #e5b21e;--danger: #ef4444;--violet: #a78bfa;--info: #60a5fa;--late: #fb923c;--tint: #fff;--off: .45;--shadow-card: none;--shadow-pop: 0 12px 28px rgba(0, 0, 0, .55);--overlay: rgba(6, 7, 9, .72);--radius: 8px;--radius-sm: 8px;--row-h: auto;--pad-cell: 16px;--ic-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");--ic-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4 10-10'/%3E%3C/svg%3E");--chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%239aa0a6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5 12 15.5 18 9.5'/%3E%3C/svg%3E");--chev-hover: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23c4c8cc' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5 12 15.5 18 9.5'/%3E%3C/svg%3E");--cal: 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='%239aa0a6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");--cal-hover: 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='%23c4c8cc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E")}:root[data-theme=light]{color-scheme:light;--bg: #eff2f7;--panel: #fdfdfd;--panel-side: #fdfdfd;--panel-2: #eceff4;--panel-3: #e2e6ed;--border: #e0e4eb;--field-border: #d3d9e2;--border-strong: #c8cfda;--field: #fefefe;--th-bg: #f3f5f9;--th-ink: #3f4855;--row-hover: #f2f5f9;--text: #101828;--muted: #5b6472;--faint: #6e7787;--accent: #82c017;--accent-ink: #456d0f;--accent-2: #5236cc;--on-accent: #16240b;--ok: #0c7040;--series: #517d0d;--gold: #92500a;--gold-fill: #f0b429;--danger: #c02626;--violet: #6d28d9;--info: #1d4ed8;--late: #c2410c;--tint: #000;--off: .55;--shadow-card: 0 1px 2px rgba(16, 24, 40, .05);--shadow-pop: 0 12px 28px rgba(16, 24, 40, .16);--overlay: rgba(16, 24, 40, .45);--chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%238a93a3' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5 12 15.5 18 9.5'/%3E%3C/svg%3E");--chev-hover: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23475467' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5 12 15.5 18 9.5'/%3E%3C/svg%3E");--cal: 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='%238a93a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");--cal-hover: 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='%23475467' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E")}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,ui-sans-serif,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:30px;font-weight:700;margin:0 0 20px;line-height:1.2}h2{font-size:20px;font-weight:600;margin:0}h3{font-size:16px;font-weight:600;margin:0 0 12px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.error{color:var(--danger)}.error-note{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--text);line-height:1.45}.error-note-icon{flex:0 0 auto;display:flex;padding-top:1px;color:var(--danger)}.error-note-text{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.error-note>button.icon{flex:0 0 auto;margin:-4px -6px -4px 0}.error-note:not(:first-child){margin-top:16px}.error-note:not(:last-child){margin-bottom:16px}.stack>.error-note,.form-stack>.error-note{margin:0}.ok-text{color:var(--ok)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.spacer{flex:1}.center{text-align:center;margin-top:80px}.app-shell{display:flex;min-height:100vh;background:var(--bg);overflow-x:clip;max-width:100vw}.sidebar{width:260px;flex:0 0 auto;padding:20px 16px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow-y:auto}.panel{background:var(--panel-side);border:1px solid var(--border);border-radius:14px}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-header{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:18px 28px 0}.app-content{padding:24px 28px 40px 0;flex:1;min-width:0}.app-header button.menu-btn{display:none}.nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:var(--overlay);border:0;border-radius:0;padding:0;width:100%;cursor:pointer}.brand{display:flex;align-items:center;gap:11px;padding:14px;color:inherit}.brand:hover{text-decoration:none}.brand-mark{flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:700}.brand-name{font-weight:600}.nav{padding:12px;display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;color:var(--muted)}.nav a:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.nav a.active{background:var(--panel-3);color:var(--text);font-weight:500}.hdr-me{display:flex;align-items:center;gap:10px;min-width:0;padding:4px 8px;margin:-4px -8px;border-radius:8px;color:inherit;text-decoration:none;cursor:pointer}.hdr-me:hover{background:var(--panel-2);text-decoration:none}.hdr-me:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hdr-who{min-width:0}.hdr-user-name,.hdr-user-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hdr-avatar{width:34px;height:34px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);display:grid;place-items:center;font-weight:600;flex:0 0 auto}.hdr-user-name{font-weight:500}.hdr-user-role{color:var(--muted);font-size:12px}.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}.page-head h1{margin-bottom:0}.stack>.page-head{margin-bottom:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px;box-shadow:var(--shadow-card)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}input,select,textarea{width:100%;background:var(--field);border:1px solid var(--field-border);border-radius:8px;padding:10px 12px;color:var(--text);outline:none;font-family:inherit;font-size:14px}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--accent-2)}input::placeholder,textarea::placeholder{color:var(--faint)}textarea{resize:vertical}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:34px;background-image:var(--chev);background-repeat:no-repeat;background-position:right 12px center;background-size:12px 12px}select:hover,select:focus{background-image:var(--chev-hover)}select option{background:var(--panel);color:var(--text)}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}input[type=date]{padding-left:38px;background-image:var(--cal);background-repeat:no-repeat;background-position:left 13px center}input[type=date]:hover,input[type=date]:focus{background-image:var(--cal-hover)}input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;margin:0;padding:0;opacity:0;cursor:pointer}.field,input[type=date]{position:relative}input[type=date]::-webkit-datetime-edit-text{color:var(--faint);padding:0 1px}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield;font-variant-numeric:tabular-nums}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0}.field{display:grid;gap:6px}.field-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.field-label .req{color:var(--danger)}.form-stack{display:grid;gap:16px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 620px){.field-pair{grid-template-columns:1fr}}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.file-button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);font-size:14px;font-weight:500;cursor:pointer}.file-button:hover{background:var(--panel-3)}.file-input:focus-visible+.row .file-button{border-color:var(--accent-2)}.row-menu{position:relative;display:inline-block}.row-menu-card{position:absolute;top:calc(100% + 4px);right:0;z-index:40;min-width:180px;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-pop)}.row-menu-card.up{top:auto;bottom:calc(100% + 4px)}.row-menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 12px;border:0;border-radius:6px;background:none;color:var(--text);font-size:14px;font-weight:400;white-space:nowrap}.row-menu-item:hover{background:var(--panel-2);filter:none}.row-menu-item.danger{color:var(--danger)}.row-menu-item.danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}.preset-list{margin-top:6px;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.preset-list .row-menu-item{white-space:normal}.preset-list .row-menu-item[aria-pressed=true]{color:var(--accent-ink)}.trail-day+.trail-day{margin-top:16px}.trail-date{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.trail{--trail-time: 44px;--trail-gap: 12px;--trail-dot: 34px;list-style:none;margin:0;padding:0;position:relative}.trail:before{content:"";position:absolute;top:6px;bottom:6px;left:calc(var(--trail-time) + var(--trail-gap) + var(--trail-dot) / 2 - .5px);width:1px;background:var(--border)}.trail-step{display:grid;grid-template-columns:var(--trail-time) var(--trail-dot) 1fr;gap:0 var(--trail-gap);padding:8px 0;position:relative}.trail-time{color:var(--muted);font-size:12px;padding-top:6px;font-variant-numeric:tabular-nums}.trail-icon{width:var(--trail-dot);height:var(--trail-dot);border-radius:50%;display:grid;place-items:center;background:var(--panel);border:1px solid var(--border);color:var(--muted);position:relative}.trail-icon{--kind: var(--muted);color:var(--kind);border-color:color-mix(in srgb,var(--kind) 45%,var(--border));background:color-mix(in srgb,var(--kind) 12%,var(--panel))}.trail-icon.status{--kind: var(--accent-2)}.trail-icon.money,.trail-icon.issue{--kind: var(--accent-ink)}.trail-icon.receipt,.trail-icon.callback{--kind: var(--gold)}.trail-step.failed .trail-icon{--kind: var(--danger)}.trail-body{min-width:0}.trail-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.trail-amount{font-weight:600;white-space:nowrap}.trail-change{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.trail-note{margin-top:6px;padding-left:10px;border-left:2px solid var(--border);color:var(--muted);font-size:13px;overflow-wrap:anywhere}.trail-step.failed .trail-note{color:var(--danger);border-left-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.trail-meta{margin-top:6px;color:var(--faint);font-size:12px}.trail-kind.status{color:var(--accent-2)}.trail-kind.money,.trail-kind.issue{color:var(--accent-ink)}.trail-kind.receipt,.trail-kind.callback{color:var(--gold)}.trail-step.failed .trail-kind{color:var(--danger)}.log-message{display:inline-flex;align-items:flex-start;gap:8px}.log-icon{display:inline-grid;place-items:center;flex:0 0 auto;margin-top:2px;color:var(--muted)}.log-icon.ok{color:var(--accent-ink)}.log-icon.bad{color:var(--danger)}.log-icon.warn{color:var(--gold)}button{background:var(--accent);color:var(--on-accent);border:0;border-radius:8px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;width:auto}button:hover:not(:disabled){filter:brightness(1.05)}button:disabled{opacity:var(--off);cursor:not-allowed;filter:none}button.ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}button.ghost:hover:not(:disabled){background:var(--panel-3);filter:none}button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,transparent);filter:none}button.link{background:none;border:0;padding:0;color:var(--accent-ink);font-weight:500;width:auto}button.link:hover{background:none;text-decoration:underline;filter:none}button.icon{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);border-radius:8px}button.icon:hover{background:var(--panel-3);color:var(--text);filter:none}button.icon.danger-icon{color:var(--danger)}button.icon.danger-icon:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}button.icon.on-icon,button.icon.on-icon:hover{color:var(--accent-ink)}button.icon:disabled{opacity:.45}.hint-btn{width:16px;height:16px;padding:0;border-radius:50%;border:1px solid var(--border-strong);background:transparent;color:var(--faint);font-size:10px;line-height:1;font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:help}.hint-btn:hover,.hint-btn[aria-expanded=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);filter:none}.hint-tip{position:fixed;z-index:60;max-width:300px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);box-shadow:var(--shadow-pop);font-size:12px;line-height:1.45}.state-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:max-content 1fr;gap:8px 12px;align-items:center;min-width:260px}.state-legend li{display:contents}.state-legend .badge{justify-self:start;white-space:nowrap}th .hint-btn{margin-left:6px;vertical-align:middle}.th-head{display:inline-flex;align-items:center;gap:6px}.th-head .hint-btn{margin-left:0}.hint-tip:has(.state-legend){max-width:480px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--th-ink);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:14px 16px;background:var(--th-bg);white-space:nowrap}td{padding:16px;border-bottom:1px solid var(--border);vertical-align:middle}th.money,td.money{white-space:nowrap;min-width:118px}input.narrow{width:88px}td.cell-whole,.modal-body .table-wrap th,.modal-body .table-wrap td{white-space:nowrap}.modal-body .table-wrap td.cell-text{white-space:normal;min-width:220px}.modal-tools{margin-bottom:12px}tbody tr:hover td{background:var(--row-hover)}.row.actions-grid{display:grid;grid-template-columns:repeat(2,max-content)}.row.actions-line{flex-wrap:nowrap}th.cell-actions,td.cell-actions{text-align:right}td.cell-actions>.row{justify-content:flex-end}th.cell-fit,td.cell-fit{width:1%;white-space:nowrap}tbody tr.clickable{cursor:pointer}tbody tr.clickable:focus-visible{outline:2px solid var(--accent-2);outline-offset:-2px}tbody tr.dim td{opacity:var(--off)}tbody tr.warn td{background:color-mix(in srgb,var(--gold-fill) 12%,transparent)}.th-sort{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:0;color:inherit;font:inherit;font-weight:600;text-transform:inherit;letter-spacing:inherit;cursor:pointer;width:auto}.th-sort:hover{color:var(--text);background:none;filter:none}.th-sort .arrow{width:9px;color:var(--accent-ink);font-size:10px}.th-sort .arrow.off{color:transparent}.price-months{width:90px}.price-value{width:120px}.settings-card{width:100%}.settings-section+.settings-section{border-top:1px solid var(--border);padding-top:20px}.settings-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.settings-section-head h3{margin:0;font-size:15px;font-weight:600}.field-note{margin:0;font-size:12px;color:var(--muted)}.tabs{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.tab{display:inline-flex;align-items:center;height:40px;padding:0 16px;flex:0 0 auto;white-space:nowrap;border-radius:10px;font-size:14px;font-weight:500;background:var(--panel);border:1px solid var(--border);color:var(--muted);cursor:pointer;width:auto}.tab:hover{color:var(--text);border-color:var(--border-strong);background:var(--panel);filter:none}.tabs-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}@media (max-width: 640px){.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tabs-actions{grid-column:1 / -1;margin-left:0}.tabs>.tab{width:100%;justify-content:center;text-align:center;white-space:normal;height:auto;min-height:40px;padding:8px 12px;line-height:1.25}}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid transparent}.badge.on{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent-ink) 30%,transparent);color:var(--accent-ink)}.badge.off{background:color-mix(in srgb,var(--danger) 15%,transparent);border-color:color-mix(in srgb,var(--danger) 32%,transparent);color:var(--danger)}.badge.wait{background:color-mix(in srgb,var(--gold-fill) 24%,transparent);border-color:color-mix(in srgb,var(--gold) 34%,transparent);color:var(--gold)}.badge.neutral{background:var(--panel-2);border-color:var(--border);color:var(--muted)}.badge.info{background:color-mix(in srgb,var(--info) 15%,transparent);border-color:color-mix(in srgb,var(--info) 34%,transparent);color:var(--info)}.badge.late{background:color-mix(in srgb,var(--late) 15%,transparent);border-color:color-mix(in srgb,var(--late) 34%,transparent);color:var(--late)}.badge.check{background:color-mix(in srgb,var(--violet) 16%,transparent);border-color:color-mix(in srgb,var(--violet) 34%,transparent);color:var(--violet)}.badge.state{min-width:128px;text-align:center}.badge.state.state-wide{min-width:158px}button.ghost.has-filters{border-color:var(--accent-ink);color:var(--accent-ink)}button .count{display:inline-block;min-width:18px;margin-left:7px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:11px;line-height:18px;text-align:center}button .chevron{margin-left:7px;font-size:10px;opacity:.7}.filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.filters .field{min-width:180px}.filters .grow{flex:1;min-width:240px}.filters .field:has(.search-select){min-width:220px}.filters .field.wide{min-width:290px}.search-select{position:relative}.search-select:after{content:"";position:absolute;top:50%;right:12px;width:12px;height:12px;margin-top:-6px;background:var(--chev) no-repeat center / 12px 12px;pointer-events:none}.search-select:hover:after,.search-select:focus-within:after{background-image:var(--chev-hover)}.search-select.open:after{transform:rotate(180deg)}.search-select input{padding-right:34px}.search-select .options{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 6px);max-height:240px;overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-pop)}.search-select .option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:6px;background:none;color:var(--text);font-size:14px;font-weight:400;text-align:left}.search-select .option-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-select .option .mono{flex:0 0 auto;font-size:12px}.search-select .option-check{flex:0 0 16px;display:inline-grid;place-items:center;color:var(--accent-ink)}.search-select .option:hover:not(.empty){background:var(--panel-2);filter:none}.search-select .option.chosen{background:var(--panel-2)}.search-select .option.chosen .option-label{font-weight:600}.search-select .option.pinned{margin-bottom:7px;position:relative}.search-select .option.pinned:after{content:"";position:absolute;left:4px;right:4px;bottom:-4px;border-bottom:1px solid var(--border)}.search-select .option.empty{color:var(--muted);cursor:default;justify-content:center}.search-select .option-group{margin-top:6px;padding:10px 10px 4px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.search-select .options>:first-child .option-group{margin-top:0;padding-top:4px;border-top:0}.search-select .select-button{width:100%;padding:10px 34px 10px 12px;border:1px solid var(--field-border);border-radius:8px;background:var(--field);color:var(--text);font-family:inherit;font-size:14px;font-weight:400;line-height:normal;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-select .select-button:hover{border-color:var(--border-strong);filter:none}.search-select .select-button:disabled{opacity:.55;cursor:not-allowed}.search-select.up .options{top:auto;bottom:calc(100% + 6px)}.search-select.open .select-button,.search-select .select-button:focus-visible{border-color:var(--accent-2)}.pager{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:13px}.pager .pager-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pager .pager-range{color:var(--muted)}.pager .pager-pages{display:flex;align-items:center;gap:4px}.pager .pager-pages button{min-width:32px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--text);font-size:13px;font-weight:400}.pager .pager-pages button:hover:not(:disabled){background:var(--panel-2);filter:none}.pager .pager-num[aria-current=page]{border-color:var(--accent);color:var(--accent-ink);font-weight:600;background:color-mix(in srgb,var(--accent) 10%,transparent)}.pager .pager-step{color:var(--muted);font-size:20px;line-height:1;padding:0 0 2px}.pager .pager-step:disabled{opacity:.35}.pager .pager-gap{color:var(--faint);padding:0 2px}.pager .pager-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pager .jump{display:inline-flex;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.pager .jump input{width:56px;height:30px;text-align:center;padding:0;background:var(--panel-2);font-size:13px}.pager .pager-size{display:flex;align-items:center;gap:2px}.pager .pager-size .muted{margin-right:6px}.pager .pager-size button{height:28px;min-width:36px;padding:0 8px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:13px;font-weight:400}.pager .pager-size button:hover{color:var(--text);background:var(--panel-2);filter:none}.pager .pager-size button[aria-checked=true]{color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 12%,transparent);font-weight:600}.input-action{display:flex;align-items:center;gap:8px}.input-action>input{flex:1 1 auto;min-width:0}.login{display:flex;align-items:center;justify-content:center;min-height:100vh}.login form{width:360px;display:grid;gap:16px}.login h1{font-size:24px;margin:0}.confirm{margin-top:16px;padding:16px;border:1px solid var(--danger);border-radius:8px;background:color-mix(in srgb,var(--danger) 8%,transparent)}.confirm h3{margin-bottom:6px}.confirm input,.confirm textarea{max-width:520px;margin:10px 0}.facts{display:grid;grid-template-columns:max-content 1fr;gap:10px 20px;margin:0}.facts dt{color:var(--muted)}.facts dd{margin:0}.facts+.row,.facts+.form-stack{margin-top:18px}.empty{padding:32px 16px;text-align:center;color:var(--faint)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto}.modal{max-width:100%;max-height:calc(100vh - 96px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-body{padding:20px;overflow-y:auto}.modal-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 20px;border-top:1px solid var(--border)}.modal-foot button{flex:1 1 0;white-space:nowrap}.modal-foot button.ghost,.modal-foot button.danger{color:var(--danger);border:1px solid var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}.modal-foot button.ghost:hover:not(:disabled),.modal-foot button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 20%,transparent)}.modal-foot button:not(.ghost):not(.danger){color:var(--accent-ink);border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.modal-foot button:not(.ghost):not(.danger):hover:not(:disabled){background:color-mix(in srgb,var(--accent) 22%,transparent)}.modal-foot button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.modal-foot button:before{content:"";width:16px;height:16px;flex:0 0 auto;background:currentColor;-webkit-mask:var(--ic-check) no-repeat center / 16px 16px;mask:var(--ic-check) no-repeat center / 16px 16px}.modal-foot button.ghost:before,.modal-foot button.danger:before{-webkit-mask-image:var(--ic-close);mask-image:var(--ic-close)}.choice{display:flex;gap:10px}.choice button{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;background:var(--panel-2);color:var(--text);border:1px solid var(--border)}.choice button:hover:not(:disabled){background:var(--panel-3);filter:none}.choice button.choice-on{color:var(--accent-ink);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.choice button.choice-off{color:var(--danger);border-color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}button.switch{display:inline-flex;align-items:center;gap:12px;padding:0;border:0;background:none;color:var(--text);font:inherit;cursor:pointer;text-align:left}button.switch:hover{filter:none;background:none}.switch-track{position:relative;flex:none;width:40px;height:22px;border-radius:11px;background:var(--border-strong);transition:background .15s}.switch-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .15s}button.switch[aria-checked=true] .switch-track{background:var(--accent)}button.switch[aria-checked=true] .switch-thumb{transform:translate(18px);background:var(--on-accent)}button.switch:focus-visible{outline:none}button.switch:focus-visible .switch-track{outline:2px solid var(--accent);outline-offset:2px}.chips{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.chip{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.chip>button.icon{margin-left:auto}.segmented{display:flex;padding:3px;gap:3px;border:1px solid var(--border);border-radius:var(--radius);background:var(--field)}.segmented>button{flex:1 1 0;justify-content:center;background:transparent;border:0;color:var(--muted);font-weight:500}.segmented>button:hover{color:var(--text);background:var(--panel-2);filter:none}.segmented>button[aria-checked=true]{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent-ink)}.presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.presets>button{padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:13px;font-weight:400}.presets>button:hover{border-color:var(--border-strong);filter:none}.presets>button[aria-pressed=true]{border-color:var(--accent);color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 12%,transparent)}.term-change{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:10px 12px;border-radius:var(--radius);background:var(--field);border:1px solid var(--border)}.term-change dt{color:var(--muted)}.term-change dd{margin:0}.term-change .delta{color:var(--accent-ink);margin-left:6px}.history{list-style:none;margin:0;padding:0;display:grid;gap:10px}.history>li{display:grid;gap:2px;padding:8px 12px;border-left:2px solid var(--border-strong)}.history-head{display:flex;gap:10px;font-size:12px}.history .delta{color:var(--accent-ink)}.modal-sub-lines{display:grid;gap:4px}.modal-sub-lines .row{gap:8px}.toast{position:fixed;right:20px;bottom:20px;z-index:60;max-width:min(420px,calc(100vw - 32px));padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-pop)}.toast-head{display:flex;align-items:center;gap:10px}.toast-title{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-head button.icon{margin-left:auto;flex:0 0 auto}.toast-detail{margin-top:8px;color:var(--muted);font-size:13px}@media (max-width: 640px){.toast{right:12px;left:12px;bottom:12px;max-width:none}}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px}.tile{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px}.tile .value{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.tile .name{font-size:13px;color:var(--muted);margin-top:4px}.tile .sub{font-size:12px;color:var(--faint);margin-top:8px}.tile.alert{border-color:var(--danger)}.tile.alert .value{color:var(--danger)}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:24px}.chart{min-width:0}.chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px;min-height:18px}.chart-title{font-size:12px;font-weight:600;color:var(--th-ink);text-transform:uppercase;letter-spacing:.03em}.chart-tip{font-size:13px;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.chart{margin:0}.chart-canvas{width:100%}.chart svg{display:block;overflow:visible}.chart .grid{stroke:var(--border);stroke-width:1}.chart .axis{fill:var(--faint);font-size:10px}.chart .axis.end,.chart .axis.start-end{text-anchor:end;font-variant-numeric:tabular-nums}.chart .axis.middle{text-anchor:middle}.chart .bar{fill:var(--series)}.chart .col .hit{fill:transparent}.chart .col.active .hit{fill:color-mix(in srgb,var(--series) 8%,transparent)}.chart .col.active .bar{fill:color-mix(in srgb,var(--series) 75%,var(--tint))}.chart .col:focus{outline:none}.chart .col:focus-visible .hit{stroke:var(--accent-2);stroke-width:1}.chart .line{fill:none;stroke:var(--series);stroke-width:2;stroke-linejoin:round}.chart .area{fill:color-mix(in srgb,var(--series) 18%,transparent);stroke:none}.chart .cross{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:3 3}.chart .dot{fill:var(--series);stroke:var(--panel);stroke-width:2}.bar-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(90px,32%) 1fr auto;align-items:center;gap:12px;font-size:13px}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:14px}.bar-fill{display:block;height:100%;min-width:2px;background:var(--series);border-radius:0 4px 4px 0}.bar-value{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}.bar-empty{margin:8px 0 0}.dashboard-body{display:grid;gap:20px;transition:opacity .15s}.dashboard-body.refetching{opacity:.55}.period-picker{position:relative}.period-button{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.period-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:min(360px,calc(100vw - 32px));padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-pop)}.period-option{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;width:100%;padding:9px 10px;border:0;border-radius:6px;background:none;color:var(--text);font-weight:400;text-align:left}.period-option:hover{background:var(--panel-2);filter:none}.period-option[aria-selected=true] .period-name{font-weight:600}.period-check{display:inline-grid;place-items:center;width:20px;color:var(--accent-ink)}.period-option .faint{font-size:12px;font-variant-numeric:tabular-nums}.period-custom{margin-top:6px;padding:10px 10px 4px;border-top:1px solid var(--border);display:grid;gap:8px}.period-custom-head{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.period-custom-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px}.period-custom-fields input{min-width:0}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.plan-summary{padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);display:grid;gap:4px}.copyable{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.copyable input{flex:1;min-width:0;width:auto;background:none;border:0;border-radius:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;text-overflow:ellipsis}.copyable input:hover,.copyable input:focus{border-color:transparent}.copyable:focus-within{border-color:var(--accent-2)}.copyable button.icon{flex:0 0 auto;width:28px;height:28px;background:none;border:0}.copyable button.icon:hover{background:var(--panel-3);color:var(--text)}.key-detail-row>td{padding:16px 12px 20px;background:var(--panel-2)}.key-detail-row+tr>td{border-top-width:2px}.access-key{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.access-key+.access-key{margin-top:12px}.node-access{display:grid;gap:8px}.node-access+.node-access{margin-top:14px}.node-name{font-weight:600}.proto-list{display:flex;flex-wrap:wrap;gap:8px}.proto{display:inline-flex;align-items:baseline;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-size:12px}.proto b{font-size:13px}.modal-body section+section{padding-top:18px;margin-top:4px;border-top:1px solid var(--border)}.modal-body section h3{margin-bottom:12px}.modal-head .muted.small{display:flex;align-items:center;margin-top:6px}@media (max-width: 900px){.sidebar{position:fixed;top:0;left:0;z-index:60;width:min(280px,82vw);height:100vh;transform:translate(-100%);transition:transform .2s ease;background:var(--bg)}.sidebar.open{transform:none;box-shadow:var(--shadow-pop)}.app-header button.menu-btn{display:inline-flex}.app-header{padding:12px 16px 0}.app-content{padding:16px 16px 32px}}@media (max-width: 640px){h1{font-size:24px;margin-bottom:16px}.page-head{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:16px}.stack>.page-head{margin-bottom:0}.page-head .row{width:100%}.page-head .row>button{flex:1 1 auto;justify-content:center}.page-head .muted{width:100%}.card{padding:14px}.table-wrap{-webkit-overflow-scrolling:touch}.table-wrap table{min-width:600px}th,td{padding:12px 10px}th,td{white-space:nowrap}td.cell-text{white-space:normal;min-width:220px}.filters{gap:12px}.filters .field,.filters .grow{min-width:100%}.facts{grid-template-columns:1fr;gap:4px 0}.facts dd{margin-bottom:10px}.overlay{padding:16px 12px}.modal{max-height:calc(100vh - 32px)}.modal-head{padding:14px 16px}.modal-body{padding:16px}.modal-foot{padding:12px 16px;flex-direction:column-reverse;align-items:stretch}.modal-foot button{width:100%}.pager{flex-direction:column;align-items:flex-start}.pager .pager-pages{flex-wrap:wrap}.pager .jump-page{display:none}.login{padding:16px}.login form{width:100%;max-width:360px}.row{gap:8px}.row.actions{flex-direction:column;align-items:stretch}.row.actions>button{width:100%}.price-row{gap:6px;flex-wrap:nowrap}.price-months{width:64px}.price-value{width:84px}}
