*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--t-base)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--ink-strong);margin:0}.vx-shell{display:flex;min-height:100vh}.vx-shell__nav{flex:none;position:sticky;top:0;height:100vh}.vx-shell__main{flex:1;min-width:0;display:flex;flex-direction:column}.vx-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5}.vx-topbar__who{color:var(--muted);font-size:var(--t-dense);display:flex;gap:12px;align-items:center}.vx-workspace{padding:4px 8px 12px}.vx-workspace__name{font-weight:600;color:var(--ink-strong)}.vx-workspace__slug{color:var(--muted);font-size:var(--t-sm)}.vx-page{padding:24px;max-width:1200px;width:100%}.vx-page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.vx-page__title{font-size:22px;font-weight:700}.vx-page__description{color:var(--soft);margin:4px 0 0}.vx-page__actions{display:flex;gap:8px;flex-wrap:wrap}.vx-grid{display:grid;gap:16px}.vx-grid--stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:16px}.vx-grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.vx-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg);padding:16px;margin-bottom:16px;min-width:0}.vx-card__head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.vx-card__title{font-size:var(--t-lg);font-weight:600}.vx-stat{border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;background:var(--wash)}.vx-stat__label{color:var(--muted);font-size:var(--t-sm);text-transform:uppercase;letter-spacing:.03em}.vx-stat__value{font-size:22px;font-weight:700;color:var(--ink-strong);margin-top:4px;font-variant-numeric:tabular-nums}.vx-stat__note{color:var(--soft);font-size:var(--t-dense);margin-top:2px}.vx-form{display:grid;gap:14px}.vx-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.vx-notice{border-radius:var(--r);padding:10px 14px;margin-bottom:16px;background:var(--inset);color:var(--ink);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vx-notice--yellow{background:var(--yellow-bg);color:var(--yellow)}.vx-notice--red{background:var(--red-bg);color:var(--red)}.vx-notice--green{background:var(--green-bg);color:var(--green)}.vx-loading{color:var(--muted);padding:24px 0}.vx-empty{color:var(--muted);margin:8px 0}.vx-dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.vx-dl dt{color:var(--muted)}.vx-dl dd{margin:0}.vx-mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.vx-muted{color:var(--muted)}.vx-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vx-spacer{flex:1}.vx-lines{width:100%;border-collapse:collapse}.vx-lines th{text-align:start;color:var(--muted);font-weight:500;font-size:var(--t-sm);padding:4px 6px}.vx-lines td{padding:4px 6px;vertical-align:top}.vx-lines input,.vx-lines select{width:100%;padding:6px 8px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--bg);color:var(--ink);font:inherit}.vx-totals{margin-inline-start:auto;min-width:260px;display:grid;grid-template-columns:1fr auto;gap:4px 16px}.vx-totals .is-total{font-weight:700;color:var(--ink-strong);border-top:1px solid var(--line-strong);padding-top:6px}.vx-auth{min-height:100vh;display:grid;place-items:center;background:var(--surface);padding:16px}.vx-auth__card{width:min(400px,100%);background:var(--bg);border-radius:var(--r-lg);box-shadow:var(--page-shadow);padding:28px}.vx-auth__brand{font-weight:700;font-size:18px;color:var(--ink-strong);margin-bottom:4px}.vx-auth__sub{color:var(--soft);margin:0 0 20px}.vx-auth__foot{margin-top:16px;font-size:var(--t-dense);color:var(--muted);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}@media (max-width: 760px){.vx-shell{flex-direction:column}.vx-shell__nav{position:static;height:auto}.vx-page{padding:16px}.vx-topbar{padding:10px 16px}}
