/* EXT-03 mobile continuation. This is an additive composition layer over the canonical desktop shell.
   It deliberately reuses WorldContext, Decision Set/Memory, Brief and semantic actions. */
.sn-mobile-dock,.sn-mobile-note-sheet,.sn-mobile-places-toggle{display:none}
@media(max-width:999px){
  html,body{width:100%;max-width:100%;overflow-x:hidden;background:#e8f0fb}
  body{overscroll-behavior-y:contain}
  #portal-root{min-height:100dvh}
  .sn-desktop{min-width:0;min-height:100dvh;height:auto;width:100%;display:flex;flex-direction:column;gap:0;padding:0 0 calc(198px + env(safe-area-inset-bottom));overflow:visible;background:#e8f0fb;font-size:14px}
  .sn-rail{position:relative;z-index:30;width:100%;min-height:0;max-height:none;border:0;border-radius:0 0 22px 22px;box-shadow:0 8px 30px #15376512;overflow:visible;background:#fbfdfff8}
  .sn-brand-row{height:64px;padding:7px 14px 0}.sn-brand-row a{width:142px;height:54px}.sn-brand-row img{width:140px;height:58px}
  .sn-nav{margin:0 12px;padding:4px}.sn-nav button{height:44px;font-size:13px}
  .sn-rail-intro{display:none}.sn-brief-launch{margin:10px 12px 8px;padding:11px 12px}.sn-brief-launch>span{margin-left:27px}
  #sn-brief-summary{margin:0 12px 8px;max-height:124px;overflow:auto}
  .sn-list-heading{padding:5px 14px 6px}.sn-search{margin:0 14px 8px;height:44px}
  .sn-results{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:0 12px 12px;min-height:112px;scrollbar-width:none}.sn-results::-webkit-scrollbar{display:none}
  .sn-place{flex:0 0 min(78vw,300px);scroll-snap-align:start;min-height:96px;margin:0;background:#fff;border:1px solid #e0e9f5}.sn-place-main{min-height:88px}.sn-place>.sn-icon{top:28px}
  .sn-rail-footer{position:relative;display:flex;gap:7px;align-items:center;min-height:42px;padding:6px 14px 10px;border-top:1px solid #e5edf6;background:transparent}.sn-rail-footer>div{min-width:0;display:grid}.sn-rail-footer strong{font-size:9px}.sn-rail-footer #sn-data-note{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sn-rail-footer>.sn-icon{margin-left:auto;flex:0 0 40px}
  .sn-world{width:100%;min-height:650px;height:calc(100dvh - 230px);max-height:none;border-radius:22px 22px 0 0;border-left:0;border-right:0;overflow:hidden;box-shadow:none;flex:1 0 auto}
  .sn-world-header{left:12px;right:12px;top:12px}.sn-location{padding:6px 10px 6px 6px}.sn-location-icon{width:31px;height:31px}.sn-world-header-right{gap:6px}.sn-world-header-right .sn-glass-button{padding:9px 10px}.sn-preview-badge{font-size:9px;padding:6px 7px}
  .sn-world-heading{left:18px;right:18px;top:92px}.sn-world-heading h2{font-size:36px;line-height:1.05}.sn-world-heading p{max-width:260px}
  .sn-map-controls{right:12px;top:72px;transform:scale(.92);transform-origin:top right}.sn-map-modes{display:none}
  .sn-workspace-context{left:12px;right:12px;top:72px;max-width:calc(100% - 24px)}
  .sn-answer{left:10px!important;right:10px!important;top:116px!important;bottom:178px!important;width:auto!important;max-width:none!important;max-height:none!important;border-radius:20px;overflow:auto}
  .sn-answer-header{position:sticky;top:0;z-index:8;padding:15px 16px;background:#fff}.sn-answer-body{padding:16px!important}
  .sn-twin-layout,.sn-floorplan-layout,.sn-floor-workspace,.sn-solar-layout,.sn-truth-grid,.sn-form-grid,.sn-help-grid,.sn-route-scenario{grid-template-columns:1fr!important}
  .sn-twin-scene{min-height:300px}.sn-floor-workspace{gap:12px}.sn-workspace-scroll{padding:14px}.sn-workspace-tabs{padding:10px 14px;overflow-x:auto;flex-wrap:nowrap}.sn-workspace-tabs button{flex:0 0 auto}
  .sn-comparison-grid,.sn-plan-comparison{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px}.sn-compare-option,.sn-plan-comparison>article{flex:0 0 86vw;scroll-snap-align:start;min-width:0}
  .sn-table-scroll{max-width:100%;overflow:auto}.sn-decision-table{min-width:720px}
  .sn-decision-tray{left:10px!important;right:10px!important;bottom:172px!important;width:auto!important;max-width:none!important}
  .sn-command-area{position:fixed;z-index:70;left:10px;right:10px;bottom:calc(66px + env(safe-area-inset-bottom));width:auto!important;transform:none}.sn-command{border-radius:18px;box-shadow:0 12px 44px #0f23462b}.sn-command-hint{display:none}.sn-continuations{max-height:82px;overflow-x:auto;flex-wrap:nowrap}.sn-continuations button{flex:0 0 auto}
  .sn-nook-stage{position:fixed!important;z-index:66!important;left:auto!important;right:14px!important;top:auto!important;bottom:calc(182px + env(safe-area-inset-bottom))!important;transform:none!important;scale:.78;transform-origin:bottom right}.sn-nook-bubble{display:none}
  .sn-world-footer{display:none}
  .sn-dialog{width:calc(100vw - 20px)!important;max-width:none!important;max-height:calc(100dvh - 32px);padding:18px;border-radius:20px}.sn-dialog .sn-form-grid{grid-template-columns:1fr!important}
  button,.sn-small-button,.sn-primary,.sn-secondary,.sn-glass-button{min-height:44px}.sn-icon{min-width:40px;min-height:40px}
  .sn-mobile-dock{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:90;left:8px;right:8px;bottom:calc(6px + env(safe-area-inset-bottom));height:56px;padding:4px;background:#fbfdfffa;border:1px solid #dbe7f5;border-radius:16px;box-shadow:0 12px 36px #0f23462b;backdrop-filter:blur(18px)}
  .sn-mobile-dock button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:46px;border-radius:11px;background:transparent;color:#34577d;font-size:11px;font-weight:650}.sn-mobile-dock button:focus-visible{outline:3px solid #1455ff;outline-offset:2px}.sn-mobile-dock button[data-mobile-action="visit-note"]{color:#1455ff}
  .sn-mobile-note-sheet{position:fixed;z-index:110;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));max-height:70dvh;overflow:auto;background:#fff;border:1px solid #dbe7f5;border-radius:20px;box-shadow:0 24px 80px #0b23403b;padding:18px;color:#102448}.sn-mobile-note-sheet[data-open="true"]{display:block}.sn-mobile-note-sheet header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sn-mobile-note-sheet h2{font-size:18px;margin:3px 0}.sn-mobile-note-sheet p{font-size:12px;color:#62728c;margin:5px 0 12px}.sn-mobile-note-sheet textarea{box-sizing:border-box;width:100%;min-height:150px;border:1px solid #cfdeea;border-radius:13px;padding:12px;font:inherit;resize:vertical;color:#102448}.sn-mobile-note-actions{display:flex;gap:8px;margin-top:10px}.sn-mobile-note-actions button{flex:1;border-radius:12px;background:#eef5ff}.sn-mobile-note-actions .is-primary{background:#1455ff;color:#fff}
}
@media(max-width:430px){.sn-place{flex-basis:84vw}.sn-world{height:calc(100dvh - 218px);min-height:610px}.sn-world-header-right .sn-glass-button{font-size:0;width:44px;padding:0;justify-content:center}.sn-preview-badge{max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sn-answer{top:110px!important}.sn-compare-option,.sn-plan-comparison>article{flex-basis:90vw}}
@media(prefers-reduced-motion:reduce){.sn-results,.sn-comparison-grid,.sn-plan-comparison{scroll-behavior:auto}.sn-mobile-dock,.sn-mobile-note-sheet{backdrop-filter:none}}

/* The city and active answer own the viewport; the directory opens on demand. */
@media(max-width:999px){
  html,body{height:100%;overflow:hidden;background:#f4f6f7}
  .sn-desktop{height:100dvh;min-height:0;padding:64px 0 0;overflow:hidden;background:#f4f6f7}
  .sn-rail{position:absolute;inset:0 0 auto;z-index:80;height:64px;border-radius:0;overflow:hidden;box-shadow:none}
  .sn-rail>:not(.sn-brand-row){display:none}
  .sn-brand-row{height:64px;padding:0 12px;gap:8px;border-bottom:1px solid #dfe5e9}
  .sn-brand-row>a{margin-right:auto}
  .sn-mobile-places-toggle{display:flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;border-radius:8px;background:#edf2f6;color:#214e6b;font-size:12px}
  .sn-mobile-places-toggle .icon{width:17px;height:17px}
  .sn-mobile-places-toggle[aria-expanded="true"]{background:#e1f0ea;color:#19664f}
  .sn-desktop[data-mobile-places="true"] .sn-rail{height:calc(100dvh - 178px - env(safe-area-inset-bottom));display:flex;flex-direction:column;border-bottom:1px solid #dfe5e9;box-shadow:0 16px 32px #183b3d22}
  .sn-desktop[data-mobile-places="true"] .sn-rail>:not(.sn-rail-intro){display:flex;flex-shrink:0}
  .sn-desktop[data-mobile-places="true"] .sn-rail>[hidden]{display:none}
  .sn-desktop[data-mobile-places="true"] .sn-results{display:block;overflow:auto;min-height:0;flex:1 1 auto;padding:0 12px}
  .sn-desktop[data-mobile-places="true"] .sn-place{margin-bottom:8px}
  .sn-world{height:100%;min-height:0;max-height:100%;flex:1 1 auto;border-radius:0;border:0}
  /* Keep the provider's own attribution above the fixed composer and dock. */
  .sn-city,.sn-pins{bottom:calc(var(--sn-command-height,100px) + 80px + env(safe-area-inset-bottom))}
  .sn-world-header{left:12px;right:12px;top:10px}
  .sn-location{background:#ffffffef}.sn-location>div>span{display:none}
  .sn-workspace-context{top:66px;gap:6px}
  .sn-map-controls{top:120px}
  .sn-desktop:not([data-output="discover"]) .sn-map-controls{display:none}
  .sn-context-identity{display:none}
  .sn-context-back{max-width:calc(100% - 96px)}
  .sn-answer,.sn-answer[data-wide="true"]{top:110px!important;bottom:calc(var(--sn-command-height,100px) + 112px + env(safe-area-inset-bottom))!important;max-height:none!important;border-radius:8px;overscroll-behavior:contain}
  .sn-answer-header{padding:12px 14px;gap:8px}.sn-answer-header h2{font-size:18px;line-height:1.35}
  .sn-answer-body{padding:12px!important}
  .sn-desktop:not([data-output="discover"]) .sn-continuations{display:none}
  .sn-desktop:not([data-output="discover"]) .sn-nook-stage{display:none}
  .sn-desktop:not([data-output="discover"]) .sn-decision-tray{display:none}
  .sn-decision-tray{top:auto!important;bottom:calc(var(--sn-command-height,100px) + 82px + env(safe-area-inset-bottom))!important;height:auto;transform:none}
  .sn-decision-tray:not(:has(.sn-memory-tray-button,.sn-decision-dots)){display:none}
  .sn-command-area{bottom:calc(66px + env(safe-area-inset-bottom))}
  .sn-command{padding:6px 10px 8px;border-radius:8px}
  .sn-command-top{min-height:28px;padding:0}.sn-command-history .sn-icon{min-height:28px;height:28px}
  #sn-input{font-size:14px;line-height:1.4;min-height:44px;max-height:80px}
  .sn-presence>span:last-child{display:none}
  .sn-reply{max-height:100px;overflow:auto}
  .sn-nook-stage{bottom:calc(196px + env(safe-area-inset-bottom))!important}
  .sn-plan-comparison>article,.sn-compare-option{flex:0 0 100%;min-width:0}
  .sn-plan-comparison .sn-reference-stage{height:210px}
  .sn-plan-comparison{scroll-padding:0;gap:12px}
  .sn-plan-navigation{display:flex;align-items:center;gap:10px;margin-bottom:8px}
  .sn-plan-navigation label{font-size:12px;color:#526272}
  .sn-plan-navigation select{min-width:0;flex:1;min-height:44px;padding:6px 8px;border:1px solid #dfe5e9;border-radius:4px;background:white;color:#25384c;font:inherit;font-size:12px}
  .sn-reference-toolbar{flex-wrap:wrap;gap:2px}
  .sn-reference-toolbar button{min-width:40px;min-height:40px}
}
