:root{--forest-950: #09291e;--forest-900: #123d2d;--forest-800: #1a513b;--forest-700: #24684c;--forest-100: #dcebe3;--forest-50: #eff6f1;--gold-600: #a8670a;--gold-500: #c8841d;--gold-100: #f8e7c7;--gold-50: #fcf7ec;--red-700: #a33a32;--red-100: #f7dfdc;--red-50: #fff4f2;--blue-700: #2f6481;--blue-100: #dbeaf1;--purple-700: #6f4d83;--purple-100: #eee3f4;--ink: #17231e;--muted: #65716b;--muted-2: #89928d;--line: #d9dfdb;--line-strong: #c4cec7;--surface: #ffffff;--canvas: #f5f6f3;--surface-soft: #f9faf8;--shadow: 0 10px 32px rgba(17, 46, 34, .08);--shadow-soft: 0 2px 10px rgba(17, 46, 34, .05);--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--sidebar-width: 272px;--font-sans: "Plus Jakarta Sans", "Segoe UI", sans-serif;--font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;font-family:var(--font-sans);font-synthesis:none;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-family:var(--font-display);font-size:clamp(30px,3.2vw,44px);line-height:1.08;letter-spacing:-.03em;font-weight:700;margin-bottom:10px}h2{font-family:var(--font-sans);font-size:20px;line-height:1.25;letter-spacing:-.015em;font-weight:700;margin-bottom:0}h3{font-size:16px;font-weight:700}p{color:var(--muted);line-height:1.55}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.icon{flex:0 0 auto}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--forest-950);color:#fff;z-index:50;display:flex;flex-direction:column;padding:22px 16px 18px;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-with-logo{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:6px 8px;align-items:center}.brand-with-logo .brand-logo-full{grid-column:1;grid-row:1;width:100%;max-width:220px;height:auto;display:block;background:#fff;border-radius:10px;padding:8px 10px}.brand-with-logo .brand-sub{grid-column:1;grid-row:2;font-size:11px;color:#ffffff9e;letter-spacing:.08em;text-transform:uppercase}.brand-with-logo .mobile-close{grid-column:2;grid-row:1 / span 2}.brand-with-logo-light{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.brand-with-logo-light .brand-logo-full{width:min(240px,100%);height:auto;display:block}.brand-with-logo-light .brand-sub{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:0}.brand-logo-hero{width:min(320px,100%);height:auto;display:block;margin-bottom:18px;background:#fff;border-radius:12px;padding:12px 14px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;flex:0 0 auto;font-weight:800;font-size:14px;letter-spacing:.05em;color:var(--forest-950);background:linear-gradient(145deg,#f5c662,#d89420);box-shadow:inset 0 0 0 1px #ffffff40}.brand-mark.large{width:56px;height:56px;border-radius:16px;font-size:18px}.brand strong{display:block;font-family:var(--font-display);font-size:17px;line-height:1.2;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.brand span{display:block;font-size:11px;color:#ffffff9e;letter-spacing:.08em;text-transform:uppercase;margin-top:3px}.mobile-close{display:none!important;color:#fff;margin-left:auto}.period-pill{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:12px;margin:24px 0 16px;border-radius:12px;background:#ffffff12;border:1px solid rgba(255,255,255,.1)}.pulse{width:8px;height:8px;border-radius:50%;background:#f3b74e;box-shadow:0 0 0 5px #f3b74e1f}.period-pill small,.period-pill strong{display:block}.period-pill small{color:#ffffff8c;font-size:10px;margin-bottom:2px}.period-pill strong{font-size:12px}.period-pill .badge{font-size:8px;padding:4px 5px}.nav-section{margin-top:17px}.nav-section-label{display:block;padding:0 12px 7px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#fff6}.nav-link{display:flex;align-items:center;gap:12px;min-height:42px;padding:10px 12px;border-radius:9px;margin:2px 0;text-decoration:none;color:#ffffffb0;font-size:13px;font-weight:600;transition:.16s ease}.nav-link:hover{background:#ffffff12;color:#fff}.nav-link.active{color:#fff;background:#deb75c2e;box-shadow:inset 3px 0 #e0a43a}.nav-count{margin-left:auto;padding:2px 6px;border-radius:99px;font-size:9px;background:#ffffff1a}.sidebar-user{margin-top:auto;padding:16px 8px 0;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--forest-100);color:var(--forest-900);font-size:11px;font-weight:800}.sidebar-user strong,.sidebar-user span{display:block}.sidebar-user strong{font-size:12px}.sidebar-user span{font-size:10px;color:#ffffff8c;margin-top:2px}.app-main{margin-left:var(--sidebar-width);min-width:0}.topbar{height:72px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:18px;padding:0 32px;background:#ffffffed;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.menu-button{display:none!important}.global-search{width:min(440px,50vw);height:40px;display:flex;align-items:center;gap:8px;padding:0 13px;border-radius:10px;background:var(--canvas);border:1px solid transparent;color:var(--muted)}.global-search:focus-within{border-color:var(--forest-700);box-shadow:0 0 0 3px #24684c1a;background:#fff}.global-search input{width:100%;background:transparent;border:0;outline:0;color:var(--ink);font-size:13px}.topbar-context{display:flex;align-items:center;gap:10px;margin-left:auto}.demo-label{font-size:10px;text-transform:uppercase;letter-spacing:.09em;padding:5px 8px;color:var(--gold-600);background:var(--gold-50);border:1px solid var(--gold-100);border-radius:6px}.icon-button{width:36px;height:36px;border:0;padding:0;display:inline-grid;place-items:center;background:transparent;border-radius:9px;cursor:pointer}.icon-button:hover{background:var(--forest-50);color:var(--forest-800)}.notification{position:relative}.notification>span{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:#c94b3e;border:1px solid white}.role-chip{display:flex;align-items:center;gap:9px;padding-left:11px;border-left:1px solid var(--line)}.role-chip>span{font-size:11px;color:var(--muted)}.role-chip strong{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;color:#fff;background:var(--forest-800);font-size:10px}.content{width:100%;max-width:1540px;margin:0 auto;padding:38px 40px 70px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.page-header>div:first-child{max-width:780px}.page-header h1{margin-bottom:8px}.page-header p{font-size:14px;margin-bottom:0}.eyebrow,.section-kicker{display:block;color:var(--gold-600);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}.header-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:flex-end}.header-select{height:42px;min-width:175px}.button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 15px;border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:750;cursor:pointer;transition:.16s ease;white-space:nowrap}.button-primary{color:#fff;background:var(--forest-800);border-color:var(--forest-800);box-shadow:0 2px 4px #123d2d1f}.button-primary:hover:not(:disabled){background:var(--forest-950);transform:translateY(-1px)}.button-secondary{color:var(--forest-900);background:#fff;border-color:var(--forest-800)}.button-secondary:hover:not(:disabled){background:var(--forest-50)}.button-ghost{color:var(--forest-800);background:transparent;border-color:var(--line)}.button-ghost:hover:not(:disabled){background:var(--forest-50);border-color:var(--forest-100)}.button-danger{color:var(--red-700);background:var(--red-50);border-color:#e5aaa4}.button:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}.button.full{width:100%}.text-button{border:0;background:transparent;color:var(--forest-700);font-weight:700;font-size:12px;cursor:pointer;padding:6px 0}.text-button:hover{color:var(--forest-950);text-decoration:underline}.badge{width:fit-content;display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;font-size:10px;line-height:1;font-weight:750;letter-spacing:.015em;white-space:nowrap}.badge-success{color:var(--forest-800);background:var(--forest-100)}.badge-warning{color:#81520b;background:var(--gold-100)}.badge-danger{color:var(--red-700);background:var(--red-100)}.badge-neutral{color:#5f6863;background:#e8ebe9}.badge-info{color:var(--blue-700);background:var(--blue-100)}.badge-purple{color:var(--purple-700);background:var(--purple-100)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}.card-header .section-kicker{margin-bottom:4px}.card-header h2{margin:0}.callout{min-height:64px;display:flex;align-items:center;gap:13px;padding:13px 16px;margin-bottom:22px;border:1px solid;border-radius:11px}.callout>span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:9px}.callout>div{flex:1}.callout strong{display:block;font-size:13px;margin-bottom:3px}.callout p{font-size:11px;margin:0}.callout-info{color:var(--forest-800);background:var(--forest-50);border-color:#cbded2}.callout-info>span:first-child{background:var(--forest-100)}.callout-warning{color:#6d4912;background:var(--gold-50);border-color:#eed7a8}.callout-warning>span:first-child{background:var(--gold-100)}.callout-success{color:var(--forest-800);background:var(--forest-50);border-color:#cbded2}.callout.compact{min-height:0;margin-bottom:18px;padding:10px 12px}.callout-quiet{min-height:0;padding:10px 14px;margin-bottom:14px}.callout-actions{display:flex;flex-direction:column;align-items:stretch;gap:6px}.callout-dismiss{border:0;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:600;cursor:pointer;text-align:center;padding:4px 6px}.callout-dismiss:hover{color:var(--forest-900)}.metric-grid{display:grid;gap:15px;margin-bottom:22px}.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-width:0;min-height:144px;padding:19px 20px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--forest-700);border-radius:var(--radius);box-shadow:var(--shadow-soft);container-type:inline-size;container-name:metric}.metric-label{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.metric-label>span{min-width:0;overflow-wrap:anywhere}.metric-icon{flex:0 0 auto;width:31px;height:31px;display:grid;place-items:center;color:var(--forest-700);background:var(--forest-50);border-radius:8px}.metric strong{display:block;max-width:100%;min-width:0;font-family:var(--font-display);font-size:clamp(18px,2.2vw,34px);font-size:clamp(18px,12.5cqi,34px);letter-spacing:-.03em;margin:13px 0 7px;line-height:1.15;font-variant-numeric:tabular-nums;font-weight:700;overflow-wrap:anywhere;word-break:break-word}.metric p{font-size:11px;margin:0;overflow-wrap:anywhere}.metric-red{border-top-color:var(--red-700)}.metric-red strong{color:var(--red-700)}.metric-red .metric-icon{color:var(--red-700);background:var(--red-50)}.metric-amber{border-top-color:var(--gold-500)}.metric-amber strong{color:#85540a}.metric-amber .metric-icon{color:var(--gold-600);background:var(--gold-50)}.metric-neutral{border-top-color:var(--line-strong)}.metric-neutral .metric-icon{color:var(--muted);background:var(--canvas)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:20px}.dashboard-grid-main{grid-template-columns:1fr}.portal-qr-card{align-self:start;margin-top:20px;max-width:560px}.portal-qr-body{display:grid;gap:16px;padding:18px 20px 20px}.portal-qr-preview{display:grid;place-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--canvas)}.portal-qr-preview img{display:block;width:160px;height:160px;border-radius:6px;background:#fff}.portal-qr-placeholder{width:160px;height:160px;display:grid;place-items:center;color:var(--muted);font-size:12px;text-align:center;padding:12px}.portal-qr-note{margin:0;font-size:12px;line-height:1.45;color:var(--muted)}.portal-qr-url-label{display:block;margin-top:10px;font-size:11px;font-weight:700;color:var(--forest-800)}.portal-qr-url{display:block;margin-top:6px;padding:10px 12px;border-radius:8px;background:var(--canvas);border:1px solid var(--line);font-size:11px;word-break:break-all;color:var(--forest-800)}.portal-qr-flash{margin:10px 0 0;font-size:12px;color:var(--forest-800)}.portal-qr-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.chart-card{grid-row:span 2;min-height:540px;align-self:start}.chart-legend{display:flex;justify-content:flex-end;gap:15px;padding:14px 24px 4px;font-size:10px;color:var(--muted)}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i,.reconcile-list i{width:9px;height:9px;border-radius:3px;background:#e4e7e5}.chart-legend i.green,.reconcile-list i.green{background:var(--forest-700)}.bars{height:400px;display:flex;align-items:flex-end;gap:clamp(20px,5vw,54px);padding:28px 38px 20px;background:repeating-linear-gradient(to top,transparent 0,transparent 79px,#edf0ee 80px);border-bottom:1px solid var(--line)}.bar-column{height:100%;flex:1;min-width:22px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.bar-stack{width:100%;max-width:48px;height:88%;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;background:#e4e7e5;border-radius:7px 7px 2px 2px}.bar-open{background:#e4e7e5}.bar-paid{background:var(--forest-700);margin-top:auto}.action-card{padding-bottom:12px}.action-card>button,.action-panel>button,.exception-recap>button{width:calc(100% - 28px);margin:10px 14px 0;min-height:64px;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;cursor:pointer}.action-card>button:hover,.action-panel>button:hover,.exception-recap>button:hover{border-color:var(--forest-100);background:var(--forest-50)}.action-card>button>span,.action-panel>button>span{width:35px;height:35px;display:grid;place-items:center;border-radius:8px;color:var(--forest-800);background:var(--forest-50)}.action-card>button strong,.action-card>button small,.action-panel>button strong,.action-panel>button small,.exception-recap>button strong,.exception-recap>button small{display:block}.action-card>button strong,.action-panel>button strong{font-size:12px;margin-bottom:3px}.action-card>button small,.action-panel>button small,.exception-recap>button small{color:var(--muted);font-size:10px}.activity-card{padding-bottom:8px}.activity{position:relative;display:grid;grid-template-columns:auto 1fr;gap:11px;padding:13px 20px;border-bottom:1px solid var(--line)}.activity:last-child{border-bottom:0}.activity-dot{width:9px;height:9px;border-radius:50%;background:var(--forest-700);margin-top:5px;box-shadow:0 0 0 5px var(--forest-50)}.activity strong{font-size:11px}.activity p{font-size:10px;margin:2px 0}.activity small{font-size:9px;color:var(--muted-2)}input,select,textarea{border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--ink);outline:0}input,select{height:40px;padding:0 11px}textarea{padding:10px 11px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--forest-700);box-shadow:0 0 0 3px #24684c1a}input:disabled{background:var(--canvas);color:var(--muted)}input[type=date]{min-height:44px;height:44px;padding:0 12px;font-size:14px;font-variant-numeric:tabular-nums;color-scheme:light;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7;padding:4px;margin-left:4px}.date-field{display:block;position:relative}.date-field-native{position:absolute;left:12px;bottom:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.date-field-label{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;color:#44514a}.date-field-control{position:relative;display:flex;align-items:stretch;min-height:44px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.date-field-control.is-open,.date-field-control:focus-within{border-color:var(--forest-700);box-shadow:0 0 0 3px #24684c1f}.date-field-control.is-disabled{background:var(--canvas);opacity:.72}.date-field-trigger{flex:1;display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px}.date-field-trigger:disabled{cursor:not-allowed}.date-field-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:var(--forest-800);background:var(--forest-50);flex:0 0 auto}.date-field-value{flex:1;font-size:14px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.date-field-placeholder{flex:1;font-size:14px;font-weight:500;color:var(--muted)}.date-field-caret{display:grid;place-items:center;color:var(--muted);transform:rotate(90deg);transition:transform .16s ease}.date-field-caret.is-open{transform:rotate(-90deg);color:var(--forest-700)}.date-popover{position:fixed;z-index:120;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px #12231e24,0 2px 6px #12231e0f;animation:date-pop .14s ease-out}@keyframes date-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.date-popover-header{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:10px}.date-jump{flex:1;display:flex;align-items:center;gap:6px;min-width:0}.date-jump-field{flex:1;min-width:0;margin:0}.date-jump-field>span{display:none}.date-jump-field select{width:100%;height:32px;min-height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--forest-50);color:var(--forest-950);font-size:12px;font-weight:700;cursor:pointer}.date-jump-field select:focus{border-color:var(--forest-700);box-shadow:0 0 0 3px #24684c1a}.date-jump-year{flex:0 0 88px}.date-jump-year select{font-variant-numeric:tabular-nums;text-align:center}.date-nav{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--forest-800);cursor:pointer;flex:0 0 auto}.date-nav:hover:not(:disabled){background:var(--forest-50);border-color:var(--forest-100)}.date-nav:disabled{opacity:.35;cursor:not-allowed}.date-nav-prev{transform:rotate(180deg)}.date-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.date-weekdays span{text-align:center;font-size:10px;font-weight:750;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:4px 0}.date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-cell{aspect-ratio:1;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--ink);font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;cursor:pointer}.date-cell.is-empty{pointer-events:none}.date-cell:hover:not(:disabled):not(.is-selected){background:var(--forest-50);color:var(--forest-900)}.date-cell.is-today:not(.is-selected){box-shadow:inset 0 0 0 1.5px var(--forest-700);color:var(--forest-800)}.date-cell.is-selected{background:var(--forest-800);color:#fff;box-shadow:none}.date-cell.is-disabled,.date-cell:disabled{color:#b7c0ba;cursor:not-allowed;background:transparent}.date-popover-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.date-field-compact .date-field-control{min-height:38px}.date-field-compact .date-field-trigger{min-height:38px;padding:0 10px}.date-field-compact .date-field-icon{width:24px;height:24px;border-radius:6px}.date-field-compact .date-field-value,.date-field-compact .date-field-placeholder{font-size:12px}.meter-rows{display:grid;gap:14px}.meter-input-table{width:100%;min-width:720px;border-collapse:collapse}.meter-input-table th{height:48px;padding:10px 14px;background:#f2f4f1;border-bottom:1px solid var(--line-strong);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#536058;text-align:left}.meter-input-table td{height:auto;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.meter-input-table input{width:100%;min-height:44px;height:44px;padding:0 14px;font-size:14px}.meter-input-table input.number{text-align:right;font-variant-numeric:tabular-nums}.meter-input-table .date-field{margin:0;min-width:220px}.meter-rows-actions{display:flex;justify-content:flex-start;gap:10px}.card-header-note{margin:4px 0 0;font-size:12px;color:var(--muted);font-weight:500}label>span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;color:#44514a}label>small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.4;font-weight:500;text-transform:none;letter-spacing:0}.form-grid{display:grid;gap:15px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .span-2{grid-column:1 / -1}.form-grid input,.form-grid select{width:100%}.addon-register-form .form-section+.form-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.form-section-title{margin:0 0 10px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.unit-picker{display:grid;gap:8px}.unit-picker-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.unit-picker-search{min-width:0;width:100%;height:38px}.unit-picker-towers{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.unit-picker-tower{min-height:28px;padding:3px 9px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--muted);font-size:10px;white-space:nowrap;cursor:pointer}.unit-picker-tower.active{border-color:var(--forest-700);background:var(--forest-50);color:var(--forest-900);font-weight:650}.unit-picker-hint{margin:0;padding:10px 12px;border-radius:8px;font-size:11px;color:var(--muted);background:var(--canvas)}.unit-picker-footnote{margin:0;font-size:10px;color:var(--muted-2)}.unit-picker-panel{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.unit-picker-table{width:100%;font-size:12px}.unit-picker-table th,.unit-picker-table td{height:auto;min-height:32px;padding:6px 10px}.unit-picker-table td.col-code{width:22%;white-space:nowrap}.unit-picker-table td.col-tower{width:24%;color:var(--muted);font-size:11px;white-space:nowrap}.unit-picker-table td.col-resident{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-picker-table tbody tr{cursor:pointer}.unit-picker-table tbody tr:hover,.unit-picker-table tbody tr.selected{background:var(--forest-50)}.unit-picker-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--forest-200, #b8d4c8);border-radius:10px;background:var(--forest-50)}.unit-picker-chip-body{flex:1;min-width:0;display:grid;gap:2px}.unit-picker-chip-code{font-size:14px;font-weight:700;color:var(--forest-900)}.unit-picker-chip-name{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-picker-chip-action{border:0;background:transparent;color:var(--forest-800);font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap}.unit-picker-clear{border:0;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.field-search{min-width:260px;height:39px;display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid var(--line-strong);border-radius:8px;color:var(--muted);background:#fff}.field-search input{width:100%;height:36px;border:0;padding:0;box-shadow:none}.field-search input:focus{box-shadow:none}.table-card{overflow:hidden}.table-toolbar{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line)}.table-toolbar h2{font-size:17px;margin-bottom:4px}.table-toolbar p{font-size:10px;margin:0}.toolbar-filters{display:flex;gap:8px}.toolbar-filters select,.table-toolbar>select{font-size:11px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{height:43px;padding:8px 13px;color:#536058;background:#f2f4f1;border-bottom:1px solid var(--line-strong);font-size:9px;text-align:left;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}td{height:57px;padding:9px 13px;border-bottom:1px solid var(--line);font-size:11px;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--gold-50)}.featured-row{background:#fbf8ef}.number{text-align:right;font-variant-numeric:tabular-nums}.cell-note{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:4px}.table-link{border:0;padding:0;background:transparent;color:var(--forest-800);font-weight:800;cursor:pointer}.linkish,.table-link{border:0;padding:0;background:transparent;color:var(--forest-800);font-weight:800;cursor:pointer;text-align:left}.linkish:hover,.table-link:hover{text-decoration:underline}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--gold-50)}tbody tr.clickable:focus-visible{outline:2px solid var(--forest-700);outline-offset:-2px}.table-empty td,.reference-empty td{height:120px;text-align:center;color:var(--muted);font-size:12px;vertical-align:middle}.ops-table{width:100%}.ops-table.compact th{height:auto;min-height:34px;padding:6px 10px}.ops-table.compact td{height:auto;min-height:38px;padding:6px 10px;line-height:1.35}.ops-table.compact .cell-note{margin-top:1px;font-size:8px}.ops-table.compact .cell-inline{color:var(--muted);font-size:9px;font-weight:650}.ops-table.compact .cell-sep{margin:0 5px;color:var(--muted-2);font-weight:400}.ops-table.compact .unit-chip{padding:2px 6px;font-size:9px}.ops-table.compact .badge{padding:3px 7px;font-size:9px}.ops-table.compact .table-actions-compact .button{min-height:28px;padding:3px 7px;font-size:9px}.table-card.compact-toolbar .table-toolbar{min-height:52px;padding:10px 14px}.ops-table th.col-actions,.ops-table td.col-actions{width:1%;white-space:nowrap;text-align:left;vertical-align:middle}.ops-table td.col-actions .table-actions{display:inline-flex;justify-content:flex-start;flex-wrap:nowrap;vertical-align:middle}.ops-table th.col-money,.ops-table td.col-money,.ops-table th.col-date,.ops-table td.col-date,.ops-table th.col-status,.ops-table td.col-status,.ops-table th.col-ref,.ops-table td.col-ref,.ops-table th.col-unit,.ops-table td.col-unit,.ops-table th.col-type,.ops-table td.col-type,.ops-table th.col-area,.ops-table td.col-area,.ops-table th.col-power,.ops-table td.col-power{white-space:nowrap}.ops-table td.cell-stack{white-space:normal;line-height:1.35}.ops-table .cell-stack>:first-child{display:block}.ops-table td.col-payer,.ops-table td.col-resident,.ops-table td.col-people,.ops-table td.col-owner,.ops-table td.col-note,.ops-table td.col-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-table td.col-people.cell-stack,.ops-table td.col-name.cell-stack{max-width:240px;white-space:normal;overflow:hidden}.ops-table td.col-people.cell-stack>:first-child,.ops-table td.col-name.cell-stack>:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payments-table td.col-invoice{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-hint{margin:0 0 14px;color:var(--muted);font-size:12px;line-height:1.5}.sidebar-logout{display:flex;align-items:center;justify-content:center;gap:6px;width:calc(100% - 16px);margin:0 8px 12px;padding:9px 12px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#ffffff0f;color:#fff;font-size:11px;font-weight:700;cursor:pointer}.sidebar-logout:hover{background:#ffffff1f}.unit-chip{display:inline-block;padding:4px 6px;border-radius:5px;background:var(--canvas);border:1px solid var(--line);font-family:var(--font-mono);font-size:10px}.table-footer{min-height:55px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 16px;color:var(--muted);font-size:10px;border-top:1px solid var(--line)}.table-footer>div{display:flex;gap:4px}.table-footer button{height:30px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:9px}.table-footer button.active{color:#fff;background:var(--forest-800)}.table-footer .footer-size{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.table-footer select{height:30px;width:auto;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:10px}.tabs{display:flex;gap:5px;padding:4px;border-radius:9px;background:var(--canvas);overflow-x:auto}.tabs button{height:31px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:10px;white-space:nowrap;cursor:pointer}.tabs button.active{color:#fff;background:var(--forest-800)}.table-actions{display:flex;gap:5px;align-items:center}.table-actions .button{min-height:32px;padding:5px 9px;font-size:10px}.table-actions-compact{flex-wrap:nowrap;gap:4px}.table-actions-compact .button{min-height:30px;padding:4px 8px;font-size:10px}.tariffs-table{table-layout:fixed;width:100%}.tariffs-table col.col-komponen{width:32%}.tariffs-table col.col-perhitungan{width:28%}.tariffs-table col.col-effective{width:16%}.tariffs-table col.col-status{width:10%}.tariffs-table col.col-actions{width:14%}.tariff-cell-group{display:inline-flex;align-items:center;gap:10px;max-width:100%;vertical-align:middle}.tariff-cell-group-primary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tariff-cell-group-formula{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--muted)}.tariff-cell-group-amount{flex-shrink:0;font-variant-numeric:tabular-nums;white-space:nowrap}.tariffs-table td.col-effective{font-size:10px;white-space:nowrap}.insurance-table{table-layout:fixed}.insurance-table td.col-actions .table-actions{flex-wrap:nowrap}.btn-icon,.btn-icon-danger{width:32px;height:32px;display:inline-grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--forest-800);font-size:15px;line-height:1;cursor:pointer}.btn-icon:hover{background:var(--forest-50)}.btn-icon-danger{color:var(--red-700);font-size:20px}.btn-icon-danger:hover{background:var(--red-50)}.reference-data-card .reference-toolbar{flex-wrap:wrap;gap:12px 20px}.reference-toolbar-meta{display:flex;align-items:center;gap:10px;margin-left:auto}.reference-toolbar-note{color:var(--muted);font-size:10px;white-space:nowrap}.reference-tabs{flex:1;min-width:min(100%,420px);max-width:480px}.reference-tabs button{flex:1;min-width:0;font-size:11px;font-weight:700}.reference-table{table-layout:fixed}.reference-table .col-id{width:132px}.reference-table .col-name{width:34%}.reference-table .col-detail{width:auto}.reference-table .col-actions{width:156px}.reference-table th.col-actions,.reference-table td.col-actions{text-align:right}.reference-table td.col-actions .table-actions{justify-content:flex-end}.reference-table .col-id,.reference-table th.col-id{text-align:left}.reference-id{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:5px 10px;border-radius:7px;border:1px solid var(--line);background:var(--canvas);color:var(--forest-900);font-family:var(--font-mono);font-size:11px;font-weight:800;letter-spacing:.02em}.reference-id.is-number{justify-content:flex-end;min-width:88px;font-variant-numeric:tabular-nums}.reference-table td.col-name strong{display:block;font-size:12px;font-weight:750}.reference-detail{display:block;color:var(--muted);font-size:11px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-empty td{height:120px;text-align:center;color:var(--muted);font-size:12px}.reference-footer{justify-content:space-between;gap:16px}.reference-footer-hint{color:var(--muted-2);font-size:10px}.text-danger{color:var(--red-700);font-weight:700}.text-warning{color:var(--gold-600);font-weight:700}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#04120d8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:min(560px,100%);max-height:92vh;overflow-y:auto;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);animation:modal-in .18s ease-out}.modal-large{width:min(900px,100%)}.modal>header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.modal-body{padding:20px}.modal-body>label input,.modal-body>label textarea{width:100%}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:15px 20px;border-top:1px solid var(--line)}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.985)}}.toast{position:fixed;right:22px;bottom:22px;z-index:200;display:flex;align-items:center;gap:10px;max-width:420px;padding:12px 15px;color:#fff;background:var(--forest-950);border-radius:10px;box-shadow:var(--shadow);font-size:11px;animation:toast-in .2s ease-out}.toast>span{width:24px;height:24px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;color:var(--forest-950);background:#bce1c9}.toast-warning{background:#5c4318}.toast-warning>span{background:#f0d9a0;color:#5c4318}.toast-info{background:var(--forest-900)}.toast-info>span{background:#d5e8dc}.toast-error{background:#7a1f1f}.toast-error>span:first-child{background:#f6d1d1;color:#7a1f1f}.toast>.toast-message{width:auto;height:auto;display:block;flex:1 1 auto;border-radius:0;color:inherit;background:none;font-size:13px;line-height:1.45}.toast-close{flex:0 0 auto;width:28px;height:28px;border:0;border-radius:6px;color:inherit;background:transparent;font-size:18px;line-height:1;cursor:pointer;opacity:.75}.toast-close:hover,.toast-close:focus-visible{opacity:1;background:#ffffff1f}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.period-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.period-list{overflow:hidden}.period-list>button{width:calc(100% - 20px);display:grid;grid-template-columns:1fr auto;align-items:start;gap:8px;margin:10px;padding:13px;text-align:left;border:1px solid transparent;border-radius:9px;background:var(--surface-soft);cursor:pointer}.period-list>button.active{border-color:var(--forest-700);background:var(--forest-50)}.period-list button strong,.period-list button span,.period-list button small{display:block}.period-list button strong{font-size:13px}.period-list button span{color:var(--muted);font-size:10px;margin:5px 0}.period-list button small{color:var(--muted-2);font-size:9px}.period-detail{display:grid;gap:20px}.period-hero{border-top:4px solid var(--forest-700);overflow:hidden}.period-hero-top{display:flex;justify-content:space-between;gap:20px;padding:24px}.period-hero-top h2{font-size:34px;margin-bottom:6px}.period-hero-top p{font-size:12px;margin:0}.projected{text-align:right}.projected span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.projected strong{display:block;font-size:18px;margin-top:8px;overflow-wrap:anywhere}.steps{display:flex;justify-content:space-between;padding:20px 25px 23px;border-top:1px solid var(--line);overflow-x:auto}.step{position:relative;min-width:90px;flex:1;text-align:center;color:var(--muted-2)}.step:not(:last-child):after{content:"";position:absolute;z-index:0;top:13px;left:60%;right:-40%;height:2px;background:var(--line)}.step.done:not(:last-child):after{background:var(--forest-700)}.step>span{position:relative;z-index:1;width:27px;height:27px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#e7eae8;font-size:10px}.step.done>span{color:#fff;background:var(--forest-700)}.step.current>span{color:var(--forest-800);background:var(--gold-100);box-shadow:0 0 0 4px var(--gold-50)}.step small{display:block;font-size:8px;margin-top:8px;white-space:nowrap}.step.current small{color:var(--ink);font-weight:800}.period-cards{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.validation-card{padding-bottom:15px}.check-row{display:flex;justify-content:space-between;padding:13px 20px;margin:10px 15px 0;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;font-size:11px}.check-row.warning{color:#81520b;border-color:var(--gold-100);background:var(--gold-50)}.check-row.failed-unit{align-items:flex-start}.check-row.failed-unit span{display:block;font-weight:750}.check-row.failed-unit small{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:500;white-space:normal}.failed-unit-more{margin:8px 15px 0;font-size:11px;color:var(--muted);font-weight:500}.validation-card>.button{width:calc(100% - 30px);margin:16px 15px 0}.action-panel{padding-bottom:14px}.action-panel>button{min-height:58px}.action-panel>button.disabled{opacity:.43;cursor:not-allowed}.back-link{display:inline-flex;align-items:center;gap:7px;margin-bottom:18px;border:0;background:transparent;color:var(--forest-800);font-size:11px;font-weight:750;cursor:pointer}.upload-card{min-height:112px;display:flex;align-items:center;gap:16px;padding:20px;margin-bottom:18px;border:2px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer}.upload-card:hover{border-color:var(--forest-700)}.upload-card.uploaded{border-style:solid;border-color:#bfd6c7}.upload-card>span{width:50px;height:50px;display:grid;place-items:center;border-radius:12px;color:var(--forest-800);background:var(--forest-50)}.upload-card>div{flex:1}.upload-card strong{font-size:14px}.upload-card p{font-size:11px;margin:5px 0 0}.status-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:18px}.mini-metric{position:relative;min-width:0;min-height:88px;padding:13px;text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;overflow:hidden}.mini-metric.selected{box-shadow:0 0 0 2px var(--forest-700)}.mini-metric span,.mini-metric strong{display:block}.mini-metric span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.mini-metric strong{font-size:clamp(18px,5vw,26px);margin-top:9px;line-height:1.1;overflow-wrap:anywhere}.mini-metric i{position:absolute;inset:auto 0 0;height:3px}.tone-error{background:var(--red-700)}.tone-duplicate{background:var(--purple-700)}.tone-unchanged{background:var(--line-strong)}.meter-preview-table{min-width:1320px;table-layout:fixed}.meter-preview-table col.c-excel{width:92px}.meter-preview-table col.c-unit{width:150px}.meter-preview-table col.c-meter{width:90px}.meter-preview-table col.c-num{width:110px}.meter-preview-table col.c-source{width:150px}.meter-preview-table col.c-status{width:120px}.meter-preview-table col.c-msg{width:auto}.meter-preview-table col.c-action{width:120px}.meter-preview-table th,.meter-preview-table td{padding:12px 14px}.meter-preview-table th{height:48px;font-size:10px}.meter-preview-table td{height:64px;font-size:13px}.meter-preview-table input{width:100%;min-width:0;min-height:42px;height:42px;padding:0 12px;font-size:14px}.meter-preview-table input.number{text-align:right;font-variant-numeric:tabular-nums}.meter-preview-table tr.row-needs-fix td{background:var(--red-50)}.meter-preview-table .meter-msg-cell{white-space:normal;line-height:1.45;overflow-wrap:anywhere}.skipped-units{margin-top:12px;padding:12px;border:1px solid #eed7a8;border-radius:8px;background:var(--gold-50)}.skipped-units strong{display:block;font-size:12px;margin-bottom:8px}.skipped-units ul{margin:0;padding-left:18px;font-size:12px;line-height:1.45}.skipped-units p{margin:8px 0 0;font-size:11px}.skipped-units-preview{margin:8px 0 0;padding-left:18px;font-size:11px;line-height:1.45}.sticky-actions{position:sticky;bottom:0;min-height:68px;display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:12px 16px;background:#fffffff2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sticky-actions>div{display:flex;align-items:center;gap:8px;margin-right:auto;font-size:10px;color:var(--red-700)}.meter-import-page{width:100%}.meter-import-page .page-header>div:first-child{max-width:none}.meter-import-page .card+.card{margin-top:18px}.meter-import-page .meter-step-body{padding:4px 24px 24px;gap:18px}.meter-import-page .meter-step-body.two{grid-template-columns:minmax(280px,1.5fr) minmax(200px,.7fr);align-items:end}.meter-import-page input[type=file]{min-height:48px;padding:10px 12px;font-size:13px}.meter-import-page .meter-type-tabs{gap:8px;margin:4px 24px 16px;padding:6px}.meter-import-page .meter-type-tabs button{height:40px;padding:0 16px;font-size:13px}.meter-import-page .meter-fail-callout{margin:0 24px 18px}.meter-import-page .status-metrics{gap:12px;margin:0 24px 20px;padding:0;overflow-x:auto;grid-template-columns:repeat(6,minmax(148px,1fr))}.meter-import-page .mini-metric{min-height:100px;padding:16px}.meter-import-page .mini-metric span{font-size:10px;line-height:1.35}.meter-import-page .mini-metric strong{font-size:28px;margin-top:12px}.meter-import-page .table-scroll{padding:0 8px}.meter-import-page .table-footer{padding:14px 24px;font-size:12px}.meter-import-page .table-footer button{height:36px;padding:0 12px;font-size:12px}.meter-import-page .sticky-actions{min-height:76px;padding:14px 24px;gap:12px}.meter-import-page .sticky-actions>div{font-size:13px}.meter-import-page .meter-advanced-body{padding:8px 24px 24px}.meter-import-page .header-select{min-width:160px;height:46px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.component-recap{overflow:hidden}.recap-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 20px;border-bottom:1px solid var(--line)}.recap-row strong,.recap-row small{display:block}.recap-row strong{font-size:11px}.recap-row small{color:var(--muted);font-size:9px;margin-top:3px}.recap-row>span{font-size:11px}.recap-total{display:flex;justify-content:space-between;padding:15px 20px;background:var(--forest-50);color:var(--forest-900)}.exception-recap{padding-bottom:13px}.exception-recap>button{min-height:55px;margin-top:7px;grid-template-columns:auto 1fr auto auto}.exception-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;color:#fff}.exception-recap>button b{font-size:12px}.invoice-overview{display:grid;grid-template-columns:1fr 320px;gap:20px;margin-bottom:22px}.unit-summary .detail-grid{padding:20px}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.detail-grid span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.detail-grid strong{font-size:12px}.amount-summary{padding:22px;color:#fff;background:var(--forest-900);border:0}.amount-summary>span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#ffffffa6}.amount-summary>strong{display:block;font-family:var(--font-display);font-size:28px;margin:16px 0 8px;font-variant-numeric:tabular-nums}.amount-summary>small{color:#ffffffa6;font-size:10px}.amount-summary>div{margin-top:20px}.amount-summary .button{width:100%;color:#fff;border-color:#ffffff59;background:#ffffff14}.paper-invoice{width:100%;max-width:min(1120px,100%);min-width:0;margin:0 auto;background:#fff;border:1px solid var(--line-strong);box-shadow:var(--shadow-soft);overflow:hidden;border-radius:14px}.asi-invoice .invoice-brand{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px;border-bottom:1px solid var(--line-strong);background:linear-gradient(135deg,#f7faf7,#fff 55%,#eef6f1)}.invoice-brand{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 28px;border-bottom:1px solid var(--line-strong)}.logo-lockup{display:flex;align-items:center;gap:12px}.brand-logo-image{display:block;width:min(220px,42vw);height:auto;object-fit:contain}.asi-invoice .logo-lockup strong{font-family:var(--font-display);color:var(--forest-900);font-size:16px;letter-spacing:.01em}.asi-invoice .logo-lockup span{color:var(--muted);font-size:10px;text-transform:none;letter-spacing:0;margin-top:2px}.asi-invoice .invoice-brand h2{font-family:var(--font-display);font-size:34px;color:var(--forest-900);font-weight:700;letter-spacing:-.02em}.asi-invoice-table .section-row td{background:#e8f2ec;color:var(--forest-900);font-size:11px;letter-spacing:.04em;text-transform:uppercase;text-align:left;vertical-align:middle}.asi-invoice-table .indent-row td:first-child{padding-left:22px;color:#3f4a43}.asi-invoice-table .total-row td{font-weight:700;background:#fbfcfb}.asi-invoice .invoice-line-table{overflow-x:auto}.asi-invoice .invoice-line-table table.asi-invoice-table{width:100%;min-width:720px;table-layout:fixed;border-collapse:collapse}.asi-invoice-table col.c-item{width:26%}.asi-invoice-table col.c-note{width:24%}.asi-invoice-table col.c-usage{width:12%}.asi-invoice-table col.c-unit{width:10%}.asi-invoice-table col.c-rate,.asi-invoice-table col.c-total{width:14%}.asi-invoice-table th,.asi-invoice-table td{height:auto;min-height:32px;padding:7px 10px;vertical-align:middle;border-bottom:1px solid var(--line);word-wrap:break-word;overflow-wrap:anywhere}.asi-invoice-table thead th{background:#e8f2ec;color:var(--forest-900);font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line-strong)}.asi-invoice-table th.col-item,.asi-invoice-table td.col-item{text-align:left}.asi-invoice-table th.col-note,.asi-invoice-table td.col-note{text-align:left;color:#4b5563}.asi-invoice-table th.col-unit,.asi-invoice-table td.col-unit{text-align:center}.asi-invoice-table th.col-num,.asi-invoice-table td.col-num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.asi-invoice-table .section-row td{text-align:left;padding-left:10px}.invoice-secure-link{margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}.invoice-secure-link span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.invoice-secure-link a{color:var(--forest-800);font-size:10px;word-break:break-all;text-decoration:underline}.signature-line{margin-top:48px;padding-top:8px;border-top:1px solid var(--line-strong);width:160px;text-align:center;font-size:10px;color:var(--muted)}.receipt-logo{display:block}.receipt-logo .brand-logo-image{width:min(350px,48vw);margin-bottom:12px}.receipt-logo>span{color:var(--muted);font-size:10px;text-transform:none;letter-spacing:0}.logo-symbol{display:grid;place-items:center;width:46px;height:46px;border:2px solid var(--forest-700);border-radius:8px;color:var(--forest-800);font-weight:900}.logo-lockup strong,.logo-lockup span{display:block}.logo-lockup strong{color:var(--forest-800);font-size:20px;letter-spacing:.08em}.logo-lockup span{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.12em;margin-top:4px}.invoice-brand h2{font-size:27px;color:var(--forest-900)}.invoice-identity{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line-strong)}.identity-table{padding:16px 24px}.identity-table:first-child{border-right:1px solid var(--line-strong)}.identity-table>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px;padding:4px 0;font-size:10px;align-items:baseline}.identity-table span{color:var(--muted);text-align:left}.identity-table strong{font-weight:650;text-align:left;justify-self:start;overflow-wrap:anywhere}.invoice-line-table table{min-width:750px}.invoice-line-table th{background:var(--forest-50)}.invoice-line-table td{height:auto;font-size:10px}.invoice-line-table td small{display:block;color:var(--muted);margin-top:3px;font-size:8px}.invoice-meter-summary{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface-soft)}.invoice-meter-summary>div{padding:14px 20px;border-right:1px solid var(--line)}.invoice-meter-summary>div:last-child{border-right:0}.invoice-meter-summary span,.invoice-meter-summary strong,.invoice-meter-summary small{display:block}.invoice-meter-summary span{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.invoice-meter-summary strong{font-size:11px;margin:6px 0 3px}.invoice-meter-summary small{color:var(--muted);font-size:8px}.invoice-footer{display:grid;grid-template-columns:1fr 380px;min-height:250px}.invoice-note{padding:22px 26px;border-right:1px solid var(--line-strong);font-size:10px}.invoice-note strong{display:block;margin-bottom:10px;text-transform:uppercase;font-size:9px;letter-spacing:.08em}.invoice-note p{font-size:10px;margin:4px 0}.invoice-note b{color:var(--forest-900)}.invoice-note small{display:block;color:var(--muted);margin-top:12px}.invoice-totals{padding:18px 22px}.invoice-totals>div{display:flex;justify-content:space-between;gap:15px;padding:8px 0;font-size:10px;border-bottom:1px solid var(--line)}.invoice-totals .grand-total{padding:12px 0;color:var(--forest-900);font-size:13px;border-bottom:2px solid var(--forest-800)}.invoice-totals .paid-total{padding:10px 0 0;color:var(--forest-800);font-size:13px}.invoice-totals .paid-total strong{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--forest-100);color:var(--forest-800)}.invoice-totals p{font-size:9px;margin:16px 0 35px}.invoice-totals .signature-line{margin-top:28px;width:160px;padding-top:8px;border-top:1px solid var(--line-strong);font-size:9px;text-align:center;color:var(--muted)}.invoice-paid-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#e8f5ee;border-bottom:2px solid var(--forest-700);color:var(--forest-900)}.invoice-paid-banner strong{flex-shrink:0;padding:4px 10px;border-radius:6px;background:var(--forest-800);color:#fff;font-size:12px;letter-spacing:.06em}.invoice-paid-banner span{font-size:12px;line-height:1.4}.invoice-paid-note{color:var(--forest-900)}.invoice-security{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px;color:var(--muted);background:var(--canvas);border-top:1px solid var(--line);font-size:8px}.invoice-security.is-paid{color:var(--forest-800);background:#e8f5ee;font-weight:650}.insurance-layout{display:grid;grid-template-columns:1fr .85fr;gap:20px}.insurance-form{padding-bottom:20px}.insurance-form>.form-grid{padding:20px}.approval-gate{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 20px;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--canvas)}.approval-gate>div{display:flex;align-items:center;gap:11px}.approval-gate strong{display:block;font-size:11px}.approval-gate p{font-size:9px;margin:3px 0 0}.gate-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#e5e9e6;color:var(--muted)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin:18px 20px 0}.allocation-preview{min-height:530px;display:flex;flex-direction:column}.empty-state{text-align:center;padding:45px 25px 30px}.empty-state>span{width:62px;height:62px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;color:var(--muted);background:var(--canvas)}.empty-state h3{margin-bottom:6px}.empty-state p{max-width:330px;margin:auto;font-size:11px}.reconcile-box{margin:auto 20px 15px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.reconcile-box>div{display:flex;justify-content:space-between;padding:11px 13px;border-bottom:1px solid var(--line);font-size:10px}.reconcile-box>div:last-child{border-bottom:0}.coverage-note{display:flex;align-items:center;gap:8px;margin:0 20px 20px;padding:10px 12px;color:var(--forest-800);background:var(--forest-50);border-radius:8px;font-size:10px}.reports-layout{display:grid;grid-template-columns:330px 1fr;gap:20px}.collection-card{padding-bottom:18px}.donut-wrap{display:grid;place-items:center;padding:28px}.donut{width:160px;height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle at center,white 0 55%,transparent 56%),conic-gradient(var(--forest-700) 0 84.5%,var(--gold-100) 84.5% 100%)}.donut strong{font-size:24px}.donut span{color:var(--muted);font-size:10px;margin-top:4px}.reconcile-list{margin:0 20px}.reconcile-list>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:10px}.reconcile-list span{display:flex;align-items:center;gap:8px}.available-reports{overflow:hidden}.report-row{min-height:75px;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line)}.report-row:last-child{border-bottom:0}.report-row>span{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;color:var(--forest-800);background:var(--forest-50)}.report-row strong{font-size:11px}.report-row p{font-size:9px;margin:3px 0 0}.filter-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px;padding:18px;margin-bottom:20px}.filter-card.invoice-filter-card{grid-template-columns:repeat(4,minmax(0,1fr))}.filter-card.charges-filter-card{grid-template-columns:minmax(160px,.9fr) minmax(160px,.9fr) minmax(0,1.4fr)}.filter-card select{width:100%}.filter-card .field-search{min-width:0;width:100%}.audit-timeline{padding:5px 0}.audit-item{display:grid;grid-template-columns:38px 1fr auto;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line)}.audit-item:last-child{border-bottom:0}.timeline-marker{position:relative}.timeline-marker:after{content:"";position:absolute;top:34px;bottom:-31px;left:15px;width:1px;background:var(--line)}.audit-item:last-child .timeline-marker:after{display:none}.timeline-marker span{position:relative;z-index:1;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--forest-800);font-size:9px;font-weight:800}.audit-content>div{display:flex;align-items:center;gap:10px}.audit-time{color:var(--muted);font-size:9px}.audit-content h3{margin:9px 0 4px;font-size:13px}.audit-content p{font-size:10px;margin-bottom:6px}.audit-content small{color:var(--muted);font-size:9px}.access-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.person-cell{display:flex;align-items:center;gap:9px}.person-cell strong,.person-cell small{display:block}.person-cell small{color:var(--muted);font-size:9px;margin-top:3px}.permissions{overflow:hidden}.permission-row{min-height:46px;display:grid;grid-template-columns:1fr 65px 65px;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:10px}.permission-row.header{color:var(--muted);background:var(--canvas);text-transform:uppercase;font-size:8px;letter-spacing:.08em}.permission-row:last-child{border-bottom:0}.public-page{min-height:100vh;padding:25px clamp(16px,5vw,70px) 40px;background:#f6f5f1}.public-header{max-width:1180px;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 auto 24px;padding-bottom:16px;border-bottom:1px solid var(--line-strong)}.public-header .brand strong{color:var(--forest-900);font-size:20px}.public-header .brand span{color:var(--muted)}.public-header>div:last-child{display:flex;align-items:center;gap:10px}.public-hero{max-width:1180px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:20px;margin:0 auto 22px;padding:22px 26px;color:#fff;background:var(--forest-900);border-radius:14px}.public-hero h1{font-size:29px;margin:4px 0}.public-hero p{color:#ffffffa6;font-size:10px;margin:0}.public-hero>div:last-child{text-align:right}.public-hero>div:last-child span{color:#ffffffa6;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.public-hero>div:last-child strong{display:block;font-size:27px;margin:6px 0}.public-paper{max-width:1120px}.public-invoice-page{min-height:100vh;max-width:100%;overflow-x:hidden;overflow-x:clip;padding:24px 16px 48px;background:radial-gradient(circle at top left,rgba(31,77,58,.08),transparent 42%),linear-gradient(180deg,#fafaf9,#f4f7f5)}.public-paid-banner{width:100%;max-width:min(1120px,100%);margin:0 auto 12px;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--forest-700);border-radius:12px;background:#e8f5ee;color:var(--forest-900)}.public-paid-banner strong{flex-shrink:0;padding:5px 10px;border-radius:6px;background:var(--forest-800);color:#fff;font-size:12px;letter-spacing:.06em}.public-paid-banner span{font-size:13px;line-height:1.4}.public-invoice-toolbar{width:100%;max-width:min(1120px,100%);margin:0 auto 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.public-invoice-heading{min-width:0;flex:1 1 180px}.public-invoice-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;padding:0;min-height:44px}.public-invoice-toolbar .section-kicker{display:block;margin-bottom:2px}.public-invoice-toolbar strong{display:block;font-size:15px;color:var(--forest-900);overflow-wrap:anywhere}.public-invoice-status{display:block;margin-top:4px;font-style:normal;font-size:12px;font-weight:700;color:var(--muted)}.public-invoice-status.paid{color:var(--forest-800)}.public-invoice-actions{display:flex;gap:8px;flex-wrap:wrap}.public-invoice-error{max-width:min(1120px,100%);margin:0 auto 16px;padding:12px 14px;border:1px solid #e3b4ac;border-radius:10px;background:#fdf1ef;color:#8a2c1f;font-size:14px;line-height:1.5}.public-paper{min-width:0}.public-invoice-fit{width:100%;max-width:880px;margin:0 auto}.public-invoice-fit-inner{transform-origin:top left}.public-footer{max-width:1180px;display:flex;justify-content:space-between;gap:20px;margin:20px auto 0;color:var(--muted);font-size:9px}.public-footer span{display:flex;align-items:center;gap:6px}.invalid-link-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:#f6f5f1}.invalid-link-page>section{width:min(520px,100%);padding:38px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.invalid-link-page .brand-mark{margin:0 auto 24px}.invalid-link-page h1{font-size:30px}.invalid-link-page>section>p{font-size:12px;margin-bottom:24px}.invalid-link-page .callout{text-align:left}.public-lookup-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:#f6f5f1}.public-lookup-card{width:min(460px,100%);padding:38px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.public-lookup-card.has-results{width:min(520px,100%)}.public-lookup-card .brand-mark,.public-lookup-card .brand-logo-public{margin-bottom:18px}.brand-logo-public{width:min(280px,100%);height:auto;display:block}.public-lookup-card h1{font-size:28px;margin:8px 0 10px}.public-lookup-card>p{color:var(--muted);font-size:13px;margin-bottom:18px}.public-lookup-card form{display:grid;gap:14px}.public-lookup-card label span{display:block;margin-bottom:6px;font-size:12px;font-weight:700;color:var(--forest-900)}.public-lookup-card input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit}.public-lookup-results{display:grid;gap:12px}.public-lookup-unit-chip{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);font-size:12px;color:var(--muted)}.public-lookup-unit-chip strong{color:var(--forest-900);font-size:14px}.public-lookup-change{margin-left:auto;border:0;background:transparent;color:var(--forest-800);font-size:11px;font-weight:700;cursor:pointer}.public-lookup-period-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:min(52vh,420px);overflow:auto}.public-lookup-period-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;text-align:left;cursor:pointer}.public-lookup-period-item:hover{border-color:var(--forest-700);background:var(--forest-50)}.public-lookup-period-main{min-width:0;display:grid;gap:3px}.public-lookup-period-main strong{font-size:14px;color:var(--forest-900)}.public-lookup-period-meta{font-size:11px;color:var(--muted)}.public-lookup-pay-hint{margin:0;padding:10px 12px;border:1px solid #eed7a8;border-radius:10px;background:var(--gold-50);color:#5c4318;font-size:12px;line-height:1.45}.public-lookup-chip{display:inline-block;padding:2px 7px;border-radius:6px;background:var(--forest-100);color:var(--forest-900);font-size:10px;font-weight:700}.public-lookup-chip.muted{background:var(--surface-soft);color:var(--muted);font-weight:600}.public-lookup-period-item.has-arrears{border-color:#cbded2}.public-lookup-period-side{display:grid;justify-items:end;gap:5px;flex-shrink:0}.public-lookup-period-side strong{font-size:13px;color:var(--forest-900)}.public-lookup-hint{display:block;margin-top:14px;color:var(--muted);font-size:11px;line-height:1.5}.public-lookup-hint a{color:var(--forest-800);font-weight:700;text-decoration:underline}.receipt-page{min-height:100vh;padding:28px 20px 48px;background:linear-gradient(180deg,#eef3f0 0%,var(--canvas) 42%)}.receipt-actions{max-width:820px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 auto 22px}.receipt-actions .back-link{margin:0;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--forest-800);font-weight:700;font-size:13px;cursor:pointer}.receipt-actions .back-link .icon{transform:rotate(180deg)}.receipt-paper{position:relative;display:flex;flex-direction:column;width:9.5in;min-height:11in;max-width:100%;margin:auto;padding:0;background:#fff;border:1px solid var(--line-strong);box-shadow:0 18px 50px #112e221a;overflow:hidden;border-radius:4px}.asi-receipt .receipt-half{flex:0 0 5.5in;min-height:5.5in;max-height:5.5in;display:flex;flex-direction:column}.asi-receipt .receipt-accent{height:6px;background:var(--forest-900)}.asi-receipt .receipt-accent.gold{height:3px;background:var(--gold-500)}.asi-receipt .receipt-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:12px 28px 0}.asi-receipt .receipt-brand{display:flex;align-items:center;gap:12px}.asi-receipt .receipt-brand strong{display:block;font-family:var(--font-display);font-size:18px;color:var(--forest-900);letter-spacing:-.01em}.asi-receipt .receipt-brand span{display:block;margin-top:3px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.asi-receipt .receipt-doc-title{text-align:right}.asi-receipt .receipt-doc-title h1{margin:0;font-family:var(--font-display);font-size:26px;color:var(--forest-900);letter-spacing:.04em;text-transform:uppercase}.asi-receipt .receipt-doc-title p{margin:6px 0 0;font-size:12px;color:var(--muted)}.asi-receipt .receipt-doc-title strong{color:var(--ink)}.asi-receipt .receipt-intro{margin:10px 28px 4px;padding-top:10px;border-top:1px solid var(--line-strong);font-size:12px;color:#3f4a43}.asi-receipt .receipt-fields{padding:0 28px}.asi-receipt .receipt-fields>div{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:baseline;min-height:0;margin:0;padding:7px 0;border-bottom:1px solid #e8eeea}.asi-receipt .receipt-fields span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.asi-receipt .receipt-fields strong{font-size:14px;border-bottom:0;padding-bottom:0;font-weight:700}.asi-receipt .receipt-fields p{margin:0;border-bottom:0;padding-bottom:0;font-size:14px;color:#3f4a43}.asi-receipt .receipt-unit-meta{font-style:normal;font-weight:500;color:var(--muted)}.asi-receipt .receipt-amount-box{margin:12px 28px 0;padding:12px 16px;border:1px solid #cfe0d6;background:linear-gradient(135deg,#f3faf6,#eef6f1);border-radius:10px}.asi-receipt .receipt-amount-box>span{display:block;color:var(--forest-700);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.asi-receipt .receipt-amount-box>strong{display:block;margin-top:4px;font-family:var(--font-display);font-size:26px;color:var(--forest-900);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.asi-receipt .receipt-amount-box>em{display:block;margin-top:8px;font-size:13px;color:#3f4a43;font-style:italic;line-height:1.45;background:transparent;border:0;padding:0;border-radius:0}.asi-receipt .receipt-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 40px}.asi-receipt .receipt-meta-grid>div{padding:16px 18px;border:1px solid var(--line);background:var(--surface-soft);border-radius:10px}.asi-receipt .receipt-meta-grid .section-kicker{margin-bottom:8px}.asi-receipt .receipt-meta-grid strong{display:block;font-size:14px;margin-bottom:4px}.asi-receipt .receipt-meta-grid p{margin:0;font-size:13px;color:var(--ink)}.asi-receipt .receipt-meta-grid small{display:block;margin-top:6px;color:var(--muted);font-size:11px}.asi-receipt .receipt-sign{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end;min-height:0;margin-top:auto;padding:16px 28px 18px}.asi-receipt .receipt-sign>div:first-child{display:grid;place-items:center}.asi-receipt .stamp{width:72px;height:72px;display:grid;place-items:center;margin:0;color:#24684c73;border:3px double rgba(36,104,76,.45);border-radius:50%;transform:rotate(-12deg);font-weight:900;font-size:12px;letter-spacing:.08em}.asi-receipt .receipt-sign>div:last-child{text-align:center;padding:0 12px 4px}.asi-receipt .receipt-sign>div:last-child p{margin:0 0 4px;font-size:12px;color:var(--ink)}.asi-receipt .receipt-sign>div:last-child>span{display:block;color:var(--muted);font-size:10px;margin-bottom:28px}.asi-receipt .receipt-sign>div:last-child strong{display:inline-block;min-width:180px;padding-top:8px;border-top:1px solid var(--line-strong);font-size:14px}.asi-receipt .receipt-sign>div:last-child strong span{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:600;text-transform:none;letter-spacing:0}.asi-receipt>footer{margin:36px 40px 0;padding-top:16px;border-top:1px solid var(--line-strong);color:var(--muted-2);text-align:center;font-size:10px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:#f5f4ef}.login-brand{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,8vw,120px);color:#fff;background:var(--forest-950);overflow:hidden}.login-brand:after{content:"";position:absolute;width:430px;height:430px;right:-130px;bottom:-160px;border:80px solid rgba(216,148,32,.12);border-radius:50%}.login-brand>span{margin:20px 0 40px;color:#efba57;font-size:11px;text-transform:uppercase;letter-spacing:.17em}.login-brand h1{max-width:650px;font-family:var(--font-display);font-size:clamp(38px,5vw,66px);line-height:1.02;font-weight:700;letter-spacing:-.025em}.login-brand p{max-width:560px;color:#ffffffab;font-size:14px}.login-feature{display:flex;align-items:center;gap:9px;margin-top:35px;font-size:11px;color:#ffffffb8}.login-feature .icon{color:#efba57}.login-card{width:min(420px,calc(100% - 40px));margin:auto;padding:30px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.login-card .brand{margin-bottom:38px}.login-card .brand strong{color:var(--forest-900)}.login-card .brand span{color:var(--muted)}.login-card h2{font-family:var(--font-display);font-size:25px;margin:5px 0 7px;font-weight:700;letter-spacing:-.02em}.login-card p{font-size:11px}.login-card form{margin-top:24px}.login-card form>label{display:block;margin-top:15px}.login-card input{width:100%}.login-options{display:flex;align-items:center;justify-content:space-between;margin:13px 0 22px;font-size:10px}.login-options label{display:flex;align-items:center;gap:6px}.login-options label input{width:14px;height:14px}.login-options button{border:0;background:transparent;color:var(--forest-700);font-size:10px}.login-card>small{display:block;text-align:center;margin-top:18px;color:var(--muted);font-size:9px}.not-found{padding:80px 20px;text-align:center}@media (max-width: 1180px){.metric-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.status-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.meter-import-page .status-metrics{grid-template-columns:repeat(3,minmax(160px,1fr))}.dashboard-grid{grid-template-columns:1fr}.chart-card{grid-row:auto}.period-cards,.insurance-layout,.access-grid{grid-template-columns:1fr}.allocation-preview{min-height:420px}}@media (max-width: 920px){:root{--sidebar-width: 250px}.sidebar{transform:translate(-100%);transition:transform .2s ease}.sidebar-open{transform:translate(0);box-shadow:20px 0 50px #00000040}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#0617117a}.mobile-close,.menu-button{display:inline-grid!important}.app-main{margin-left:0}.topbar{padding:0 20px}.content{padding:30px 24px 60px}.period-layout{grid-template-columns:1fr}.period-list{display:grid;grid-template-columns:repeat(3,1fr)}.period-list .card-header{grid-column:1 / -1}.period-list>button{width:auto;margin:8px}.reports-layout{grid-template-columns:1fr}.collection-card{display:grid;grid-template-columns:1fr 1fr}.collection-card .card-header{grid-column:1 / -1}.reconcile-list{align-self:center}.filter-card,.filter-card.invoice-filter-card,.filter-card.charges-filter-card{grid-template-columns:1fr 1fr}.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-card{margin:50px auto}}@media (max-width: 720px){.topbar{height:62px;padding:0 13px;gap:9px}.global-search{flex:1;width:auto}.global-search input{font-size:11px}.demo-label,.role-chip>span{display:none}.content{padding:24px 15px 50px}.page-header{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:20px}.page-header h1{font-size:30px}.header-actions{justify-content:flex-start;width:100%}.header-actions .button{flex:1}.callout{align-items:flex-start;flex-wrap:wrap}.callout .button{width:100%}.metric-grid.three,.metric-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:126px;padding:15px}.dashboard-grid{gap:14px}.chart-card{min-height:430px}.bars{height:310px;gap:15px;padding:20px 20px 15px}.table-toolbar{align-items:stretch;flex-direction:column}.field-search{min-width:0;width:100%}.toolbar-filters{width:100%}.toolbar-filters select{flex:1;min-width:0}.table-footer{align-items:flex-start;flex-direction:column}.form-grid.three,.form-grid.two,.unit-picker-toolbar{grid-template-columns:1fr}.unit-picker-towers{justify-content:flex-start}.period-list{grid-template-columns:1fr}.period-hero-top{flex-direction:column}.projected{text-align:left}.steps{justify-content:flex-start}.step{min-width:90px}.status-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sticky-actions{flex-wrap:wrap;position:static}.sticky-actions>div{width:100%;margin:0}.sticky-actions .button{flex:1}.review-grid,.invoice-overview{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.content .invoice-brand{padding:16px}.content .logo-lockup strong{font-size:15px}.content .invoice-brand h2{font-size:20px}.content .invoice-identity{grid-template-columns:1fr}.content .identity-table:first-child{border-right:0;border-bottom:1px solid var(--line)}.content .identity-table>div{grid-template-columns:110px 1fr}.invoice-meter-summary{grid-template-columns:1fr}.invoice-meter-summary>div{border-right:0;border-bottom:1px solid var(--line)}.content .invoice-footer{grid-template-columns:1fr}.content .invoice-note{border-right:0;border-bottom:1px solid var(--line)}.reports-layout{gap:14px}.collection-card{display:block}.report-row{grid-template-columns:auto 1fr auto}.report-row .button-ghost{display:none}.filter-card,.filter-card.invoice-filter-card,.filter-card.charges-filter-card{grid-template-columns:1fr}.audit-item{grid-template-columns:30px 1fr;padding:15px}.audit-item>.button{grid-column:2;justify-self:start}.permission-row{grid-template-columns:1fr 55px 55px}.public-page{padding:15px 10px 25px}.public-header{flex-direction:column;align-items:flex-start}.public-header>div:last-child{width:100%;justify-content:space-between}.public-hero{grid-template-columns:1fr}.public-hero>div:last-child{text-align:left}.public-footer{flex-direction:column}.receipt-page{padding:10px;background:var(--canvas)}.receipt-paper{min-height:0}.asi-receipt .receipt-header{flex-direction:column;padding:22px 22px 0}.asi-receipt .receipt-doc-title{text-align:left}.asi-receipt .receipt-doc-title h1{font-size:28px}.asi-receipt .receipt-intro,.asi-receipt .receipt-fields,.asi-receipt .receipt-amount-box,.asi-receipt .receipt-meta-grid,.asi-receipt .receipt-sign,.asi-receipt>footer{margin-left:22px;margin-right:22px;padding-left:0;padding-right:0}.asi-receipt .receipt-fields{padding-top:0}.asi-receipt .receipt-fields>div{grid-template-columns:1fr;gap:6px}.asi-receipt .receipt-meta-grid,.asi-receipt .receipt-sign{grid-template-columns:1fr}.asi-receipt .receipt-amount-box>strong{font-size:26px}.receipt-actions .back-link{font-size:0}.receipt-actions .back-link .icon{width:22px}}@media screen and (max-width: 920px){.public-invoice-page{padding:0 0 max(28px,env(safe-area-inset-bottom));overflow-x:hidden}.public-invoice-toolbar{position:sticky;top:0;z-index:8;margin:0;max-width:none;padding:14px 20px 14px max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));background:#fafaf9f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.public-invoice-actions{width:100%}.public-invoice-actions .button{flex:1;min-height:44px}.public-invoice-fit{overflow:hidden;width:auto;max-width:none;margin:18px max(20px,env(safe-area-inset-right)) 32px max(20px,env(safe-area-inset-left))}.public-invoice-fit-inner{transform-origin:top left}.public-invoice-fit .public-paper{max-width:none;width:100%;margin:0;border-radius:14px;box-shadow:0 10px 28px #112e221a}}@media (max-width: 440px){.metric-grid.three,.metric-grid.four{grid-template-columns:1fr}.metric{min-height:115px}.role-chip{padding-left:4px;border:0}.notification{display:none}.reference-toolbar-meta{width:100%;justify-content:space-between}.reference-toolbar-note{white-space:normal}.reference-table .col-id{width:108px}.reference-table .col-actions{width:132px}.reference-footer{align-items:flex-start;flex-direction:column}.tabs{width:100%}.tabs button{flex:1}.detail-grid{grid-template-columns:1fr}.period-hero-top h2{font-size:28px}.status-metrics{grid-template-columns:1fr 1fr}}.bulk-print-toolbar{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--canvas);border-bottom:1px solid var(--line)}.bulk-print-loading{padding:60px 20px;text-align:center}.bulk-print-page{break-after:page}@media print{@page{size:9.5in 11in;margin:8mm 10mm}@page receipt-sheet{size:9.5in 11in;margin:8mm 10mm}body{background:#fff}.sidebar,.topbar,.page-header,.back-link,.invoice-overview,.invoice-admin-actions,.draft-line-editor,.version-history,.public-header,.public-hero,.public-footer,.public-invoice-toolbar,.no-print,.receipt-actions,.toast{display:none!important}.app-main,.public-invoice-page{margin:0;padding:0;background:#fff}.content,.public-page,.receipt-page,.public-invoice-page{max-width:none;padding:0;margin:0}.public-invoice-fit,.public-invoice-fit-inner{height:auto!important;width:auto!important;overflow:visible;margin:0;transform:none!important}.paper-invoice{width:100%;max-width:none;border:0;box-shadow:none;overflow:visible;border-radius:0}.brand-logo-image{width:150px}.invoice-brand{min-height:0;padding:8px 12px}.logo-symbol{width:32px;height:32px}.logo-lockup strong{font-size:14px}.invoice-brand h2{font-size:22px}.identity-table{padding:8px 12px}.identity-table>div{padding:2px 0;font-size:11px;grid-template-columns:108px minmax(0,1fr)}.identity-table strong.mono{white-space:nowrap;font-size:11px;overflow-wrap:normal}.invoice-line-table,.asi-invoice .invoice-line-table{overflow:visible}.invoice-line-table table,.asi-invoice .invoice-line-table table.asi-invoice-table{min-width:0!important;width:100%;table-layout:fixed}.asi-invoice-table col.c-item{width:20%}.asi-invoice-table col.c-note{width:24%}.asi-invoice-table col.c-usage{width:12%}.asi-invoice-table col.c-unit{width:8%}.asi-invoice-table col.c-rate{width:16%}.asi-invoice-table col.c-total{width:20%}.asi-invoice-table th,.asi-invoice-table td{min-height:0;height:auto;padding:4px 6px;font-size:11px;vertical-align:middle}.asi-invoice-table thead th{font-size:9px;letter-spacing:.02em}.invoice-line-table th{height:auto;padding:4px 6px;font-size:9px}.invoice-line-table td{height:auto;padding:4px 6px;font-size:11px}.asi-invoice-table th.col-num,.asi-invoice-table td.col-num{white-space:nowrap;font-size:10px}.invoice-meter-summary>div{padding:7px 10px}.invoice-footer{min-height:0;grid-template-columns:1fr 260px}.invoice-note,.invoice-totals{padding:8px 12px}.invoice-totals>div{padding:4px 0;font-size:11px}.invoice-totals .grand-total{font-size:13px}.invoice-totals p{margin:8px 0 16px}.invoice-security{font-size:8px}.invoice-secure-link small{font-size:8px;word-break:break-all}.receipt-page{height:auto}.receipt-paper{page:receipt-sheet;width:auto;max-width:none;min-height:0;height:auto;border:0;box-shadow:none;border-radius:0;padding:0}.asi-receipt .receipt-half{flex:none;min-height:0;height:4.85in;max-height:4.85in;overflow:hidden}.asi-receipt .receipt-header{padding:8px 16px 0}.asi-receipt .receipt-intro,.asi-receipt .receipt-fields,.asi-receipt .receipt-amount-box,.asi-receipt .receipt-sign{margin-left:16px;margin-right:16px}.asi-receipt .receipt-fields{padding-left:0;padding-right:0}.asi-receipt .receipt-sign{padding:10px 0 8px}.asi-receipt .receipt-amount-box,.asi-receipt .receipt-sign{break-inside:avoid}}.app-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--canvas);color:var(--forest-900)}.sidebar-user-button{width:100%;color:#fff;background:transparent;border:0;text-align:left;cursor:pointer}.sidebar-user-button:hover{background:#ffffff0f;border-radius:10px}.role-chip-button{background:transparent;border-top:0;border-right:0;border-bottom:0;cursor:pointer}.popover-anchor{position:relative}.topbar-popover{position:absolute;top:calc(100% + 10px);right:0;width:240px;padding:14px;z-index:80;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 18px 45px #132d2229}.topbar-popover strong,.topbar-popover small{display:block}.topbar-popover small{color:var(--muted);margin-top:3px}.topbar-popover p{font-size:11px;margin:8px 0}.topbar-popover button{width:100%;display:flex;align-items:center;gap:7px;padding:9px;margin-top:9px;color:var(--forest-800);background:var(--forest-50);border:0;border-radius:8px;font-weight:700;cursor:pointer}.form-error{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;margin-bottom:14px;color:var(--red-700);background:var(--red-50);border:1px solid var(--red-100);border-radius:8px;font-size:11px}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}button.upload-card{width:100%;color:inherit;text-align:left}.access-denied{max-width:560px;margin:12vh auto;padding:35px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.access-denied .icon{color:var(--gold-600)}.audit-preview,.audit-json,.proof-preview{padding:16px;background:var(--canvas);border:1px solid var(--line);border-radius:10px}.audit-preview{margin-top:18px}.audit-preview p{margin-bottom:0;font-size:11px}.audit-json>div{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:11px}.audit-json>div span{color:var(--muted)}.audit-json pre{padding:12px;margin:14px 0 0;overflow:auto;color:var(--forest-100);background:var(--forest-950);border-radius:8px;font-size:10px}.stop-bike-form{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.proof-preview{display:grid;place-items:center;min-height:210px;text-align:center}.proof-preview .icon{color:var(--forest-700)}.proof-preview h3{margin:10px 0 5px}.proof-preview p{font-size:11px}.invoice-admin-actions{display:flex;justify-content:flex-end;gap:9px;margin:-8px 0 18px}.draft-line-editor{margin-bottom:18px}.draft-line-editor .card-header{align-items:flex-start}.draft-line-editor .table-scroll input{width:100%;min-width:72px;min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:6px;font-size:13px}.draft-line-editor td.number input{text-align:right;font-variant-numeric:tabular-nums}.draft-line-editor .line-error{display:block;margin-top:4px;color:var(--red-700);font-size:10px}.draft-line-editor-actions{display:flex;gap:8px;padding:12px 16px;flex-wrap:wrap}.version-history{margin-top:20px;overflow:hidden}.version-row{display:grid;grid-template-columns:90px 110px 180px 1fr;align-items:center;gap:12px;padding:13px 18px;border-top:1px solid var(--line);font-size:11px}.version-row p{margin:0;font-size:10px}.person-cell.large{padding:10px 0 18px}.person-cell.large .avatar{width:46px;height:46px}.empty-state.compact{min-height:180px}.modal-body>label{display:block;margin-top:15px}.modal-body>label textarea{width:100%}.muted-inline{font-size:11px;color:var(--muted);margin:10px 0 0}.penalty-schedule-list{margin:10px 0 0;padding-left:0;list-style:none}.penalty-schedule-list li{display:flex;align-items:center;gap:8px;font-size:11px;margin-top:6px}.schedule-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--line-strong)}.schedule-dot.tone-danger{background:var(--red-700)}.schedule-dot.tone-amber{background:var(--gold-500)}.schedule-dot.tone-success{background:var(--forest-700)}.penalty-schedule-card{margin-top:18px}.penalty-schedule-card .muted-inline{padding:0 22px}.penalty-schedule-table-wrap{overflow-x:auto;padding:0 22px 18px}.penalty-schedule-table{width:100%;border-collapse:collapse;font-size:11px}.penalty-schedule-table th,.penalty-schedule-table td{padding:10px 8px;border-top:1px solid var(--line);text-align:left}.penalty-schedule-table th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.schedule-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:700;background:#eef1ef;color:#5f6863}.schedule-pill.tone-danger{background:var(--red-100);color:var(--red-700)}.schedule-pill.tone-amber{background:var(--gold-50);color:#85540a}.schedule-pill.tone-success{background:var(--forest-50);color:var(--forest-800)}.icon-button.notification{position:relative}.icon-button.notification.has-alert{color:#85540a;background:var(--gold-50)}.notification-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--red-700);border:2px solid white}@media (max-width: 700px){.topbar-popover{position:fixed;top:66px;right:12px;left:12px;width:auto}.version-row{grid-template-columns:1fr 1fr}.version-row p{grid-column:1 / -1}.invoice-admin-actions{flex-direction:column}.invoice-admin-actions .button{width:100%}}
