/* Local Inter 5.2.8 subsets; OFL licence: vendor/inter/LICENSE. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('./vendor/inter/inter-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('./vendor/inter/inter-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('./vendor/inter/inter-latin-ext-500-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('./vendor/inter/inter-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('./vendor/inter/inter-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('./vendor/inter/inter-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('./vendor/inter/inter-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('./vendor/inter/inter-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Bounds only. The original Tailwind colours, type scale and controls remain. */
html{height:100%}
#appBody{height:100vh;height:100dvh;min-height:0}
#main{height:100vh;height:100dvh;min-height:0;min-width:0;position:relative;isolation:isolate}
#mapWorkspaceShell{min-width:0;min-height:0}
#leftSidebarPanel,#mapMainContainer{min-width:0;min-height:0}
/* Keep Leaflet's high pane indices inside the map, below page notices/modals. */
#mapMainContainer{isolation:isolate}
#topHeaderBar,#subControlBar,#verification-notice{flex-shrink:0}
#topHeaderBar>div{min-width:0;max-width:100%}
/* Wrap header groups before the address field can collapse beside the actions. */
#topHeaderBar>div:nth-child(2){flex:1 0 320px;min-width:min(100%,320px);max-width:min(100%,448px)}
#topHeaderBar>div:nth-child(2)>div{min-width:0}
#workspaceManagerBar{flex-shrink:0;min-width:0}
#workspaceManagerBar>div,#workspaceManagerBar>div>div{min-width:0;max-width:100%}
#workspaceManagerBar input,#workspaceManagerBar select{min-width:0;max-width:100%}
.record-name-row{min-width:0;flex-wrap:wrap}
.record-name-row [data-rename-id]{min-width:0;flex:1 1 130px}
#leftSidebarPanel>div[id^=tabPanel]{min-height:0}
#floatingMiniSelector,#quickTouchToolbar{max-width:calc(100% - 2rem)}
#floatingMiniSelector select{min-width:0}
#toastBox{max-width:calc(100vw - 2rem);overflow-wrap:anywhere}

/* Header wrapping must not squeeze the mobile map to a few remaining pixels. */
@media(max-width:1023px){
  #appBody{height:auto;min-height:100vh;min-height:100dvh;overflow:auto}
  #main{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}
  #mapWorkspaceShell{flex:none;overflow:visible}
  #leftSidebarPanel{height:50vh;height:50dvh;min-height:320px}
  #mapMainContainer{flex:none;height:50vh;height:50dvh;min-height:420px}
  #leftSidebarPanel.hidden+#mapMainContainer{height:80vh;height:80dvh}
}
@media(max-width:640px){#workspaceManagerBar>div:first-child>div{flex-wrap:wrap}#inpWorkspaceTitle{flex:1;min-width:80px;width:auto}#areaRoadControls>div{min-width:0;flex-wrap:wrap}}

/* Preserve the original full-map control when the browser enters fullscreen. */
#appBody:fullscreen{height:100vh;height:100dvh;min-height:0;overflow:hidden}
#appBody:fullscreen #main{height:100%;min-height:0;overflow:hidden}
#appBody:fullscreen #mapWorkspaceShell{flex:1;min-height:0;overflow:hidden}
#appBody:fullscreen #mapMainContainer{flex:1;height:100%;min-height:0}

/* Long reports and help remain scrollable without losing their close buttons. */
#reportModal>div,#helpModal>div{max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);min-height:0}
#reportModal>div>div:first-child,#reportModal>div>div:last-child{flex-shrink:0}
#reportContentArea{min-height:0;overflow:auto}
#helpModal>div{display:flex;flex-direction:column}
#helpModal>div>div:first-child,#helpModal>div>div:last-child{flex-shrink:0}
#helpModal>div>div:nth-child(2){min-height:0;max-height:none;overflow:auto}
#securityLockOverlay>div{max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow:auto}

/* Shared publication controls are scoped; original app buttons keep Tailwind. */
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog){--ink:#172c43;--muted:#526473;--accent:#12676d;--accent-dark:#17364d;--line:#d5dfe4;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
#site-runtime-gate{background:#f6f7f4}
#site-runtime-gate .runtime-gate-card{border-color:#c5d3dc}
#site-runtime-gate .runtime-gate-card h1{color:var(--ink);font-weight:600}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:#fff;padding:11px 16px;font-size:13px;font-weight:600;line-height:1.5;text-align:center}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) .button.secondary{background:#fff;border-color:#a9bec9;color:var(--accent-dark)}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) .text-button{min-height:44px;padding:9px 0;border:0;background:transparent;color:var(--accent);font-size:13px;font-weight:600;line-height:1.6;text-align:left;text-decoration:underline;text-underline-offset:3px}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) button{cursor:pointer}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) button:disabled{opacity:.5;cursor:not-allowed}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) input,:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) select,:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) textarea{max-width:100%;min-height:44px;border:1px solid #7c909f;border-radius:6px;padding:10px 12px;color:var(--ink);background:#fff;font:inherit}
:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) :focus-visible{outline:2px solid #17364d;outline-offset:4px;box-shadow:0 0 0 2px #fff,0 0 0 5px #17364d}
#site-update-bar{position:static;top:auto;z-index:auto;flex-shrink:0;width:100%;min-width:0;margin:0;border-radius:0;background:#e7f1f1;border-color:#b8cfd4;padding:10px 16px}
#site-update-bar>div{max-width:100%}
#site-runtime-gate[hidden],#site-update-bar[hidden],#site-recovery-dialog[hidden],:is(#site-runtime-gate,#site-update-bar,#site-recovery-dialog) [hidden]{display:none}
@media(max-width:700px){#site-update-bar{display:block}#site-update-bar>div{margin-top:5px}#site-recovery-dialog .ops-actions{gap:9px}#site-recovery-dialog .ops-actions .button{font-size:12px}}

/* The report button prints the complete report rather than a fixed modal crop. */
@media print{
  @page{margin:14mm}
  html,#appBody:has(#reportModal:not(.hidden)):not(:has(#site-runtime-gate:not([hidden]))),#appBody:has(#reportModal:not(.hidden)):not(:has(#site-runtime-gate:not([hidden]))) #main{height:auto;min-height:0;overflow:visible;background:#fff}
  #appBody:has(#reportModal:not(.hidden)):not(:has(#site-runtime-gate:not([hidden])))>*:not(#main):not(#reportModal),#appBody:has(#reportModal:not(.hidden)):not(:has(#site-runtime-gate:not([hidden]))) #main>*:not(#reportModal){display:none!important}
  #reportModal:not(.hidden){display:block;position:static;inset:auto;padding:0;background:#fff;backdrop-filter:none}
  #reportModal:not(.hidden)>div{max-width:none;width:100%;max-height:none;overflow:visible;border:0;border-radius:0;box-shadow:none}
  #reportModal:not(.hidden)>div>div:first-child{background:#fff;color:#0f172a;padding:0 0 12px}
  #reportModal:not(.hidden)>div>div:first-child p{color:#475569}
  #reportModal:not(.hidden)>div>div:last-child,#reportModal:not(.hidden) #btnCloseReportModal{display:none!important}
  #reportModal:not(.hidden) #reportContentArea{max-height:none;overflow:visible;padding:0}
  #reportContentArea table{width:100%;border-collapse:collapse}
  #reportContentArea th,#reportContentArea td{overflow-wrap:anywhere}
  #reportContentArea tr{break-inside:avoid}
}
