:root{
  --bg:#151816; --panel:rgba(27,31,28,.94); --panel2:#232824; --border:#454d46; --muted:#aeb8b0;
  --text:#eef2ee; --accent:#d3ba78; --accent2:#8ea17f; --danger:#d07a70; --shadow:0 14px 38px rgba(0,0,0,.36);
  --top:58px; --radius:10px;
}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#7d765f #20251f} html,body,#app{height:100%;margin:0} body{font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}
*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:#20251f;border-radius:8px}*::-webkit-scrollbar-thumb{background:linear-gradient(#77715d,#566052);border:2px solid #20251f;border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:#948768}
button,input,textarea,select{font:inherit}.hidden{display:none!important}
.topbar{height:var(--top);display:flex;align-items:center;gap:18px;padding:0 14px;background:#161a17;border-bottom:1px solid #303630;position:relative;z-index:1000}
.world-switcher{display:flex;align-items:center;gap:7px;color:#9da79f;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.world-switcher .select{min-width:130px;max-width:210px;text-transform:none;letter-spacing:normal;color:#edf1ed}
.brand{display:flex;align-items:center;gap:9px;min-width:155px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #7e7459;border-radius:50%;font-family:Georgia,serif;color:#e7d39d}.brand b{display:block;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.12em;font-size:13px}.brand small{display:block;color:#889188;font-size:10px;letter-spacing:.08em;margin-top:2px}
.search-wrap{position:relative;flex:1;max-width:610px}.search-wrap input{width:100%;background:#222723;border:1px solid #3d453e;color:var(--text);border-radius:8px;padding:9px 12px;outline:none}.search-wrap input:focus{border-color:#807454}.search-results{position:absolute;top:43px;left:0;right:0;background:#202521;border:1px solid #495149;border-radius:8px;box-shadow:var(--shadow);max-height:360px;overflow:auto}.search-item{padding:9px 11px;cursor:pointer;border-bottom:1px solid #343a35}.search-item:hover{background:#2d332e}.search-item small{display:block;color:#9ea79f;margin-top:3px}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:7px}.save-state{font-size:11px;color:#849087}.save-state.dirty{color:#d1b472}.icon-btn,.text-btn,.small-action{background:#252a26;color:#e8ede9;border:1px solid #414941;border-radius:7px;cursor:pointer}.icon-btn{width:34px;height:34px}.text-btn{padding:7px 10px}.small-action{padding:6px 8px;width:100%;font-size:12px;margin-top:5px}.icon-btn:hover,.text-btn:hover,.small-action:hover{background:#303631;border-color:#666f66}.user-badge{font-size:12px;border:1px solid #4c554d;border-radius:14px;padding:6px 9px;cursor:pointer}.select{background:#242a25;color:#e8ece9;border:1px solid #434c44;border-radius:7px;padding:7px}.select.compact{max-width:190px;font-size:12px}
.map-viewport{position:absolute;top:var(--top);left:0;right:0;bottom:0;background:#0f1210;overflow:hidden;touch-action:none;cursor:default}.map-viewport.drawing{cursor:crosshair}.map-viewport.dragging,.map-viewport.dragging *{cursor:default!important}
.world-stage{position:absolute;left:0;top:0;width:1390px;height:2048px;box-shadow:0 0 70px rgba(0,0,0,.6)}.world-stage>img{position:absolute;inset:0;width:100%;height:100%;user-select:none;pointer-events:none;image-rendering:auto}.world-stage #referenceMap{opacity:0;transition:opacity .15s}.map-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}
.left-dock{position:absolute;left:13px;top:13px;width:246px;z-index:500;display:flex;flex-direction:column;gap:10px;pointer-events:none}.dock-panel{background:var(--panel);border:1px solid #414941;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;pointer-events:auto;backdrop-filter:blur(10px)}.dock-title{width:100%;height:38px;padding:0 12px;background:transparent;border:0;color:#dce2dd;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.13em;cursor:pointer}.dock-title:hover{background:#2a302b}.dock-body{padding:8px 9px 10px}.dock-body.collapsed{display:none}.layer-row{display:flex;align-items:center;gap:8px;padding:6px 3px;font-size:12px;cursor:pointer}.layer-row input{accent-color:#a69768}.opacity-row{padding:6px 3px;font-size:10px;color:#adb7ae}.opacity-row input{width:100%;margin-top:6px;accent-color:#a69768}.section-sep{height:1px;background:#3b423c;margin:6px 0}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tool-btn{min-height:42px;border:1px solid #414941;background:#242925;border-radius:7px;color:#dce2dd;cursor:pointer;font-size:11px;padding:5px}.tool-btn span{display:block;font-size:17px;margin-bottom:2px}.tool-btn:hover{background:#313732}.tool-btn.active{border-color:#aa9862;background:#39362c;color:#f1e5c1}.tool-btn.wide{grid-column:1/-1}
.coord-readout,.zoom-readout{position:absolute;bottom:10px;background:rgba(20,23,20,.82);border:1px solid #3a423b;border-radius:6px;padding:5px 8px;color:#b6c0b8;font-size:10px;z-index:300;pointer-events:none}.coord-readout{right:10px}.zoom-readout{right:150px}.view-as-banner{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:410;background:#5a4930;color:#fff0c6;border:1px solid #967b4d;border-radius:20px;padding:7px 12px;font-size:11px;box-shadow:var(--shadow)}
.info-host{position:absolute;inset:0;pointer-events:none;z-index:650}.info-cluster{position:absolute;right:13px;top:13px;display:flex;align-items:flex-start;gap:10px;pointer-events:none;max-width:calc(100vw - 285px)}.info-card{width:350px;max-height:calc(100vh - var(--top) - 26px);display:flex;flex-direction:column;background:var(--panel);border:1px solid #414941;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;backdrop-filter:blur(10px);pointer-events:auto}.info-card.secret{border-color:#685d50;background:rgba(31,28,26,.96)}.info-head{display:flex;align-items:center;gap:6px;min-height:42px;padding:9px 11px;border-bottom:1px solid #3e4640}.info-head strong{flex:1;font-size:15px}.card-icon{min-width:28px;min-height:28px;background:none;border:0;color:#cdd5cf;cursor:pointer;border-radius:5px;padding:4px;font-size:16px}.card-icon:hover{background:#3a413b}.info-scroll{padding:12px;overflow:auto}.richtext{font-size:15px;line-height:1.58;color:#e1e7e2}.richtext h1,.richtext h2,.richtext h3{font-family:Georgia,serif;font-weight:500;color:#f2ead5;margin:12px 0 5px}.richtext h1{font-size:21px}.richtext h2{font-size:18px}.richtext h3{font-size:16px}.richtext p{margin:0 0 9px}.richtext ul{margin:5px 0 9px;padding-left:20px}.locked-block{padding:18px 8px;color:#aeb7af;text-align:center;font-size:14px}.editor-area{width:100%;min-height:230px;background:#191d1a;color:#eef2ee;border:1px solid #495249;border-radius:6px;padding:9px;resize:vertical;line-height:1.45}.card-actions{display:flex;gap:6px;margin-top:8px}.primary,.secondary,.danger{border-radius:6px;padding:7px 10px;cursor:pointer}.primary{background:#786c4c;border:1px solid #a18e5b;color:#fff6db}.secondary{background:#282e29;border:1px solid #4b554c;color:#e3e9e4}.danger{background:#3f2927;border:1px solid #77423e;color:#f1c3be}.notes{border-top:1px solid #3d453e;margin-top:13px;padding-top:11px}.notes-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.notes h4{font-size:11px;letter-spacing:.12em;color:#aab4ac;margin:0}.note-section-action{border:0;background:transparent;color:#aa9d7b;font-size:11px;cursor:pointer;padding:3px 5px;border-radius:4px}.note-section-action:hover{background:#373a31;color:#ead9aa}.note{--note-color:#78836f;background:#222723;border:1px solid #39413a;border-left:3px solid var(--note-color);border-radius:7px;padding:9px 9px 10px;margin-bottom:8px;font-size:14px;line-height:1.45}.note-editable{cursor:context-menu}.note-meta{font-size:10px;color:#9aa69d;margin:-2px -2px 5px 0;display:flex;align-items:center;justify-content:space-between;gap:8px}.note-controls{display:flex;align-items:center;gap:2px}.note-text{white-space:pre-wrap;overflow-wrap:anywhere}.note-history,.note-delete{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;background:transparent;border:0;border-radius:6px;cursor:pointer;padding:0;line-height:1}.note-history{color:#b7b39e;font-size:18px}.note-history:hover{background:#343a34;color:#fff0bd}.note-delete{color:#cf958c;font-size:20px}.note-delete:hover{background:#442f2c;color:#ffd2ca}.note-entry textarea,.secret-note-entry textarea{width:100%;height:72px;background:#191d1a;color:#e8ede9;border:1px solid #465047;border-radius:7px;padding:8px;resize:vertical}.note-entry-row{display:flex;align-items:center;gap:7px;margin-top:6px}.note-entry-row select{flex:1}.note-color{display:grid;place-items:center;flex:0 0 38px;height:34px;padding:3px;background:#242a25;border:1px solid #434c44;border-radius:7px}.note-color input{width:29px;height:25px;padding:0;border:0;background:transparent;cursor:pointer}.secret-note-entry{margin-top:10px;padding-top:11px;border-top:1px solid #4b433d}.secret-note-password{width:100%;margin-top:6px;background:#191b19;color:#ebe8df;border:1px solid #51483f;border-radius:7px;padding:8px}.secret-note .richtext{font-size:14px}.secret-note .richtext p:last-child{margin-bottom:0}.note-history-list,.note-trash-list{display:grid;gap:9px;max-height:min(58vh,570px);overflow:auto;padding-right:4px}.note-revision{--note-color:#78836f;border:1px solid #414942;border-left:3px solid var(--note-color);border-radius:8px;background:#202521;padding:10px}.note-revision-head,.note-revision-foot,.note-trash-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.note-revision-head{margin-bottom:7px}.note-revision-head strong{font-size:13px;color:#e9e1c8}.note-revision-head span,.note-revision-foot span{font-size:10px;color:#9da69f}.note-revision-foot{margin-top:9px}.note-revision-restore,.note-trash-actions button{padding:5px 8px;font-size:11px}.note-trash-item{margin:0}.note-trash-actions{justify-content:flex-end;margin-top:8px}
.modal-backdrop{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.62);display:grid;place-items:center}.modal{width:min(590px,calc(100vw - 30px));max-height:86vh;overflow:auto;background:#202521;border:1px solid #4d564e;border-radius:11px;box-shadow:0 26px 90px rgba(0,0,0,.55);padding:17px}.modal h2{font-family:Georgia,serif;font-weight:500;margin:0 0 14px;color:#efe6cf}.modal h3{margin:14px 0 8px;font-size:13px}.field{display:block;margin:9px 0}.field span{display:block;color:#abb5ad;font-size:11px;margin-bottom:4px}.field input,.field textarea,.field select{width:100%;background:#171b18;border:1px solid #444d45;color:#eef2ee;border-radius:6px;padding:8px}.field textarea{min-height:120px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.user-row,.trash-row,.history-row{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid #343b35}.user-row>div,.trash-row>div,.history-row>div{flex:1}.subtle{font-size:10px;color:#8d998f}.toast-host{position:fixed;z-index:3000;right:14px;bottom:14px;display:flex;flex-direction:column;gap:7px}.toast{background:#252b26;border:1px solid #4c564e;color:#e8ede9;border-radius:7px;padding:9px 12px;box-shadow:var(--shadow);font-size:12px;animation:toastin .2s ease}.toast.error{border-color:#82534e;color:#f0c2bd}@keyframes toastin{from{opacity:0;transform:translateY(8px)}}
.user-row .row-actions{flex:0 0 auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.compact-check{width:max-content;max-width:100%;padding-right:12px}.compact-check input{flex:0 0 auto}.permission-grid{display:grid;gap:7px;margin:10px 0}.permission-grid-heading{font-size:12px;color:#c8d0c9;margin-bottom:2px}.permission-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(165px,.8fr);gap:10px;align-items:center;padding:8px;border:1px solid #394139;border-radius:7px;background:#1b201c}.permission-row select{width:100%;background:#171b18;border:1px solid #444d45;color:#eef2ee;border-radius:6px;padding:7px}.user-archive-list{max-height:55vh;overflow:auto;border:1px solid #394139;border-radius:7px}.world-group{margin:10px 0 14px;border:1px solid #3d453f;border-radius:8px;overflow:hidden}.world-group-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px;background:#252b26}.world-group-heading>div:first-child{flex:1}.world-group-heading h3,.world-group-heading p{margin:0}.world-group-heading p{margin-top:3px}.world-group .user-row{padding-left:14px}.glow-color-field{margin-left:24px}
.map-object{vector-effect:non-scaling-stroke;cursor:default}.obj-line,.obj-brush{fill:none;stroke-linecap:round;stroke-linejoin:round}.obj-polygon{stroke-linecap:round;stroke-linejoin:round}.marker-core{vector-effect:non-scaling-stroke;cursor:default}.map-label{paint-order:stroke;stroke:#172018;stroke-linejoin:round;fill:#f2f0e7;font-family:Georgia,serif;pointer-events:auto;cursor:default}.country-label{transition:fill .18s ease,opacity .18s ease;filter:drop-shadow(0 1px 1px rgba(0,0,0,.16))}.annotation-shape{vector-effect:non-scaling-stroke;cursor:default}.selected{filter:drop-shadow(0 0 3px #f3d67d)}.marker-selection-ring{stroke:none;pointer-events:none;filter:blur(1.1px) drop-shadow(0 0 1.8px rgba(255,226,126,.55))}.vertex{fill:#f6e4ad;stroke:#403719;stroke-width:1.2;vector-effect:non-scaling-stroke;cursor:move}.vertex-add{fill:#7f956c;stroke:#e8f1dc;stroke-width:1;cursor:copy}.draft{stroke:#f0d27a;stroke-width:2;fill:none;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.measure-label{font-size:13px;fill:#fff2c7;paint-order:stroke;stroke:#1d211e;stroke-width:3px}.measure-guide{position:absolute;left:50%;bottom:16px;z-index:520;transform:translateX(-50%);display:grid;grid-template-columns:repeat(2,minmax(125px,1fr));gap:5px 14px;width:min(410px,calc(100vw - 30px));padding:11px 14px;background:rgba(28,32,28,.96);border:1px solid #746a50;border-radius:10px;box-shadow:var(--shadow);pointer-events:none;color:#dce3dd;font-size:12px}.measure-guide strong{grid-column:1/-1;color:#f2dfaa;font-family:Georgia,serif;font-size:15px}.measure-guide span:before{content:'◆';margin-right:6px;color:#9b8a5e;font-size:8px}
.sacred-city-aura{pointer-events:none}.sacred-city-glow,.sacred-city-core{pointer-events:none;transform-box:fill-box;transform-origin:center}.sacred-city-glow{filter:blur(4.5px) drop-shadow(0 0 6px rgba(255,222,92,.42));animation:sacred-city-bloom 4.4s ease-in-out infinite}.sacred-city-core{filter:blur(.9px) drop-shadow(0 0 3px rgba(255,242,161,.45));animation:sacred-city-ring 4.4s ease-in-out infinite}@keyframes sacred-city-bloom{0%,100%{transform:scale(.88);opacity:.48}48%{transform:scale(1.1);opacity:.86}72%{transform:scale(.99);opacity:.66}}@keyframes sacred-city-ring{0%,100%{transform:scale(.94);opacity:.18}48%{transform:scale(1.18);opacity:.48}72%{transform:scale(1.04);opacity:.3}}
.locked-selection-glow{filter:drop-shadow(0 0 1.5px rgba(255,244,184,.95)) drop-shadow(0 0 5px rgba(244,205,91,.78))}
@media(max-width:850px){.brand{min-width:auto}.brand div{display:none}.world-switcher>span{display:none}.world-switcher .select{min-width:95px;max-width:125px}.left-dock{width:210px}.info-cluster{right:10px;top:10px;max-width:calc(100vw - 20px);flex-direction:column-reverse;align-items:flex-end}.info-card{width:min(350px,calc(100vw - 24px));max-height:44vh}.save-state{display:none}.search-wrap{max-width:none}.permission-row{grid-template-columns:1fr}}

/* v0.2 */
.layer-item{border-bottom:1px solid rgba(70,78,71,.45);padding:2px 0 5px}.layer-row-main{display:flex;align-items:center}.layer-row-main .layer-row{flex:1;min-width:0}.layer-row-main .layer-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-gear{width:27px;height:25px;border:0;background:transparent;color:#aeb8b0;border-radius:5px;cursor:pointer;font-size:16px}.layer-gear:hover{background:#343b35;color:#fff}.layer-opacity{padding:0 4px 2px}.layer-opacity input{width:100%;height:12px;accent-color:#a69768;opacity:.7}.layer-opacity input:hover{opacity:1}.layer-order{display:flex;gap:7px;margin-top:8px}.layer-order button{flex:1}.layer-order button:disabled{opacity:.35;cursor:not-allowed}.info-card input,.info-card textarea,.info-card select{touch-action:auto}.info-scroll{overscroll-behavior:contain}.modal button:disabled{opacity:.4;cursor:not-allowed}

/* v0.3 interaction pass */
.left-dock{
  max-height:calc(100% - 26px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#566057 transparent;
  padding-right:3px;
}
.left-dock::-webkit-scrollbar{width:6px}.left-dock::-webkit-scrollbar-track{background:transparent}.left-dock::-webkit-scrollbar-thumb{background:#566057;border-radius:8px}
.tool-color{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;margin-top:2px;background:#242925;border:1px solid #414941;border-radius:7px;color:#b7c0b9;font-size:10px;letter-spacing:.04em}
.tool-color input{width:46px;height:28px;padding:1px;border:1px solid #525b53;border-radius:5px;background:#191d1a;cursor:pointer}
.tool-param{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;background:#242925;border:1px solid #414941;border-radius:7px;color:#b7c0b9;font-size:10px;letter-spacing:.04em}.tool-param input{width:72px;background:#191d1a;color:#eef2ee;border:1px solid #525b53;border-radius:5px;padding:6px 7px;text-align:right}
.tool-hint{grid-column:1/-1;padding:8px 9px;border:1px solid #5d5742;border-radius:7px;background:#2c2a22;color:#d8ceb0;font-size:10px;line-height:1.35}
.inline-text-input{position:absolute;z-index:20;width:260px;min-width:120px;background:rgba(20,24,21,.94);border:2px solid #e2c778;border-radius:5px;padding:3px 6px;color:#f3ead2;font-family:Georgia,serif;outline:none;box-shadow:0 0 0 2px rgba(25,30,26,.72),0 0 15px rgba(238,204,105,.32),0 5px 18px rgba(0,0,0,.42);transform-origin:left center}
.inline-text-input::placeholder{color:#f5dda0;opacity:.82}
.draft-start{fill:#f5dc92;stroke:#3a321e;stroke-width:1.2;vector-effect:non-scaling-stroke}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.settings-grid button{min-height:40px}
.temporary-editor-status{margin-top:5px;color:#dec987;font-size:11px}.temporary-editor-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px}.temporary-editor-controls select{min-width:105px;background:#171b18;border:1px solid #444d45;color:#eef2ee;border-radius:6px;padding:7px}.temporary-editor-controls button{padding:6px 8px;font-size:11px}.user-summary{min-width:0}
.color-chip{display:inline-block;width:17px;height:17px;border-radius:4px;border:1px solid #59615a;vertical-align:-4px;margin:0 3px}
.zoom-readout{right:10px}
.coord-readout{display:none!important}
.left-dock{bottom:13px;max-height:none;}
.dock-panel{flex:0 0 auto;}

/* v0.4 */
.card-delete-btn{background:transparent;border:0;color:#c7867e;cursor:pointer;border-radius:5px;padding:4px 6px;font-size:10px}.card-delete-btn:hover{background:#432e2b;color:#f0b2aa}.secret-toggle-btn{font-size:12px}.draft-polygon{stroke-linejoin:round;stroke-linecap:round}.info-head strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.custom-marker-icon{cursor:default;overflow:visible}


/* v0.8 — cartography, history and landscape objects */
.background-svg,.territory-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.background-image-object{cursor:default}
.background-image-object.locked{cursor:default}
.image-selection-box{fill:none;stroke:#f2d47c;stroke-width:1.5;stroke-dasharray:7 5;vector-effect:non-scaling-stroke;pointer-events:none}
.image-resize-handle{fill:#f5dfa0;stroke:#3d351f;stroke-width:1.2;vector-effect:non-scaling-stroke;cursor:nwse-resize}
.image-resize-handle.alt{cursor:nesw-resize}
.territory-path{stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.territory-fill-path{stroke:none;pointer-events:none}
.territory-fill-path.fill-selectable{pointer-events:fill;cursor:pointer}
.territory-hit{fill:none;stroke:transparent;stroke-width:8;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}
.obj-brush,.annotation-brush{vector-effect:none}
.live-brush{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none!important;vector-effect:none}
.live-territory-fill{stroke:none;filter:saturate(1.45)}
.live-territory-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none!important;vector-effect:non-scaling-stroke}
.draft.measure-draft{stroke:#f0d27a;stroke-dasharray:6 4}
.measure-node{fill:#f5dc92;stroke:#3a321e;stroke-width:1.2;vector-effect:non-scaling-stroke}.measure-total{fill:#ffe7a3;font-weight:700}.measure-segment{fill:#d9dfd9;font-size:11px}.measure-route-hint{grid-column:1/-1;color:#aeb8b0;border-top:1px solid #494a3d;padding-top:7px;margin-top:2px}.measure-route-hint:before{content:'↳'!important;font-size:12px!important}
.field input[type="color"]{
  width:42px!important;height:36px!important;min-width:42px;padding:3px!important;
  border-radius:7px!important;cursor:pointer;background:#171b18;
}
.field input[type="color"]::-webkit-color-swatch-wrapper,.tool-color input[type="color"]::-webkit-color-swatch-wrapper{padding:0}
.field input[type="color"]::-webkit-color-swatch,.tool-color input[type="color"]::-webkit-color-swatch{border:1px solid #69736a;border-radius:4px}
.field input[type="color"]::-moz-color-swatch,.tool-color input[type="color"]::-moz-color-swatch{border:1px solid #69736a;border-radius:4px}
.tool-color input[type="color"]{width:36px;height:30px;padding:3px}
.color-control{display:flex;align-items:center;gap:7px}
.field .color-control{display:grid;grid-template-columns:42px minmax(110px,1fr);width:100%}
.field .hex-color-input,.tool-color .hex-color-input{width:100%!important;height:36px!important;min-width:0;padding:7px 8px!important;background:#171b18;border:1px solid #444d45;border-radius:6px;color:#eef2ee;font:12px ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}
.tool-color .hex-color-input{height:30px!important;width:86px!important;min-width:76px;padding:5px 7px!important}
.hex-color-input.invalid{border-color:#b7625a!important;box-shadow:0 0 0 1px rgba(183,98,90,.35)}
.object-order{display:flex;gap:8px;margin-top:12px}
.object-order button{flex:1}
#undoBtn{min-width:92px}
.history-action{display:flex;gap:8px;align-items:center;padding:8px;border-bottom:1px solid #343b35}
.history-action>div{flex:1;min-width:0}.history-action.undone{opacity:.52}
.drop-hint{position:absolute;inset:0;z-index:900;display:grid;place-items:center;background:rgba(20,26,22,.45);border:2px dashed #d3ba78;color:#fff1c8;font-size:18px;pointer-events:none}
/* v0.8 interaction finishing pass */
.map-svg{pointer-events:none}
.map-svg .map-object,.map-svg .marker-core,.map-svg .map-label,.map-svg .annotation-shape,.map-svg .vertex,.map-svg .vertex-add,.map-svg .background-image-object,.background-svg .background-image-object,.image-resize-handle{pointer-events:auto}
.city-label-wrap{pointer-events:none}.city-label-wrap .city-label{pointer-events:all!important}.country-visual,.country-visual *{pointer-events:none!important}
.country-hit-target{cursor:default}
.pointer-gesture-active,.pointer-gesture-active *{user-select:none!important;-webkit-user-select:none!important}
.modal>.layer-row{width:fit-content;max-width:100%;padding:6px 5px;border-radius:6px}
.modal>.layer-row:hover{background:rgba(255,255,255,.025)}
.png-drop-hint{position:absolute;inset:12px;z-index:920;display:grid;place-items:center;background:rgba(17,23,19,.58);border:2px dashed #d3ba78;border-radius:14px;color:#fff1c8;font-size:18px;font-weight:600;pointer-events:none;box-shadow:inset 0 0 50px rgba(0,0,0,.25)}
.global-history-list{max-height:55vh;overflow:auto;border:1px solid #394139;border-radius:7px}
.history-row.undone{opacity:.48}

.zoom-fade{transition:opacity .10s linear;}

/* v0.10 explicit cartographic stacking */
.world-stage #baseMap{z-index:0}
.territory-svg{z-index:1}
.background-svg{z-index:2}
.world-stage #referenceMap{z-index:3}
#mapSvg{z-index:4}
.background-lock-row{margin-top:8px;border-top:1px solid rgba(70,78,71,.35);padding-top:9px}
.world-guard-banner{position:fixed;left:50%;top:58px;transform:translateX(-50%);z-index:2500;max-width:min(760px,calc(100vw - 32px));padding:9px 14px;border:1px solid #b88b4f;border-radius:9px;background:rgba(73,47,28,.97);color:#ffe8bd;box-shadow:0 8px 30px rgba(0,0,0,.45);font-size:13px;line-height:1.4;text-align:center}
