:root{--white: #ffffff;--graphite: #2b2f33;--graphite-dark: #22262a;--black: #16181a;--gray-light: #f4f5f6;--gray: #e5e7eb;--gray-mid: #cbd0d6;--muted: #6b7280;--red: #ee312f;--red-dark: #c8231f;--yellow: #ffff00;--green: #16a34a;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 6px 24px rgba(0, 0, 0, .05);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--gray-light);color:var(--graphite);font-size:14px}a{color:var(--red);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}h3{font-size:14px;margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.app{display:flex;min-height:100vh}.sidebar{width:232px;background:var(--graphite);color:#dfe3e8;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{padding:20px 20px 16px;font-size:20px;font-weight:800;color:#fff;display:flex;align-items:center;gap:8px}.brand .dot{width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px #ee312f40}.nav{flex:1;padding:8px;display:flex;flex-direction:column;gap:2px}.nav a{color:#c3c9d0;padding:10px 14px;border-radius:8px;font-weight:500;display:flex;align-items:center;gap:10px}.nav a:hover{background:var(--graphite-dark);color:#fff;text-decoration:none}.nav a.active{background:var(--red);color:#fff}.sidebar-foot{padding:14px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#9aa2ab}.sidebar-foot button{margin-top:8px}.main{flex:1;min-width:0;padding:24px 28px 60px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px;gap:16px;flex-wrap:wrap}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.grid{display:grid;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (max-width: 1000px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}.stat{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;border-left:4px solid var(--red)}.stat .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.stat .value{font-size:28px;font-weight:800;color:var(--black);margin-top:4px}.stat.alt{border-left-color:var(--graphite)}.stat.warn{border-left-color:#d1a300}button,.btn{font:inherit;cursor:pointer;border:0;border-radius:8px;padding:9px 16px;font-weight:600;background:var(--red);color:#fff;transition:background .15s,opacity .15s}button:hover,.btn:hover{background:var(--red-dark);text-decoration:none}button:disabled{opacity:.5;cursor:default}.btn-ghost{background:var(--white);color:var(--graphite);border:1px solid var(--gray)}.btn-ghost:hover{background:var(--gray-light)}.btn-dark{background:var(--graphite)}.btn-dark:hover{background:var(--graphite-dark)}.btn-sm{padding:6px 10px;font-size:12px;border-radius:6px}.btn-row{display:flex;gap:8px;flex-wrap:wrap}label.field{display:block;margin-bottom:14px}label.field>span{display:block;font-weight:600;margin-bottom:5px;font-size:13px}input,select,textarea{width:100%;font:inherit;padding:9px 11px;border:1px solid var(--gray-mid);border-radius:8px;background:#fff;color:var(--graphite)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px #ee312f26}textarea{min-height:70px;resize:vertical}.hint{color:var(--muted);font-size:12px;margin-top:4px}.check{display:flex;align-items:center;gap:8px;margin-bottom:12px}.check input{width:auto}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 700px){.row2{grid-template-columns:1fr}}.inline-input{display:flex;gap:8px;align-items:stretch}.prefix{background:var(--gray-light);border:1px solid var(--gray-mid);border-right:0;border-radius:8px 0 0 8px;padding:9px 11px;color:var(--muted);white-space:nowrap;display:flex;align-items:center}.inline-input input{border-radius:0 8px 8px 0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--gray);vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}tr:hover td{background:#fafbfc}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge.active{background:#e6f6ec;color:var(--green)}.badge.inactive{background:var(--gray);color:var(--muted)}.badge.archived{background:#fdecec;color:var(--red)}.badge.yellow{background:var(--yellow);color:var(--black)}.badge.qr{background:var(--graphite);color:#fff}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar input,.toolbar select{width:auto}.search{min-width:240px;flex:1}.spacer{flex:1}.chart-box{height:300px}.empty{padding:40px;text-align:center;color:var(--muted)}.copy-flash{color:var(--green);font-weight:600;font-size:12px}.list-clean{list-style:none;padding:0;margin:0}.list-clean li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--gray)}.list-clean li:last-child{border-bottom:0}.bar-mini{height:6px;background:var(--gray);border-radius:4px;overflow:hidden;margin-top:3px}.bar-mini>div{height:100%;background:var(--red)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--graphite),var(--black))}.login-card{background:#fff;border-radius:16px;padding:36px;width:360px;box-shadow:0 20px 60px #0000004d}.login-card .brand{color:var(--graphite);padding:0 0 20px;font-size:26px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:14px;padding:24px;width:460px;max-width:100%;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.error{background:#fdecec;color:var(--red-dark);padding:10px 12px;border-radius:8px;margin-bottom:14px;font-size:13px}.section-title{border-top:1px solid var(--gray);padding-top:16px;margin-top:8px;font-weight:700}
