/* Shared application layout. Opt in per page; KRDS components, focus styles,
   root text scaling, and the GPR viewer keep their own behavior. */
.workspace-page {
    --workspace-surface: var(--krds-light-color-surface-white, #fff);
    --workspace-muted: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
    --workspace-hover: var(--krds-light-color-surface-primary-subtler, #ecf2fe);
    --workspace-text: var(--krds-light-color-text-basic, #1e2124);
    --workspace-subtle: var(--krds-light-color-text-subtle, #464c53);
    --workspace-primary: var(--krds-light-color-text-primary, #0b50d0);
    --workspace-border: var(--krds-light-color-border-gray-light, #cdd1d5);
    --workspace-rule: var(--krds-light-color-divider-gray-light, #e6e8ea);
    --workspace-gutter: var(--app-page-gutter);
    --workspace-body: var(--krds-pc-font-size-body-small, 1.5rem);
    --workspace-caption: var(--krds-pc-font-size-body-xsmall, 1.3rem);
    --workspace-section: var(--krds-pc-font-size-heading-small, 1.9rem);
}

[data-krds-mode="high-contrast"] .workspace-page,
.workspace-page[data-krds-mode="high-contrast"] {
    --workspace-surface: var(--krds-high-contrast-color-surface-white);
    --workspace-muted: var(--krds-high-contrast-color-surface-gray-subtler);
    --workspace-hover: var(--krds-high-contrast-color-surface-primary-subtler);
    --workspace-text: var(--krds-high-contrast-color-text-basic);
    --workspace-subtle: var(--krds-high-contrast-color-text-subtle);
    --workspace-primary: var(--krds-high-contrast-color-text-primary);
    --workspace-border: var(--krds-high-contrast-color-border-gray-light);
    --workspace-rule: var(--krds-high-contrast-color-divider-gray-light);
}

.workspace-page .workspace-content,
.workspace-page #krds-footer .inner {
    width: 100%;
    max-width: none;
    padding-inline: var(--workspace-gutter);
    box-sizing: border-box;
}

.workspace-page .workspace-content {
    padding-block: 2.4rem 4rem;
    color: var(--workspace-text);
    font-size: var(--workspace-body);
    line-height: 1.5;
}
.workspace-content .page-top,
.workspace-content .page-top:has(.g-info-box) {
    display: flex;
    align-items: center;
    gap: 2.4rem;
    margin-bottom: 2.4rem;
    padding-bottom: 0;
    border-bottom: 0;
}
.workspace-content .page-title-wrap,
.workspace-content .page-top:has(.g-info-box) .page-title-wrap { display: flex; gap: 0.8rem; }
.workspace-content .page-title-wrap h1,
.workspace-content .page-title {
    margin: 0;
    font-size: var(--krds-pc-font-size-heading-medium, 2.4rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0;
    color: var(--workspace-text);
}
.workspace-content .krds-breadcrumb-wrap { margin: 0; padding: 0; font-size: var(--workspace-caption); }
.workspace-content .breadcrumb { display: flex; flex-wrap: wrap; gap: 0.8rem; list-style: none; padding: 0; margin: 0; font-size: var(--workspace-caption); }
.workspace-content .breadcrumb li:not(:last-child)::after { content: '›'; margin-left: 0.8rem; color: var(--workspace-subtle); }
.workspace-content .page-top .g-info-box { padding: 0; border: 0; background: none; border-radius: 0; }
.workspace-content .page-top .g-desc,
.workspace-content .page-description { margin: 0; color: var(--workspace-subtle); font-size: var(--workspace-body); line-height: 1.5; }
.workspace-content .page-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.workspace-content .page-top .page-actions { align-self: center; }

/* Use the KRDS small body/label scale, with controls still large enough to use. */
.workspace-content .krds-btn.medium,
.workspace-content .krds-btn.small {
    height: auto;
    min-height: 4.4rem;
    padding-block: 0.8rem;
    font-size: var(--workspace-body);
    line-height: 1.5;
    white-space: normal;
}
.workspace-content .krds-input,
.workspace-content .krds-form-select { min-height: 4.4rem; height: auto; font-size: var(--workspace-body); line-height: 1.5; background-color: var(--workspace-surface); color: var(--workspace-text); border-color: var(--workspace-border); }
.workspace-content .filter-bar {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
    padding: 1.6rem;
    margin-bottom: 1.6rem;
    border: 1px solid var(--workspace-border);
    border-radius: 1rem;
    background: var(--workspace-surface);
    box-shadow: none;
}
.workspace-content .filter-group { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 0.8rem; flex: 1 1 52rem; min-width: 0; }
.workspace-content .filter-bar .search-box { flex: 1 1 24rem; min-width: min(20rem, 100%); max-width: 64rem; }
.workspace-content .filter-bar .search-box .krds-input { width: 100%; padding-right: 4.8rem; }
.workspace-content .filter-bar .search-box .krds-btn { right: 0.4rem; min-height: 3.6rem; height: 3.6rem; width: 3.6rem; padding: 0; }
.workspace-content .filter-bar .search-box .svg-icon { width: 1.8rem; height: 1.8rem; }
.workspace-content .filter-bar .krds-form-select { flex: 0 1 15rem; width: 15rem; min-width: 12rem; max-width: 100%; padding-block: 0.8rem; padding-inline: 1.2rem 3.6rem; }
.workspace-content .filter-bar > .krds-btn { flex-shrink: 0; }
.workspace-content .stats-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.2rem; margin-bottom: 2.4rem; }
.workspace-content .stats-summary .stat-item { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.2rem; min-width: 0; padding: 1.6rem 2rem; border: 1px solid var(--workspace-rule); border-radius: 1rem; background: var(--workspace-muted); box-shadow: none; text-align: left; }
.workspace-content .stats-summary .stat-label { margin: 0; font-size: var(--workspace-body); color: var(--workspace-subtle); font-weight: 500; line-height: 1.4; }
.workspace-content .stats-summary .stat-value { margin: 0; font-size: var(--krds-pc-font-size-heading-medium, 2.4rem); color: var(--workspace-text); line-height: 1.5; font-weight: 700; font-variant-numeric: tabular-nums; }
.workspace-content .krds-card { border: 1px solid var(--workspace-border); border-radius: 1rem; background: var(--workspace-surface); box-shadow: none; }
.workspace-content .krds-card-header { padding: 1.6rem 2rem; margin: 0; border-bottom: 1px solid var(--workspace-rule); }
.workspace-content .krds-card-header :is(h2, h3, .krds-card-title),
.workspace-content .model-section h2 { margin: 0; color: var(--workspace-text); font-size: var(--workspace-section); line-height: 1.5; font-weight: 700; }
.workspace-content .krds-card-body { padding: 1.6rem 2rem; }
.workspace-content .krds-table-wrap { overflow-x: auto; margin: 0; }
.workspace-content .tbl.data { width: 100%; font-size: var(--workspace-body); }
.workspace-content .tbl.data :is(th, td) { padding: 1.2rem 1.6rem; font-size: var(--workspace-body); line-height: 1.5; vertical-align: middle; border-bottom: 1px solid var(--workspace-rule); color: var(--workspace-text); }
.workspace-content .tbl.data th { background: var(--workspace-muted); font-weight: 600; color: var(--workspace-subtle); white-space: nowrap; }
.workspace-content .tbl.data tbody tr:hover { background: var(--workspace-hover); }
.workspace-content .tbl.data :is(small, .krds-badge, .status-badge) { font-size: var(--workspace-caption); }
.workspace-content .action-buttons { display: flex; align-items: center; flex-wrap: wrap; gap: 0.6rem; }
.workspace-content :is(.tbl.data, .mobile-card-list) .krds-btn.small { min-height: 3.6rem; padding: 0.6rem 1rem; font-size: var(--workspace-caption); }
.workspace-content .krds-pagination { margin-top: 2.4rem; }
.workspace-content :is(.loading-state, .empty-state) { padding: 3.2rem 1.6rem; color: var(--workspace-subtle); }
.workspace-content .empty-state h3 { font-size: var(--workspace-section); color: var(--workspace-text); }
.workspace-content :is(.loading-state, .empty-state) p { font-size: var(--workspace-body); }

/* Dashboard and model guidance use the same scale without widening long prose. */
.workspace-dashboard .main-content-grid { grid-template-columns: minmax(28rem, 3fr) minmax(0, 7fr); gap: 2.4rem; }
.workspace-dashboard .left-column { min-width: 0; gap: 2.4rem; }
.workspace-dashboard :is(.notice-title, .notice-summary, .district-description, .stat-row .label, .stat-row .value) { font-size: var(--workspace-body); line-height: 1.5; }
.workspace-dashboard :is(.notice-date, .header-text .text-muted) { font-size: var(--workspace-caption); color: var(--workspace-subtle); }
.workspace-dashboard .notice-list { padding: 0.8rem 1.2rem; }
.workspace-dashboard .notice-item { padding: 1.2rem 0.8rem; }
.workspace-dashboard .notice-item:hover { background: var(--workspace-hover); }
.workspace-dashboard .notice-title { color: var(--workspace-text); }
.workspace-dashboard .notice-summary { color: var(--workspace-subtle); }
.workspace-dashboard .data-panel { padding: 2rem; gap: 1.6rem; }
.workspace-dashboard .district-info h3 { font-size: var(--workspace-section); color: var(--workspace-text); }
.workspace-dashboard .district-info p { color: var(--workspace-subtle); }
.workspace-dashboard .map-controls { gap: 0.8rem; flex-wrap: wrap; padding-top: 1.6rem; border-top: 1px solid var(--workspace-rule); }
.workspace-dashboard .map-controls .krds-btn { flex: 1 1 12rem; }
.workspace-dashboard .year-selector { padding: 0; background: none; gap: 0.8rem; flex-wrap: wrap; }
.workspace-dashboard .year-selector .krds-form-select { min-width: 12rem; }
.workspace-model .model-section { margin-bottom: 1.6rem; }
.workspace-model .model-section .krds-card-body { padding: 2rem; }
.workspace-model .model-section h2 { margin-bottom: 1.2rem; }
.workspace-model .model-section :is(ol, ul, p) { max-width: 100ch; font-size: var(--workspace-body); line-height: 1.7; }
.workspace-model .model-section :is(ol, ul) { padding-left: 2rem; }
.workspace-model .model-section .note { color: var(--workspace-subtle); font-size: var(--workspace-caption); }
.workspace-model .download-actions { margin-top: 1.6rem; }

/* The map consumes the actual space below the header, including text zoom.
   No fixed 172px header subtraction or minimum 500px scroll list. */
.workspace-map-page { display: flex; flex-direction: column; height: 100vh; height: 100dvh; overflow: hidden; }
.workspace-map-page > .workspace-content { flex: 1; min-height: 0; height: auto; padding: 0; margin: 0; }
.workspace-map-page .left-panel { width: clamp(28rem, 22vw, 36rem); background: var(--workspace-surface); border-color: var(--workspace-border); min-height: 0; }
.workspace-map-page .right-panel { min-width: 0; min-height: 0; }
.workspace-map-page .panel-filter { padding: 1.2rem; gap: 0.8rem; background: var(--workspace-muted); border-color: var(--workspace-rule); }
.workspace-map-page .panel-filter .filter-group { flex: 1; min-width: 0; }
.workspace-map-page .filter-label { font-size: var(--workspace-caption); }
.workspace-map-page .panel-filter .krds-form-select { width: auto; flex: 1; min-width: 0; padding-inline: 1.2rem 3.6rem; background-color: var(--workspace-surface); color: var(--workspace-text); }
.workspace-map-page .panel-filter .krds-btn { width: 4.4rem; flex-shrink: 0; }
.workspace-map-page .data-panel { padding: 0 1.2rem 1.2rem; min-height: 0; overflow: hidden; }
.workspace-map-page .krds-tab-area .btn-tab { min-height: 4.8rem; height: auto; padding: 1.2rem 0.8rem; font-size: var(--workspace-body); line-height: 1.5; }
.workspace-map-page .tab-conts-wrap { min-height: 0; }
.workspace-map-page .tab-conts.active { min-height: 0; overflow: hidden; }
.workspace-map-page :is(#exploration-areas-tab, #exploration-data-tab) { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.workspace-map-page .list-header { padding: 1.2rem 0.4rem; margin: 0; flex-shrink: 0; background: var(--workspace-muted); border-color: var(--workspace-rule); }
.workspace-map-page .list-header h5 { font-size: var(--workspace-body); line-height: 1.5; color: var(--workspace-text); }
.workspace-map-page .list-header .count { font-size: var(--workspace-caption); color: var(--workspace-subtle); }
.workspace-map-page .list-container { min-height: 0; max-height: none; padding: 0.4rem; }
.workspace-map-page :is(.area-card, .data-card) { padding: 1.2rem; margin-bottom: 0.8rem; gap: 0.8rem; border-color: var(--workspace-rule); background: var(--workspace-surface); }
.workspace-map-page :is(.area-card, .data-card):hover { background: var(--workspace-hover); border-color: var(--workspace-border); box-shadow: none; }
.workspace-map-page :is(.area-card, .data-card).active { background: var(--workspace-hover); border-color: var(--workspace-primary); box-shadow: none; }
.workspace-map-page :is(.area-card, .data-card) h6 { font-size: var(--workspace-body); color: var(--workspace-text); white-space: normal; overflow-wrap: anywhere; }
.workspace-map-page .card-header { flex-wrap: wrap; align-items: flex-start; }
.workspace-map-page :is(.area-info, .data-info, .status-badge) { font-size: var(--workspace-caption); }
.workspace-map-page .info-item { flex-wrap: wrap; }
.workspace-map-page .info-item :is(.label, .value) { color: var(--workspace-subtle); overflow-wrap: anywhere; }
.workspace-map-page .location-search-box input { min-height: 4.4rem; padding: 0.8rem 4.8rem 0.8rem 1.2rem; font-size: var(--workspace-body); border-radius: 0.8rem; border-color: var(--workspace-border); background: var(--workspace-surface); color: var(--workspace-text); }
.workspace-map-page .location-search-box button { width: 3.6rem; height: 3.6rem; }
.workspace-map-page .location-search-box button i { font-size: 1.5rem; }
/* The toolbar wrapper contains two absolutely positioned siblings. Give it
   the map bounds so vertical scrolling cannot clip the sibling map picker. */
.workspace-map-page .map-toolbar { inset: 0; padding: 0; display: block; background: transparent; box-shadow: none; pointer-events: none; }
.workspace-map-page :is(.map-tools-vertical, .map-tools-horizontal-wrapper) { pointer-events: auto; }
.workspace-map-page .map-tools-vertical { max-height: calc(100% - 3rem); overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; }
.workspace-map-page .map-tools-vertical > * { flex-shrink: 0; }
.workspace-map-page .map-tools-vertical .tool-btn { width: 4.8rem; min-height: 4.8rem; height: auto; padding-block: 0.6rem; }
.workspace-map-page .map-tools-horizontal-wrapper { right: 10rem; }
.workspace-map-page :is(.map-legend, .map-tools-vertical, .compact-map-panel, .search-results-dropdown, .info-panel) { background: var(--workspace-surface); border-color: var(--workspace-border); color: var(--workspace-text); }
.workspace-map-page .map-legend { padding: 1.2rem 1.6rem; }
.workspace-map-page .map-legend h4 { margin-bottom: 0.8rem; font-size: var(--workspace-body); }
.workspace-map-page :is(.legend-item, .tool-label, .compact-option span) { font-size: var(--workspace-caption); line-height: 1.5; }
.workspace-map-page .compact-panel-content h5 { font-size: var(--workspace-body); }
.workspace-map-page .panel-header h3 { font-size: var(--workspace-section); }

@media (max-width: 1200px) {
    .workspace-dashboard .main-content-grid { grid-template-columns: minmax(0, 1fr); }
    .workspace-content .filter-group { flex-basis: 100%; }
    .workspace-content .filter-bar .search-box { max-width: none; }
}
@media (max-width: 1024px) {
    .workspace-map-page { height: auto; min-height: 100vh; min-height: 100dvh; overflow: auto; }
    .workspace-map-page > .workspace-content { min-height: 68rem; }
    .workspace-map-page .main-content { min-height: 68rem; }
    .workspace-map-page .left-panel { width: 100%; height: 32rem; flex-shrink: 0; }
    .workspace-map-page .right-panel { min-height: 36rem; }
}
@media (max-width: 767px) {
    .workspace-page .workspace-content { padding-top: 1.6rem; }
    .workspace-content .page-top,
    .workspace-content .page-top:has(.g-info-box) { align-items: stretch; flex-direction: column; gap: 1.6rem; }
    .workspace-content .page-top .page-actions { align-self: flex-start; }
    .workspace-content .filter-bar { padding: 1.2rem; }
    .workspace-content .filter-bar .search-box { flex-basis: 100%; min-width: 0; }
    .workspace-content .filter-bar .krds-form-select { flex: 1 1 12rem; width: auto; min-width: 0; }
    .workspace-content .stats-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; }
    .workspace-content .stats-summary .stat-item { flex-wrap: wrap; padding: 1.2rem 1.4rem; gap: 0.4rem 0.8rem; }
    .workspace-content .krds-card-header,
    .workspace-content .krds-card-body { padding: 1.6rem; }
    .workspace-content .mobile-card-list .krds-btn.small { min-height: 4rem; }
    .workspace-content .tbl.data { min-width: 72rem; }
    .workspace-model .model-section .krds-card-body { padding: 1.6rem; }
    .workspace-map-page > .workspace-content { padding: 0; }
    .workspace-map-page .map-search-area { width: calc(100% - 10rem); left: 1.2rem; top: 1.2rem; }
}
@media (min-width: 1025px) and (max-height: 600px) {
    .workspace-map-page { height: auto; min-height: 100vh; overflow: auto; }
    .workspace-map-page > .workspace-content { height: 44rem; min-height: 44rem; flex: none; }
}
