/* Phone and compact tablet layouts; desktop keeps its two-column workspace. */
.mobile-edit-event { display:none; }
@media (max-width:900px) {
  html { scroll-padding:16px 0 calc(96px + env(safe-area-inset-bottom)); }
  body { padding-bottom:calc(80px + env(safe-area-inset-bottom)); }
  .sidebar { position:relative; inset:auto; width:100%; padding:calc(16px + env(safe-area-inset-top)) max(18px, env(safe-area-inset-left)) 16px; border-right:0; border-bottom:1px solid var(--line); }
  .brand { width:max-content; max-width:calc(100% - 54px); font-size:21px; gap:9px; }
  .brand-mark { width:34px; height:34px; }
  .brand-caption { font-size:11px; letter-spacing:1px; }
  .sidebar>.main-nav { position:fixed; inset:auto 0 0; z-index:50; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin:0; padding:8px max(10px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)); background:#18211af5; backdrop-filter:blur(18px); border-top:1px solid #485440; box-shadow:0 -8px 30px #0003; }
  .main-nav .nav-item { display:flex; flex-direction:column; justify-content:center; min-height:56px; height:auto; gap:4px; padding:6px 2px; border:1px solid transparent; border-radius:9px; font-size:12px; line-height:1.4; }
  .main-nav .nav-item.active { background:#343828; border-color:#57583d; box-shadow:none; }
  .main-nav .nav-item .icon { display:block; width:20px; height:20px; }
  .nav-lock-label { display:none; }
  .workspace { margin-left:0; }
  .topbar { position:absolute; top:calc(16px + env(safe-area-inset-top)); right:max(18px, env(safe-area-inset-right)); z-index:21; height:44px; padding:0; border:0; background:none; }
  .topbar .breadcrumb, .topbar .local-clock { display:none; }
  .topbar .icon-button { width:44px; height:44px; }
  main { padding:22px max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left)); }
  .view, .panel, .sentiment-card, .news-card { min-width:0; }
  .page-heading { gap:12px; margin-bottom:20px; }
  h1 { font-size:27px; }
  input, select, textarea, .search-field input, .news-company-tools select, .sentiment-period, .sentiment-toolbar input { font-size:16px; }
  input, select, textarea { max-width:100%; }
  .search-field { min-width:0; }
  .icon-button, .text-button, .copy-button, .secondary-button, .impact-market-filter button, .ai-market-controls button, .ai-layer-filters button, .news-mentions button { min-height:44px; }
  .icon-button { min-width:44px; }
  .text-button { padding:6px 4px; }
  .summary-details summary, .impact-evidence summary, .resolved-entity summary, .ai-layer-insight summary, .ai-map-footnote>summary { min-height:44px; }
  .event-workspace .analysis-grid { grid-template-columns:1fr; }
  .event-workspace .analysis-grid>.panel { position:static; top:auto; }
  .event-workspace .input-panel, .event-workspace .result-panel { padding:20px; }
  .event-workspace .input-panel { scroll-margin-top:16px; }
  .event-workspace .result-panel>.panel-heading { column-gap:8px; row-gap:4px; }
  .result-panel>.panel-heading h2 { flex:1; }
  .result-panel>.panel-heading #result-mode { order:3; }
  .mobile-edit-event { display:inline-flex; margin-left:auto; white-space:nowrap; }
  .event-workspace .primary-button { min-height:50px; }
  .impact-market-filter { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .impact-stock>p { font-size:14px; }
  .impact-evidence summary, .impact-evidence p { font-size:13px; }
  .impact-card-actions { gap:8px 16px; }
  .impact-card-actions button { min-height:44px; font-size:13px; }
  #toggle-presets { min-height:44px; }
  .news-list, .community-comparison { grid-template-columns:1fr; }
  .news-tools { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; }
  .news-search { width:100%; }
  .news-tools .sentiment-period { max-width:none; }
  .news-company-tools { gap:8px; }
  .news-company-tools select { flex:1; min-width:0; width:100%; }
  .news-company-tools .text-button { margin-left:auto; }
  .news-card h2 { overflow-wrap:anywhere; }
  .news-card-footer a { display:inline-flex; align-items:center; min-height:44px; max-width:100%; }
  .news-card-footer .text-button { margin:0; }
  .news-meta { overflow-wrap:anywhere; }
  .sentiment-toolbar { display:grid; grid-template-columns:44px minmax(0,1fr) 44px auto; gap:8px; }
  .sentiment-toolbar label { min-width:0; }
  .sentiment-toolbar label>.icon { display:none; }
  .sentiment-toolbar input { width:100%; max-width:none; min-width:0; }
  .sentiment-toolbar .icon-button { width:44px; height:44px; }
  .sentiment-toolbar>span { grid-column:1/-1; margin:0; }
  #sentiment-today { min-width:44px; }
  .sentiment-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .sentiment-shortcuts button { justify-content:center; padding:8px 5px; gap:4px; font-size:12px; }
  .risk-history .history-heading { flex-wrap:wrap; gap:10px; }
  .risk-history h3 { white-space:normal; font-size:17px; flex:1 1 150px; }
  .risk-history .sentiment-period { margin-left:0; max-width:none; }
  .risk-card .sentiment-chart { touch-action:pan-y; }
  .community-ranking .rank-column { width:36px; }
  .community-ranking .change-column { width:50px; }
  .community-ranking .mentions-column { width:86px; }
  .community-stock strong { font-size:15px; }
  .community-stock small { font-size:12px; }
  .community-stock a { min-height:44px; display:flex; flex-direction:column; justify-content:center; }
  .community-ranking tbody tr, .community-ranking td { height:68px; }
  .community-comparison .social-heading { min-height:0; }
  .community-comparison .social-badge { display:inline-flex; align-items:center; min-height:40px; }
  .community-more .social-time { overflow-wrap:anywhere; }
  .map-mode-tabs { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
  .map-mode-tabs button { min-height:48px; font-size:14px; padding:10px 4px; }
  .ai-map-hero { padding:16px 20px; }
  .ai-map-hero h2 { font-size:22px; margin:0; }
  .ai-map-hero .ai-stack-preview { display:none; }
  .ai-map-toolbar { display:grid; grid-template-columns:1fr; gap:12px; margin-top:16px; }
  .ai-market-controls { display:flex; }
  .ai-market-controls button { flex:1; }
  .ai-map-toolbar .ai-search { width:100%; margin:0; }
  .ai-layer-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .ai-layer-filters button { justify-content:center; font-size:12px; padding:8px 4px; gap:5px; }
  .ai-layer { grid-template-columns:1fr; }
  .ai-layer-label { padding:16px; }
  .ai-layer-body { padding:14px; }
  .ai-market-row { flex-direction:column; gap:8px; }
  .ai-market-label { flex-direction:row; width:auto; gap:6px; padding:0; font-size:12px; }
  .ai-market-label small { margin:0; }
  .ai-company-grid { width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ai-company-node { padding:12px; min-height:100px; }
  .ai-node-name { font-size:14px; }
  .ai-company-node small { font-size:12px; }
  .ai-layer-insight { margin-left:0; }
  .ai-map-meta { flex-wrap:wrap; gap:6px; }
  .supply-map { grid-template-columns:1fr; }
  .map-toolbar { align-items:stretch; }
  dialog, .ai-company-dialog { width:calc(100% - 24px); max-width:600px; max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding:20px; overscroll-behavior:contain; }
  .dialog-heading, .ai-detail-heading { position:sticky; top:-20px; z-index:2; background:var(--panel); padding:10px 0; margin-bottom:14px; }
  .ai-detail-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .ai-detail-actions button { justify-content:center; }
  .toast { left:50%; bottom:calc(90px + env(safe-area-inset-bottom)); }
}
@media (max-width:640px) {
  main { padding-top:20px; }
  .event-workspace .input-panel, .event-workspace .result-panel, .sentiment-card, .news-card { padding:16px; }
  .event-workspace .panel h2 { font-size:17px; }
  .featured-presets { grid-template-columns:1fr; }
  .featured-presets .preset { min-height:46px; font-size:14px; }
  .impact-groups { grid-template-columns:1fr; }
  .news-tools { grid-template-columns:1fr; }
  .news-tools .sentiment-period { width:100%; }
  .news-company-tools label { width:100%; }
  .news-company-tools select { flex-basis:100%; }
  .news-card-footer .text-button { flex:1; justify-content:center; }
  .news-card-footer>a { width:100%; }
  .sentiment-scale-labels { font-size:11px; }
  .sentiment-meter-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .sentiment-value { display:flex; flex-direction:column; align-items:flex-end; gap:0; }
  .sentiment-value>span { font-size:11px; }
  .sentiment-value strong { font-size:28px; line-height:1.25; }
  .chart-legend { font-size:12px; gap:14px; flex-wrap:wrap; }
  .chart-tooltip { font-size:12px; min-height:38px; }
  .sentiment-values table { font-size:12px; }
  .sentiment-values td, .sentiment-values th { padding:10px 3px; }
  .ai-company-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ai-layer-label { padding:16px; }
}
@media (max-width:360px) {
  main { padding-left:12px; padding-right:12px; }
  .event-workspace .panel h2 { font-size:16px; }
  .sentiment-shortcuts button { font-size:12px; }
  .sentiment-shortcuts .icon { display:none; }
  .sentiment-toolbar { grid-template-columns:44px minmax(0,1fr) 44px; gap:6px; }
  #sentiment-today { grid-column:3; grid-row:2; }
  .sentiment-toolbar>span { grid-column:1/3; grid-row:2; }
  .community-ranking .rank-column { width:32px; }
  .community-ranking .change-column { width:46px; }
  .community-ranking .mentions-column { width:78px; }
  .ai-company-node { padding:10px; }
}
