@font-face{font-family:MapVintage;src:url('/map-fonts/vintage_serif.ttf')}@font-face{font-family:MapDark;src:url('/map-fonts/dark_cinematic.ttf')}@font-face{font-family:MapAtlas;src:url('/map-fonts/atlas_serif.ttf')}@font-face{font-family:MapPapyrus;src:url('/map-fonts/papyrus_handwritten.ttf')}
:root{--bg:#111317;--panel:#191c21;--panel-2:#20242a;--line:#30353d;--line-soft:#272b32;--text:#f1f3f5;--muted:#9da4ae;--accent:#6d8cff;--accent-hover:#809aff;--danger:#e56d69;--map-font:Inter,ui-sans-serif,system-ui,sans-serif;--route:#4ad0ff;--selected:#4777d4}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px}.is-hidden{display:none!important}button,input,select,textarea{font:inherit}button{color:inherit}.conflict-app{height:100dvh;display:grid;grid-template-rows:52px minmax(0,1fr);background:var(--bg)}
.topbar{display:flex;align-items:center;gap:18px;padding:0 16px;border-bottom:1px solid var(--line);background:#15181c;min-width:0;z-index:20}.brand{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;white-space:nowrap}.brand svg{width:25px;height:25px;fill:none;stroke:var(--accent);stroke-width:2}.brand span{font-weight:750;font-size:15px}.brand small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.mode-nav{display:flex;height:30px;padding:2px;border:1px solid var(--line);border-radius:7px;background:#111317}.mode-nav a{display:flex;align-items:center;padding:0 12px;border-radius:5px;color:var(--muted);text-decoration:none;font-weight:600;font-size:12px}.mode-nav a.is-active{background:var(--panel-2);color:var(--text)}.project-title{min-width:170px;max-width:380px;flex:1;height:32px;padding:0 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-weight:650}.project-title:hover,.project-title:focus{border-color:var(--line);background:var(--panel);outline:none}.topbar-actions{display:flex;align-items:center;gap:8px}.save-status{color:var(--muted);font-size:11px;margin-right:3px}.button{height:34px;border-radius:6px;padding:0 13px;border:1px solid var(--line);font-weight:650;cursor:pointer}.button-secondary{background:var(--panel);color:var(--text)}.button-secondary:hover{background:var(--panel-2)}.button-primary{border-color:var(--accent);background:var(--accent);color:white}.button-primary:hover{background:var(--accent-hover)}.button:disabled{opacity:.45;cursor:not-allowed}
.studio-shell{min-height:0;display:grid;grid-template-columns:66px minmax(0,1fr) 336px}.tool-rail{border-right:1px solid var(--line);background:#14171b;display:flex;flex-direction:column;align-items:center;padding:10px 6px;gap:5px;z-index:8}.tool-button{width:54px;height:52px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted)}.tool-button span{font-size:19px;line-height:1}.tool-button small{font-size:10px}.tool-button:hover{background:var(--panel);color:var(--text)}.tool-button.is-active{background:#222936;border-color:#3b4d72;color:#dce5ff}
.map-workspace{min-width:0;min-height:0;display:grid;grid-template-rows:43px minmax(0,1fr) 98px;background:#0c0e11}.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--line);background:#171a1f}.tool-context{display:flex;align-items:baseline;gap:10px;min-width:0}.tool-context strong{font-size:13px}.tool-context span{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-controls{display:flex;gap:6px}.toolbar-button{height:29px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:11px;cursor:pointer}.toolbar-button:hover{background:var(--panel-2)}
.map-stage{position:relative;min-height:0;overflow:hidden;background:#090b0d}.conflict-map{display:block;width:100%;height:100%;touch-action:none;user-select:none;background:#101216}.country-shape{fill:transparent;stroke:rgba(235,240,246,.14);stroke-width:1;vector-effect:non-scaling-stroke;cursor:crosshair;transition:fill .12s,stroke .12s}.country-shape:hover{fill:rgba(109,140,255,.14);stroke:rgba(220,230,255,.7)}.country-shape.is-area{fill:transparent}.area-shape{stroke-width:2.2;vector-effect:non-scaling-stroke;pointer-events:auto;cursor:pointer}.area-shape.is-selected{stroke:#fff;stroke-width:3.2}.zone-shape{vector-effect:non-scaling-stroke;cursor:pointer}.movement-path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer}.movement-hit{fill:none;stroke:transparent;stroke-width:18;vector-effect:non-scaling-stroke;cursor:pointer}.event-marker,.map-label,.zone-label{font-family:var(--map-font);cursor:pointer}.map-label{paint-order:stroke;stroke:rgba(0,0,0,.75);stroke-width:5;stroke-linejoin:round}.object-selected{filter:drop-shadow(0 0 5px rgba(255,255,255,.9))}.draft-line{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.draft-point{fill:#fff;stroke:#111;stroke-width:2;vector-effect:non-scaling-stroke}.map-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0d0f12;z-index:9}.map-loading span{width:26px;height:26px;border:2px solid #39404a;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.map-loading strong{font-size:13px}.map-loading small{color:var(--muted);margin-top:5px}@keyframes spin{to{transform:rotate(360deg)}}.map-tooltip{position:absolute;z-index:13;pointer-events:none;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:rgba(18,20,24,.96);box-shadow:0 8px 24px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:2px}.map-tooltip strong{font-size:12px}.map-tooltip span{font-size:10px;color:var(--muted)}
.map-search{position:absolute;top:12px;left:12px;width:min(310px,calc(100% - 110px));height:36px;border:1px solid var(--line);border-radius:7px;background:rgba(24,27,32,.96);display:flex;align-items:center;padding:0 10px;z-index:8}.map-search svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:1.7;margin-right:8px}.map-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.search-results{position:absolute;left:0;right:0;top:41px;background:#1a1d22;border:1px solid var(--line);border-radius:7px;max-height:270px;overflow:auto;box-shadow:0 12px 30px rgba(0,0,0,.35)}.search-result{display:flex;width:100%;border:0;border-bottom:1px solid var(--line-soft);background:transparent;padding:9px 10px;text-align:left;cursor:pointer}.search-result:hover{background:var(--panel-2)}.search-result strong{font-size:12px}.search-result span{color:var(--muted);font-size:10px;margin-left:auto}.zoom-controls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:7px;overflow:hidden;z-index:8}.zoom-controls button{width:34px;height:32px;border:0;border-bottom:1px solid var(--line);background:rgba(24,27,32,.96);cursor:pointer}.zoom-controls button:last-child{border-bottom:0}.zoom-controls button:hover{background:var(--panel-2)}
.render-status{position:absolute;left:16px;right:16px;bottom:16px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,360px) 42px;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:rgba(22,25,30,.96);z-index:15;box-shadow:0 12px 30px rgba(0,0,0,.28)}.render-status div:first-child{display:flex;flex-direction:column;gap:3px}.render-status strong{font-size:12px}.render-status span{font-size:10px;color:var(--muted)}.progress-track{height:5px;background:#30353d;border-radius:999px;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}.render-status b{font-size:11px;text-align:right}.result-stage,.frame-preview{position:absolute;inset:0;z-index:18;background:#090b0e;display:flex;align-items:center;justify-content:center}.result-stage video{width:100%;height:100%;object-fit:contain;pointer-events:auto}.result-play{position:absolute;display:flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:rgba(10,12,15,.82);color:white;cursor:pointer}.result-play span{font-size:20px}.result-actions{position:absolute;bottom:16px;right:16px;display:flex;gap:8px}.frame-preview img{width:100%;height:100%;object-fit:contain}.frame-preview>button{position:absolute;right:16px;top:16px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#191c21;color:white;font-size:22px;cursor:pointer}
.scene-strip{display:grid;grid-template-columns:95px minmax(0,1fr) 100px;align-items:stretch;border-top:1px solid var(--line);background:#16191e;min-width:0}.scene-strip-header{padding:12px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.scene-strip-header strong{font-size:12px}.scene-strip-header span{color:var(--muted);font-size:10px}.scene-cards{display:flex;align-items:center;gap:8px;padding:10px;overflow-x:auto}.scene-card{min-width:144px;height:66px;border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:9px;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between}.scene-card:hover{background:var(--panel-2)}.scene-card.is-active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.scene-card strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-card span{font-size:10px;color:var(--muted)}.add-scene{margin:10px;border:1px dashed #48505d;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.add-scene:hover{border-color:var(--accent);color:var(--text)}
.inspector{min-width:0;border-left:1px solid var(--line);background:#171a1f;display:grid;grid-template-rows:42px minmax(0,1fr)}.inspector-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.inspector-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-weight:650;font-size:11px}.inspector-tabs button.is-active{color:var(--text);border-bottom-color:var(--accent)}.inspector-panel{display:none;overflow:auto;padding:12px}.inspector-panel.is-active{display:block}.panel-section{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line-soft)}.panel-section>label,.properties-form>label,.type-properties>label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}.panel-section input,.panel-section select,.properties-form input,.properties-form select,.properties-form textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:#121519;color:var(--text);padding:8px 9px;outline:0}.panel-section input:focus,.panel-section select:focus,.properties-form input:focus,.properties-form select:focus,.properties-form textarea:focus{border-color:var(--accent)}.preset-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.preset-row button,.scene-actions button,.section-heading button{border:1px solid var(--line);border-radius:6px;background:var(--panel-2);cursor:pointer}.preset-row button{padding:0 10px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-heading strong{font-size:11px}.section-heading button{font-size:10px;color:var(--muted);padding:4px 7px}.layer-list{display:flex;flex-direction:column;gap:5px}.layer-empty{padding:18px 8px;text-align:center;color:var(--muted);font-size:11px;border:1px dashed var(--line);border-radius:7px}.layer-item{display:grid;grid-template-columns:24px minmax(0,1fr) 24px;align-items:center;gap:7px;padding:7px;border:1px solid var(--line-soft);border-radius:6px;background:#14171b;cursor:pointer}.layer-item:hover{border-color:#424954}.layer-item.is-selected{border-color:var(--accent);background:#1d2432}.layer-icon{width:22px;height:22px;border-radius:5px;background:var(--panel-2);display:grid;place-items:center;color:var(--muted);font-size:10px}.layer-copy{min-width:0}.layer-copy strong,.layer-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-copy strong{font-size:11px}.layer-copy span{font-size:9px;color:var(--muted);margin-top:2px}.layer-remove{width:22px;height:22px;border:0;background:transparent;color:var(--muted);cursor:pointer}.layer-remove:hover{color:var(--danger)}
.empty-properties{padding:35px 12px;text-align:center;display:flex;flex-direction:column;gap:7px;color:var(--muted)}.empty-properties strong{color:var(--text);font-size:12px}.properties-form{display:flex;flex-direction:column}.property-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.property-header span{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted)}.delete-layer{border:0;background:transparent;color:var(--danger);font-size:11px;cursor:pointer}.property-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.property-grid label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:10px;font-weight:650;text-transform:uppercase}.type-properties{border-top:1px solid var(--line-soft);padding-top:12px;margin-top:3px}.timing-grid{border-top:1px solid var(--line-soft);padding-top:12px}.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.theme-grid button{height:42px;border:1px solid var(--line);border-radius:6px;background:#121519;color:var(--muted);cursor:pointer}.theme-grid button:hover{background:var(--panel-2)}.theme-grid button.is-selected{border-color:var(--accent);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}.duration-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:#121519;margin-bottom:10px}.duration-input input{border:0}.duration-input span{padding-right:8px;color:var(--muted);font-size:10px}.scene-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.scene-actions button{height:32px;color:var(--muted)}.scene-actions button:hover{color:var(--text)}
.toast-region{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;gap:8px}.toast{min-width:260px;max-width:380px;padding:11px 13px;border:1px solid var(--line);border-radius:7px;background:#20242a;box-shadow:0 12px 30px rgba(0,0,0,.35);font-size:11px}.toast.error{border-color:#71413f}.toast.success{border-color:#3f674d}
@media(max-width:1050px){.studio-shell{grid-template-columns:58px minmax(0,1fr) 300px}.mode-nav{display:none}.tool-button{width:47px}.project-title{max-width:220px}.inspector{font-size:12px}}@media(max-width:780px){html,body{overflow:auto}.conflict-app{height:auto;min-height:100dvh;grid-template-rows:auto}.topbar{height:auto;min-height:56px;flex-wrap:wrap;padding:9px}.project-title{order:3;width:100%;max-width:none}.save-status{display:none}.studio-shell{display:grid;grid-template-columns:50px minmax(0,1fr);grid-template-rows:65vh auto}.map-workspace{grid-column:2;grid-row:1}.tool-rail{grid-column:1;grid-row:1}.inspector{grid-column:1/3;grid-row:2;border-left:0;border-top:1px solid var(--line);min-height:480px}.scene-strip{grid-template-columns:75px minmax(0,1fr) 80px}.workspace-toolbar{padding:0 7px}.tool-context span{display:none}.topbar-actions{margin-left:auto}.button{padding:0 8px}.topbar-actions .button-secondary{display:none}}
