:root{--brand: #2f6cd6;--brand-strong: #2158b8;--accent: #e8492f;--bg: #f4f7fe;--card: #ffffff;--text: #1b2559;--muted: #a3aed0;--border: #e9edf7;--green: #05cd99;--green-bg: #e6faf5;--red: #ee5d50;--red-bg: #fdecea;--amber: #ffb547;--amber-bg: #fff6e6;--gold: var(--brand);--gold-dark: var(--text);--gold-light: #eaf0fb;--sidebar: #ffffff;--shadow: 0 18px 40px rgba(112, 144, 176, .12);--shadow-sm: 0 6px 18px rgba(112, 144, 176, .1);--radius: 20px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:DM Sans,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.brand-lockup{display:inline-flex;align-items:center}.brand-logo-img{display:block;object-fit:contain;max-width:100%}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1100px 500px at 15% -10%,#e7effc 0%,transparent 60%),radial-gradient(900px 500px at 110% 110%,#fdece9 0%,transparent 55%),var(--bg)}.auth-card{background:var(--card);border-radius:24px;padding:38px;width:100%;max-width:430px;box-shadow:var(--shadow)}.auth-card.wide{max-width:780px}.auth-logo{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}.auth-card h1{color:var(--text);font-size:24px;margin:0;text-align:center}.auth-card .sub{color:var(--muted);font-size:14px;margin-bottom:22px;text-align:center}input:not([type=checkbox]):not([type=radio]),select,textarea{font-family:inherit;font-size:14px;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #2f6cd61f}input::placeholder,textarea::placeholder{color:#c2cadd}input[readonly]{background:#f4f7fe;color:var(--muted);cursor:not-allowed}input:disabled,select:disabled{background:#f4f7fe;color:var(--muted)}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}.field input,.field select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:14px;font-size:14px;background:#fff;color:var(--text);font-family:inherit;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:#c2cadd}.field input:focus,.field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #2f6cd61f}.field input[readonly]{background:#f4f7fe;color:var(--muted);cursor:not-allowed}.field input:disabled{background:#f4f7fe;color:var(--muted)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.btn{background:var(--brand);color:#fff;border:none;padding:12px 20px;border-radius:14px;font-size:14px;font-weight:600;cursor:pointer;width:100%;font-family:inherit;transition:transform .05s,box-shadow .15s,background .15s;box-shadow:0 8px 18px #2f6cd647}.btn:hover{background:var(--brand-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-sm{width:auto;padding:9px 16px;font-size:13px;box-shadow:none}.btn-ghost{background:#eef2fb;color:var(--brand);box-shadow:none}.btn-ghost:hover{background:#e2e9f7}.btn-danger{background:var(--red);box-shadow:none}.btn-danger:hover{background:#e0483b}.btn-green{background:var(--green);box-shadow:none}.btn-green:hover{background:#04b789}.alert{padding:12px 14px;border-radius:14px;font-size:13.5px;margin-bottom:16px}.alert-err{background:var(--red-bg);color:#c0392b}.alert-ok{background:var(--green-bg);color:#05996f}.link{color:var(--brand);font-weight:600;cursor:pointer}.shell{display:grid;grid-template-columns:262px 1fr;min-height:100vh}.sidebar{background:var(--card);padding:24px 0 20px;position:sticky;top:0;height:100vh;border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar .brand{padding:0 24px 22px;margin-bottom:6px;border-bottom:1px solid var(--border)}.sidebar nav{padding:14px 14px 0;flex:1;overflow-y:auto}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:11px 16px;margin-bottom:3px;font-size:14.5px;font-weight:500;color:var(--muted);border-radius:14px;transition:background .15s,color .15s}.sidebar nav a:hover{color:var(--text);background:#f4f7fe}.sidebar nav a.active{background:#eef2fb;color:var(--brand);font-weight:700}.sidebar .foot{padding:16px 18px 0;margin:10px 14px 0;border-top:1px solid var(--border)}.sidebar .who{font-size:12.5px;color:var(--muted);margin-bottom:10px;line-height:1.5}.main{padding:26px 32px}.main h2{color:var(--text);margin-bottom:20px;font-size:26px;font-weight:700}.topbar{display:none}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-bottom:22px}.card{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card .k{font-size:13px;color:var(--muted);font-weight:500}.card .v{font-size:26px;font-weight:700;color:var(--text);margin-top:6px;letter-spacing:-.5px}.card .v.small{font-size:19px}.stat{display:flex;align-items:center;gap:16px}.stat-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:22px;flex-shrink:0}.panel{background:var(--card);border-radius:var(--radius);padding:22px;margin-bottom:20px;box-shadow:var(--shadow)}.panel h3{color:var(--text);font-size:17px;margin-bottom:16px;font-weight:700}.badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.badge.member{background:#d4edda;color:#1e7e34}.badge.silver{background:#e7edf5;color:#5a7089}.badge.gold{background:var(--amber-bg);color:#b7791f}.badge.active,.badge.paid,.badge.verified,.badge.approved{background:var(--green-bg);color:#05996f}.badge.pending{background:var(--amber-bg);color:#b7791f}.badge.expired{background:#fff3cd;color:#856404}.badge.blocked,.badge.rejected,.badge.failed{background:var(--red-bg);color:#c0392b}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}tbody tr:last-child td{border-bottom:none}tr:hover td{background:#f9fbff}td.num,th.num{text-align:right}.muted{color:var(--muted);font-size:13.5px}.mt{margin-top:16px}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.hint{font-size:12px;color:var(--muted);margin-top:5px}.field-err{font-size:12px;color:#c0392b;margin-top:5px;font-weight:500}.field.has-err input,.field.has-err select{border-color:#e57373}.check{display:flex;align-items:center;gap:8px;font-size:13.5px;margin:8px 0 16px}.check input{width:auto}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b255973;display:grid;place-items:center;z-index:100;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:#fff;border-radius:var(--radius);padding:26px;max-width:440px;width:100%;box-shadow:var(--shadow)}.modal h3{color:var(--text);margin-bottom:12px;font-weight:700}.modal p{font-size:14px;margin-bottom:8px;line-height:1.55}@media (max-width: 900px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:50;width:262px;height:100vh;transform:translate(-100%);transition:transform .2s;box-shadow:var(--shadow)}.sidebar.open{transform:translate(0)}.topbar{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.hamb{background:#f4f7fe;border:none;color:var(--brand);font-size:18px;cursor:pointer;width:40px;height:40px;border-radius:12px}.main{padding:18px}.row2{grid-template-columns:1fr}}
