*{box-sizing:border-box;margin:0;padding:0}:root{--blue:#1d4ed8;--blue-lt:#dbeafe;--blue-dk:#1e3a8a;--blue-mid:#3b82f6;--green:#15803d;--green-lt:#dcfce7;--red:#b91c1c;--red-lt:#fee2e2;--amber:#b45309;--amber-lt:#fef3c7;--purple:#7c3aed;--purple-lt:#ede9fe;--teal:#0f766e;--teal-lt:#ccfbf1;--g50:#f9fafb;--g100:#f3f4f6;--g200:#e5e7eb;--g300:#d1d5db;--g400:#9ca3af;--g500:#6b7280;--g600:#4b5563;--g700:#374151;--g800:#1f2937;--g900:#111827;--r:8px;--r-lg:12px}body{background:var(--g50);color:var(--g800);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.app-layout{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--g200);background:#fff;flex-direction:column;flex-shrink:0;width:220px;display:flex}.sb-logo{border-bottom:1px solid var(--g100);align-items:center;gap:10px;padding:18px 16px;display:flex}.sb-logo-icon{background:var(--blue);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:flex}.sb-name{font-size:13px;font-weight:700}.sb-sub{color:var(--g400);font-size:10px}.sb-sec{color:var(--g400);text-transform:uppercase;letter-spacing:.4px;padding:14px 16px 6px;font-size:10px;font-weight:700}.sb-item{color:var(--g600);cursor:pointer;border-left:3px solid #0000;align-items:center;gap:10px;padding:9px 16px;font-size:13px;text-decoration:none;display:flex}.sb-item:hover{background:var(--g50)}.sb-item.active{background:var(--blue-lt);color:var(--blue-dk);border-left-color:var(--blue);font-weight:600}.sb-icon-wrap{text-align:center;flex-shrink:0;width:18px}.main-area{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--g200);background:#fff;justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.top-title{font-size:16px;font-weight:700}.top-sub{color:var(--g400);margin-top:1px;font-size:11px}.content-area{flex:1;padding:24px;overflow-y:auto}.card{border:1px solid var(--g200);border-radius:var(--r-lg);background:#fff;padding:20px}.card-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-title{align-items:center;gap:7px;font-size:14px;font-weight:700;display:flex}.btn{border-radius:var(--r);cursor:pointer;border:1px solid var(--g200);color:var(--g700);background:#fff;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.btn:hover{background:var(--g50)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff;border-color:#0000}.btn-primary:hover{background:var(--blue-dk)}.btn-green{background:var(--green);color:#fff;border-color:#0000}.btn-sm{padding:5px 10px;font-size:11.5px}.badge{border-radius:12px;align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-flex}.b-blue{background:var(--blue-lt);color:var(--blue)}.b-green{background:var(--green-lt);color:var(--green)}.b-amber{background:var(--amber-lt);color:var(--amber)}.b-red{background:var(--red-lt);color:var(--red)}.b-gray{background:var(--g100);color:var(--g500)}.b-purple{background:var(--purple-lt);color:var(--purple)}.b-teal{background:var(--teal-lt);color:var(--teal)}.fi{border:1.5px solid var(--g200);border-radius:var(--r);background:#fff;width:100%;padding:9px 12px;font-family:inherit;font-size:13px}.fi:focus{border-color:var(--blue);outline:none}.flbl{color:var(--g600);margin-bottom:4px;font-size:11.5px;font-weight:600;display:block}.msg-err{background:var(--red-lt);color:var(--red);border-radius:var(--r);margin-bottom:12px;padding:10px 14px;font-size:12.5px}.msg-info{background:var(--blue-lt);color:var(--blue-dk);border-radius:var(--r);margin-bottom:12px;padding:10px 14px;font-size:12.5px}.msg-success{background:var(--green-lt);color:var(--green);border-radius:var(--r);margin-bottom:12px;padding:10px 14px;font-size:12.5px}.tbl{border-collapse:collapse;width:100%;font-size:12.5px}.tbl th{text-align:left;color:var(--g500);text-transform:uppercase;letter-spacing:.3px;border-bottom:1.5px solid var(--g200);padding:8px 10px;font-size:11px;font-weight:600}.tbl td{border-bottom:1px solid var(--g100);padding:9px 10px}
