@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
:root{
  --font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --green-950:#123f28;--green-900:linear-gradient(180deg,#1d5b41 0%,#174a32 100%);
  --green-700:#1e6244;--green-600:#247a52;--green-500:#2e7d4f;--green-200:#bfe3cd;--green-100:#dcf0e4;--green-50:#eef7f1;
  --cream:#f6f3ea;--card:#ffffff;--ink:#1c2a24;--muted:#64756b;--line:#e6e3d7;--line-strong:#d5d2c4;
  --gold:#eab308;--red:#d64543;--red-50:#fdecec;--amber-bg:#fdf3d8;--amber-ink:#8a6a16;--blue-bg:#e8f1fd;--blue-ink:#275f9e;
  --focus:#b16820;
  font-family:var(--font);color:var(--ink);background:var(--cream);font-synthesis:none;
}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}
.icon{flex:none;vertical-align:-3px}
/* ---------- Locked (pre-login) shell ---------- */
body:not(.authed) #app{display:none}
#auth-root{min-height:100vh}
/* ---------- App shell ---------- */
#app{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}
#sidebar{background:var(--green-900);color:#eef6f0;padding:22px 12px 18px;display:flex;flex-direction:column;min-height:100vh}
.brand{display:flex;gap:11px;align-items:center;font-weight:800;font-size:18px;padding:0 12px 22px}
.brand svg{flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.brand small{display:block;color:#a9cdb6;font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;margin-top:1px}
.nav-heading{color:#8fb7a0;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800;padding:16px 14px 7px}
.nav-link{display:flex;align-items:center;gap:11px;text-decoration:none;border-radius:10px;padding:9px 13px;font-size:12.5px;font-weight:500;min-height:40px;color:#d7e6dd;transition:background .12s}
.nav-link .icon{color:#9cc7ac}
.nav-link:hover,.nav-link:focus-visible{background:rgba(255,255,255,.08)}
.nav-link[aria-current=page]{background:#fff;color:#1d5b41;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.nav-link[aria-current=page] .icon{color:var(--green-600)}
.sidebar-bottom{margin-top:auto;padding:16px 14px 0;font-size:10.5px;color:#9dbfa9;border-top:1px solid rgba(255,255,255,.09);display:flex;gap:7px;align-items:center}
.sidebar-bottom .icon{color:#9cc7ac}
.shell{min-width:0}
/* ---------- Topbar ---------- */
.topbar{height:66px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 26px;gap:14px;position:sticky;top:0;z-index:30}
.top-title{font-weight:700;font-size:14px}.top-title span{font-weight:450;color:var(--muted)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.demo-badge{background:var(--amber-bg);color:var(--amber-ink);padding:6px 10px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:.06em}
.user-chip{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 4px;border:1px solid var(--line);border-radius:99px;background:var(--card)}
.user-chip .avatar{margin:0}
.user-chip b{font-size:12px}.user-chip small{display:block;color:var(--muted);font-size:10px}
.icon-button{width:38px;height:38px;border-radius:10px;border:1px solid transparent;background:transparent;display:grid;place-items:center;color:var(--ink)}
.icon-button:hover,.icon-button:focus-visible{background:var(--green-50);border-color:var(--line)}
.avatar{background:var(--green-100);color:var(--green-700);border-radius:50%;height:34px;width:34px;display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:8px 14px;z-index:100;border-radius:0 0 8px 0;border:1px solid var(--line)}
.skip-link:focus{left:0}
/* ---------- Main / views ---------- */
main{padding:26px 32px 56px;max-width:1240px}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.page-head h1{font-size:24px;font-weight:800;margin:0 0 4px;letter-spacing:-.02em}
.page-head p{margin:0;color:var(--muted);font-size:12.5px}
.button,.small-button{display:inline-flex;align-items:center;gap:8px;background:var(--green-600);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-weight:700;font-size:12.5px;transition:background .12s}
.button:hover,.small-button:hover{background:var(--green-700)}
.button.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line-strong)}
.button.secondary:hover{background:var(--green-50)}
.small-button{padding:6px 11px;font-size:11.5px;border-radius:8px}
.small-button[data-action="delete"]{background:var(--card);color:var(--red);border:1px solid var(--line-strong)}
.small-button[data-action="delete"]:hover{background:var(--red-50);border-color:#f3c1c0}
.alert{display:flex;gap:10px;align-items:flex-start;background:var(--green-50);color:#3c5748;border:1px solid var(--green-100);padding:11px 14px;border-radius:12px;font-size:12px;line-height:1.5;margin-bottom:18px}
.alert .icon{color:var(--green-600);margin-top:1px}
/* metrics */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px}
.metric{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:center}
.metric>svg{flex:none;color:var(--green-600);background:var(--green-50);border-radius:10px;padding:7px;width:34px;height:34px}
.metric span{display:block;color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.metric strong{font-size:19px;font-weight:800;letter-spacing:-.02em}
/* panels / tables */
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 1px 2px rgba(28,42,36,.03)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.panel-head h2{margin:0;font-size:16px;font-weight:800}
.muted{color:var(--muted);font-size:12px}
.search{border:1px solid var(--line-strong);border-radius:10px;padding:8px 12px;font-size:12.5px;min-width:220px;background:var(--cream)}
.search:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.data-table{width:100%;border-collapse:collapse;font-size:12.5px}
.data-table th{text-align:left;background:var(--green-50);color:#33523f;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.data-table td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr:nth-child(even){background:#fbfaf5}
.data-table tbody tr:hover{background:var(--green-50)}
.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;font-size:10.5px;font-weight:700}
.status-pill.low,.status-pill.sent,.status-pill.paid,.status-pill.active,.status-pill.approved,.status-pill.verified,.status-pill.succeeded,.status-pill.resolved,.status-pill.closed,.status-pill.read,.status-pill.delivered,.status-pill.issued,.status-pill.confirmed{background:var(--green-100);color:#205c3a}
.status-pill.pending,.status-pill.draft,.status-pill.review,.status-pill.requested,.status-pill.open,.status-pill.under_review,.status-pill.investigating,.status-pill.received{background:var(--amber-bg);color:var(--amber-ink)}
.status-pill.high,.status-pill.failed,.status-pill.cancelled,.status-pill.void,.status-pill.declined,.status-pill.rejected,.status-pill.revoked,.status-pill.disabled{background:var(--red-50);color:#a83230}
.status-pill.medium,.status-pill.starter,.status-pill.business,.status-pill.trial,.status-pill.dependent{background:var(--blue-bg);color:var(--blue-ink)}
.actions{display:flex;gap:6px}
.empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}
.empty .icon{color:var(--green-200);display:block;margin:0 auto 10px}
.hero-note{margin-top:18px;color:var(--muted);font-size:12px;line-height:1.6}
/* ---------- Dialog ---------- */
.dialog-backdrop{position:fixed;inset:0;background:rgba(18,40,30,.45);display:grid;place-items:center;padding:20px;z-index:60;backdrop-filter:blur(2px)}
.dialog{background:var(--card);border-radius:18px;padding:26px;width:min(680px,100%);max-height:90vh;overflow:auto;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.dialog h2{margin:0 0 18px;font-size:17px;font-weight:800}
.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 16px}
.field{display:flex;flex-direction:column;gap:5px;font-size:11.5px;font-weight:700;color:#3a4a42}
.field input,.field select,.field textarea{border:1px solid var(--line-strong);border-radius:10px;padding:9px 12px;font-size:13px;font-weight:400;background:var(--card)}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}
.field small{min-height:14px;color:var(--red);font-weight:600}
.form-actions{display:flex;gap:10px;margin-top:20px}
/* ---------- Toast ---------- */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--green-700);color:#fff;padding:11px 18px;border-radius:12px;font-size:12.5px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:80;display:flex;gap:8px;align-items:center}
/* ---------- Login ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}
.login-brand{color:#eef6f0;padding:56px 52px;display:flex;flex-direction:column;background:var(--green-900)}
.login-brand .logo{display:flex;align-items:center;gap:12px;font-weight:800;font-size:19px}
.login-brand h2{font-size:29px;line-height:1.25;letter-spacing:-.02em;margin:34px 0 12px;max-width:420px}
.login-brand p{color:#c6dfd0;line-height:1.7;font-size:13.5px;max-width:420px;margin:0 0 28px}
.login-points{list-style:none;padding:0;margin:auto 0 0;max-width:430px;display:grid;gap:13px}
.login-points li{display:flex;gap:11px;align-items:center;font-size:12.8px;color:#dcebe2}
.login-points .icon{color:var(--green-200);background:rgba(255,255,255,.07);border-radius:9px;padding:6px;width:30px;height:30px}
.login-points li b{color:#fff;font-weight:700}
.login-form{background:var(--card);display:flex;flex-direction:column;justify-content:center;padding:40px 52px;border-left:1px solid var(--line)}
.login-card{width:min(400px,100%);margin:0 auto}
.login-card h1{font-size:21px;font-weight:800;margin:0 0 6px;letter-spacing:-.02em}
.login-card>p{color:var(--muted);font-size:12.5px;margin:0 0 18px}
.method-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:18px}
.method-tab{display:flex;align-items:center;gap:7px;justify-content:center;padding:8px 6px;border-radius:10px;border:1px solid var(--line-strong);background:var(--card);font-size:11px;font-weight:700;color:var(--muted)}
.method-tab .icon{color:var(--green-600)}
.method-tab[aria-selected=true]{background:var(--green-600);border-color:var(--green-600);color:#fff}
.method-tab[aria-selected=true] .icon{color:#fff}
.lform{display:grid;gap:12px}
.lform label{display:flex;flex-direction:column;gap:5px;font-size:11.5px;font-weight:700;color:#3a4a42}
.lform input{border:1px solid var(--line-strong);border-radius:10px;padding:10px 12px;font-size:13px}
.lform input:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}
.lform .err{color:var(--red);font-size:11.5px;font-weight:600;min-height:2px}
.submit{margin-top:2px}
.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;margin:16px 0;text-transform:uppercase}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line-strong)}
.sso-grid{display:grid;gap:8px}
.sso-btn{display:flex;align-items:center;gap:10px;border:1px solid var(--line-strong);background:var(--card);border-radius:10px;padding:10px 13px;font-size:12.5px;font-weight:600}
.sso-btn:hover{background:var(--green-50)}
.sso-btn .mark{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:800;flex:none}
.dev-note{margin-top:18px;background:var(--amber-bg);border-radius:10px;padding:10px 13px;font-size:11px;color:var(--amber-ink);line-height:1.55}
/* one-click demo accounts */
.demo-grid{display:grid;gap:8px;margin-bottom:4px}
.demo-account{display:flex;align-items:center;gap:11px;border:1px solid var(--line-strong);background:var(--card);border-radius:12px;padding:10px 12px;text-align:left;width:100%}
.demo-account:hover{border-color:var(--green-600);background:var(--green-50)}
.demo-avatar{width:34px;height:34px;border-radius:50%;background:var(--green-100);color:var(--green-700);display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.demo-meta{display:flex;flex-direction:column;min-width:0}
.demo-meta b{font-size:12.5px}
.demo-meta small{color:var(--muted);font-size:10.5px}
.demo-go{margin-left:auto;color:var(--green-600);transform:rotate(180deg);display:grid}
.otp-hint{background:var(--blue-bg);border-radius:10px;padding:10px 13px;font-size:11.5px;color:var(--blue-ink);line-height:1.55}
.login-foot{margin-top:22px;color:var(--muted);font-size:11px;line-height:1.6}
.linklike{background:none;border:none;color:var(--green-700);font-weight:700;font-size:11.5px;padding:0;text-decoration:underline}
/* ---------- Responsive ---------- */
#menu-button{display:none}
@media(max-width:920px){
  #app{grid-template-columns:1fr}
  #sidebar{position:fixed;inset:0 34% 0 0;z-index:50;transform:translateX(-100%);transition:transform .18s;box-shadow:0 0 60px rgba(0,0,0,.35)}
  #sidebar.open{transform:none}
  #menu-button{display:grid}
  main{padding:18px 16px 46px}
  .login{grid-template-columns:1fr}
  .login-brand{min-height:260px;padding:32px 28px}
  .login-brand h2{margin:20px 0 8px}
  .login-points{display:none}
  .login-form{padding:32px 22px}
  .topbar{padding:0 14px}
  .user-chip b,.user-chip small{display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---- v5: API-connected workspace additions ---- */
.head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toast-error{background:var(--red)}
.alert-warn{background:var(--amber-bg);color:var(--amber-ink);border-color:transparent}
.alert-warn .icon{color:var(--amber-ink)}
a.metric{color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}
a.metric:hover,a.metric:focus-visible{border-color:var(--green-600);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.field .err,.form-error{color:var(--red);font-size:11.5px;font-weight:600;min-height:2px;display:block}
.form-error{margin:8px 0 0}
[aria-invalid="true"]{border-color:var(--red)!important}
.dialog-wide{width:min(860px,100%)}
.items-total{text-align:right;margin:10px 0 16px;font-size:14px}
.inline-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin:6px 0 10px}
.inline-form .button{height:42px}
.qr-box{display:flex;justify-content:center;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px}
.qr-img{width:240px;height:240px;image-rendering:pixelated}
.live-badge{background:var(--green-50);color:var(--green-700)}
.login-card-single{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 18px 50px rgba(0,0,0,.08)}
.login-card-single .login-mark{display:flex;align-items:center;gap:10px;font-size:18px;margin-bottom:18px;color:var(--green-700)}
.login-card-single .button{width:100%;justify-content:center;margin:6px 0 14px}
.login-card-single .lform-err{color:var(--red);font-size:12px;font-weight:600;min-height:1em}
.empty .button{margin-top:12px}
@media(max-width:720px){
 .inline-form{grid-template-columns:minmax(0,1fr)}
 .data-table thead{display:none}
 .data-table tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
 .data-table td{display:flex;justify-content:space-between;gap:12px;border:0!important;padding:4px 12px!important}
 .data-table td[data-label]::before{content:attr(data-label);color:var(--muted);font-weight:600;font-size:11px}
 .head-actions{width:100%}
}
.login.login-single{grid-template-columns:1fr;place-items:center;padding:20px;background:var(--bg,#f4f7f5)}
.status-pill.ok{background:var(--green-100);color:#205c3a}.status-pill.warn{background:var(--amber-bg);color:var(--amber-ink)}.status-pill.bad{background:var(--red-50);color:#a83230}
