/* CapacityOne Design System — adapted from PPM-Tool-2/backend/app/ui.py. */
:root {
  font-family: "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  --navy: #08285a;
  --navy-2: #051a3c;
  --blue: #16639e;
  --teal: #08a7b5;
  --teal-soft: #e8f8fa;
  --gold: #e9a33a;
  --bg: #f5f7fb;
  --surface: #ffffff;
  --border: #e0e7ef;
  --text: #18253a;
  --muted: #6d788b;
  --shadow: 0 10px 30px rgba(15, 42, 78, .065);
  --shadow-hover: 0 16px 40px rgba(15, 42, 78, .105);
  color: var(--text);
  background: var(--bg);
}
.document-management { margin-bottom:20px; }
.document-management h2 { margin:0 0 12px; }
.document-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.document-metric { min-height:110px; width:100%; flex-direction:column; gap:8px; background:white; border:1px solid var(--border); box-shadow:var(--shadow); padding:18px 12px; text-align:center; }
.document-metric strong { font-size:28px; line-height:1; color:var(--navy); }
.document-metric span { font-size:13px; min-height:38px; display:flex; align-items:center; justify-content:center; }
.document-metric.active { border-color:var(--teal); background:var(--teal-soft); box-shadow:0 0 0 1px var(--teal); }
.document-active-filter { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0 0; }
.document-filter-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.document-search { grid-column:span 2; }
.document-sort-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }
.document-filter-panel label { min-width:0; margin:0; }
.document-filter-panel input:not([type="hidden"]),.document-filter-panel select { display:block; width:100%; height:44px; min-width:0; border:1px solid var(--border); border-radius:9px; padding:10px 12px; margin-top:7px; background:white; color:var(--text); }
.document-filter-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.document-filter-actions button { min-width:110px; }
.document-feature-setting { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.document-feature-setting button { flex-shrink:0; }
.document-settings-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.document-settings-tabs [aria-selected="true"] { background:var(--navy); color:white; }
.document-option { display:grid; grid-template-columns:minmax(0,1fr) 26px; align-items:start; gap:12px; margin:14px 0; }
.document-option .checkbox-label { flex:1; margin:0; }
.option-help summary { width:26px; height:26px; border:1px solid var(--border); border-radius:50%; display:flex; justify-content:center; align-items:center; color:var(--blue); font-weight:700; cursor:pointer; list-style:none; }
.option-help summary::-webkit-details-marker { display:none; }
.option-help[open] { grid-column:1 / -1; }
.option-help[open] summary { margin-left:auto; }
.option-help-content { margin-top:10px; padding:16px 20px; border:1px solid var(--border); border-radius:12px; background:white; box-shadow:var(--shadow); }
.option-help-content p { font-size:13px; }
.publication-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
dialog:has(.publication-comparison) { width:min(920px,calc(100vw - 32px)); max-width:calc(100vw - 32px); }
.publication-block { min-width:0; border:1px solid var(--border); border-radius:14px; padding:20px; background:white; }
.publication-block.approved { border-top:4px solid var(--teal); }
.publication-block.working { border-top:4px solid var(--gold); }
.publication-block h3 { margin:10px 0; }
.publication-block p,.publication-block a { overflow-wrap:anywhere; }
.publication-block .eyebrow { font-size:10px; }
.publication-block .primary { width:100%; margin-top:16px; }
.source-check { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-top:18px; padding-top:12px; border-top:1px solid var(--border); }
.document-local-settings { padding:16px; margin:16px 0; border:1px solid var(--border); border-radius:12px; }
@media(max-width:1000px) { .document-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .document-filter-fields,.document-sort-fields,.publication-comparison { grid-template-columns:1fr; } .document-search { grid-column:auto; } .document-feature-setting { flex-direction:column; align-items:stretch; } .document-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.45; background: radial-gradient(circle at 88% 0, #eefafb 0, transparent 22%), var(--bg); }
button, input, select, textarea { font: inherit; }
button, a, select { touch-action: manipulation; }
a { color: #0d7792; }
button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; border: none; border-radius: 9px; padding: 10px 16px; background: #eef3f7; color: #30445e; font-weight: 600; transition: background .15s ease, box-shadow .15s ease; }
button:hover { background: #e5edf3; }
button:disabled { opacity: .6; cursor: default; }
button[aria-busy="true"] { cursor: wait; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.primary { background: linear-gradient(135deg, var(--navy), #0b3c7d); color: white; box-shadow: 0 5px 14px rgba(8, 40, 90, .12); }
.primary:hover { background: linear-gradient(135deg, #0a336d, #0e4b92); }
.secondary { background: #eef3f7; border: 1px solid var(--border); }
.small { padding: 7px 10px; font-size: 11px; }
.app-header { position: relative; z-index: 15; display: flex; align-items: center; gap: 30px; min-height: 86px; padding: 16px 32px; background: linear-gradient(110deg, var(--navy-2), var(--navy) 62%, #0b5875); color: white; box-shadow: 0 5px 20px rgba(5, 26, 60, .16); }
.app-header::after { content: ""; position: absolute; right: 10%; bottom: 0; width: 190px; height: 2px; background: linear-gradient(90deg, transparent, var(--teal), transparent); }
.brand { display: inline-flex; align-items: center; gap: 12px; color: white; text-decoration: none; flex-shrink: 0; }
.brand-logo { width: 44px; height: 44px; object-fit: contain; }
.brand-text strong { display: block; font-size: 23px; font-weight: 750; letter-spacing: -.018em; }
.brand-text .brand-one { color: #34cfda; }
.brand-text small { display: block; font-size: 10px; color: #cbdced; letter-spacing: .02em; }
.header-organization { min-width: 0; }
.header-organization label { margin: 0 0 4px; color: #adc9e0; font-size: 9px; letter-spacing: .08em; }
.header-organization select { display: block; max-width: 310px; width: 100%; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .07); color: white; border-radius: 7px; padding: 7px 10px; font-size: 12px; font-weight: 600; }
.header-organization option { background: white; color: var(--text); }
.user-menu { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.avatar { flex-shrink: 0; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: linear-gradient(145deg, #15b9c7, #087b92); color: white; font-size: 12px; font-weight: 800; box-shadow: 0 4px 14px rgba(5, 26, 60, .24); }
.user-meta strong { display: block; font-size: 12px; }
.user-meta small { display: block; color: #cbdced; font-size: 9px; margin-top: 3px; }
.demo-badge { font-size: 10px; background: rgba(255, 255, 255, .07); color: #e8f0f8; border: 1px solid rgba(255, 255, 255, .13); padding: 6px 9px; border-radius: 7px; margin-left: 12px; white-space: nowrap; }
nav { position: sticky; top: 0; z-index: 12; display: flex; gap: 2px; padding: 0 30px; overflow-x: auto; background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); box-shadow: 0 1px 0 rgba(10, 42, 75, .05); }
nav button { flex-shrink: 0; justify-content: flex-start; gap: 7px; padding: 14px 13px 12px; background: transparent; color: #526177; font-size: 12px; font-weight: 700; border-radius: 0; border-bottom: 2px solid transparent; }
nav button:hover { color: var(--navy); background: #f6fafc; }
nav button.active { color: var(--navy); border-bottom-color: var(--teal); background: linear-gradient(180deg, #fff, #f3fbfc); }
.nav-icon { width: 16px; display: inline-grid; place-items: center; color: #8390a1; font-size: 16px; }
nav button.active .nav-icon { color: #07808e; }
main { max-width: 1540px; margin: auto; padding: 28px 32px 52px; min-height: calc(100vh - 192px); }
h1 { color: #17365c; font-size: 28px; letter-spacing: -.025em; margin: 6px 0 8px; line-height: 1.25; }
h2 { color: #17365c; font-size: 18px; margin: 0 0 20px; letter-spacing: -.025em; }
h3 { color: #17365c; font-size: 16px; }
.eyebrow { display: block; font-size: 10px; font-weight: 700; letter-spacing: .08em; color: #667a91; margin-bottom: 6px; }
.muted { color: var(--muted); font-size: 13px; line-height: 1.6; }
.page-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 24px; }
.page-head p { margin: 0; }
.dashboard-hero { position: relative; overflow: hidden; border-radius: 15px; background: linear-gradient(120deg, var(--navy-2), var(--navy) 60%, #0c637b); color: white; padding: 27px 30px; box-shadow: var(--shadow); }
.dashboard-hero::before { content: ""; position: absolute; right: -90px; top: -150px; width: 360px; height: 360px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 50%; box-shadow: 0 0 0 60px rgba(255, 255, 255, .025), 0 0 0 120px rgba(255, 255, 255, .018); pointer-events: none; }
.dashboard-hero > div { position: relative; }
.dashboard-hero h1 { color: white; }
.dashboard-hero .eyebrow { color: #9de5eb; }
.dashboard-hero .muted { color: #d7e7f4; }
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin: 0 0 24px; }
.stat, .card { background: var(--surface); border: 1px solid var(--border); border-radius: 15px; padding: 23px 24px; box-shadow: var(--shadow); }
.stat { border-top: 3px solid var(--teal); padding: 19px 20px; transition: transform .15s ease, box-shadow .15s ease; }
.stat:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.stat:nth-child(2) { border-top-color: #4a77c2; }
.stat.alert { border-top-color: var(--gold); }
.stat:nth-child(4) { border-top-color: #42a16e; }
.stat strong { display: block; color: var(--navy); font-size: 31px; margin: 10px 0 5px; font-weight: 800; letter-spacing: -.035em; }
.stat span { font-size: 11px; color: #718097; }
.stat span:first-child { text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: .055em; }
.grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 22px; }
.card-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.card-head h2 { margin: 0; }
.row { display: flex; justify-content: space-between; gap: 18px; padding: 18px 0; border-bottom: 1px solid #edf1f5; align-items: center; }
.row:last-child { border: 0; }
.row-title { font-size: 13px; font-weight: 600; }
.row small { display: block; color: var(--muted); font-size: 11px; margin-top: 6px; }
.pill { display: inline-block; border-radius: 999px; padding: 4px 9px; border: 1px solid #e1e7ee; background: #f3f6f9; color: #526177; font-size: 11px; font-weight: 600; white-space: nowrap; }
.pill.warn { background: #fff5df; border-color: #f0ddae; color: #805e00; }
.pill.closed { background: #e9f7ef; border-color: #c7e6d2; color: #27633d; }
.empty { padding: 28px 10px; color: #758296; font-size: 13px; text-align: center; }
.flow { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 24px; padding: 20px 24px; background: linear-gradient(135deg, #fff 45%, #eefafc); border: 1px solid var(--border); border-top: 3px solid var(--teal); border-radius: 12px; font-size: 12px; color: #17365c; }
.flow span { font-weight: 600; }
.flow b { color: #07808e; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { text-align: left; font-weight: 700; text-transform: uppercase; font-size: 10px; letter-spacing: .055em; color: #647187; background: #f5f8fb; padding: 13px; border-bottom: 1px solid var(--border); }
td { padding: 16px 13px; border-bottom: 1px solid #edf1f5; vertical-align: middle; }
td:first-child { font-weight: 600; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #f8fbfd; }
.actions { display: flex; gap: 7px; flex-wrap: wrap; }
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.module-card { display: flex; flex-direction: column; min-height: 285px; border-top: 3px solid var(--teal); }
.module-card:nth-child(2) { border-top-color: #4a77c2; }
.module-card:nth-child(3) { border-top-color: var(--gold); }
.module-card h3 { font-size: 21px; margin: 24px 0 12px; }
.module-card p { flex: 1; }
.module-card button { align-self: flex-start; }
.module-icon { font-size: 24px; color: #087c8b; }
.banner { background: var(--teal-soft); border: 1px solid #c9ecef; border-radius: 11px; padding: 18px 22px; margin-bottom: 24px; color: #30445e; font-size: 13px; line-height: 1.7; }
footer { padding: 18px 32px; font-size: 11px; color: var(--muted); border-top: 1px solid var(--border); }
dialog { width: min(560px, 94vw); max-height: calc(100dvh - 32px); border: 1px solid var(--border); border-radius: 15px; padding: 28px; color: var(--text); box-shadow: 0 18px 50px rgba(8, 40, 90, .2); }
dialog::backdrop { background: rgba(5, 26, 60, .5); }
dialog:has(#privacy-job-result) { width:min(1100px,94vw); max-width:94vw; }
.privacy-fragment { border-top:1px solid var(--border); padding:12px 0; }
.privacy-comparison { display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; padding-top:12px; }
.privacy-fragment > summary { cursor:pointer; }
.privacy-comparison > p { grid-column:1; grid-row:1; margin:0; overflow-wrap:anywhere; }
.privacy-comparison > div { grid-column:1; grid-row:2; }
.privacy-comparison > label { grid-column:2; grid-row:1 / span 2; margin:0; }
.privacy-fragment textarea { min-height:150px; }
@media(max-width:700px) { .privacy-comparison { grid-template-columns:1fr; } .privacy-comparison > label,.privacy-comparison > p,.privacy-comparison > div { grid-column:1; grid-row:auto; } }
.microsoft-login-choice { margin: 20px 0; text-align: center; }
.microsoft-login { display: flex; justify-content: center; align-items:center; gap:12px; min-height:48px; padding: 13px 18px; border: 1px solid #929292; border-radius: 10px; background: #fff; color: #34445c; font:inherit; font-weight: 500; text-decoration: none; box-sizing:border-box; }
.microsoft-login:hover { background: #f5f7fa; border-color: var(--navy); }
.microsoft-logo { display:grid;grid-template-columns:repeat(2,9px);gap:2px; }
.microsoft-logo i { width:9px;height:9px;background:#f25022; }
.microsoft-logo i:nth-child(2) { background:#7fba00; }
.microsoft-logo i:nth-child(3) { background:#00a4ef; }
.microsoft-logo i:nth-child(4) { background:#ffb900; }
.document-number { font-weight:700; }
.sharepoint-files { list-style:none;padding:0;max-height:260px;overflow:auto; }
.sharepoint-files li { margin:8px 0; }
.sharepoint-files button { width:100%;text-align:left;overflow-wrap:anywhere; }
.microsoft-login:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.microsoft-login-choice small { display: block; margin-top: 7px; }
dialog .card { min-width: 0; overflow-wrap: anywhere; }
dialog .card a { white-space: normal; overflow-wrap: anywhere; }
.dialog-head { display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 2; background: #fff; padding-bottom: 12px; cursor: grab; touch-action: none; user-select: none; }
.dialog-head.dragging { cursor: grabbing; }
.dialog-head:focus-visible { outline: 2px solid var(--teal); outline-offset: 5px; border-radius: 6px; }
.reporting-fields { margin-top: 22px; border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; }
.reporting-fields legend { font-size: 13px; font-weight: 700; }
.reporting-fields p { font-size: 13px; line-height: 1.8; }
.icon-button { background: transparent; font-size: 25px; padding: 3px 10px; color: #647187; }
label { display: block; font-size: 12px; font-weight: 600; margin: 18px 0 7px; }
input, textarea, #fields select { width: 100%; border: 1px solid #cbd6e2; border-radius: 9px; padding: 10px 12px; margin-top: 7px; background: white; color: var(--text); transition: border-color .15s ease, box-shadow .15s ease; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 4px rgba(8, 167, 181, .16); }
textarea { min-height: 105px; resize: vertical; }
#form-error { color: #8b1f1f; font-size: 12px; }
#notice { position: fixed; z-index: 30; bottom: 24px; right: 24px; max-width: calc(100vw - 48px); background: white; border: 1px solid var(--border); border-left: 4px solid var(--teal); color: #193454; padding: 14px 22px; border-radius: 13px; display: none; box-shadow: 0 18px 45px rgba(8, 40, 90, .18); font-size: 12px; }
.detail { white-space: pre-wrap; line-height: 1.6; font-size: 14px; overflow-wrap: anywhere; }
.subtle { font-size: 11px; color: var(--muted); }
@media (max-width: 1100px) { .demo-badge { display: none; } }
@media (max-width: 950px) { .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid { grid-template-columns: 1fr; } .app-header { gap: 20px; } }
@media (max-width: 760px) { .app-header { padding: 12px 16px; gap: 16px; } .user-meta { display: none; } .brand-logo { width: 40px; height: 40px; } nav { padding: 0 10px; } nav button { padding: 12px 9px 10px; font-size: 11px; } main { padding: 22px 16px 36px; } .module-grid { grid-template-columns: 1fr; } .page-head { align-items: flex-start; flex-direction: column; } .dashboard-hero { padding: 24px; } h1 { font-size: 25px; } .header-organization select { max-width: 240px; } footer { padding: 18px 16px; } }
@media (max-width: 520px) { .app-header { flex-wrap: wrap; } .header-organization { flex: 1 1 100%; order: 3; } .header-organization select { max-width: none; } .stats { gap: 10px; } .stat { padding: 16px; } .card { padding: 18px; } .card-head { flex-wrap: wrap; } .module-card { min-height: 265px; } .nav-icon { display: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } .stat:hover { transform: none; } }
.header-button { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); color: white; padding: 7px 10px; font-size: 11px; }
.header-button:hover { background: rgba(255,255,255,.16); }
.auth-mode .app-header, .auth-mode nav, .auth-mode footer { display: none; }
.auth-mode { background: #f5f8fc; }
.auth-mode main { max-width: none; padding: 0; min-height: 100vh; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(380px,1.02fr) minmax(420px,.98fr); }
.login-brand { position: relative; overflow: hidden; padding: 64px clamp(42px,7vw,105px); background: linear-gradient(145deg,var(--navy-2),var(--navy) 58%,#0d6781); color: white; display: flex; flex-direction: column; justify-content: center; }
.login-brand::before { content: ""; position: absolute; width: 540px; height: 540px; right: -260px; top: -210px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018); pointer-events: none; }
.login-brand::after { content: ""; position: absolute; width: 310px; height: 310px; left: -160px; bottom: -160px; background: radial-gradient(circle,rgba(8,167,181,.42),transparent 68%); pointer-events: none; }
.brand-kicker { color: #8ce4ec; font-size: 12px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 18px; }
.login-brand h2 { max-width: 620px; margin: 0; font-size: clamp(36px,4.2vw,62px); line-height: 1.05; letter-spacing: -.035em; color: white; }
.login-brand h2 span { color: #7ee0e8; }
.login-brand p { max-width: 590px; margin: 24px 0 0; color: #d7e5f3; font-size: 17px; line-height: 1.7; }
.brand-points { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.brand-point { border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.07); border-radius: 999px; padding: 9px 13px; font-size: 12px; font-weight: 700; color: #e9f3fb; }
.brand-point i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #4dd1dc; margin-right: 7px; box-shadow: 0 0 0 4px rgba(77,209,220,.10); }
.login-area { display: flex; align-items: center; justify-content: center; padding: 42px; background: radial-gradient(circle at 80% 10%,#e9f8fa 0,transparent 28%),#f7f9fc; }
.login-card { width: 100%; max-width: 455px; margin: 0; background: white; padding: 38px; border-radius: 22px; border: 1px solid #e3eaf2; box-shadow: 0 24px 70px rgba(12,40,78,.11); }
.login-identity { display: flex; align-items: center; gap: 15px; margin-bottom: 30px; }
.login-logo { width: 64px; height: 64px; object-fit: contain; }
.login-title h1 { margin: 0; font-size: 27px; color: var(--navy); letter-spacing: -.02em; }
.login-title .brand-one { color: #0ca7b5; }
.login-org { color: #6b7890; font-size: 12px; margin-top: 4px; }
.login-card > h2 { font-size: 20px; margin: 0 0 4px; color: var(--text); }
.login-card .intro { color: #6b7890; font-size: 13px; margin: 0 0 24px; }
.login-card label { font-weight: 700; margin: 0 0 7px; font-size: 13px; color: #34445c; }
.login-card input { display: block; padding: 12px 13px; margin: 0 0 18px; border-radius: 10px; }
.login-card button { width: 100%; padding: 13px 18px; border-radius: 10px; font-weight: 750; box-shadow: 0 8px 20px rgba(8,40,90,.18); }
.login-foot { margin-top: 24px; padding-top: 18px; border-top: 1px solid #eef2f6; color: #8994a6; font-size: 11px; display: flex; justify-content: space-between; gap: 10px; }
#login-error:empty { display: none; }
@media(max-width:900px) { .login-shell { grid-template-columns: 1fr; } .login-brand { min-height: 280px; padding: 48px 34px; } .login-brand h2 { font-size: 39px; } .login-brand p { font-size: 15px; } .login-area { padding: 28px 18px; } }
@media(max-width:520px) { .login-brand { min-height: 230px; padding: 36px 24px; } .login-brand h2 { font-size: 31px; } .login-brand p,.brand-points { display: none; } .login-card { padding: 28px 22px; border-radius: 17px; } }
#login-error, #editor-error { color: #8b1f1f; font-size: 13px; }
.process-grid { display: grid; gap: 22px; }
.administration-context { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 10px; }
.administration-context span:first-child { color: var(--navy); font-weight: 700; }
.administration-nav { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 10px; margin-bottom: 24px; border-bottom: 1px solid var(--border); }
.administration-nav button { white-space: nowrap; font-size: 12px; background: transparent; flex-shrink: 0; }
.administration-nav button.active { color: #086d7b; background: var(--teal-soft); }
.administration-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.administration-card { display: flex; flex-direction: column; align-items: flex-start; }
.administration-card h2 { margin: 18px 0 0; }
.administration-card p { flex: 1; }
.administration-roadmap { margin-top: 24px; }
.administration-roadmap h2 { margin-bottom: 10px; }
@media(max-width:1100px) { .administration-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) { .administration-grid { grid-template-columns: 1fr; } }
#process-editor { display: grid; gap: 22px; }
#process-editor > .card,#process-editor .workspace-part > .card { margin:0; }
.process-hierarchy-guide { display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:20px 24px;margin-bottom:28px;border:1px solid var(--border);border-left:4px solid var(--teal);border-radius:12px;background:#f3fafb; }
.process-hierarchy-guide p { flex-basis:100%;margin:0;line-height:1.6; }
.process-library-section { margin:28px 0; }
.process-library-card h3 { margin:8px 0 14px; }
.workspace-part { min-width:0;padding:24px;border:1px solid var(--border);border-left:4px solid var(--teal);border-radius:14px;background:#fff; }
.workspace-phase-heading { display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px 12px;cursor:pointer;list-style:none; }
.workspace-phase-heading::-webkit-details-marker { display:none; }
.workspace-phase-heading::before { content:'▸';grid-column:1;grid-row:1 / 3;color:var(--teal);font-size:22px; }
.workspace-part[open] > .workspace-phase-heading::before { content:'▾'; }
.workspace-phase-heading .eyebrow { grid-column:2 / -1; }
.workspace-phase-heading > strong { grid-column:2;font-size:20px;color:var(--navy); }
.workspace-part-content { display:grid;gap:20px;padding-top:24px; }
.workspace-part:not([open]) > .workspace-part-content { display:none; }
.workspace-part-content > .editor-phase-block { margin:0;padding:0;border:0; }
.workspace-phase-settings { border:1px solid var(--border);border-radius:10px;background:#f7fafc; }
.workspace-phase-settings > summary { padding:16px;cursor:pointer;font-weight:600; }
.workspace-phase-settings > section { margin:0;padding:18px;border:0;border-radius:0;background:transparent;box-shadow:none; }
#process-editor .editor-question > .editor-row { display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;padding:22px; }
#process-editor .question-settings,#process-editor .field-rules { grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;margin:0;padding:20px;border:1px solid var(--border);border-radius:10px;min-width:0; }
#process-editor .question-settings legend,#process-editor .field-rules legend { padding:0 8px;font-weight:700;color:var(--navy); }
#process-editor .question-settings label,#process-editor .field-rules label { margin:0;min-width:0; }
#process-editor .question-settings input:not([type=checkbox]),#process-editor .question-settings textarea,#process-editor .field-rules input:not([type=checkbox]) { display:block;width:100%;margin-top:7px; }
#process-editor .question-settings textarea { min-height:90px;resize:vertical; }
#process-editor .question-settings .matrix-editor,#process-editor .question-settings .calculation-editor,#process-editor .question-placement .actions { grid-column:1 / -1;min-width:0; }
#process-editor .question-settings:not(:has(label,div,input,textarea,select)) { display:none; }
#process-editor .question-placement { background:#f8fafc; }
#process-editor .question-placement > button { justify-self:start;align-self:end; }
#process-editor .editor-step > .editor-row { align-items:start;gap:22px; }
#process-editor .editor-step > .editor-row > label { margin:0; }
#process-editor .editor-phase-overview { margin:0; }
@media(max-width:760px) { .workspace-part { padding:16px; } #process-editor .editor-question > .editor-row { padding:14px; } #process-editor .question-settings,#process-editor .field-rules { grid-template-columns:minmax(0,1fr);gap:16px;padding:16px; } .workspace-phase-heading > .muted { grid-column:2; } }
.type-choices { border: 0; padding: 0; margin-top: 22px; display: flex; flex-wrap: wrap; gap: 16px; }
.type-choices legend { font-size: 12px; font-weight: 600; margin-bottom: 10px; }
.type-choices label, .checkbox-label { display: flex; align-items: center; gap: 8px; }
.type-choices input, .checkbox-label input { width: auto; margin: 0; }
.editor-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; align-items: end; }
.editor-fields > .editor-row { padding: 16px 0; border-bottom: 1px solid var(--border); }
.editor-step { display: flex; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--border); }
.editor-step .editor-row { flex: 1; min-width: 0; }
.step-number { flex-shrink: 0; width: 32px; height: 32px; display: grid; place-items: center; background: var(--teal-soft); color: #087c8b; border-radius: 50%; font-weight: 700; margin-top: 18px; }
.editor-toolbar { position: sticky; bottom: 0; z-index: 5; padding: 18px 24px; background: rgba(255,255,255,.97); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow); }
.editor-toolbar p { margin: 0 0 10px; }
.version-list { margin-top: 24px; }
.version-list small { display: block; }
.header-organization > strong { display: block; color: #fff; font-size: 14px; margin-bottom: 5px; }
.header-organization select { display: block; margin-bottom: 5px; }
.header-organization select[hidden] { display: none; }
.matrix-editor { grid-column: 1 / -1; border: 1px solid var(--border); border-radius: 12px; padding: 16px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.matrix-editor > p,.matrix-editor > .table-wrap { grid-column: 1 / -1; }
.matrix-editor th,.matrix-editor td,.risk-grid td,.risk-grid th { padding: 8px; font-size: 11px; }
.matrix-editor select { min-width: 100px; }
.risk-field { padding: 16px; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 18px; }
.risk-field output { display: block; padding: 12px; background: var(--teal-soft); color: var(--navy); font-weight: 750; border-radius: 8px; margin-bottom: 10px; }
.risk-grid .selected-risk { background: var(--navy); color: white; font-weight: 800; }
.dossier-toolbar { margin-bottom: 20px; }
.dossier-progress { display: flex; list-style: none; padding: 0; gap: 12px; overflow: auto; margin: 0 0 24px; }
.dossier-progress li { flex: 1; min-width: 145px; border: 1px solid var(--border); background: #fff; border-radius: 12px; padding: 14px; }
.dossier-progress span { display: block; font-weight: 800; color: var(--teal); margin-bottom: 8px; }
.dossier-progress strong,.dossier-progress small { display: block; }
.dossier-progress .current { border: 2px solid var(--teal); background: var(--teal-soft); }
.dossier-progress .done { border-color: var(--teal); }
.dossier-progress .skipped { opacity: .6; }
.dossier-phase { padding: 12px 0; border-bottom: 1px solid var(--border); }
#main > .card { margin-bottom: 20px; }
[hidden] { display: none !important; }
@media(max-width:760px) { .matrix-editor { grid-template-columns: 1fr; } }
@media(max-width:760px) { .editor-row { grid-template-columns: 1fr; } .editor-step { gap: 10px; } .editor-toolbar { position: static; padding: 18px; } }
.field-rules { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 18px; border: 1px solid #dbe3ed; border-radius: 10px; }
.field-rules legend { font-weight: 600; padding: 0 8px; }
.field-rules label { margin: 0; min-width: 0; }
.field-rules select, .filter-grid select, #process-editor select { display:block; width:100%; border:1px solid var(--border); border-radius:9px; padding:10px 12px; margin-top:7px; background:white; color:var(--text); }
.field-answer-choices { padding:12px; border:1px solid var(--border); border-radius:9px; }
.field-answer-choices p { margin:0 0 10px; font-weight:600; }
.field-answer-choices label { padding:6px 0; font-weight:normal; }
.field-rules small { display: block; font-weight: normal; margin-top: 6px; }
.filter-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) auto; gap: 12px; align-items: end; }
.user-picker { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 16px; }
.user-picker input { flex: 1; min-width: 140px; }
.user-picker small { flex-basis: 100%; }
@media(max-width:700px) { .field-rules,.filter-grid { grid-template-columns: 1fr; } }
:root { scroll-behavior: smooth; }
.user-combobox { position:relative; width:100%; }
.user-combobox input { width:100%; }
.user-options { position:absolute; z-index:30; top:100%; left:0; right:0; padding:8px; border:1px solid #cddbe8; border-radius:10px; background:white; box-shadow:0 10px 30px #08285a25; }
.user-options [role=listbox] { max-height:240px; overflow-y:auto; }
.user-options [role=option] { display:block; text-align:left; width:100%; background:white; color:#08285a; padding:10px; border:0; }
.user-options [role=option]:hover,.user-options .highlight { background:#e4f6f8; }
.picker-footer { display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding-top:8px; border-top:1px solid #edf1f5; }
.question-help { color:#58708d; font-size:14px; margin:4px 0 18px; white-space:pre-wrap; }
.task-card { border:1px solid var(--border); border-top:3px solid #4a77c2; }
.task-card h2 { margin-bottom:10px; }
.phase-card[data-phase-state="pending"] { border-top-color:#c79331; }
.phase-card[data-phase-state="completed"] { border-top-color:#42a16e; }
.phase-card[data-phase-state="correction"] { border-top-color:#ba6656; }
.phase-card-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:18px; }
.phase-card-heading h2 { margin:0; }
.phase-status { display:block; font-size:17px; line-height:1.45; color:var(--navy); }
.phase-decision { display:flex; flex-direction:column; align-items:flex-start; gap:10px; max-width:100%; }
.phase-decision-error { margin:0; max-width:360px; }
.phase-decision-error:empty { display:none; }
@media(max-width:760px) { .phase-decision { margin-top:12px; }.phase-decision .phase-status { margin-top:0; } }
.phase-assignment { margin:0 0 20px; font-size:13px; color:#526177; }
.phase-assignment span { display:block; margin-top:5px; font-size:12px; color:var(--muted); }
.phase-save-status { display:block; color:#526177; font-size:12px; margin:14px 0; }
.review-waiting { margin:16px 0; font-size:14px; }
.review-invalidated { color:#8c4335; font-weight:600; line-height:1.6; margin:18px 0; }
.reviewer-list { list-style:none; padding:0; margin:10px 0 22px; }
.reviewer-list li { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid #edf1f5; font-size:13px; }
.reviewer-list li>div { text-align:right; }
.reviewer-list small { display:block; color:var(--muted); font-size:11px; margin-top:4px; }
.review-content,.review-history { margin:18px 0; padding:16px 0; border-top:1px solid #edf1f5; }
.review-content summary,.review-history summary { font-size:14px; font-weight:650; color:var(--navy); cursor:pointer; }
.review-content h3,.review-answer h3 { margin:20px 0 8px; font-size:13px; }
.review-content .detail,.review-reason p { margin:8px 0 16px; line-height:1.7; }
.review-reason { padding:14px 0; border-top:1px solid #edf1f5; font-size:13px; }
.review-reason small { color:var(--muted); }
.phase-explanation { margin-top:24px; color:var(--muted); font-size:12px; line-height:1.6; }
.phase-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.review-form,#phase-form { margin-top:24px; }
.review-form label,#phase-form label { display:block; font-size:13px; font-weight:600; margin:18px 0 8px; }
.review-form select,.review-form textarea,#phase-form textarea { display:block; box-sizing:border-box; width:100%; margin-top:8px; padding:12px 14px; border:1px solid #cbd6e2; border-radius:9px; background:#fff; color:var(--text); font:inherit; font-weight:400; }
.review-form select { min-height:46px; }
.review-form textarea,#phase-form textarea { min-height:120px; resize:vertical; }
.dossier-toolbar { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:24px; }
.dossier-toolbar .actions { gap:10px; }
.dossier-menu { position:relative; }
.dossier-menu>summary { list-style:none; cursor:pointer; background:#f3f6f9; border:1px solid var(--border); border-radius:9px; padding:12px 16px; font-size:13px; font-weight:650; color:var(--navy); }
.dossier-menu>summary::-webkit-details-marker { display:none; }
.dossier-menu-content { position:absolute; z-index:11; right:0; width:300px; max-width:calc(100vw - 64px); padding:12px; margin-top:8px; border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:var(--shadow-hover); }
.dossier-menu-content button { display:block; width:100%; text-align:left; margin-bottom:8px; }
.dossier-menu-content button:last-child { margin-bottom:0; }
.dossier-menu-actions { display:grid; gap:8px; margin-bottom:8px; }
.dossier-menu-actions button { margin:0; }
.dossier-progress .current { border:1px solid var(--border); border-top:3px solid #4a77c2; background:#fff; }
.dossier-progress .done { border:1px solid var(--border); border-top:3px solid #42a16e; }
.dossier-timeline { list-style:none; padding:0; margin:20px 0 0; }
.timeline-round-heading { padding:14px 0; font-weight:750; font-size:14px; color:var(--navy); border-top:2px solid #dce5ee; margin-top:18px; }
.timeline-event { border-left:2px solid #e1e8ee; padding:4px 0 22px 20px; margin-left:4px; }
.timeline-event h3 { font-size:14px; margin:0 0 8px; }
.timeline-meta { font-size:12px; color:#526177; margin:0 0 8px; }
.timeline-phase { font-size:11px; color:var(--muted); margin:0 0 10px; }
.timeline-event .detail { margin:0 0 10px; line-height:1.7; }
@media(max-width:760px) { .phase-card-heading { display:block; }.phase-status { margin-top:12px; }.reviewer-list li { flex-direction:column; gap:6px; }.reviewer-list li>div { text-align:left; }.dossier-menu-content { right:auto; left:0; }.phase-actions>button { width:100%; } }
.filter-grid { align-items:end; }
.pagination { justify-content:center; margin:20px 0; }
.field-rules { align-items:start; }
[hidden] { display:none !important; }

.sharepoint-search { display:flex; gap:8px; align-items:end; margin:14px 0; }
.sharepoint-search label { flex:1; margin:0; }
.sharepoint-files { list-style:none; padding:0; border:1px solid var(--border); border-radius:10px; }
.sharepoint-files li { border-bottom:1px solid var(--border); }
.sharepoint-files li:last-child { border-bottom:0; }
.sharepoint-files button { display:flex; width:100%; justify-content:space-between; text-align:left; border:0; border-radius:0; background:white; gap:12px; }
.sharepoint-files small { white-space:nowrap; color:var(--muted); }

.notification-link{padding:0;background:transparent;border:0;color:#08285a;text-align:left;text-decoration:underline;font:inherit;cursor:pointer}.transfer-export-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.entra-settings{border-top:4px solid #168f9e}.transfer-export-options input,.entra-settings select{width:100%}#form .document-save-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}#form .document-save-actions button{margin:0;min-height:44px}#form .document-save-actions button[hidden]{display:none}#document-export-progress progress{width:100%;height:20px}@media(max-width:600px){#form .document-save-actions{flex-direction:column}#form .document-save-actions button{width:100%}}#document-import-preview{overflow:auto;margin-top:20px}
/* KEM: compact phase editor and privacy administration */
.editor-phase{margin:1.2rem 0;padding:1rem;border:1px solid var(--border,#dce3eb);border-radius:12px;border-top:4px solid var(--primary,#167d8d)}
.editor-question{border:1px solid var(--border,#dce3eb);border-radius:8px;margin:.5rem 0;background:#fff}
.editor-question>summary,.editor-step>summary,.privacy-rule>summary{padding:.8rem;cursor:pointer;font-weight:600}
.editor-question>.editor-row,.editor-step>.editor-row{padding:1rem}
details.editor-step{display:block;margin:.8rem 0;border:1px solid var(--border,#dce3eb);border-radius:8px}
.privacy-rule{margin:.6rem 0;border:1px solid var(--border,#dce3eb);border-radius:8px;padding:.4rem}
.privacy-rule label{margin:.8rem}
#privacy-result,#privacy-source{min-height:160px}
.editor-phase .empty{padding:.8rem;min-height:0}
.editor-phase-block{border-top:4px solid var(--teal);margin:20px 0}
.editor-question>summary{cursor:grab;user-select:none;touch-action:pan-y}
.question-dragging,.question-dragging *{cursor:grabbing!important;user-select:none!important}
.editor-drag-ghost{position:fixed;z-index:1000;pointer-events:none;background:white;border:2px solid var(--teal);border-radius:10px;box-shadow:0 14px 36px #08285a40;opacity:.96;will-change:transform}
.editor-drag-ghost>summary{display:block;padding:14px;font-weight:600;list-style:none}
.question-drag-status{display:block;padding:0 14px 10px;color:var(--teal);font-weight:600}
.editor-question-placeholder{display:flex;align-items:center;justify-content:center;margin:8px 0;border:2px dashed var(--teal);border-radius:10px;background:#eaf7f8;color:var(--teal);font-weight:600}
.editor-drag-ghost.invalid-drop,.editor-question-placeholder.invalid-drop{border-color:#b33a35;background:#fff4f2;color:#a52924}
.editor-drag-ghost.invalid-drop .question-drag-status{color:#a52924}
.document-combobox{position:relative;width:100%}
.document-search-line{position:relative}
.document-search-line input{padding-right:42px}
.document-clear{position:absolute;right:5px;top:12px;padding:6px 10px;background:transparent;color:var(--text);border:0;box-shadow:none;font-size:20px}
.document-options{position:absolute;z-index:40;top:100%;left:0;right:0;padding:8px;border:1px solid var(--border);border-radius:10px;background:white;box-shadow:0 10px 30px #08285a25}
.document-options[hidden]{display:none}
.document-options.document-options-up{top:auto;bottom:100%}
.document-options [role=listbox]{max-height:240px;overflow-y:auto}
.document-options [role=option]{display:block;text-align:left;width:100%;padding:10px;background:white;color:var(--text);border:0;white-space:normal}
.document-options [role=option]:hover,.document-options .highlight{background:#e4f6f8}
.editor-phase-block>.card-head{align-items:center;gap:16px}
.editor-phase-label{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--teal)}
.editor-phase-block h2{margin:5px 0}
.editor-phase-questions{border-top:1px solid var(--border);margin-top:20px;padding-top:12px}
.editor-phase-block .editor-step{background:var(--light,#f5f8fc);padding:0;border-bottom:1px solid var(--border)}
.editor-base-fields>summary{font-weight:600;cursor:pointer;padding:12px 0}
.editor-base-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.editor-base-field{padding:14px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}
.editor-base-field .pill{margin-right:10px}
.editor-base-field strong{display:block;margin-top:8px}
.editor-base-field p{margin:8px 0 0}
@media(max-width:760px){.editor-base-grid{grid-template-columns:1fr}.editor-phase-block>.card-head{align-items:flex-start;flex-wrap:wrap}}
.entra-mapping{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:16px;padding:16px;border:1px solid #d7e2eb;border-radius:10px}.entra-mapping label{margin:0}.entra-mapping button{margin-bottom:0}.entra-role-settings{margin:24px 0;padding:20px;border:1px solid #d7e2eb;border-radius:12px}.entra-role-settings legend{font-weight:700}.entra-role-settings>label{display:block;margin-top:16px}.entra-role-settings .checkbox-label{display:flex}#entra-group-results{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}@media(max-width:800px){.entra-mapping{grid-template-columns:1fr}.entra-role-settings{padding:12px}}
.editor-base-field > summary { cursor: grab; padding: 8px 0; font-weight: 600; }
.editor-base-field > summary:active { cursor: grabbing; }
.risk-history-fields { margin: 0; }
.risk-history-fields dt { margin-top: 14px; font-weight: 600; }
.risk-history-fields dd { margin: 4px 0 0; white-space: pre-line; overflow-wrap: anywhere; }
.editor-fields > .editor-base-field { margin: 12px 0; border-left: 4px solid #7c9eb3; background: #edf4f7; }
.preview-base-field { padding: 12px; margin: 12px 0; border-left: 4px solid #7c9eb3; background: #edf4f7; border-radius: 8px; }
.risk-level-low { --risk-accent: #258249; }
.risk-level-medium { --risk-accent: #b99300; }
.risk-level-high { --risk-accent: #d66c15; }
.risk-level-critical { --risk-accent: #c73b36; }
.risk-level-unknown { --risk-accent: #748399; }
.risk-assessment { border-top: 4px solid var(--risk-accent); }
#risk-score { display: block; padding: 12px; margin: 12px 0; border-top: 4px solid var(--risk-accent, #748399); font-weight: 600; background: #f7f9fb; }
.home { --home-ink:#102f53; --home-soft:#edf6f6; }
.home button { font-family:inherit; }
.home-hero { position:relative; display:flex; align-items:center; justify-content:space-between; gap:30px; overflow:hidden; isolation:isolate; padding:38px 42px; border-radius:20px; color:white; background:linear-gradient(118deg,#071c3b 0%,#10365b 65%,#145b6b 100%); box-shadow:0 14px 36px #0a284c12; min-height:245px; }
.home-hero h1 { color:white; font-size:clamp(28px,3.1vw,43px); font-weight:600; line-height:1.15; letter-spacing:-1.3px; margin:16px 0 12px; }
.home-hero .eyebrow { color:#92d7db; font-size:10px; letter-spacing:1.7px; }
.home-hero p { color:#d5e4ee; font-size:16px; line-height:1.6; margin:0 0 22px; }
.home-dot { color:#5ad4ca; }
.home-context { display:flex; align-items:center; gap:9px; color:#b9cfdf; font-size:11px; flex-wrap:wrap; }
.home-live { width:6px; height:6px; background:#61d3bd; border-radius:50%; box-shadow:0 0 0 4px #61d3bd12; }
.home-hero-actions { z-index:2; display:flex; flex-direction:column; align-items:flex-end; gap:13px; flex-shrink:0; }
.home-customize { display:flex; gap:9px; align-items:center; border:1px solid #ffffff40; border-radius:10px; color:white; background:#ffffff10; padding:12px 16px; backdrop-filter:blur(10px); }
.home-customize:hover { background:#ffffff22; border-color:#ffffff70; }
.home-customize svg { width:16px; height:16px; }
.home-standard-link { background:none; border:0; color:#b9d8e5; font-size:11px; padding:3px 0; }
.home-orbit { z-index:-1; position:absolute; right:24%; top:50%; transform:translate(50%,-50%) rotate(-17deg); width:250px; height:250px; color:#b2e1e64a; }
.home-orbit i { position:absolute; inset:0; border:1px solid #a4d9de16; border-radius:50%; }
.home-orbit i:nth-child(2) { inset:30px; }.home-orbit i:nth-child(3) { inset:-35px; }
.home-orbit span { position:absolute; inset:80px; }.home-orbit svg { width:100%; height:100%; }
.home-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:31px 2px 19px; }
.home-section-heading .eyebrow { font-size:9px; letter-spacing:1.5px; color:#688185; }.home-section-heading h2 { font-size:23px; margin:7px 0 0; font-weight:600; letter-spacing:-.6px; }.home-section-heading p { font-size:11px; color:var(--muted); margin:0 0 3px; }
.home-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.home-widget { background:white; border:1px solid #dfe8ed; border-top:4px solid var(--teal); border-radius:15px; min-width:0; overflow:hidden; box-shadow:0 4px 18px #0a284c04; }
.home-size-full { grid-column:1/-1; }.home-widget-head { display:flex; align-items:center; gap:12px; padding:22px 24px 17px; min-height:78px; }.home-widget-head h2 { font-size:17px; margin:3px 0 0; line-height:1.2; font-weight:600; letter-spacing:-.25px; }.home-widget-head > .home-text-button,.home-move { margin-left:auto; }
.home-widget-kicker { color:#7a8a9b; font-size:8px; letter-spacing:1.4px; font-weight:600; }.home-widget-icon { width:36px; height:36px; display:grid; place-items:center; background:#e8f7f7; color:#087e89; border-radius:10px; flex-shrink:0; }.home-widget-icon svg { width:19px; height:19px; }
.home-text-button { background:none; border:0; color:#527086; font-size:11px; padding:4px; white-space:nowrap; }.home-text-button:hover { color:var(--navy); text-decoration:underline; }
.home-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:0 9px 21px; }.home-metric { display:block; text-align:left; background:transparent; border:0; border-right:1px solid #e8eef1; border-radius:0; padding:4px 22px; color:var(--home-ink); min-width:0; }.home-metric:last-child { border:0; }.home-metric > span { font-size:12px; display:block; }.home-metric strong { display:flex; justify-content:space-between; align-items:center; font-size:38px; font-weight:500; letter-spacing:-1px; margin:10px 0 7px; line-height:1; }.home-metric small { font-size:18px; color:#93aab3; font-weight:400; }.home-metric .home-metric-note { font-size:10px; color:#7b8898; }.home-metric:hover { background:#f7fafb; }.home-metric-0 strong { color:#087e89; }
.home-shortcut-buttons { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; padding:0 24px 24px; }
.home-shortcut-buttons button { display:flex; align-items:center; gap:13px; min-height:88px; background:linear-gradient(120deg,#10365b,#08285a); border:1px solid #163f66; border-radius:12px; padding:18px 16px; text-align:left; font-size:13px; font-weight:600; line-height:1.45; color:white; box-shadow:0 4px 10px #08285a14; transition:background .16s,border-color .16s,box-shadow .16s,transform .16s; }
.home-shortcut-buttons button span { width:42px; height:42px; display:grid; place-items:center; flex-shrink:0; border:1px solid #74d5d142; border-radius:11px; background:#1b5a70; color:#a5f0e7; }
.home-shortcut-buttons svg { width:22px; height:22px; }
.home-shortcut-buttons b { margin-left:auto; width:25px; height:25px; display:grid; place-items:center; flex-shrink:0; border-radius:50%; font-size:17px; font-weight:400; color:#b9e0e8; background:#ffffff0d; }
.home-shortcut-buttons button:hover { border-color:#3fa8b1; background:linear-gradient(120deg,#13465f,#0a355b); box-shadow:0 8px 18px #08285a22; transform:translateY(-2px); }
.home-shortcut-buttons button:active { transform:translateY(0); box-shadow:0 2px 5px #08285a14; }

.home-rows { padding:0 24px; }.home-row { display:flex; align-items:center; gap:12px; width:100%; padding:16px 0; background:none; border:0; border-top:1px solid #edf1f4; border-radius:0; text-align:left; }.home-row:hover { background:#f8fafb; }.home-row-main { flex:1; min-width:0; }.home-row-main strong { display:block; font-size:12px; font-weight:600; color:#284460; line-height:1.5; overflow-wrap:anywhere; }.home-row-main small { display:block; font-size:10px; margin-top:4px; color:#7b8899; line-height:1.5; }.home-row-marker { width:5px; height:26px; border-radius:3px; background:#afdad9; flex-shrink:0; }.home-row-marker.late { background:#d99a59; }.home-row-arrow { font-size:14px; color:#9babb7; }.home-badge { color:#5c7488; background:#f0f4f8; border-radius:5px; font-size:9px; padding:4px 6px; max-width:110px; }.home-badge.late { background:#fbf0df; color:#966121; }.home-list-foot { padding:12px 24px; font-size:10px; color:#7b8c9a; background:#fbfcfd; border-top:1px solid #edf1f4; }
.home-widget-empty { min-height:175px; display:flex; justify-content:center; align-items:center; flex-direction:column; text-align:center; padding:18px 24px 27px; }.home-widget-empty > span { display:grid; place-items:center; width:46px; height:46px; color:#6c9b9b; background:#f0f7f6; border:1px solid #e5efed; border-radius:50%; margin-bottom:14px; }.home-widget-empty svg { width:22px; height:22px; }.home-widget-empty strong { font-weight:500; font-size:13px; color:#3c5b6d; }.home-widget-empty p { font-size:11px; color:#8995a3; max-width:260px; margin:7px 0 0; line-height:1.7; }
.home-skeleton,.home-loading { padding:30px; color:#758da1; font-size:13px; }.home-skeleton { min-height:120px; background:linear-gradient(110deg,#fff,#f7fafb,#fff); }.home-failure { padding:24px; color:var(--muted); }.home-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; color:#8c99a8; font-size:10px; padding:24px 2px; }.home-quiet { color:var(--muted); font-size:12px; }.home-empty-layout { grid-column:1/-1; border:1px dashed #afc8d3; border-radius:15px; padding:40px; text-align:center; }
.home-editor-toolbar { margin:22px 0; padding:24px; border:1px solid #b6d9df; border-radius:15px; background:#edf7f7; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }.home-editor-toolbar h2 { margin:0 0 6px; font-size:19px; }.home-editor-toolbar p { margin:0; font-size:12px; color:#68818b; }.home-editor-toolbar > .subtle { width:100%; font-size:11px; }.home-add { display:flex; align-items:flex-end; gap:10px; }.home-add label { font-size:11px; margin:0; }.home-add select { display:block; margin-top:5px; background:white; }.home-editor-toolbar #home-edit-error { color:#a72f36; width:100%; }.home-editor-toolbar #home-edit-error:empty { display:none; }.home-edit-label { font-size:12px; color:#c5e6e7; }.home-move { display:flex; gap:5px; }.home-icon-button { border:1px solid var(--border); background:white; border-radius:7px; color:#476479; padding:5px 8px; font-size:13px; }.home-widget-settings { border-top:1px solid #e7eef2; padding:18px 24px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; background:#fbfcfd; }.home-widget-settings label { font-size:11px; margin:0; }.home-widget-settings input:not([type=checkbox]),.home-widget-settings select { width:100%; display:block; margin-top:6px; min-width:0; }.home-widget-description { grid-column:1/-1; font-size:11px; color:#748793; line-height:1.6; margin:0; }.home-widget-settings fieldset { grid-column:1/-1; border:1px solid var(--border); border-radius:9px; padding:12px; }.home-widget-settings legend { font-size:11px; }.home-widget-settings .checkbox-label { margin:6px 0; }.home-editing .home-widget-head { cursor:grab; }.home-dragging { opacity:.45; }.home-drop { outline:2px solid var(--teal); outline-offset:2px; }.home button:focus-visible,.home input:focus-visible,.home select:focus-visible { outline:3px solid #08a7b580; outline-offset:3px; }
@media(max-width:900px) { .home-hero { padding:30px; }.home-orbit { right:30%; opacity:.45; }.home-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:22px; }.home-metric:nth-child(2) { border:0; }.home-widget-head { padding:19px 18px; }.home-rows { padding:0 18px; } }
@media(max-width:640px) { .home-hero { padding:27px 23px; flex-direction:column; align-items:flex-start; gap:22px; border-radius:15px; }.home-hero-actions { align-items:flex-start; }.home-hero h1 { font-size:30px; }.home-hero p { font-size:14px; }.home-context { font-size:10px; }.home-orbit { right:0; opacity:.25; }.home-grid { grid-template-columns:minmax(0,1fr); gap:15px; }.home-size-half,.home-size-full { grid-column:1; }.home-section-heading p { display:none; }.home-section-heading h2 { font-size:21px; }.home-shortcut-buttons { padding:0 18px 18px; grid-template-columns:1fr; }.home-metric { padding:4px 15px; }.home-metric strong { font-size:32px; }.home-metric .home-metric-note { font-size:9px; }.home-add { flex-wrap:wrap; }.home-widget-settings { padding:18px; }.home-widget-head h2 { font-size:15px; }.home-row { gap:9px; } }
@media(prefers-reduced-motion:reduce) { .home-shortcut-buttons button:hover { transform:none; } }

.home-widget-settings select,.home-add select { min-height:38px; padding:8px 10px; border:1px solid #dbe5eb; border-radius:8px; color:#34536a; background:white; font:inherit; }
.privacy-steps { display:flex; width:100%; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 22px; }
.privacy-steps li { padding:9px 12px; border-radius:8px; background:#f0f4f8; color:#66788b; font-size:12px; }
.privacy-steps li.current { color:#075a65; background:#e2f6f4; box-shadow:inset 0 -3px var(--teal); font-weight:600; }
.privacy-review-dossier { width:100%; margin:18px 0; padding:16px; border:1px solid var(--border); border-top:4px solid var(--teal); border-radius:10px; }
.privacy-review-dossier > summary { font-weight:600; color:var(--navy); cursor:pointer; }
.privacy-review-toolbar { display:flex; width:100%; flex-wrap:wrap; justify-content:flex-end; gap:12px; position:sticky; z-index:1; bottom:0; padding:16px 0 4px; background:white; border-top:1px solid var(--border); }
.privacy-review-status { font-weight:600; color:#286473; }
.privacy-review-dossier .privacy-comparison { grid-template-columns:repeat(2,minmax(0,1fr)); }
.privacy-review-dossier .privacy-comparison > div { grid-column:auto; grid-row:auto; min-width:0; overflow-wrap:anywhere; }
.privacy-review-dossier .privacy-comparison .detail { margin:10px 0; }
.privacy-comparison del { color:#873340; background:#fde9ed; text-decoration:line-through; }.privacy-comparison ins { color:#176448; background:#e1f5e9; text-decoration:none; border-bottom:2px solid #5eac89; }
.regulatory-card { border-top:4px solid var(--teal); }.regulatory-card a { overflow-wrap:anywhere; }.regulatory-download { display:inline-flex; align-items:center; padding:10px 14px; border-radius:8px; border:1px solid var(--border); color:var(--navy); text-decoration:none; }
@media(max-width:700px) { .privacy-review-dossier .privacy-comparison { grid-template-columns:1fr; }.privacy-review-toolbar { position:static; }.privacy-steps li { flex:1 0 40%; } }
.parallel-editor-row{padding:16px;margin:12px 0;border:1px solid var(--line,#dce5ee);border-radius:12px;background:#fff;width:100%}
.parallel-task-list{list-style:none;padding:0;margin:16px 0}
.parallel-task-list>li{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line,#dce5ee)}
.parallel-task-list p{margin:6px 0}.parallel-task-list .actions{flex-shrink:0}
.monitor-attention{color:#9d3f30}.process-monitoring{border-top:3px solid #55a8b2}
@media(max-width:700px){.parallel-task-list>li{display:block}.parallel-task-list .actions{margin-top:12px}.process-monitoring .card-head{align-items:flex-start;flex-wrap:wrap}}
.home-links-editor>div{padding:14px 0;border-bottom:1px solid var(--border);margin-bottom:14px}.home-links-editor label{display:block;margin:8px 0}.home-links-editor input{width:100%}
.home-shortcut-buttons .home-custom-link{display:flex;align-items:center;gap:12px;padding:16px 20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--navy);font-weight:650;text-decoration:none}.home-custom-link svg{width:22px;height:22px}.home-custom-link b{margin-left:auto}
.monitoring-overview{padding:20px 24px}.monitoring-overview h2{margin:0 0 12px}.monitor-summary{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px;margin-bottom:14px}.monitor-summary strong{font-size:17px;margin-right:4px}.monitoring-overview>details>summary{cursor:pointer;font-weight:600;font-size:13px}.monitoring-overview .card{padding:0;margin:14px 0;border:0;box-shadow:none}.monitoring-overview td{padding:10px 12px;font-size:13px}
.phase-waiting-tasks{background:#f6f9fc;border-radius:10px;padding:16px 20px;margin:16px 0}.phase-waiting-tasks h3{margin:0 0 10px}.phase-waiting-tasks li{margin:8px 0}.phase-waiting-tasks p{margin-bottom:0;font-size:13px;color:var(--muted)}
.case-development details{margin:14px 0}.case-development summary{cursor:pointer;font-weight:600}.case-development .detail{white-space:pre-wrap}.report-bars{margin:18px 0}.report-bars>div{display:grid;grid-template-columns:minmax(110px,1fr) 2fr 45px;gap:14px;align-items:center;margin:12px 0}.report-bars meter{width:100%;height:16px}.report-bars span{font-size:13px}
@media(max-width:700px){.report-bars>div{grid-template-columns:1fr 1fr 35px}.home-shortcut-buttons .home-custom-link{width:100%}.monitoring-overview{padding:16px}.monitor-summary{gap:12px}}
/* Dossier: current work first, supporting context in a consistent responsive grid. */
.dossier-block-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px;align-items:start}
.dossier-block{min-width:0;display:grid;gap:24px}.dossier-width-full{grid-column:1/-1}.dossier-block>.card{margin:0;height:auto;border-top:3px solid #75a2b5}.dossier-block[data-dossier-block="timeline"]>.card,.dossier-block[data-dossier-block="fields"]>.card,.dossier-block[data-dossier-block="reviews"]>.card{border-top-color:#acbac8}
.dossier-block-grid[data-dossier-state="closed"] .card{border-top-color:#4d9b7f}
.dossier-block .card-head{gap:16px;flex-wrap:wrap}.dossier-block details>summary{cursor:pointer;padding:10px 0;line-height:1.5}.dossier-block summary h2,.layout-settings summary h2{display:inline;font-size:18px}.dossier-history-fold summary span{display:block;margin-top:6px;color:var(--muted);font-size:13px}.dossier-block dl,.measure-card dl{margin:0}.dossier-block dt,.measure-card dt{font-size:12px;color:var(--muted);margin-top:12px}.dossier-block dd,.measure-card dd{margin:3px 0 0;overflow-wrap:anywhere}
.phase-waiting-tasks{border-left:3px solid var(--teal);padding:20px;background:#edf7f8}.phase-waiting-tasks ul{list-style:none;padding:0;margin:0}.phase-waiting-tasks li{margin:0;padding:12px 0;border-bottom:1px solid #d4e5e9}.phase-waiting-tasks li:last-child{border-bottom:0}.phase-waiting-tasks li span{display:block;margin:4px 0 8px}.phase-waiting-tasks h3:not(:first-child){margin-top:20px}.phase-waiting-tasks button{margin:0}
.measure-card{padding:20px;border:1px solid var(--border);border-top:3px solid #5078bd;border-radius:12px;margin:16px 0}.measure-card[data-measure-state="pending"]{border-top-color:var(--teal)}.measure-card[data-measure-state="completed"]{border-top-color:#4d9b7f}.measure-card h3{margin:0}.measure-card h4{margin:0 0 12px;font-size:14px}.measure-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:20px 0}.measure-columns>section{min-width:0;padding-right:16px;border-right:1px solid var(--border)}.measure-columns>section:last-child{border:0}.measure-columns .actions,.measure-columns button{margin-top:12px}.effect-history,.external-followup,.investigation-details{margin-top:16px;border-top:1px solid var(--border);padding-top:8px}
.layout-row{display:flex;align-items:center;gap:20px;padding:12px 0;border-bottom:1px solid var(--border)}.layout-row strong{flex:1}.layout-row label{margin:0;min-width:145px}.layout-row .actions{margin:0}.task-purpose{display:block;margin-top:8px;color:var(--muted);line-height:1.6}.required-marker{color:var(--navy)}
.home-shortcut-buttons .home-custom-link{background:#d7eff0;border-color:#91c6ca;color:#084750}.home-shortcut-buttons .home-custom-link:hover{background:#c2e4e7;border-color:var(--teal)}
.home-save-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;position:sticky;bottom:12px;z-index:5;padding:16px 20px;background:#edf7f8;border:1px solid #9acfd3;border-radius:12px;box-shadow:0 4px 18px #08285a18;grid-column:1/-1}.home-save-bar .actions{margin:0}.home-links-editor>[data-home="save"]{margin-top:12px}
#fields>[data-lazy-users],#fields>details{margin:16px 0;border-top:1px solid var(--border);padding-top:12px}#fields>details>summary{cursor:pointer;font-weight:650}#fields>details[open]>summary{margin-bottom:16px}
@media(max-width:900px){.measure-columns{grid-template-columns:1fr}.measure-columns>section{border-right:0;border-bottom:1px solid var(--border);padding:0 0 20px}.dossier-block-grid{gap:18px}.layout-row{flex-wrap:wrap}.layout-row strong{flex-basis:100%}}
@media(max-width:700px){.dossier-block-grid{grid-template-columns:1fr}.dossier-width-half{grid-column:1/-1}.dossier-block{gap:18px}.dossier-block>.card,.measure-card{padding:18px}.home-save-bar{flex-wrap:wrap;bottom:0}.home-save-bar .actions{width:100%}.home-save-bar button{flex:1}.layout-row label{flex:1}.measure-card .card-head{align-items:flex-start}}
.home-save-bar{position:fixed;left:24px;right:24px;bottom:16px;max-width:1250px;margin:0 auto}.home:has(.home-save-bar){padding-bottom:110px}@media(max-width:700px){.home-save-bar{left:12px;right:12px;bottom:12px}.home:has(.home-save-bar){padding-bottom:180px}}

@media print { body.supplier-print .app-header, body.supplier-print #nav, body.supplier-print footer, body.supplier-print #notice, body.supplier-print dialog, body.supplier-print button, body.supplier-print #supplier-filters, body.supplier-print .actions { display:none!important; } body.supplier-print .shell { margin:0; padding:0; display:block; } body.supplier-print .card { box-shadow:none; overflow:visible; } body.supplier-print table { width:100%; } body.supplier-print tr { break-inside:avoid; } }
.supplier-screen>.card,.supplier-screen .supplier-round,.supplier-policy-panel,.calendar-screen>.card{border-top:3px solid #75a2b5}
.supplier-screen .supplier-metrics,.supplier-screen .supplier-round{border-top-color:var(--teal)}
.module-form-grid,.supplier-policy-panel{margin-top:28px}.module-form-grid{margin-bottom:28px}
.process-library-intro{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 24px}.process-library-intro p{margin:0;line-height:1.65}.process-library-tabs{position:static;z-index:auto;display:flex;gap:12px;margin-bottom:28px;flex-wrap:wrap}.process-library-section>h2{margin-bottom:8px}.process-library-section>p{margin:0 0 22px;max-width:85ch;color:var(--muted)}.process-library-card,.module-form-group{border-top:3px solid #75a2b5}.process-library-card h3,.module-form-group>h3{font-size:20px;margin:0}.process-library-name-note{padding:10px 12px;background:#fff6e5;border-radius:8px;font-size:14px}.process-library-drafts{margin-top:24px}.process-library-drafts>summary{font-weight:700;cursor:pointer}.module-form-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 0}.module-form-row+.module-form-row{border-top:1px solid #dce4eb}.module-form-row:last-child{padding-bottom:0}.module-form-row h4{margin:0 0 7px;font-size:17px}.module-form-row p{margin:0;line-height:1.6}.module-form-row button{flex-shrink:0}.process-library-section .module-form-grid{margin-top:0}.supplier-policy-panel>#supplier-policy-controls{margin-bottom:16px}
@media(max-width:700px){.process-library-intro{grid-template-columns:1fr;gap:12px}.module-form-row{align-items:flex-start;flex-direction:column}.module-form-row button{width:100%}.process-library-tabs button{flex:1}}
#supplier-criteria .row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(90px,150px) auto;gap:16px;align-items:center}#supplier-criteria .row label{margin:0}#supplier-criteria .row button{align-self:center;margin:0}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-day{min-width:0;min-height:100px;border:1px solid var(--border);border-radius:8px;padding:8px}.calendar-today{border:2px solid var(--teal)}.calendar-item{display:block;text-align:left;width:100%;margin:8px 0;padding:10px;background:#edf5f7;color:var(--navy);border:1px solid #c2dadd;border-radius:8px;overflow-wrap:anywhere;white-space:normal}.calendar-item small{display:block;margin-top:5px}.calendar-overdue{border-left:4px solid #b55e4f;background:#fff3ee}.calendar-weekday{text-align:center}
@media(max-width:700px){#supplier-criteria .row{grid-template-columns:1fr}.calendar-grid{display:block}.calendar-weekday,.calendar-gap{display:none}.calendar-day{min-height:auto;margin:8px 0}.calendar-day:not(:has(.calendar-item)){display:none}}
@media print{body.supplier-assessment-print>*{display:none!important}body.supplier-assessment-print #dialog{display:block!important;position:static!important;max-width:none!important;max-height:none!important;width:100%!important;border:0;overflow:visible;box-shadow:none}body.supplier-assessment-print #dialog::backdrop{display:none}body.supplier-assessment-print #form>*{display:none}body.supplier-assessment-print #form #fields{display:block}body.supplier-assessment-print #fields>*{display:none}body.supplier-assessment-print #fields #supplier-print-content{display:block}body.supplier-assessment-print .card{box-shadow:none;overflow:visible}body.supplier-assessment-print tr{break-inside:avoid}}
.calendar-screen select,.supplier-screen select,#supplier-policy-controls select{display:block;width:100%;border:1px solid #cbd6e2;border-radius:9px;padding:10px 12px;margin-top:7px;background:white;color:var(--text);font:inherit}.calendar-screen .document-filter-fields>label{margin:0;min-width:0}.calendar-screen .actions{margin-top:18px}
.calendar-day{height:156px;overflow:auto;align-self:stretch}.calendar-day .calendar-item{padding:6px;margin:5px 0;font-size:11px;line-height:1.35}.calendar-day .calendar-item strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-day .calendar-item small{font-size:10px;line-height:1.3}
@media(max-width:700px){.calendar-day{height:auto;overflow:visible}.calendar-day .calendar-item{font-size:13px;padding:10px}.calendar-day .calendar-item strong{display:block;overflow:visible}.calendar-day .calendar-item small{font-size:12px}}
.calendar-screen>.card+.card{margin-top:24px}.supplier-screen>.card{margin-top:20px}
