/* Shared workspace overrides load after screen styles. Both map engines remain supported. */
:root { --gold:#d6b879; --mint:#8bd2ba; --appbar-height:56px; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.mobile-appbar,.mobile-nav-scrim,.play-view-switch { display:none; }
.main { min-width:0; }
.workspace-kicker { color:var(--gold); text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:750; }
.workspace-empty { border:1px dashed var(--line); padding:24px; border-radius:16px; color:var(--muted); line-height:1.6; }
.workspace-status { color:var(--mint); font-size:12px; }
.workspace-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.workspace-section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:28px 0 14px; }
.workspace-section-title h2 { margin:0; font-size:20px; }
.entry-card { display:grid !important; grid-template-columns:22px 44px minmax(140px,1fr) auto !important; gap:12px !important; }
.entry-card-body { min-width:0; }
.entry-card-title { white-space:normal !important; overflow-wrap:anywhere; font-size:15px !important; }
.entry-card-summary { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; white-space:normal !important; font-size:12px !important; line-height:1.5; }
.entry-card-meta { grid-column:3; grid-row:2; flex-wrap:wrap; margin-top:-5px; }
.entry-actions { grid-column:4; grid-row:1 / span 2; }
.entry-actions details { position:relative; }
.entry-actions summary { cursor:pointer; padding:10px; list-style:none; border-radius:8px; }
.entry-actions details[open] { background:var(--bg2); }
.entry-actions details button { display:block; margin:5px; }
.bulk-bar:not(.has-selection) > :not(.bulk-left) { display:none; }
.bulk-bar:not(.has-selection) { padding:8px 12px; background:transparent; border-color:transparent; }
.comp-filter-toggle { display:none; }
.world-hero { position:relative; overflow:hidden; min-height:350px; border:1px solid #54615c; border-radius:22px; background:linear-gradient(120deg,#172c35,#29483f); }
.world-hero-map { position:absolute; inset:0 0 0 auto; width:70%; height:100%; object-fit:cover; opacity:.9; mask-image:linear-gradient(to right,transparent,#000 60%); }
.world-hero-copy { position:relative; padding:44px; max-width:790px; background:linear-gradient(90deg,#10212fe8,transparent); }
.world-hero h1 { font-family:Georgia,serif; font-size:clamp(36px,4.5vw,64px); letter-spacing:-.035em; margin:14px 0; }
.world-hero p { max-width:580px; line-height:1.7; color:#d1dbd5; }
.world-stats { display:flex; flex-wrap:wrap; gap:20px; margin-top:28px; color:#b4c8be; font-size:12px; }
.workspace-paths { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:22px; }
.workspace-path { display:block; padding:24px; border:1px solid var(--line); background:linear-gradient(135deg,#172934,#101c26); border-radius:16px; color:inherit; text-decoration:none; transition:border-color .2s,transform .2s; }
.workspace-path:hover { border-color:var(--gold); transform:translateY(-2px); }
.workspace-path h2 { font-size:20px; font-family:Georgia,serif; margin:14px 0; }
.workspace-path p { color:var(--muted); font-size:13px; line-height:1.6; min-height:62px; }
.workspace-path > span:last-child { color:var(--gold); font-size:12px; }
.world-columns { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr); gap:28px; }
.workspace-list { border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.workspace-list > a { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:17px; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
.workspace-list > a:last-child { border-bottom:0; }
.workspace-list > a:hover { background:#ffffff06; }
.workspace-list small { display:block; color:var(--muted); margin-top:5px; }
.workspace-badge { font-size:10px; color:var(--mint); border:1px solid #8bd2ba40; padding:4px 8px; border-radius:20px; white-space:nowrap; }
.continue-card p { line-height:1.8; color:var(--muted); }
.atlas-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:24px; align-items:start; }
.atlas-viewport { height:500px; overflow:auto; border-radius:16px; border:1px solid var(--line); background:#101f27; margin:14px 0; }
.atlas-viewport img { width:100%; max-width:none; min-height:100%; object-fit:contain; }
.atlas-stage { position:relative; width:100%; min-width:100%; }
.atlas-stage img { display:block; width:100%; min-height:0; height:auto; }
.atlas-pin { position:absolute; transform:translate(-50%,-50%); border:0; border-radius:50%; width:28px; height:28px; padding:0; background:#182730d9; color:#f2ce86; cursor:pointer; box-shadow:0 0 0 1px #f2ce8677; }
.atlas-pin:hover,.atlas-pin:focus { background:#f2ce86; color:#182730; }
.atlas-places,.map-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }
.atlas-places article[hidden] { display:none; }
.map-gallery img { width:100%; aspect-ratio:1.7; object-fit:cover; border-radius:12px; }
.journey-planner form,#aliasesForm { display:grid; gap:10px; }
.review-card { margin-bottom:14px; }
.review-card blockquote { margin:14px 0; border-left:2px solid var(--gold); padding:10px 16px; color:var(--muted); line-height:1.7; }
.quick-adventure { margin:20px 0; padding:24px; background:linear-gradient(120deg,#18332d,#142332); border:1px solid #8bd2ba40; border-radius:18px; }
.quick-adventure form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.quick-adventure .wide { grid-column:1/-1; }
.quick-adventure label { display:grid; gap:7px; min-width:0; }
.quick-adventure select,.quick-adventure textarea { min-width:0; width:100%; max-width:100%; }
.turn-receipts { padding:12px; border-top:1px solid var(--line); font-size:12px; }
.turn-receipts article { padding:10px 0; border-bottom:1px solid var(--line); }
.turn-receipts a { color:var(--mint); }
#timelineProposal pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:11px; }
.play-view-switch { gap:8px; padding:8px 12px; border-bottom:1px solid var(--line); flex-shrink:0; }
.play-view-switch button[aria-pressed=true] { background:rgba(139,210,186,.15); border-color:var(--mint); }
.play-topbar { flex-wrap:wrap; }
.play-topbar-right { min-width:0; flex-wrap:wrap; }
.composer textarea { min-width:0; }
@media (max-width:1100px) {
  .mobile-appbar { height:var(--appbar-height); display:flex; align-items:center; gap:10px; padding:8px 12px; background:#0b1720; border-bottom:1px solid var(--line); position:relative; z-index:120; }
  .mobile-appbar .btn { padding:7px 10px; font-size:12px; }
  .mobile-world-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
  .shell,.shell.nav-collapsed,.shell.native-map-shell { grid-template-columns:minmax(0,1fr) !important; height:calc(100dvh - var(--appbar-height)); }
  .shell > .main { grid-column:1; min-width:0; height:100%; }
  .shell > .nav { display:none; }
  .mobile-nav-open .shell > .nav { display:flex; position:fixed; top:0; bottom:0; left:0; width:270px; z-index:10100; overflow:auto; padding:18px; background:#101e2a; }
  .mobile-nav-open .nav .nav-label,.mobile-nav-open .nav .brand-sub,.mobile-nav-open .nav .world-selector,.mobile-nav-open .nav .nav-section-label,.mobile-nav-open .nav .nav-foot { display:initial; opacity:1; height:auto; }
  .mobile-nav-open .nav .nav-item { justify-content:flex-start; gap:10px; padding:12px; }
  .mobile-nav-open .nav .world-selector { display:block; }
  .mobile-nav-scrim:not([hidden]) { display:block; position:fixed; inset:0; z-index:10090; background:#0009; border:0; width:100%; }
  .native-map-shell .main,.native-map-root { height:calc(100dvh - var(--appbar-height)) !important; min-height:0 !important; max-height:calc(100dvh - var(--appbar-height)) !important; }
  .native-topbar { padding:10px; gap:10px; flex-wrap:wrap; flex-shrink:0; }
  .native-topbar-actions { min-width:0; flex-wrap:wrap; gap:5px; }
  .native-topbar-cluster { padding:4px; gap:4px; }
  .native-topbar-left { min-width:0; }
  .native-map-heading h1 { font-size:18px; }
  .native-editor-shell { flex:1; min-height:0; }
  .native-stage-shell { min-width:0; min-height:0; }
  .native-sidebar { position:absolute; top:0; right:0; bottom:0; width:min(340px,85vw); z-index:50; background:#0c1924; }
  .native-editor-shell { position:relative; grid-template-columns:60px minmax(0,1fr) !important; }
  .native-map-root:not(.sidebar-collapsed) .native-sidebar { display:flex; }
  .play-shell { grid-template-columns:minmax(0,1fr) !important; }
  .play-view-switch { display:flex; }
  .play-side { display:none !important; min-width:0; }
  .play-shell.show-character .play-side { display:flex !important; }
  .play-shell.show-character .play-main { display:none; }
  .play-main { min-width:0; }
  .play-topbar h1 { font-size:15px; }
  #narrationPanel { max-width:100%; flex-wrap:wrap; }
  #narratorVoice { min-width:0 !important; max-width:190px; }
  .msg { max-width:95%; }
  .play-log { padding:12px; }
  .entity-create-modal { min-width:0; max-width:calc(100vw - 24px); }
}
@media (max-width:900px) {
  .world-columns,.atlas-layout { grid-template-columns:minmax(0,1fr); }
  .workspace-paths { grid-template-columns:minmax(0,1fr); }
  .workspace-path p { min-height:0; }
  .world-hero-copy { padding:26px; }
  .atlas-viewport { height:360px; }
  .comp-filter-toggle { display:inline-flex; }
  .comp-shell { grid-template-columns:minmax(0,1fr) !important; height:auto; min-height:65vh; }
  .comp-sidebar { display:none !important; }
  .comp-shell.show-filters .comp-sidebar { display:flex !important; min-width:0; max-height:50vh; border:1px solid var(--line); border-radius:12px; }
  .comp-shell.show-filters { gap:12px; }
  .comp-resizer { display:none; }
  .comp-main { min-width:0; }
  .entry-card { grid-template-columns:18px 36px minmax(0,1fr) 32px !important; gap:8px !important; }
  .entry-card-thumb { width:36px !important; height:36px !important; }
  .page-top { flex-wrap:wrap; gap:12px; }
}
@media (max-width:600px) {
  .quick-adventure form { grid-template-columns:minmax(0,1fr); }
  .main { padding:14px; }
  .native-topbar .native-action-btn { padding:6px 8px; font-size:11px; min-width:0; }
  .native-topbar .native-map-meta { display:none; }
  .native-topbar-cluster { border:0; box-shadow:none; }
  .native-topbar-actions { width:100%; }
  .native-topbar-actions { flex-wrap:nowrap; overflow-x:auto; padding:3px 0; }
  .native-topbar-cluster { flex-shrink:0; flex-wrap:nowrap; }
  .native-map-shell .main { padding:0 !important; overflow:hidden; }
  .native-topbar { padding:8px; }
  .play-topbar { padding:8px 12px; }
  .play-topbar-right { margin-left:0; width:100%; justify-content:space-between; }
  #narrationPanel { padding:4px !important; gap:4px !important; flex:1; }
  #narratorVoice { max-width:125px; }
  .composer { padding:10px; gap:8px; }
  .composer textarea { flex:1; width:100%; font-size:16px; }
  .composer-actions { width:72px; flex-shrink:0; }
  .entry-card-date,.entry-card-meta .tag-pills { display:none; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; scroll-behavior:auto !important; transition:none !important; } }
.timeline-field { padding:12px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.timeline-field p { white-space:pre-wrap; margin:6px 0; }
@media (max-width:1100px) {
  .map-page { height:calc(100dvh - 84px); min-height:0; }
  .map-editor-shell { min-height:0; }
  .map-editor-body,.map-editor-body.panel-collapsed { position:relative; grid-template-columns:minmax(0,1fr); }
  .map-editor-body .map-panel { position:absolute; top:0; bottom:0; right:0; width:min(340px,94%); z-index:1000; }
  .map-toolbar { flex-wrap:nowrap; overflow-x:auto; min-height:48px; flex-shrink:0; }
  .map-toolbar > * { flex-shrink:0; }
  .map-page-top { align-items:center; }
  .map-page-top .btn { flex-shrink:0; }
}
