:root{--blue:#0f4c81;--blue2:#2f75b5;--pale:#d9eaf7;--bg:#f5f7fa;--text:#1f2937;--muted:#6b7280;--border:#d8dee8;--danger:#b42318;--green:#16794a}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar h1{margin:0;font-size:24px}.topbar p{margin:3px 0 0;color:var(--muted)}
.tabs{display:flex;gap:6px;padding:10px 18px;background:#fff;border-bottom:1px solid var(--border);overflow:auto;position:sticky;top:78px;z-index:19}.tabs button{border:0;background:transparent;padding:10px 14px;border-radius:9px;white-space:nowrap;font-weight:600;color:#46505d}.tabs button.active{background:var(--pale);color:var(--blue)}
main{padding:22px;max-width:1700px;margin:auto}.view{display:none}.view.active{display:block}.primary{background:var(--blue);color:#fff;border:0;border-radius:9px;padding:10px 16px;font-weight:700;cursor:pointer}.ghost{background:#fff;border:1px solid var(--border);border-radius:9px;padding:10px 16px;cursor:pointer}.danger{color:var(--danger)}
.toolbar,.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.section-head h2{margin:0 0 3px}.section-head p{margin:0;color:var(--muted)}label{font-weight:600;color:#374151}select,input,textarea{width:100%;margin-top:6px;padding:10px;border:1px solid #cfd6df;border-radius:8px;background:#fff;font:inherit}.toolbar label,.section-head>label{min-width:140px}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin:16px 0}.kpis.compact{grid-template-columns:repeat(4,minmax(150px,1fr))}.kpi{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}.kpi .label{font-size:13px;color:var(--muted)}.kpi .value{font-size:24px;font-weight:800;margin-top:5px}.kpi .sub{font-size:12px;color:var(--muted);margin-top:4px}
.panel{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px}.panel h2{margin-top:0}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px}table{border-collapse:collapse;width:100%;min-width:1350px}th,td{padding:10px 11px;border-bottom:1px solid #e7ebf0;text-align:left;font-size:13px;white-space:nowrap}th{background:#eef3f8;position:sticky;top:0;z-index:2}tbody tr:hover{background:#f8fafc}.money{text-align:right;font-variant-numeric:tabular-nums}.status{padding:4px 8px;border-radius:999px;background:#eef2ff;font-size:12px}.action-btn{border:0;background:#eef3f8;border-radius:7px;padding:6px 9px;cursor:pointer;margin-right:4px}
.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:14px}.month{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.month h3{margin:0;background:var(--blue);color:#fff;padding:10px 12px;text-transform:capitalize}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays div{font-size:11px;font-weight:700;color:var(--muted);padding:7px;text-align:center;background:#f8fafc}.day{min-height:84px;border-top:1px solid #edf0f3;border-right:1px solid #edf0f3;padding:5px;overflow:hidden}.day:nth-child(7n){border-right:0}.day.empty{background:#fafbfc}.day.occupied{background:#cfe2f3}.day.today{outline:2px solid #ffb020;outline-offset:-2px}.daynum{font-weight:800;font-size:12px;margin-bottom:4px}.guest-line{font-size:11px;padding:2px 4px;border-radius:5px;background:rgba(255,255,255,.75);margin:2px 0;white-space:normal;line-height:1.2}.guest-line.departure::before{content:"↗ ";font-weight:700}.guest-line.arrival::before{content:"↘ ";font-weight:700}.guest-line.stay::before{content:"• ";font-weight:700}
.upcoming-item{display:grid;grid-template-columns:210px 1fr 130px 120px;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f3}.upcoming-item:last-child{border-bottom:0}.muted{color:var(--muted)}
dialog{border:0;border-radius:14px;padding:0;width:min(900px,94vw);box-shadow:0 25px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(15,23,42,.42)}#bookingForm{padding:20px}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.icon-btn{border:0;background:transparent;font-size:28px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}.form-grid .full{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.calc-preview{margin-top:16px;background:#f0f7fc;border:1px solid #c9dfef;border-radius:10px;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.calc-preview strong{display:block;font-size:17px}.settings-panel{max-width:620px}.settings-panel label{display:block;margin:14px 0}.settings-actions{display:flex;gap:8px;margin-top:18px}
@media(max-width:1100px){.calendar-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.topbar{padding:14px}.topbar h1{font-size:20px}.topbar p{display:none}.tabs{top:64px}.calendar-grid{grid-template-columns:1fr}.kpis,.kpis.compact{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.calc-preview{grid-template-columns:1fr 1fr}.upcoming-item{grid-template-columns:165px 1fr}.upcoming-item>*:nth-child(n+3){display:none}main{padding:14px}.day{min-height:72px}}

.availability{margin-top:10px;padding:10px 12px;border-radius:10px;font-weight:700}
.availability.ok{background:#e8f6ec;color:#176b2c;border:1px solid #a8d7b4}
.availability.error{background:#fdecec;color:#9b1c1c;border:1px solid #efb1b1}
button:disabled{opacity:.45;cursor:not-allowed}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef5fb,#f8fafc)}
.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:16px;padding:28px;box-shadow:0 18px 60px rgba(15,76,129,.12)}.login-card h1{margin:0}.login-card p{color:var(--muted);margin:7px 0 22px}.login-card label{display:block;margin:14px 0}.login-card .primary{width:100%;margin-top:8px}.login-message{min-height:24px;color:var(--danger);font-weight:700;margin:10px 0 4px;padding:8px 0}.login-message.info{color:#0f4c81}.login-message.error{color:var(--danger)}
.user-actions{display:flex;align-items:center;gap:9px}.user-badge{font-size:13px;color:var(--muted);font-weight:650}
@media(max-width:700px){.user-badge{display:none}.user-actions .ghost{padding:8px}.topbar .primary{padding:9px 10px}}

/* V2.4 - hidden must override component display rules */
[hidden]{display:none !important;}
