/* One consistent, compact palette across both editors. */
.palette-loading{display:grid;gap:7px;padding:10px 12px;margin-bottom:10px;border:1px solid #dce8f5;border-radius:9px;background:#f1f6fd;font:12px system-ui;color:#3a638a}
.palette-loading[hidden]{display:none!important}
.palette-loading progress{width:100%;height:7px;accent-color:#1769dc}
#palette img[data-lazy-sign]:not([data-icon-ready]){background:linear-gradient(110deg,#f1f4f8,#e2eaf2,#f1f4f8);border-radius:8px}
#palette img[data-lazy-sign]:not([data-icon-ready]){opacity:0}
#palette button:has(img[data-lazy-sign]:not([data-icon-ready])){position:relative;background:#f0f4f9!important}
#palette button:has(img[data-lazy-sign]:not([data-icon-ready]))::after{content:'…';position:absolute;inset:0;display:grid;place-items:center;color:#7f9ab2;font-size:26px}
.signal-program-panel{width:min(760px,calc(100vw - 24px))!important}
.signal-phase-preview{display:flex;align-items:center;gap:8px;padding:12px 0}
.signal-conflicts{background:#f6f8fc;border:1px solid #e0e7ef;border-radius:12px;padding:14px;margin-top:12px}
.signal-conflicts h3{font-size:14px!important;margin-bottom:10px}
.signal-conflicts select{max-width:42%;margin-right:5px}
.signal-conflicts p{font-size:12px;white-space:pre-line}
.signal-conflicts p button{padding:4px 8px!important;margin-left:10px;font-size:11px}
.signal-conflicts [data-invalid=true]{color:#b23830;background:#fff0ee;border-radius:8px;padding:10px}
.signal-conflicts [data-invalid=false]{color:#26734d}
header.compact-header .construction-tabs button{flex:0 0 auto!important;min-width:64px!important;max-width:none!important;width:auto!important;padding-inline:10px!important}
#objectPopup:not(.context-popup) .dialog-top,#objectPopup:not(.context-popup) .construction-note{display:none!important}
.palette-search-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}
#objectPopup:not(.context-popup) .palette-search-row .palette-search{margin:0;flex:1;min-width:0}
.palette-search-row #closePopup{flex:0 0 32px;height:32px;min-height:0;padding:0!important;background:#f1f5f9;border:0!important;color:#647d90}
.context-popup .palette-search-row{position:absolute;right:12px;top:12px;margin:0}
.day-night-icons{gap:4px!important;flex-wrap:wrap;align-items:center}
.day-night-icons button{width:32px!important;height:34px!important;font-size:21px!important}
.zoom-tools .day-night-icons{padding-top:5px!important;gap:4px!important}
.zoom-tools .day-night-icons button{width:28px!important;height:28px!important;font-size:19px!important;padding:2px!important}
.weather-controls{display:grid;gap:4px;width:100%}
.weather-level-row{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.zoom-tools .weather-level-row button{display:flex;align-items:center;justify-content:center;gap:5px;padding:3px 7px!important;height:29px;min-width:0;font-size:17px!important;border-radius:8px!important}
.zoom-tools .weather-level-row button span{min-width:0;font-size:18px;line-height:1}
.zoom-tools .weather-level-row button small{font:600 11px system-ui;color:inherit}
.day-night-icons .weather-divider{height:24px;width:1px!important;min-width:1px!important;flex:0 0 1px;background:#dce5ee;margin:0 3px}
dialog.scenario-library[data-library-mode=open]{width:min(800px,94vw)!important;padding:24px!important;background:#f7f9fc;max-height:88dvh}
.scenario-library[data-library-mode=open]>h2{font-size:23px!important;margin-bottom:16px!important;padding:0!important;border:0!important}
.scenario-library[data-library-mode=open]>p:not(#libraryStatus),.scenario-library[data-library-mode=open]>hr,.scenario-library[data-library-mode=open] #currentScenario{display:none!important}
.scenario-library[data-library-mode=open]>section:has(>#scenarioSearch){display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.scenario-library[data-library-mode=open]>section>h3{display:none}
.scenario-library #scenarioSearch{width:100%;grid-column:1/-1;height:42px;font-size:14px;box-sizing:border-box}
.scenario-library #filterGrade,.scenario-library #filterAudience{width:100%;height:38px;font-size:13px}
.scenario-library #libraryStatus{padding:0;background:none;margin:12px 0;color:#74899a;font:12px system-ui}
.scenario-library #onlineScenarios{display:grid;gap:10px}
.scenario-library .scenario-library-card{display:grid;grid-template-columns:1fr auto;align-items:start;gap:8px 16px;padding:16px!important;border:1px solid #dfe7ef!important;border-radius:13px;background:#fff}
.scenario-library-card strong{font:700 15px/1.4 system-ui;color:#23435b}
.scenario-library-card p{grid-column:1;font:12px/1.6 system-ui;margin:0;white-space:pre-line;color:#6b8193}
.scenario-card-meta{display:block;font-size:11px;color:#537ca3;margin-bottom:6px}
.scenario-card-description{display:block;color:#63798b;line-height:1.55}
.scenario-library-card button[data-library-action=load]{grid-column:2;grid-row:1/3;align-self:center;padding:9px 14px!important;background:#eaf2ff!important;color:#1765c8!important;border:0!important;font-weight:650}
@media(max-width:520px){.scenario-library .scenario-library-card{grid-template-columns:1fr}.scenario-library-card button[data-library-action=load]{grid-column:1;grid-row:auto;justify-self:start}}
header.compact-header{display:grid!important;grid-template-columns:minmax(180px,1fr) auto;gap:8px 20px!important;height:auto!important;padding:12px 20px 10px!important;background:#fff!important;border-bottom:1px solid #dbe5ee;box-shadow:0 3px 16px #183c5810}
header.compact-header .header-brand{max-width:none!important;min-width:0}
header.compact-header .header-brand h1{font:750 18px/1.2 system-ui;margin:0;white-space:nowrap}
header.compact-header .header-brand small{font:12px/1.4 system-ui;color:#7890a1}
header.compact-header .header-actions{margin:0;gap:6px;grid-column:2;grid-row:1;justify-self:end}
header.compact-header .construction-tabs{grid-column:1/-1;display:flex!important;flex-wrap:wrap!important;overflow:visible!important;gap:5px!important;padding:0!important;width:100%;max-width:none!important;flex:none!important}
header.compact-header .construction-tabs button{height:49px!important;min-width:65px!important;flex:1 0 65px;max-width:110px;padding:5px 9px!important;border:1px solid transparent!important;border-radius:10px!important;background:#f3f6f9!important;gap:2px;box-shadow:none!important;color:#4a6578!important}
header.compact-header .construction-tabs button span{font-size:21px!important;line-height:23px}
header.compact-header .construction-tabs button small{font:600 11px/1.2 system-ui!important}
header.compact-header .construction-tabs button:hover{background:#e9f1fa!important;color:#1769dc!important}
header.compact-header .construction-tabs button[aria-pressed=true]{background:#e7f0ff!important;color:#145ec5!important;border-color:#b5cef3!important;box-shadow:inset 0 -2px #1769dc!important}
header.compact-header .header-actions button{height:36px!important;min-width:36px;background:#f4f7fa;border-color:#e4ebf1!important}
#objectPopup:not(.context-popup){padding:20px!important;border-radius:18px!important;width:min(650px,calc(100vw - 32px))!important;box-shadow:0 18px 55px #19384f30!important}
#objectPopup:not(.context-popup) .dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px!important}
#objectPopup:not(.context-popup) .dialog-top h2{font:750 20px/1.25 system-ui!important;margin:0!important;padding:0!important;border:0!important}
#objectPopup .dialog-top button{width:32px;height:32px;min-height:0;padding:0!important;background:#f4f7fa;border:0!important;color:#6d8395}
#objectPopup:not(.context-popup) .construction-note{font:12px/1.5 system-ui;margin-bottom:12px!important;color:#6b8192}
#objectPopup:not(.context-popup) .palette-search{height:39px;margin-bottom:12px;padding:9px 12px;background:#f7f9fc;border:1px solid #e0e7ee}
#objectPopup:not(.context-popup) nav{display:flex!important;flex-wrap:wrap;gap:4px!important;padding:4px!important;margin:0 0 12px!important;border-radius:10px;background:#f0f4f8}
#objectPopup:not(.context-popup) nav[hidden]{display:none!important}
#objectPopup:not(.context-popup) nav button{flex:1 0 auto;padding:7px 10px!important;min-height:30px;border:0!important;border-radius:7px!important;font:600 12px/1.2 system-ui;background:transparent;color:#5c7285;box-shadow:none!important}
#objectPopup:not(.context-popup) nav button[aria-pressed=true]{background:#fff!important;color:#1769dc!important;box-shadow:0 1px 5px #24476018!important}
#objectPopup:not(.context-popup) .city-equipment{grid-template-columns:repeat(auto-fill,minmax(108px,1fr))!important;gap:8px!important}
#objectPopup:not(.context-popup) .city-equipment>button{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:8px 7px!important;gap:5px;background:#fafcfe;border:1px solid #e0e8f0!important;min-height:114px}
#objectPopup:not(.context-popup) .city-equipment img{width:100%!important;height:68px!important;object-fit:contain}
#objectPopup:not(.context-popup) .city-equipment small{padding:0!important;font:11px/1.35 system-ui!important;color:#466174}
#objectPopup:not(.context-popup) .city-equipment>button:hover,#objectPopup:not(.context-popup) .actor-palette button:hover,#objectPopup:not(.context-popup) .joytoy-road-gallery>button:hover{border-color:#82b3ec!important;background:#edf5ff!important;box-shadow:0 3px 10px #1769dc12;transform:translateY(-1px)}
#objectPopup:not(.context-popup) .actor-palette,#objectPopup:not(.context-popup) .joytoy-road-gallery{gap:8px!important}
#objectPopup:not(.context-popup) .joytoy-road-gallery{grid-template-columns:repeat(auto-fill,minmax(125px,1fr))!important}
#objectPopup:not(.context-popup) .joytoy-road-gallery>button img{width:100%!important;height:96px!important;object-fit:contain}
#objectPopup:not(.context-popup) .joytoy-road-gallery>button{min-height:130px}
#objectPopup:not(.context-popup) .actor-palette button,#objectPopup:not(.context-popup) .joytoy-road-gallery>button{padding:8px!important;border-radius:11px!important;background:#fafcfe;border-color:#e0e8f0!important;font:12px/1.3 system-ui}
#objectPopup:not(.context-popup) .actor-palette button img{height:75px!important;object-fit:contain}
#objectPopup:not(.context-popup) .actor-palette>div{grid-template-columns:repeat(auto-fill,minmax(125px,1fr))!important;gap:8px!important}
#objectPopup:not(.context-popup) .actor-palette h3{display:none}
#objectPopup:not(.context-popup) .actor-palette>p{font-size:11px;color:#7890a1;margin:10px 0 0}
#objectPopup:not(.context-popup) .palette-row{border:1px solid #e0e8f0;border-radius:11px;background:#fafcfe;padding:6px!important}
#objectPopup:not(.context-popup) .palette-row button{border:0!important;background:transparent;padding:4px!important}
#objectPopup:not(.context-popup) .toolbar-row{display:flex;gap:4px;flex-wrap:wrap;padding:4px;background:#f0f4f8;border-radius:10px}
#objectPopup:not(.context-popup) .toolbar-row button{border:0!important;padding:7px 10px!important;font:600 12px system-ui;box-shadow:none!important}
@media(max-width:600px){header.compact-header{padding:9px 10px!important;gap:8px!important}header.compact-header .header-brand h1{font-size:14px;white-space:normal}header.compact-header .header-brand small{display:none}header.compact-header .construction-tabs button{min-width:55px!important;flex-basis:55px;height:46px!important;padding:4px!important}#objectPopup:not(.context-popup){padding:16px!important}#objectPopup:not(.context-popup) .city-equipment{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* Wider construction palettes on large screens; compact context menus stay compact. */
@media(min-width:1280px){
 #objectPopup:not(.context-popup){width:min(980px,calc(100vw - 32px))!important}
 #objectPopup:not(.context-popup) .joytoy-road-gallery,
 #objectPopup:not(.context-popup) .actor-palette>div,
 #objectPopup:not(.context-popup) .city-equipment,
 #objectPopup:not(.context-popup) #palette{grid-template-columns:repeat(6,minmax(0,1fr))!important}
}
