/* Shared workspace system. Used by legacy pages and _ui.html components.
   Navy = structure, blue = navigation, orange = actions, semantic colours = status. */
.has-side {
  --accent:#c45426; --accent-soft:#fff2e9; --ink-strong:#182a44;
  --muted:#65738b; --line:#e3e9f2; --surface-2:#f5f7fc;
  --radius:18px; --shadow:0 8px 24px #20345507;
  background:radial-gradient(ellipse at 100% 0,#e6ecfa,transparent 50%),#f3f5fa;
}
.has-side main { max-width:1600px; padding:28px 32px 56px; }
.has-side .side { background:radial-gradient(ellipse at 0 0,#2b405f,transparent 70%),#142239; border-right:1px solid #31405a; }
.has-side .side .menu .grp { letter-spacing:.16em; font-size:9px; margin-top:22px; color:#9aadc8; }
.has-side .side .menu a { font-size:12px; padding:10px 13px; border-radius:10px; }
.has-side .side .menu a.active { border:1px solid #7698cc35; background:linear-gradient(110deg,#435f8720,#7d9bc82b); box-shadow:inset 3px 0 #f4a36e; }
.has-side .side .menu a.active .ico { color:#ffc49e; }
.has-side .topbar { background:#ffffffd9; backdrop-filter:blur(18px); min-height:66px; border-bottom:1px solid #dfe6f2; }
.has-side .crumb { font-size:12px; color:#52627c; }.has-side .avatar { background:linear-gradient(135deg,#f7ac73,#c65427); }
.has-side main > h1 { font-size:30px; letter-spacing:-1px; margin:4px 0 22px; }
.has-side .panel,.has-side .box { border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); background:#fff; }
.has-side .panel { padding:22px; }.has-side .note { padding:14px 18px; background:#edf2fc; color:#425b81; border:1px solid #dce5f5; border-left:3px solid #6e8ec4; border-radius:12px; font-size:12px; line-height:1.7; margin:16px 0; }
.has-side button,.has-side .btn { min-height:36px; border-radius:10px; padding:8px 14px; font-size:12px; box-shadow:0 3px 7px #a74c1310; transition:background .15s,box-shadow .15s; }
.has-side .btn.ghost { background:#fff; border-color:#dbe2ee; box-shadow:none; }
.has-side input,.has-side select,.has-side textarea { border:1px solid #dce3ee; border-radius:10px; min-height:36px; font-size:12px; background:#fbfcff; }
.has-side form.filters { background:#fff; padding:18px; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); gap:12px; margin:18px 0; }
.has-side form.filters label { flex:1 1 140px; max-width:280px; min-width:0; font-size:10px; font-weight:650; letter-spacing:.02em; color:#63718a; display:flex; flex-direction:column; gap:6px; }
.has-side form.filters select,.has-side form.filters input { width:100%; min-width:0; height:38px; }
.has-side table { font-size:12px; line-height:1.65; }.has-side th { background:#edf2fa; padding:12px 14px; font-size:9px; letter-spacing:.08em; color:#5c6e89; border-bottom:1px solid #dce5f2; }
.has-side td { padding:15px 14px; border-bottom:1px solid #edf0f6; }.has-side tbody tr:hover td { background:#f5f8fe; }.has-side td a { font-weight:600; }
.has-side .badge { display:inline-flex; align-items:center; gap:5px; border:1px solid #dde4ef; border-radius:7px; background:#edf1f7; color:#52617a; padding:3px 8px; font-size:10px; font-weight:650; line-height:1.4; }
.has-side .badge::before { content:''; width:5px; height:5px; border-radius:50%; background:currentColor; flex-shrink:0; }
.has-side .badge:is(.passed,.approved,.ok,.healthy,.tone-go,.Acknowledged) { background:#eaf7f0; border-color:#ccebdc; color:#227451; }
.has-side .badge:is(.P1,.bad,.failed,.Failed,.rejected,.flagged,.overdue,.tone-bad) { background:#fceef0; border-color:#f3d8dd; color:#b1485b; }
.has-side .badge:is(.P2,.warn,.draft,.pending,.Queued,.Sent,.tone-warn) { background:#fff6e5; border-color:#f0e2bf; color:#93671e; }
.ui-page-header { display:flex; align-items:center; gap:18px; margin:0 0 24px; }
.ui-header-icon { width:56px; height:56px; display:grid; place-items:center; flex-shrink:0; background:linear-gradient(140deg,#334e7c,#1b2d49); border:1px solid #496289; border-radius:17px; color:#dce8ff; box-shadow:0 6px 14px #213c6b20; }.ui-header-icon .ico { width:25px; height:25px; }
.ui-page-header .eyebrow { color:#657ba1; font-size:9px; }.ui-page-header h1 { margin:4px 0 5px; font-size:29px; letter-spacing:-1px; }.ui-page-header p { color:var(--muted); font-size:12px; margin:0; }
.ui-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.ui-metric { position:relative; padding:20px 22px; display:grid; grid-template-columns:1fr auto; gap:8px; background:linear-gradient(120deg,#fff,var(--metric-bg)); border:1px solid var(--metric-line); border-radius:16px; box-shadow:0 4px 16px #20345505; }
.ui-blue { --metric-bg:#edf2ff; --metric-line:#dce5f7; --metric-ink:#4167a0; }.ui-green { --metric-bg:#edf8f4; --metric-line:#d7ebe2; --metric-ink:#317c66; }.ui-rose { --metric-bg:#fff0f2; --metric-line:#f0dde2; --metric-ink:#b9586b; }
.ui-metric > span { font-size:12px; font-weight:650; color:#3b4b64; }.ui-metric strong { grid-column:2; grid-row:1 / span 2; font-size:34px; line-height:1.1; letter-spacing:-1px; color:var(--metric-ink); align-self:center; }.ui-metric small { font-size:11px; color:var(--muted); }
.ui-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:22px 0 14px; }.ui-section-head h2 { margin:0; font-size:16px; }
.ui-review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ui-review-card { display:flex; flex-direction:column; padding:23px; background:linear-gradient(135deg,#fff 65%,#f6f8fd); border:1px solid #dee6f2; border-radius:18px; box-shadow:0 5px 20px #24385506; transition:box-shadow .18s,border-color .18s; }
.ui-review-card:hover { border-color:#b9c9e2; box-shadow:0 12px 30px #24385510; }.ui-card-top { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.ui-company { display:inline-flex; align-items:center; gap:9px; font-size:12px; font-weight:650; color:#3b4e6a; }.ui-monogram { width:29px; height:29px; display:inline-grid; place-items:center; background:#eaf0fa; color:#55729d; border:1px solid #dce5f3; border-radius:9px; font-size:12px; flex-shrink:0; }
.ui-card-reference { font-size:9px; letter-spacing:.07em; color:#75839a; margin:18px 0 7px; }.ui-review-card h2 { margin:0; font-size:16px; line-height:1.55; letter-spacing:-.25px; }.ui-review-card h2 a { color:#203450; }.ui-card-domain { font-size:11px; color:#6b7d99; margin:8px 0 18px; }
.ui-evidence { display:grid; grid-template-columns:repeat(3,1fr); background:#f1f5fb; border:1px solid #e6ecf5; border-radius:12px; padding:12px 0; margin-top:auto; }.ui-evidence > div { padding:0 14px; border-right:1px solid #dfe7f3; }.ui-evidence > div:last-child { border:0; }.ui-evidence small { display:block; font-size:9px; color:#6e7d94; margin-bottom:5px; }.ui-evidence b { font-size:20px; color:#344d72; font-variant-numeric:tabular-nums; }
.ui-card-bottom { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:18px; }.ui-owner { display:inline-flex; align-items:center; gap:8px; }.ui-owner-avatar { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#eeeaf7; color:#79659c; font-size:11px; flex-shrink:0; }.ui-owner b { display:block; font-size:10px; color:#56657d; font-weight:600; }.ui-owner small { display:block; font-size:11px; color:#384c6b; }
.ui-data-panel > .ui-section-head { margin:0 0 18px; }.ui-signal-table { min-width:850px; }.ui-signal-table td:nth-child(2) { width:38%; }.ui-record-id { display:block; font-size:10px; margin:8px 0; }.ui-record-title { display:block; color:#233c5e; line-height:1.6; }.ui-record-meta { color:#75829a; font-size:10px; margin-top:7px; }.ui-score { font-size:22px; font-weight:700; color:#3d5f8e; }.ui-score small { font-size:10px; font-weight:400; color:#78869b; }
.ui-inline-details { margin-top:10px; font-size:11px; }.ui-inline-details summary { cursor:pointer; color:#5b73a0; font-size:10px; }.ui-inline-details p { color:#5b6b83; margin:8px 0; }
.has-side .live { border-top:3px solid #698ec2; }.has-side .live-head { padding-bottom:14px; border-bottom:1px solid var(--line); }.has-side .live-steps { gap:10px; counter-reset:pipeline; padding:12px 0; }.has-side .live-steps li { padding:8px 13px; border-radius:9px; font-size:11px; }.has-side .live-bar { height:6px; border-radius:5px; background:#e7edf6; }.has-side .live-bar > div { background:linear-gradient(90deg,#597bb0,#75b5a2); border-radius:5px; }.has-side .live-counts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:18px 0; }.has-side .live-counts > span { display:block; padding:16px; border:1px solid #e1e9f4; border-radius:12px; background:#f5f8fd; font-size:11px; color:#61738e; }.has-side .live-counts b { display:block; font-size:28px; color:#3e608e; }.has-side .raw summary { padding:12px 0; color:#536c93; font-size:11px; }
.has-side .step { border:1px solid #dce5f2; border-radius:16px; box-shadow:var(--shadow); }.has-side .step .no { background:#e9eff9; color:#5474a4; border-radius:12px; }.has-side .num { border-radius:10px; background:#f0f4fb; }
.has-side .workspace-dashboard .box { border-radius:18px; }.has-side .workspace-dashboard .insight-row { padding:18px; margin:12px 0; border:1px solid #e3eaf5; background:linear-gradient(115deg,#f9fbff,#fff); border-left:3px solid #8299bf; }.has-side .workspace-dashboard .insight-row:nth-of-type(2n) { border-left-color:#90b9aa; }.has-side .workspace-dashboard .insight-row:nth-of-type(3n) { border-left-color:#b3a0ce; }.has-side .workspace-dashboard .insight-content h3 { font-size:14px; }.has-side .workspace-dashboard .action-item { background:#f5f7fc; padding:14px; border:1px solid #e6ebf4; border-radius:12px; margin-top:10px; }.has-side .workspace-dashboard .focus-item { padding:14px 10px; }.has-side .workspace-dashboard .toolbar { border:1px solid #e0e7f2; border-radius:12px; }.has-side .dash-table th { background:#edf2fa; }.has-side .dash-table td:first-child { border-left:3px solid #e0e8f4; }.has-side .dash-table .row-title { font-size:12px; font-weight:600; }.has-side .dash-table .tags,.has-side .dash-table .dept { background:#f6f8fd; border-radius:9px; }
.ui-empty { grid-column:1/-1; text-align:center; padding:40px !important; color:var(--muted); }.ui-empty .ico { width:30px; height:30px; color:#458977; }
@media(max-width:1150px) { .ui-review-grid { grid-template-columns:1fr; } }
@media(max-width:640px) { .has-side main { padding:20px 16px 40px; }.ui-page-header { gap:12px; }.ui-header-icon { width:42px; height:42px; border-radius:12px; }.ui-page-header h1 { font-size:23px; }.ui-metrics { grid-template-columns:1fr; gap:9px; }.ui-metric { padding:14px 18px; }.ui-metric strong { font-size:28px; }.ui-review-card { padding:18px; }.ui-card-bottom { flex-wrap:wrap; }.ui-evidence > div { padding:0 9px; }.has-side .panel { padding:16px; }.has-side .live-counts { grid-template-columns:1fr; }.has-side form.filters label { max-width:none; }.has-side .workspace-dashboard .insight-row { padding:12px; } }
@media(prefers-reduced-motion:reduce) { .ui-review-card,.has-side button,.has-side .btn { transition:none; } }

/* Clearer boundaries: darker card outlines and row dividers so each item reads as its own block. Tune --line / --line-strong to adjust. */
:root, .has-side { --line:#cfd6e2; --line-strong:#b8c2d3; }
.has-side :is(.panel,.box,.tile,.ui-metric,.news-card,.ui-review-card,.step,.card,.kpi,.dash-stat,form.filters,.workspace-link,.dashboard-hero) { border-color:var(--line-strong); }
.has-side .workspace-dashboard .insight-row { border-color:var(--line-strong); }
.has-side :is(.insight-row,.action-item,.focus-item,.feed li,.feed-more,.dept-list a,.live-head) { border-color:var(--line); }
.has-side th { border-bottom:1px solid var(--line-strong); }
.has-side td { border-bottom-color:var(--line); }
.has-side :is(input,select,textarea), .has-side .btn.ghost, .has-side .ui-evidence { border-color:var(--line-strong); }
.has-side .ui-evidence > div { border-right-color:var(--line); }
.has-side .topbar { border-bottom-color:var(--line); }
.has-side .domain-nav { border-bottom-color:var(--line-strong); }
.has-side :is(.news-card,.ui-review-card):hover { border-color:#94a3bb; }

/* Reading room: warm paper, botanical accents, comfortable measure.
   Keeps the established boundaries while reducing visual glare. */
.has-side {
  --bg:#f5f3ed; --surface:#fffefa; --surface-2:#f3f3ed;
  --ink:#394842; --ink-strong:#243c36; --muted:#65726b;
  --line:#dcded3; --line-strong:#c4cbbc; --accent:#a4502f;
  background:radial-gradient(ellipse at 90% 0%,#e5ecde,transparent 48%),radial-gradient(ellipse at 0% 70%,#f5e9dc,transparent 50%),#f5f3ed;
}
.has-side .topbar { background:#fffefaeb; border-color:#daddd2; }.has-side .crumb { color:#56675d; }
.has-side .side { background:radial-gradient(ellipse at 0 0,#364f46,transparent 75%),#203831; border-color:#40554a; }
.has-side .side .menu .grp { color:#a6baaa; }.has-side .side .menu a { color:#c0cfc5; }.has-side .side .menu a:hover { background:#ffffff0c; color:#fff; }
.has-side .side .menu a.active { background:linear-gradient(100deg,#dce6cd20,#dce6cd0c); border-color:#b7c6a93b; box-shadow:inset 3px 0 #e7b992; color:#fffdf6; }
.has-side .side-foot { color:#a4b8a8; border-color:#ffffff14; }
.has-side :is(.box,.panel,.tile,.ui-review-card,.ui-data-panel) { background:#fffefa; box-shadow:0 6px 22px #454b2e06; }
.has-side .workspace-heading h1 { font-size:clamp(25px,2.4vw,34px); letter-spacing:-1px; font-weight:650; }
.has-side .workspace-heading p { font-size:14px; line-height:1.8; max-width:65ch; color:#667466; }
.has-side .eyebrow { color:#7b6550; }.has-side .ui-page-header h1 { color:#294239; }.has-side .ui-page-header p { font-size:13px; line-height:1.7; }
.has-side .ui-header-icon { background:linear-gradient(140deg,#607866,#344e41); border-color:#6c8370; box-shadow:0 6px 14px #3c553b15; }
.has-side .workspace-dashboard .domain-nav { background:#e9ecdf; border-color:#cdd5c4; }.has-side .workspace-dashboard .domain-nav a { color:#576a59; }.has-side .workspace-dashboard .domain-nav a.selected { color:#354e3c; background:#fffefa; }.has-side .workspace-dashboard .domain-nav span { background:#edf0e6; color:#52644f; }
.has-side .workspace-dashboard .briefing-banner { background:radial-gradient(ellipse at 100% 0,#6b8062,transparent 65%),linear-gradient(115deg,#304c40,#435f4e); border:1px solid #647a60; box-shadow:0 8px 28px #374f3310; padding:25px 28px; }
.has-side .briefing-banner h2 { color:#fffdf2; font-weight:600; font-size:26px; }.has-side .briefing-banner .eyebrow { color:#ead0a6; }.has-side .briefing-banner p { color:#e0e8d9; font-size:13px; }.has-side .briefing-banner a { color:#fff8e8; }
.has-side .workspace-dashboard .tile { background:linear-gradient(130deg,#fffefa 55%,var(--cs)); border-color:#cad2c1; }
.has-side .workspace-dashboard .tile-n { color:#344d40; }.has-side .workspace-dashboard .t-red .tile-n { color:#a94f54; }.has-side .workspace-dashboard .tile-l { color:#4d6052; }.has-side .workspace-dashboard .tile-s { color:#667361; }
.has-side .section-description { font-size:13px; line-height:1.8; color:#697563; }
.has-side .workspace-dashboard .insight-row { padding:24px; margin:16px 0; border:1px solid #cbd5c5; border-left:4px solid #8ca88b; background:linear-gradient(110deg,#f2f6eb,#fffefa 75%); border-radius:17px; }
.has-side .workspace-dashboard .insight-row:nth-of-type(2n) { background:linear-gradient(110deg,#faf0e5,#fffefa 75%); border-left-color:#c99a73; border-color:#dacbbb; }
.has-side .workspace-dashboard .insight-row:nth-of-type(3n) { background:linear-gradient(110deg,#f1edf5,#fffefa 75%); border-left-color:#a89ab8; border-color:#d3cbdc; }
.has-side .workspace-dashboard .insight-content h3 { font-family:Georgia,"Times New Roman",serif; font-size:20px; font-weight:600; line-height:1.5; letter-spacing:-.25px; margin:12px 0; max-width:58ch; }
.has-side .workspace-dashboard .insight-content h3 a { color:#304a3e; }
.has-side .workspace-dashboard .insight-content p { font-size:14px; line-height:1.85; color:#5f6b60; max-width:68ch; margin-bottom:17px; }
.has-side .workspace-dashboard .insight-meta { font-size:11px; color:#6d7769; }.has-side .workspace-dashboard .insight-footer { font-size:11px; gap:10px; }.has-side .workspace-dashboard .domain-label { background:#e5ebdf; color:#4f6450; }
.has-side .workspace-dashboard .company-mark { background:#e0ebdc; color:#506c4d; border:1px solid #cbdac5; }.has-side .workspace-dashboard .company-1 { background:#f7e6d5; color:#996b43; border-color:#e7cdb5; }.has-side .workspace-dashboard .company-2 { background:#eae4f0; color:#77638b; border-color:#d6cce2; }
.has-side .workspace-dashboard .action-item { background:#f3f4ed; border-color:#d5dccb; }.has-side .workspace-dashboard .workspace-link { background:linear-gradient(130deg,#e8edde,#f5f1e5); border-color:#c8d3b9; color:#425b40; }
.has-side .workspace-dashboard .toolbar,.has-side form.filters { background:#f9faf3; border-color:#ccd4c3; }
.has-side :is(input,select,textarea) { background:#fffefa; border-color:#c5cebe; color:#425141; }
.has-side th { background:#edf0e5; color:#5f715b; border-color:#c8d1bd; }.has-side td { border-color:#dee3d5; }.has-side tbody tr:hover td { background:#f1f5e9; }
.has-side .note { background:#eff3e7; border-color:#d4ddc8; border-left-color:#8ea27a; color:#576c50; }
.has-side .ui-blue { --metric-bg:#edf3e5; --metric-line:#cddac1; --metric-ink:#5a7650; }.has-side .ui-green { --metric-bg:#e9f3ec; --metric-line:#c9decf; --metric-ink:#47765b; }.has-side .ui-rose { --metric-bg:#f9eee6; --metric-line:#e6d1c0; --metric-ink:#a27450; }
.has-side .ui-review-card h2 a,.has-side .ui-record-title { color:#354d40; }.has-side .ui-evidence { background:#f0f3e9; border-color:#d5ddcc; }.has-side .ui-evidence b,.has-side .ui-score { color:#58734f; }.has-side .ui-monogram { background:#edf1e4; border-color:#d5ddc7; color:#637b52; }
.has-side .live-counts > span { background:#f2f5eb; border-color:#d1dbc5; }.has-side .live-counts b { color:#607c54; }.has-side .live-bar > div { background:linear-gradient(90deg,#c7a37c,#7d9e7b); }
.article-reading-layout { max-width:940px; margin:0 auto; }.reading-back { display:inline-block; font-size:12px; margin:0 0 28px; color:#687c60; }
.article-reading-layout > h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(26px,3vw,39px); font-weight:500; line-height:1.35; letter-spacing:-.7px; margin:12px 0 20px; max-width:35ch; }
.article-reading-layout > p { color:#65715e; line-height:1.8; font-size:13px; }.article-reading-layout > .panel { padding:36px 44px; border-color:#c9d2bd; }
.has-side .rep { max-width:72ch; margin:0 auto; font-size:15px; line-height:1.9; color:#414f42; }.has-side .rep p,.has-side .rep li { font-size:15px; line-height:1.9; }.has-side .rep h3 { margin:28px 0 12px; font-size:17px; color:#3b553c; letter-spacing:-.2px; }.has-side .rep h3:first-child { margin-top:0; }.has-side .rep li { margin-bottom:8px; }
@keyframes calm-arrival { from { opacity:.55; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:no-preference) {
  .has-side .workspace-heading,.has-side .ui-page-header,.article-reading-layout { animation:calm-arrival .4s ease-out both; }
  .has-side .workspace-dashboard .insight-row,.has-side .ui-review-card { animation:calm-arrival .45s ease-out both; }
  .has-side .insight-row:nth-of-type(2),.has-side .ui-review-card:nth-child(2) { animation-delay:.07s; }
  .has-side .insight-row:nth-of-type(3),.has-side .ui-review-card:nth-child(3) { animation-delay:.12s; }
  .has-side .insight-row,.has-side .tile,.has-side .ui-review-card { transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
  .has-side .workspace-dashboard .insight-row:hover,.has-side .ui-review-card:hover { transform:translateY(-2px); box-shadow:0 9px 22px #4c573b0d; }
}
@media(max-width:640px) { .has-side .workspace-dashboard .insight-row { padding:16px; }.has-side .workspace-dashboard .insight-content h3 { font-size:18px; }.has-side .workspace-dashboard .insight-content p { font-size:13px; }.article-reading-layout > .panel { padding:22px; }.has-side .briefing-banner h2 { font-size:22px; } }
@media print { .article-reading-layout > .panel { border:0; padding:0; box-shadow:none; }.reading-back { display:none; } }
