
:root{--ink:#172033;--muted:#667085;--line:#d9e2ea;--paper:#fff;--bg:#f5f7fa;--teal:#00596b;--teal2:#08758a;--red:#a60e14;--good:#177245;--warn:#9a6700;--bad:#b42318;--shadow:0 4px 18px rgba(18,45,60,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--teal2);text-decoration:none}.topbar{background:#fff;border-bottom:3px solid var(--teal);padding:9px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(0,50,60,.06)}
.brand-wrap{display:flex;align-items:center;gap:11px;min-width:0}.brand-logo{width:58px;height:42px;object-fit:contain}.brand-text{line-height:1.05}.brand-text strong{display:block;color:var(--teal);font-size:15px}.brand-text span{font-size:11px;color:var(--muted)}
.nav{display:flex;gap:5px;align-items:center}.nav a{color:#344054;font-size:13px;font-weight:650;padding:8px 9px;border-radius:7px;white-space:nowrap}.nav a:hover{background:#eef5f6;color:var(--teal)}
.mobile-nav{display:none}.container{max-width:1220px;margin:22px auto;padding:0 16px}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:18px;box-shadow:var(--shadow)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric{font-size:30px;font-weight:800;margin-top:6px;color:var(--teal)}.metric.money{font-size:24px}.label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;font-weight:700}
.metric-sub{font-size:12px;color:var(--muted);margin-top:5px}h1{font-size:25px;margin:0 0 16px}h2{font-size:17px;margin:0 0 12px}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:block;font-size:13px;font-weight:700;margin:0 0 6px}input,select,textarea{width:100%;padding:10px;border:1px solid #bdc9d8;border-radius:7px;background:#fff;font-size:14px;font-family:inherit}textarea{min-height:90px}.form-group{margin-bottom:13px}
.btn{display:inline-block;border:0;border-radius:7px;padding:10px 14px;background:var(--teal);color:#fff;font-weight:700;cursor:pointer}.btn.secondary{background:#52657a}.btn.good{background:var(--good)}.btn.bad{background:var(--bad)}.btn.light{background:#e9eef5;color:var(--ink)}
.actions{display:flex;gap:8px;flex-wrap:wrap}.flash{padding:11px 14px;border-radius:8px;margin-bottom:14px;background:#e8f3ff;border:1px solid #b9d8f5}.flash.error{background:#fff0ef;border-color:#f3b8b2;color:#7a271a}
.table-wrap{overflow:auto;border-radius:8px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#eef3f5;color:#344054;position:static}tbody tr:hover{background:#f6f9fc}.money-col{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#e8eef6}.badge.confirmed,.badge.occupied,.badge.checked.in{background:#d9f1e4;color:#11633b}.badge.cancelled{background:#f8dddd;color:#8b1d17}.badge.reserved{background:#fff0c2;color:#795400}
.login-shell{max-width:430px;margin:6vh auto;text-align:center}.login-logo{width:230px;max-height:150px;object-fit:contain;margin-bottom:10px}.login{text-align:left}.help{font-size:12px;color:var(--muted)}.right{text-align:right}.empty{color:var(--muted);padding:14px 0}
.room-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.room-button{border:1px solid var(--line);border-radius:9px;padding:10px;background:#eaf0f6;font:inherit;text-align:left;cursor:pointer;min-height:70px}.room-button:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.07)}.room-button.available{background:#e4f5eb}.room-button.occupied{background:#ffe4e1}.room-button.cleaning{background:#fff2c7}.room-button.maintenance,.room-button.out-of-service{background:#ececec}.room-button strong{display:block;margin-bottom:3px}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:8px 0 14px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px}.dot.av{background:#b9e4c9}.dot.rs{background:#c9dcef}.dot.oc{background:#f3b7b0}.dot.cl{background:#f4d987}.dot.mt{background:#cfcfcf}
.calendar-wrap{overflow:auto}.calendar{min-width:920px}.calendar th:first-child,.calendar td:first-child{position:sticky;left:0;z-index:2;background:#fff}.calendar th:first-child{background:#eef3f5}.calendar td{min-width:105px}.cal-cell{display:block;border-radius:6px;padding:6px;font-size:11px;min-height:38px}.cal-free{background:#e4f5eb;color:#11633b}.cal-reserved{background:#e4edf8}.cal-occupied{background:#ffe4e1}.cal-blocked{background:#ececec}
.footer{text-align:center;color:var(--muted);font-size:11px;padding:8px 16px 24px}.footer strong{color:var(--teal)}
.modal{display:none;position:fixed;inset:0;background:rgba(17,24,39,.45);z-index:50;align-items:center;justify-content:center;padding:16px}.modal.open{display:flex}.modal-card{background:#fff;border-radius:12px;padding:18px;max-width:420px;width:100%;box-shadow:0 15px 45px rgba(0,0,0,.2)}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.row{grid-template-columns:1fr}.room-grid{grid-template-columns:repeat(4,1fr)}.desktop-nav{display:none}.mobile-nav{display:block;position:relative}.mobile-nav summary{list-style:none;cursor:pointer;font-size:24px;color:var(--teal);padding:4px 8px}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-menu{position:absolute;right:0;top:42px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:8px;min-width:190px}.mobile-menu a{display:block;padding:10px;color:#344054}.topbar{padding:7px 12px}.brand-logo{width:48px;height:36px}}
@media(max-width:520px){.grid{grid-template-columns:1fr 1fr}.room-grid{grid-template-columns:repeat(2,1fr)}.brand-text span{display:none}.container{margin-top:14px}.metric{font-size:25px}}
@media print{.topbar,.no-print,.flash,.footer{display:none!important}.container{max-width:none;margin:0}.card{box-shadow:none;border:0}}
