:root{--ink:#202124;--muted:#72757e;--canvas:#f7f7f4;--surface:#fff;--line:#e8e8e3;--brand:#6d4aff;--brand-dark:#251a52;--fresh:#12a77d;--warm:#ff9f43;--danger:#dc4c64;--shadow:0 8px 28px rgba(35,27,67,.08);--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--canvas);color:var(--ink);line-height:1.45}input,select,textarea,button{font:inherit}a{color:var(--brand)}h1,h2,h3{letter-spacing:-.025em}button,.btn{transition:.18s ease}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 17px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-weight:700;text-decoration:none;cursor:pointer;box-shadow:0 1px 2px #2021240a}.btn:hover{border-color:#c9c3ff;transform:translateY(-1px);box-shadow:0 6px 18px #6d4aff16}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 8px 20px #6d4aff2c}.alert{padding:14px 16px;border-radius:13px;border:1px solid transparent;font-weight:650;margin-bottom:16px}.alert.error{background:#fff0f2;color:#9f2940;border-color:#ffd3dc}.alert.success{background:#eafaf5;color:#087458;border-color:#c4efe2}.hidden{display:none!important}
/* Acceso e instalación */
.install,.login{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 15% 15%,#7b5cff 0,transparent 26%),radial-gradient(circle at 90% 85%,#16b98a 0,transparent 22%),#21163f}.install-card,.login-card{width:min(780px,94vw);background:rgba(255,255,255,.98);padding:38px;border-radius:26px;box-shadow:0 30px 90px #08051266;border:1px solid #ffffff80}.login-card{max-width:430px;display:grid;gap:15px;text-align:center}.login-card h1,.install-card h1{margin:4px 0}.login-card p,.install-card>p{color:var(--muted);margin-top:0}.login-card label,.grid-form label{display:grid;gap:7px;text-align:left;font-weight:700;font-size:13px;color:#41434a}.login-card input,.grid-form input,.grid-form select{width:100%;padding:13px 14px;border:1px solid #dfe0dc;border-radius:12px;background:#fbfbf9;outline:none}.login-card input:focus,.grid-form input:focus{border-color:var(--brand);box-shadow:0 0 0 4px #6d4aff16;background:#fff}.brand-mark{margin:auto;width:68px;height:68px;border-radius:21px;background:linear-gradient(145deg,var(--brand),#4f35c7);color:white;display:grid;place-items:center;font-size:24px;font-weight:900;box-shadow:0 12px 28px #6d4aff42}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-form h2,.grid-form .wide{grid-column:1/-1}.grid-form h2{font-size:17px;border-bottom:1px solid var(--line);padding-bottom:10px;margin:12px 0 0}
/* Panel principal */
.admin{display:grid;grid-template-columns:264px 1fr;min-height:100vh}.admin aside{background:#211a35;color:#fff;padding:24px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:11px;font-weight:900;font-size:21px;padding:8px 10px}.logo:before{content:"CC";width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--brand);font-size:14px}.logo{font-size:0}.logo span{font-size:19px;margin:0}.admin nav{display:grid;gap:4px;margin-top:28px}.admin nav a{position:relative;color:#d9d4e8;text-decoration:none;padding:12px 14px 12px 42px;border-radius:12px;font-weight:650;font-size:14px}.admin nav a:before{content:"";position:absolute;left:16px;top:50%;width:10px;height:10px;border:2px solid #9b92b5;border-radius:4px;transform:translateY(-50%)}.admin nav a:hover,.admin nav a.active{background:#ffffff12;color:white}.admin nav a:hover:before,.admin nav a.active:before{background:#9b84ff;border-color:#9b84ff}.user{margin-top:auto;display:grid;gap:4px;padding:16px;border-radius:15px;background:#ffffff0d;font-weight:750}.user small{color:#aaa2c0;font-weight:500}.user a{color:#fff;margin-top:9px;font-size:13px}.admin main{padding:32px;min-width:0;max-width:1600px;width:100%;margin:auto}.admin main>header,.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.admin h1,.admin h2{margin:0 0 5px}.admin main>header p{margin:0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:28px 0}.cards article,.panel{background:var(--surface);border-radius:var(--radius);padding:22px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(32,33,36,.025)}.cards article{position:relative;overflow:hidden;min-height:128px}.cards article:after{content:"";position:absolute;width:58px;height:58px;border-radius:18px;background:#f0edff;right:18px;top:18px}.cards article:nth-child(2):after{background:#e7f8f2}.cards article:nth-child(3):after{background:#fff1e2}.cards article:nth-child(4):after{background:#f3f3ef}.cards span{display:block;color:var(--muted);font-size:13px;font-weight:650;max-width:65%}.cards strong{display:block;font-size:34px;color:var(--ink);margin-top:15px;letter-spacing:-.04em}.panel{margin-bottom:20px;overflow:auto}.panel h2,.panel h3{margin-top:0}.panel p{color:var(--muted)}.service-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:20px}.service-summary div{padding:19px;background:#fafaf7;border:1px solid var(--line);border-radius:14px}.service-summary strong{display:block;font-size:28px;color:var(--brand)}table{width:100%;border-collapse:separate;border-spacing:0;margin-top:16px}th{padding:12px;text-align:left;border-bottom:1px solid var(--line);background:#fafaf7;color:#676970;font-size:11px;text-transform:uppercase;letter-spacing:.055em}th:first-child{border-radius:10px 0 0 10px}th:last-child{border-radius:0 10px 10px 0}td{padding:13px 12px;border-bottom:1px solid #efefeb;font-size:14px}tbody tr:hover td{background:#fcfbff}code{font-size:11px;word-break:break-all;background:#f2efff;padding:5px 7px;border-radius:7px}.inline{display:flex;gap:8px}.inline input,.inline select{padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff}
/* Kiosco */
.kiosk{min-height:100vh;background:radial-gradient(circle at 85% 10%,#eeeaff 0,transparent 22%),#f5f5f1}.kiosk>header{height:74px;background:#211a35;color:white;padding:0 30px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 5px 18px #211a3520}.kiosk header div{display:flex;align-items:center;justify-content:space-between;width:100%}.kiosk header strong{font-size:20px}.kiosk header span{color:#c8c0dc;font-variant-numeric:tabular-nums}.kiosk main{padding:26px;display:grid;place-items:start center}.kiosk-card{width:min(740px,96vw);background:#fff;border-radius:26px;padding:30px;text-align:center;box-shadow:var(--shadow);border:1px solid var(--line)}.scan-icon{width:68px;height:68px;border-radius:22px;background:#f0edff;color:var(--brand);font-size:40px;display:grid;place-items:center;margin:6px auto}.kiosk-card h1{margin:14px 0 5px}.kiosk-card>p{color:var(--muted);margin-top:0}#rut{width:100%;padding:18px;border:2px solid #d9d7df;border-radius:15px;text-align:center;font-size:28px;letter-spacing:3px;outline:none;background:#fcfcfa}#rut:focus{border-color:var(--brand);box-shadow:0 0 0 5px #6d4aff14}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:20px 0}.keypad button{min-height:68px;border:1px solid var(--line);border-radius:15px;background:#fafaf7;font-size:24px;font-weight:800;color:#353239;cursor:pointer}.keypad button:hover{background:#f1eeff;border-color:#d5ccff}.keypad button.action{background:#2a2142;color:white;border-color:#2a2142}.back{float:left;border:0;background:none;color:var(--brand);font-weight:750;cursor:pointer}.services{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:24px}.services button{min-height:124px;border:1px solid var(--line);border-top:6px solid var(--service);border-radius:17px;background:#fff;text-align:left;padding:20px;cursor:pointer;box-shadow:0 5px 16px #20212408}.services button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow)}.services button strong{display:block;font-size:20px}.services button small{color:var(--muted)}.services button:disabled{opacity:.48;cursor:not-allowed}.result{padding:28px}.result.ok h1{color:var(--fresh)}.result.errorx h1{color:var(--danger)}.ticket{width:302px;margin:20px auto;padding:16px;background:white;border:1px dashed #444;text-align:center;font:12px Arial}.ticket h2{font-size:20px}.ticket p{text-align:left}.ticket p:first-of-type{text-align:center}.kiosk-date{font-size:20px;font-weight:800;color:var(--brand-dark);margin-bottom:10px}.kiosk-message{min-height:24px;font-weight:750;color:#a52e42}.kiosk-message.unavailable{margin-top:14px;padding:15px;border-radius:12px;background:#fff5e8;color:#8a4d0e;border:1px solid #ffd9aa}
@media(max-width:950px){.admin{grid-template-columns:1fr}.admin aside{position:static;height:auto}.admin nav{grid-template-columns:repeat(3,1fr);margin-top:18px}.user{margin-top:18px}.cards{grid-template-columns:1fr 1fr}.service-summary{grid-template-columns:1fr 1fr}.admin main{padding:20px}.section-head,.admin main>header{align-items:flex-start;flex-wrap:wrap}.inline{flex-wrap:wrap}}@media(max-width:600px){.grid-form,.services,.cards{grid-template-columns:1fr}.service-summary{grid-template-columns:1fr 1fr}.kiosk main{padding:12px}.kiosk-card{padding:20px;border-radius:20px}.keypad button{min-height:58px}.admin nav{grid-template-columns:1fr 1fr}.admin main{padding:13px}.install-card,.login-card{padding:25px}.cards article{min-height:112px}}@media print{body *{visibility:hidden}.ticket,.ticket *{visibility:visible}.ticket{position:absolute;left:0;top:0;width:80mm;border:0;margin:0;padding:4mm}.kiosk>header,.result>h1,.result>p,.result>.btn{display:none}}
.kiosk{min-height:100dvh;overflow:auto}.kiosk main{min-height:calc(100dvh - 74px)}.scan-icon{width:82px;height:82px;overflow:hidden}.scan-icon img{width:100%;height:100%;object-fit:contain;background:#fff;padding:5px}.kiosk-close-btn{border:1px solid #ffffff35;background:#ffffff12;color:#fff;padding:8px 13px;border-radius:10px;font-weight:750;cursor:pointer}.shift-dialog{width:min(780px,94vw);border:0;border-radius:24px;padding:28px;box-shadow:0 30px 90px #08051266}.shift-dialog::backdrop{background:#171126aa;backdrop-filter:blur(5px)}.shift-dialog>input{width:100%;padding:15px;border:1px solid var(--line);border-radius:12px;font-size:21px;text-align:center;margin:12px 0}.dialog-x{float:right;border:0;background:#f1eff7;border-radius:50%;width:38px;height:38px;font-size:24px;cursor:pointer}.shift-result table{font-size:13px}.shift-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:600px){.kiosk>header{padding:0 12px}.kiosk-close-btn{padding:7px 9px;font-size:12px}.shift-dialog{padding:20px}.shift-actions{flex-direction:column}}
.shift-ticket{display:none;width:72mm;padding:3mm;color:#000;background:#fff;text-align:center;font:11px Arial}.shift-ticket h2{font-size:17px;margin:0 0 4px}.shift-ticket p{margin:5px 0}.shift-ticket section{padding:5px 0;border-bottom:1px dashed #555;text-align:left}.shift-ticket section>strong{display:block;text-align:center;font-size:12px;margin-bottom:3px}.shift-ticket section div{display:flex;justify-content:space-between;padding:1px 0}.shift-ticket hr{border:0;border-top:1px dashed #333}.shift-ticket .shift-total{display:flex;justify-content:space-between;font-size:13px;font-weight:700}@media print{@page{size:80mm auto;margin:0}body.kiosk.printing-service *{visibility:hidden!important}body.kiosk.printing-service .ticket,body.kiosk.printing-service .ticket *{visibility:visible!important}body.kiosk.printing-service .ticket{display:block!important;position:absolute;left:0;top:0;width:72mm;margin:0;padding:3mm;border:0}body.kiosk.printing-shift *{visibility:hidden!important}body.kiosk.printing-shift .shift-ticket,body.kiosk.printing-shift .shift-ticket *{visibility:visible!important}body.kiosk.printing-shift .shift-ticket{display:block!important;position:absolute;left:0;top:0;margin:0}}
