:root{
  --ink:#142331;--navy:#0b1722;--navy-2:#122536;--paper:#f5f7f8;--surface:#fff;
  --line:#cbd4da;--muted:#6e7e89;--gold:#e5a72f;--mint:#45c9a5;--red:#ba4d49;
  --shadow:0 22px 60px rgba(14,31,44,.16);--radius:2px
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif}
body{overflow:hidden}
button,input,select{font:inherit}
button,summary,select{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(69,201,165,.45);outline-offset:2px}
svg{display:block}
button svg,.search-field svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.skip-link{position:fixed;z-index:1000;left:16px;top:-80px;padding:12px 16px;background:#fff;color:var(--navy)}
.skip-link:focus{top:12px}
.app-header{height:84px;display:flex;align-items:center;gap:34px;padding:0 28px;background:var(--navy);color:#fff;border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--gold) 0 18%,#467a8f 18% 68%,var(--mint) 68%) 1;position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:13px;color:#fff;text-decoration:none;min-width:255px}
.brand-shield{width:42px;height:50px;display:grid;place-items:center;background:var(--gold);color:var(--navy);font-family:Georgia,serif;font-size:21px;clip-path:polygon(50% 0,100% 17%,88% 82%,50% 100%,12% 82%,0 17%)}
.brand strong{display:block;font-family:Georgia,serif;font-size:16px;letter-spacing:.04em}
.brand small{display:block;margin-top:4px;color:#8fa0ad;font-size:9px;font-weight:700;letter-spacing:.19em}
.mode-tabs{display:flex;align-self:stretch}
.mode-tab{position:relative;border:0;background:transparent;color:#96a7b3;padding:0 19px;font-size:11px;font-weight:800;letter-spacing:.15em}
.mode-tab:hover{color:#fff}
.mode-tab.active{color:#fff}
.mode-tab.active::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:3px;background:var(--gold)}
.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.save-state{color:#8fa0ad;font-size:10px;font-weight:800;letter-spacing:.1em;white-space:nowrap}
.save-state.dirty{color:#f0c367}.save-state.saved{color:var(--mint)}
.button,.icon-button{min-height:42px;border:1px solid transparent;background:transparent;color:inherit;font-size:10px;font-weight:800;letter-spacing:.1em;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px}
.button:hover,.icon-button:hover{filter:brightness(.96)}
.button.primary{background:var(--navy);color:#fff}.button.accent{background:var(--gold);color:var(--navy)}
.button.secondary{border-color:#aebbc4;color:var(--ink);background:#fff}.button.ghost{border-color:#c5d0d6;color:var(--ink)}
.button.full{width:100%;margin-top:14px}
.icon-button{width:42px;padding:0;border:0}.icon-button.bordered{border:1px solid #bac6cd;color:var(--ink);background:#fff}
.map-menu{position:relative}.map-menu summary{list-style:none;color:#aebbc4}.map-menu summary::-webkit-details-marker{display:none}
.menu-popover{position:absolute;right:0;top:52px;width:300px;padding:18px;background:#fff;color:var(--ink);box-shadow:var(--shadow);border:1px solid var(--line);display:grid;gap:14px}
.field{display:grid;gap:7px}.field>span,.select-field>span,.compact-select>span{font-size:9px;font-weight:800;letter-spacing:.13em;color:var(--muted)}
.field input,.field select,.select-field select,.compact-select select,.search-field input,.share-row input{min-height:42px;border:1px solid #bfcbd2;background:#fff;color:var(--ink);padding:0 12px;border-radius:0}
.text-action{border:0;background:transparent;padding:6px 0;color:#315b70;font-size:11px;font-weight:800;text-align:left}.text-action.danger{color:var(--red)}
.app-main{height:calc(100vh - 84px)}
.tab-view{height:100%}.tab-view[hidden]{display:none}.tab-view.active{display:block}
#world-view{display:grid;grid-template-rows:auto minmax(0,1fr) 55px}
.world-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--line)}
.toolbar-primary,.toolbar-secondary{display:flex;align-items:center;gap:10px}
.select-field{display:grid;gap:4px}.select-field select{min-width:230px;height:42px;font-weight:700}
.compact-select{display:flex;align-items:center;gap:9px}.compact-select select{height:42px;min-width:108px}
.paint-toggle{min-height:42px;display:flex;align-items:center;border:1px solid #bfcbd2;background:#fff;padding:0 13px;color:#52636f;font-size:10px;font-weight:800;letter-spacing:.08em;cursor:pointer}
.paint-toggle input{position:absolute;opacity:0}.paint-toggle span{display:flex;align-items:center;gap:8px}.paint-toggle input:checked+span{color:var(--navy)}
.paint-toggle:has(input:checked){background:#e7f8f3;border-color:var(--mint)}
.paint-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.map-shell{position:relative;min-height:0;background:#dce3e7;overflow:hidden}
.map-scroll{position:absolute;inset:0;overflow:auto;padding:22px 28px 70px;display:grid;place-items:center;background-color:#dce3e7;background-image:linear-gradient(rgba(11,23,34,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(11,23,34,.05) 1px,transparent 1px);background-size:32px 32px}
#world-map{width:min(100%,1180px);min-width:760px;height:auto;background:#58735c;box-shadow:0 12px 42px rgba(13,30,42,.22);border:8px solid var(--navy)}
#territory-texture rect{fill:rgba(7,38,32,.26)}
.region{cursor:pointer;transition:opacity .18s ease,filter .18s ease}
.region-base{fill:var(--region-fill,#374454);stroke:#777a39;stroke-width:6;vector-effect:non-scaling-stroke;transition:fill .18s ease,stroke .18s ease;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--region-fill) 75%,white))}
.region-texture{stroke:none;pointer-events:none;opacity:.72}
.region:hover .region-base,.region:focus .region-base{stroke:#fff2a4;stroke-width:6}
.region.selected .region-base{stroke:var(--mint);stroke-width:7;filter:drop-shadow(0 0 8px rgba(69,201,165,.7))}
.region.dimmed{opacity:.13}.region .level-label{font-family:"Segoe UI",Arial,sans-serif;font-size:17px;font-weight:900;fill:#fff;text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:rgba(5,13,20,.75);stroke-width:4px}.region .owner-label{font-size:11px;font-weight:900;fill:#fff;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:rgba(5,13,20,.8);stroke-width:3px;letter-spacing:.08em}
.map-watermark{position:absolute;left:48px;bottom:28px;color:#647580;display:grid;gap:2px;pointer-events:none}.map-watermark strong{font-size:10px;letter-spacing:.16em}.map-watermark span{font-size:10px}
.region-drawer{position:absolute;right:18px;top:18px;bottom:18px;width:340px;padding:28px;background:#fff;box-shadow:var(--shadow);border-top:4px solid var(--gold);overflow:auto;z-index:5}
.drawer-close,.dialog-close{position:absolute;right:13px;top:13px;width:42px;height:42px;border:0;background:transparent;color:#657782;display:grid;place-items:center}.drawer-close svg,.dialog-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.region-index,.eyebrow{font-size:9px;font-weight:900;letter-spacing:.17em;color:#70818c}
.region-title-row{display:flex;gap:7px;margin:22px 0 12px}.level-chip,.source-chip{padding:5px 8px;background:var(--navy);color:#fff;font-size:9px;font-weight:900;letter-spacing:.1em}.source-chip{background:#edf1f3;color:#596b76}
.region-drawer h1{font-family:Georgia,serif;font-size:27px;line-height:1.05;margin:0 0 10px}
.region-caveat{min-height:32px;margin:0 0 18px;color:#798892;font-size:11px;line-height:1.45}
.bonus-panel{padding:16px;border-left:3px solid var(--gold);background:#f4f6f7;display:grid;gap:6px}.bonus-panel span,.bonus-panel small{font-size:9px;font-weight:800;letter-spacing:.12em;color:#71828d}.bonus-panel strong{font-size:17px}.bonus-panel small{letter-spacing:0;line-height:1.4}
.region-facts{display:grid;grid-template-columns:1fr 1fr;margin:18px 0;border:1px solid var(--line)}.region-facts div{padding:13px}.region-facts div+div{border-left:1px solid var(--line)}.region-facts dt{font-size:8px;font-weight:900;letter-spacing:.12em;color:#74858f}.region-facts dd{margin:5px 0 0;font-size:15px;font-weight:800}.owner-field{margin-top:18px}
.world-status{display:flex;align-items:stretch;padding:0 24px;background:#fff;border-top:1px solid var(--line)}.world-status>div{min-width:150px;padding:10px 22px;border-right:1px solid var(--line);display:grid;align-content:center}.world-status span{font-size:8px;font-weight:900;letter-spacing:.13em;color:#72838e}.world-status strong{font-size:16px}.world-status .legend{margin-left:auto;min-width:0;display:flex;align-items:center;gap:12px;border-right:0}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:13px;height:13px;border:1px solid rgba(0,0,0,.15)}.l7{background:#d89c31}.l6{background:#875273}.l5{background:#596e9e}.l4{background:#4c8475}.l3{background:#638f9f}.l2{background:#667783}.l1{background:#374454}
.castle-view iframe{border:0;width:100%;height:100%;background:var(--paper)}
.dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 40px);padding:26px;border:0;border-top:4px solid var(--gold);color:var(--ink);box-shadow:var(--shadow);overflow:auto}.dialog::backdrop{background:rgba(5,15,23,.62)}.dialog.wide{width:min(760px,calc(100vw - 32px))}.directory-dialog{width:min(1050px,calc(100vw - 32px));padding:0}.directory-dialog>*{margin-left:26px;margin-right:26px}
.dialog-head{position:relative;padding-right:44px;margin-bottom:16px}.dialog-head h2{font-family:Georgia,serif;font-size:29px;margin:5px 0 0}.dialog-head .dialog-close{right:-10px;top:-10px}.dialog-intro{font-size:12px;color:#6e7e89;line-height:1.5}
.dialog-head.sticky{position:sticky;top:0;z-index:2;margin:0 -0px 0;padding:24px 44px 15px 0;background:#fff;border-bottom:1px solid var(--line)}
.field-row{display:grid;grid-template-columns:1fr 100px;gap:12px;margin-top:14px}.color-field input{width:100%;padding:5px}.dialog-actions{display:flex;align-items:center;gap:10px;margin-top:22px}.dialog-actions span{flex:1}
.alliance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.alliance-card{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);background:#fff;text-align:left;color:var(--ink);min-height:66px}.alliance-card:hover,.alliance-card.active{border-color:var(--alliance-color);background:#f7f9fa}.alliance-swatch{width:10px;height:40px;background:var(--alliance-color)}.alliance-card strong{display:block;font-size:13px}.alliance-card small{display:block;margin-top:4px;color:#75858f;font-size:10px}.alliance-card .edit{width:35px;height:35px;border:0;background:#edf1f3;font-size:11px}.alliance-main{border:0;background:transparent;color:inherit;text-align:left;padding:0;min-width:0}
.directory-tools{display:flex;gap:10px;padding:16px 0}.search-field{flex:1;position:relative}.search-field svg{position:absolute;left:13px;top:12px;color:#73848f}.search-field input{width:100%;padding-left:42px}
.source-warning{margin-top:0;padding:11px 13px;background:#fff7df;border-left:3px solid var(--gold);font-size:11px;line-height:1.5}
.directory-table-wrap{margin-top:15px;margin-bottom:24px;border:1px solid var(--line);overflow:auto;max-height:55vh}.directory-table{width:100%}table{width:100%;border-collapse:collapse;font-size:11px}th{position:sticky;top:0;background:var(--navy);color:#fff;text-align:left;padding:11px;font-size:9px;letter-spacing:.1em}td{padding:10px 11px;border-bottom:1px solid #e2e7ea}tr:last-child td{border-bottom:0}.row-link{border:0;background:transparent;padding:0;color:#244e63;font-weight:800;text-align:left}.source-badge{font-size:8px;font-weight:900;letter-spacing:.08em;padding:4px 6px;background:#edf1f3}.source-badge.missing{background:#fff0e8;color:#a65035}
.share-row{display:flex;gap:8px}.share-row input{flex:1;min-width:0}
.toast-region{position:fixed;right:18px;bottom:18px;z-index:100;display:grid;gap:8px}.toast{padding:12px 16px;background:var(--navy);color:#fff;box-shadow:var(--shadow);font-size:12px}.toast.error{background:#8e3d3a}
@media (max-width:980px){
  .app-header{height:72px;padding:0 14px;gap:10px}.app-main{height:calc(100vh - 72px)}.brand{min-width:auto}.brand strong{font-size:13px}.brand small{display:none}.brand-shield{width:36px;height:42px}.mode-tab{padding:0 10px;font-size:9px}.save-state,.header-actions .map-menu{display:none}
  .world-toolbar{padding:10px 12px;overflow-x:auto}.toolbar-secondary .compact-select{display:none}.map-scroll{place-items:start center;padding:14px 14px 70px}.world-status>div{min-width:110px;padding:8px 12px}.world-status .legend{display:none}
}
@media (max-width:680px){
  body{overflow:hidden}.app-header{flex-wrap:wrap;height:112px;align-content:center}.app-main{height:calc(100vh - 112px)}.brand{width:calc(100% - 120px)}.brand strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-tabs{position:absolute;left:0;right:0;bottom:0;height:40px;justify-content:center}.header-actions{position:absolute;right:12px;top:18px}.header-actions .button{padding:0 10px;font-size:0}.header-actions .button::after{content:"ССЫЛКА";font-size:9px}
  #world-view{grid-template-rows:auto minmax(0,1fr) 48px}.world-toolbar{gap:8px}.toolbar-primary,.toolbar-secondary{display:contents}.select-field select{min-width:180px}.world-toolbar #manage-alliances{font-size:0;width:42px;padding:0}.world-toolbar #manage-alliances svg{margin:0}.paint-toggle{display:none}.toolbar-secondary #directory-button{font-size:0;width:42px;padding:0}.toolbar-secondary #directory-button svg{margin:0}
  .region-drawer{left:8px;right:8px;top:auto;bottom:8px;width:auto;height:min(66vh,500px)}.world-status>div:nth-child(n+3){display:none}.world-status>div{flex:1}.alliance-grid{grid-template-columns:1fr}.dialog{padding:20px}.directory-dialog{padding:0}.directory-dialog>*{margin-left:14px;margin-right:14px}.directory-table-wrap{max-height:61vh}.directory-table-wrap th:nth-child(5),.directory-table-wrap td:nth-child(5){display:none}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

