@media(max-width:374px){
  .screen{padding-left:var(--space-3);padding-right:var(--space-3)}
  .home-intro h1{font-size:2.25rem}
  .quick-actions button{padding:0 .5rem;font-size:.75rem;gap:.375rem}
  .quick-actions button svg{width:1rem;height:1rem;flex-shrink:0}
  .mobile-dock{left:.5rem;right:.5rem}
  .mobile-dock span{font-size:.6875rem}
}

@media(max-width:979px){
  .assistant-message-body>p{font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
  .assistant-chat-composer textarea,.composer input,.entry-layer input,.service-layer input,.service-layer textarea{font-size:1rem}
  .assistant-chat-head,.assistant-chat-composer{flex-shrink:0}
  .mobile-dock span{font-size:.6875rem}
  .quick-actions button{min-height:3rem}
}

@media(min-width:600px){
  .screen{padding-left:var(--space-8);padding-right:var(--space-8)}
  .home-intro h1,.screen-heading h1{font-size:var(--text-52)}
  .chart-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(17rem,.85fr);align-items:start;gap:var(--space-10)}
  .chart-layout .chart-visual{position:sticky;top:var(--space-3)}
  .expert-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .expert-hero{grid-template-columns:minmax(16rem,.82fr) minmax(0,1.18fr);align-items:end}
  .slot-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(min-width:980px){
  body.product-active{overflow:hidden}
  .product-shell{height:100dvh;display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);overflow:hidden}
  .mobile-header,.mobile-dock{display:none}
  .side-rail{height:100dvh;padding:var(--space-6) var(--space-4);display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:rgba(8,11,18,.78)}
  .wordmark{min-height:3.5rem;padding:0 var(--space-2);display:flex;align-items:center;gap:var(--space-3);background:transparent;color:var(--text-primary);text-align:left}
  .wordmark-mark{width:2.5rem;height:2.5rem;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;font-family:var(--font-display);font-size:var(--text-20);color:var(--accent-warm)}
  .wordmark>span:last-child{display:grid}
  .wordmark b{font-family:var(--font-display);font-size:var(--text-20);font-weight:600}
  .wordmark small{color:var(--text-muted);font-size:.625rem}
  .primary-nav{margin-top:var(--space-10);display:grid;gap:var(--space-1)}
  .primary-nav button{position:relative;min-height:3.25rem;padding:0 var(--space-4);display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);text-align:left;transition:color var(--duration-fast),background var(--duration-fast),transform var(--duration-fast)}
  .primary-nav button::before{content:"";position:absolute;left:.35rem;top:50%;width:.125rem;height:1.25rem;border-radius:var(--radius-round);background:var(--accent-primary);opacity:0;transform:translateY(-50%) scaleY(.45);transition:opacity var(--duration-fast),transform var(--duration-fast)}
  .primary-nav button.is-active{background:linear-gradient(90deg,rgba(118,212,204,.1),rgba(118,212,204,.025));color:var(--text-primary)}
  .primary-nav button.is-active::before{opacity:1;transform:translateY(-50%) scaleY(1)}
  .primary-nav button:active{transform:scale(.985)}
  .primary-nav svg{width:1.25rem;height:1.25rem;stroke-width:1.8}
  .primary-nav button.is-active svg{color:var(--accent-primary)}
  .primary-nav span{font-size:var(--text-14);font-weight:600}
  .primary-nav i{min-width:1.25rem;height:1.25rem;padding:0 .25rem;display:grid;place-items:center;border-radius:var(--radius-round);background:var(--accent-primary);color:var(--background-primary);font-size:.625rem;font-style:normal;font-weight:700}
  .rail-profile{min-height:4rem;margin-top:auto;padding:var(--space-2);display:grid;grid-template-columns:2.5rem minmax(0,1fr) 1.25rem;align-items:center;gap:var(--space-2);border-top:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);text-align:left}
  .rail-profile>span:first-child{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:50%;background:var(--surface-secondary);color:var(--accent-primary);font-size:var(--text-11);font-weight:700}
  .rail-profile>span:nth-child(2){display:grid}
  .rail-profile b{font-size:var(--text-12)}
  .rail-profile small{color:var(--text-muted);font-size:.625rem}
  .rail-profile svg{width:1rem;height:1rem;color:var(--text-muted)}
  .app-stage{height:100dvh;overflow:hidden}
  .app-stage{position:relative}
  .screen{height:100dvh;min-height:0;padding:var(--space-10) max(var(--space-10),calc((100% - var(--container-main))/2)) var(--space-10);overflow-y:auto;overscroll-behavior:contain}
  .home-screen{justify-content:center}
  .home-intro h1{font-size:var(--text-52)}
  .ephemeris{width:min(22rem,45vh);margin-top:var(--space-3)}
  .home-insight,.next-period{display:none}
  .voice-dock{bottom:var(--space-6)}
  .toast{bottom:var(--space-6)}
  .assistant-chat{position:absolute;top:0;height:100dvh}
  .service-layer{position:absolute;height:100dvh;padding:var(--space-6) max(var(--space-8),calc((100% - 62rem)/2)) var(--space-10)}
  .assistant-chat-head{padding-left:max(var(--space-8),calc((100% - 52rem)/2));padding-right:max(var(--space-8),calc((100% - 52rem)/2))}
  .assistant-chat-stream{padding-left:var(--space-8);padding-right:var(--space-8)}
  .chat-suggestions,.assistant-chat-composer{padding-left:max(var(--space-8),calc((100% - 48rem)/2));padding-right:max(var(--space-8),calc((100% - 48rem)/2))}
}

@media(min-width:1280px){
  .product-shell{grid-template-columns:var(--rail-width) minmax(36rem,1fr) var(--context-width)}
  .context-rail{height:100dvh;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;border-left:1px solid var(--border-subtle);background:rgba(13,17,26,.66)}
  .context-head{padding-bottom:var(--space-6);display:grid;border-bottom:1px solid var(--border-subtle)}
  .context-head span{color:var(--text-muted);font-size:var(--text-11);text-transform:uppercase;letter-spacing:0}
  .context-head b{margin-top:.125rem;font-family:var(--font-display);font-size:var(--text-24);font-weight:400}
  .context-note{padding:var(--space-8) 0;border-bottom:1px solid var(--border-subtle)}
  .context-note h2{margin:var(--space-2) 0 var(--space-3);font-family:var(--font-display);font-size:var(--text-24);font-weight:400;line-height:1.15}
  .context-note p{color:var(--text-muted);font-size:var(--text-12)}
  .context-note button{min-height:2.75rem;margin-top:var(--space-4);padding:0;display:flex;align-items:center;gap:var(--space-2);background:transparent;color:var(--accent-primary);font-size:var(--text-12);font-weight:700}
  .context-note button svg{width:1rem;height:1rem}
  .context-schedule{padding-top:var(--space-8)}
  .context-schedule header{display:flex;align-items:center;justify-content:space-between}
  .context-schedule header button{min-height:2.75rem;background:transparent;color:var(--text-muted);font-size:var(--text-11)}
  .context-schedule>div>button{width:100%;min-height:4.5rem;padding:var(--space-3) 0;display:grid;grid-template-columns:3.5rem minmax(0,1fr);align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);text-align:left}
  .context-schedule time{color:var(--accent-warm);font-size:var(--text-11)}
  .context-schedule>div>button span{display:grid}
  .context-schedule>div>button b{font-size:var(--text-12)}
  .context-schedule>div>button small{color:var(--text-muted);font-size:.625rem}
}

@media(min-width:1680px){
  :root{--rail-width:17rem;--context-width:24rem;--container-main:58rem}
}
