:root{
  --ink:#0C1424; --ink-soft:#4B5468; --ink-faint:#8890A0; --paper:#FFFFFF; --surface:#F5F6FA;
  --line:#E2E5EC; --blue:#2B5FF6; --blue-deep:#1A3FC4; --blue-tint:#EAF0FF;
  --red:#D8384A; --red-tint:#FDEEEF; --green:#16A34A; --green-tint:#EAFBF0;
  --radius-md:16px; --sidebar-w:230px;
  --shadow-card: 0 1px 2px rgba(12,20,36,0.03), 0 8px 20px rgba(12,20,36,0.05);
}
*{box-sizing:border-box;}
body{margin:0;font-family:'IBM Plex Sans',sans-serif;color:var(--ink);background:var(--surface);}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;font-weight:600;letter-spacing:-0.02em;margin:0;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}

.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:22px 16px;z-index:30;}
.logo{display:flex;align-items:center;gap:10px;font-family:'Space Grotesk';font-weight:700;font-size:17px;padding:6px 8px 26px;}
.nav-group{display:flex;flex-direction:column;gap:2px;flex:1;}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:14.5px;font-weight:500;color:var(--ink-soft);border:none;background:none;text-align:left;width:100%;}
.nav-item:hover{background:var(--surface);color:var(--ink);}
.nav-item.active{background:var(--blue-tint);color:var(--blue-deep);}
.sidebar-foot{border-top:1px solid var(--line);padding-top:14px;margin-top:10px;}
.logout-btn{font-size:13px;color:var(--ink-soft);}
.logout-btn:hover{color:var(--red);}

.main{margin-left:var(--sidebar-w);min-height:100vh;}
.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);}
.top-profile{display:flex;align-items:center;gap:10px;}
.top-avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#2B5FF6,#7C9AFF);display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Space Grotesk';font-weight:600;font-size:13px;}
.content{padding:32px;max-width:920px;}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:14px;}
.page-head h1{font-size:24px;}
.page-head p{color:var(--ink-soft);font-size:14px;margin-top:5px;}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:24px;margin-bottom:18px;}
.card h3{font-size:15px;margin-bottom:16px;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;}
.field input, .field textarea, .field select{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);font-size:14px;font-family:inherit;color:var(--ink);}
.field input:focus, .field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:10px;font-weight:600;font-size:13.5px;border:1px solid var(--line);background:#fff;}
.btn:hover{border-color:var(--ink);}
.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink);}
.btn-primary:hover{background:var(--blue-deep);border-color:var(--blue-deep);}
.btn-sm{padding:7px 12px;font-size:12.5px;}
.btn-danger{color:var(--red);}
.btn-danger:hover{border-color:var(--red);background:var(--red-tint);}
.btn-block{width:100%;justify-content:center;}

.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
.metric-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;}
.metric-value{font-family:'Space Grotesk';font-size:24px;font-weight:600;}
.metric-label{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}

.list-item{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line);}
.list-item:first-child{border-top:none;}
.li-info{flex:1;min-width:0;}
.li-title{font-weight:600;font-size:14px;}
.li-sub{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.li-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}

.toggle{width:36px;height:21px;border-radius:100px;background:var(--line);position:relative;border:none;flex-shrink:0;}
.toggle::after{content:'';position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;transition:left .15s ease;box-shadow:0 1px 2px rgba(0,0,0,0.2);}
.toggle.on{background:var(--blue);}
.toggle.on::after{left:17px;}

.icon-action{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);border:none;background:none;font-size:15px;}
.icon-action:hover{background:var(--surface);color:var(--ink);}
.icon-action.delete:hover{color:var(--red);}

.empty-state{padding:36px 20px;text-align:center;color:var(--ink-faint);font-size:13.5px;}

.banner{padding:11px 14px;border-radius:10px;font-size:13px;margin-bottom:16px;display:none;}
.banner.error{background:var(--red-tint);color:var(--red);}
.banner.success{background:var(--green-tint);color:var(--green);}

.tag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:100px;}
.tag.active{background:var(--green-tint);color:var(--green);}
.tag.inactive{background:var(--surface);color:var(--ink-faint);}

.qr-preview{width:100px;height:100px;border-radius:10px;border:1px solid var(--line);flex-shrink:0;}

@media(max-width:800px){
  .sidebar{transform:translateX(-100%);}
  .main{margin-left:0;}
  .metric-grid, .field-row{grid-template-columns:1fr;}
}
