:root{--brand:#A51D78;--dark:#681044;--line:#e9d7e2;--ink:#3b2434;--muted:#806879;--bg:#fbf7fa;--mel:#B96045}*{box-sizing:border-box}body{margin:0;font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg)}header{background:linear-gradient(110deg,#71104f,var(--brand));color:#fff;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 2px 10px #600b421c}.brand{display:flex;align-items:center;gap:12px}.brand img{width:45px;height:45px;object-fit:contain;background:#fff;border-radius:12px;padding:3px}.brand strong{display:block;font-size:19px;letter-spacing:.02em}.brand small{display:block;opacity:.88;font-size:12px}.user{display:flex;gap:16px;align-items:center;font-size:12px}.lock{padding:7px 10px;border:1px solid #ffffff55;border-radius:12px}main{max-width:1320px;margin:25px auto;padding:0 20px}.filters{display:flex;align-items:end;gap:12px;background:white;border:1px solid var(--line);padding:16px;border-radius:15px}.filters>div{min-width:200px}label{display:block;color:var(--muted);font-weight:800;font-size:11px;letter-spacing:.07em;margin-bottom:5px}.readonly{border:1px solid var(--line);border-radius:9px;background:#faf6f9;padding:11px;font-weight:700;min-height:40px}#shift{width:100%;border:1px solid var(--line);border-radius:9px;background:#faf6f9;padding:10px 11px;min-height:40px;font:inherit;font-weight:700;color:var(--ink);cursor:pointer}#shift:focus-visible{outline:2px solid var(--brand);outline-offset:1px}button{cursor:pointer;font:inherit;font-weight:700;border-radius:9px;padding:10px 13px}#refresh{border:1px solid var(--brand);background:var(--brand);color:#fff}button:disabled{opacity:.55;cursor:default}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:17px 0}.kpis article{background:white;border:1px solid var(--line);border-radius:14px;padding:18px}.kpis span{display:block;color:var(--muted);font-size:12px}.kpis strong{display:block;font-size:29px;margin-top:5px;color:var(--dark)}.card{background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden}.table-head{padding:19px;display:flex;justify-content:space-between;align-items:center;gap:12px}.table-head h2{font-size:17px;margin:0}.table-head span{font-size:12px;color:var(--muted)}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th{background:#fdf2f8;color:#79516b;text-transform:uppercase;font-size:11px;letter-spacing:.04em;text-align:left}td,th{padding:13px 15px;border-bottom:1px solid #f1e5ed}td:nth-child(4){font-weight:700}tr:hover td{background:#fffbfd}.state{display:inline-block;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:800;white-space:nowrap;background:#eee;color:#4b4350}.state.llego{background:var(--mel);color:white}.state.confirmado{background:#d5f3df;color:#236b41}.state.en-espera{background:#fff2b5;color:#8d6010}.state.atendido{background:#c4f4d3;color:#215b36}.state.cancelado,.state.no-asistio{background:#f9d7d7;color:#892d32}.arrive{background:#fff;color:#7b3d56;border:1px solid #d5b6c5;min-width:75px;transition:background-color .14s,border-color .14s,color .14s}.arrive:hover:not(:disabled){background:#f6d4c7;border-color:#d88c72;color:#763e37}.arrive.is-active{background:#c9edd2;border-color:#81c49a;color:#24683d}.arrive.is-active:hover:not(:disabled){background:#b6e5c3;border-color:#6cb886;color:#205b37}.hint{font-size:12px;color:var(--muted);margin:12px 2px}.empty{text-align:center;color:var(--muted);padding:35px}#notice{position:fixed;bottom:18px;right:18px;background:var(--dark);color:white;padding:12px 16px;border-radius:9px;max-width:380px;display:none;box-shadow:0 8px 25px #43102a33}#notice.error{background:#a72339}@media(max-width:700px){header{padding:14px}.user{display:none}main{padding:0 10px;margin-top:12px}.filters{flex-wrap:wrap}.filters>div{min-width:130px;flex:1}.kpis{grid-template-columns:repeat(2,1fr);gap:8px}.kpis article{padding:13px}}
.authbox{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.authbox button{background:#fff;color:#71104f;border:1px solid #f1cde0}.signin{max-width:480px;margin:50px auto;padding:30px;background:#fff;border:1px solid var(--line);border-radius:17px;text-align:center}.signin button{background:var(--brand);color:white;border:none;margin:15px}.signin p{color:var(--muted)}#workspace[hidden],#signin[hidden]{display:none!important}.statusbar{font-size:12px;color:var(--muted)}@media(max-width:700px){.user{display:flex}.user span:first-child{display:none}}
