@font-face{font-family: 'JetBrains Mono Variable';src: url('../fonts/jetbrains-mono-latin-wght-normal.woff2') format('woff2-variations');font-weight: 100 800;font-display: swap}html,:root,[theme~='dark']{--pf-bg: #070b09;--pf-surface: #0b110e;--pf-surface-2: #101a15;--pf-line: #1f3128;--pf-line-strong: #2f4a3c;--pf-ink: #d4f2df;--pf-ink-2: #8fb3a0;--pf-ink-3: #6b8c7a;--pf-accent: #4dff9b;--pf-up: #4dff9b;--pf-down: #ff7a70;--pf-warn: #ffc857;--lumo-font-family: 'JetBrains Mono Variable',ui-monospace,Menlo,monospace;--lumo-font-size-m: 0.875rem;--lumo-base-color: var(--pf-surface);--lumo-body-text-color: var(--pf-ink);--lumo-header-text-color: var(--pf-ink);--lumo-secondary-text-color: var(--pf-ink-2);--lumo-tertiary-text-color: var(--pf-ink-3);--lumo-disabled-text-color: var(--pf-ink-3);--lumo-primary-color: var(--pf-accent);--lumo-primary-color-50pct: rgba(77,255,155,0.5);--lumo-primary-color-10pct: rgba(77,255,155,0.1);--lumo-primary-text-color: var(--pf-accent);--lumo-primary-contrast-color: #04130b;--lumo-error-color: var(--pf-down);--lumo-error-text-color: var(--pf-down);--lumo-success-color: var(--pf-up);--lumo-success-text-color: var(--pf-up);--lumo-border-radius-s: 2px;--lumo-border-radius-m: 2px;--lumo-border-radius-l: 3px;--lumo-contrast-5pct: rgba(143,179,160,0.07);--lumo-contrast-10pct: rgba(143,179,160,0.13);--lumo-contrast-20pct: rgba(143,179,160,0.24);--lumo-contrast-30pct: rgba(143,179,160,0.34);color-scheme: dark}html,body{height: 100%;margin: 0;background: var(--pf-bg);color: var(--pf-ink);font-family: var(--lumo-font-family)}body::after{content: '';position: fixed;inset: 0;pointer-events: none;z-index: 9999;background: repeating-linear-gradient(0deg,rgba(255,255,255,0.012) 0 1px,transparent 1px 3px)}a{color: var(--pf-accent);text-decoration: none}a:hover{text-decoration: underline}h1,h2,h3{margin: 0;font-weight: 600;letter-spacing: 0}:focus-visible{outline: 1px solid var(--pf-accent);outline-offset: 1px}.pf-shell{display: grid;grid-template: 'top top' auto 'nav main' 1fr 'status status' auto / 190px minmax(0,1fr);height: 100dvh}.pf-top{grid-area: top;display: flex;align-items: center;gap: 16px;padding: 8px 16px;background: var(--pf-surface);border-bottom: 1px solid var(--pf-line)}.pf-brand{color: var(--pf-accent);font-weight: 800;letter-spacing: 0.04em;white-space: nowrap}.pf-brand small{color: var(--pf-ink-3);font-weight: 400;margin-left: 8px}.pf-command{flex: 1;max-width: 560px}.pf-command::part(input-field){background: var(--pf-bg);border: 1px solid var(--pf-line)}.pf-top-user{margin-left: auto;display: flex;align-items: center;gap: 12px;color: var(--pf-ink-2);font-size: 0.8125rem;white-space: nowrap}.pf-nav{grid-area: nav;display: flex;flex-direction: column;gap: 2px;padding: 12px 8px;background: var(--pf-surface);border-right: 1px solid var(--pf-line)}.pf-nav a{display: block;padding: 8px 10px;color: var(--pf-ink-2);border-left: 2px solid transparent}.pf-nav a:hover{color: var(--pf-ink);background: var(--pf-surface-2);text-decoration: none}.pf-nav a[highlight]{color: var(--pf-accent);border-left-color: var(--pf-accent);background: var(--pf-surface-2)}.pf-nav .key{color: var(--pf-ink-3);margin-right: 6px}.pf-main{grid-area: main;overflow: auto;padding: 16px}.pf-status{grid-area: status;display: flex;flex-wrap: wrap;gap: 4px 20px;padding: 4px 16px;background: var(--pf-surface);border-top: 1px solid var(--pf-line);color: var(--pf-ink-3);font-size: 0.75rem}.pf-status b{color: var(--pf-ink-2);font-weight: 500}.pf-view{display: flex;flex-direction: column;gap: 16px;max-width: 1500px;margin: 0 auto}.pf-view>.pf-view{width: 100%;margin: 0}.pf-head{display: flex;flex-wrap: wrap;align-items: center;gap: 12px}.pf-head h1{font-size: 1.125rem}.pf-head h1::before{content: '$ ';color: var(--pf-accent)}.pf-head .spacer{flex: 1}.pf-muted{color: var(--pf-ink-2)}.pf-small{font-size: 0.8125rem}.pf-panel{background: var(--pf-surface);border: 1px solid var(--pf-line);min-width: 0}.pf-panel-title{display: flex;align-items: center;gap: 8px;padding: 8px 12px;border-bottom: 1px solid var(--pf-line);color: var(--pf-ink-2);font-size: 0.75rem;letter-spacing: 0.08em;text-transform: uppercase}.pf-panel-title::before{content: '▸';color: var(--pf-accent)}.pf-panel-body{padding: 12px}.pf-grid-2{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 16px}.pf-kpis{display: grid;grid-template-columns: repeat(auto-fit,minmax(190px,1fr));gap: 1px;background: var(--pf-line);border: 1px solid var(--pf-line)}.pf-kpi{background: var(--pf-surface);padding: 12px 14px;min-width: 0;container-type: inline-size}.pf-kpi-label{color: var(--pf-ink-2);font-size: 0.75rem}.pf-kpi-value{font-size: min(1.375rem,9.4cqi);font-weight: 600;margin-top: 4px;font-variant-numeric: tabular-nums;white-space: nowrap}.pf-kpi-sub{color: var(--pf-ink-2);font-size: 0.75rem;margin-top: 4px}.pf-money small{display: block;color: var(--pf-ink-2);font-size: 0.6875rem;line-height: 1.2}.pf-up{color: var(--pf-up)}.pf-down{color: var(--pf-down)}.pf-warn{color: var(--pf-warn)}pf-chart{display: flex;flex-direction: column;width: 100%}.pf-chart-toolbar{display: flex;gap: 4px;justify-content: flex-end;min-height: 0}.pf-chart-toolbar:not(:empty){margin-bottom: 8px}.pf-chart-toolbar button{background: none;border: 1px solid var(--pf-line);color: var(--pf-ink-2);font: inherit;font-size: 0.75rem;padding: 4px 10px;min-height: 28px;cursor: pointer}.pf-chart-toolbar button:hover{color: var(--pf-ink);border-color: var(--pf-line-strong)}.pf-chart-toolbar button.active{color: var(--pf-accent);border-color: var(--pf-accent)}.pf-chart-canvas{width: 100%}.h-260 .pf-chart-canvas{height: 260px}.h-320 .pf-chart-canvas{height: 320px}.h-380 .pf-chart-canvas{height: 380px}vaadin-grid{--vaadin-grid-cell-padding: 6px 8px;background: var(--pf-surface);border: 1px solid var(--pf-line);font-size: 0.8125rem;font-variant-numeric: tabular-nums}vaadin-grid::part(header-cell){color: var(--pf-ink-2);background: var(--pf-surface-2);font-size: 0.75rem}vaadin-grid::part(row):hover{background: var(--pf-surface-2)}vaadin-grid::part(pf-up){color: var(--pf-up)}vaadin-grid::part(pf-down){color: var(--pf-down)}vaadin-grid::part(pf-code){color: var(--pf-ink-3)}.pf-table-wrap{overflow-x: auto}table.pf-table{width: 100%;border-collapse: collapse;font-size: 0.8125rem;font-variant-numeric: tabular-nums}.pf-table th{color: var(--pf-ink-2);font-weight: 500;text-align: left;font-size: 0.75rem;padding: 6px 10px;border-bottom: 1px solid var(--pf-line-strong);white-space: nowrap}.pf-table td{padding: 6px 10px;border-bottom: 1px solid var(--pf-line)}.pf-table .num{text-align: right;white-space: nowrap}.pf-table tr.total td{font-weight: 600;border-top: 1px solid var(--pf-line-strong)}vaadin-button{font-weight: 500}vaadin-button[theme~='primary']{color: #04130b;background: var(--pf-accent)}vaadin-dialog-overlay::part(overlay),vaadin-confirm-dialog-overlay::part(overlay){border: 1px solid var(--pf-line-strong);background: var(--pf-surface)}.pf-filters{display: flex;flex-wrap: wrap;gap: 4px;align-items: center}.pf-chip{border: 1px solid var(--pf-line);background: none;color: var(--pf-ink-2);font: inherit;font-size: 0.75rem;padding: 6px 10px;min-height: 32px;cursor: pointer}.pf-chip:hover{color: var(--pf-ink);border-color: var(--pf-line-strong)}.pf-chip.active{color: var(--pf-accent);border-color: var(--pf-accent)}.pf-form{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 4px 16px;width: min(640px,80vw)}.pf-form .full{grid-column: 1 / -1}.pf-stack{display: flex;flex-direction: column;gap: 4px}.pf-note{border-left: 2px solid var(--pf-warn);padding: 8px 12px;background: rgba(255,200,87,0.05);font-size: 0.8125rem;color: var(--pf-ink-2);line-height: 1.55}.pf-empty{padding: 40px 24px;text-align: center;color: var(--pf-ink-2);display: flex;flex-direction: column;align-items: center;gap: 14px}.pf-empty pre{color: var(--pf-accent);margin: 0;font: inherit}.pf-auth{min-height: 100dvh;display: flex;align-items: center;justify-content: center;padding: 24px 16px;box-sizing: border-box;background: radial-gradient(ellipse at 50% 20%,#0f1d16 0%,var(--pf-bg) 65%)}.pf-term{width: min(440px,100%);background: var(--pf-surface);border: 1px solid var(--pf-line-strong);box-shadow: 0 0 44px rgba(77,255,155,0.07)}.pf-term-bar{display: flex;align-items: center;gap: 6px;padding: 8px 12px;border-bottom: 1px solid var(--pf-line);color: var(--pf-ink-3);font-size: 0.75rem}.pf-term-bar i{width: 9px;height: 9px;border-radius: 50%;background: var(--pf-line-strong)}.pf-term-bar span{margin-left: 8px}.pf-term-body{padding: 20px;display: flex;flex-direction: column;gap: 10px}.pf-logo{color: var(--pf-accent);font-weight: 800;font-size: 1.5rem;letter-spacing: 0.04em}.pf-boot{color: var(--pf-ink-2);font-size: 0.75rem;line-height: 1.7}.pf-boot div{overflow: hidden;white-space: nowrap;animation: pf-type 0.5s steps(32,end) both}.pf-boot div:nth-child(2){animation-delay: 0.3s}.pf-boot div:nth-child(3){animation-delay: 0.6s}.pf-boot .ok{color: var(--pf-up)}@keyframes pf-type{from{width: 0}to{width: 100%}}.pf-auth-wide .pf-term{max-width: 760px;width: 100%}.pf-legal-title{font-weight: 600;color: var(--pf-ink)}.pf-legal-section{font-size: 0.8125rem;line-height: 1.55;color: var(--pf-ink-2)}.pf-legal-heading{color: var(--pf-ink);font-weight: 600;margin-bottom: 2px}.pf-legal-summary{display: flex;flex-direction: column;gap: 4px;font-size: 0.8125rem;color: var(--pf-ink-2)}.pf-links{display: flex;justify-content: space-between;gap: 12px;flex-wrap: wrap;font-size: 0.8125rem}.pf-msg-ok{color: var(--pf-up);line-height: 1.6}.pf-msg-err{color: var(--pf-down);line-height: 1.6}vaadin-login-form-wrapper{max-width: none;background: transparent}vaadin-login-form-wrapper::part(form){padding: 0}vaadin-login-form-wrapper::part(form-title){display: none}@media (prefers-reduced-motion: reduce){.pf-boot div{animation: none}}@media (max-width: 900px){.pf-shell{grid-template: 'top' auto 'nav' auto 'main' 1fr 'status' auto / minmax(0,1fr)}.pf-nav{flex-direction: row;overflow-x: auto;padding: 4px 8px;border-right: none;border-bottom: 1px solid var(--pf-line)}.pf-nav a{white-space: nowrap;border-left: none;border-bottom: 2px solid transparent}.pf-nav a[highlight]{border-bottom-color: var(--pf-accent)}.pf-grid-2{grid-template-columns: minmax(0,1fr)}.pf-brand small,.pf-top-user .email,.pf-command{display: none}.pf-form{grid-template-columns: minmax(0,1fr);width: 100%}.pf-main{padding: 12px}.pf-status{display: none}}