@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Instrument+Serif:ital@0;1&family=Outfit:wght@300;700;800&display=swap');
:root{color-scheme:dark;--bg:#060c19;--bg-2:#0a1324;--card:#0d182d;--card-2:#111f3a;--line:rgba(157,184,238,.13);--line-2:rgba(157,184,238,.24);--text:#f2f5fb;--muted:#8f9db8;--dim:#5d6b86;--accent:#a9c1f2;--white:#fff;--navy:#0e2240;--ok:#3ddc84;--warn:#f5c451;--bad:#ff8a8a;--proc:#c4b5fd;--radius:20px;--sans:"Plus Jakarta Sans","Segoe UI","Helvetica Neue",Arial,sans-serif;--serif:"Instrument Serif",Georgia,serif;--logo:"Outfit","Avenir Next","Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}
h1,h2,h3{margin:0;font-weight:600;line-height:1.1;letter-spacing:-.02em}
p{margin:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
[hidden]{display:none!important}
.serif{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent);letter-spacing:0}
.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--accent)}
.wordmark{--c:var(--white);color:var(--c);display:inline-flex;align-items:baseline;font-family:var(--logo);font-size:20px;letter-spacing:.1em;line-height:1}
.wordmark b{font-weight:700}
.wordmark span{font-weight:300}
.wordmark i{font-style:normal;font-weight:800;font-size:1.3em;color:transparent;-webkit-text-stroke:1.3px var(--c);background:linear-gradient(90deg,var(--c) 50%,transparent 50%);-webkit-background-clip:text;background-clip:text;margin-right:.1em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:1px solid transparent;transition:background .2s,border-color .2s,box-shadow .2s;white-space:nowrap}
.btn-white,.btn-primary{background:var(--white);color:var(--navy);box-shadow:0 8px 30px -10px rgba(169,193,242,.55)}
.btn-white:hover,.btn-primary:hover{background:#e6ecf6}
.btn-ghost{background:rgba(255,255,255,.02);border-color:var(--line-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent)}
.btn-sm{padding:8px 14px;font-size:11px}
.btn:disabled,.btn[disabled]{opacity:.4;pointer-events:none}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.topbar{background:rgba(6,12,25,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.topbar .wrap{height:72px;display:flex;align-items:center;gap:18px}
.topbar .spacer{flex:1}
.tag,.role-pill{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:6px 12px;border-radius:99px;background:var(--white);color:var(--navy)}
.who{text-align:right;font-size:14px;line-height:1.25;display:grid}
.who small{color:var(--muted);font-size:12px}
main{padding-block:40px 80px}
.page-head,.hello{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:32px}
.page-head h1,.hello h1{font-size:clamp(32px,4vw,52px);font-weight:700}
.page-head p,.hello p{color:var(--muted);margin-top:8px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px}
.kpi b{overflow-wrap:anywhere}
.months{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.kpi{background:var(--card);border-radius:var(--radius);padding:24px 26px;border:1px solid var(--line);display:grid;gap:6px}
.kpi span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700}
.kpi b{font-size:34px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi small{color:var(--muted);font-size:13px}
.kpi.accent{background:linear-gradient(180deg,#16284d,var(--card));border-color:rgba(169,193,242,.55);box-shadow:0 0 0 1px rgba(169,193,242,.2),0 24px 60px -30px rgba(56,94,178,.8)}
.kpi.accent span{color:var(--accent)}
.panel,.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);min-width:0}
.panel{overflow:hidden}
.card{padding:22px 24px}
.card h2{font-size:20px;margin-bottom:14px}
.panel-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.panel-head h3{font-size:20px}
.panel-body{padding:20px 24px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.grid-2.wide{grid-template-columns:1.6fr 1fr}
.stack{display:grid;gap:20px}
.badge,.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:99px;white-space:nowrap}
.badge::before,.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.b-ok{background:rgba(61,220,132,.12);color:var(--ok)}
.b-warn{background:rgba(245,196,81,.12);color:var(--warn)}
.b-bad{background:rgba(255,138,138,.12);color:var(--bad)}
.b-info{background:rgba(169,193,242,.12);color:var(--accent)}
.b-dim{background:rgba(143,157,184,.12);color:var(--muted)}
.b-proc{background:rgba(196,181,253,.12);color:var(--proc)}
.progress{height:10px;background:var(--card-2);border-radius:99px;overflow:hidden;margin:10px 0 6px}
.progress>div{height:100%;background:var(--accent);border-radius:99px}
.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.inline-form input{width:180px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:18px}
.facts div{display:grid;gap:2px}
.facts span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.facts .months{display:flex}
.facts .badge{font-size:12px;letter-spacing:0;text-transform:none}
.live-dot{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.live-dot::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok)}
.tabs{display:flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:99px;padding:5px;width:max-content;max-width:100%;overflow-x:auto;margin-bottom:24px}
.tabs button{border:0;background:none;padding:10px 20px;border-radius:99px;cursor:pointer;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted);white-space:nowrap}
.tabs button:hover{color:var(--text)}
.tabs button[aria-selected="true"]{background:var(--white);color:var(--navy)}
.tabs .count{font-size:11px;background:var(--card-2);color:var(--accent);border-radius:99px;padding:1px 7px;margin-left:6px;letter-spacing:0}
.tabs button[aria-selected="true"] .count{background:var(--navy);color:#fff}
.filters{display:flex;gap:10px;flex-wrap:wrap}
.filters input,.filters select{width:auto;padding:10px 16px;border:1px solid var(--line-2);border-radius:99px;background:var(--bg);outline:none;font-size:14px}
.filters input{min-width:240px}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-weight:700;padding:14px 24px;background:var(--bg-2);white-space:nowrap}
td{padding:16px 24px;border-top:1px solid var(--line);vertical-align:middle}
td small{display:block;color:var(--muted);font-size:12px}
td b{font-weight:700}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
tr.new td{background:rgba(245,196,81,.05)}
td .empty,.empty{padding:40px 24px;text-align:center;color:var(--muted)}
.status-select,td select{width:auto;padding:7px 10px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg);font-size:13px;cursor:pointer}
.bars{display:grid;gap:16px}
.bar-row{display:grid;grid-template-columns:110px 1fr 110px;gap:14px;align-items:center;font-size:14px}
.bar-row>span:first-child{text-transform:capitalize}
.bar-track{height:10px;background:var(--card-2);border-radius:99px;overflow:hidden}
.bar-fill{height:100%;background:var(--accent);border-radius:99px}
.bar-row .v{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
input,select,textarea{width:100%;padding:13px 16px;border:1px solid var(--line-2);border-radius:14px;background:var(--bg);color:var(--text);font-size:15px;outline:none;transition:border-color .2s}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
input::placeholder{color:var(--dim)}
label.field{display:grid;gap:6px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted)}
label.field span{text-transform:none;letter-spacing:0}
label.field input,label.field select{text-transform:none;letter-spacing:0}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end}
.form-grid .btn{height:48px}
.err{color:var(--bad);font-size:14px;min-height:1em}
.ok-msg{color:var(--ok);font-size:14px;font-weight:600}
.note{font-size:13px;color:var(--muted);text-align:center}
.list{display:grid}
.item{padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.item:last-child{border-bottom:0}
.item b{font-weight:700;font-size:15px}
.item small{display:block;color:var(--muted);font-size:13px}
.hero-pay{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:linear-gradient(180deg,#16284d,var(--card));border-color:rgba(169,193,242,.45);padding:28px 30px}
.hero-pay p{color:var(--muted)}
.hero-pay .amount{font-size:44px;font-weight:800;letter-spacing:-.03em;margin:4px 0}
.hero-pay .badge{margin-top:10px}
.switch{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;cursor:pointer}
.switch input{width:42px;height:24px;padding:0;appearance:none;-webkit-appearance:none;background:var(--card-2);border:1px solid var(--line-2);border-radius:999px;position:relative;cursor:pointer}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .15s}
.switch input:checked{background:var(--white);border-color:var(--white)}
.switch input:checked::after{transform:translateX(18px);background:var(--navy)}
.detail-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}
.detail-head h2{font-size:30px;margin:0}
.detail-head p{color:var(--muted);font-size:14px}
.row-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.back{display:inline-flex;gap:8px;align-items:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted);background:none;border:0;cursor:pointer;padding:0;margin-bottom:16px}
.back:hover{color:var(--text)}
.auth{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:radial-gradient(ellipse at 50% -10%,rgba(56,94,178,.45),transparent 60%),var(--bg)}
.auth-box{width:100%;max-width:440px;display:grid;gap:22px}
.auth-box>.wordmark{justify-self:center;font-size:22px}
.auth-card{background:var(--card);border:1px solid var(--line-2);border-radius:24px;padding:30px;display:grid;gap:18px}
.auth-card h1{font-size:28px}
.auth .tabs{width:100%;margin-bottom:0}
.auth .tabs button{flex:1}
.auth form{display:grid;gap:14px}
.auth .btn{width:100%;padding:15px}
.auth .btn-sm{width:auto;padding:8px 14px}
.toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--white);color:var(--navy);font-weight:700;padding:14px 22px;border-radius:14px;font-size:14px;z-index:100;box-shadow:0 20px 40px -10px rgba(0,0,0,.5)}
.toast.error{background:#ffd6d6;color:#5a0b0b}
.loading{color:var(--muted);padding:40px 0;text-align:center}
@media (max-width:960px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-2.wide{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.hero-pay{grid-template-columns:1fr}}
@media (max-width:640px){.topbar .wrap{gap:10px}.topbar .who{display:none}main{padding-block:28px 64px}.kpi b{font-size:28px}.panel-head,.panel-body{padding:16px}th,td{padding:12px 14px}.filters input{min-width:0;flex:1}.form-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:80px 1fr 80px}}
