:root{--green:#0a8f67;--green-dark:#087253;--ink:#17201d;--muted:#71807a;--line:#e5ebe8;--bg:#f6f8f7;--white:#fff;--orange:#f5a623;--blue:#4285f4;--shadow:0 10px 35px #183c3020}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;background:#f7f8f7}.login-card{width:min(560px,calc(100% - 32px));padding:30px 0;text-align:left}.login-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:38px}.login-brand{display:flex;align-items:center;gap:12px;font-size:20px}.brand-mark{width:44px;height:44px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800}.server-status{display:inline-flex;align-items:center;gap:9px;border:1px solid #dce4e0;background:#fff;border-radius:999px;padding:8px 14px;color:#47534f;font-weight:600;white-space:nowrap}.server-status i{width:10px;height:10px;border-radius:50%;background:#c4cbc8}.server-status.operational i{background:#10b981}.server-status.offline i{background:#dc493f}.login-divider{height:1px;background:var(--line);margin:0 0 22px}.login-card label{margin:18px 0;font-size:15px;color:#26312d}.login-card input{font-size:16px;padding:13px 14px}.password-field{display:flex;position:relative}.password-field button{position:absolute;right:4px;top:50%;transform:translateY(-50%);color:#7b8782}.password-field input{padding-right:48px}.login-card>button{display:flex;justify-content:center;gap:18px;width:100%;margin-top:28px;background:var(--green);color:#fff;font-weight:700;font-size:16px}.login-card>button:disabled{opacity:.6;cursor:wait}.login-card .error{display:block;text-align:center;margin-top:12px}.login-help{text-align:center;color:var(--muted);margin:12px 0 0}.app{min-height:100vh;display:grid;grid-template-columns:245px 1fr}aside{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 26px}.brand small,.brand strong{display:block}.brand small{color:var(--muted)}nav{display:grid;gap:5px}nav button{display:flex;gap:13px;align-items:center;text-align:left;color:#5f6e68;padding:11px 13px}nav button.active{background:#e9f6f1;color:var(--green-dark);font-weight:700}nav button:disabled{opacity:.45;cursor:not-allowed}.user{margin-top:auto;padding:14px 8px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.user button{color:#a33}main{padding:0 28px 40px;min-width:0}header{height:88px;display:flex;align-items:center;gap:16px}header h1{margin:0;font-size:24px}header p{margin:2px 0 0;color:var(--muted)}header .primary{margin-left:auto}#menu{display:none}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.metrics article,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 2px 8px #193b3008}.metrics article{padding:20px}.metrics span{display:block;color:var(--muted)}.metrics strong{display:block;font-size:29px;margin-top:7px}.panel{padding:20px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panel h2{font-size:17px;margin:0}.panel-head button{color:var(--green);font-weight:700}.panel-head input{max-width:280px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line)}.table th{font-size:12px;text-transform:uppercase;color:var(--muted)}.badge{display:inline-flex;padding:5px 9px;border-radius:30px;background:#eef1f0;font-size:12px;font-weight:700}.badge.pending{background:#fff4dd;color:#9b6500}.badge.confirmed{background:#e6f0ff;color:#2361be}.badge.checked_in{background:#e5f7ef;color:#087253}.badge.cancelled{background:#feecea;color:#b9382e}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.room-card{border:1px solid var(--line);border-radius:11px;padding:16px}.room-card h3{margin:0 0 5px}.room-card p{color:var(--muted);margin:0}.legend{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.legend i{width:10px;height:10px;border-radius:50%;margin-left:8px;background:#ddd}.legend .pending{background:var(--orange)}.legend .confirmed{background:var(--blue)}.legend .checked_in{background:var(--green)}.calendar{overflow:auto}.calendar-grid{min-width:900px;display:grid;border:1px solid var(--line);border-radius:9px;overflow:hidden}.calendar-cell{min-height:43px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.calendar-cell.head{min-height:auto;background:#f3f6f5;text-align:center;color:var(--muted);font-weight:700}.calendar-cell.room{font-weight:700;background:#fafcfa}.calendar-booking{display:block;border-radius:5px;padding:5px 7px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--orange)}.calendar-booking.confirmed{background:var(--blue)}.calendar-booking.checked_in{background:var(--green)}dialog{border:0;border-radius:16px;padding:0;width:min(760px,calc(100% - 30px));max-height:92vh;box-shadow:var(--shadow)}dialog::backdrop{background:#10251f99}dialog form{padding:24px}.dialog-head{display:flex;justify-content:space-between;margin-bottom:22px}.dialog-head h2{margin:2px 0}.dialog-head small{color:var(--green);font-weight:700}.icon{font-size:25px;padding:0 8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px}.form-grid .wide{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:10px;margin:0 0 20px;padding:14px}legend{padding:0 7px;font-weight:700}.room-options{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.room-options label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px}.room-options input{width:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:17px}@media(max-width:900px){.app{grid-template-columns:74px 1fr}.brand>div:last-child,nav span,.user span{display:none}.brand{padding-left:0;justify-content:center}nav button{justify-content:center;font-size:18px}.metrics{grid-template-columns:1fr 1fr}.room-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.login-heading{align-items:flex-start;flex-direction:column;margin-bottom:24px}.app{display:block}aside{display:none;position:fixed;z-index:4;width:230px}.app.menu-open aside{display:flex}main{padding:0 14px 25px}header{height:76px}#menu{display:block}header h1{font-size:20px}header .primary{font-size:0;padding:10px}header .primary:first-letter{font-size:18px}.metrics{gap:9px}.metrics article{padding:14px}.metrics strong{font-size:23px}.panel{padding:14px}.room-grid,.room-options{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.table{min-width:700px}.panel{overflow:auto}}
