/* GIS Albania (gisalbania.com) — self-contained stylesheet.
   Layout: ribbon / [contents | map | export] / status bar. */

:root{
  --bg:#0a1424; --panel:#0e1c30; --panel2:#122741; --line:rgba(255,255,255,.10);
  --text:#D7E3EE; --muted:#93ABC2; --head:#FFFFFF; --accent:#17C3B2; --accent-d:#0e8f83;
  --danger:#EF4444; --radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;overflow:hidden;
  font-family:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',sans-serif;
  background:var(--bg);color:var(--text);font-size:14px}
button,select,input{font:inherit}
/* Global select/option fallback: any <select> that doesn't have its own
   class-specific rule below still gets a readable dark-mode popup instead
   of the browser's light-mode default (the option list ignores color:
   inherited text on a default-white native popup = invisible text). */
select{color-scheme:dark}
select option{background:var(--panel2);color:var(--head)}
:root[data-theme="light"] select{color-scheme:light}
:root[data-theme="light"] select option{background:#fff;color:var(--head)}

/* ---------- shell ---------- */
.ag-shell{display:flex;flex-direction:column;height:100vh;width:100vw}
.ag-flex{flex:1}

/* ---------- ribbon ---------- */
.ag-ribbon{flex:none;display:flex;align-items:center;gap:4px;height:64px;
  background:linear-gradient(#13243d,#0d1b2f);border-bottom:1px solid var(--line);padding:6px 12px}
.ag-brand{display:flex;align-items:center;gap:8px;padding-right:14px}
.ag-logowrap{position:relative;display:inline-flex;line-height:0}
.ag-logo-img{height:26px;width:auto;display:block;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.75)) drop-shadow(0 0 3px rgba(255,255,255,.45)) drop-shadow(0 0 7px rgba(255,255,255,.22))}
.ag-beta{position:absolute;right:-3px;bottom:-7px;color:var(--muted);font-size:.6rem;font-style:normal;
  line-height:1;white-space:nowrap;pointer-events:none}
.ag-sep{width:1px;align-self:stretch;background:var(--line);margin:8px 3px}
.ag-group{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 2px}
.ag-group .ag-tools{display:flex;align-items:center;gap:2px}
.ag-group > label{color:var(--muted);font-size:.56rem;text-transform:uppercase;letter-spacing:.09em;pointer-events:none;line-height:1}
.ag-tool{width:34px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid transparent;border-radius:7px;color:var(--text);
  cursor:pointer;font-size:.95rem;margin:0 1px}
.ag-tool svg{width:17px;height:17px}
.ag-tool:hover{background:rgba(255,255,255,.07);border-color:var(--line)}
.ag-tool.active{background:rgba(23,195,178,.16);border-color:var(--accent);color:var(--accent)}
.ag-tool.danger:hover{border-color:var(--danger);color:var(--danger)}
.ag-tool.wide{width:auto;padding:0 12px;font-size:.8rem;font-weight:700}
.ag-panelbtn{align-self:center;background:transparent;border:1px solid var(--line);color:var(--muted);
  border-radius:7px;width:30px;height:30px;cursor:pointer;margin-left:4px}
.ag-panelbtn:hover{color:var(--accent);border-color:var(--accent)}
#agLangMenu{min-width:150px}
#agLangMenu button.active{color:var(--accent);background:rgba(23,195,178,.12)}
#agLangMenu button{display:flex;align-items:center;gap:8px}
#agLangMenu img{width:20px;height:14px;border-radius:2px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.15)}
.ag-flagbtn{padding:0;overflow:hidden}
.ag-flagbtn img{width:20px;height:14px;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.15)}
.btn-mini{background:transparent;border:1.5px solid rgba(255,255,255,.3);color:var(--head);
  font-weight:700;font-size:.72rem;padding:6px 10px;border-radius:8px;cursor:pointer;flex:none}
.btn-mini:hover{border-color:var(--accent);color:var(--accent)}
.btn-mini.accent{background:var(--accent);border-color:var(--accent);color:#04222c}
.btn-mini.accent:hover{background:var(--accent-d);color:#fff}

/* ---------- body ---------- */
.ag-body{flex:1;display:grid;grid-template-columns:290px 1fr 300px;min-height:0}
.ag-body.hide-l{grid-template-columns:0 1fr 300px}
.ag-body.hide-r{grid-template-columns:290px 1fr 0}
.ag-body.hide-l.hide-r{grid-template-columns:0 1fr 0}
.ag-body.hide-l .ag-left,.ag-body.hide-r .ag-right{display:none}
.ag-left,.ag-right{background:var(--panel);border-right:1px solid var(--line);
  overflow-y:auto;overflow-x:hidden;padding:12px 12px 20px;min-width:0}
.ag-right{border-right:none;border-left:1px solid var(--line)}
.ag-left h2,.ag-right h2{margin:0 0 8px;color:var(--head);font-size:.78rem;
  text-transform:uppercase;letter-spacing:.09em;border-bottom:1px solid var(--line);padding-bottom:8px}
.ag-map{position:relative;min-width:0;min-height:0}
#fieldMap{position:absolute;inset:0}
.ag-float{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:5;max-width:70%}
.ag-float-b{position:absolute;bottom:14px;left:14px;z-index:5}

/* ---------- status bar ---------- */
.ag-status{flex:none;display:flex;align-items:center;gap:10px;height:40px;padding:0 14px;
  background:var(--panel2);border-top:1px solid var(--line);color:var(--muted);
  font-size:.8rem;font-variant-numeric:tabular-nums}
.ag-chip{display:inline-flex;align-items:center;gap:2px;padding:4px 10px;border-radius:8px;
  background:var(--panel);border:1px solid var(--line);line-height:1;white-space:nowrap}
#agZoom.ag-chip{color:var(--text);font-weight:600;letter-spacing:.02em;min-width:44px;justify-content:center}
#agZoom.ag-chip:empty{visibility:hidden}
.ag-scalewrap{gap:3px}
.ag-scalewrap #agScale{width:70px;background:none;border:none;color:var(--text);
  font:inherit;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;border-radius:4px;padding:0}
.ag-scalewrap #agScale:hover{color:var(--head)}
.ag-scalewrap #agScale:focus{color:var(--accent);outline:none}
#agElev.ag-chip{color:var(--accent);font-weight:700}
#agElev.ag-chip:empty{display:none}
.ag-coordwrap{gap:8px;padding-left:12px;padding-right:12px}
#agCoord{min-width:200px;text-align:center;font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}
#agCoordFmt{background:none;border:none;color:var(--muted);font:inherit;cursor:pointer;padding:0;color-scheme:dark}
#agCoordFmt option{background:var(--panel2);color:var(--head)}
:root[data-theme="light"] #agCoordFmt{color-scheme:light}
:root[data-theme="light"] #agCoordFmt option{background:#fff;color:var(--head)}
#agCoordFmt:hover{color:var(--head)}
.ag-chip-crs{color:var(--muted);font-weight:700;letter-spacing:.02em;font-size:.74rem}
.ag-status-brand{color:var(--muted);opacity:.55;font-size:.72rem;margin-left:2px}
.ft-soon-badge{color:#D4AF37;display:inline-flex;vertical-align:middle;margin-left:4px;opacity:.9;cursor:help}

/* ---------- field-tools widgets (shared class names) ---------- */
.ft-sec{border-bottom:1px solid var(--line);padding:2px 0 8px;margin-bottom:6px}
.ft-sec summary{list-style:none;cursor:pointer;color:var(--head);font-size:.74rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.05em;padding:8px 0;display:flex;align-items:center;gap:8px;user-select:none}
.ft-sec summary::-webkit-details-marker{display:none}
.ft-sec summary::before{content:"▸";color:var(--accent);font-size:.7rem;transition:transform .15s}
.ft-sec[open] summary::before{transform:rotate(90deg)}
.ft-sec h4{color:var(--head);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;margin:10px 0 6px;opacity:.85}

.ft-optrow{display:flex;align-items:center;gap:6px;margin:6px 0}
.ft-optrow:has(input[type=range]){flex-direction:column;align-items:stretch;gap:3px}
.ft-optrow:has(input[type=range]) > span{max-width:none;width:100%}
.ft-optrow:has(input[type=range]) input[type=range]{width:100%}
.ft-optrow > span{flex:none;min-width:48px;max-width:130px;white-space:normal;overflow-wrap:break-word;
  font-size:.62rem;font-weight:800;text-transform:uppercase;line-height:1.25;
  letter-spacing:.04em;color:var(--muted)}
.ft-select,.ft-wmtsrow input[type=text],.ft-wmtsrow select{flex:1;min-width:0;
  border:1.5px solid var(--line);background:var(--panel2);color:var(--head);
  font-size:.76rem;font-weight:600;padding:7px 8px;border-radius:8px;color-scheme:dark;
  text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.ft-select option,.ft-wmtsrow select option{background:var(--panel2);color:var(--head)}
.ft-wmtsrow{display:flex;gap:6px;margin:6px 0;align-items:center}
.ft-wmtsrow .btn,.ft-optrow .btn,.ft-optrow .btn-mini{flex:none;white-space:nowrap}

.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:700;border-radius:8px;
  cursor:pointer;text-decoration:none;border:1.5px solid transparent}
.btn-sm{padding:6px 9px;font-size:.68rem}
.btn-line{background:transparent;border-color:rgba(255,255,255,.3);color:var(--head)}
.btn-line:hover{border-color:var(--accent);color:var(--accent)}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#04222c}
.btn-accent:hover{background:var(--accent-d);color:#fff}

.hint-line{display:block;color:var(--muted);font-size:.68rem;margin-top:8px;line-height:1.5}

/* swatches / icons */
.ft-swatches{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.ft-sw{width:19px;height:19px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}
.ft-sw.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}
#ftColorCustom{width:24px;height:22px;border:none;background:none;cursor:pointer;padding:0}
.ft-iconrow{display:flex;gap:4px;flex-wrap:wrap}
.ft-ic{width:26px;height:26px;background:var(--panel2);border:1.5px solid var(--line);border-radius:7px;
  cursor:pointer;padding:3px}
.ft-ic svg{width:100%;height:100%}
.ft-ic.active{border-color:var(--accent)}

/* drawings list */
.ft-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.dotc{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}
button.dotc{width:14px;height:14px;border:1.5px solid rgba(255,255,255,.4);padding:0;cursor:pointer}
button.dotc:hover{border-color:#fff;transform:scale(1.15)}
.aq-recolor-pop{z-index:10002;background:var(--panel,#12253d);border:1px solid var(--line);border-radius:10px;
  padding:8px;box-shadow:0 12px 30px rgba(0,0,0,.4)}
.aq-rp-sw{display:flex;gap:5px;align-items:center}
.aq-rp-sw button{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(255,255,255,.25);cursor:pointer;padding:0}
.aq-rp-sw button.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent,#17C3B2)}
.aq-rp-sw input[type=color]{width:22px;height:22px;border:none;background:none;padding:0;cursor:pointer}
.aq-rp-ic{display:flex;gap:4px;margin-top:6px;border-top:1px solid var(--line);padding-top:6px}
.aq-rp-ic button{width:26px;height:26px;border-radius:6px;border:1.5px solid transparent;background:none;cursor:pointer;
  display:grid;place-items:center}
.aq-rp-ic button.active{border-color:var(--accent,#17C3B2);background:rgba(23,195,178,.12)}
.aq-rp-ic button svg{width:16px;height:16px}
.ft-info{flex:1;min-width:0;display:flex;flex-direction:column}
.ft-info input{background:none;border:none;color:var(--head);font-size:.8rem;font-weight:700;
  padding:0;width:100%;outline:none}
.ft-info span{color:var(--muted);font-size:.66rem}
.ft-acts{display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end;max-width:104px}
.ft-acts button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.8rem;width:22px;height:22px;padding:0;border-radius:5px}
.ft-acts button:hover{color:var(--accent);background:rgba(255,255,255,.06)}

/* layers pane widgets */
.ft-bms{display:flex;flex-direction:column;gap:5px}
.ft-bm{border:1.5px solid var(--line);background:var(--panel2);color:var(--head);font-weight:700;
  font-size:.74rem;padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left}
.ft-bm.active{border-color:var(--accent);color:var(--accent)}
.ft-vis{display:flex;flex-direction:column}
.ft-visrow{display:flex;align-items:center;gap:9px;padding:6px 4px 6px 0;font-size:.78rem;font-weight:600;
  color:var(--text);cursor:pointer;border-bottom:1px solid var(--line)}
.ft-vislabel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ft-visrow input,.ft-exprow input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;flex:none}
.ft-count{color:var(--text);background:rgba(255,255,255,.10);border-radius:9px;padding:1px 7px;
  font-size:.62rem;font-style:normal;flex:none;margin-right:2px}
.ft-explog{display:flex;flex-direction:column;gap:4px}
.ft-exprow{display:flex;align-items:center;gap:8px;font-size:.72rem}
.ft-exprow b{color:var(--head);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.ft-exprow b i{color:var(--muted);font-weight:600}
.ft-exprow span{color:var(--muted);font-size:.64rem;flex:none}

/* readout / chip / profile */
.ft-readout{background:rgba(10,22,38,.92);border:1px solid var(--line);border-radius:9px;
  color:var(--head);font-size:.74rem;font-weight:700;padding:8px 12px;backdrop-filter:blur(4px);
  line-height:1.6;word-break:break-word}
.ft-chipbtn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.95rem;
  padding:0 2px 0 6px;vertical-align:middle;white-space:nowrap}
.ft-profile{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  color:var(--text);font-size:.72rem;max-width:300px;position:relative}
.ft-profile svg{width:100%;height:82px;display:block;margin:6px 0}
.ft-profile b{color:var(--head)}
.ft-close{position:absolute;top:6px;right:8px;background:none;border:none;color:var(--muted);cursor:pointer}

/* point markers on map */
.ft-pt{width:26px;height:26px;cursor:pointer}
.ft-pt svg{width:100%;height:100%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}

/* globe / custom controls active state */
.maplibregl-ctrl button.on,.aq-globe-btn.on{color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.aq-globe-btn{font-size:15px}

/* inspect popup */
.aq-gfi .maplibregl-popup-content{background:var(--panel2);color:var(--text);border:1px solid var(--line);
  border-radius:10px;font-size:.76rem;padding:10px 12px}
.aq-gfi .maplibregl-popup-tip{border-top-color:var(--panel2)}
.aq-gfi-row{padding:4px 0;border-bottom:1px solid var(--line)}
.aq-gfi-row:last-child{border-bottom:none}
.aq-gfi .maplibregl-popup-close-button{color:var(--muted);font-size:1rem}

/* responsive */
@media (max-width: 980px){
  .ag-body{grid-template-columns:250px 1fr 0}
  .ag-body .ag-right{display:none}
  .ag-body.show-r-mobile .ag-right{display:block}
  .ag-group > label{display:none}
  .ag-ribbon{height:48px;overflow-x:auto}
}
@media (max-width: 680px){
  .ag-body{grid-template-columns:0 1fr 0}
  .ag-body .ag-left{display:none}
  .ag-body.show-l-mobile .ag-left{display:block;position:absolute;z-index:20;inset:48px 0 26px 0;width:85vw}
}


/* ribbon extras: shape menu, search, panel toggles */
.ag-menu{position:relative;display:inline-block}
.ag-tool.ag-caret{position:relative}
.ag-tool.ag-caret i{position:absolute;right:1px;bottom:0;font-size:.5rem;color:var(--muted);font-style:normal}
.ag-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:#12253d;border:1px solid var(--line);
  border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.5);padding:5px;z-index:50;display:none;min-width:150px}
.ag-dropdown.open{display:block}
.ag-dropdown button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);
  font-size:.8rem;padding:7px 10px;border-radius:6px;cursor:pointer}
.ag-dropdown button:hover{background:rgba(23,195,178,.15);color:var(--accent)}
.ag-search{flex:1;max-width:340px;margin:0 8px;position:relative;min-width:120px}
.ag-search-ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.ag-search input{width:100%;background:#0a1a2c;border:1px solid var(--line);color:var(--head);
  border-radius:9px;padding:9px 12px 9px 32px;font-size:.8rem;outline:none}
.ag-search input:focus{border-color:var(--accent)}
.ag-search input:focus ~ .ag-search-ic,.ag-search input:not(:placeholder-shown) ~ .ag-search-ic{color:var(--accent)}
.ag-results{position:absolute;top:calc(100% + 5px);left:0;right:0;background:#12253d;border:1px solid var(--line);
  border-radius:9px;box-shadow:0 12px 34px rgba(0,0,0,.5);z-index:60;max-height:320px;overflow-y:auto;padding:5px}
.ag-results button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);
  font-size:.76rem;padding:8px 10px;border-radius:6px;cursor:pointer;line-height:1.35}
.ag-results button:hover{background:rgba(23,195,178,.15);color:var(--accent)}
.ag-noresult{color:var(--muted);font-size:.76rem;padding:10px}
.ag-panelbtns{display:flex;gap:4px;flex:none}
.ag-tool.wide{width:auto;padding:0 10px;font-size:.76rem;font-weight:700;height:32px}

/* exact-dimension modal */
.aq-dim .aq-dimgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:4px 18px 12px}
.aq-dimgrid label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.aq-dimgrid input,.aq-dimgrid select{background:#0a1a2c;border:1px solid var(--line);color:var(--head);border-radius:7px;padding:8px;font-size:.82rem}
.aq-bearing-hint{color:var(--accent);font-size:.72rem;font-weight:700;text-transform:none;letter-spacing:normal}
.aq-dim-mousebtn{padding:0 18px 10px}
.aq-dim-mousebtn .btn{width:100%}

/* coordinate-table import: file upload + live detection preview */
.aq-ci-filerow{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.aq-ci-filerow input[type=file]{flex:none;color:var(--text);font-size:.72rem;text-transform:none;letter-spacing:normal;font-weight:400}
#ciFileNote{font-size:.68rem}
.aq-ci-preview{padding:8px 2px 2px;font-size:.72rem;color:var(--text);min-height:1.2em;line-height:1.6}
.aq-ci-ok{color:#17C3B2;font-weight:700}
.aq-ci-warn{color:#F59E0B}

/* modal shared (mirrors main site) */
.aq-modal-ov{position:fixed;inset:0;z-index:10001;background:rgba(4,12,22,.66);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.aq-modal{background:#0e1e33;border:1px solid rgba(255,255,255,.14);border-radius:14px;width:min(460px,92vw);max-height:82vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.5);overflow:hidden}
.aq-modal h3{margin:0;padding:16px 18px 10px;color:#fff;font-size:.9rem}
.aq-mrow-head{display:flex;gap:6px;padding:0 18px 10px;border-bottom:1px solid rgba(255,255,255,.1)}
.aq-mlist{overflow-y:auto;padding:8px 10px}
.aq-mrow{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;cursor:pointer;color:#D7E3EE}
.aq-mrow:hover{background:rgba(255,255,255,.05)}
.aq-mrow input{accent-color:#17C3B2;width:16px;height:16px;flex:none}
.aq-mrow b{flex:1;min-width:0;color:#fff;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aq-mrow i{color:#93ABC2;font-size:.68rem;font-style:normal;flex:none}
.aq-mfoot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid rgba(255,255,255,.1)}
.ft-expchk{accent-color:#17C3B2;width:14px;height:14px;flex:none;margin-right:2px}
.ft-vistog{background:none;border:none;cursor:pointer;color:var(--head);opacity:.85;font-size:.72rem;
  padding:0;flex:none;width:16px;line-height:1;filter:none}
.ft-vistog.off{opacity:.28;filter:grayscale(1)}
.ft-row.ft-hidden .ft-info{opacity:.45}
.ft-grpbtn.off{opacity:.4}

/* ============ LIGHT THEME (mirrors main aquoryxhub domain) ============ */
:root[data-theme="light"]{
  --bg:#EEF3F8; --panel:#FFFFFF; --panel2:#F4F8FB; --line:rgba(18,38,63,.12);
  --text:#33475B; --muted:#5b7186; --head:#12263F; --accent:#0FB5A4; --accent-d:#0b8d80;
}
:root[data-theme="light"] body{background:var(--bg);color:var(--text)}
:root[data-theme="light"] .ag-ribbon{background:linear-gradient(#ffffff,#f1f6fa);border-bottom-color:var(--line)}
:root[data-theme="light"] .ag-logo-img{filter:drop-shadow(0 0 1px rgba(18,38,63,.18))}
:root[data-theme="light"] .ag-tool{color:var(--head)}
:root[data-theme="light"] .ag-tool:hover{background:rgba(15,181,164,.10);border-color:var(--accent)}
:root[data-theme="light"] .ag-tool.active{background:rgba(15,181,164,.14);border-color:var(--accent);color:var(--accent-d)}
:root[data-theme="light"] .ag-panelbtn{border-color:var(--line);color:var(--muted)}
:root[data-theme="light"] .ag-panelbtn:hover{color:var(--accent);border-color:var(--accent)}
:root[data-theme="light"] .btn-mini{border-color:rgba(18,38,63,.28);color:var(--head)}
:root[data-theme="light"] .btn-mini.accent{background:var(--accent);border-color:var(--accent);color:#fff}
:root[data-theme="light"] .ag-search input{background:#fff;border-color:var(--line);color:var(--head)}
:root[data-theme="light"] .ag-results,:root[data-theme="light"] .ag-dropdown{background:#fff;border-color:var(--line);box-shadow:0 12px 34px rgba(18,38,63,.18)}
:root[data-theme="light"] .ag-results button,:root[data-theme="light"] .ag-dropdown button{color:var(--text)}
:root[data-theme="light"] .ag-results button:hover,:root[data-theme="light"] .ag-dropdown button:hover{background:rgba(15,181,164,.12);color:var(--accent-d)}
:root[data-theme="light"] .ag-left,:root[data-theme="light"] .ag-right{background:var(--panel);border-color:var(--line)}
:root[data-theme="light"] .ag-left h2,:root[data-theme="light"] .ag-right h2{color:var(--head);border-bottom-color:var(--line)}
:root[data-theme="light"] .ag-status{background:var(--panel2);border-top-color:var(--line);color:var(--muted)}
:root[data-theme="light"] .ft-sec{border-bottom-color:var(--line)}
:root[data-theme="light"] .ft-sec summary{color:var(--head)}
:root[data-theme="light"] .ft-sec h4{color:var(--head)}
:root[data-theme="light"] .ft-optrow > span{color:var(--muted)}
:root[data-theme="light"] .ft-select,:root[data-theme="light"] .ft-wmtsrow input[type=text],:root[data-theme="light"] .ft-wmtsrow select{background:#fff;border-color:var(--line);color:var(--head);color-scheme:light}
:root[data-theme="light"] .ft-select option{background:#fff;color:var(--head)}
:root[data-theme="light"] .hint-line{color:var(--muted)}
:root[data-theme="light"] .btn-line{border-color:rgba(18,38,63,.28);color:var(--head)}
:root[data-theme="light"] .btn-line:hover{border-color:var(--accent);color:var(--accent-d)}
:root[data-theme="light"] .btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}
:root[data-theme="light"] .ft-bm{background:#fff;border-color:var(--line);color:var(--head)}
:root[data-theme="light"] .ft-bm.active{border-color:var(--accent);color:var(--accent-d)}
:root[data-theme="light"] .ft-visrow{color:var(--text);border-bottom-color:var(--line)}
:root[data-theme="light"] .ft-count{color:var(--head);background:rgba(18,38,63,.08)}
:root[data-theme="light"] .ft-row{border-bottom-color:var(--line)}
:root[data-theme="light"] .ft-info input{color:var(--head)}
:root[data-theme="light"] .ft-info span,:root[data-theme="light"] .ft-acts button{color:var(--muted)}
:root[data-theme="light"] .ft-exprow b{color:var(--head)}
:root[data-theme="light"] .ft-readout{background:rgba(255,255,255,.94);border-color:var(--line);color:var(--head)}
:root[data-theme="light"] .ft-profile{background:#fff;border-color:var(--line);color:var(--text)}
:root[data-theme="light"] .ft-ic{background:#fff;border-color:var(--line)}
:root[data-theme="light"] .aq-modal{background:#fff;border-color:var(--line)}
:root[data-theme="light"] .aq-modal h3{color:var(--head)}
:root[data-theme="light"] .aq-mrow{color:var(--text)}
:root[data-theme="light"] .aq-mrow b{color:var(--head)}
:root[data-theme="light"] .aq-dimgrid input,:root[data-theme="light"] .aq-dimgrid select,:root[data-theme="light"] #ciText{background:#fff;border-color:var(--line);color:var(--head)}
:root[data-theme="light"] .aq-gfi .maplibregl-popup-content{background:#fff;color:var(--text);border-color:var(--line)}
:root[data-theme="light"] .aq-gfi .maplibregl-popup-tip{border-top-color:#fff}

/* Prettier MapLibre nav controls (both themes) */
.maplibregl-ctrl-group{border-radius:12px !important;overflow:hidden;box-shadow:0 4px 16px rgba(4,18,34,.35) !important;border:1px solid var(--line) !important;background:var(--panel2) !important}
.maplibregl-ctrl-group button{width:36px !important;height:36px !important;background:transparent !important}
.maplibregl-ctrl-group button + button{border-top:1px solid var(--line) !important}
.maplibregl-ctrl-group button:hover{background:rgba(23,195,178,.18) !important}
:root:not([data-theme="light"]) .maplibregl-ctrl button .maplibregl-ctrl-icon{filter:invert(96%) sepia(6%) saturate(600%) hue-rotate(140deg) brightness(1.05)}

/* Grouped drawings list */
.ft-grp{border:1px solid var(--line);border-radius:9px;margin-bottom:7px;overflow:hidden}
.ft-grphead{display:flex;align-items:center;gap:7px;padding:7px 9px;background:rgba(255,255,255,.04)}
.ft-grphead b{color:var(--head);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}
.ft-grptog{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.8rem;padding:0 2px}
.ft-grpbtn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.82rem;padding:2px 4px;border-radius:5px}
.ft-grpbtn:hover{color:var(--accent);background:rgba(255,255,255,.08)}
.ft-ovreorder{display:flex;flex-direction:column;flex:none;gap:1px}
.ft-ovreorder .ft-grpbtn{width:20px;height:17px;padding:0;font-size:.62rem;line-height:17px;display:flex;align-items:center;justify-content:center}
.ft-ovreorder .ft-grpbtn[disabled]{opacity:.22;cursor:default}
.ft-grpbody{padding:2px 8px 4px}
:root[data-theme="light"] .ft-grphead{background:rgba(18,38,63,.04)}
:root[data-theme="light"] .ft-grphead b{color:var(--head)}
:root[data-theme="light"] .ft-grpbtn:hover{background:rgba(15,181,164,.1)}

/* Attribute table modal */
.aq-attrtable{width:min(960px,96vw);max-height:88vh}
.aq-attrtable h3{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.aq-at-crs{color:var(--muted);font-size:.68rem;font-weight:600}
.aq-at-tools{display:flex;gap:8px;align-items:center;padding:0 18px 10px;border-bottom:1px solid var(--line)}
.aq-at-scroll{overflow:auto;flex:1}
.aq-at-table{border-collapse:collapse;width:100%;font-size:.74rem}
.aq-at-table th,.aq-at-table td{border:1px solid var(--line);padding:5px 8px;text-align:left;white-space:nowrap}
.aq-at-table th{position:sticky;top:0;background:var(--panel2);color:var(--head);font-weight:700;z-index:1}
.aq-at-table td{color:var(--text)}
.aq-at-table tr:hover td{background:rgba(255,255,255,.03)}
.aq-at-table input{background:transparent;border:1px solid transparent;color:var(--head);font-size:.74rem;padding:3px 4px;border-radius:5px;width:100%;min-width:80px}
.aq-at-table input:focus{border-color:var(--accent);background:var(--panel2);outline:none}
:root[data-theme="light"] .aq-at-table tr:hover td{background:rgba(18,38,63,.03)}
.aq-at-zoom{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.85rem}
.aq-at-zoom:hover{color:var(--accent)}

/* Inspect popup scroll */
.aq-gfi-scroll{max-height:260px;overflow-y:auto;padding-right:4px}
.aq-gfi .maplibregl-popup-content{max-height:300px}

/* Map control icons visible in dark; normal in light */
:root:not([data-theme="light"]) .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(90%) sepia(10%) saturate(500%) hue-rotate(150deg) brightness(1.1) !important}
:root:not([data-theme="light"]) .maplibregl-ctrl-group button{color:var(--text) !important}

/* Clear-all button in section header */
.ft-clearall{margin-left:auto;background:none;border:1px solid rgba(255,255,255,.2);color:var(--muted);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:6px;cursor:pointer}
.ft-clearall:hover{border-color:#EF4444;color:#EF4444}
:root[data-theme="light"] .ft-clearall{border-color:var(--line)}
.ft-sec summary{display:flex;align-items:center}

/* ---------- Georeferencer (v2: non-modal floating panel, map never blocked) ---------- */
.ag-group-right{margin-left:auto}
.aq-gr-float{position:fixed;top:64px;right:12px;z-index:900;width:340px;max-height:calc(100vh - 90px);
  overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 16px 40px rgba(0,0,0,.45);font-size:.76rem}
.aq-gr-fhead{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);border-radius:12px 12px 0 0}
.aq-gr-fhead b{color:var(--head);font-size:.8rem}
.aq-gr-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.9rem;line-height:1}
.aq-gr-x:hover{color:#EF4444}
.aq-gr-fbody{padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.aq-gr-drop{border:2px dashed var(--line);border-radius:10px;padding:26px 12px;text-align:center;color:var(--muted);cursor:pointer}
.aq-gr-drop.over{border-color:var(--accent);color:var(--accent)}
.aq-gr-browse{color:var(--accent);cursor:pointer;text-decoration:underline}
.aq-gr-imgrow{display:flex;align-items:center;gap:8px}
.aq-gr-imgrow label{display:flex;align-items:center;gap:5px;color:var(--text);flex:none}
.aq-gr-imgrow input[type=range]{flex:1}
.aq-gr-thumbwrap{position:relative;line-height:0}
.aq-gr-thumb{display:block;border:1px solid var(--line);border-radius:8px;
  background:#0a1a2c;cursor:crosshair;touch-action:none}
.aq-gr-zoomlbl{position:absolute;bottom:6px;right:6px;background:rgba(4,12,22,.72);color:var(--head);
  font-size:.64rem;font-weight:700;padding:2px 6px;border-radius:5px;pointer-events:none}
.aq-gr-row{display:flex;align-items:center;gap:6px}
.aq-gr-row span{color:var(--muted);font-size:.68rem;text-transform:uppercase;font-weight:800;flex:none}
.aq-gr-row select{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--text);
  border-radius:8px;padding:5px 6px;font-size:.74rem;color-scheme:dark}
:root[data-theme="light"] .aq-gr-row select{color-scheme:light}
.aq-gr-hint{color:var(--muted);font-size:.68rem;line-height:1.45}
.aq-gr-layout-soon{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.aq-gr-layout-soon summary{list-style:none;cursor:default;color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center}
.aq-gr-table{width:100%;border-collapse:collapse;font-size:.68rem}
.aq-gr-table th{color:var(--muted);text-align:left;font-weight:700;padding:3px 4px;border-bottom:1px solid var(--line)}
.aq-gr-table td{padding:3px 4px;border-bottom:1px solid var(--line);color:var(--text)}
.aq-gr-table input[type=number]{width:64px;background:var(--panel2);border:1px solid var(--line);
  color:var(--text);border-radius:5px;padding:2px 4px;font-size:.68rem}
.aq-gr-table button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.78rem}
.aq-gr-table button:hover{color:#EF4444}
.aq-gr-row2{display:flex;gap:6px;flex-wrap:wrap}
.aq-gr-row2 .btn-mini{flex:1}
.aq-gr-rmse{color:var(--head);font-size:.72rem;font-weight:600}
.aq-gr-banner{display:flex;align-items:center;gap:10px;background:rgba(4,12,22,.88);
  border:1px solid var(--accent);border-radius:10px;padding:8px 10px 8px 14px;color:var(--head);
  font-size:.78rem;font-weight:600;box-shadow:0 10px 26px rgba(0,0,0,.4)}
.aq-gr-banner button{background:var(--accent);border:none;color:#04222c;border-radius:7px;
  padding:5px 10px;font-size:.7rem;font-weight:700;cursor:pointer;flex:none}
.aq-gr-banner button:hover{background:var(--accent-d);color:#fff}
.btn-mini{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 12px;font-size:.74rem;cursor:pointer}
.btn-mini:hover{border-color:var(--accent);color:var(--accent)}
.btn-mini.accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-mini.accent:hover{background:var(--accent-d,#0b8d80);color:#fff}

/* PDF tools modal */
.aq-pdf{width:min(720px,96vw)}
.aq-pdf-body{display:flex;flex-wrap:wrap;gap:12px;padding:16px 18px}
.aq-pdf-card{flex:1 1 200px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--panel2)}
.aq-pdf-card b{color:var(--head);font-size:.82rem}
.aq-pdf-card p{color:var(--muted);font-size:.72rem;margin:4px 0 10px}
.aq-pdf-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.aq-pdf-row label{color:var(--muted);font-size:.72rem;display:flex;gap:4px;align-items:center}
.aq-pdf-row select,.aq-pdf-row input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 6px;font-size:.72rem;color-scheme:dark}
:root[data-theme="light"] .aq-pdf-row select,:root[data-theme="light"] .aq-pdf-row input{color-scheme:light}
.aq-pdf-note{color:var(--accent);font-size:.7rem;margin-top:8px;min-height:1em}
.ag-grouplabel{font-size:.6rem;color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.ag-tool.active{background:rgba(15,181,164,.16);border-color:var(--accent);color:var(--accent)}

/* DTM dropdown menu */
.ag-dtmwrap{position:relative;display:inline-block}
.ag-dtmmenu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 32px rgba(0,0,0,.4);z-index:500;min-width:210px;overflow:hidden}
.ag-dtmmenu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:9px 13px;font-size:.76rem;cursor:pointer}
.ag-dtmmenu button:hover{background:rgba(15,181,164,.14);color:var(--accent)}

/* Selected feature row */
.ft-row.selected{background:rgba(251,191,36,.14);border-radius:7px;box-shadow:inset 0 0 0 1px rgba(251,191,36,.4)}
.ft-row{cursor:pointer}
.ft-row .ft-info input{cursor:text}

/* grid custom scale input */
#ftGridCustom{-moz-appearance:textfield}
#ftGridCustomRow input::-webkit-outer-spin-button,#ftGridCustomRow input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* ================= Layout composer ================= */
.aq-lo-root{position:fixed;inset:0;z-index:9500;display:flex;flex-direction:column;
  background:var(--bg);color:var(--text)}
.aq-lo-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 12px;
  background:var(--panel);border-bottom:1px solid var(--line);flex:none}
.aq-lo-toolbar b{color:var(--head);margin-right:6px;font-size:.95rem}
.aq-lo-toolbar select{background:var(--panel2);color:var(--text);border:1px solid var(--line);
  border-radius:7px;padding:5px 6px;font-size:.78rem;color-scheme:dark}
.aq-lo-toolbar select option{background:var(--panel2);color:var(--head)}
.aq-lo-sep{width:1px;align-self:stretch;background:var(--line);margin:0 4px}
.aq-lo-fcount{color:var(--muted);font-size:.76rem;white-space:nowrap}
.aq-lo-close{margin-left:auto;background:none;border:none;color:var(--muted);font-size:1.1rem;
  cursor:pointer;padding:4px 8px;border-radius:6px}
.aq-lo-close:hover{background:var(--panel2);color:var(--head)}

.aq-lo-body{flex:1;display:flex;overflow:hidden}
.aq-lo-canvas-scroll{flex:1;overflow:auto;background:#1a2330;display:flex;
  align-items:flex-start;justify-content:center;padding:32px}
.aq-lo-page{position:relative;background:#fff;box-shadow:0 8px 40px rgba(0,0,0,.5);flex:none}

.aq-lo-sidebar{width:260px;flex:none;background:var(--panel);border-left:1px solid var(--line);
  padding:12px;overflow-y:auto}
.aq-lo-sidebar h4{margin:0 0 8px;color:var(--head);font-size:.85rem}
.aq-lo-hint{color:var(--muted);font-size:.78rem;line-height:1.5}
.aq-lo-prow{display:flex;flex-direction:column;gap:3px;margin-bottom:8px;
  color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.aq-lo-prow input{background:var(--panel2);color:var(--text);border:1px solid var(--line);
  border-radius:7px;padding:6px 8px;font-size:.82rem;font-weight:400;text-transform:none;color-scheme:dark}
.aq-lo-prow input[type="checkbox"]{width:auto;align-self:flex-start}
.aq-lo-prow input[type="color"]{padding:2px;height:28px;cursor:pointer}
.aq-lo-prow input[type="color"]:disabled{opacity:.4;cursor:not-allowed}
.aq-lo-prow-inline{display:flex;align-items:center;gap:6px;margin:-4px 0 8px;
  color:var(--muted);font-size:.72rem;font-weight:400;text-transform:none;cursor:pointer}
.aq-lo-prow-inline input{width:auto}
.aq-lo-note{flex:none;padding:6px 12px;color:var(--muted);font-size:.76rem;
  background:var(--panel);border-top:1px solid var(--line);min-height:1.4em}

/* items on the page (all in mm->px space via inline left/top/width/height) */
.aq-lo-item{position:absolute;cursor:move;outline:1px dashed transparent}
.aq-lo-item:hover{outline-color:rgba(23,195,178,.5)}
.aq-lo-item.sel{outline:1.5px solid var(--accent)}
.aq-lo-item .aq-lo-body{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}

.aq-lo-handle{position:absolute;width:10px;height:10px;background:var(--accent);
  border:1.5px solid #fff;border-radius:2px;z-index:5}
.aq-lo-h-nw{left:-5px;top:-5px;cursor:nwse-resize}
.aq-lo-h-ne{right:-5px;top:-5px;cursor:nesw-resize}
.aq-lo-h-sw{left:-5px;bottom:-5px;cursor:nesw-resize}
.aq-lo-h-se{right:-5px;bottom:-5px;cursor:nwse-resize}
.aq-lo-del{position:absolute;top:-11px;right:-11px;width:20px;height:20px;border-radius:50%;
  background:#EF4444;color:#fff;border:1.5px solid #fff;font-size:.65rem;line-height:1;cursor:pointer;z-index:6}
.aq-lo-pan{position:absolute;top:-11px;left:-11px;width:22px;height:22px;border-radius:50%;
  background:#1c2733;color:#fff;border:1.5px solid #fff;font-size:.7rem;cursor:pointer;z-index:6}
.aq-lo-pan.active{background:var(--accent);color:#04211d}

/* map frame */
.aq-lo-frame-wrap{position:relative;width:100%;height:100%;background:#dfe6ec;overflow:hidden}
.aq-lo-frame-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.aq-lo-frame-wrap.empty{display:flex;align-items:center;justify-content:center;color:#7a8a99;font-size:.8rem}
.aq-lo-busy{position:absolute;bottom:4px;right:6px;background:rgba(10,20,35,.82);color:#fff;
  font-size:.66rem;padding:2px 6px;border-radius:5px;z-index:4}
.aq-lo-grid-overlay{position:absolute;pointer-events:none;overflow:visible}
.aq-lo-neatline{stroke:#111;stroke-width:.9}
.aq-lo-gridtick{stroke:#111;stroke-width:.9}
.aq-lo-gridxing{stroke:#111;stroke-width:.8}
.aq-lo-gridlabel{font-size:8px;fill:#111;paint-order:stroke;stroke:#fff;stroke-width:2.4px}

/* north arrow / scale bar / arrow — plain SVG, no extra chrome */
.aq-lo-northarrow .aq-lo-body,.aq-lo-scalebar .aq-lo-body,.aq-lo-arrow .aq-lo-body{background:transparent}

/* legend */
.aq-lo-legend{width:100%;height:100%;background:rgba(255,255,255,.92);border:1px solid #ccc;
  border-radius:4px;padding:6px 8px;overflow:auto;font-size:.72rem;color:#1c2733}
.aq-lo-legend-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.aq-lo-legend-head b{font-size:.76rem}
.aq-lo-legend-reorder{font-size:.62rem;background:#eef2f5;border:1px solid #ccc;border-radius:5px;
  padding:2px 6px;cursor:pointer;color:#1c2733}
.aq-lo-legend-reorder.active{background:var(--accent);color:#04211d;border-color:var(--accent)}
.aq-lo-legend-row{display:flex;align-items:center;gap:5px;padding:2px 0}
.aq-lo-legend-sw{width:10px;height:10px;flex:none;border-radius:2px;background:#8a94a3;border:1px solid rgba(0,0,0,.25)}
.aq-lo-sw-raster{background:repeating-linear-gradient(45deg,#8a94a3,#8a94a3 2px,#b7c0cb 2px,#b7c0cb 4px)}
.aq-lo-legend-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aq-lo-legend-row button{font-size:.6rem;background:#eef2f5;border:1px solid #ccc;border-radius:3px;
  width:16px;height:16px;line-height:1;cursor:pointer;flex:none}
.aq-lo-legend-row button:disabled{opacity:.35;cursor:default}

/* text item */
.aq-lo-text{width:100%;height:100%;display:flex;align-items:center;padding:2px;
  overflow:hidden;font-family:'Segoe UI',system-ui,sans-serif;cursor:text;white-space:pre-wrap}

@media (max-width:900px){
  .aq-lo-sidebar{display:none}
  .aq-lo-toolbar{gap:4px}
  .aq-lo-toolbar .btn-mini{padding:5px 7px;font-size:.7rem}
}
