:root{
  --bg:#0b1220;
  --card:#101a33;
  --muted:#91a4c7;
  --text:#eaf0ff;
  --line:rgba(255,255,255,.10);
  --accent:#29d3b0;
  --accent2:#2a9df4;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:linear-gradient(120deg,#070b14,#0b1220)}
a{color:var(--accent);text-decoration:none}
.bg{min-height:100vh;display:flex}
.wrap{width:100%;display:flex;align-items:center;justify-content:center;padding:28px}
.card{width:420px;max-width:92vw;background:rgba(16,26,51,.88);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-weight:800}
.title{font-size:18px;font-weight:800}
.sub{font-size:12px;color:var(--muted)}
label{display:block;font-size:12px;color:var(--muted);margin:10px 0 6px}
.input{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:#0c142b;color:var(--text);outline:none}
.btn{width:100%;margin-top:12px;padding:12px 14px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04121a;font-weight:900;cursor:pointer}
.alert{background:rgba(255,90,90,.15);border:1px solid rgba(255,90,90,.35);padding:10px 12px;border-radius:12px;margin:10px 0;color:#ffd3d3}
.hint{margin-top:10px;font-size:12px;color:var(--muted)}

.topbar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;background:rgba(10,16,32,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar .left{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.badge{font-weight:900;background:rgba(255,255,255,.08);border:1px solid var(--line);padding:6px 10px;border-radius:999px}
.h1{font-weight:900}
.pill{font-size:12px;color:#04121a;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--accent2));padding:5px 10px;border-radius:999px}
.topbar .right{display:flex;gap:14px;align-items:center}
.user{color:var(--muted);font-size:13px}
.link{font-weight:800}

.container{max-width:1180px;margin:0 auto;padding:18px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
.panel{background:rgba(16,26,51,.78);border:1px solid var(--line);border-radius:16px;padding:14px}
.panel-title{font-weight:900;margin-bottom:10px}
.mt{margin-top:14px}

.dropdown{display:none;margin-top:8px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0c142b;max-height:260px;overflow:auto}
.dd-item{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer}
.dd-item:hover{background:rgba(41,211,176,.10)}
.small{font-size:12px;color:var(--muted);margin-top:8px}
.row{display:flex;gap:10px;margin-top:10px;font-size:13px}
.k{color:var(--muted)}
.v{font-weight:800}

.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}
.table{width:100%;border-collapse:collapse;min-width:920px}
.table th,.table td{padding:10px 10px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}
.table th{font-size:12px;color:var(--muted);text-align:left;background:rgba(255,255,255,.04)}
.pname{font-weight:900}
.psub{font-size:12px;color:var(--muted)}
.cell{width:100%;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:#0b1330;color:var(--text);outline:none}
.icon-btn{border:none;background:rgba(255,90,90,.14);color:#ffb8b8;border:1px solid rgba(255,90,90,.30);padding:6px 10px;border-radius:12px;cursor:pointer}
.muted{color:var(--muted)}

.totals{display:flex;gap:14px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.trow{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.05);border:1px solid var(--line);padding:10px 12px;border-radius:14px;min-width:210px;justify-content:space-between}
.trow.grand{background:rgba(41,211,176,.12);border-color:rgba(41,211,176,.30)}
.pay{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:14px}
@media(max-width:900px){.pay{grid-template-columns:1fr}}