:root{--gold:#d8c56a;--gold2:#b49b3b;--black:#111;--paper:#fff;--soft:#f6f4eb;--line:#ddd;--danger:#b42318;--ok:#1d6b3b;--blue:#1f5f99}
*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:#f2f2f2;color:#222}button,input,select,textarea{font:inherit}.hidden{display:none!important}
.login-wrap{min-height:100vh;display:grid;place-items:center;background:#090909;padding:20px}.login-card{width:min(480px,96vw);background:white;border-radius:16px;padding:28px;box-shadow:0 20px 60px #0008}.login-card img{display:block;max-width:330px;width:90%;margin:0 auto 18px}.login-card h2{text-align:center;margin:6px 0 18px}.stack{display:grid;gap:10px}.field{display:grid;gap:5px}.field label{font-size:12px;font-weight:700;color:#555}.field input,.field select,.field textarea{width:100%;padding:9px;border:1px solid #bbb;border-radius:7px;background:white}.field textarea{min-height:74px;resize:vertical}
.btn{border:0;border-radius:7px;padding:9px 13px;cursor:pointer;background:#222;color:#fff;font-weight:600}.btn:hover{filter:brightness(1.1)}.btn.gold{background:var(--gold2);color:white}.btn.light{background:#eee;color:#222}.btn.danger{background:var(--danger)}.btn.ok{background:var(--ok)}.btn.small{padding:5px 8px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}
#app{min-height:100vh}.topbar{height:74px;background:var(--black);color:white;display:flex;align-items:center;padding:8px 16px;gap:16px;position:sticky;top:0;z-index:20;box-shadow:0 2px 8px #0005}.topbar img{height:54px;max-width:310px;object-fit:contain;object-position:left}.topbar .spacer{flex:1}.userbox{text-align:right;font-size:12px}.userbox b{color:var(--gold)}
.layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 74px)}nav{background:#1a1a1a;padding:12px 8px}nav button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#ddd;padding:11px 12px;border-radius:6px;cursor:pointer;margin-bottom:3px}nav button:hover,nav button.active{background:#333;color:var(--gold)}main{padding:18px;overflow:auto}.view{display:none}.view.active{display:block}.view h2{margin-top:0}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.toolbar .spacer{flex:1}
.card{background:white;border:1px solid #ddd;border-radius:10px;padding:14px;margin-bottom:14px;box-shadow:0 1px 4px #0001}.card h3{margin:0 0 10px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.span2{grid-column:span 2}.span3{grid-column:span 3}.span4{grid-column:span 4}.checks{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.hint{font-size:12px;color:#666}.warning{padding:10px;border-left:4px solid #b8860b;background:#fff8d6;font-size:13px}.error{color:#a11;font-size:13px}.success{color:#176b36;font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-bottom:14px}.kpi{background:white;border:1px solid #ddd;border-radius:10px;padding:14px}.kpi .n{font-size:28px;font-weight:800}.kpi .label{font-size:12px;color:#666}.kpi.gold{border-top:4px solid var(--gold2)}
.table-wrap{overflow:auto;background:white;border:1px solid #ddd;border-radius:8px}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#eee;text-align:left;position:sticky;top:0;z-index:2}th,td{padding:8px;border-bottom:1px solid #e4e4e4;vertical-align:top}tr:hover td{background:#fffdf4}.num{text-align:right}.center{text-align:center}.badge{display:inline-block;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:700}.badge.RESERVED{background:#e8f0ff;color:#245}.badge.CHECKED_IN{background:#e1f6e9;color:#164}.badge.CHECKED_OUT{background:#eee;color:#555}.badge.CANCELED{background:#fde7e5;color:#a11}.badge.off{background:#fde7e5;color:#a11}.badge.on{background:#e1f6e9;color:#164}.badge.gold{background:#fff4c7;color:#755f00}
.calendar-wrap{overflow:auto;border:1px solid #ccc;background:white;border-radius:8px}.calendar{border-collapse:separate;border-spacing:0;font-size:11px;min-width:max-content}.calendar th,.calendar td{min-width:34px;height:34px;text-align:center;padding:2px;border-right:1px solid #eee;border-bottom:1px solid #eee}.calendar th.room,.calendar td.room{position:sticky;left:0;min-width:100px;background:#fafafa;z-index:3;text-align:left;font-weight:700}.calendar .busy{background:#cfe2f3;cursor:pointer}.calendar .inhouse{background:#cdebd8}.calendar .maint{background:#f4cccc}.calendar .high{box-shadow:inset 0 3px 0 var(--gold2)}.calendar .today{outline:2px solid #333;outline-offset:-2px}
pre{white-space:pre-wrap}.muted{color:#777}.right{text-align:right}.nowrap{white-space:nowrap}
@media(max-width:900px){.layout{grid-template-columns:1fr}nav{display:flex;overflow:auto;position:sticky;top:74px;z-index:19;padding:7px}nav button{min-width:max-content;width:auto;margin:0 3px}.grid4,.grid3,.grid2{grid-template-columns:1fr}.span2,.span3,.span4{grid-column:auto}.kpis{grid-template-columns:repeat(2,1fr)}main{padding:10px}.topbar img{max-width:190px}.userbox{display:none}}
@media print{.topbar,nav,.toolbar,.no-print{display:none!important}.layout{display:block}main{padding:0}.card{box-shadow:none;border:0}.view{display:none!important}.view.active{display:block!important}}
.badge.PARTIAL{background:#fff4c7;color:#755f00}.table-wrap input[type=date]{min-width:138px;padding:5px;border:1px solid #bbb;border-radius:6px;background:#fff}.table-wrap input:disabled{background:#f1f1f1;color:#666}.stay-note{font-size:11px;color:#666}

/* ZULHOTEL 2.0 - licencia */
.app-footer{background:#0b1420;color:#eaf6fb;padding:10px 18px;border-top:1px solid #17344a;display:flex;align-items:center;justify-content:center;gap:18px;min-height:76px;box-shadow:0 -2px 10px #0002}
.footer-brand{background:#f7fbff;border:1px solid #d8e7ee;border-radius:10px;padding:5px 9px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 1px 4px #0002}
.footer-product img{display:block;width:190px;max-width:28vw;height:48px;object-fit:cover;object-position:center}
.footer-umbrella img{display:block;width:240px;max-width:34vw;height:43px;object-fit:cover;object-position:center}
.footer-meta{text-align:center;min-width:230px;line-height:1.35}.footer-version{font-size:13px;color:#9ee7ff}.footer-version strong{color:#fff}.footer-support{font-size:11px;color:#bdcbd4;margin-top:4px}
@media(max-width:760px){.app-footer{gap:8px;padding:8px;flex-wrap:wrap}.footer-product img{width:145px;height:38px;max-width:42vw}.footer-umbrella img{width:175px;height:32px;max-width:48vw}.footer-meta{order:3;width:100%;min-width:0}.footer-support{font-size:10px}}
.license-mini{margin-top:10px;padding:9px;border:1px solid #ddd;border-radius:7px;background:#faf8ed;font-size:12px;text-align:center}
.license-banner{background:#fff4c7;color:#5e4b00;border:1px solid #c8ad40;border-radius:7px;padding:6px 10px;font-size:12px;max-width:520px}
.license-status-card{padding:12px;border-left:5px solid #b49b3b;background:#faf8ed;margin-bottom:12px}.license-status-card.blocked{border-left-color:#b42318;background:#fdecea}.license-status-card.ok{border-left-color:#1d6b3b;background:#eaf7ef}
.codebox{width:100%;min-height:105px;font-family:Consolas,monospace;font-size:11px;word-break:break-all;padding:10px;border:1px solid #bbb;border-radius:7px;background:#fbfbfb}
.settings-tabs{border-bottom:1px solid #ddd;padding-bottom:10px}
@media(max-width:900px){.license-banner{display:none!important}}
