@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap";
:root{--bg:#f3f3f0;--surface:#fff;--surface-2:#f8f8f5;--ink:#121212;--muted:#6a6a64;--faint:#a6a69f;--line:#e6e6e1;--primary:#141414;--primary-ink:#fff;--firm:#1c7d57;--firm-bg:#ecf5f0;--connected:#1f6feb;--connected-bg:#eaf1fd;--connected-line:#c3d8fb;--estimate:#8a8a82;--estimate-bg:#efefea;--estimate-line:#cdcdc5;--danger:#b3261e;--danger-bg:#fbeceb;--radius:6px;--radius-lg:10px;--font-head:"IBM Plex Mono", monospace;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace;--shadow-card:0 6px 16px -14px #00000080;--shadow-float:0 8px 20px -12px #00000073;--sidebar-w:232px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);min-height:100vh}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}input,select{font:inherit;color:inherit}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rowin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.mono{font-family:var(--font-mono)}.wordmark{font-family:var(--font-head);letter-spacing:-.02em;color:var(--ink);font-weight:700}.wordmark .setu{color:var(--firm)}.btn-primary{background:var(--primary);color:var(--primary-ink);border-radius:var(--radius);justify-content:center;align-items:center;gap:8px;height:44px;padding:0 18px;font-weight:600;display:inline-flex}.btn-outline{background:var(--surface);border:1.5px solid var(--line);color:var(--ink);border-radius:var(--radius);justify-content:center;align-items:center;gap:8px;height:44px;padding:0 18px;font-weight:600;display:inline-flex}.btn-danger{background:var(--surface);border:1.5px solid var(--danger);color:var(--danger);border-radius:var(--radius);height:34px;padding:0 12px;font-size:12.5px;font-weight:600}button:disabled,button[aria-disabled=true]{opacity:.5;cursor:not-allowed}.spinner{border:2px solid var(--line);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}:focus-visible{outline:2.5px solid var(--connected);outline-offset:2px;border-radius:4px}.logo-tile{background:var(--primary);border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:3px;width:40px;height:40px;display:flex}.logo-tile .bar{background:var(--primary-ink);border-radius:2px;width:18px;height:3px}.logo-tile .piers{gap:3px;display:flex}.logo-tile .piers i{background:var(--primary-ink);border-radius:1px;width:3px;height:7px}.gate{background:radial-gradient(circle at 50% 0,#eef1ed,#e2e6e1);justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.gate-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-float);padding:32px}.gate-brand{align-items:center;gap:12px;margin-bottom:8px;display:flex}.gate-brand .wordmark{font-size:22px}.gate-kicker{font-family:var(--font-mono);letter-spacing:.14em;color:var(--firm);text-transform:uppercase;margin-bottom:22px;font-size:10px}.gate-title{font-family:var(--font-head);letter-spacing:-.01em;font-size:22px;font-weight:700}.gate-sub{color:var(--muted);margin-top:8px;font-size:13.5px;line-height:1.5}.field{margin-top:18px}.field label{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input,.field select{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);outline:none;width:100%;height:46px;padding:0 14px;font-size:15px}.field input:focus,.field select:focus{border-color:var(--primary)}.field .hint{color:var(--faint);margin-top:5px;font-size:11.5px}.phone-inline{align-items:center;gap:8px;display:flex}.phone-inline .cc{border:1.5px solid var(--line);border-radius:var(--radius);height:46px;font-family:var(--font-mono);background:var(--surface-2);align-items:center;padding:0 12px;font-weight:600;display:flex}.gate-btn{width:100%;height:48px;margin-top:22px;font-size:15px}.gate-err{border-radius:var(--radius);background:var(--danger-bg);color:var(--danger);margin-top:14px;padding:10px 12px;font-size:12.5px;font-weight:600}.gate-foot{color:var(--faint);text-align:center;margin-top:20px;font-size:11.5px;line-height:1.5}.gate-divider{background:var(--line);height:1px;margin:22px 0}.account-pick{flex-direction:column;gap:10px;margin-top:12px;display:flex}.account-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.account-row .an{font-size:14px;font-weight:600}.account-row .ag{font-family:var(--font-mono);color:var(--muted);margin-top:2px;font-size:11px}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:none;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.side-brand{align-items:center;gap:11px;padding:0 6px 22px;display:flex}.side-brand .wordmark{font-size:18px}.side-brand .b2b{font-family:var(--font-mono);letter-spacing:.1em;color:var(--firm);background:var(--firm-bg);border-radius:5px;padding:2px 6px;font-size:8.5px}.side-nav{flex-direction:column;gap:3px;display:flex}.side-link{border-radius:var(--radius);height:40px;color:var(--muted);align-items:center;gap:10px;padding:0 12px;font-size:14px;font-weight:500;display:flex}.side-link:hover{background:var(--surface-2);color:var(--ink)}.side-link.active{background:var(--primary);color:var(--primary-ink);font-weight:600}.side-link .dot{opacity:.55;background:currentColor;border-radius:50%;width:6px;height:6px}.side-foot{border-top:1px solid var(--line);margin-top:auto;padding-top:16px}.side-acct{padding:0 6px;font-size:12.5px;font-weight:600}.side-acct-gst{font-family:var(--font-mono);color:var(--faint);padding:2px 6px 0;font-size:10px}.side-logout{border-radius:var(--radius);border:1px solid var(--line);width:100%;height:36px;color:var(--muted);background:var(--surface);margin-top:12px;font-size:12.5px;font-weight:600}.side-logout:hover{color:var(--danger);border-color:var(--danger)}.main{flex:1;min-width:0;max-width:1100px;padding:30px 40px 60px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-title{font-family:var(--font-head);letter-spacing:-.01em;font-size:26px;font-weight:700}.page-sub{color:var(--muted);margin-top:5px;font-size:13.5px}.banner{border-radius:var(--radius);background:var(--estimate-bg);border:1px solid var(--estimate-line);color:var(--ink);align-items:flex-start;gap:10px;margin-bottom:22px;padding:13px 16px;font-size:12.5px;line-height:1.5;display:flex}.banner .bdot{background:var(--estimate);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.banner b{color:var(--estimate)}.empty{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-lg);padding:44px 24px;font-size:13.5px;line-height:1.55}.empty .et{color:var(--ink);margin-bottom:6px;font-size:15px;font-weight:600}.stat-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px}.stat-card .label{font-family:var(--font-mono);letter-spacing:.08em;color:var(--faint);text-transform:uppercase;font-size:10px}.stat-card .value{font-family:var(--font-mono);color:var(--ink);margin-top:10px;font-size:30px;font-weight:600;line-height:1}.stat-card .foot{color:var(--muted);margin-top:8px;font-size:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.panel-title{font-size:15px;font-weight:600}.panel-body{padding:6px 0}table.tbl{border-collapse:collapse;width:100%;font-size:13.5px}table.tbl th{text-align:left;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line);padding:10px 20px;font-size:10px;font-weight:600}table.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:14px 20px}table.tbl tr:last-child td{border-bottom:none}table.tbl td.num,table.tbl th.num{text-align:right;font-family:var(--font-mono)}.pill{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border-radius:5px;align-items:center;padding:3px 8px;font-size:9.5px;font-weight:600;display:inline-flex}.pill.admin{color:var(--connected);background:var(--connected-bg)}.pill.member{color:var(--muted);background:var(--surface-2)}.pill.ok{color:var(--firm);background:var(--firm-bg)}.pill.over{color:var(--danger);background:var(--danger-bg)}.meter{width:140px}.meter-track{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.meter-fill{background:var(--firm);border-radius:3px;height:100%}.meter-fill.over{background:var(--danger)}.meter-cap{font-family:var(--font-mono);color:var(--muted);margin-top:4px;font-size:10.5px}.spend-list{flex-direction:column;display:flex}.spend-item{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:12px 20px;display:flex}.spend-item:last-child{border-bottom:none}.spend-item .who{flex:none;width:150px;font-size:13.5px;font-weight:500}.spend-item .bar-wrap{background:var(--surface-2);border-radius:4px;flex:1;height:8px;overflow:hidden}.spend-item .bar{background:var(--firm);border-radius:4px;height:100%}.spend-item .amt{text-align:right;width:90px;font-family:var(--font-mono);flex:none;font-size:13.5px;font-weight:600}.addbar{border-bottom:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px 20px;display:flex}.addbar .f{flex-direction:column;gap:5px;display:flex}.addbar .f label{color:var(--muted);font-size:11px;font-weight:600}.addbar input,.addbar select{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);outline:none;height:40px;padding:0 12px;font-size:14px}.addbar input:focus,.addbar select:focus{border-color:var(--primary)}.addbar .phone-w{width:180px}.addbar .limit-w{width:150px}.addbar .role-w{width:130px}.addbar .err{color:var(--danger);flex-basis:100%;font-size:12px;font-weight:600}.inv-toolbar{gap:10px;margin-bottom:20px;display:flex}.invoice-doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);max-width:760px;padding:40px 44px}.inv-top{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.inv-brand{align-items:center;gap:12px;display:flex}.inv-brand .wordmark{font-size:22px}.inv-doc-label{text-align:right}.inv-doc-label .t{font-family:var(--font-head);letter-spacing:.02em;font-size:20px;font-weight:700}.inv-doc-label .n{font-family:var(--font-mono);color:var(--muted);margin-top:4px;font-size:12px}.inv-parties{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px;display:grid}.inv-party .k{font-family:var(--font-mono);letter-spacing:.06em;color:var(--faint);text-transform:uppercase;font-size:10px}.inv-party .v{margin-top:6px;font-size:14px;line-height:1.5}.inv-party .v .name{font-weight:600}.inv-lines{border-collapse:collapse;width:100%;margin-bottom:8px}.inv-lines th{text-align:left;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--faint);border-bottom:2px solid var(--ink);padding:10px 0;font-size:10px}.inv-lines td{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}.inv-lines .num{text-align:right;font-family:var(--font-mono)}.inv-totals{width:300px;margin-top:12px;margin-left:auto}.inv-total-row{justify-content:space-between;padding:8px 0;font-size:14px;display:flex}.inv-total-row .k{color:var(--muted)}.inv-total-row .v{font-family:var(--font-mono)}.inv-total-row.grand{border-top:2px solid var(--ink);margin-top:6px;padding-top:12px;font-size:16px;font-weight:700}.inv-note{color:var(--faint);border-top:1px solid var(--line);margin-top:30px;padding-top:16px;font-size:11.5px;line-height:1.6}@media print{.sidebar,.inv-toolbar,.no-print{display:none!important}.main{max-width:none;padding:0}.invoice-doc{box-shadow:none;border:none;border-radius:0;max-width:none;padding:0}body{background:#fff}}.acct-list{flex-direction:column;gap:8px;margin:4px 0 14px;display:flex}.acct-row{background:var(--surface,#fff);border:1px solid var(--line,#e6e6e1);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.acct-row:hover{border-color:var(--primary,#141414);background:var(--surface-2,#f8f8f5)}.acct-name{color:var(--ink,#121212);font-size:15px;font-weight:600}.acct-open{color:var(--muted,#6a6a64);font-size:13px;font-weight:600}
