:root{color-scheme:light;--bg:#07151f;--panel:#0e2431;--panel2:#122f3c;--line:#244b59;--mint:#62e7ca;--violet:#7f5bb3;--text:#ecfbf8;--muted:#9eb8c0;--danger:#ff7185;--white:#fff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:linear-gradient(160deg,#06121b,#0c2631 55%,#11192c);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text)}body{padding:0}.app{width:min(100%,980px);min-height:100vh;min-height:100dvh;margin:auto;padding:18px 18px calc(22px + env(safe-area-inset-bottom))}.top{background:rgba(12,35,46,.92);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.brand{display:flex;gap:12px;align-items:flex-start}.brand-dot{color:var(--mint);font-size:18px;margin-top:7px}h1{font-size:clamp(23px,4vw,34px);margin:0 0 6px}#subtitle{margin:0;color:var(--muted);line-height:1.55}.langs{display:flex;gap:8px;overflow-x:auto;padding:16px 0 2px;scrollbar-width:thin}.langs button{flex:0 0 auto;border:1px solid #426371;background:#102936;color:#dff8f2;padding:9px 13px;border-radius:999px;font-weight:700;cursor:pointer}.langs button.active{background:var(--mint);color:#06221c;border-color:var(--mint)}.voice-card,.chat-card,.settings{margin-top:14px;background:rgba(14,36,49,.95);border:1px solid var(--line);border-radius:22px}.voice-card{padding:18px}.state-row{display:flex;gap:14px;align-items:center;min-height:54px}.state-label{font-size:20px;font-weight:800}.heard{color:var(--muted);margin-top:4px;min-height:20px;word-break:break-word}.pulse{display:flex;align-items:center;gap:3px;height:34px;min-width:42px}.pulse i{width:4px;height:10px;border-radius:4px;background:var(--mint);transition:.2s}.pulse.active i{animation:wave .8s infinite ease-in-out}.pulse.active i:nth-child(2){animation-delay:.1s}.pulse.active i:nth-child(3){animation-delay:.2s}.pulse.active i:nth-child(4){animation-delay:.3s}.pulse.active i:nth-child(5){animation-delay:.4s}@keyframes wave{0%,100%{height:8px;opacity:.6}50%{height:30px;opacity:1}}.voice-actions{display:flex;gap:10px;margin-top:14px}.primary,.stop,.send{border:0;border-radius:14px;font-weight:800;cursor:pointer}.primary{background:linear-gradient(135deg,var(--mint),#64c8ec);color:#062018;font-size:18px;padding:15px 22px;flex:1}.stop{background:#442735;color:#ffdce2;border:1px solid #714151;font-size:17px;padding:15px 18px;flex:1}.voice-help{color:var(--muted);font-size:14px;line-height:1.55;margin:12px 2px 0}.error{margin-top:10px;padding:10px 12px;border-radius:12px;background:#3c1f2a;color:#ffd6de;border:1px solid #783a4d}.full-link{display:inline-block;margin-top:9px;color:var(--mint);font-weight:700}.chat-card{display:flex;flex-direction:column;min-height:420px;overflow:hidden}.log{flex:1;padding:18px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:56vh;overscroll-behavior:contain}.msg{max-width:90%;padding:12px 14px;border-radius:16px;line-height:1.58;white-space:pre-wrap;word-break:break-word}.msg.ai{align-self:flex-start;background:#173848;border:1px solid #295568}.msg.user{align-self:flex-end;background:#5d4790;color:#fff}.msg.pending{opacity:.72}.composer{display:flex;gap:10px;padding:12px;border-top:1px solid var(--line);background:#0b202b;position:sticky;bottom:0;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.composer textarea{flex:1;resize:none;border:1px solid #385a69;border-radius:14px;background:#081923;color:#fff;padding:12px;font:inherit;min-height:52px;outline:none}.composer textarea:focus{border-color:var(--mint)}.send{background:var(--violet);color:#fff;padding:0 20px;font-size:16px}.settings{padding:0 16px}.settings summary{cursor:pointer;padding:15px 2px;font-weight:750}.settings-body{border-top:1px solid var(--line);padding:14px 0}.check{display:block;margin-bottom:14px}.coming{border:1px dashed #466473;border-radius:14px;padding:13px;color:#cbdde1}.coming p{margin:7px 0 0;color:var(--muted);font-size:14px}.badge{margin-left:8px;background:#203d4b;color:#9eb8c0;padding:4px 7px;border-radius:8px;font-size:12px}footer{display:flex;flex-wrap:wrap;gap:12px;margin:16px 4px 0;color:#85a5ae;font-size:13px}footer a{color:#8fe8d6}.thinking .pulse i{background:#c49cff}.speaking .pulse i{background:#70b8ff}.error-state .pulse i{background:var(--danger)}@media(max-width:620px){.app{padding:8px}.top,.voice-card,.chat-card,.settings{border-radius:16px}.top{padding:14px}.voice-card{padding:14px}.voice-actions{flex-direction:column}.log{max-height:52vh;padding:12px}.composer{gap:7px}.send{padding:0 14px}.msg{max-width:96%}.state-label{font-size:18px}}@media(prefers-reduced-motion:reduce){.pulse.active i{animation:none}}.control-card,.concierge-card,.camera-card,.vision-card,.video-card{margin-top:14px;background:rgba(14,36,49,.95);border:1px solid var(--line);border-radius:22px;padding:18px}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.control-group{min-width:0}.control-title{display:block;font-weight:800;margin-bottom:8px}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice,.mini-toggle,.secondary{border:1px solid #426371;background:#102936;color:#e9fbf7;border-radius:999px;padding:9px 14px;font-weight:750;cursor:pointer}.choice.selected,.mini-toggle.selected{background:var(--mint);color:#06221c;border-color:var(--mint)}.device-note,.feature-note{color:var(--muted);font-size:13px;line-height:1.5;margin:10px 0 0}.concierge-head,.feature-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start}.eyebrow{display:block;font-size:11px;letter-spacing:.12em;color:var(--mint);font-weight:850}.concierge-head h2,.feature-head h2{margin:3px 0 6px;font-size:20px}.concierge-head p,.feature-head p{margin:0;color:var(--muted);line-height:1.5}.character-stage{margin-top:16px;padding:14px;border-radius:16px;background:#0a1e29;border:1px solid #244b59;display:flex;align-items:center;gap:14px}.avatar{width:82px;height:82px;border-radius:24px;display:grid;place-items:center;position:relative;background:linear-gradient(145deg,#173948,#28596a);transition:.25s}.avatar-face{font-size:46px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}.avatar.male{background:linear-gradient(145deg,#172e48,#284c6a)}.avatar[data-state="listening"]{box-shadow:0 0 0 5px rgba(98,231,202,.18)}.avatar[data-state="thinking"]{animation:think 1s ease-in-out infinite}.avatar[data-state="speaking"]{box-shadow:0 0 0 5px rgba(100,200,236,.2);transform:translateY(-2px)}@keyframes think{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}.status-ring{position:absolute;right:6px;bottom:6px;width:13px;height:13px;border-radius:50%;background:#6d8790;border:2px solid #0a1e29}.avatar[data-state="listening"] .status-ring{background:var(--mint)}.avatar[data-state="thinking"] .status-ring{background:#c49cff}.avatar[data-state="speaking"] .status-ring{background:#70b8ff}.character-meta{display:flex;flex-direction:column;gap:4px}.character-meta span{color:var(--muted);font-size:14px}.safe-badge,.coming-badge{white-space:nowrap;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}.safe-badge{background:#153b38;color:#9ff2de}.coming-badge{background:#2c2940;color:#ccb7ff}.camera-preview{width:100%;max-width:480px;aspect-ratio:4/3;object-fit:cover;border-radius:16px;background:#000;display:block;margin:16px auto 0;transform:scaleX(-1)}.camera-preview[hidden]{display:none}.feature-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.secondary{border-radius:12px}.secondary:disabled,.disabled-btn{opacity:.55;cursor:not-allowed}.video-card{border-style:dashed}.camera-card,.vision-card,.video-card{overflow:hidden}@media(max-width:620px){.control-grid{grid-template-columns:1fr}.control-card,.concierge-card,.camera-card,.vision-card,.video-card{border-radius:16px;padding:14px}.concierge-head,.feature-head{flex-direction:column}.feature-actions{flex-direction:column}.secondary{width:100%}.avatar{width:72px;height:72px}.avatar-face{font-size:40px}}.language-picker{display:flex;align-items:center;gap:10px;margin-top:16px;padding:10px 12px;border:1px solid #294d5a;border-radius:16px;background:#0a202b}.language-picker label{font-size:13px;font-weight:800;color:#b9d6dc;white-space:nowrap}.language-picker select{appearance:auto;flex:1;min-width:0;min-height:44px;border:1px solid #426371;border-radius:12px;background:#102936;color:#ecfbf8;padding:8px 12px;font:700 14px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;outline:none;cursor:pointer}.language-picker select:focus{border-color:var(--mint);box-shadow:0 0 0 3px rgba(98,231,202,.14)}html[dir="rtl"] .language-picker,html[dir="rtl"] .control-card,html[dir="rtl"] .concierge-card,html[dir="rtl"] .voice-card,html[dir="rtl"] .camera-card,html[dir="rtl"] .vision-card,html[dir="rtl"] .chat-card,html[dir="rtl"] .video-card,html[dir="rtl"] .settings{text-align:right}.langs{display:none!important}@media(max-width:620px){.language-picker{align-items:stretch;flex-direction:column;gap:6px}.language-picker label{white-space:normal}.language-picker select{width:100%}}

/* sugo-mobile-readable-20261018: readable controls and zoom-friendly page flow. */
@media (max-width: 760px) {
  html { font-size: 18px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { font-size: 18px; overflow-wrap: anywhere; }
  .app, .brand > div, .character-meta, .concierge-head > div, .feature-head > div { min-width: 0; }
  .msg { font-size: 18px; line-height: 1.7; }
  .composer { position: static; flex-wrap: wrap; }
  .composer textarea { min-width: 0; font-size: 18px; }
  .send { min-height: 48px; }
  .choice, .mini-toggle, .secondary, .language-picker select { font-size: 16px; min-height: 44px; }
  .device-note, .feature-note, .voice-help, .language-picker label, .character-meta span { font-size: 16px; }
  .choice, .secondary, .primary, .stop { overflow-wrap: anywhere; white-space: normal; }
  .avatar { flex-shrink: 0; }
}

/* Prominent public/member entry; member authorization remains in the existing GAS bot. */
.sugo-access{background:#fff;border:1px solid #cbd5e1;border-radius:18px;padding:18px;margin:16px 0;color:#172033}
.sugo-access h2{font-size:1.1rem;margin:0 0 12px}
.sugo-mode-buttons{display:flex;flex-wrap:wrap;gap:10px}
.sugo-mode-buttons button{flex:1 1 220px;min-height:48px;padding:12px;border-radius:12px;border:2px solid #4338ca;background:#fff;color:#312e81;font:inherit;font-weight:700;cursor:pointer;overflow-wrap:anywhere}
.sugo-mode-buttons button[aria-pressed=true]{background:#4338ca;color:#fff}
.sugo-mode-buttons button:focus-visible,.sugo-member-panel a:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}
.sugo-access p{margin:12px 0 0;line-height:1.7}
.sugo-member-panel{background:#fff;border-radius:14px;padding:10px;margin-bottom:18px}
.sugo-member-panel a{display:block;padding:12px;color:#3730a3;font-weight:700;overflow-wrap:anywhere}
#sugoMemberFrame{display:block;width:100%;height:1100px;border:0;border-radius:10px;background:#fff}
#sugoPublicPanel[hidden],#sugoMemberPanel[hidden]{display:none!important}
@media(max-width:600px){.sugo-access{padding:14px}#sugoMemberFrame{height:1400px}}

/* sugo-concierge-20261021: portrait-led concierge, no emoji avatar or artificial face shaking. */
#conciergeCard{padding:24px;border:1px solid #30475c;border-radius:26px;background:linear-gradient(125deg,#132b3b,#0c1b29);box-shadow:0 16px 42px #0002;overflow:hidden}
#conciergeCard .eyebrow{font-size:11px;letter-spacing:.18em;color:#96d5d0}
#conciergeCard h2{font-size:24px;letter-spacing:.02em;margin:7px 0}
#conciergeCard .concierge-head{align-items:flex-start;margin-bottom:22px;gap:16px}
#conciergeCard .concierge-head p{color:#b9cbd2;line-height:1.7}
#characterStage{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);align-items:center;gap:28px;padding:0;background:none}
#avatar{width:100%;height:auto;aspect-ratio:3/4;max-width:280px;flex:none;border-radius:20px;overflow:hidden;position:relative;background:#e9e4dc;box-shadow:0 18px 32px #0003;animation:none!important;transform:none!important}
#avatar .avatar-face{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 30%;font-size:0;animation:none!important;transform:none!important}
#avatar .status-ring{inset:0;border:1px solid #ffffff30;border-radius:20px;animation:none}
#avatar[data-state=listening]{outline:3px solid #83d6c7;outline-offset:4px}
#avatar[data-state=speaking]{outline:3px solid #b2c7fa;outline-offset:4px}
#avatar[data-state=thinking]{outline:2px solid #b5a0d9;outline-offset:4px}
#characterStage .character-meta{display:flex;flex-direction:column;align-items:flex-start;gap:16px;min-width:0}
#characterName{font-size:clamp(20px,3vw,29px);font-weight:650;color:#f4fafb;line-height:1.5}
#characterStatus{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:10px 16px;border:1px solid #ffffff25;border-radius:100px;color:#d6e8e8;background:#ffffff0a;font-size:15px}
#characterStatus::before{content:"";width:8px;height:8px;border-radius:50%;background:#83d6c7;flex-shrink:0}
#characterStage:has(#avatar[data-state=speaking]) #characterStatus::before,#characterStage:has(#avatar[data-state=listening]) #characterStatus::before{animation:sugoStatusPulse 1.3s ease-in-out infinite}
#characterToggle{background:#193d41;color:#a8f0d9;border:1px solid #4a7777;min-width:60px}
#characterStage[hidden]{display:none!important}
@keyframes sugoStatusPulse{50%{opacity:.35;box-shadow:0 0 0 5px #83d6c714}}
@media(max-width:600px){#conciergeCard{padding:18px;border-radius:22px}#conciergeCard h2{font-size:22px}#characterStage{grid-template-columns:minmax(0,1fr);gap:18px}#avatar{max-width:260px;margin-inline:auto}#characterStage .character-meta{align-items:center;gap:10px;text-align:center}#characterName{font-size:21px}}
@media(prefers-reduced-motion:reduce){#characterStatus::before{animation:none!important}}
/* 2026-11-06: the concierge and the question box sit together at the top so the AI is easy to find */
.sugo-ai-main{display:grid;gap:0}
.sugo-ai-main .chat-card{margin-top:14px}
#conciergeCard .cc-full-mount{width:150px;flex-basis:150px}
@media(min-width:860px){.sugo-ai-main{grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}.sugo-ai-main .chat-card{margin-top:14px;min-height:560px}.sugo-ai-main .log{max-height:62vh}#conciergeCard .cc-full-mount{width:236px;flex-basis:236px}}
.sugo-ask-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;display:inline-flex;align-items:center;gap:6px;padding:13px 18px;border-radius:999px;background:linear-gradient(135deg,var(--mint),#64c8ec);color:#062018;font-weight:850;text-decoration:none;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.sugo-ask-fab[hidden]{display:none}
@media(min-width:860px){.sugo-ai-main #characterStage{display:flex!important;flex-direction:column;flex-wrap:nowrap;align-items:center;text-align:center}.sugo-ai-main .character-meta{align-items:center}}
@media(min-width:860px){.sugo-ai-main #characterStage .cc-full-mount{flex:0 0 auto}}
.sugo-gender-quick{margin-top:12px}

/* ===== 2026-11-06 シンプル版（代表指示: ごちゃごちゃを整理。最初の画面はコンシェルジュと会話だけ） ===== */
#subtitle{display:none}
.top{padding:12px 16px}.top h1{font-size:22px;margin:0}
.language-picker{margin-top:10px;padding:6px 10px}
.language-picker select{min-height:38px}
.sugo-access{margin-top:10px;padding:8px 12px!important}
.sugo-access h2,#sugoAccessHint{display:none}
.sugo-access .sugo-mode-buttons{display:flex;gap:8px}
.sugo-access .sugo-mode-buttons button{flex:1;min-height:40px;font-size:14px}
.sugo-main{margin-top:12px;background:rgba(14,36,49,.97);border:1px solid var(--line);border-radius:22px;overflow:hidden}
.sugo-main-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.sugo-main-title{font-size:17px}
.sugo-main-head .sugo-gender-quick{margin:0}
.sugo-main-head .choice{padding:7px 14px}
.sugo-main-body{display:grid;grid-template-columns:118px minmax(0,1fr);gap:0}
.sugo-main-stage{padding:10px 0 10px 10px}
.sugo-main-stage .character-stage{margin:0!important;padding:0!important;background:none!important;border:0!important;display:block!important}
.sugo-main-stage .character-meta{display:none}
#characterStage .cc-full-mount{width:108px!important;flex-basis:auto!important;margin:0 auto}
.sugo-main-chat.chat-card{margin:0!important;border:0!important;border-radius:0!important;min-height:0!important;background:none!important;display:flex;flex-direction:column}
.sugo-main-chat .log{max-height:none;min-height:150px;padding:12px;flex:1}
.sugo-starters{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 10px}
.sugo-chip{border:1px solid #3f7f86;background:#103341;color:#e9fbf7;border-radius:999px;padding:10px 14px;font:700 14px/1.2 system-ui,sans-serif;cursor:pointer;min-height:44px}
.sugo-chip:hover{background:#15475a}
.sugo-voice-row{display:flex;align-items:center;gap:10px;padding:0 12px 8px;flex-wrap:wrap}
.sugo-voice-row .voice-actions{margin:0;flex:0 0 auto}
.sugo-voice-row .primary,.sugo-voice-row .stop{font-size:16px;padding:12px 18px;flex:0 0 auto}
.sugo-voice-row .state-row{min-height:0;gap:8px;flex:1;min-width:0}
.sugo-voice-row .state-label{font-size:14px;font-weight:700;color:var(--muted)}
.sugo-voice-row .heard{font-size:13px}
.sugo-voice-row .pulse{height:22px;min-width:30px}
.sugo-main-chat .error{margin:0 12px 8px}
.sugo-main-chat .composer{position:static}
@media(min-width:760px){
 .sugo-main-body{grid-template-columns:230px minmax(0,1fr)}
 .sugo-main-stage{padding:14px}
 #characterStage .cc-full-mount{width:200px!important}
 .sugo-main-chat .log{min-height:300px;max-height:52vh}
}
.sugo-more{margin-top:14px;background:rgba(14,36,49,.95);border:1px solid var(--line);border-radius:18px}
.sugo-more>summary{cursor:pointer;padding:15px 16px;font-weight:800;color:#cfe7ea;list-style:none}
.sugo-more>summary::-webkit-details-marker{display:none}
.sugo-more>summary::before{content:"＋ ";color:var(--mint)}
.sugo-more[open]>summary::before{content:"－ "}
.sugo-more-body{padding:0 12px 12px}
.sugo-more-body>section,.sugo-more-body>details{margin-top:12px}
.sugo-ask-fab{display:none!important}
.sugo-main-stage .character-meta{display:none!important}
.full-link[hidden]{display:none!important}
.language-picker label{display:none}
.language-picker{padding:0;border:0;background:none;margin-top:8px}
.top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.top .brand{flex:1}
.top .language-picker{margin-top:0;flex:0 0 auto}.top .language-picker select{min-height:36px;font-size:13px;padding:4px 8px;max-width:170px}
.sugo-access{background:none!important;border:0!important;box-shadow:none!important;padding:6px 2px 0!important;margin-top:4px}
.sugo-access .sugo-mode-buttons button{min-height:34px;font-size:13px;padding:6px 10px;border-radius:999px}
/* phone: concierge + conversation side by side, then questions / voice / input across the full width */
.sugo-main-chat.chat-card{display:contents}
.sugo-main-chat .log{grid-column:2;grid-row:1}
.sugo-main-stage{grid-column:1;grid-row:1}
.sugo-starters,.sugo-voice-row,.sugo-main-chat .error,.sugo-main-chat .composer{grid-column:1/-1}
.sugo-starters{padding:4px 12px 10px}
@media(min-width:760px){
 .sugo-main-chat.chat-card{display:flex}
 .sugo-main-stage{grid-row:1/span 1}
}
/* 2026-11-06 voice check: on phones the conversation scrolls inside its own box, so after a few answers the
 * concierge, the Talk button and the question box stay on screen instead of being pushed down the page. */
@media(max-width:759px){.sugo-main-chat .log{max-height:42vh;max-height:42dvh;overflow-y:auto}}
.tts-note{align-self:flex-start;font-size:12px;color:var(--muted);margin:-4px 0 0 4px}
