/* ClimeChart additions to the shared Freshbox dashboard components. */
/* Brand colours only; shared component styles are copied from Freshbox. */
:root { --climechart-primary: #008fff; }
html:not([data-theme]), html[data-theme="dark"], html[data-theme="light"] {
  --bulma-primary-h: 206.35;
  --bulma-primary-s: 100%;
  --bulma-primary-l: 50%;
  --bulma-primary: var(--climechart-primary);
  --bulma-primary-light: #4db1ff;
  --bulma-primary-dark: #006dcc;
  --bulma-button-focus-box-shadow-color: rgba(0, 143, 255, 0.25);
  --bulma-table-row-active-background-color: rgba(0, 143, 255, 0.28);
}
.admin-page-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.admin-page-header .title { margin-bottom: .5rem; }
.admin-page-header .subtitle { margin-top: 0; }
.admin-translations-page, .admin-translations-page .card, .admin-translations-page .card-content { min-width: 0; }
.admin-translations-page { max-width: 100%; }
.admin-translations-page > .admin-page-header { gap: .75rem 1.5rem; }
.admin-translations-page > .admin-page-header .title { margin: 0; }
.admin-translation-actions.buttons { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; min-width: 0; }
.admin-translation-actions.buttons .button { margin: 0; }
.admin-translation-start { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0; }
.admin-translation-start .checkbox { white-space: nowrap; }
.admin-translation-progress { padding: .85rem 1rem; margin-bottom: 1.25rem; border: 1px solid var(--bulma-border); border-left: 3px solid var(--bulma-primary); border-radius: 4px; overflow-wrap: anywhere; }
.admin-translation-progress.is-danger { border-left-color: var(--bulma-danger); }
.admin-translation-progress-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1rem; font-size: .9rem; }
.admin-translation-progress-heading > :last-child { margin-left: auto; font-variant-numeric: tabular-nums; }
.admin-translation-progress [data-worker-message] { margin-top: .4rem; font-size: .8rem; color: var(--text-secondary); }
.admin-translation-progress .progress { height: 4px; margin: .65rem 0 .2rem; }
.admin-translation-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem 1.25rem; margin-bottom: 1.25rem; }
.admin-translation-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .65rem; min-width: 0; margin: 0; }
.admin-translation-search { width: 14rem; max-width: 100%; }
.admin-translation-status { width: 8rem; max-width: 100%; }
.admin-translation-filters .label { font-size: .8rem; margin-bottom: .35rem; }
.admin-translation-toolbar .admin-translation-actions { margin-left: auto; }
.admin-translation-table { min-width: 0; max-width: 100%; overflow-x: auto; }
@media (max-width: 800px) {
  .admin-translation-actions.buttons { width: 100%; }
  .admin-translation-toolbar .admin-translation-actions { margin-left: 0; }
  .admin-translation-search { width: min(14rem, 100%); }
  .admin-translation-progress-heading > :last-child { margin-left: 0; }
}
.admin-empty-state { padding: 3rem 1rem; text-align: center; color: var(--text-secondary); }
.admin-json-editor { min-height: 65vh; font-family: ui-monospace, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-wordmark { font-weight: 400; }
main.section.is-main-section { padding: var(--default-padding); padding-bottom: 10px; }
.admin-wordmark, .admin-navbar-actions { display: flex; align-items: center; }
.admin-navbar-actions { margin-left: auto; }
#navbar-main { display: flex; align-items: stretch; justify-content: space-between; }
.admin-icon-button { background: none; border: 0; cursor: pointer; color: var(--text-primary); }
.aside .menu-list a[aria-disabled="true"] { cursor: default; }
.aside-logo img { display: block; width: 155px; max-width: 100%; max-height: 32px; }
.admin-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.5rem; border-top: var(--light-border); font-size: .8rem; }
.admin-history-chart { width: 100%; height: 320px; }
.admin-chart-preview { --chart-preview-background: #333333; padding: 8px; background: var(--chart-preview-background); border-radius: 3px; color-scheme: dark; }
.admin-chart-preview[data-preview-mode="light"] { --chart-preview-background: #d9d9d9; color-scheme: light; }
.admin-chart-preview object { display: block; width: 100%; aspect-ratio: 1226 / 635; background: var(--chart-preview-background); color-scheme: inherit; }
.admin-chart-workspace { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.admin-chart-canvas { min-width: 0; }
.admin-metric-panel { padding-top: 1rem; border-top: 1px solid var(--bulma-border); }
.admin-metric-workspace { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.admin-metric-canvas { min-width: 0; }
.admin-metric-svg { padding: 8px; border-radius: 3px; }
.admin-metric-controls .admin-series-control { align-items: start; }
.admin-metric-controls .admin-series-control > label { font-size: .75rem; padding-top: .35rem; }
.admin-metric-controls input[type="color"] { width: 32px; height: 28px; }
.admin-metric-panel svg { display: block; width: 100%; height: auto; border-radius: 3px; font: 12px Arial, sans-serif; }
.admin-metric-legend { display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.admin-metric-legend > span { display: inline-flex; align-items: center; gap: .4rem; }
.admin-metric-swatch { display: inline-block; width: 1.2rem; height: 3px; }
.admin-chart-variants { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.admin-chart-variants .label { margin: 0; }
.admin-chart-variants .input { width: 220px; max-width: 100%; }
.admin-chart-view-options { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
.admin-chart-view-options fieldset { border: 0; padding: 0; display: flex; align-items: center; gap: .75rem; }
.admin-chart-view-options legend { float: left; }
.admin-chart-view-options .label { margin: 0; white-space: nowrap; }
.admin-chart-view-options .radio { display: inline-flex; align-items: center; gap: .35rem; font-size: .85rem; white-space: nowrap; margin: 0; }
.admin-chart-view-options .radio input { width: 1em; margin: 0; flex-shrink: 0; }
.admin-chart-period-control, .admin-chart-date-range { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.admin-chart-date-range[hidden] { display: none; }
.admin-chart-date-range label { font-size: .85rem; }
.admin-chart-date-range .input { width: 130px; }
.admin-chart-date-range .input[aria-invalid="true"] { border-color: #f14668; }
.admin-chart-controls { min-width: 0; overflow-x: auto; padding-right: 1rem; border-right: 1px solid var(--bulma-border); }
.admin-series-control { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin: .5rem 0; }
.admin-series-control .checkbox { display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; font-size: .75rem; line-height: 1.4; }
.admin-series-control .checkbox input { flex-shrink: 0; margin: 0; }
.admin-color-control { display: inline-flex; align-items: center; gap: .35rem; flex-shrink: 0; }
.admin-color-hex.input { width: 82px; height: 28px; padding: .25rem .4rem; font: .75rem ui-monospace, monospace; }
.admin-color-hex[aria-invalid="true"] { border-color: #f14668; }
.admin-opacity-control { display: flex; align-items: center; gap: .5rem; margin: -.1rem 0 .75rem; font-size: .75rem; }
.admin-opacity-control label { white-space: nowrap; }
.admin-opacity-control input { flex: 1; min-width: 0; cursor: pointer; }
.admin-opacity-control output { min-width: 3.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.admin-series-control .label { margin: 0; font-size: .8rem; }
.admin-series-control input[type="color"] { width: 32px; height: 28px; padding: 2px; flex-shrink: 0; cursor: pointer; border: 1px solid var(--bulma-border); border-radius: 4px; background: transparent; }
.admin-chart-controls fieldset { min-width: 0; }
#chart-open[aria-disabled="true"], #chart-download[aria-disabled="true"] { opacity: .5; }
@media (max-width: 1100px) {
  .admin-chart-workspace, .admin-metric-workspace { grid-template-columns: minmax(0, 1fr); }
  .admin-chart-controls { padding: 0; border-right: 0; }
  .admin-chart-controls .admin-series-control { min-width: 390px; }
}
.admin-empty { min-height: 220px; display: grid; place-content: center; text-align: center; color: var(--text-secondary); }
.admin-error { white-space: pre-wrap; overflow-wrap: anywhere; }
.chart-location-results { max-height: 240px; overflow-y: auto; border: 1px solid var(--bulma-border); border-radius: 4px; margin-top: .25rem; }
.chart-location-results .dropdown-item { cursor: pointer; white-space: normal; }
.chart-location-results .dropdown-item:hover, .chart-location-results .is-active { background: var(--climechart-primary); color: #fff; }
.json_edit { min-height: 65vh; font-family: ui-monospace, monospace; }
.admin-json { white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: end; }
.admin-toolbar .field { margin-bottom: 0; }
.admin-toolbar .is-expanded { flex: 1; min-width: 180px; }
.admin-action-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.admin-login { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; }
.admin-login .card { width: min(100%, 420px); }
.admin-login-logo { width: 240px; max-width: 100%; margin: 0 auto 1.5rem; display: block; }
.tabulator-cell a { white-space: normal; }
.admin-job-status { margin-bottom: 1rem; }
.button:focus-visible, .admin-icon-button:focus-visible { outline: 2px solid var(--climechart-primary); outline-offset: 3px; }
@media (max-width: 768px) { .admin-footer { flex-direction: column; } .admin-navbar-actions .navbar-item { display: flex; padding: .75rem; } }
