/* The Dashboard shell reads the One Design System tokens served by one_ui.
 * Nothing here defines a colour, a font or a scale: it only gives the shell's
 * long-standing short names to the global tokens, so there is exactly one
 * definition of the visual language and an Application cannot fork it. */
:root {
    --bg: var(--one-bg);
    --surface: var(--one-surface);
    --surface-soft: var(--one-surface-soft);
    --surface-strong: var(--one-surface-strong);
    --text: var(--one-text);
    --muted: var(--one-muted);
    --line: var(--one-line);
    --line-strong: var(--one-line-strong);
    --blue: var(--one-accent);
    --blue-dark: var(--one-accent-dark);
    --blue-soft: var(--one-accent-soft);
    --teal: var(--one-success);
    --danger: var(--one-danger);
    --shadow: var(--one-shadow);
    --radius: var(--one-radius);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); }
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.one-topbar { position: fixed; inset: 0 0 auto; z-index: 1000; height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 24px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 94%, transparent); backdrop-filter: blur(14px); }
.one-topbar-start, .one-topbar-actions, .one-brand, .one-user-trigger { display: flex; align-items: center; }
/* The start block is the only part that may give up room; the actions are all
   fixed-size controls and must never be overlapped by a long context name. */
.one-topbar-start { flex: 1 1 auto; min-width: 0; gap: 14px; }
.one-topbar-actions { flex: 0 0 auto; gap: 10px; }
.one-brand { gap: 10px; }
.one-brand-mark { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; border-radius: 10px; color: white; background: linear-gradient(145deg, #0875e1, #00a8a0); box-shadow: 0 7px 18px rgba(8,117,225,.24); font-weight: 900; }
.one-brand strong, .one-brand small { display: block; }
.one-brand strong { font-size: 1.12rem; line-height: 1.1; }
.one-brand small { margin-top: 2px; color: var(--muted); font-size: .7rem; }
.one-topbar-divider { width: 1px; height: 28px; background: var(--line); }
/* The context switcher had no width of its own, so a long workspace name wrapped
   inside the top bar and pushed the actions on top of each other. */
.one-context-switch { position: relative; flex: 0 1 auto; min-width: 0; }
.one-context-trigger { display: flex; align-items: center; gap: 8px; max-width: 260px; min-width: 0; padding: 6px 10px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--text); background: var(--surface); cursor: pointer; }
.one-context-trigger > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.one-current-page { font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.one-icon-btn { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--text); background: var(--surface); cursor: pointer; transition: .18s ease; }
.one-icon-btn:hover { border-color: var(--blue); background: var(--blue-soft); }
.one-user-menu { position: relative; }
.one-notification-menu { position: relative; }
.one-notification-trigger { position: relative; }
.one-notification-count { position: absolute; top: -6px; right: -7px; min-width: 19px; height: 19px; padding: 1px 5px; border: 2px solid var(--surface); border-radius: 99px; color: white; background: var(--danger); font-size: .62rem; font-weight: 900; }
.one-notification-popover { position: absolute; right: 0; top: calc(100% + 8px); width: min(390px, calc(100vw - 24px)); padding: 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow); }
.one-notification-head { display: flex; justify-content: space-between; padding: 8px 9px 12px; border-bottom: 1px solid var(--line); }
.one-notification-head a { color: var(--blue); font-size: .75rem; font-weight: 800; }
.one-notification-item { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; align-items: start; padding: 11px 8px; border-bottom: 1px solid var(--line); }
.one-notification-item.unread { background: var(--blue-soft); }
.one-notification-item > a strong, .one-notification-item > a span, .one-notification-item > a small { display: block; }
.one-notification-item > a span, .one-notification-item > a small { margin-top: 3px; color: var(--muted); font-size: .72rem; }
.one-notification-item button { border: 0; color: var(--blue); background: transparent; cursor: pointer; }
.one-notification-severity { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--blue); }
.one-notification-severity.success { background: var(--teal); }.one-notification-severity.warning { background: var(--one-warning); }.one-notification-severity.critical { background: var(--danger); }
.one-notification-empty { padding: 16px 9px; }
.one-user-trigger { gap: 9px; max-width: 260px; padding: 4px 8px 4px 4px; border: 1px solid transparent; border-radius: 11px; color: var(--text); background: transparent; cursor: pointer; }
.one-user-trigger:hover, .one-user-trigger[aria-expanded="true"] { border-color: var(--line); background: var(--surface-soft); }
.one-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; color: var(--blue); background: var(--blue-soft); font-weight: 800; }
.one-user-copy { min-width: 0; text-align: left; }
.one-user-copy strong, .one-user-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.one-user-copy strong { font-size: .78rem; }
.one-user-copy small { color: var(--muted); font-size: .68rem; margin-top: 2px; }
.one-user-popover { position: absolute; right: 0; top: calc(100% + 8px); width: 220px; padding: 7px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow); }
.one-user-popover a, .one-user-popover button { display: block; width: 100%; padding: 10px 11px; border: 0; border-radius: 8px; text-align: left; color: var(--text); background: transparent; cursor: pointer; }
.one-user-popover a:hover, .one-user-popover button:hover { background: var(--surface-soft); }
.one-user-popover form { margin: 4px 0 0; padding-top: 4px; border-top: 1px solid var(--line); }

.one-shell { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: 100vh; padding-top: 66px; }
.one-sidebar { position: sticky; top: 66px; height: calc(100vh - 66px); display: flex; flex-direction: column; justify-content: space-between; padding: 22px 12px 14px; border-right: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 64%, var(--bg)); overflow-y: auto; }
.one-sidebar-brand { display: none; }
.one-nav-label { padding: 4px 10px 10px; color: #7890aa; font-size: .64rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.one-nav-link { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 2px 0; padding: 9px 11px; border: 1px solid transparent; border-radius: 10px; font-size: .9rem; font-weight: 600; transition: .16s ease; }
.one-nav-link:hover { background: var(--surface-soft); }
.one-nav-link.active { border-color: color-mix(in srgb, var(--blue) 28%, var(--line)); color: var(--text); background: linear-gradient(120deg, var(--blue-soft), color-mix(in srgb, var(--surface) 82%, var(--teal))); box-shadow: inset 3px 0 var(--blue); }
.one-nav-icon { display: grid; place-items: center; width: 24px; color: var(--blue); }
.one-nav-section { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.one-sidebar-footer { display: flex; align-items: center; gap: 8px; padding: 12px 10px; color: var(--muted); font-size: .72rem; }
/* The dot takes its colour from an observed state, never from the stylesheet
   alone: "unknown" until the first call answers, and the label carries the same
   meaning in words for anyone who cannot use the colour. */
.one-status-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--muted); box-shadow: 0 0 0 4px color-mix(in srgb, var(--muted) 18%, transparent); }
[data-connection-state="online"] .one-status-dot { background: var(--teal); box-shadow: 0 0 0 4px color-mix(in srgb, var(--teal) 18%, transparent); }
[data-connection-state="offline"] .one-status-dot { background: var(--danger); box-shadow: 0 0 0 4px color-mix(in srgb, var(--danger) 18%, transparent); }
[data-connection-state="offline"] { color: var(--danger); }
.one-sidebar-overlay { display: none; }
.one-mobile-only { display: none; }

.one-main { min-width: 0; }
.one-content { max-width: 1500px; margin: 0 auto; padding: 14px 28px 38px; }
.one-page-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 86px; margin-bottom: 16px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 2px 4px rgba(20,49,81,.03); }
.one-page-header h1, .one-card h2, .one-parcel-panel h2 { margin: 0; letter-spacing: -.025em; }
.one-page-header h1 { font-size: clamp(1.45rem, 2vw, 1.85rem); }
.one-page-header p, .one-card p, .one-parcel-panel p { margin: 5px 0 0; color: var(--muted); line-height: 1.55; }
.one-card { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 2px 4px rgba(20,49,81,.03); }
.one-grid { display: grid; gap: 16px; }
.one-grid-two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.one-action-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.one-action-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--blue) 40%, var(--line)); box-shadow: var(--shadow); }
.one-action-icon { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid color-mix(in srgb, var(--blue) 38%, var(--line)); border-radius: 12px; color: var(--blue); background: var(--blue-soft); font-size: 1.35rem; }
.one-action-icon.teal { color: var(--teal); border-color: color-mix(in srgb, var(--teal) 38%, var(--line)); background: color-mix(in srgb, var(--teal) 10%, var(--surface)); }
.one-action-card h2 { margin-top: 3px; font-size: 1.15rem; }
.one-action-card p { font-size: .87rem; }
.one-action-arrow { color: var(--blue); font-size: 1.4rem; }
.one-eyebrow { color: var(--blue); font-size: .66rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.one-info-panel { display: flex; justify-content: space-between; gap: 28px; margin-top: 16px; }
.one-info-panel > p { max-width: 760px; }
.one-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.one-card-head h2 { margin-top: 3px; font-size: 1.2rem; }
.one-contract-tabs { display: flex; gap: 6px; margin: 0 0 16px; padding: 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.one-contract-tabs a, .one-task-tab { padding: 9px 13px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; font-size: .82rem; font-weight: 750; cursor: pointer; }
.one-contract-tabs a[aria-current="page"], .one-task-tab.active { color: var(--blue); background: var(--blue-soft); }

.one-btn { min-height: 40px; padding: 9px 16px; border: 1px solid transparent; border-radius: 9px; font-weight: 750; cursor: pointer; transition: .16s ease; }
.one-btn:disabled { opacity: .55; cursor: wait; }
.one-btn-primary { color: white; border-color: var(--blue); background: linear-gradient(180deg, color-mix(in srgb, var(--blue) 85%, white), var(--blue-dark)); box-shadow: 0 9px 20px color-mix(in srgb, var(--blue) 24%, transparent); }
.one-btn-primary:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(1.04); }
.one-btn-secondary { color: var(--text); border-color: var(--line-strong); background: var(--surface); }
.one-btn-danger { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); background: color-mix(in srgb, var(--danger) 7%, var(--surface)); }
.one-btn-block { width: 100%; }
.one-form-stack { display: grid; gap: 15px; }
.one-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.one-field { display: grid; gap: 7px; color: var(--muted); font-size: .76rem; font-weight: 700; }
.one-field input, .one-field select, .one-field textarea, .one-address-search input, .one-compact-search input { width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid var(--line-strong); border-radius: 9px; outline: none; color: var(--text); background: var(--surface); }
.one-field input:focus, .one-field select:focus, .one-field textarea:focus, .one-address-search input:focus, .one-compact-search input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 14%, transparent); }
.one-task-filters { margin-bottom: 16px; }
.one-task-list { display: grid; }
.one-task-row { display: grid; grid-template-columns: minmax(220px,1fr) auto auto minmax(150px,auto); gap: 15px; align-items: center; padding: 14px 10px; border-bottom: 1px solid var(--line); }
.one-task-row:hover { background: var(--surface-soft); }.one-task-row.overdue { box-shadow: inset 3px 0 var(--danger); }
.one-task-row strong, .one-task-row small { display: block; }.one-task-row small, .one-task-row time { margin-top: 4px; color: var(--muted); font-size: .72rem; }
.one-task-priority { font-size: .72rem; font-weight: 850; text-transform: uppercase; }.one-task-priority.urgent, .one-task-priority.high { color: var(--danger); }
.one-task-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.one-task-requirement { display: grid; gap: 8px; padding: 10px 0; }.one-task-event { display: grid; grid-template-columns: 150px 1fr auto; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: .78rem; }.one-task-event time { color: var(--muted); }
.one-check { display: flex; align-items: flex-start; gap: 9px; color: var(--muted); font-size: .82rem; }
.one-flash { margin-bottom: 14px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: var(--surface); box-shadow: var(--shadow); }
.one-flash.success { border-color: color-mix(in srgb, var(--teal) 45%, var(--line)); }
.one-flash.error { border-color: color-mix(in srgb, var(--danger) 45%, var(--line)); color: var(--danger); }

.one-profile-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.one-admin-grid { grid-template-columns: minmax(0, 1fr); }
.one-table-wrap { overflow-x: auto; }
.one-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.one-table th { padding: 10px 11px; border-bottom: 1px solid var(--line); color: var(--muted); text-align: left; font-size: .69rem; text-transform: uppercase; letter-spacing: .06em; }
.one-table td { padding: 12px 11px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.one-table tbody tr:last-child td { border-bottom: 0; }
.one-table code { color: var(--blue); }
.one-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--surface-soft); font-size: .7rem; font-weight: 700; }
.one-badge.active { color: var(--teal); border-color: color-mix(in srgb, var(--teal) 35%, var(--line)); }
.one-badge.inactive { color: var(--danger); }
.one-compact-search { display: block; width: min(320px, 100%); }

.one-dialog { width: min(540px, calc(100vw - 28px)); padding: 0; border: 0; border-radius: 15px; color: var(--text); background: transparent; box-shadow: var(--shadow); }
.one-dialog::backdrop { background: rgba(2, 9, 18, .58); backdrop-filter: blur(3px); }
.one-dialog-card { display: block; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.one-dialog-wide { width: min(720px, calc(100vw - 28px)); }

.one-map-workspace { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); box-shadow: var(--shadow); }
.one-map-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 16px; border-bottom: 1px solid var(--line); }
.one-address-search { flex: 1; max-width: 850px; }
.one-address-search > label { display: block; margin-bottom: 7px; color: var(--muted); font-size: .72rem; font-weight: 800; }
.one-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.one-search-status { min-height: 18px; margin-top: 6px; color: var(--muted); font-size: .72rem; }
.one-search-status.error { color: var(--danger); }
.one-map-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; padding-bottom: 20px; color: var(--muted); font-size: .7rem; }
.one-map-legend span { display: inline-flex; align-items: center; gap: 6px; }
.one-map-legend i { width: 18px; height: 10px; border: 2px solid #27d9ce; background: rgba(39,217,206,.12); }
.one-map-legend i.selected { border-color: #ffd43b; background: rgba(255,212,59,.18); }
.one-map-tools { display: grid; justify-items: end; gap: 9px; min-width: 250px; }
.one-map-tools .one-map-legend { padding-bottom: 0; }
.one-area-resolver { display: grid; justify-items: end; gap: 5px; }
.one-area-resolver small { max-width: 290px; color: var(--muted); font-size: .66rem; text-align: right; }
.one-area-resolver .one-btn:disabled { cursor: not-allowed; opacity: .5; }
.one-map-body { display: grid; grid-template-columns: minmax(0,1fr) 340px; min-height: min(720px, calc(100vh - 252px)); }
.one-map-canvas-wrap { position: relative; min-height: 580px; background: #162436; }
.one-map-canvas { position: absolute; inset: 0; z-index: 1; }
.one-map-loading, .one-map-notice { position: absolute; z-index: 500; left: 50%; transform: translateX(-50%); padding: 8px 12px; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; color: white; background: rgba(8,18,31,.78); backdrop-filter: blur(8px); font-size: .72rem; }
.one-map-loading { top: 15px; }
.one-map-loading::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 7px; border: 2px solid rgba(255,255,255,.4); border-top-color: white; border-radius: 50%; animation: one-spin .8s linear infinite; }
@keyframes one-spin { to { transform: rotate(360deg); } }
.one-map-notice { bottom: 28px; }
.one-parcel-panel { min-width: 0; padding: 20px; border-left: 1px solid var(--line); background: var(--surface); overflow-y: auto; }
.one-parcel-empty { display: grid; justify-items: center; align-content: center; height: 100%; text-align: center; }
.one-parcel-empty p { max-width: 260px; }
.one-parcel-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.one-parcel-address { margin: 14px 0 0 !important; color: var(--text) !important; font-size: .95rem; font-weight: 750; line-height: 1.4 !important; }
.one-parcel-address.unavailable { color: var(--muted) !important; font-weight: 600; }
/* A row of controls that reads as one line: a file and what may be done to it,
   an upload field beside its button. Referenced by templates since Drive first
   shipped, and never actually defined. */
.one-field-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 8px 0; }
.one-field-row > :first-child { margin-right: auto; overflow-wrap: anywhere; }

/* A table cell that opens a detail, without pretending to be a button. */
.one-link { padding: 0; border: 0; background: none; color: var(--teal); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.one-link:hover { text-decoration: underline; }

.one-detail-section { margin-top: 20px; }
.one-detail-section h3 { margin: 0; color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing: .075em; text-transform: uppercase; }
.one-detail-list { margin: 12px 0 0; }
.one-detail-list > div { display: grid; grid-template-columns: 105px minmax(0,1fr); gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.one-detail-list dt { color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.one-detail-list dd { margin: 0; overflow-wrap: anywhere; font-size: .82rem; }
.leaflet-container { font-family: inherit; background: #152335; }
.leaflet-control-layers, .leaflet-bar a { color: #172033; }
.leaflet-tooltip.one-parcel-house-number { padding: 2px 5px; border: 0; border-radius: 5px; color: #fff; background: rgba(8, 18, 31, .86); box-shadow: 0 1px 5px rgba(0, 0, 0, .45); font-size: .7rem; font-weight: 900; line-height: 1.1; pointer-events: none; }
.leaflet-tooltip.one-parcel-house-number::before { display: none; }
.one-hide-parcel-house-numbers .leaflet-tooltip.one-parcel-house-number { display: none; }

.one-login-page { display: grid; place-items: center; min-height: 100vh; padding: 24px; background: radial-gradient(circle at 15% 15%, color-mix(in srgb, var(--blue) 13%, transparent), transparent 36%), var(--bg); }
.one-login-shell { width: min(920px, 100%); display: grid; grid-template-columns: 1fr 420px; gap: 80px; align-items: center; }
.one-login-brand { display: flex; align-items: center; gap: 16px; }
.one-login-brand .one-brand-mark { width: 58px; height: 58px; font-size: 1.3rem; }
.one-brand-name { font-size: 2rem; font-weight: 900; }
.one-brand-subtitle { color: var(--muted); }
.one-login-card { padding: 30px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); }
.one-login-card h1 { margin: 5px 0 0; font-size: 1.9rem; }
.one-login-card > p { margin: 8px 0 22px; color: var(--muted); line-height: 1.5; }
.one-alert { margin: 0 0 15px; padding: 11px 13px; border-radius: 9px; font-size: .8rem; }
.one-alert-error { color: var(--danger); border: 1px solid color-mix(in srgb, var(--danger) 40%, var(--line)); background: color-mix(in srgb, var(--danger) 7%, var(--surface)); }
.one-login-help { margin: 18px 0 0 !important; font-size: .75rem; text-align: center; }

@media (max-width: 980px) {
    .one-shell { grid-template-columns: 1fr; }
    .one-mobile-only { display: inline-grid; }
    .one-sidebar { position: fixed; z-index: 1100; inset: 0 auto 0 0; top: 0; width: min(304px, 88vw); height: 100vh; padding-top: 82px; transform: translateX(-105%); transition: transform .23s ease; box-shadow: var(--shadow); }
    .one-sidebar.open { transform: translateX(0); }
    .one-sidebar-overlay { display: block; position: fixed; z-index: 1050; inset: 0; border: 0; background: rgba(2,9,18,.54); }
    .one-content { padding-inline: 16px; }
    .one-map-body { grid-template-columns: 1fr; }
    .one-parcel-panel { min-height: 280px; border-left: 0; border-top: 1px solid var(--line); }
    .one-map-canvas-wrap { min-height: 520px; }
}

@media (max-width: 700px) {
    .one-topbar { padding-inline: 12px; }
    .one-brand small, .one-user-copy, .one-current-page, .one-topbar-divider { display: none; }
    /* At this width the row only fits the context, the actions and the avatar. */
    .one-topbar { gap: 8px; }
    .one-topbar-start { gap: 8px; }
    .one-topbar-actions { gap: 6px; }
    .one-context-trigger { max-width: 100%; padding: 6px 8px; }
    .one-context-trigger .one-badge-owner { display: none; }
    .one-icon-btn { width: 36px; height: 36px; }
    .one-content { padding: 14px 12px 28px; }
    .one-page-header { align-items: flex-start; flex-direction: column; }
    .one-grid-two, .one-profile-grid, .one-form-grid { grid-template-columns: 1fr; }
    .one-info-panel, .one-map-toolbar { align-items: stretch; flex-direction: column; }
    .one-map-tools, .one-area-resolver { justify-items: start; }
    .one-map-legend { justify-content: flex-start; padding-bottom: 0; }
    .one-area-resolver small { text-align: left; }
    .one-search-row { grid-template-columns: 1fr; }
    .one-map-canvas-wrap { min-height: 460px; }
    .one-login-shell { grid-template-columns: 1fr; gap: 28px; }
    .one-login-brand { justify-content: center; }
    .one-login-card { padding: 24px; }
    .one-task-row { grid-template-columns: 1fr auto; }.one-task-row time { grid-column: 1 / -1; }.one-task-event { grid-template-columns: 1fr; gap: 4px; }
}

/* Paging controls, shared by every listing. Hidden by the script whenever one
   page holds everything, so a short list looks exactly as it always did. */
.one-pager { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 14px; font-size: .78rem; color: var(--muted); }
.one-pager button[disabled] { opacity: .45; cursor: not-allowed; }

/* A control that reads as text but acts as a button. Used where the value in a
   cell is itself the way to filter by it. */
.one-linkish { padding: 0; border: 0; background: none; color: var(--blue); font: inherit; cursor: pointer; text-decoration: underline dotted; }
.one-linkish:hover { text-decoration: underline; }

/* The work inbox on Home. Tiles are links, so they must read as links: the
   number is the headline, the label says what it counts, and the note says why
   it matters. Tiles the session may not be told about are removed by the
   script, never dimmed. */
.one-inbox { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 18px; }
.one-stat { display: flex; flex-direction: column; gap: 3px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: inherit; text-decoration: none; box-shadow: 0 2px 4px rgba(20,49,81,.03); transition: border-color var(--one-motion), transform var(--one-motion); }
.one-stat:hover { border-color: var(--blue); transform: translateY(-1px); }
.one-stat-value { font-size: 1.9rem; font-weight: 800; line-height: 1.05; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.one-stat-label { font-size: .82rem; font-weight: 600; }
.one-stat-note { font-size: .72rem; color: var(--muted); }
.one-stat-alert .one-stat-value { color: var(--danger); }
.one-stat-alert { border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); }

@media (prefers-reduced-motion: reduce) {
    .one-stat { transition: none; }
    .one-stat:hover { transform: none; }
}

/* An inline error belongs beside the field that caused it, not in the flash
   strip at the top of a page the dialog is covering. */
.one-field-error { margin: -4px 0 0; color: var(--danger); font-size: .76rem; font-weight: 600; }
