/* GanGan AI G1 — isolated styles; no effect on manual booking screens. */
:root{--ai-green:#15502e;--ai-deep:#102b1d;--ai-accent:#ed935c;--ai-stroke:#e3eae4;--ai-muted:#607269;--ai-card:#fff;--ai-bg:#f6f8f5}
*{box-sizing:border-box}
html{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;background:var(--ai-bg);color:var(--ai-deep);scroll-behavior:smooth}
body{margin:0;font-size:15px;line-height:1.48}a{color:inherit;text-decoration:none}button,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}
.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}
a:focus-visible,button:focus-visible,textarea:focus-visible{outline:3px solid #ed935c;outline-offset:3px}
.ai-shell{max-width:1370px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:0 clamp(14px,3vw,42px)}
.ai-topbar{min-height:88px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ai-stroke);gap:16px}
.ai-brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:850;letter-spacing:-.8px;line-height:1.03;color:var(--ai-green)}
.ai-brand-highlight{color:#d7773d}.ai-brand small{display:block;font-size:11px;letter-spacing:0;color:var(--ai-muted);margin-top:5px;font-weight:600}
.ai-mark{display:grid;place-items:center;flex:none;height:43px;width:43px;background:var(--ai-green);color:#fff;border-radius:15px;font-weight:900;font-size:28px;box-shadow:0 6px 16px rgba(21,80,46,.12)}
.ai-nav{display:flex;align-items:center;gap:20px;font-size:13px;font-weight:720}.ai-manual-link{background:#e4eee7;color:var(--ai-green);padding:11px 15px;border-radius:100px}.ai-back-link{color:var(--ai-muted)}.ai-nav a:hover{text-decoration:underline}
.ai-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);grid-template-rows:auto auto;align-content:start;column-gap:30px;row-gap:25px;flex:1;padding:35px 0 50px}
.ai-intro{grid-column:1/-1;max-width:860px}.ai-label{display:inline-flex;align-items:center;gap:9px;border:1px solid #dce8dc;background:#eaf2e9;padding:8px 12px;border-radius:100px;font-size:12px;font-weight:750;color:var(--ai-green)}
.ai-label-dot{height:8px;width:8px;background:#4ca068;border-radius:100%;box-shadow:0 0 0 4px rgba(76,160,104,.11)}
.ai-intro h1{font-size:clamp(29px,4vw,52px);line-height:1.08;letter-spacing:-1.9px;margin:19px 0 12px}.ai-intro h1 span{color:var(--ai-green)}
.ai-intro>p{color:var(--ai-muted);max-width:690px;font-size:15px;margin:0 0 18px}
.ai-badges{display:flex;gap:9px;flex-wrap:wrap;color:#3d5c4d;font-size:11px;font-weight:650}.ai-badges span{background:#edf2ed;border-radius:100px;padding:6px 10px}
.ai-chat{min-width:0;max-width:100%;border:1px solid var(--ai-stroke);background:#fff;border-radius:23px;box-shadow:0 17px 60px rgba(26,55,38,.07);overflow:hidden;display:flex;flex-direction:column;min-height:590px;align-self:start}
.ai-chat-header{padding:16px 20px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--ai-stroke)}.ai-chat-header>div:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ai-chat-header strong{font-size:15px}.ai-chat-header span{font-size:11px;color:var(--ai-muted)}.ai-avatar{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:14px;background:var(--ai-green);color:white;font-size:24px}
.ai-reset{font-size:11px;font-weight:750;border:1px solid var(--ai-stroke);background:#fff;color:var(--ai-green);border-radius:12px;padding:9px 11px}
.ai-messages{flex:1;overflow-y:auto;min-height:270px;max-height:490px;padding:22px 20px;display:flex;flex-direction:column;gap:13px;scrollbar-color:#d2dfd7 transparent}
.ai-line{max-width:88%;display:flex}.ai-assistant{align-self:flex-start}.ai-user{align-self:flex-end}.ai-line-body{padding:13px 16px;border-radius:17px;background:#eff4ef;color:var(--ai-deep);min-width:0;overflow-wrap:anywhere}.ai-line-body strong{display:block;font-size:13px;margin-bottom:4px}.ai-line-body p{margin:0;white-space:pre-wrap;font-size:15px;line-height:1.55}.ai-user .ai-line-body{background:var(--ai-green);color:#fff;border-bottom-right-radius:5px}.ai-assistant .ai-line-body{border-bottom-left-radius:5px}
.ai-action-row,.ai-links{display:flex;flex-wrap:wrap;gap:9px;align-self:flex-start;margin:1px 0 5px}.ai-choice,.ai-handoff{border:1px solid #d2e2d5;background:#fff;color:var(--ai-green);font-size:12px;font-weight:750;padding:10px 13px;border-radius:100px}.ai-choice:hover,.ai-handoff:hover{background:#edf6ee}
.ai-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:11px;width:100%}.ai-offer{min-width:0;border:1px solid #dce5dd;padding:15px;border-radius:16px;background:linear-gradient(145deg,#fff,#fbfdfb)}
.ai-offer-top{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:10px;font-weight:760;color:#5a6b62;line-height:1.3}.ai-offer-rank{background:#e7f1e9;border-radius:20px;padding:5px 8px;color:var(--ai-green)}
.ai-offer h3{font-size:16px;letter-spacing:-.25px;margin:10px 0 4px;line-height:1.2}.ai-offer-address{font-size:12px;color:var(--ai-muted);margin:0 0 10px}.ai-offer-meta{display:flex;flex-wrap:wrap;gap:7px;color:#50665a;font-size:11px;margin:10px 0 13px}.ai-offer-meta span{padding:3px 7px;border-radius:6px;background:#f2f5f1}.ai-offer-review{font-weight:700}.ai-offer-unrated{font-weight:750;background:#fff4e6!important;color:#6d440c}
.ai-offer-footer{padding-top:12px;border-top:1px solid #e7ede8;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.ai-offer-price{display:flex;flex-direction:column}.ai-offer-price small{color:var(--ai-muted);font-size:11px}.ai-offer-price strong{font-size:22px;letter-spacing:-.75px;color:var(--ai-green);line-height:1.35}.ai-price-night{color:var(--ai-muted);font-size:11px;margin-top:5px}.ai-offer-link{display:inline-block;border-radius:10px;background:var(--ai-green);color:#fff;padding:10px 14px;font-weight:750;font-size:12px}.ai-offer-link:hover{background:#0d3820}
.ai-nearby{border-top:1px solid #e7ede8;margin-top:13px;padding-top:12px;display:flex;flex-direction:column;gap:5px;font-size:11px}.ai-nearby strong{font-size:11px;color:var(--ai-green)}.ai-nearby-link{color:#3d6650;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.ai-suggestions{padding:0 20px 12px;display:flex;gap:8px;flex-wrap:wrap}.ai-suggestions[hidden]{display:none}.ai-suggestions button{background:#f7faf7;color:var(--ai-green);padding:8px 11px;border:1px solid #d8e6da;border-radius:12px;font-size:11px;font-weight:650}
.ai-status{padding:5px 20px;font-size:12px;color:var(--ai-muted)}.ai-status.is-error{color:#9b3929;background:#fff5f2}.ai-status[hidden]{display:none}
.ai-composer{margin:0 16px;border:1px solid #d2e1d6;border-radius:16px;background:#fff;box-shadow:0 2px 8px rgba(34,64,45,.04);padding:12px}
.ai-composer textarea{width:100%;background:#fff;border:0;outline:0!important;resize:vertical;min-height:54px;max-height:160px;font-size:14px;color:var(--ai-deep)}.ai-composer textarea::placeholder{color:#84948b}.ai-composer-actions{display:flex;align-items:center;gap:10px}
.ai-composer-hint{font-size:11px;color:#7f8d84;flex:1}.ai-mic{border:1px solid #d7e4d8;background:#f5faf5;border-radius:10px;padding:9px;color:var(--ai-green);font-weight:650;font-size:12px}.ai-mic[hidden]{display:none}.ai-mic.is-listening{background:#fff1ed;color:#ab3c23;border-color:#ec9d83;animation:ai-pulse 1.5s infinite}
.ai-send{background:var(--ai-green);border:0;color:#fff;border-radius:12px;font-size:12px;font-weight:760;padding:11px 15px}.ai-send span{font-size:15px;margin-left:6px}.ai-send:hover{background:#0f3921}
.ai-privacy{font-size:10px;color:#73877a;padding:13px 20px 17px;line-height:1.5}
.ai-sidebar{align-self:start;background:#eaf1e9;border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px}.ai-sidebar h2{font-size:20px;line-height:1.25;margin:0;letter-spacing:-.5px}.ai-sidebar p{font-size:13px;color:#52695b;line-height:1.55;margin:0}
.ai-side-button{display:flex;gap:10px;justify-content:space-between;align-items:center;color:#fff;background:var(--ai-green);padding:13px 14px;border-radius:12px;font-size:12px;font-weight:760;margin:3px 0 11px}.ai-side-detail{display:flex;gap:11px;align-items:flex-start;padding-bottom:13px;border-bottom:1px solid #d3e2d4}.ai-side-detail:last-child{border-bottom:0}.ai-side-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#d4e6d7;color:var(--ai-green);font-size:13px;font-weight:800;flex:none}.ai-side-detail>div{display:flex;flex-direction:column;gap:3px}.ai-side-detail strong{font-size:12px}.ai-side-detail small{font-size:11px;color:#607568;line-height:1.45}
.ai-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;border-top:1px solid var(--ai-stroke);padding:18px 0 26px;color:var(--ai-muted);font-size:11px}.ai-footer a{text-decoration:underline;text-underline-offset:3px}
@keyframes ai-pulse{50%{box-shadow:0 0 0 7px rgba(205,74,43,.12)}}
@media(max-width:990px){.ai-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}.ai-intro{grid-column:1}.ai-sidebar{grid-row:3;max-width:none}.ai-chat{min-height:570px}.ai-badges{gap:6px}}
@media(max-width:560px){.ai-shell{padding:0 12px}.ai-topbar{min-height:73px}.ai-brand{font-size:18px}.ai-mark{width:38px;height:38px;font-size:24px}.ai-brand small{font-size:10px}.ai-nav{gap:10px}.ai-back-link{display:none}.ai-manual-link{padding:9px 10px;font-size:11px}.ai-main{padding:24px 0 34px;gap:22px}.ai-intro h1{font-size:31px;letter-spacing:-1.2px;margin:15px 0 10px}.ai-intro>p{font-size:13px}.ai-badges span{font-size:10px}.ai-chat{min-height:530px;border-radius:18px}.ai-chat-header{padding:12px}.ai-chat-header span{font-size:10px}.ai-reset{padding:8px;font-size:10px}.ai-messages{padding:15px 11px;max-height:430px}.ai-line{max-width:93%}.ai-line-body{padding:12px 13px}.ai-line-body p{font-size:14px;line-height:1.55}.ai-results{grid-template-columns:minmax(0,1fr)}.ai-suggestions{padding:0 11px 10px}.ai-composer{margin:0 9px;padding:10px}.ai-composer-hint{display:none}.ai-mic{margin-right:auto}.ai-privacy{padding:12px}.ai-sidebar{padding:19px}.ai-side-button{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ai-mic.is-listening{animation:none}}

/* G1 R12: opt-in voice states; no styling changes to manual booking. */
.ai-voice-indicator{font-size:11px;font-weight:650;color:#52695b;flex:0 1 auto;min-width:0;overflow-wrap:anywhere}
.ai-voice-indicator[data-state="listening"]{color:#0b7040}
.ai-voice-indicator[data-state="paused"]{color:#725521}
.ai-voice-indicator[data-state="error"]{color:#9b3929}
.ai-voice-preview{margin:9px 17px 0;padding:9px 12px;border-radius:10px;background:#eaf3ec;color:#27573a;font-size:12px;overflow-wrap:anywhere}
.ai-voice-preview[hidden]{display:none}
.ai-mic{white-space:nowrap}
.ai-mic.is-listening{background:#e6f2e8;color:#176036;border-color:#8ac29b}
@media(max-width:560px){.ai-composer-actions{gap:7px;flex-wrap:wrap}.ai-voice-indicator{font-size:10px;flex:1 1 90px}.ai-voice-preview{margin:8px 9px 0;font-size:11px}.ai-mic{font-size:11px;padding:9px 7px}}

/* R14: speech diagnostics and explicit revocation stay within GanGan AI. */
.ai-voice-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 16px 0}
.ai-voice-feedback .ai-voice-preview{margin:0;flex:1 1 190px}
.ai-voice-send-heard{background:#edf7f0;color:var(--ai-green);border:1px solid #b7d8bf;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:750}
.ai-voice-send-heard[hidden],.ai-voice-forget[hidden]{display:none}
.ai-voice-forget{background:none;border:0;color:#365f48;text-decoration:underline;text-underline-offset:3px;font-size:11px;padding:3px 0;cursor:pointer}
@media(max-width:560px){.ai-voice-feedback{margin:8px 9px 0}.ai-voice-send-heard{font-size:11px;padding:8px 9px}}

/* R14 mobile: reserve a full row for recognition status, not a 70px slot. */
@media(max-width:560px){
  .ai-composer-actions{display:flex;flex-wrap:wrap;gap:8px}
  .ai-mic{order:1;margin-right:auto}
  .ai-send{order:2}
  .ai-voice-indicator{order:3;flex:1 1 100%;font-size:11px;line-height:1.4;overflow-wrap:normal}
}
