:root { --ink:#132d2c; --muted:#6d7d7b; --teal:#126963; --teal-dark:#0c4f4b; --mint:#eaf5f2; --line:#dce7e4; --paper:#fff; --ground:#f4f7f6; }
*{box-sizing:border-box} body{margin:0;background:var(--ground);color:var(--ink);font-family:Arial,Helvetica,sans-serif} button,input{font:inherit} button{cursor:pointer}
.access-shell{display:grid;place-items:center;min-height:100vh;padding:24px;background:radial-gradient(circle at top,#e2f1ed 0,var(--ground) 48%)}.access-card{width:min(420px,100%);padding:38px 34px;border:1px solid var(--line);border-radius:25px;background:white;box-shadow:0 18px 55px rgba(24,57,55,.12);text-align:center}.access-card>.brand-mark{margin:0 auto 22px}.access-card h1{margin:5px 0 0;font-size:27px}.access-copy{margin:15px 0 24px;color:var(--muted);line-height:1.5}.access-card>p:last-child{color:var(--muted);font-weight:700}.access-card small{display:block;margin-top:22px;color:#81908e;font-size:11px}.access-form{display:grid;gap:11px}.access-form label{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.access-form input{height:58px;border:2px solid #b8d4cf;border-radius:14px;outline:none;color:var(--ink);font-size:25px;font-weight:800;letter-spacing:.28em;text-align:center}.access-form input:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(18,105,99,.11)}.access-form button{min-height:50px;border:0;border-radius:13px;background:var(--teal);color:white;font-weight:900}.access-form button:disabled{opacity:.4;cursor:default}.access-form .pin-error{margin:2px 0 0}
.app-shell{width:min(1180px,calc(100% - 40px));min-height:100vh;margin:0 auto;padding:calc(28px + env(safe-area-inset-top)) 0 calc(24px + env(safe-area-inset-bottom))}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:28px}.brand-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:17px;background:var(--teal);color:white;font-size:18px;font-weight:800;letter-spacing:-1px;box-shadow:0 8px 22px rgba(18,105,99,.22)}
.eyebrow,.step{margin:0 0 4px;color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.15em}.topbar h1{margin:0;font-size:24px;letter-spacing:-.02em}.updated-at{margin:5px 0 0;color:var(--muted);font-size:12px;font-weight:700}.top-actions{display:flex;align-items:center;gap:9px}.status{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid #beded7;border-radius:999px;background:var(--mint);color:var(--teal-dark);font-size:13px;font-weight:700}.status span{width:8px;height:8px;border-radius:50%;background:#25a979}.update-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:0;border-radius:12px;background:var(--teal);color:white;font-size:13px;font-weight:800;cursor:pointer}.update-button:hover{background:var(--teal-dark)}.update-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.update-message{margin:-12px 0 18px;padding:12px 15px;border-radius:12px;font-size:13px;font-weight:800}.update-message.success{background:#e4f4eb;color:#21714b}.update-message.error{background:#fde8e7;color:#a43d35}
.search-panel,.reservation-card{border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:0 12px 40px rgba(24,57,55,.07)}.search-panel{padding:28px}.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.panel-heading h2{margin:0;font-size:27px;letter-spacing:-.03em}.clear-button,.reservation-title button{border:0;background:transparent;color:var(--teal);font-size:14px;font-weight:700}.clear-button:disabled{opacity:.35;cursor:default}
.search-box{display:flex;align-items:center;gap:14px;margin-top:22px;padding:0 18px;border:2px solid #b8d4cf;border-radius:16px;background:#fbfdfc;transition:border .2s,box-shadow .2s}.search-box:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px rgba(18,105,99,.11)}.search-icon{color:var(--teal);font-size:34px;transform:rotate(-15deg);line-height:1}.search-box input{width:100%;height:66px;border:0;outline:0;background:transparent;color:var(--ink);font-size:21px}.search-box input::placeholder{color:#8b9997}
.load-message{margin-top:20px;padding:14px 16px;border-radius:12px;background:var(--mint);color:var(--teal-dark);font-size:14px;font-weight:700}.load-message.error{background:#fde8e7;color:#a43d35}
.search-hints{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.search-hints span{padding:7px 11px;border-radius:999px;background:#f0f4f3;color:#536563;font-size:12px;font-weight:700}.results{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.results-count{margin:0 0 10px;color:var(--muted);font-size:13px;font-weight:700}.results-list{max-height:600px;overflow-y:auto;padding-right:5px;scrollbar-color:#afc9c4 transparent}.result-row{display:grid;grid-template-columns:120px 1fr auto auto;align-items:center;gap:15px;width:100%;padding:14px;border:1px solid transparent;border-radius:15px;background:transparent;color:var(--ink);text-align:left}.result-row:hover,.result-row:focus-visible{border-color:#c9dfda;background:#f5faf8;outline:none}.reservation-number{display:grid;gap:4px}.reservation-number small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.1em}.reservation-number strong{color:var(--teal-dark);font-size:15px}.result-main{display:grid;gap:4px}.result-main strong{font-size:16px}.result-main small{color:var(--muted);font-size:13px}.result-main em{margin-top:3px;color:var(--teal);font-size:12px;font-style:normal;font-weight:800}.result-tags{display:grid;justify-items:end;gap:7px}.state-badge{padding:6px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.06em}.state-badge.active,.detail-state.active{background:#e4f4eb;color:#21714b}.state-badge.cancelled,.detail-state.cancelled{background:#fde8e7;color:#a43d35}.state-badge.blocked,.detail-state.blocked{background:#fff0d8;color:#96601d}.state-badge.waiting,.detail-state.waiting{background:#e8edfb;color:#405c9d}.state-badge.other,.detail-state.other{background:#eceff0;color:#4f5e5c}.room-chip{padding:8px 11px;border-radius:10px;background:var(--ink);color:white;font-size:13px;font-weight:800}.arrow{color:var(--teal);font-size:28px}.empty-result{padding:28px 12px 12px;text-align:center}.empty-result p{margin:8px 0 0;color:var(--muted)}
.welcome-state{padding:75px 20px 55px;text-align:center;color:var(--muted)}.welcome-state div{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 18px;border-radius:22px;background:#e5efec;color:var(--teal);font-size:46px;transform:rotate(-15deg)}.welcome-state h2{margin:0;color:var(--ink);font-size:22px}.welcome-state p{max-width:520px;margin:10px auto 0;line-height:1.6}.reservation-card{margin-top:22px;overflow:hidden}.reservation-title{display:flex;justify-content:space-between;gap:24px;padding:27px 30px;border-bottom:1px solid var(--line)}.reservation-title p,.reservation-title h2,.reservation-title span{margin:0}.reservation-title p{color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.12em}.reservation-title h2{margin-top:5px;font-size:26px}.reservation-title span{display:block;margin-top:5px;color:var(--muted)}
.primary-data{display:grid;grid-template-columns:1fr 1fr 2fr;gap:1px;background:var(--line)}.primary-data article{padding:28px 30px;background:white}.primary-data span,.first-names span,.observation span{display:block;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.12em}.primary-data strong{display:block;margin-top:8px;color:var(--teal-dark);font-size:30px}.primary-data .detail-state{display:inline-block;padding:9px 12px;border-radius:12px;font-size:15px;letter-spacing:.04em}.first-names{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line)}.first-names article{padding:24px 30px;background:#f8fbfa}.first-names strong{display:block;margin-top:7px;font-size:22px}.more-details{border-top:1px solid var(--line);background:white}.more-details summary{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px 24px;color:var(--teal);font-size:13px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;list-style:none;user-select:none}.more-details summary::-webkit-details-marker{display:none}.more-details summary:hover,.more-details summary:focus-visible{background:var(--mint);outline:none}.more-open{display:none}.more-details[open] .more-open{display:inline}.more-details[open] .more-closed{display:none}.chevron{font-size:19px;transition:transform .2s}.more-details[open] .chevron{transform:rotate(180deg)}.private-notice{padding:11px 30px;background:#fff4de;color:#84591f;font-size:12px;font-weight:800;text-align:center}.observation{padding:28px 30px;background:#f7faf9}.observation p{margin:10px 0 0;font-size:17px;line-height:1.6} footer{display:flex;justify-content:space-between;gap:16px;margin-top:24px;color:#7b8b89;font-size:12px}.demo-note{color:#a06722}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hotel-location{display:flex;align-items:center;gap:18px;padding:18px 30px;border-top:1px solid #cfe3de;background:var(--mint)}.hotel-location span{flex:0 0 auto;color:var(--teal);font-size:10px;font-weight:900;letter-spacing:.13em}.hotel-location strong{font-size:18px;line-height:1.35;color:var(--teal-dark)}
.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line)}.details-grid article{min-width:0;padding:22px 30px;background:white}.details-grid span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.11em}.details-grid strong{display:block;margin-top:7px;overflow-wrap:anywhere;font-size:16px;line-height:1.35}
.payment-details{border-top:1px solid var(--line);background:#f3f7f6}.payment-details details>summary{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px 24px;color:var(--teal-dark);font-size:13px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;list-style:none}.payment-details details>summary::-webkit-details-marker{display:none}.payment-details details>summary:hover,.payment-details details>summary:focus-visible{background:#e6f1ee;outline:none}.lock{font-size:16px}.pin-form{padding:22px 30px 28px;border-top:1px solid var(--line);background:white;text-align:center}.pin-form label{display:block;margin-bottom:12px;color:var(--muted);font-size:13px;font-weight:700}.pin-form div{display:flex;justify-content:center;gap:10px}.pin-form input{width:180px;padding:13px 14px;border:1px solid #b8cfca;border-radius:11px;outline:none;text-align:center;letter-spacing:.18em}.pin-form input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(18,105,99,.1)}.pin-form button,.payment-heading button{border:0;border-radius:11px;background:var(--teal);color:white;font-weight:800}.pin-form button{padding:0 18px}.pin-form button:disabled{opacity:.4;cursor:default}.pin-error{margin:11px 0 0;color:#a43d35;font-size:13px;font-weight:800}.payment-open{background:white}.payment-heading{display:flex;align-items:center;justify-content:space-between;padding:19px 30px;background:#eef5f3}.payment-heading span{display:block;color:var(--teal);font-size:10px;font-weight:900;letter-spacing:.12em}.payment-heading strong{display:block;margin-top:4px;font-size:15px}.payment-heading button{padding:9px 13px}.payment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.payment-grid article{padding:24px 30px;background:white}.payment-grid span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.11em}.payment-grid strong{display:block;margin-top:8px;color:var(--teal-dark);font-size:23px}
@media(max-width:680px){.app-shell{width:min(100% - 24px,1180px);padding-top:16px}.topbar{grid-template-columns:auto 1fr}.top-actions{grid-column:1/-1;justify-content:space-between}.search-panel{padding:20px;border-radius:19px}.panel-heading h2{font-size:23px}.search-box input{height:58px;font-size:17px}.result-row{grid-template-columns:95px 1fr auto}.result-tags{grid-column:2;justify-self:start;justify-items:start}.arrow{grid-column:3;grid-row:1/3}.reservation-title{padding:22px;flex-direction:column}.reservation-title button{text-align:left;padding:0}.primary-data,.details-grid,.first-names,.payment-grid{grid-template-columns:1fr}.primary-data article,.details-grid article,.first-names article,.observation,.payment-grid article{padding:22px}.hotel-location{align-items:flex-start;flex-direction:column;gap:7px;padding:18px 22px}.hotel-location strong{font-size:16px}.pin-form{padding:22px}.pin-form div{flex-direction:column}.pin-form input{width:100%}.pin-form button{min-height:44px}.payment-heading{padding:18px 22px}footer{flex-direction:column}}
