/* Shared Geonote styles, based on the Opgaver reference mockup. */
/* Support request deadlines retain text labels as well as status colours. */
.support-toolbar { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.support-toolbar .sp { flex:1; }
.support-toolbar select { min-width:210px; }
.support-table { width:100%; }
.support-table th:nth-child(1) { width:27%; }
.support-table th:nth-child(2) { width:16%; }
.support-table th:nth-child(3) { width:23%; }
.support-table th:nth-child(4) { width:20%; }
.support-requests .support-table td { vertical-align:top; }
.support-id { display:block; overflow-wrap:anywhere; }
.support-table .sublabel { display:block; margin-top:5px; }
.support-table .support-time { margin-bottom:7px; white-space:nowrap; }
.support-table .support-overdue { background:var(--r50); }
.support-table .support-due-soon { background:var(--o50); }
.support-table .support-overdue td:first-child { box-shadow:inset 3px 0 var(--err); }
.support-table .support-due-soon td:first-child { box-shadow:inset 3px 0 var(--warn); }
.metrics .support-soon-metric .v { color:var(--warn-hover); }
@media(max-width:900px) { .support-table { min-width:850px; } }
:root { color-scheme: light; }
body { margin:0; font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; color:#222; background:#f5f5f5; }
.app {
  /* brand */
  --b:#0073A9; --b-hover:#00567F; --b-dis:#80B9D4; --b-50:#f0faff; --b-100:#dff3ff; --b-200:#b9e8fe;
  /* neutral */
  --white:#FFFFFF; --body:#F5F5F5; --hover:#F1F1F1; --sec:#E6E6E6; --inact-g:#DEDEDE; --inact-w:#9F9F9F;
  --sub:#666666; --icon:#424242; --ink:#222222;
  --n200:#e5e7eb; --n300:#d1d5db; --n50:#f9fafb;
  /* status */
  --ok:#429946; --info:#1C7ECC; --warn:#E6942E; --warn-hover:#AC6F22; --err:#B30000;
  --o50:#fff7ed; --o200:#fed7aa; --g50:#f0fdf4; --r50:#fef2f2; --r200:#fecaca;

  color-scheme:light;
  display:flex; min-height:100dvh;
  background:var(--white); color:var(--ink);
  
}
.app *, .app *::before, .app *::after { box-sizing:border-box; }
.app svg { display:block; }

/* ---------------- sidebar ---------------- */
.sb { width:206px; flex:none; background:var(--white); border-right:1px solid var(--sec); padding:14px 0; display:flex; flex-direction:column; }
.sb .brand { display:flex; align-items:center; gap:8px; padding:0 16px 18px; font-size:16px; font-weight:600; color:var(--ink); }
.sb .brand .m { width:20px; height:20px; border-radius:50% 50% 50% 2px; background:var(--b); transform:rotate(-45deg); position:relative; flex:none; }
.sb .brand .m::after { content:""; position:absolute; inset:6px; border-radius:50%; background:#fff; }
.sb a { display:block; padding:7px 16px; font-size:13.5px; color:var(--sub); text-decoration:none; border-left:3px solid transparent; }
.sb a:hover { background:var(--hover); }
.sb a.on { background:var(--b-50); color:var(--b-hover); font-weight:600; border-left-color:var(--b); }
.sb .cap { padding:14px 16px 4px; font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--inact-w); }
.sb .in a { padding-left:31px; font-size:13px; }
.sb .end { margin-top:auto; padding-top:12px; border-top:1px solid var(--sec); }

/* ---------------- topbar / tabs ---------------- */
.main { flex:1; min-width:0; background:var(--body); display:flex; flex-direction:column; }
.top { background:var(--white); border-bottom:1px solid var(--sec); padding:12px 24px; }
.top h1 { margin:0; font-size:18px; font-weight:600; }

.tabs { background:var(--white); border-bottom:1px solid var(--sec); padding:0 24px; display:flex; gap:22px; }
.tabs a { padding:10px 0 9px; font-size:13.5px; color:var(--sub); border-bottom:2px solid transparent; cursor:pointer; }
.tabs a.on { color:var(--b-hover); font-weight:600; border-bottom-color:var(--b); }

.sheet { padding:20px 24px 36px; display:flex; flex-direction:column; gap:16px; }

/* ---------------- paneler ---------------- */
.panel { background:var(--white); border:1px solid var(--sec); border-radius:6px; }
.ph { display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--sec); }
.ph h2 { margin:0; font-size:14.5px; font-weight:600; }
.ph .sp { flex:1; }
.ph .cnt { font-size:12.5px; color:var(--sub); }
.pb { padding:16px; }
.pb.tight { padding:0; }

/* ---------------- felter ---------------- */
.grid { display:grid; gap:16px; }
.c2 { grid-template-columns:1fr 1fr; }
.c3 { grid-template-columns:1fr 1fr 1fr; }
.c4 { grid-template-columns:repeat(4,1fr); }
.lb { display:block; font-size:12px; color:var(--sub); margin-bottom:5px; }
.fld, select.fld { width:100%; height:32px; padding:0 9px; border:1px solid var(--n300); border-radius:4px; background:var(--white); font:inherit; font-size:13.5px; color:var(--ink); }
.fld[readonly] { background:var(--n50); color:var(--sub); }
.help { font-size:12px; color:var(--sub); margin-top:5px; }
.dual { display:grid; grid-template-columns:80px 1fr; gap:8px; }

/* ---------------- knapper ---------------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; height:32px; padding:0 12px; border-radius:4px; font-size:13px; font-weight:600; border:1px solid transparent; cursor:pointer; white-space:nowrap; }
.btn.pri { background:var(--b); color:#fff; }
.btn.sec { background:var(--sec); color:var(--ink); }
.btn.ter { background:var(--white); border-color:var(--b); color:var(--b); }
.btn.txt { background:none; color:var(--b); padding:0 4px; }
.btn.pri.dis { background:var(--b-dis); color:#BFDBE9; }
.ibtn { width:30px; height:30px; border:1px solid var(--n300); border-radius:4px; background:var(--white); color:var(--icon); display:inline-grid; place-items:center; }

/* ---------------- kontakter ---------------- */
.sw { appearance:none; border:0; margin:0; cursor:pointer; width:34px; height:19px; border-radius:10px; background:var(--b); position:relative; flex:none; }
.sw:not(:checked) { background:var(--inact-g); }
.sw::after { content:""; position:absolute; top:2.5px; left:17.5px; width:14px; height:14px; border-radius:50%; background:#fff; }
.sw:not(:checked)::after { left:2.5px; }
.tg { display:flex; align-items:center; gap:9px; font-size:13.5px; }
.tg.stack { align-items:flex-start; }
.tg .tx b { font-weight:600; display:block; }
.tg .tx i { font-style:normal; color:var(--sub); font-size:12px; }

/* ---------------- badges og chips ---------------- */
.bdg { display:inline-flex; align-items:center; gap:5px; padding:1px 7px; border-radius:4px; font-size:11.5px; font-weight:600; border:1px solid; }
.bdg.ok   { color:var(--ok);   border-color:#A0CCA2; background:var(--g50); }
.bdg.warn { color:var(--warn-hover); border-color:var(--o200); background:var(--o50); }
.bdg.info { color:var(--info); border-color:#8DBEE5; background:var(--b-50); }
.bdg.n    { color:var(--sub);  border-color:var(--n300); background:var(--white); }
.bdg.err  { color:var(--err);  border-color:#D97F7F; background:var(--r50); }
.dot { width:7px; height:7px; border-radius:50%; background:currentColor; }

.chip { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 9px; border-radius:4px; border:1px solid var(--b); color:var(--b); background:var(--white); font-size:12.5px; }
.chip.sel { background:var(--b-200); border-color:var(--b); color:var(--b-hover); font-weight:600; }
.chip .num { background:var(--b); color:#fff; border-radius:3px; padding:0 5px; font-size:11px; font-weight:600; }
.chip.sel .num { background:var(--b-hover); }
.chip.add { border-style:dashed; }
.chip .x { color:var(--b); font-size:13px; line-height:1; }
.chips { display:flex; flex-wrap:wrap; gap:7px; }

/* ---------------- besked ---------------- */
.msg { display:flex; gap:10px; padding:11px 13px; border-radius:4px; border:1px solid var(--o200); background:var(--o50); font-size:12.5px; line-height:1.55; color:#6b4508; }
.msg svg { flex:none; margin-top:2px; color:var(--warn); }
.msg p { margin:0; max-width:780px; }
.msg b { font-weight:600; }

/* ---------------- tabeller ---------------- */
table.t { width:100%; border-collapse:collapse; }
table.t th { text-align:left; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--sub); font-weight:600; padding:9px 12px; border-bottom:1px solid var(--sec); background:var(--n50); }
table.t td { padding:10px 12px; border-bottom:1px solid var(--sec); font-size:13.5px; vertical-align:middle; }
table.t tbody tr:last-child td { border-bottom:none; }
table.t tbody tr.on td { background:var(--b-50); }
table.t tbody tr.on td:first-child { box-shadow:inset 3px 0 0 var(--b); }
table.t td.num { font-variant-numeric:tabular-nums; }
table.t td.act { text-align:right; white-space:nowrap; }
table.t td.act .ibtn + .ibtn { margin-left:5px; }
table.t td.outcome .bdg { display:flex; width:100%; justify-content:center; }
.muted { color:var(--sub); }
.sublabel { display:block; font-size:11.5px; color:var(--sub); }

/* ---------------- nøgletal ---------------- */
.metrics { display:flex; gap:10px; flex-wrap:wrap; }
.metrics > div { flex:1; min-width:152px; padding:11px 13px; background:var(--n50); border:1px solid var(--sec); border-radius:6px; }
.metrics .v { font-size:21px; font-weight:600; letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.metrics .k { font-size:11.5px; color:var(--sub); margin-top:3px; }
.metrics .neg .v { color:var(--err); }        /* roed = kraever opmaerksomhed */
.metrics .quiet .v { color:var(--sub); }      /* neutral = blot en fratraekning */
.metrics .fin { background:var(--b-50); border-color:var(--b-200); }
.metrics .fin .v { color:var(--b-hover); }

/* ---------------- regel-editor ---------------- */
.split { display:grid; grid-template-columns:1fr 452px; }
.split > .l { border-right:1px solid var(--sec); min-width:0; }
.ed { padding:16px; }
.ed .eh { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.ed .eh h3 { margin:0; font-size:14px; font-weight:600; }
.grp { border:1px solid var(--sec); border-radius:6px; }
.grp .gh { display:flex; align-items:center; gap:10px; padding:9px 12px; background:var(--n50); border-bottom:1px solid var(--sec); }
.grp .gh select { width:auto; min-width:196px; }
.grp .gb { padding:12px; }
.cond { display:grid; grid-template-columns:1fr 96px 1fr 30px; gap:8px; align-items:center; }
.joiner { display:flex; align-items:center; gap:10px; margin:9px 0; color:var(--sub); font-size:11px; letter-spacing:.06em; }
.joiner::before, .joiner::after { content:""; height:1px; background:var(--sec); flex:1; }
.foot { display:flex; gap:8px; align-items:center; justify-content:flex-end; padding:12px 16px; border-top:1px solid var(--sec); background:var(--n50); }
.foot .needeval { margin-right:auto; font-size:12px; color:var(--sub); max-width:190px; line-height:1.4; }

/* ---------------- definitionsliste ---------------- */
dl.kv { margin:0; display:grid; grid-template-columns:auto 1fr; gap:7px 18px; font-size:13px; }
dl.kv dt { color:var(--sub); }
dl.kv dd { margin:0; }

/* Shared application layout and accessible controls. */
button, input, select { font-family:inherit; }
button, a, input, select { -webkit-tap-highlight-color:transparent; }
button:not(:disabled), select, input[type=checkbox], input[type=radio] { cursor:pointer; }
button:disabled, input:disabled { cursor:not-allowed; }
a.btn, .tabs a { text-decoration:none; }
:focus-visible { outline:2px solid #0073A9; outline-offset:3px; }
[hidden] { display:none !important; }
.sb { position:sticky; top:0; height:100dvh; overflow-y:auto; }
.top { display:flex; align-items:center; gap:12px; min-height:52px; }
.top h1 { flex:1; }
.preview-label { color:var(--sub); font-size:11.5px; }
.user-actions { display:flex; align-items:center; justify-content:center; margin-left:4px; }
.tb-avatar {
  width:38px; height:38px; display:grid; place-items:center; overflow:hidden; padding:0;
  border:1px solid #d9e2e8; border-radius:50%; background:var(--b); color:var(--white);
  cursor:pointer; font-family:inherit; font-size:14px; font-weight:700; line-height:1;
}
.tb-avatar:hover { opacity:.85; }
.tb-avatar img { width:100%; height:100%; border-radius:50%; object-fit:cover; }
#user-menu {
  position:fixed; top:58px; right:16px; z-index:300; min-width:256px; padding:8px 0;
  display:none; background:var(--white); border:1px solid var(--sec); border-radius:8px;
  box-shadow:0 4px 16px #0000001f;
}
#user-menu.open { display:block; }
.um-header { padding:10px 16px; border-bottom:1px solid var(--hover); margin-bottom:4px; }
.um-name { color:#111; font-size:14px; font-weight:700; }
.um-email { margin-top:1px; color:#888; font-size:13px; overflow-wrap:anywhere; }
.um-item {
  display:flex; align-items:center; gap:10px; width:100%; padding:9px 16px;
  border:0; background:none; color:#333; cursor:pointer; font-family:inherit; font-size:13px; text-align:left;
}
.um-item:hover, .um-item:focus-visible { background:var(--body); }
.um-item svg { flex:none; color:#666; }
.um-item.um-logout, .um-item.um-logout svg { color:#c0392b; }
.tabs { overflow-x:auto; }
.tabs a { white-space:nowrap; }
.tabs a:hover { color:var(--b); }
.sheet { min-width:0; }
.sheet > *, .grid > *, .split > * { min-width:0; }
.sp { flex:1; }
.btn { font-family:inherit; text-decoration:none; }
.btn.pri:hover { background:var(--b-hover); }
.btn.sec:hover { background:var(--inact-g); }
.btn.ter:hover, .ibtn:hover, .chip:hover { background:var(--b-50); }
.btn.txt:hover { text-decoration:underline; }
.btn:disabled { opacity:.65; }
.sw:disabled { opacity:.6; }
.sw { vertical-align:middle; }
.table-wrap { position:relative; overflow-x:auto; max-width:100%; }
.table-wrap table { min-width:640px; }
.ph, .foot { flex-wrap:wrap; }
.foot .needeval { flex:1; min-width:120px; }
.cnt { font-size:12.5px; color:var(--sub); }
.grid.c4 { row-gap:20px; }
.run-summary { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:16px; padding-top:14px; border-top:1px solid var(--sec); }
.run-dates { grid-template-columns:auto auto auto auto !important; }
.control-row { min-height:32px; }
.field-stack { display:flex; flex-direction:column; gap:20px; }
.period-field { max-width:240px; }
fieldset { border:0; padding:0; margin:0; min-width:0; }
legend { padding:0; }
input[type=checkbox], input[type=radio] { accent-color:var(--b); }
.choice { display:flex; align-items:flex-start; gap:8px; margin-top:12px; font-size:13.5px; cursor:pointer; }
.choice input { margin:4px 0 0; flex:none; }
.source-list { border:1px solid var(--sec); border-radius:4px; }
.source-row { display:flex; align-items:center; gap:10px; padding:9px 12px; font-size:13px; cursor:pointer; }
.source-row + .source-row { border-top:1px solid var(--sec); }
.source-row input { margin:0; }
.source-row > .bdg { margin-left:auto; }
.source-row:has(input:disabled) { color:var(--sub); background:var(--n50); cursor:default; }
.scope-intro h3 { margin:0 0 8px; font-size:14px; font-weight:600; }
.scope-intro p { margin:0 0 12px; font-size:13.5px; max-width:540px; }
.exclusion-list { list-style:none; margin:0; padding:0; display:grid; gap:9px; font-size:13px; }
.exclusion-list li { display:flex; align-items:flex-start; gap:8px; }
.exclusion-list .icon { flex:none; color:var(--icon); margin-top:2px; }
.info-message { background:var(--b-50); border-color:var(--b-200); color:var(--b-hover); }
.info-message svg { color:var(--b); }
.info-message p { max-width:none; }
.chip-input { display:flex; flex-wrap:wrap; align-items:center; gap:7px; border:1px solid var(--n300); border-radius:4px; padding:8px; }
.chip-input input { flex:1; min-width:250px; height:26px; border:0; font:inherit; font-size:13px; background:transparent; }
.chip-remove { border:0; background:transparent; color:var(--b); padding:1px; font-size:17px; line-height:1; }
.state-ladder, .state-legend { display:flex; gap:8px; flex-wrap:wrap; }
.state-ladder { min-height:32px; align-items:center; }
.legend-ok { color:var(--ok); }
.legend-warn { color:var(--warn-hover); }
.bordered-table { border:1px solid var(--sec); border-radius:4px; }
.bordered-table .fld { min-width:145px; }
.filter-chips { margin-top:16px; }
.list-note { font-size:12px; }
.page-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:12.5px; }
.placeholder { min-height:340px; display:flex; align-items:center; justify-content:center; flex-direction:column; padding:32px; text-align:center; }
.placeholder h2 { font-size:18px; font-weight:600; margin:16px 0 0; }
.placeholder p { color:var(--sub); margin:8px 0 24px; }
.placeholder-mark { width:64px; height:64px; border-radius:6px; background:var(--b-50); color:var(--b); display:grid; place-items:center; }
.menu-toggle { display:none; }
.toast { position:fixed; bottom:24px; right:24px; max-width:min(440px, calc(100vw - 32px)); padding:14px 18px; border:1px solid #b9e8fe; border-radius:6px; background:#fff; color:#222; box-shadow:0 4px 24px #0002; font-size:13px; z-index:20; }
.skip-link { position:fixed; top:-80px; left:12px; padding:8px 16px; background:white; color:#0073A9; z-index:30; }
.skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.rule-empty { padding:16px; color:var(--sub); font-size:13px; }

/* Public and invalid-route states deliberately omit all customer navigation. */
#user-policy-form, .policy-fields { display:flex; flex-direction:column; gap:16px; }
.policy-feedback { padding:10px 13px; border:1px solid var(--b-200); border-radius:4px; background:var(--b-50); color:var(--b-hover); font-size:13px; }
.policy-feedback.policy-error { background:var(--r50); border-color:var(--r200); color:var(--err); }
.policy-recovery, .policy-count-status { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.policy-count-status { margin-top:8px; }
.timezone-label, [data-custom-schedule] { margin-top:12px; }
[data-custom-period] { margin-top:8px; }
[data-policy-warnings] { flex-direction:column; }
.policy-fields:disabled .fld, .policy-fields:disabled .chip-input { background:var(--n50); }
.project-add { display:grid; grid-template-columns:minmax(180px,1fr) minmax(150px,220px) auto; gap:12px; align-items:end; }
.project-id { font-size:12px !important; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.project-risk { background:var(--o50); }
.project-risk .bdg { white-space:normal; min-width:190px; }
.project-risk svg { flex:none; }
.assessment-funnel { list-style:none; margin:0; padding:0; }
.assessment-funnel > li { flex:1; min-width:150px; padding:11px 13px; border:1px solid var(--sec); border-radius:6px; background:var(--n50); }
.preview-controls { display:flex; align-items:end; flex-wrap:wrap; gap:12px; }
.preview-controls > div { flex:1; max-width:430px; min-width:220px; }
.preview-toolbar, .preview-pagination { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.preview-pagination { margin-top:12px; }
.preview-search { margin:16px 0 12px; max-width:400px; }
.preview-user-id { overflow-wrap:anywhere; font-size:12px !important; min-width:190px; }
.preview-error { color:var(--err); }
.preview-progress { display:inline-flex; align-items:center; gap:8px; color:var(--sub); font-size:13px; }
.preview-spinner { width:16px; height:16px; border:2px solid var(--b-200); border-top-color:var(--b); border-radius:50%; animation:preview-spin .8s linear infinite; }
@keyframes preview-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .preview-spinner { animation:none; border-color:var(--b); } }
.locked-rules li::before { content:''; display:block; width:15px; height:15px; margin-top:2px; flex:none; background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23424242'%3E%3Cpath d='M4.5 6V4a3.5 3.5 0 0 1 7 0v2H13v9H3V6h1.5Zm1.5 0h4V4a2 2 0 0 0-4 0v2Zm1.3 3v3h1.4V9H7.3Z'/%3E%3C/svg%3E"); }
@media (max-width:700px) { .project-add { grid-template-columns:1fr; } .policy-count-status { align-items:flex-start; } }

.app.public-mode .sb,
.app.public-mode .tabs,
.app.public-mode .menu-toggle,
.app.public-mode .preview-label,
.app.public-mode .user-actions { display:none; }
.app.public-mode .top { padding:14px clamp(20px, 4vw, 48px); }
.app.public-mode .top h1 { font-size:16px; }
.public-sheet { flex:1; align-items:center; justify-content:center; padding:48px 24px; }
.public-card {
  width:min(560px, 100%); padding:44px; text-align:center; background:var(--white);
  border:1px solid var(--sec); border-radius:8px; box-shadow:0 12px 32px #0000000a;
}
.public-mark {
  width:54px; height:54px; margin:0 auto 22px; display:grid; place-items:center;
  border-radius:50%; background:var(--b-50); border:1px solid var(--b-200);
}
.public-mark span {
  width:22px; height:22px; border-radius:50% 50% 50% 2px; background:var(--b);
  transform:rotate(-45deg); position:relative;
}
.public-mark span::after { content:""; position:absolute; inset:7px; border-radius:50%; background:var(--white); }
.public-eyebrow { margin:0 0 8px; color:var(--b-hover); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.public-card h2 { margin:0; font-size:24px; line-height:1.25; font-weight:600; letter-spacing:-.01em; }
.public-copy { max-width:440px; margin:14px auto 0; color:var(--sub); font-size:14px; }
.public-detail {
  width:fit-content; max-width:100%; margin:22px auto 26px; padding:8px 12px;
  border:1px solid var(--sec); border-radius:4px; background:var(--n50); color:var(--sub);
  font-size:12.5px; overflow-wrap:anywhere;
}

@media (max-width:1400px) {
  .split { grid-template-columns:minmax(0,1fr); }
  .split > .l { border-right:0; border-bottom:1px solid var(--sec); }
  .ed > .grid { grid-template-columns:1fr 1fr; }
  .ed > .grid > :nth-child(4) { grid-column:2; grid-row:1 / span 3; }
  .ed > .grid > :last-child { grid-column:2; }
  .foot .needeval { max-width:none; }
}
@media (max-width:1050px) {
  .c4 { grid-template-columns:1fr 1fr; }
  .c2 { grid-template-columns:1fr; }
  .ed > .grid { grid-template-columns:1fr; }
  .ed > .grid > :nth-child(4), .ed > .grid > :last-child { grid-column:auto; grid-row:auto; }
  .sheet { padding:16px; }
  .top, .tabs { padding-left:16px; padding-right:16px; }
  .run-dates { grid-template-columns:auto 1fr !important; }
}
@media (max-width:700px) {
  .sb { position:fixed; z-index:10; inset:52px auto 0 0; height:calc(100dvh - 52px); width:206px; display:none; box-shadow:6px 0 16px #0001; }
  .app.nav-open .sb { display:flex; }
  .menu-toggle { display:inline-grid; }
  .top { min-height:52px; padding:10px 12px; }
  .top h1 { font-size:16px; }
  .preview-label { font-size:10px; max-width:100px; text-align:right; }
  .tabs { gap:20px; padding-left:12px; padding-right:12px; }
  .sheet { padding:12px; gap:12px; }
  .c4, .c3 { grid-template-columns:1fr; }
  .ph, .pb, .ed { padding:12px; }
  .ph .cnt { flex-basis:100%; }
  .ph input.fld { flex:1; min-width:120px; }
  .cond { grid-template-columns:minmax(0,1fr) minmax(68px,.7fr) minmax(0,1fr) 30px; gap:4px; }
  .grp .gh { flex-wrap:wrap; gap:4px; }
  .grp .gh select { min-width:0; width:100%; }
  .grp .gb { padding:8px; }
  .metrics > div { min-width:130px; }
  .run-summary dl.kv { grid-template-columns:auto 1fr !important; }
  .source-row { padding:8px; gap:8px; }
  .source-row .bdg { font-size:10px; }
  .chip-input input { min-width:180px; width:100%; }
  .page-actions > .muted { flex-basis:100%; }
  .placeholder { padding:24px 16px; }
  .public-sheet { padding:24px 16px; }
  .public-card { padding:32px 20px; }
  .public-card h2 { font-size:21px; }
}
.assessment-panel p{margin:0 0 12px}.assessment-panel[data-assessment-state="stale"],.assessment-panel[data-assessment-state="remote"],.assessment-panel[data-assessment-state="draft"]{border-color:#d9a441}.assessment-panel .run-summary{margin-bottom:12px}.assessment-panel .run-summary .btn{margin-left:auto}#user-simulation:disabled{cursor:not-allowed}
.lookup-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.lookup-form>div{flex:1;min-width:220px;max-width:560px}.lookup-form input{width:100%}.lookup-result{border-top:1px solid var(--sec);padding-top:16px}.lookup-result-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.lookup-subject-id{overflow-wrap:anywhere}.lookup-facts{grid-template-columns:max-content minmax(0,1fr);gap:8px 20px;max-width:760px}.lookup-facts dd{overflow-wrap:anywhere}.lookup-note{margin-bottom:12px}.subject-lookup .pb>p{margin:0}@media(max-width:700px){.lookup-form>div{flex-basis:100%;max-width:none}.lookup-facts{grid-template-columns:1fr;gap:4px}.lookup-facts dd{margin-bottom:8px}}

/* Task configuration shares the user track's frame and panel vocabulary. */
.task-page-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.task-page-heading h2 { margin:0; font-size:18px; font-weight:600; }
.task-page-heading p { margin:4px 0 0; }
#task-policy-form { display:flex; flex-direction:column; gap:16px; }
.task-switch { min-height:32px; }
.task-section-intro { margin:0 0 16px; }
.task-subheading { margin:20px 0 8px; font-size:13.5px; font-weight:600; }
.task-attributes { margin-top:8px; max-height:244px; overflow:auto; }
.task-attributes .source-row > span:first-of-type { flex:1; overflow-wrap:anywhere; }
.task-attributes .bdg { flex:none; }
.task-title-warning { margin-top:12px; border-left:3px solid var(--warn); }
.task-title-warning p { margin-top:7px; }
.task-removal-options { margin-top:20px; gap:18px; }
.task-removal-options .sw { margin-top:3px; }
.task-project-add { margin-top:12px; display:flex; align-items:end; gap:10px; flex-wrap:wrap; }
.task-project-add > div { flex:1; min-width:200px; max-width:440px; }
.task-save-bar { border:1px solid var(--sec); border-radius:6px; padding:12px 16px; background:var(--white); }
.task-save-bar .sp, .preview-toolbar .sp, .run-summary .sp { flex:1; }
.task-search { max-width:200px; }
.task-rule-table { min-width:790px; }
.task-rule-table td { vertical-align:top; }
.task-rule-table td:last-child { max-width:300px; }
.task-rule-warning { color:var(--warn-hover); }
.task-secondary-metrics { margin-top:12px; }
.task-secondary-metrics .v { font-size:18px; }
[data-task-preview] .preview-toolbar { margin:16px 0 12px; }
@media(max-width:700px) {
  .task-page-heading { align-items:flex-start; }
  .task-save-bar > .muted { flex-basis:100%; }
  .task-title-warning { padding:10px; }
  .task-attributes .source-row { flex-wrap:wrap; }
}

.task-rule-workspace { min-width:0; }
.single-task-dialog { width:min(640px, calc(100% - 32px)); max-height:calc(100dvh - 32px); box-sizing:border-box; overflow:auto; border:1px solid var(--sec); border-radius:8px; padding:24px; color:var(--ink); background:var(--white); }
.single-task-dialog::backdrop { background:rgb(0 0 0 / .45); }
.single-task-dialog h2 { margin-top:0; }
.single-task-dialog .msg { display:block; line-height:1.6; }
.single-task-dialog fieldset { border:0; padding:0; margin:20px 0; min-width:0; }
.single-task-dialog textarea { height:auto; resize:vertical; }
.single-task-target, .single-task-reason, [data-single-result] dd { overflow-wrap:anywhere; }
.single-task-reason { white-space:pre-wrap; }
[data-task-single] .pb > p { margin:0; }
@media(max-width:700px) { .single-task-dialog { padding:16px; } .single-task-dialog .page-actions { flex-wrap:wrap; } }
.history-table td { vertical-align:top; }
[data-task-history] .pb.field-stack { gap:12px; }
[data-task-history] .pb > p { margin:0; }
[data-task-history] .preview-toolbar > div { min-width:0; max-width:100%; }
[data-history-customer], [data-history-run-id] { overflow-wrap:anywhere; }
.history-table td:nth-child(5) { min-width:230px; }
.history-selected td { background:var(--b50); }
.history-items .mono { overflow-wrap:anywhere; }
.history-progress { font-weight:600; line-height:1.6; }
.history-confirm, .history-cancelled { padding:12px; border-left:3px solid var(--warn); background:var(--o50); line-height:1.6; }
.task-fallback-warning { padding:12px; border-left:3px solid var(--warn); background:var(--o50); line-height:1.6; }
.task-rule-editor { border-top:1px solid var(--sec); background:var(--n50); }
.task-rule-editor h3 { margin:0; font-size:14px; }
.task-rule-fields { margin-top:16px; }
.task-rule-fields > div { min-width:0; }
.task-rule-fields h4 { margin-top:0; }
.task-rule-editor .grp { margin:12px 0; background:var(--white); }
.task-rule-editor .gh { gap:8px; flex-wrap:wrap; }
.task-rule-editor .gh > select { flex:1; min-width:180px; }
.task-condition { padding:12px 0; border-bottom:1px solid var(--sec); margin-bottom:12px; }
.task-condition-controls { display:grid; grid-template-columns:minmax(140px,1fr) minmax(110px,.6fr) auto; gap:8px; }
.task-value-options { border:1px solid var(--sec); border-radius:4px; max-height:180px; overflow:auto; background:var(--white); margin-top:8px; }
.task-selected-values { margin:10px 0; }
.task-selected-values .chip { max-width:100%; height:auto; min-height:26px; overflow-wrap:anywhere; }
.task-invalid-value { color:var(--err); border-color:var(--err); background:var(--r50); }
.task-rule-error { color:var(--err); }
.task-rule-broken > td { background:var(--r50); }
.task-rule-broken > td:first-child { box-shadow:inset 3px 0 var(--err); }
.task-rule-toggle-wrap { display:flex; gap:8px; align-items:center; margin-top:8px; }
.task-rule-toggle-wrap .help { margin:0; }
.task-rule-toggle[aria-checked=false] { background:var(--inact-g); }
.task-rule-toggle[aria-checked=true] { background:var(--b); }
.task-rule-toggle[aria-checked=true]::after { left:17.5px; }
.task-rule-toggle[aria-checked=false]::after { left:2.5px; }
.task-rule-actions { margin-top:16px; }
.task-rule-context { margin:0 16px 16px; }
.task-coverage { margin:0 16px 20px; padding:16px; border:1px solid var(--sec); border-left:3px solid var(--warn); border-radius:6px; background:var(--white); scroll-margin-top:20px; }
.task-coverage h3 { margin:0 0 10px; font-size:15px; }
.task-coverage h4 { margin:18px 0 8px; font-size:13.5px; }
.task-coverage p { margin:10px 0; }
.task-coverage-table { min-width:520px; }
.task-coverage-table tbody th { font-weight:500; text-transform:none; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.task-coverage .msg { display:block; }
.task-feature-description { margin-top:16px; border-top:1px solid var(--sec); padding-top:12px; }
.task-feature-description summary { color:var(--b); cursor:pointer; font-weight:600; }
.task-rule-table details { min-width:140px; max-width:300px; }
.task-rule-table summary { cursor:pointer; color:var(--b); }
.task-rule-table ul { padding-left:16px; overflow-wrap:anywhere; }
.task-rule-table td:last-child .btn { margin-bottom:6px; }
@media(min-width:1500px) {
  .has-rule-editor .task-rule-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,38%); align-items:start; }
  .task-rule-editor { border-top:0; border-left:1px solid var(--sec); }
}
@media(max-width:700px) { .task-condition-controls { grid-template-columns:1fr; } .task-rule-editor .pb { padding:12px; } }
