:root{--primary:#08776c;--line:#dfe6ea}*{box-sizing:border-box}body{margin:0;background:#f4f7f9;color:#17212b;font-family:Inter,Segoe UI,Arial,sans-serif}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.primary{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;background:var(--primary);padding:11px 16px;color:#fff;font-weight:700}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#082f31)}.login-card{width:min(420px,92vw);border-radius:20px;background:#fff;padding:34px;box-shadow:0 25px 80px #0004}.login-card .mark{display:grid;width:50px;height:50px;place-items:center;border-radius:14px;background:var(--primary);color:#fff;font-size:25px}.login-card h1{margin:18px 0 4px}.login-card p{margin:0 0 22px;color:#64748b}.login-card label,.form-card label,.modal-form label{display:block;margin:14px 0;font-size:13px;font-weight:700}.login-card input,.form-card input,.modal-form input,.modal-form select,.inline-form select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:11px}.login-card button{width:100%;border:0;border-radius:10px;background:var(--primary);padding:12px;color:#fff;font-weight:700}.login-card>a{display:block;margin-top:18px;text-align:center;color:var(--primary);font-size:13px;font-weight:700}.alert,.flash{border-radius:10px;background:#fef3c7;padding:12px;color:#92400e}.admin>aside{position:fixed;inset:0 auto 0 0;width:240px;background:#fff;border-right:1px solid var(--line);padding:18px}.side-brand{display:flex;align-items:center;gap:11px;padding-bottom:20px;border-bottom:1px solid var(--line)}.side-brand img,.side-brand>span{display:grid;width:42px;height:42px;object-fit:contain;place-items:center;border-radius:11px;background:var(--primary);color:#fff}.side-brand b,.side-brand small{display:block}.side-brand small{font-size:11px;color:#94a3b8}.admin nav{margin-top:24px}.admin nav a{display:block;border-radius:10px;padding:11px 13px;margin-bottom:5px;color:#64748b;font-weight:650}.admin nav a.active{background:color-mix(in srgb,var(--primary) 12%,white);color:var(--primary)}.logout{position:absolute;bottom:20px;left:24px;color:#dc2626}.admin>main{padding-left:240px}.admin header{height:76px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:#fff;padding:0 28px}.admin header h1{margin:0}.admin header small{color:#94a3b8}.admin header a{margin-left:auto}.admin-content{padding:28px;max-width:1400px;margin:auto}.flash{position:fixed;right:20px;top:20px;z-index:20;box-shadow:0 8px 30px #0002}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.stats article,.panel{border:1px solid var(--line);border-radius:16px;background:#fff;padding:20px}.stats small{display:block;color:#64748b}.stats strong{font-size:30px}.panel{margin-bottom:20px}.panel h3{margin:0}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel-head p{margin:4px 0;color:#64748b;font-size:13px}.table-wrap{overflow-x:auto;margin:0 -20px -20px}table{width:100%;min-width:700px;border-collapse:collapse}th{text-align:left;background:#f8fafc;padding:11px 20px;color:#94a3b8;font-size:11px;text-transform:uppercase}td{padding:13px 20px;border-top:1px solid #edf2f4;font-size:13px}td small{display:block;color:#94a3b8;margin-top:2px}.badge{display:inline-block;border-radius:99px;background:#f1f5f9;padding:4px 9px;font-size:11px}.badge.ok{background:#ecfdf5;color:#047857}.badge.warn{background:#fffbeb;color:#b45309}.row-actions{white-space:nowrap}.row-actions form{display:inline}.row-actions button,.row-actions a{border:0;background:none;padding:7px;color:var(--primary);font-weight:700}.row-actions .danger{color:#dc2626}.inline-form{display:grid;grid-template-columns:2fr 1fr auto;gap:12px}.inline-form select{margin:0}.settings-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.form-card input[type=color]{height:48px;padding:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.preview{text-align:center}.preview img{max-width:100px;max-height:100px}.preview span{display:inline-block;border-radius:8px;padding:10px 18px;color:#fff}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 20px 60px #0004}dialog::backdrop{background:#0f172a88}.modal-form{width:min(600px,90vw);padding:20px}.modal-head{display:flex;align-items:center}.modal-head h3{margin:0}.modal-head button{margin-left:auto;border:0;background:none;font-size:25px}.kiosk{min-height:100vh;background:#edf4f4}.kiosk header{height:86px;display:flex;align-items:center;gap:13px;background:#fff;padding:0 5vw;box-shadow:0 2px 15px #0001}.kiosk header img,.kiosk .logo{display:grid;width:48px;height:48px;object-fit:contain;place-items:center;border-radius:13px;background:var(--primary);color:#fff}.kiosk header h1,.kiosk header p{margin:0}.kiosk header p{color:#64748b}.kiosk header a{margin-left:auto;font-weight:700;color:var(--primary)}.kiosk main{width:min(800px,92vw);margin:7vh auto;text-align:center}.clock p{color:#64748b}.clock strong{display:block;font-size:62px;letter-spacing:-3px}.clock small{color:#64748b}.scan-result{margin-top:30px;border:2px solid transparent;border-radius:24px;background:#fff;padding:38px;box-shadow:0 15px 50px #143d3d16}.scan-result.success{border-color:#10b981}.scan-result.failed{border-color:#ef4444}.scan-result.info{border-color:#f59e0b}.scan-icon{display:grid;width:72px;height:72px;margin:auto;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--primary) 12%,white);color:var(--primary);font-size:42px}.kiosk #rfid{position:fixed;left:-9999px}.device-note{color:#64748b}
@media(max-width:800px){.admin>aside{position:static;width:auto}.admin nav{display:flex;overflow:auto}.admin nav a{white-space:nowrap}.logout{position:static;display:block}.admin>main{padding-left:0}.admin header{padding:0 15px}.admin-content{padding:18px 12px}.stats{grid-template-columns:1fr 1fr}.settings-grid,.inline-form{grid-template-columns:1fr}.clock strong{font-size:44px}}
