:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#172033;background:#eef2f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#edf1f7}button,input,select,textarea{font:inherit}#app{min-height:100vh}.admin-shell{min-height:100vh;display:grid;grid-template-columns:220px minmax(0,1fr);background:#edf1f7}.admin-shell--collapsed{grid-template-columns:72px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#101827;color:#f8fafc;display:flex;flex-direction:column;border-right:1px solid rgba(148,163,184,.2);box-shadow:8px 0 24px #0f172a1f}.sidebar-brand{height:72px;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid rgba(148,163,184,.2)}.brand-mark{width:38px;height:38px;flex:0 0 38px;border-radius:10px;display:grid;place-items:center;font-weight:800;background:#5eead4;color:#134e4a;box-shadow:0 6px 16px #14b8a647}.brand-copy{min-width:0;display:flex;flex-direction:column;line-height:1.2}.brand-copy strong{font-size:16px;letter-spacing:.2px}.brand-copy span{color:#94a3b8;font-size:12px}.admin-shell--collapsed .brand-copy,.admin-shell--collapsed .side-label{display:none}.side-menu{padding:14px 10px;display:flex;flex-direction:column;gap:8px}.side-menu.el-menu{border-right:0!important;background:transparent!important}.side-menu .el-menu-item{border-radius:10px;height:42px;margin:0;color:#cbd5e1}.side-menu .el-menu-item:hover{background:#94a3b82e!important;color:#fff}.side-menu .el-menu-item.is-active{color:#134e4a!important;background:#ccfbf1!important;box-shadow:0 8px 18px #14b8a638}.side-link{height:42px;display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:8px;color:#cbd5e1;text-decoration:none}.side-link:hover{background:#ffffff14;color:#fff}.side-link.router-link-active{color:#082f49;background:#bae6fd}.side-icon{width:20px;height:20px;flex:0 0 20px;border-radius:6px;display:grid;place-items:center;font-size:12px;font-weight:700;background:#ffffff1f}.side-link.router-link-active .side-icon{background:#0e749029}.workspace{min-width:0;min-height:100vh;display:flex;flex-direction:column}.topbar{height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d4deed;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px #0f172a0f}.topbar-left,.topbar-actions{display:flex;align-items:center;gap:12px}.page-title{font-size:18px;font-weight:700;color:#172033}.breadcrumb{margin-top:2px;color:#7c8a9e;font-size:12px}.admin-name{color:#64748b;font-size:14px}.main{padding:22px 24px 30px;flex:1;min-width:0}.layout--login{min-height:100vh}.main--login{min-height:100vh;padding:0;display:grid;place-items:center}.layout--public-form{min-height:100vh;background:#f8fafc}.main--public-form{min-height:100vh;padding:0}.btn,.icon-btn{height:34px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#172033;padding:0 12px;cursor:pointer}.btn:hover,.icon-btn:hover{border-color:#38bdf8}.icon-btn{width:34px;padding:0;display:grid;place-items:center;font-size:18px}.btn-primary{color:#fff;border:0;background:#0f766e}.btn-primary:hover{background:#115e59}.card{background:#fff;border:1px solid #dbe3ef;border-radius:12px;box-shadow:0 10px 28px #0f172a0f}.page-card{border-radius:12px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-header h2{margin:0;font-size:20px;color:#172033}.page-header p{margin:4px 0 0;color:#64748b;font-size:14px}.ops{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar-toggle{box-shadow:0 4px 12px #0f172a14}.admin-tag{border-radius:999px;padding:0 10px}.logout-btn{border-radius:999px}.login-page{width:100%;min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 18% 18%,rgba(20,184,166,.16),transparent 28%),radial-gradient(circle at 82% 20%,rgba(56,189,248,.14),transparent 30%),#edf1f7;padding:32px}.login-panel{width:min(920px,100%);display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:24px;align-items:stretch}.login-visual{min-height:520px;border-radius:18px;padding:36px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,#10182714,#101827b8),linear-gradient(135deg,#0f766e,#0f172a);color:#f8fafc;box-shadow:0 24px 70px #0f172a2e}.login-logo{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;font-size:28px;font-weight:800;background:#ccfbf1;color:#134e4a}.login-visual h1{margin:20px 0 8px;font-size:34px;letter-spacing:0}.login-visual p{margin:0;color:#cbd5e1;font-size:15px}.login-card{width:100%;min-height:520px;padding:6px;border-radius:18px}.login-card h2{margin:0 0 6px}.login-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.login-head p{margin:0;color:#64748b;font-size:13px}.muted{color:#64748b}.qr-shell{position:relative;width:264px;height:264px;border:1px solid #dbe3ef;border-radius:16px;display:grid;place-items:center;margin:18px auto 12px;background:#f8fafc;overflow:hidden;box-shadow:inset 0 0 0 8px #fff}.qr-shell img{width:240px;height:240px}.qr-shell--confirmed{border-color:#10b981}.qr-shell--failed,.qr-shell--expired{border-color:#f87171}.qr-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:24px;color:#fff;font-weight:700;background:#0f172ab8}.qr-mask--success{background:#0f766ed1}.qr-mask--error{background:#991b1bd1}.login-status-row{min-height:24px;display:flex;align-items:center;justify-content:center;gap:8px;color:#475569;font-size:13px;text-align:center}.status-dot{color:#64748b}.status-dot--pending,.status-dot--scanned{color:#0ea5e9}.status-dot--confirmed{color:#10b981}.status-dot--failed,.status-dot--expired{color:#ef4444}.login-actions{display:flex;justify-content:center;margin-top:18px}.payload-alert{margin-top:16px;word-break:break-all}@media(max-width:760px){.admin-shell,.admin-shell--collapsed{grid-template-columns:1fr}.sidebar{position:static;height:auto}.side-menu{flex-direction:row;overflow-x:auto}.admin-shell--collapsed .brand-copy,.admin-shell--collapsed .side-label{display:initial}.login-page{padding:18px}.login-panel{grid-template-columns:1fr}.login-visual{min-height:220px}}
