.guest-portal-body {
  min-height: 100vh; margin: 0; display: block; color: #f7f3eb;
  background:
    radial-gradient(circle at 15% -10%, rgba(228,120,91,.23), transparent 33%),
    radial-gradient(circle at 100% 20%, rgba(59,153,148,.17), transparent 36%),
    linear-gradient(160deg, #0e1719 0%, #101719 48%, #15130f 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.guest-shell { width: min(1100px, 100%); margin: 0 auto; padding: 0 28px 50px; }
.guest-brandbar { min-height: 86px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.09); }
.guest-brand { display:flex; align-items:center; gap:12px; }
.guest-brand strong { display:block; letter-spacing:.18em; font-size:1rem; }
.guest-brand small { display:block; margin-top:3px; color:#9ea9a7; font-size:.72rem; }
.coral-mark { width:38px; height:38px; position:relative; border-radius:14px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); }
.coral-mark span { position:absolute; display:block; border:2px solid #e5785b; border-radius:50%; border-top-color:transparent; }
.coral-mark span:nth-child(1){width:24px;height:14px;left:5px;top:7px;transform:rotate(-10deg)}
.coral-mark span:nth-child(2){width:20px;height:13px;left:10px;top:15px;transform:rotate(12deg)}
.coral-mark span:nth-child(3){width:5px;height:5px;right:6px;top:6px;background:#e7c97e;border:0}
.guest-lang { border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.04); color:#f7f3eb; padding:8px 13px; border-radius:999px; cursor:pointer; text-decoration:none; font-size:.8rem; }
.stay-main { padding: 42px 0 12px; }
.stay-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:28px; margin-bottom:24px; }
.guest-eyebrow { color:#e7c97e; font-size:.68rem; font-weight:800; letter-spacing:.14em; margin-bottom:7px; }
.stay-hero h1, .guest-home h1 { margin:0; font-size:clamp(2rem,6vw,4rem); line-height:1; letter-spacing:-.045em; font-weight:700; }
.stay-meta { margin-top:12px; color:#9eaaa8; font-size:.9rem; }
.room-orb { min-width:132px; padding:18px 20px; border-radius:24px; text-align:center; background:linear-gradient(145deg, rgba(229,120,91,.2), rgba(231,201,126,.07)); border:1px solid rgba(231,201,126,.23); box-shadow:0 20px 60px rgba(0,0,0,.2); }
.room-orb small,.room-orb span { display:block; color:#b7c1bf; font-size:.68rem; }
.room-orb strong { display:block; font-size:2.2rem; line-height:1.15; margin:2px 0 3px; }
.readiness-card { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:17px 20px; border-radius:18px; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.1); }
.readiness-card>div { display:flex;align-items:center;gap:12px}.readiness-card small,.readiness-card strong{display:block}.readiness-card small{color:#8f9b99;font-size:.63rem;letter-spacing:.12em}.readiness-card strong{margin-top:2px;font-size:.95rem}.readiness-card button{border:0;background:transparent;color:#e7c97e;font-weight:700;cursor:pointer}
.readiness-dot { width:12px;height:12px;border-radius:50%;background:#7bc796;box-shadow:0 0 0 6px rgba(123,199,150,.09)}
.readiness-dot.status-dirty{background:#d8b84a}.readiness-dot.status-out_of_order,.readiness-dot.status-out_of_service{background:#e06d6d}
.guest-section { margin-top:34px; }
.guest-section-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin-bottom:14px; }
.guest-section-heading h2 { font-size:1.2rem; margin:0; letter-spacing:-.02em; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.service-button { min-height:124px; padding:16px; text-align:left; color:#f7f3eb; border:1px solid rgba(255,255,255,.1); border-radius:18px; cursor:pointer; background:linear-gradient(160deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); transition:.18s ease; }
.service-button:hover { transform:translateY(-3px); border-color:rgba(231,201,126,.35); background:linear-gradient(160deg, rgba(229,120,91,.12), rgba(255,255,255,.035)); }
.service-button span { display:block; font-size:1.35rem; margin-bottom:13px; color:#e7c97e; }.service-button strong{display:block;font-size:.88rem}.service-button small{display:block;color:#8e9997;margin-top:4px;font-size:.7rem}
.concierge-section { padding:20px; border-radius:22px; background:rgba(4,8,9,.46); border:1px solid rgba(229,120,91,.18); }
.ai-safe { font-size:.68rem; color:#8eb7b3; border:1px solid rgba(142,183,179,.25); border-radius:999px; padding:5px 9px; }
.concierge-thread { max-height:300px; overflow:auto; display:flex; flex-direction:column; gap:8px; padding:6px 0 14px; }
.concierge-message { max-width:82%; padding:11px 13px; border-radius:14px; font-size:.83rem; line-height:1.45; }
.concierge-message.bot { align-self:flex-start; background:rgba(255,255,255,.07); color:#dce2e1; }.concierge-message.guest{align-self:flex-end;background:#e5785b;color:white}.concierge-message.error{color:#ffb4b4}
.concierge-input-row { display:flex; gap:8px; }.concierge-input-row input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.11);color:#fff}.concierge-input-row button{border:0;border-radius:10px;background:#e7c97e;color:#1a1710;font-weight:800;padding:0 18px;cursor:pointer}
.request-list { display:grid; gap:8px; }.request-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 15px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:14px}.request-row strong{display:block;text-transform:capitalize;font-size:.85rem}.request-row span{display:block;color:#8f9b99;font-size:.73rem;margin-top:3px}.request-status{font-style:normal;text-transform:capitalize;font-size:.68rem;padding:5px 8px;border-radius:999px;background:rgba(231,201,126,.1);color:#e7c97e}.request-status.status-done{background:rgba(123,199,150,.1);color:#8bd1a4}
.guest-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.guest-photo{position:relative;overflow:hidden;border-radius:16px;min-height:150px;border:1px solid rgba(255,255,255,.08)}.guest-photo img{width:100%;height:100%;min-height:150px;object-fit:cover;display:block}.guest-photo span{position:absolute;left:9px;right:9px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;border-radius:8px;padding:6px 8px;font-size:.65rem;backdrop-filter:blur(8px)}
.guest-empty-modern { padding:20px;border:1px dashed rgba(255,255,255,.12);border-radius:15px;color:#8f9b99;font-size:.82rem;text-align:center; }
.guest-footer-modern{text-align:center;color:#657170;font-size:.68rem;margin-top:45px;border-top:1px solid rgba(255,255,255,.07);padding-top:22px}
.guest-modal{position:fixed;inset:0;background:rgba(2,5,6,.72);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;backdrop-filter:blur(8px)}.guest-modal-card{position:relative;width:min(460px,100%);padding:25px;border-radius:22px;background:#172023;border:1px solid rgba(255,255,255,.11);box-shadow:0 30px 100px rgba(0,0,0,.55)}.guest-modal-card h2{margin:0 0 16px}.guest-modal-card textarea{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.12)}.guest-modal-close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:#9da8a6;font-size:1.6rem;cursor:pointer}.guest-primary-btn{display:inline-flex;align-items:center;justify-content:center;background:#e5785b;color:white;text-decoration:none;border:0;border-radius:12px;padding:12px 18px;font-weight:800;cursor:pointer}.guest-primary-btn.full{width:100%;margin-top:12px}.service-feedback{font-size:.75rem;margin-top:10px}.service-feedback.success{color:#8bd1a4}.service-feedback.error{color:#ff9e9e}
.guest-home-shell{min-height:100vh;display:flex;flex-direction:column}.guest-home{flex:1;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px;padding:70px 0}.guest-home-copy p{color:#9eaaa8;font-size:1rem;line-height:1.7;max-width:620px}.guest-home-actions{display:flex;align-items:center;gap:18px;margin-top:25px}.guest-home-hint{color:#72807e;font-size:.72rem;line-height:1.45;max-width:330px}.guest-preview-card{padding:25px;border-radius:28px;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 100px rgba(0,0,0,.28);transform:rotate(1.5deg)}.preview-top{display:flex;justify-content:space-between;color:#7f8d8a;font-size:.65rem;letter-spacing:.12em}.preview-live{color:#81c69a}.preview-room{font-size:2.5rem;font-weight:700;margin-top:35px}.preview-status{color:#92d2a9;margin:3px 0 32px}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preview-grid span{padding:13px;border-radius:13px;background:rgba(255,255,255,.055);font-size:.74rem}
.guest-rtl .service-button{text-align:right}.guest-rtl .guest-modal-close{right:auto;left:15px}
@media(max-width:760px){.guest-shell{padding:0 16px 38px}.guest-brandbar{min-height:72px}.stay-main{padding-top:28px}.stay-hero{align-items:center}.room-orb{min-width:105px;padding:14px}.room-orb strong{font-size:1.8rem}.service-grid{grid-template-columns:repeat(2,1fr)}.service-button{min-height:112px}.guest-photo-grid{grid-template-columns:1fr 1fr}.guest-home{grid-template-columns:1fr;gap:42px;padding:45px 0}.guest-preview-card{transform:none}.guest-home-actions{flex-direction:column;align-items:flex-start}}
