:root{--brand:#184fca;--brand-dark:#0f3a9e;--ink:#0a1e41;--ink-2:#17324e;--muted:#6b8198;--line:#d8e2ee;--bg:#f0f4f8;--card:#fff;--ok:#16a34a;--warn:#f59e0b;--danger:#dc2626;--radius:12px;--shadow:0 1px 2px #0a1e410f, 0 4px 16px #0a1e410f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink-2);background:var(--bg);font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}body{background:var(--bg)}h1,h2,h3{color:var(--ink);margin:0 0 8px}h1{font-size:26px}h2{font-size:20px}h3{font-size:16px}p{margin:0 0 8px}a{color:var(--brand)}button,input,select,textarea{font:inherit}.btn{background:var(--brand);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--brand-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{color:var(--ink-2);border-color:var(--line);background:#fff}.btn.secondary:hover:not(:disabled){background:#f4f7fb}.btn.danger{background:var(--danger)}.btn.danger:hover:not(:disabled){background:#b91c1c}.btn.ghost{color:var(--brand);background:0 0}.btn.ghost:hover:not(:disabled){background:#e9f1ff}.btn.small{border-radius:8px;padding:5px 10px;font-size:13px}.btn.big{border-radius:14px;padding:18px 28px;font-size:22px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--ink-2);font-size:13px;font-weight:600}.field .hint{color:var(--muted);font-size:12px}.input,select.input,textarea.input{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;min-width:0;padding:9px 12px}.input:focus{border-color:var(--brand);outline:2px solid #c7d8ff}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.grid{gap:14px;display:grid}.grid.cols-2{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:Consolas,Courier New,monospace}.spacer{flex:1}.notice{border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:14px}.notice.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.notice.ok{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.notice.info{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.notice.warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.badge{color:var(--brand);background:#e9f1ff;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.ok{color:#166534;background:#dcfce7}.badge.warn{color:#92400e;background:#fef3c7}.badge.danger{color:#991b1b;background:#fee2e2}.badge.gray{color:#475569;background:#eef2f6}table.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px;font-size:12px}.table td{vertical-align:middle;border-bottom:1px solid #eef2f6;padding:9px 8px}.table tr:last-child td{border-bottom:0}.table-wrap{overflow-x:auto}.color-dot{vertical-align:middle;border-radius:4px;width:14px;height:14px;margin-right:6px;display:inline-block}.spinner{border:3px solid #cbd8ee;border-top-color:var(--brand);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{z-index:50;background:#0a1e4173;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(560px,100%);max-height:90vh;padding:22px;overflow:auto;box-shadow:0 20px 60px #00000040}.modal .actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.center-page{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.center-page .card{width:min(460px,100%)}.brand-title{align-items:center;gap:10px;margin-bottom:16px;display:flex}.brand-logo{background:var(--brand);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;font-weight:800;display:flex}.role-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;width:min(920px,100%);display:grid}.role-card{color:inherit;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:22px;text-decoration:none;transition:transform .12s,border-color .12s}.role-card:hover{border-color:var(--brand);transform:translateY(-2px)}.role-card .icon{font-size:30px}.role-card h3{margin-top:10px}.admin-shell{grid-template-columns:240px 1fr;min-height:100%;display:grid}.sidebar{background:var(--ink);color:#c9d6ea;flex-direction:column;gap:4px;padding:18px 12px;display:flex}.sidebar .brand-title{color:#fff;padding:0 8px}.sidebar a{color:#c9d6ea;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;text-decoration:none;display:flex}.sidebar a:hover{color:#fff;background:#ffffff12}.sidebar a.active{background:var(--brand);color:#fff}.sidebar .section{text-transform:uppercase;letter-spacing:.08em;color:#7f93b3;margin:14px 12px 4px;font-size:11px}.admin-main{padding:22px 26px;overflow:auto}.admin-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px}.stat .value{color:var(--ink);font-size:28px;font-weight:800}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.code-box{letter-spacing:.12em;color:var(--brand);text-align:center;background:#f6f9ff;border:2px dashed #bcd0f7;border-radius:12px;padding:16px;font-family:Consolas,monospace;font-size:34px;font-weight:800}@media (width<=860px){.admin-shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap}.sidebar .section{display:none}.admin-main{padding:16px}}.terminal{grid-template-columns:1fr 360px;gap:16px;min-height:100%;padding:16px;display:grid}.terminal .current{text-align:center;padding:28px 18px}.terminal .current .code{color:var(--brand);font-size:84px;font-weight:800;line-height:1}.terminal .actions-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px;display:grid}.queue-item{border:1px solid #eef2f6;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:9px 10px;display:flex}.queue-item.dim{opacity:.5}.queue-item .code{color:var(--ink);font-size:18px;font-weight:800}.topbar{background:var(--ink);color:#fff;align-items:center;gap:12px;padding:10px 16px;display:flex}.topbar .muted{color:#9fb2cf}@media (width<=900px){.terminal{grid-template-columns:1fr}}.kiosk{-webkit-user-select:none;user-select:none;background:linear-gradient(#f6f9ff,#eaf0fa);flex-direction:column;min-height:100%;display:flex}.kiosk-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.kiosk-header .branch{color:var(--brand);font-size:26px;font-weight:800}.kiosk-header .clock{background:var(--ink);color:#fff;border-radius:10px;padding:8px 14px;font-size:22px;font-weight:700}.kiosk-body{flex-direction:column;flex:1;gap:18px;padding:26px 28px;display:flex}.kiosk-title{color:var(--muted);text-align:center;font-size:22px}.kiosk-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.kiosk-btn{color:#fff;cursor:pointer;border:0;border-radius:18px;min-height:140px;padding:34px 20px;font-size:30px;font-weight:800;box-shadow:0 6px 18px #0a1e4126}.kiosk-btn:active{transform:scale(.98)}.kiosk-btn.light{color:var(--ink);border:2px solid var(--line);background:#fff}.kiosk-result{z-index:40;text-align:center;background:#fffffff7;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.kiosk-result .title{color:var(--ink);font-size:36px;font-weight:700}.kiosk-result .code{color:var(--brand);font-size:160px;font-weight:900;line-height:1}.kiosk-result .detail{color:var(--ink-2);white-space:pre-line;font-size:26px}.kiosk-result.error .title{color:var(--danger)}.keypad{grid-template-columns:repeat(10,1fr);gap:8px;display:grid}.keypad button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;padding:14px 0;font-size:20px;font-weight:700}.print-ticket{display:none}@media print{@page{size:80mm auto;margin:0}body *{visibility:hidden!important}.print-ticket,.print-ticket *{visibility:visible!important}.print-ticket{color:#000;text-align:center;width:72mm;padding:4mm;font-family:Arial,sans-serif;display:block;position:absolute;top:0;left:0}.print-ticket .p-code{margin:2mm 0;font-size:44pt;font-weight:900}.print-ticket .p-line{margin:1mm 0;font-size:11pt}.print-ticket hr{border:0;border-top:1px dashed #000}}.tv{color:#fff;cursor:none;background:radial-gradient(circle at 20% 0,#1e3a8a,#0a1e41 60%);grid-template-rows:auto 1fr auto;height:100%;display:grid;overflow:hidden}.tv-header{justify-content:space-between;align-items:center;padding:2.2vh 3vw;display:flex}.tv-header .branch{font-size:3.2vh;font-weight:800}.tv-header .clock{background:#ffffff1a;border-radius:1vh;padding:.6vh 1.4vw;font-size:4vh;font-weight:800}.tv-main{grid-template-columns:1.4fr 1fr;gap:2.4vw;min-height:0;padding:1vh 3vw 2vh;display:grid}.tv-current{color:var(--ink);text-align:center;background:#fff;border-radius:2.4vh;flex-direction:column;justify-content:center;align-items:center;padding:3vh;display:flex;box-shadow:0 2vh 6vh #00000059}.tv-current .label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:3.4vh;font-weight:700}.tv-current .code{color:var(--brand);white-space:nowrap;font-size:min(22vh,15vw);font-weight:900;line-height:1}.tv-current .counter{color:var(--ink);font-size:6vh;font-weight:800}.tv-current .service{color:var(--muted);font-size:3vh}.tv-current.flash{animation:1s ease-in-out 4 flash}@keyframes flash{50%{background:#fff7d6}}.tv-side{flex-direction:column;gap:2vh;min-height:0;display:flex}.tv-panel{background:#ffffff14;border-radius:2vh;min-height:0;padding:2vh 1.6vw;overflow:hidden}.tv-panel h3{color:#c9d6ea;text-transform:uppercase;letter-spacing:.08em;font-size:2.6vh}.tv-row{border-bottom:1px solid #ffffff14;justify-content:space-between;padding:.8vh 0;font-size:4vh;font-weight:800;display:flex}.tv-row .counter{color:#fcd34d}.tv-row.next{color:#dbe6f7;font-size:3.2vh;font-weight:700}.tv-footer{white-space:nowrap;background:#00000040;padding:1.4vh 3vw;font-size:2.8vh;overflow:hidden}.tv-footer span{padding-left:100%;animation:28s linear infinite marquee;display:inline-block}@keyframes marquee{to{transform:translate(-100%)}}@media (aspect-ratio<=1){.tv-main{grid-template-rows:auto 1fr;grid-template-columns:1fr}.tv-current .code{font-size:min(16vh,24vw)}}.tv-offline{background:var(--danger);color:#fff;border-radius:1vh;padding:.6vh 1vw;font-size:2vh;position:fixed;bottom:1.2vh;right:1.2vw}
