:root {
  color-scheme: light;
  --bg-page: #f3f5f6;
  --bg-surface: #ffffff;
  --bg-elevated: #ffffff;
  --bg-subtle: #eef1f2;
  --bg-input: #ffffff;
  --bg-table-header: #20272b;
  --bg-table-filter: #293136;
  --bg-row-hover: #f7f0e4;
  --border: #d7dde1;
  --border-muted: #e6eaed;
  --border-strong: #bfc8ce;
  --text: #171b1e;
  --text-secondary: #59646d;
  --text-muted: #76828c;
  --text-on-dark: #f7f8f8;
  --accent: #d69124;
  --accent-hover: #bb7612;
  --accent-soft: #f7ead6;
  --success: #087d5e;
  --success-soft: #e6f3ef;
  --warning: #9a6610;
  --warning-soft: #fbf1dc;
  --danger: #b43a3a;
  --danger-soft: #faeaea;
  --focus: rgba(214, 145, 36, .38);
  --shadow-sm: 0 1px 3px rgba(18, 25, 29, .07);
  --radius-sm: 4px;
  --radius: 6px;
  --control-h: 36px;
  --header-h: 60px;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --bg-page: #0f1417;
  --bg-surface: #171d21;
  --bg-elevated: #1b2226;
  --bg-subtle: #20282d;
  --bg-input: #242c31;
  --bg-table-header: #20272b;
  --bg-table-filter: #293136;
  --bg-row-hover: #292820;
  --border: #303a40;
  --border-muted: #273137;
  --border-strong: #465159;
  --text: #f1f3f4;
  --text-secondary: #bac2c8;
  --text-muted: #929da5;
  --text-on-dark: #f7f8f8;
  --accent: #dfa03a;
  --accent-hover: #efb24f;
  --accent-soft: #3b3324;
  --success: #34b98f;
  --success-soft: #102c25;
  --warning: #e0aa4c;
  --warning-soft: #342b1c;
  --danger: #ec7474;
  --danger-soft: #351f21;
  --focus: rgba(223, 160, 58, .42);
  --shadow-sm: none;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
html { background: var(--bg-page); }
body {
  background: var(--bg-page);
  color: var(--text);
  font: 14px/1.45 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button, a, input, select { transition: border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .5; }
a { color: var(--accent-hover); }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible, [role="tab"]:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 1px;
}
.hidden, [hidden] { display: none!important; }
.sr-only { position: absolute!important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.muted { color: var(--text-secondary); }

/* Shared controls */
input:not([type="checkbox"]):not([type="radio"]), select {
  width: 100%;
  height: var(--control-h);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-input);
  color: var(--text);
  padding: 0 10px;
}
input::placeholder { color: var(--text-muted); opacity: .85; }
input:hover, select:hover { border-color: var(--border-strong); }
input:focus, select:focus { border-color: var(--accent); box-shadow: 0 0 0 2px var(--focus); outline: 0; }
input[type="checkbox"], input[type="radio"] { width: 15px; height: 15px; margin: 0; accent-color: var(--accent); }
label { display: grid; gap: 5px; margin: 8px 0; color: var(--text-secondary); font-size: 12px; font-weight: 650; }
label small, .helper { color: var(--text-muted); font-size: 11px; font-weight: 400; }

button, .button {
  min-height: var(--control-h);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  padding: 7px 12px;
  font-weight: 700;
}
.primary, .card > button, .section-actions button:not(.ghost), .login form > button, dialog form > button, #applyControls {
  border-color: var(--accent);
  background: var(--accent);
  color: #171b1e;
}
.primary:hover, .card > button:hover, .section-actions button:not(.ghost):hover, .login form > button:hover, dialog form > button:hover, #applyControls:hover {
  border-color: var(--accent-hover);
  background: var(--accent-hover);
  color: #fff;
}
.ghost, .secondary {
  border-color: var(--border);
  background: transparent;
  color: var(--text);
}
.ghost:hover, .secondary:hover { border-color: var(--border-strong); background: var(--bg-subtle); }
.danger-button { border-color: color-mix(in srgb, var(--danger) 65%, var(--border)); color: var(--danger); }
.danger-button:hover { border-color: var(--danger); background: var(--danger-soft); }
.icon-button {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  min-height: 34px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-subtle);
  color: var(--text);
  padding: 0;
  font-size: 17px;
}
.text-action { min-height: auto; border: 0; background: transparent; color: var(--text-secondary); text-decoration: none; padding: 7px 8px; font-size: 12px; font-weight: 600; }
.text-action:hover { color: var(--accent-hover); }

/* Header */
.portal-header {
  min-height: var(--header-h);
  display: grid;
  grid-template-columns: minmax(250px, auto) auto minmax(150px, 1fr) auto;
  align-items: stretch;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  position:sticky;
  top: 0;
  z-index: 20;
}
.portal-identity { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 0 14px 0 7px; color: var(--text); text-decoration: none; }
.gg-mark { display: grid; place-items: center; flex: 0 0 33px; width: 33px; height: 35px; border-left: 3px solid var(--accent); border-radius: var(--radius); background: #202529; color: #efac42; font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.portal-name { display: block; overflow: hidden; text-overflow: ellipsis; font-size: 14px; font-weight: 750; white-space: nowrap; }
.portal-name small, .portal-identity > span > small { display: block; color: var(--text-muted); font-size: 10px; font-weight: 500; }
.header-page-menu { display: flex; align-items: center; height: 100%; }
.header-create-button { flex: 0 0 38px; width: 38px; height: 38px; min-width: 38px; margin-left: 8px; border: 1px solid color-mix(in srgb, var(--accent), var(--border) 30%); border-radius: 50%; background: var(--accent); color: var(--text-on-dark); box-shadow: var(--shadow-sm); }
.header-create-button:hover { border-color: var(--accent-hover); background: var(--accent-hover); transform: translateY(-1px); }
.header-create-button:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.header-create-button .action-icon { width: 20px; height: 20px; }
.portal-nav { display: flex; height: 100%; }
.portal-nav a { display: flex; align-items: center; padding: 0 18px; border-bottom: 2px solid transparent; color: var(--text-secondary); font-size: 13px; font-weight: 700; text-decoration: none; }
.portal-nav a:hover, .portal-nav a.active { border-color: var(--accent); color: var(--text); }
.header-project-button { justify-self: center; align-self: center; min-height: 32px; border-color: var(--border); background: var(--bg-subtle); color: var(--text); padding: 5px 13px; font-size: 12px; }
.header-project-button:hover, .header-project-button:focus-visible { border-color: var(--border-strong); background: var(--bg-elevated); }
.header-spacer { min-width: 16px; }
.header-actions { display: flex; align-items: center; justify-self: end; gap: 2px; padding: 0 10px; white-space: nowrap; }
.header-actions form { display: inline-flex; margin: 0; }
.user-chip { max-width: 150px; overflow: hidden; text-overflow: ellipsis; border-left: 1px solid var(--border); margin-left: 4px; padding: 5px 4px 5px 10px; color: var(--text-secondary); font-size: 12px; font-weight: 700; }

/* Page hierarchy */
.page-shell { width: min(100%, 1540px); margin: 0 auto; padding: 24px 24px 36px; }
.page-heading { border-left: 3px solid var(--accent); padding: 0 0 0 14px; margin: 0 0 16px; }
.eyebrow { margin: 0 0 5px; color: var(--text-muted); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
h1, h2, h3 { color: var(--text); }
.page-heading h1 { margin: 0 0 5px; font-size: 26px; line-height: 1.15; letter-spacing: -.02em; }
.page-heading > p:last-child { margin: 0; color: var(--text-secondary); font-size: 13px; }
.overview-bar { min-height: 60px; margin-bottom: 5px; }
.overview-bar > p:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0; color: var(--text-secondary); font-size: 12px; }
.active-filter-block { display: flex; align-items: center; gap: 7px; min-width: 0; margin: 0 0 5px 17px; }
.active-filter-summary { display: flex; align-items: center; gap: 4px; min-width: 0; overflow-x: auto; scrollbar-width: thin; }
.filter-chip { flex: 0 0 auto; max-width: 210px; min-height: 25px; overflow: hidden; text-overflow: ellipsis; border: 1px solid var(--border); border-radius: 999px; background: var(--bg-subtle); color: var(--text-secondary); padding: 2px 8px; font-size: 10px; font-weight: 650; white-space: nowrap; }
.filter-chip:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--bg-subtle)); color: var(--text); }
.active-filter-block > #resetFilters { flex: 0 0 auto; min-height: 32px; border-color: var(--accent); background: color-mix(in srgb, var(--accent) 13%, var(--bg-surface)); color: var(--accent-hover); padding: 4px 12px; font-size: 11px; font-weight: 750; white-space: nowrap; }
.active-filter-block > #resetFilters:hover { background: var(--accent); color: #171a1c; }
.saved-view-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; margin-top: 7px; }
.saved-view-actions button { min-height: 31px; padding: 4px 8px; font-size: 11px; }
.card { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); box-shadow: var(--shadow-sm); padding: 18px; }
.card h2 { margin: 0 0 12px; font-size: 16px; }

/* Tabs and metrics */
.project-tabs { display: flex; flex-wrap: nowrap; gap: 0; overflow:auto; scrollbar-width: thin; margin: 0 0 9px; border-bottom: 1px solid var(--border); }
.project-tabs button { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; max-width: 260px; min-height: 39px; overflow: hidden; white-space: nowrap; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: var(--text-secondary); padding: 8px 14px 8px 9px; font-size: 13px; }
.tab-grip { flex: 0 0 auto; color: var(--text-muted); font-size: 12px; letter-spacing: -3px; transform: rotate(90deg); }
.tab-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.project-tabs button:hover { background: var(--bg-subtle); color: var(--text); }
.project-tabs button.active { border-color: var(--accent); color: var(--text); }
.project-tabs .all-projects-tab { padding-left: 14px; font-weight: 750; }
.project-tabs button[draggable="true"] { cursor: grab; }
.project-tabs button.dragging { opacity: .45; cursor: grabbing; }
.project-tabs button.drag-target { background: color-mix(in srgb, var(--accent) 12%, var(--bg-subtle)); box-shadow: inset 2px 0 var(--accent); }
.metrics { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 8px; margin: 0 0 9px; }
.metrics div { position: relative; min-height: 60px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); padding: 8px 13px; }
.metrics div::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--accent); }
.metrics span { display: block; margin-bottom: 3px; color: var(--text-muted); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.metrics b { display: block; font-size: 21px; line-height: 1.15; font-variant-numeric: tabular-nums; }

/* Feedback */
.notice, .state, .connection-status { border-radius: var(--radius-sm); font-size: 12px; }
.notice { min-height: 35px; margin: 0 0 10px; border: 1px solid color-mix(in srgb, var(--success) 38%, var(--border)); border-left: 3px solid var(--success); background: var(--success-soft); color: var(--success); padding: 8px 11px; font-weight: 700; }
.compact-notice { min-height: 30px; padding: 5px 9px; }
.state { margin: 12px 0; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-secondary); padding: 9px 11px; }
.notice.error, .state.error, .connection-status.error, .error { border-color: color-mix(in srgb, var(--danger) 55%, var(--border)); background: var(--danger-soft); color: var(--danger); }
.notice.warning, .state.warning { border-color: color-mix(in srgb, var(--warning) 55%, var(--border)); background: var(--warning-soft); color: var(--warning); }
.empty-state { padding: 38px 20px; color: var(--text-secondary); text-align: center; white-space: normal; }
.empty-state strong { display: block; margin-bottom: 3px; color: var(--text); }
.field-hint { margin: -5px 0 10px; color: var(--text-muted); font-size: 11px; line-height: 1.4; }

/* Report and dense table */
.report-layout { display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: 12px; align-items: start; }
.report-card, .report-controls { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-surface); box-shadow: var(--shadow-sm); }
.report-card { min-width: 0; overflow: hidden; }
.report-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 50px; padding: 8px 13px; border-bottom: 1px solid var(--border); }
.report-heading h2, .report-controls h2 { margin: 0; font-size: 16px; }
.report-heading > span { flex: 0 0 auto; color: var(--text-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.table-wrap { overflow:auto; max-height: calc(100vh - 282px); min-height: 300px; scrollbar-color: var(--border-strong) var(--bg-subtle); }
table { width: 100%; min-width: 1040px; border-collapse: collapse; white-space: nowrap; }
th, td { max-width: 320px; overflow: hidden; text-overflow: ellipsis; border-bottom: 1px solid var(--border-muted); padding: 8px 11px; text-align: left; }
thead th { position:sticky; top: 0; z-index: 3; height: 35px; background: var(--bg-table-header); color: var(--text-on-dark); font-size: 10px; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.column-heading-controls { display: flex; align-items: center; gap: 3px; min-width: 0; }
.sort-button { display: flex; flex: 1 1 auto; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; min-height: 29px; border: 0; background: transparent; color: inherit; padding: 2px 0; font: inherit; letter-spacing: inherit; text-align: left; text-transform: inherit; }
.sort-button::after { content: "↕"; color: #aeb7bc; font-size: 11px; }
.sort-button[data-direction="asc"]::after { content: "↑"; color: var(--accent); }
.sort-button[data-direction="desc"]::after { content: "↓"; color: var(--accent); }
.sort-button:disabled { cursor: default; color: var(--text-on-dark); opacity: .72; }
.sort-button:disabled::after { content: "→"; color: var(--accent); opacity: .8; }
.group-button { flex: 0 0 24px; width: 24px; min-height: 24px; border: 1px solid transparent; border-radius: var(--radius-sm); background: transparent; color: #aeb7bc; padding: 0; font-size: 14px; line-height: 1; }
.group-button:hover { border-color: #68737a; color: #fff; }
.group-button[aria-pressed="true"] { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 18%, transparent); color: var(--accent); }
.sort-button:focus-visible, .group-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
thead tr:nth-child(2) th { top: 35px; height: 31px; padding: 3px 5px; background: var(--bg-table-filter); }
thead input:not([type="checkbox"]):not([type="radio"]) { height: 29px; min-width: 100px; border-color: #59636a; background: #3c454a; color: #fff; padding: 0 8px; font-size: 11px; font-weight: 500; text-transform: none; }
thead input::placeholder { color: #bdc5ca; }
tbody td { height: 38px; color: var(--text); font-size: 12px; }
tbody tr:nth-child(even) { background: color-mix(in srgb, var(--bg-subtle) 52%, transparent); }
tbody tr:hover { background: var(--bg-row-hover); }
.group-row { background: var(--bg-table-filter); }
.group-row:hover { background: var(--bg-table-filter); }
.group-row td { height: 31px; border-left: 3px solid var(--accent); color: var(--text-secondary); font-size: 11px; font-weight: 750; letter-spacing: .02em; }
.group-row td span:last-child { float: right; margin-left: 12px; color: var(--text-muted); font-size: 10px; font-weight: 600; white-space: nowrap; }
td a { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; color: var(--accent-hover); text-decoration: none; }
td a:hover, td a:focus-visible { text-decoration: underline; }

/* Report controls */
.report-controls { padding: 15px; }
.controls-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.collapse-button { flex: 0 0 29px; width: 29px; height: 29px; min-height: 29px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-subtle); color: var(--text-secondary); padding: 0; font-size: 19px; line-height: 1; }
.collapse-button:hover { border-color: var(--accent); color: var(--accent-hover); }
.control-section { border: 0; border-top: 1px solid var(--border-muted); border-radius: 0; padding-top: 10px; margin-top: 10px; }
.control-section h3 { margin: 0 0 7px; font-size: 12px; }
.control-section > summary { display: flex; align-items: center; justify-content: space-between; min-height: 28px; color: var(--text-secondary); cursor: pointer; font-size: 11px; font-weight: 800; letter-spacing: .045em; list-style: none; text-transform: uppercase; }
.control-section > summary::-webkit-details-marker { display: none; }
.control-section > summary::after { content: "▸"; color: var(--text-muted); font-size: 12px; }
.control-section[open] > summary::after { content: "▾"; }
.control-section > summary:hover { color: var(--text); }
.control-section[open] > summary { margin-bottom: 6px; }
.search-section label { margin: 0; }
.search-section label > span { color: var(--text-secondary); font-size: 11px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.filter-count { color: var(--accent-hover); font-variant-numeric: tabular-nums; }
.control-section > label, .choice-list label, .column-list > label { display: flex; align-items: center; gap: 7px; margin: 6px 0; color: var(--text-secondary); font-size: 12px; font-weight: 550; }
.control-section > label:has(input:not([type="checkbox"])) { display: grid; }
.choice-list { max-height: 160px; overflow:auto; border: 1px solid var(--border-muted); border-radius: var(--radius-sm); background: var(--bg-subtle); margin: 7px 0; padding: 3px; }
.choice-list label { align-items: flex-start; margin: 0; border-radius: 3px; padding: 5px 6px; }
.choice-list label:hover { background: var(--bg-surface); }
.choice-list label small { display: block; color: var(--text-muted); font-size: 10px; }
.inline-actions, .controls-actions, .connection-actions, .section-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.inline-actions button { min-height: 30px; padding: 4px 9px; font-size: 11px; }
.controls-actions { margin-top: 13px; }
.controls-actions button { flex: 1; }
.column-list { max-height: 190px; overflow:auto; padding-right: 2px; }
.column-choice { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 3px; min-height: 30px; }
.column-choice label { display: flex; align-items: center; min-width: 0; gap: 7px; margin: 0; color: var(--text-secondary); font-size: 12px; }
.tiny-button { width: 30px; height: 30px; min-height: 30px; border: 1px solid var(--border); border-radius: 3px; background: transparent; color: var(--text-secondary); padding: 0; }
.tiny-button:hover { border-color: var(--accent); color: var(--accent-hover); }
.full { width: 100%; }
.report-layout { transition: grid-template-columns .18s ease; }
.report-layout.controls-collapsed { grid-template-columns: minmax(0, 1fr) 42px; }
.report-layout.controls-collapsed .report-controls { padding: 6px; }
.report-layout.controls-collapsed #controlsBody, .report-layout.controls-collapsed .controls-heading > div { display: none; }
.report-layout.controls-collapsed .collapse-button { transform: rotate(180deg); }

/* Administration */
.admin-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(260px, .62fr); gap: 12px; margin-top: 14px; align-items: start; }
.projects-admin { grid-column: 1 / -1; }
.item { border-top: 1px solid var(--border-muted); padding: 10px 0; }
.item:first-child { border-top: 0; }
.item-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
.checks { grid-column: 1 / -1; max-height: 170px; overflow:auto; border: 1px solid var(--border-muted); border-radius: var(--radius-sm); background: var(--bg-subtle); padding: 4px; }
.checks label { display: flex; align-items: center; gap: 7px; margin: 0; border-radius: 3px; padding: 5px 6px; font-weight: 550; }
.checks label:hover { background: var(--bg-surface); }
.connections-list { display: grid; gap: 9px; }
.connection-card { border-top: 1px solid var(--border); padding: 13px 0 3px; }
.connection-card:first-child { border-top: 0; padding-top: 2px; }
.connection-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px 10px; }
.connection-grid label { margin: 0; }
.enabled-field { display: flex!important; align-items: center; align-self: end; min-height: var(--control-h); }
.connection-actions, .section-actions { justify-content: flex-end; margin-top: 9px; }
.connection-status { min-height: 18px; margin: 6px 0 0; color: var(--text-secondary); }
.project-configuration { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 500px; overflow:auto; margin: 10px 0; }
.project-config-row { display: grid; grid-template-columns: minmax(150px, .8fr) 1fr 1.35fr; gap: 9px; align-items: end; border-top: 1px solid var(--border-muted); padding: 10px 3px; }
.project-config-row:nth-child(-n+2) { border-top: 0; }
.project-config-row > div:first-child { align-self: center; min-width: 0; }
.project-config-row > div:first-child strong, .project-config-row > div:first-child span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-config-row > div:first-child span { color: var(--text-muted); font-size: 11px; }
.project-config-row label { margin: 0; }

/* Dialogs and auth */
dialog { width: min(540px, 92vw); max-height: 82vh; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-elevated); color: var(--text); box-shadow: 0 18px 55px rgba(0, 0, 0, .34); padding: 18px; }
dialog::backdrop { background: rgba(4, 7, 9, .58); }
.dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.dialog-head h2 { margin: 0; font-size: 17px; }
.login { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login .card { width: min(390px, 94vw); padding: 24px; }
.login h1 { margin: 22px 0 13px; font-size: 22px; }
.login form { display: grid; gap: 7px; }
.admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.login-activity-dialog { width: min(1040px, 96vw); max-height: 88vh; overflow: auto; }
.login-activity-table { width: 100%; min-width: 720px; }
.login-activity-table td { padding: 9px 10px; }
.login-result { display: inline-flex; border: 1px solid var(--border-strong); border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 750; }
.login-result.success { border-color: var(--success); color: var(--success); }
.login-result.failure { border-color: var(--danger); color: var(--danger); }
.brand { display: flex; align-items: center; gap: 10px; }
.brand b { display: grid; place-items: center; width: 34px; height: 36px; border-left: 3px solid var(--accent); border-radius: var(--radius); background: #202529; color: #efac42; }
.brand span { font-weight: 750; }
.brand small { display: block; color: var(--accent-hover); font-size: 10px; font-weight: 500; }
.project-option { display: block; width: 100%; border: 0; border-bottom: 1px solid var(--border-muted); border-radius: 0; background: transparent; color: var(--text); padding: 10px; text-align: left; }
.project-option:hover { background: var(--bg-subtle); }

@media (max-width: 1180px) {
  .portal-header { grid-template-columns: minmax(220px, auto) auto minmax(130px, 1fr) auto; }
  .header-actions { min-width: 0; overflow-x:auto; }
  .report-layout { grid-template-columns: minmax(0, 1fr) 270px; }
  .admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .connection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 840px) {
  :root { --header-h: 56px; }
  .portal-header { grid-template-columns: minmax(190px, 1fr) auto auto; grid-template-rows: var(--header-h) auto; }
  .header-page-menu { grid-column: 2; grid-row: 1; }
  .header-project-button { grid-column: 3; grid-row: 1; margin-right: 7px; }
  .header-spacer { display: none; }
  .header-actions { grid-column: 1 / -1; grid-row: 2; justify-content: flex-end; min-height: 43px; border-top: 1px solid var(--border-muted); }
  .page-shell { padding: 18px 14px 28px; }
  .report-layout { grid-template-columns: 1fr; }
  .report-controls { grid-row: 1; }
  .report-layout.controls-collapsed { grid-template-columns: minmax(0, 1fr) 42px; }
  .report-layout.controls-collapsed .report-card { grid-column: 1; grid-row: 1; }
  .report-layout.controls-collapsed .report-controls { grid-column: 2; grid-row: 1; }
  .admin-grid { grid-template-columns: 1fr; }
  .projects-admin { grid-column: 1; }
  .project-configuration { grid-template-columns: 1fr; }
  .project-config-row:nth-child(2) { border-top: 1px solid var(--border-muted); }
}

@media (max-width: 560px) {
  .portal-identity { padding-right: 7px; }
  .portal-name { max-width: 150px; }
  .portal-nav a { padding: 0 11px; }
  .header-project-button { min-width: 0; padding-inline: 8px; font-size: 11px; }
  .header-actions { justify-content: flex-start; padding: 3px 7px; }
  .header-actions .user-chip { display: none; }
  .text-action { padding-inline: 6px; }
  .page-heading h1 { font-size: 23px; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .metrics div { min-height: 66px; padding: 10px 12px; }
  .report-layout.controls-collapsed { display: grid; }
  .table-wrap { max-height: 62vh; }
  .item-grid, .connection-grid, .project-config-row { grid-template-columns: 1fr; }
  .section-actions > button { flex: 1; }
  dialog { padding: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto!important; transition: none!important; animation: none!important; }
}

/* Administration default-column dropdown */
.column-dropdown { position: relative; align-self: end; min-width: 0; }
.column-dropdown summary { height: var(--control-h); display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-input); color: var(--text-secondary); cursor: pointer; padding: 0 10px; font-size: 12px; font-weight: 650; list-style: none; }
.column-dropdown summary::-webkit-details-marker { display: none; }
.column-dropdown summary::after { content: "▾"; color: var(--text-muted); }
.column-dropdown[open] summary { border-color: var(--accent); box-shadow: 0 0 0 2px var(--focus); }
.column-dropdown[open] summary::after { transform: rotate(180deg); }
.column-dropdown-panel { position: absolute; z-index: 12; inset: calc(100% + 4px) 0 auto auto; width: min(360px, 85vw); max-height: 330px; overflow:auto; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-elevated); box-shadow: 0 12px 30px rgba(0, 0, 0, .2); padding: 8px; color: var(--text-secondary); font-size: 12px; }
.default-column-list { display: grid; gap: 1px; max-height: 245px; overflow:auto; margin-bottom: 7px; }
.default-column-list label { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: center; gap: 7px; margin: 0; border-radius: 3px; padding: 5px 6px; font-weight: 550; }
.default-column-list label:hover { background: var(--bg-subtle); }
.default-column-list label small { grid-column: 2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }

/* Wide task workspace and table utilities */
.task-page { width: 100%; max-width: none; padding: 14px 18px 28px; }
.report-main { min-width: 0; }
.report-main .page-heading { margin-top: 0; }
.table-scroll-control { display: flex; align-items: center; min-width: 0; height: 11px; border-bottom: 1px solid var(--border-muted); background: var(--bg-subtle); }
.table-top-scroll { flex: 1 1 auto; min-width: 0; height: 10px; overflow-x:auto; overflow-y: hidden; scrollbar-color: var(--text-muted) var(--bg-subtle); }
.table-top-scroll > div { height: 1px; }
.table-top-scroll::-webkit-scrollbar { height: 9px; }
.table-top-scroll::-webkit-scrollbar-thumb { border: 2px solid var(--bg-subtle); border-radius: 6px; background: var(--text-muted); }
.table-scroll-control.hidden { display: none; }
.column-name { width: 224px; min-width: 224px; max-width: 224px; }
tbody td.column-name { height: auto; min-height: 38px; white-space: normal; overflow-wrap: anywhere; text-overflow: clip; line-height: 1.35; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.table-wrap { user-select: text; }
.task-row { cursor: pointer; }
.task-row:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.tag-list, .user-list { display: flex; align-items: center; gap: 4px; max-width: 100%; flex-wrap: wrap; white-space: normal; }
.task-tag, .task-user { display: inline-flex; align-items: center; max-width: 180px; overflow: hidden; text-overflow: ellipsis; border-radius: 999px; padding: 1px 7px; font-size: 10px; line-height: 1.55; white-space: nowrap; }
.task-tag { border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--border)); background: color-mix(in srgb, var(--accent) 9%, var(--bg-subtle)); color: var(--text-secondary); }
.task-user { border: 1px solid var(--border-strong); background: var(--bg-subtle); color: var(--text); }
.rich-preview { max-width: 300px; height: auto; white-space: normal; overflow-wrap: anywhere; line-height: 1.35; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.column-filter-button { width: 100%; min-height: 23px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid #50595e; border-radius: 3px; background: #343c40; color: #cbd2d6; padding: 2px 6px; font-size: 9px; font-weight: 600; text-align: left; }
.column-filter-button::after { content: "▾"; float: right; color: #abb4b9; }
.column-filter-button:hover { border-color: var(--accent); color: #fff; }
.filter-dialog { width: min(430px, 94vw); }
.filter-values { max-height: 320px; overflow:auto; border: 1px solid var(--border-muted); border-radius: var(--radius-sm); background: var(--bg-subtle); padding: 4px; }
.filter-values label { display: flex; align-items: center; gap: 8px; margin: 0; border-radius: 3px; padding: 6px; font-weight: 550; }
.filter-values label:hover { background: var(--bg-surface); }
.filter-values label span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; user-select: text; }
.dialog-actions { display: grid; grid-template-columns: auto auto 1fr auto auto; align-items: center; gap: 6px; margin-top: 12px; }
.task-details { width: min(1480px, 98vw); max-height: 94vh; overflow: auto; }
.detail-dialog-head { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 20px; }
.detail-heading { grid-column: 1; min-width: 0; }
.detail-title-stack { display: grid; gap: 4px; }
.detail-header-technical { display: grid; grid-column: 2; align-content: end; gap: 4px; min-width: 0; padding-top: 20px; }
.detail-heading-value { display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: center; gap: 2px 5px; min-width: 0; }
.detail-heading-value > span, .detail-status > span { grid-column: 1 / -1; color: var(--text-muted); font-size: 9px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.detail-heading-value strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--text); font-size: 12px; white-space: nowrap; user-select: text; }
.detail-name-value strong { font-size: 18px; }
.detail-head-actions { display: flex; grid-column: 3; align-items: center; justify-content: flex-end; gap: 7px; }
.detail-copy-button { width: 28px; min-height: 26px; border: 1px solid transparent; border-radius: 3px; background: transparent; color: var(--text-muted); padding: 0; font-size: 15px; }
.detail-copy-button:hover:not(:disabled), .detail-copy-button:focus-visible { border-color: var(--accent); color: var(--accent-hover); }
.detail-copy-button:disabled { opacity: .3; cursor: default; }
.detail-content { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; align-items: start; }
.detail-task-information, .detail-project-column, .detail-comments { min-width: 0; }
.detail-content h3 { margin: 0 0 7px; font-size: 13px; }
.detail-status { display: grid; gap: 3px; margin-bottom: 14px; border: 1px solid var(--accent); border-left-width: 4px; border-radius: var(--radius-sm); background: color-mix(in srgb, var(--accent) 12%, var(--bg-subtle)); padding: 9px 11px; }
.detail-status strong { color: var(--text); font-size: 15px; }
.detail-fields { margin: 0; border-top: 1px solid var(--border); user-select: text; }
.detail-fields > div { display: grid; grid-template-columns: minmax(130px, .38fr) minmax(0, 1fr); gap: 12px; align-items: start; border-bottom: 1px solid var(--border-muted); padding: 9px 4px; }
.detail-fields dt { color: var(--text-muted); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.detail-fields dd { margin: 0; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; cursor: text; }
.button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.empty-inline { margin: 0; border-top: 1px solid var(--border); padding: 12px 4px; color: var(--text-muted); }
.detail-description { grid-column: 1 / 3; margin-top: 2px; }
.detail-comments { position: relative; min-width: 0; border-left: 1px solid var(--border); padding-left: 20px; }
.comments-expand-button { position: absolute; top: 0; left: -16px; z-index: 1; width: 30px; min-height: 30px; border: 1px solid var(--border-strong); border-radius: 50%; background: var(--bg-elevated); color: var(--text-secondary); padding: 0; font-size: 16px; }
.comments-expand-button:hover, .comments-expand-button:focus-visible { border-color: var(--accent); color: var(--accent-hover); }
.detail-content.comments-expanded { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-content.comments-expanded .detail-comments { grid-column: 1 / -1; grid-row: 1; border-left: 0; border-bottom: 1px solid var(--border); padding: 0 0 20px; }
.detail-content.comments-expanded .comments-expand-button { left: 0; }
.detail-content.comments-expanded .detail-task-information { grid-column: 1; grid-row: 2; }
.detail-content.comments-expanded .detail-project-column { grid-column: 2; grid-row: 2; }
.detail-content.comments-expanded .detail-description { grid-column: 1 / -1; grid-row: 3; }
.prose-value { min-height: 54px; border: 1px solid var(--border-muted); border-radius: var(--radius-sm); background: var(--bg-subtle); padding: 11px 12px; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; user-select: text; }
.task-rich-text { color: var(--text); white-space: normal; overflow-wrap: anywhere; user-select: text; }
.task-rich-text p { margin: 0 0 .7em; }
.task-rich-text p:last-child { margin-bottom: 0; }
.task-rich-text ul, .task-rich-text ol { margin: .4em 0 .8em; padding-left: 1.6em; }
.task-rich-text blockquote { margin: .7em 0; border-left: 3px solid var(--accent); padding: .2em .8em; color: var(--text-secondary); }
.task-rich-text code, .task-rich-text pre { border-radius: 3px; background: var(--bg-page); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.task-rich-text code { padding: .1em .3em; }
.task-rich-text pre { overflow: auto; padding: .7em; white-space: pre-wrap; }
.task-rich-text a { color: var(--accent-hover); }
.task-rich-text table { display: block; max-width: 100%; overflow: auto; border-collapse: collapse; }
.task-rich-text th, .task-rich-text td { border: 1px solid var(--border); padding: 4px 6px; white-space: normal; }
.section-title { display: flex; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--border); }
.comments-list { max-height: calc(94vh - 180px); overflow: auto; color: var(--text-secondary); user-select: text; }
.comments-list article { padding: 10px 4px; border-bottom: 1px solid var(--border-muted); }
.comments-list article p { margin: 5px 0 0; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; }
.comment-meta { color: var(--text-muted); font-size: 11px; font-weight: 700; }

@media (max-width: 840px) {
  .task-page { padding: 12px; }
  .report-main { grid-row: 2; }
  .report-controls { grid-row: 1; }
  .report-layout.controls-collapsed .report-main { grid-column: 1; grid-row: 1; }
  .detail-head-actions { flex-wrap: wrap; }
  .detail-content { grid-template-columns: 1fr; }
  .detail-content.comments-expanded { grid-template-columns: 1fr; }
  .detail-content.comments-expanded .detail-comments { grid-column: 1; grid-row: 1; }
  .detail-content.comments-expanded .detail-task-information { grid-column: 1; grid-row: 2; }
  .detail-content.comments-expanded .detail-project-column { grid-column: 1; grid-row: 3; }
  .detail-content.comments-expanded .detail-description { grid-column: 1; grid-row: 4; }
  .detail-description { grid-column: auto; }
  .detail-comments { border-left: 0; border-top: 1px solid var(--border); padding: 16px 0 0; }
  .comments-list { max-height: 360px; }
}
@media (max-width: 560px) {
  .detail-dialog-head { grid-template-columns: 1fr; }
  .detail-heading, .detail-header-technical, .detail-head-actions { grid-column: 1; }
  .detail-header-technical { padding-top: 0; }
  .detail-head-actions { width: 100%; }
  .detail-fields > div { grid-template-columns: 1fr; gap: 4px; }
  .detail-fields dt { grid-column: 1 / -1; }
  .dialog-actions { grid-template-columns: 1fr 1fr; }
  .dialog-actions span { display: none; }
}
.settings-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(420px,2fr);gap:1rem}.odoo-account-card{border-top:1px solid var(--line);padding:1rem 0}.task-edit-form{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.35fr);gap:1rem 1.25rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:var(--bg-subtle)}.task-edit-form .edit-description,.task-edit-form .dialog-actions,.task-edit-form>[role=status]{grid-column:1/-1}.edit-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.edit-field-grid label{min-width:0}.edit-field-grid input,.edit-field-grid select{width:100%}.edit-field-grid select[multiple]{min-height:90px}.readonly-edit-field output{display:block;padding:.55rem 0;color:var(--text-secondary)}.readonly-edit-field span::after{content:' · read only';font-weight:400;color:var(--text-muted)}.rich-edit-control{min-height:150px;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);overflow:auto}.rich-edit-control:focus{outline:3px solid var(--focus);border-color:var(--accent)}@media(max-width:800px){.settings-grid,.task-edit-form,.edit-field-grid{grid-template-columns:1fr}}
.action-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-action{width:var(--control-h);min-width:var(--control-h);height:var(--control-h);padding:8px;display:inline-grid;place-items:center}.activity-cell{position:relative;display:inline-grid;place-items:center;width:34px;height:34px;padding:7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-muted)}.activity-cell svg,.activity-item svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.activity-overdue{color:var(--danger)}.activity-today{color:var(--warning)}.activity-planned{color:var(--success)}.activity-count{position:absolute;right:-5px;top:-6px;min-width:17px;padding:1px 4px;border-radius:8px;background:var(--bg-elevated);border:1px solid currentColor;font-size:10px}.activity-list{display:grid;gap:8px}.activity-item{border-left:3px solid currentColor;padding:8px;background:var(--bg-subtle)}.activity-item>div{display:flex;align-items:center;gap:8px}.activity-item>div span{margin-left:auto;color:var(--text-secondary);font-size:12px}.activity-item p{margin:5px 0}.detail-activities{margin-top:20px}.activity-dialog{width:min(620px,calc(100vw - 24px))}.activity-dialog form{display:grid;gap:10px}.column-activity{text-align:center}@media(prefers-reduced-motion:reduce){button,a,input,select{transition:none!important}}

/* v2.2 compact shared surfaces and controls */
:root{--surface-page:var(--bg-page);--surface-panel:var(--bg-surface);--surface-control:var(--bg-subtle);--border-subtle:var(--border-muted);--text-primary:var(--text);--state-warning:var(--warning);--state-danger:var(--danger);--state-success:var(--success)}
.settings-grid{align-items:start}.settings-grid>.card,.odoo-account-card{background:var(--surface-panel);color:var(--text-primary)}.odoo-account-card{border-color:var(--border-subtle)}.settings-grid input,.settings-grid select{background:var(--bg-input);color:var(--text);border-color:var(--border)}.settings-grid .state.error{color:var(--state-danger)}
.icon-button,.icon-button--quiet,.icon-button--active,.icon-button--primary,.icon-button--danger{display:inline-grid;place-items:center;width:var(--control-h);min-width:var(--control-h);height:var(--control-h);padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-control);color:var(--text-secondary)}.icon-button--quiet{border-color:transparent;background:transparent}.icon-button--active{border-color:var(--accent);color:var(--accent)}.icon-button--primary{border-color:var(--accent);background:var(--accent);color:#171a1c}.icon-button--danger{border-color:var(--danger);color:var(--danger)}
.column-activity{box-sizing:border-box;width:52px!important;min-width:52px!important;max-width:52px!important;text-align:center;padding-left:5px!important;padding-right:5px!important}.activity-heading-button{justify-content:center}.activity-heading-button .action-icon{width:16px;height:16px}.activity-cell{margin-inline:auto;background:transparent;border-color:transparent}.activity-cell:hover,.activity-cell:focus-visible{border-color:currentColor;background:var(--surface-control)}
.column-heading-controls{gap:1px}.group-button{opacity:.35}.column-heading-controls:hover .group-button,.group-button:focus-visible,.group-button[aria-pressed="true"]{opacity:1}.group-button[aria-pressed="true"]{border-color:transparent;background:transparent;color:var(--accent)}.sort-button::after{opacity:.28}.sort-button[data-direction]::after{opacity:1}.sort-button[data-direction=""]::after{opacity:.28}thead th:hover .sort-button::after,.sort-button:focus-visible::after{opacity:.8}
.active-filter-block>#resetFilters{width:32px;min-width:32px;height:32px;padding:7px;border-color:transparent;background:transparent;color:var(--text-muted)}.active-filter-block>#resetFilters:hover{background:var(--surface-control);color:var(--accent)}.filter-chip{min-height:28px;border-radius:var(--radius-sm);background:var(--surface-control)}
.saved-view-actions{display:flex;gap:5px}.saved-view-actions button{flex:0 0 auto}.tab-grip{opacity:.42;font-size:10px}.project-tabs button:hover .tab-grip,.project-tabs button:focus-visible .tab-grip{opacity:.7}.metrics div{display:grid;align-content:center;min-height:58px;padding-block:7px}.report-controls{padding:13px}.control-section{padding-top:8px;margin-top:8px}
.detail-dialog-head{grid-template-columns:minmax(0,1fr) minmax(280px,1fr) auto}.detail-header-technical{align-content:start;padding-top:0}.detail-status{margin:0 0 5px;padding:6px 9px;border-left-width:3px}.detail-status strong{font-size:13px}.detail-content{grid-template-columns:minmax(220px,260px) minmax(240px,1fr) minmax(260px,1fr) minmax(300px,1.1fr);gap:20px}.detail-activities{grid-column:1;grid-row:1;align-self:stretch;margin:0 0 0 -20px;border-left:3px solid var(--accent);border-right:1px solid var(--border);background:var(--surface-control);padding:12px 14px 14px 17px}.detail-task-information{grid-column:2}.detail-project-column{grid-column:3}.detail-comments{grid-column:4}.detail-description{grid-column:1/-1}.activity-item{border-left-width:2px;background:transparent;padding:7px 3px 7px 8px}.activity-item>div{display:grid;grid-template-columns:18px minmax(0,1fr)}.activity-item>div span{grid-column:2;margin:0;font-size:10px}.activity-item p{margin:3px 0 0 26px;font-size:12px}
.detail-content.comments-expanded{grid-template-columns:minmax(220px,260px) repeat(2,minmax(0,1fr))}.detail-content.comments-expanded .detail-activities{grid-column:1;grid-row:1/4}.detail-content.comments-expanded .detail-comments{grid-column:2/-1;grid-row:1}.detail-content.comments-expanded .detail-task-information{grid-column:2;grid-row:2}.detail-content.comments-expanded .detail-project-column{grid-column:3;grid-row:2}.detail-content.comments-expanded .detail-description{grid-column:2/-1;grid-row:3}
@media(max-width:1100px){.detail-content{grid-template-columns:220px minmax(0,1fr)}.detail-activities{grid-column:1;grid-row:1/5}.detail-task-information{grid-column:2;grid-row:1}.detail-project-column{grid-column:2;grid-row:2}.detail-comments{grid-column:2;grid-row:3;border-left:0;padding-left:0}.detail-description{grid-column:1/-1;grid-row:5}.detail-content.comments-expanded{grid-template-columns:220px 1fr}.detail-content.comments-expanded .detail-activities{grid-column:1;grid-row:1/5}.detail-content.comments-expanded .detail-comments,.detail-content.comments-expanded .detail-task-information,.detail-content.comments-expanded .detail-project-column{grid-column:2}.detail-content.comments-expanded .detail-description{grid-column:1/-1}}
@media(max-width:760px){.detail-dialog-head{grid-template-columns:1fr}.detail-heading,.detail-header-technical,.detail-head-actions{grid-column:1}.detail-content,.detail-content.comments-expanded{grid-template-columns:1fr}.detail-activities,.detail-content.comments-expanded .detail-activities{grid-column:1;grid-row:auto;margin-left:0}.detail-task-information,.detail-project-column,.detail-comments,.detail-description,.detail-content.comments-expanded .detail-comments,.detail-content.comments-expanded .detail-task-information,.detail-content.comments-expanded .detail-project-column,.detail-content.comments-expanded .detail-description{grid-column:1;grid-row:auto}.settings-grid{grid-template-columns:1fr}}
.odoo-account-card{border-top:1px solid var(--border-subtle)}.task-edit-form{border-bottom:1px solid var(--border-subtle)}

/* v2.3 schema-driven editor remains inside the established detail grid. */
.detail-content>.task-edit-form{grid-column:2/4;grid-row:1;align-self:start;padding:0 0 1rem;background:transparent;border:0}.task-details.editing .detail-comments{grid-column:4;grid-row:1}.task-details.editing .detail-activities{min-height:100%}
@media(max-width:1100px){.detail-content>.task-edit-form{grid-column:2;grid-row:1}.task-details.editing .detail-comments{grid-column:2;grid-row:3}}
@media(max-width:760px){.detail-content>.task-edit-form,.task-details.editing .detail-comments{grid-column:1;grid-row:auto}}

/* v2.4 Contacts and task communication workflows */
.detail-title-stack,.detail-header-technical{display:grid;grid-template-rows:auto auto;gap:8px;align-content:start}.detail-heading-value{min-height:48px}.detail-activities>.detail-status{margin:0 0 14px;padding:8px 10px;border-left:3px solid var(--accent);background:var(--surface-panel)}.comment-composer{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.comment-composer textarea{grid-column:1;width:100%;resize:vertical}.comment-composer button{grid-column:2;align-self:end}.comment-composer [role=status]{grid-column:1/-1;margin:0}.contacts-controls{display:grid;grid-template-columns:minmax(260px,1fr) 180px auto;align-items:end;gap:12px;margin-bottom:12px}.contacts-table tbody tr{cursor:pointer}.contacts-table tbody tr:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.contacts-pager{display:flex;justify-content:center;align-items:center;gap:12px;padding:14px}.contact-dialog{width:min(1050px,calc(100vw - 24px))}.contact-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px}.contact-detail-grid>div{display:grid;gap:3px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}.contact-detail-grid>div strong{font-size:11px;text-transform:uppercase;color:var(--text-muted)}.contact-detail-grid>section{grid-column:1/-1}.contact-children article{padding:8px 0;border-bottom:1px solid var(--border-subtle)}@media(max-width:850px){.contacts-controls,.contact-detail-grid{grid-template-columns:1fr 1fr}.contacts-table th:nth-child(n+5):not(:nth-child(7)),.contacts-table td:nth-child(n+5):not(:nth-child(7)){display:none}}@media(max-width:600px){.contacts-controls,.contact-detail-grid{grid-template-columns:1fr}.contacts-table th:nth-child(n+3),.contacts-table td:nth-child(n+3){display:none}.detail-dialog-head{align-items:start}.detail-title-stack,.detail-header-technical{grid-template-rows:auto}}
@media(min-width:761px){.detail-header-technical{padding-top:25px}}

/* v2.5 controlled chatter attachments */
.comment-composer>#attachCommentFile{grid-column:1;justify-self:start}.comment-file-list{grid-column:1/-1;display:grid;gap:5px}.comment-file-list>div{display:grid;grid-template-columns:18px minmax(0,1fr) 34px;align-items:center;gap:8px;padding:5px 7px;border:1px solid var(--border-subtle);background:var(--surface-control)}.comment-file-list .action-icon,.comment-attachments .action-icon{width:16px;height:16px}.comment-file-list button{width:32px;min-width:32px;height:32px;padding:7px}.comment-file-list small{color:var(--text-muted)}.comment-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.comment-attachments a{padding:4px 7px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-control);font-size:12px}

/* v2.6 creation, geographic contacts, operational row emphasis, compact admin */
.overview-bar{display:flex;align-items:center;justify-content:space-between;gap:18px}.create-task-button{min-width:42px;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.task-row--high-priority{background:color-mix(in srgb,var(--state-warning) 10%,transparent)!important}.task-row--high-priority td:first-child{box-shadow:inset 3px 0 var(--state-warning)}.task-row--overdue{background:color-mix(in srgb,var(--state-danger) 13%,transparent)!important}.task-row--overdue td:first-child{box-shadow:inset 3px 0 var(--state-danger)}.task-row--overdue.task-row--high-priority td:first-child{box-shadow:inset 3px 0 var(--state-danger),inset 6px 0 var(--state-warning)}
.contact-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px}.contact-edit-grid label{display:grid;gap:4px}.contact-map{padding:14px;overflow:hidden}.map-country-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.map-country-list a{border-left:4px solid var(--accent);padding:5px 8px;background:var(--surface-control);border-radius:var(--radius-sm)}
.admin-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.admin-grid>.card{padding:14px}.admin-grid h2{margin:0 0 10px;font-size:16px}.admin-grid label{gap:3px}.admin-grid input,.admin-grid select{min-height:34px}.projects-admin{grid-column:1/-1}.connection-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.item-grid{gap:8px;padding:10px}.section-actions{margin-top:8px}
@media(max-width:700px){.overview-bar{align-items:flex-start}.contact-edit-grid{grid-template-columns:1fr}.contact-map{padding:7px}.admin-grid{grid-template-columns:1fr}}

/* v2.6.1 Contacts geography and Administration refinement */
.contacts-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.contacts-view-switch,.segmented-control{display:inline-flex;align-items:center;padding:3px;border:1px solid var(--border-subtle);border-radius:999px;background:var(--surface-control)}.contacts-view-switch a,.segmented-control button{min-height:32px;padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:700;text-decoration:none}.contacts-view-switch a.active,.segmented-control button.active{background:var(--surface-panel);color:var(--text-primary);box-shadow:0 1px 4px color-mix(in srgb,var(--text-primary) 12%,transparent)}.contacts-view-switch a:focus-visible,.segmented-control button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.active-country-filter{display:inline-flex;align-items:center;margin:0 0 10px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border-subtle));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-control));font-size:12px}.contact-edit-notice{margin:10px 18px 0;padding:8px 10px;border-left:3px solid var(--accent);background:var(--surface-control)}
.contact-map{position:relative;padding:0;overflow:hidden}.map-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface-panel)}.map-summary>div:first-child{display:grid;gap:2px}.map-summary strong{font-size:15px}.map-summary span{font-size:11px;color:var(--text-muted)}.map-legend{display:flex;align-items:center;gap:5px}.map-legend i{display:block;width:13px;height:13px;border-radius:3px;background:var(--accent)}.map-legend i:nth-of-type(1){opacity:.25}.map-legend i:nth-of-type(2){opacity:.45}.map-legend i:nth-of-type(3){opacity:.7}.map-legend i:nth-of-type(4){opacity:1}.map-tooltip{position:absolute;z-index:3;display:grid;gap:2px;min-width:120px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:7px;background:var(--surface-elevated,var(--surface-panel));box-shadow:0 8px 24px color-mix(in srgb,var(--text-primary) 18%,transparent);pointer-events:none;transform:translate(-50%,calc(-100% - 10px));font-size:12px}.map-tooltip span{color:var(--text-muted)}.map-empty{display:grid;place-items:center;gap:5px;min-height:260px;padding:32px;text-align:center}.map-empty span{color:var(--text-muted)}.map-list-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 7px;border-top:1px solid var(--border-subtle)}.map-list-head h2{margin:0;font-size:14px}.map-country-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:6px;margin:0;padding:8px 16px 16px}.map-country-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding:6px 9px;border:1px solid var(--border-subtle);border-left:3px solid var(--country-color,var(--accent));border-radius:6px;background:var(--surface-control);color:var(--text-primary);font-size:12px;text-decoration:none}.map-country-list a strong{display:grid;place-items:center;min-width:24px;height:22px;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--country-color,var(--accent)) 14%,transparent);color:var(--country-color,var(--accent))}.map-country-list a:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface-control))}.map-country-list a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.map-unavailable .map-canvas,.map-unavailable .map-summary,.map-unavailable .map-list-head,.map-unavailable .map-country-list{display:none}
.admin-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:"users users users users users connections connections connections connections connections connections connections" "contacts contacts contacts contacts contacts application application application application chatter chatter chatter" "projects projects projects projects projects projects projects projects projects projects projects projects";align-items:start;gap:12px}.admin-card--users{grid-area:users}.admin-card--connections{grid-area:connections}.admin-card--contacts{grid-area:contacts}.admin-card--application{grid-area:application}.admin-card--chatter{grid-area:chatter}.admin-card--projects{grid-area:projects}.admin-grid>.admin-card{display:grid;align-content:start;gap:9px;padding:14px;border-top:2px solid color-mix(in srgb,var(--accent) 34%,var(--border-subtle))}.admin-card-head{display:flex;align-items:start;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--border-subtle)}.admin-card-head .eyebrow{margin:0 0 2px}.admin-card-head h2{margin:0}.admin-toggle-group{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--surface-control)}.admin-card>.primary,.admin-card>.section-actions{justify-self:start}.admin-card--connections>.section-actions,.admin-card--contacts>.section-actions{justify-self:stretch;justify-content:flex-end;border-top:1px solid var(--border-subtle);padding-top:9px}.admin-card--users>#users{display:grid;gap:8px;max-height:520px;overflow:auto;padding-right:3px}.admin-card--users>.primary{margin-top:2px}.project-grants{max-height:130px;overflow:auto;padding:6px;border:1px solid var(--border-subtle);border-radius:5px}.connection-card{padding:10px;border:1px solid var(--border-subtle);border-radius:7px;background:var(--surface-control)}.connection-actions{padding-top:8px;border-top:1px solid var(--border-subtle)}
@media(max-width:1250px){.admin-grid{grid-template-areas:"users users users users users users connections connections connections connections connections connections" "contacts contacts contacts contacts contacts contacts application application application chatter chatter chatter" "projects projects projects projects projects projects projects projects projects projects projects projects"}}@media(max-width:900px){.admin-grid{grid-template-columns:1fr 1fr;grid-template-areas:"users connections" "contacts application" "chatter chatter" "projects projects"}.map-summary{align-items:flex-start}}@media(max-width:650px){.contacts-heading,.map-summary,.map-list-head{align-items:flex-start;flex-direction:column}.admin-grid{grid-template-columns:1fr;grid-template-areas:"users" "connections" "contacts" "application" "chatter" "projects"}.map-country-list{grid-template-columns:1fr 1fr}.contacts-view-switch{align-self:flex-start}}@media(max-width:420px){.map-country-list{grid-template-columns:1fr}}

.header-primary-actions{position:absolute;left:50%;top:50%;display:flex;align-items:center;transform:translate(-50%,-50%)}.header-task-actions{display:flex;align-items:center;gap:.45rem}.header-primary-actions .header-create-button{width:36px;height:36px;min-width:36px;min-height:36px;margin:0;border-radius:50%}.header-primary-actions .header-create-button .action-icon{width:19px;height:19px}.header-secondary-button,.header-tool-button{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:1px solid var(--border);background:var(--bg-subtle)}.header-tool-button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover);box-shadow:inset 0 -2px var(--accent)}.header-task-menu{position:relative}.header-task-menu>summary{list-style:none}.header-task-menu>summary::-webkit-details-marker{display:none}.header-task-menu[open]>summary{border-color:var(--accent)}.header-task-popover{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:min(360px,90vw);padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow-lg)}.header-task-popover-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:1px 4px 7px}.header-task-popover-title .icon-button{width:28px;height:28px;min-height:28px}.header-task-list{display:grid;max-height:330px;overflow:auto}.header-task-list>button{display:grid;gap:2px;width:100%;min-width:0;border:0;border-top:1px solid var(--border-muted);border-radius:0;background:transparent;padding:7px 6px;text-align:left}.header-task-list>button>span,.header-task-list>button>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-task-list>button:hover,.header-task-list>button:focus-visible{background:var(--bg-subtle)}.header-task-list small{color:var(--text-muted)}.assigned-task-categories{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding-bottom:7px}.assigned-task-categories button{display:flex;justify-content:space-between;min-height:29px;border:0;background:var(--bg-subtle);padding:5px 7px;font-size:11px}.header-task-note{margin:0;padding:5px;color:var(--text-muted);font-size:10px}
/* v2.9 compact task workspace */
.task-page{padding-top:12px}.task-context-row{display:flex;align-items:baseline;gap:12px;min-height:30px;margin-bottom:3px}.task-context-row h1{margin:0;font-size:20px}.task-context-row p{margin:0;overflow:hidden;color:var(--text-secondary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.task-page .project-tabs{margin-bottom:5px}.task-page .project-tabs button{min-height:32px;padding-block:5px}.task-page .metrics{display:flex;align-items:center;gap:0;margin-bottom:5px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);padding:3px 8px}.task-page .metrics div{display:flex;align-items:baseline;gap:4px;min-height:24px;border:0;border-radius:0;background:transparent;padding:2px 12px}.task-page .metrics div+div{border-left:1px solid var(--border-muted)}.task-page .metrics div::before{display:none}.task-page .metrics span{margin:0;font-size:9px}.task-page .metrics b{font-size:14px}.task-page .metrics div:last-child b{color:var(--danger)}.task-page .report-heading{min-height:36px;padding:5px 10px}.task-page .report-heading h2{font-size:14px}.task-page .report-toolbar{gap:7px;padding:6px 10px}.task-page .report-search input{min-height:34px}.task-page .table-scroll-control{min-height:12px}
@media(max-width:1180px){.header-primary-actions{position:static;grid-column:3;align-self:center;justify-self:center;transform:none}.header-task-popover{left:auto;right:0}}
@media(max-width:840px){.header-primary-actions{grid-column:3;grid-row:1}.task-context-row{align-items:flex-start;flex-direction:column;gap:1px}.task-page .metrics{flex-wrap:wrap}}

/* Local ISO-coded SVG contact choropleth */

.world-map-svg .map-country{fill:var(--map-country-zero,color-mix(in srgb,var(--surface-control) 84%,var(--text-muted)));stroke:var(--map-country-border,var(--border));stroke-width:1.3;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .16s ease,stroke .16s ease,filter .16s ease}.world-map-svg .map-country[data-level="1"]{fill:color-mix(in srgb,var(--country-color,var(--accent)) 30%,var(--surface-control))}.world-map-svg .map-country[data-level="2"]{fill:color-mix(in srgb,var(--country-color,var(--accent)) 50%,var(--surface-control))}.world-map-svg .map-country[data-level="3"]{fill:color-mix(in srgb,var(--country-color,var(--accent)) 72%,var(--surface-control))}.world-map-svg .map-country[data-level="4"]{fill:var(--country-color,var(--accent))}.world-map-svg .has-contacts{cursor:pointer}.world-map-svg .has-contacts:hover,.world-map-svg .has-contacts:focus{stroke:var(--focus);stroke-width:3;filter:brightness(1.1);outline:none}
:root[data-theme="light"]{--map-ocean:#ebe8df;--map-country-zero:#c9c8c2;--map-country-border:#77756f}:root[data-theme="dark"]{--map-ocean:#17191c;--map-country-zero:#45494f;--map-country-border:#71767e}


.contact-dialog .dialog-actions .icon-label-button{display:inline-flex;width:auto;min-width:max-content;align-items:center;gap:7px;padding:7px 12px}

/* v2.7.2 responsive, contain-style world SVG sizing */
.map-page{width:100%;max-width:none}
.contact-map-surface{position:relative;box-sizing:border-box;width:100%;height:min(68vh,720px);min-height:360px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px 14px;background:var(--map-ocean)}
.contact-map-surface .world-map-svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;border:0;border-radius:8px;background:transparent}
@media(max-width:700px){.contact-map-surface{height:auto;min-height:0}.contact-map-surface .world-map-svg{width:100%;height:auto;max-width:100%;max-height:none}}

/* Consolidated task report toolbar and stage Kanban */
.report-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:center;padding:10px 13px;border-bottom:1px solid var(--border);background:var(--bg-surface)}
.report-search{position:relative;display:flex;align-items:center;min-width:0}.report-search-icon{position:absolute;left:11px;width:15px;height:15px;border:2px solid var(--text-muted);border-radius:50%;pointer-events:none}.report-search-icon::after{content:"";position:absolute;width:6px;height:2px;right:-5px;bottom:-2px;transform:rotate(45deg);background:var(--text-muted)}
.report-toolbar .report-search input{width:100%;height:40px;padding:7px 42px 7px 38px;border-color:var(--border-strong);background:var(--bg-input);font-size:14px;-webkit-appearance:none;appearance:none}.report-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.report-search input::-webkit-search-decoration{-webkit-appearance:none}.report-search-clear{position:absolute;right:5px;width:30px;height:30px;min-width:30px;padding:6px;border:0;background:transparent;color:var(--text-muted)}
.report-toolbar-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.toolbar-menu{position:relative}.toolbar-menu>summary{display:flex;align-items:center;min-height:34px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text);font-size:12px;font-weight:700;cursor:pointer;list-style:none}.toolbar-menu>summary::-webkit-details-marker{display:none}.toolbar-menu[open]>summary{border-color:var(--accent);background:var(--accent-soft)}
.toolbar-popover{position:absolute;z-index:15;top:calc(100% + 5px);right:0;display:grid;gap:7px;width:max-content;min-width:190px;max-height:360px;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:0 10px 28px rgba(0,0,0,.18)}.filter-menu-content label{display:flex;align-items:center;gap:7px;font-size:12px}.filter-menu-content .primary{margin-top:4px}.toolbar-choice-list button{justify-content:flex-start;min-height:30px;border:0;background:transparent;text-align:left}.toolbar-choice-list button:hover,.toolbar-choice-list button[aria-checked="true"]{background:var(--accent-soft);color:var(--accent-hover)}
.view-switch{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.view-switch button{min-height:34px;border:0;border-radius:0;background:var(--bg-subtle);padding:6px 10px;font-size:11px}.view-switch button+button{border-left:1px solid var(--border)}.view-switch button[aria-pressed="true"]{background:var(--accent);color:var(--text-on-dark)}.view-switch button:disabled{cursor:not-allowed;opacity:.45}
.report-card .active-filter-block{margin:0;padding:7px 13px;border-bottom:1px solid var(--border-muted);background:color-mix(in srgb,var(--bg-subtle) 55%,var(--bg-surface))}.report-card .active-filter-summary{flex-wrap:wrap;overflow:visible}.report-card .filter-chip{border-color:var(--border);background:var(--bg-surface);font-size:10px}.report-card .active-filter-block>#resetFilters{width:auto;min-width:auto;margin-left:auto;padding-inline:9px}
.column-heading-controls .column-filter-button{flex:0 0 25px;width:25px;min-width:25px;min-height:25px;padding:4px;border:0;background:transparent;color:var(--text-muted)}.column-heading-controls .column-filter-button::after{content:none}.column-heading-controls .column-filter-button[aria-pressed="true"]{color:var(--accent)}
.group-row{background:color-mix(in srgb,var(--bg-subtle) 75%,var(--bg-surface))}.group-row:hover{background:color-mix(in srgb,var(--bg-subtle) 75%,var(--bg-surface))}.group-row td{height:28px;border-left:2px solid var(--accent);color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:0}
.kanban-board{display:flex;gap:10px;min-height:340px;overflow-x:auto;padding:12px;background:var(--bg-page);scrollbar-color:var(--border-strong) var(--bg-subtle)}.kanban-column{display:flex;flex:0 0 clamp(260px,24vw,310px);flex-direction:column;max-height:calc(100vh - 295px);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle)}.kanban-column>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border-bottom:2px solid color-mix(in srgb,var(--accent) 60%,var(--border));background:var(--bg-surface)}.kanban-column h3{margin:0;font-size:13px}.kanban-column>header span{color:var(--text-muted);font-size:10px}.kanban-cards{display:grid;gap:8px;overflow-y:auto;padding:8px}.kanban-card{display:grid;gap:6px;padding:10px;border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:var(--shadow-sm);cursor:pointer}.kanban-card:hover,.kanban-card:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--focus)}.kanban-card>div:first-child{display:flex;justify-content:space-between;color:var(--text-muted);font-size:10px}.kanban-card>div:first-child strong{color:var(--warning)}.kanban-card h4{margin:0;color:var(--text);font-size:13px;line-height:1.3}.kanban-card-meta{display:flex;flex-wrap:wrap;gap:4px}.kanban-card-meta span{max-width:100%;overflow:hidden;text-overflow:ellipsis;border-radius:999px;background:var(--bg-subtle);padding:2px 6px;color:var(--text-secondary);font-size:9px;white-space:nowrap}.kanban-card--overdue{border-left-color:var(--danger)}.kanban-card--high-priority:not(.kanban-card--overdue){border-left-color:var(--warning)}
.task-status{display:inline-flex;align-items:center;width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;border:1px solid color-mix(in srgb,var(--accent) 48%,var(--border));border-radius:999px;background:var(--accent-soft);padding:2px 7px;color:var(--accent-hover);font-size:10px;font-weight:750;line-height:1.35;white-space:nowrap}.task-status--blocked{border-color:color-mix(in srgb,var(--danger) 55%,var(--border));background:var(--danger-soft);color:var(--danger)}.task-status--ready{border-color:color-mix(in srgb,var(--success) 55%,var(--border));background:var(--success-soft);color:var(--success)}.column-status .task-status{max-width:100%}.kanban-card-meta .task-status{background:var(--accent-soft);color:var(--accent-hover)}.kanban-card-meta .task-status--blocked{background:var(--danger-soft);color:var(--danger)}.kanban-card-meta .task-status--ready{background:var(--success-soft);color:var(--success)}
@media(max-width:760px){.report-toolbar{grid-template-columns:1fr}.report-toolbar-actions{justify-content:space-between}.toolbar-popover{right:auto;left:0}.kanban-column{flex-basis:min(82vw,290px)}}
.group-toggle{min-height:24px;border:0;background:transparent;color:var(--text-secondary);padding:2px 5px;font-size:11px;font-weight:700}.group-toggle:hover{color:var(--accent-hover)}
.toolbar-menu.kanban-locked>summary{cursor:not-allowed;opacity:.5}
.quick-filter-choices{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding-top:7px;border-top:1px solid var(--border-muted)}.quick-filter-choices button{min-height:28px;padding:4px 7px;font-size:10px}
.highlight-toggle{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:6px 10px;border-color:var(--border);background:var(--bg-subtle);color:var(--text);font-size:11px}.highlight-toggle[aria-pressed="true"]{border-color:color-mix(in srgb,var(--accent) 65%,var(--border));background:var(--accent-soft);color:var(--accent-hover)}.highlight-toggle .action-icon{width:15px;height:15px}
.report-toolbar .toolbar-icon-control{position:relative;display:inline-grid;place-items:center;width:34px;min-width:34px;height:34px;min-height:34px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary)}.report-toolbar .toolbar-icon-control:hover,.report-toolbar .toolbar-icon-control:focus-visible{border-color:var(--border-strong);background:var(--bg-elevated);color:var(--accent-hover)}.report-toolbar .toolbar-icon-control[aria-pressed="true"],.toolbar-menu[open]>.toolbar-icon-control{border-color:var(--accent);background:var(--accent);color:var(--text-on-dark)}.report-toolbar .toolbar-icon-control .action-icon{width:16px;height:16px}.report-toolbar .filter-count:not(:empty){position:absolute;top:-6px;right:-6px;display:grid;place-items:center;min-width:17px;height:17px;border:2px solid var(--bg-surface);border-radius:999px;background:var(--accent);color:var(--text-on-dark);font-size:8px;line-height:1}.report-toolbar .view-switch{padding:2px;gap:2px}.report-toolbar .view-switch .toolbar-icon-control{border-color:transparent;background:transparent}.report-toolbar .view-switch .toolbar-icon-control[aria-pressed="true"]{background:var(--accent);color:var(--text-on-dark)}

/* v2.10 responsive phone and iOS Safari layout */
html{min-height:100%;background:var(--bg-page)}body{min-height:100vh;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.portal-header{padding-top:env(safe-area-inset-top)}.page-shell,.login{padding-bottom:max(20px,env(safe-area-inset-bottom))}dialog{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}.mobile-task-list{display:none}
@media(max-width:600px){
  body{font-size:14px}.portal-header{position:relative;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:52px 46px 50px;min-height:148px}.portal-identity{grid-column:1;grid-row:1;min-width:0}.portal-name{max-width:180px}.header-actions{grid-column:2;grid-row:1;min-width:0;padding:0 6px}.header-actions .user-chip{display:none}.header-actions .text-action{min-width:44px;min-height:44px;padding:12px 7px}.header-page-menu{grid-column:1/-1;grid-row:2;min-width:0;border-top:1px solid var(--border-muted);border-bottom:1px solid var(--border-muted);overflow-x:auto}.portal-nav{min-width:max-content}.portal-nav a{min-height:44px;padding:0 16px}.header-primary-actions{position:static;grid-column:1/-1;grid-row:3;justify-self:stretch;transform:none;padding:3px 12px}.header-task-actions{width:100%;justify-content:center}.header-task-actions .header-create-button,.header-task-actions .header-secondary-button,.header-task-actions .header-tool-button,.header-actions .icon-button{width:44px;height:44px;min-width:44px;min-height:44px}.header-page-menu .header-create-button{width:44px;height:44px;min-width:44px;min-height:44px;margin-left:6px}.contacts-view-switch a{display:flex;align-items:center;min-height:44px}.header-task-popover{position:fixed;inset:auto max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));width:auto;max-height:min(70dvh,560px);overflow:auto}.page-shell{width:100%;padding:12px max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.login{width:100%;padding:16px max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.login>.card{width:100%;max-width:440px}.task-context-row{min-width:0}.project-tabs{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.project-tabs button{min-height:44px;scroll-snap-align:start}.task-page .metrics{overflow-x:auto;flex-wrap:nowrap}.task-page .metrics div{flex:0 0 auto;min-height:36px}.report-card{overflow:visible}.report-heading{border-radius:var(--radius) var(--radius) 0 0}.report-toolbar{grid-template-columns:minmax(0,1fr);padding:8px}.report-search{width:100%}.report-search input{height:44px;min-height:44px;font-size:16px}.report-search-clear{width:44px;height:44px;min-width:44px}.report-toolbar-actions{justify-content:flex-start;flex-wrap:nowrap}.report-toolbar .toolbar-icon-control,.toolbar-menu>summary{width:44px;height:44px;min-width:44px;min-height:44px}.report-toolbar .view-switch{margin-left:auto}.toolbar-popover{position:fixed;inset:auto max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));width:auto;min-width:0;max-height:70dvh;padding:14px}.filter-menu-content label,.toolbar-choice-list button,.quick-filter-choices button{min-height:44px;font-size:14px}.active-filter-block{max-height:108px;overflow:auto}.mobile-task-list{display:grid;background:var(--bg-surface)}.mobile-task-group{position:sticky;top:0;z-index:1;border-left:3px solid var(--accent);border-bottom:1px solid var(--border);background:var(--bg-subtle);padding:7px 10px;color:var(--text-secondary);font-size:12px;font-weight:750}.mobile-task-item{display:grid;width:100%;min-width:0;gap:4px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:var(--bg-surface);padding:10px 12px;color:var(--text);text-align:left}.mobile-task-item:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.mobile-task-top{display:flex;justify-content:space-between;gap:8px;color:var(--text-secondary);font-size:11px}.mobile-task-item>b{overflow-wrap:anywhere;font-size:14px}.mobile-task-meta,.mobile-task-tags{overflow-wrap:anywhere;color:var(--text-secondary);font-size:11px;line-height:1.35}.mobile-task-tags{color:var(--accent-hover)}.table-wrap{max-height:none}.kanban-board{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:10px max(10px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-bottom))}.kanban-column{flex-basis:min(88vw,340px);max-height:calc(100dvh - 250px);scroll-snap-align:start}.task-details,.contact-dialog,.activity-dialog,dialog{box-sizing:border-box;width:100%;max-width:none;height:auto;max-height:100vh;max-height:100dvh;margin:0;border-radius:0;overflow:auto;padding-bottom:max(12px,env(safe-area-inset-bottom))}.dialog-head{position:sticky;top:0;z-index:5;align-items:flex-start;background:var(--bg-surface);padding-top:max(10px,env(safe-area-inset-top))}.dialog-head button,.dialog-head a.button,.dialog-actions button,.dialog-actions a.button,.section-title button,.comments-expand-button,.contacts-pager button{min-width:44px;min-height:44px}.detail-dialog-head,.detail-content,.detail-content.comments-expanded{grid-template-columns:minmax(0,1fr)}.detail-heading,.detail-header-technical,.detail-head-actions,.detail-activities,.detail-task-information,.detail-project-column,.detail-comments,.detail-description,.task-details.editing .detail-comments{grid-column:1!important;grid-row:auto!important}.detail-title-stack,.detail-header-technical{grid-template-rows:auto}.detail-heading-value{min-height:0}.detail-activities{margin:0;border-left:3px solid var(--accent);border-right:0}.comments-expand-button{display:none}.comment-composer{grid-template-columns:1fr auto}.comment-composer textarea{grid-column:1/-1;min-width:0}.comment-file-list>div{min-width:0}.comment-file-list span,.comment-attachments a,.task-rich-text,.prose-value{overflow-wrap:anywhere}.task-edit-form,.edit-field-grid,.contact-edit-grid,.settings-grid,.admin-grid,.connection-grid{grid-template-columns:minmax(0,1fr)!important}.task-edit-form{padding:12px}.dialog-actions{position:sticky;bottom:0;z-index:4;margin-inline:-12px;padding:9px max(12px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:var(--bg-surface);border-top:1px solid var(--border)}input,select,textarea,[contenteditable="true"]{max-width:100%;font-size:16px!important}.contacts-controls{grid-template-columns:1fr}.contacts-table{min-width:0}.contacts-table thead{display:none}.contacts-table,.contacts-table tbody,.contacts-table tr,.contacts-table td{display:block;width:100%}.contacts-table tr{display:grid;grid-template-columns:1fr auto;gap:4px;min-height:72px;border-bottom:1px solid var(--border);padding:10px 12px}.contacts-table td{display:none!important;min-width:0;border:0;padding:0;overflow-wrap:anywhere}.contacts-table td:nth-child(1),.contacts-table td:nth-child(2),.contacts-table td:nth-child(5),.contacts-table td:nth-child(7),.contacts-table td:nth-child(8){display:block!important}.contacts-table td:nth-child(1){grid-column:1;font-weight:750}.contacts-table td:nth-child(2){grid-column:2;color:var(--text-muted);font-size:11px}.contacts-table td:nth-child(5),.contacts-table td:nth-child(7),.contacts-table td:nth-child(8){grid-column:1/-1;color:var(--text-secondary);font-size:12px}.contact-detail-grid{grid-template-columns:1fr;padding:12px}.contact-detail-grid>section{grid-column:1}.map-summary,.map-list-head{padding-inline:12px}.map-country-list{grid-template-columns:1fr 1fr;padding-inline:10px}.map-country-list a{min-height:44px}.admin-grid{grid-template-areas:"users" "connections" "contacts" "application" "chatter" "projects"!important}.admin-grid>.admin-card{min-width:0}.admin-toggle-group label,.project-grants label,.choice-list label{min-height:44px;padding-block:9px}.item-grid,.connection-grid{min-width:0}.item-grid input,.connection-grid input{width:100%}.settings-grid>.card{min-width:0}.odoo-account-card{overflow-wrap:anywhere}
}
@media(max-width:360px){.portal-name{max-width:130px}.portal-nav a{padding-inline:12px}.header-task-actions{gap:3px}.map-country-list{grid-template-columns:1fr}.task-page .metrics div{padding-inline:8px}}
