/*
  Original application shell for МедПрогноз.
  The palette tokens above are supplied by the safe Django admin appearance editor.
*/
:root {
  --navy: #071a38;
  --navy-soft: #102e5e;
  --blue: var(--teal);
  --blue-dark: var(--teal-dark);
  --blue-wash: #eef5ff;
  --surface-shadow: 0 10px 28px rgba(27, 62, 113, .08);
  --surface-shadow-hover: 0 17px 35px rgba(27, 62, 113, .14);
  --radius-lg: max(14px, var(--radius));
}

body.app-body,
body.auth-body {
  min-width: 320px;
  min-height: 100vh;
  background: #edf4fb;
  color: var(--ink);
  font-family: var(--font-stack);
}

body.app-body { overflow-x: hidden; }

.app-shell {
  display: grid;
  grid-template-columns: 258px minmax(0, 1fr);
  min-height: 100vh;
}

.app-sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  width: 258px;
  height: 100vh;
  padding: 24px 14px 20px;
  overflow-y: auto;
  color: #f8fbff;
  background:
    radial-gradient(circle at 100% 0, rgba(58, 132, 255, .24), transparent 35%),
    linear-gradient(165deg, #061733 0%, #09254d 57%, var(--topbar) 100%);
  box-shadow: 12px 0 38px rgba(4, 21, 50, .13);
  z-index: 30;
}

.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 54px;
  margin: 0 7px 30px;
  color: #fff;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.05;
  text-decoration: none;
}

.sidebar-brand small {
  display: block;
  margin-top: 5px;
  color: rgba(221, 235, 255, .68);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.sidebar-brand-mark {
  display: inline-grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(145deg, rgba(255, 255, 255, .18), rgba(83, 145, 255, .24));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
  font-size: 13px;
  font-weight: 900;
}

.sidebar-brand-mark svg { width: 34px; height: 34px; }

.sidebar-nav {
  display: grid;
  gap: 5px;
}

.sidebar-nav a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 48px;
  padding: 0 14px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 12px;
  color: rgba(241, 247, 255, .86);
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.sidebar-nav a:hover {
  color: #fff;
  background: rgba(255, 255, 255, .09);
  border-color: rgba(255, 255, 255, .09);
}

.sidebar-nav a.is-active {
  color: #fff;
  background: linear-gradient(110deg, rgba(58, 128, 247, .95), rgba(50, 104, 203, .92));
  border-color: rgba(174, 211, 255, .31);
  box-shadow: 0 9px 20px rgba(0, 17, 52, .25), inset 0 1px 0 rgba(255, 255, 255, .18);
}

.sidebar-nav svg {
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}

.sidebar-scope {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: auto 6px 0;
  padding: 12px;
  border: 1px solid rgba(147, 194, 255, .22);
  border-radius: 13px;
  background: rgba(1, 17, 48, .27);
  color: #eff7ff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}

.sidebar-scope strong,
.sidebar-scope small { display: block; }
.sidebar-scope strong { font-size: 11px; }
.sidebar-scope small { margin-top: 2px; color: rgba(220, 235, 255, .68); font-size: 10px; line-height: 1.35; }
.scope-indicator { width: 10px; height: 10px; flex: 0 0 10px; border-radius: 50%; background: #32da91; box-shadow: 0 0 0 4px rgba(50, 218, 145, .11); }

.app-main {
  display: flex;
  min-width: 0;
  min-height: 100vh;
  flex-direction: column;
}

.app-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 34px;
  border-bottom: 1px solid rgba(206, 221, 240, .88);
  background: rgba(251, 253, 255, .92);
  box-shadow: 0 3px 15px rgba(40, 70, 113, .03);
  backdrop-filter: blur(16px);
}

.topbar-context span,
.topbar-context small,
.account-name strong,
.account-name small { display: block; }
.topbar-context span { color: #183b70; font-size: 13px; font-weight: 800; }
.topbar-context small { margin-top: 1px; color: #7d8ea6; font-size: 11px; }

.topbar-account {
  display: flex;
  align-items: center;
  gap: 11px;
}

.data-scope-pill {
  padding: 6px 10px;
  border: 1px solid #d8e6fb;
  border-radius: 999px;
  color: #527099;
  background: #f4f8ff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.account-avatar {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #cfe0fb;
  border-radius: 50%;
  color: #1b5aae;
  background: #eaf3ff;
  font-size: 11px;
  font-weight: 900;
}

.account-name { min-width: 0; line-height: 1.2; }
.account-name strong { overflow: hidden; max-width: 180px; color: #172946; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.account-name small { margin-top: 2px; color: #7a8aa3; font-size: 10px; }
.topbar-account form { margin: 0; }

.logout-button {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  padding: 0;
  border: 1px solid #d7e3f2;
  border-radius: 9px;
  color: #496885;
  background: #fff;
  cursor: pointer;
  font-size: 17px;
  line-height: 1;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}

.logout-button:hover { border-color: #9fbee8; color: var(--blue-dark); background: #f3f8ff; }

.container {
  width: min(100%, 1500px);
  max-width: none;
  margin: 0 auto;
  padding: 29px 34px 48px;
}

.app-footer {
  display: flex;
  width: min(100%, 1500px);
  justify-content: space-between;
  gap: 16px;
  margin: auto auto 0;
  padding: 19px 34px 26px;
  border-top: 1px solid rgba(204, 220, 240, .88);
  color: #7b8ba1;
  font-size: 11px;
}

/* Shared surfaces and controls */
.page-head,
.workspace-head {
  margin-bottom: 25px;
}

.page-head h1,
.workspace-head h1,
.section-heading h2 { color: #122a50; }
.page-head h1,
.workspace-head h1 { font-size: clamp(28px, 3vw, 37px); letter-spacing: -.04em; }
.page-head p,
.workspace-head p { color: #63758e; }
.eyebrow { color: var(--blue); font-size: 10px; font-weight: 900; letter-spacing: .125em; }
.lead { color: #62748d; }

.button {
  min-height: 40px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -.01em;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}

.button:hover { transform: translateY(-1px); }
.button.primary { border-color: transparent; background: linear-gradient(115deg, var(--blue), #3f86f6); box-shadow: 0 9px 18px color-mix(in srgb, var(--blue) 24%, transparent); }
.button.primary:hover { background: linear-gradient(115deg, var(--blue-dark), var(--blue)); box-shadow: 0 12px 23px color-mix(in srgb, var(--blue) 30%, transparent); }
.button.secondary { border-color: #ccdbef; color: #345577; background: #fff; }
.button.secondary:hover { border-color: #96b9e9; color: var(--blue-dark); background: #f7fbff; }
.button[disabled] { opacity: .6; transform: none; cursor: not-allowed; }

.notice,
.warning-banner,
.compact-warning,
.locked-banner {
  border-radius: 12px;
  box-shadow: none;
}

.notice { border-color: #c7ddf4; color: #254c74; background: #edf6ff; }
.notice.error { border-color: #f0c4c8; color: #963d48; background: #fff1f2; }
.warning-banner,
.compact-warning { border: 1px solid #ecd49d; border-left: 4px solid #d99b2c; color: #745016; background: #fffaf0; }

.metric,
.panel,
.project-card,
.form-card,
.compact-panel,
.chapter-card,
.run-card,
.calculator-prototype,
.calculator-result,
.flow-node,
.table-wrap {
  border-color: #dce7f3;
  border-radius: var(--radius-lg);
  box-shadow: var(--surface-shadow);
}

.metric,
.panel,
.project-card,
.form-card,
.compact-panel,
.chapter-card,
.run-card,
.calculator-prototype,
.calculator-result,
.flow-node,
.table-wrap,
.filter-bar { background: var(--white); }

.panel,
.project-card,
.form-card,
.compact-panel,
.chapter-card,
.run-card,
.calculator-prototype,
.calculator-result,
.flow-node { padding: clamp(17px, 2vw, 23px); }

.form-card.narrow { max-width: 780px; }
.filter-bar { border-color: #dce7f3; border-radius: 12px; box-shadow: var(--surface-shadow); }
input,
select,
textarea,
.filter-bar input,
.filter-bar select,
.calculator-step select,
.calculator-step input { border-color: #cbd9ec; border-radius: 9px; }
input:focus,
select:focus,
textarea:focus { border-color: var(--blue); outline: 3px solid color-mix(in srgb, var(--blue) 14%, transparent); }
th { color: #355779; background: #edf4fd; }
th, td { border-color: #e1eaf4; }
.tag { border-radius: 6px; color: #235896; background: #eaf3ff; }
.status { border-color: #cbdcef; color: #406584; background: #f2f7fd; }
.status.ready { border-color: #bde5cf; color: #18754d; background: #eaf8f0; }
.empty { color: #718198; }

/* Dashboard */
.dashboard-hero {
  position: relative;
  display: grid;
  min-height: 248px;
  grid-template-columns: minmax(0, 1.05fr) minmax(330px, .95fr);
  align-items: stretch;
  overflow: hidden;
  margin-bottom: 19px;
  border: 1px solid #d5e6fb;
  border-radius: calc(var(--radius-lg) + 5px);
  background:
    radial-gradient(circle at 88% 0, rgba(127, 196, 255, .52), transparent 39%),
    linear-gradient(110deg, #fbfdff 0%, #edf6ff 54%, #d8edff 100%);
  box-shadow: 0 14px 31px rgba(47, 96, 154, .11);
}

.hero-copy {
  position: relative;
  z-index: 2;
  align-self: center;
  padding: 34px clamp(27px, 4vw, 55px);
}

.hero-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  color: #2b66a8;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.hero-kicker span { width: 8px; height: 8px; border-radius: 50%; background: #2bc883; box-shadow: 0 0 0 4px rgba(43, 200, 131, .12); }
.dashboard-hero h1 { margin: 0; color: #0b2857; font-size: clamp(34px, 4vw, 54px); letter-spacing: -.055em; line-height: .98; }
.hero-lead { max-width: 670px; margin: 13px 0 0; color: #355473; font-size: clamp(14px, 1.4vw, 17px); font-weight: 540; line-height: 1.45; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 21px; }
.hero-actions .button { min-height: 42px; gap: 11px; padding-inline: 17px; }
.hero-text-link { color: #2b67ad; font-size: 13px; font-weight: 800; text-decoration: none; }
.hero-text-link:hover { color: var(--blue-dark); text-decoration: underline; text-underline-offset: 3px; }
.hero-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.hero-chips span { padding: 5px 8px; border: 1px solid rgba(81, 135, 198, .21); border-radius: 999px; color: #55779b; background: rgba(255, 255, 255, .52); font-size: 10px; font-weight: 750; }

.hero-visual {
  position: relative;
  min-height: 248px;
  overflow: hidden;
  color: #2c7ed8;
  background:
    radial-gradient(circle at 50% 45%, rgba(255, 255, 255, .84), rgba(230, 244, 255, .08) 47%, transparent 64%),
    linear-gradient(135deg, rgba(125, 192, 255, .05), rgba(34, 102, 197, .17));
}

.hero-grid-lines {
  position: absolute;
  inset: 0;
  opacity: .34;
  background-image: linear-gradient(rgba(50, 126, 215, .17) 1px, transparent 1px), linear-gradient(90deg, rgba(50, 126, 215, .17) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(to right, transparent, #000 32%, #000);
}

.hero-heart { position: absolute; top: 23px; right: 28%; width: min(44%, 170px); min-width: 138px; height: auto; filter: drop-shadow(0 12px 18px rgba(32, 109, 205, .16)); }
.hero-data-bars { position: absolute; right: 28px; bottom: 26px; display: flex; height: 86px; align-items: end; gap: 9px; }
.hero-data-bars i { display: block; width: 15px; border-radius: 7px 7px 2px 2px; background: linear-gradient(to top, rgba(43, 111, 224, .82), rgba(139, 204, 255, .57)); box-shadow: 0 3px 10px rgba(43, 111, 224, .12); }
.hero-data-bars i:nth-child(1) { height: 32%; }.hero-data-bars i:nth-child(2) { height: 53%; }.hero-data-bars i:nth-child(3) { height: 44%; }.hero-data-bars i:nth-child(4) { height: 76%; }.hero-data-bars i:nth-child(5) { height: 100%; }
.hero-orbit { position: absolute; border: 1px solid rgba(54, 132, 220, .34); border-radius: 50%; }
.orbit-one { width: 220px; height: 220px; top: -64px; right: -81px; }.orbit-two { width: 118px; height: 118px; bottom: -58px; left: 15px; }

.overview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin: 0 0 28px; }
.overview-metric { display: flex; min-height: 96px; align-items: center; gap: 13px; padding: 16px 18px; border: 1px solid #dce7f3; border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--surface-shadow); }
.overview-metric strong,
.overview-metric small { display: block; }
.overview-metric strong { color: #102748; font-size: clamp(24px, 2vw, 32px); letter-spacing: -.04em; line-height: 1; }
.overview-metric small { margin-top: 6px; color: #50647f; font-size: 12px; font-weight: 700; line-height: 1.22; }
.overview-icon { display: grid; width: 43px; height: 43px; flex: 0 0 43px; place-items: center; border-radius: 13px; }
.overview-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.icon-blue { color: #216feb; background: #eaf2ff; }.icon-cyan { color: #078ca7; background: #e6f8fb; }.icon-violet { color: #6c46d8; background: #f0ebff; }.icon-green { color: #16996b; background: #e8f8ef; }

.dashboard-section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 0 0 12px; }
.dashboard-section-head h2 { margin: 3px 0 0; color: #142b50; font-size: 23px; letter-spacing: -.03em; }
.dashboard-section-head>a { color: #2265bd; font-size: 12px; font-weight: 850; text-decoration: none; }
.dashboard-section-head>a:hover { color: var(--blue-dark); }

.dashboard-module-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 13px; margin-bottom: 26px; }
.module-card { position: relative; min-height: 205px; padding: 16px; overflow: hidden; border: 1px solid #dce7f3; border-top: 1px solid #dce7f3; border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--surface-shadow); }
.module-card:hover { transform: translateY(-4px); border-color: #b9d2f4; box-shadow: var(--surface-shadow-hover); }
.dashboard-module-grid .module-card:first-child { border-color: #c1dbfb; background: linear-gradient(135deg, #f3f8ff, #d9e9ff); }
.module-card .module-code { width: 35px; height: 35px; border-radius: 10px; color: #1763cb; background: #ebf3ff; font-size: 10px; }
.dashboard-module-grid .module-card:first-child .module-code { color: #fff; background: linear-gradient(140deg, var(--blue), #5194fb); box-shadow: 0 7px 14px rgba(48, 114, 222, .22); }
.module-card h2 { margin: 17px 0 7px; color: #132746; font-size: 17px; letter-spacing: -.025em; }
.module-card p { color: #45627e; font-size: 12px; line-height: 1.42; }
.module-card small { color: #59728d; font-size: 11px; }
.module-status { border: 0; font-size: 8px; letter-spacing: .06em; }
.module-card.ready .module-status { color: #1c8457; background: #e7f8ef; }.module-card.mvp .module-status { color: #166c8d; background: #e7f6fb; }.module-card.prototype .module-status { color: #8e6318; background: #fff4db; }.module-card.locked .module-status { color: #a74a54; background: #feeaec; }.module-card.restricted .module-status { color: #5b6790; background: #eef0f8; }
.module-arrow { position: absolute; right: 16px; bottom: 14px; color: #24496e; font-size: 24px; line-height: 1; transition: transform .18s ease; }.module-card:hover .module-arrow { transform: translateX(4px); color: var(--blue); }

.dashboard-lower-grid { display: grid; min-width: 0; grid-template-columns: minmax(0, 1.14fr) minmax(260px, .93fr) minmax(260px, .93fr); gap: 13px; }
.dashboard-research-card,
.dashboard-risk-card,
.dashboard-report-card { min-width: 0; min-height: 264px; padding: 19px; overflow: hidden; border: 1px solid #dce7f3; border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--surface-shadow); }
.dashboard-risk-card { background: linear-gradient(145deg, #f8fbff, #edf5ff); }.dashboard-report-card { background: linear-gradient(145deg, #fff, #f5f9ff); }
.dashboard-card-head { display: flex; min-width: 0; align-items: flex-start; gap: 10px; }.dashboard-card-head>div { min-width: 0; flex: 1; }.dashboard-card-head p { margin: 0 0 3px; color: #58718e; font-size: 10px; font-weight: 850; letter-spacing: .065em; text-transform: uppercase; }.dashboard-card-head h2 { overflow: hidden; max-width: 100%; margin: 0; color: #172a48; font-size: 15px; letter-spacing: -.02em; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }.dashboard-card-head>a { color: #2b69bd; font-size: 23px; font-weight: 500; line-height: .9; text-decoration: none; }
.panel-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 10px; color: #2573de; background: #e9f2ff; font-size: 17px; font-weight: 900; }.panel-icon.blue { color: #4c55cc; background: #eaedff; }.panel-icon.green { color: #13956b; background: #e5f8ef; }
.research-stages { display: grid; gap: 9px; margin-top: 17px; }.research-stage { display: grid; grid-template-columns: 20px 1fr; gap: 8px; align-items: start; }.research-stage>span { display: grid; width: 20px; height: 20px; place-items: center; border: 2px solid #ccd9e7; border-radius: 50%; color: #9aaabd; font-size: 11px; font-weight: 900; }.research-stage.is-ready>span { border-color: #25b278; color: #fff; background: #25b278; }.research-stage strong,.research-stage small { display:block; }.research-stage strong { color:#28415e; font-size:11px; line-height:1.2; }.research-stage small { margin-top:2px; color:#71839a; font-size:10px; line-height:1.25; }
.risk-placeholder { display:flex; align-items:baseline; gap:10px; margin:24px 0 8px; }.risk-placeholder strong { color:#245ebe; font-size:42px; letter-spacing:-.06em; line-height:1; }.risk-placeholder span { color:#3f6291; font-size:13px; font-weight:800; }.dashboard-risk-card>p,.dashboard-report-card>p { color:#5f7590; font-size:11px; line-height:1.45; }.panel-link { display:inline-flex; gap:7px; align-items:center; margin-top:6px; color:#2265bd; font-size:11px; font-weight:850; text-decoration:none; }.panel-link:hover { color:var(--blue-dark); text-decoration:underline; text-underline-offset:3px; }
.report-counts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:20px; }.report-counts>div { padding:10px; border:1px solid #dce8f7; border-radius:10px; background:rgba(255,255,255,.75); }.report-counts strong,.report-counts span { display:block; }.report-counts strong { color:#173b72; font-size:22px; letter-spacing:-.04em; line-height:1; }.report-counts span { margin-top:4px; color:#647a94; font-size:9px; font-weight:700; line-height:1.2; }.report-line-visual { display:flex; height:28px; align-items:end; gap:5px; margin:13px 0 8px; }.report-line-visual i { width:13%; border-radius:4px 4px 2px 2px; background:linear-gradient(to top,#4f91f7,#a8d2ff); }.report-line-visual i:nth-child(1){height:34%}.report-line-visual i:nth-child(2){height:52%}.report-line-visual i:nth-child(3){height:42%}.report-line-visual i:nth-child(4){height:83%}.report-line-visual i:nth-child(5){height:67%}.report-line-visual i:nth-child(6){height:100%}

/* Consistent styling for the remaining workspaces */
.compact-panel h2,
.panel h2,
.project-card h2,
.chapter-card h2,
.run-card h2 { color: #142c52; }
.compact-panel-head a,
.compact-section-head>a,
.panel-head a,
.artifact-links a { color: #2366b9; }
.compact-list>a { color: #27445f; }.compact-list>a:hover { color: var(--blue-dark); }
.compact-list b { color: #456b90; background: #edf5ff; }
.compact-facts dt { color: #74869b; }.compact-facts dd { color: #2b4562; }
.scope-grid>div { border: 1px solid #e1eaf5; border-radius: 10px; background: #f7faff; }
.flow-node { border-color: #d4e2f2; }.source-node,.cohort-node,.output-node { border-color: #bad2ee; background: linear-gradient(135deg,#fbfdff,#e9f4ff); }.implemented-node { border-top-color: #52af82; }.protocol-node { border-top-color: #d29b34; }.locked-node { border-top-color: #ce6370; }
.chapter-card:hover,
.project-card:hover,
.run-card:hover { border-color: #bcd3f2; box-shadow: var(--surface-shadow-hover); }
.artifact-links a { border-color: #cbdcf0; background: #f4f8ff; }.artifact-links a:hover { color: var(--blue-dark); background: #eaf3ff; }
.status-chip.active { color: #19764e; background:#e8f7ef; border-color:#bce4cc; }.status-chip.planned { color:#536a85; background:#f0f5fb; border-color:#d6e1ed; }.status-chip.blocked { color:#9f4653; background:#feedef; border-color:#f1cbd0; }
.report-meta { border-radius: var(--radius-lg); background: linear-gradient(120deg, #133967, #245f9f); box-shadow: var(--surface-shadow); }.report-meta span { color:#c9e0fb; }
.locked-banner { border-color: #efc5cb; border-left-color: #c85e6c; background:#fff5f6; }.locked-banner>span { background:#bd5361; }.calculator-result { background:linear-gradient(145deg,#fbfdff,#f0f6ff); }.readiness-row { background:#fff3f4; }.calculator-step>span { color:#2468ba; background:#eaf3ff; }

/* Dissertation drafting workspace */
.dissertation-outline-head { align-items: flex-end; }
.outline-project-name { max-width: 360px; padding: 9px 12px; overflow: hidden; border: 1px solid #d4e2f3; border-radius: 999px; color: #496885; background: #f6faff; font-size: 12px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.outline-project-switcher { display: flex; max-width: 760px; align-items: center; gap: 10px; margin: -8px 0 17px; padding: 11px 13px; border: 1px solid #dce7f3; border-radius: 12px; background: rgba(255,255,255,.7); box-shadow: var(--surface-shadow); }.outline-project-switcher label { flex: none; color: #385574; font-size: 12px; font-weight: 800; }.outline-project-switcher select { min-width: 0; flex: 1; }.outline-project-switcher .button { min-height: 37px; }
.dissertation-map { max-width: 1160px; }
.dissertation-map-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin: 0 0 17px; padding: 3px 2px 0; }.dissertation-map-head h2 { margin: 3px 0 0; color: #142b50; font-size: 24px; letter-spacing: -.035em; }.dissertation-map-head>p { max-width: 365px; margin: 0; color: #607993; font-size: 12px; line-height: 1.45; }
.outline-group { position: relative; margin: 0 0 22px; padding: 17px; overflow: hidden; border: 1px solid #dbe7f4; border-radius: calc(var(--radius-lg) + 3px); background: linear-gradient(135deg, rgba(243, 248, 255, .87), rgba(255, 255, 255, .92)); box-shadow: var(--surface-shadow); }.outline-group::after { position: absolute; top: -74px; right: -51px; width: 186px; height: 186px; border: 1px solid rgba(80, 145, 219, .17); border-radius: 50%; content: ""; }.outline-group:nth-of-type(3)::after { border-color: rgba(67, 158, 118, .19); }
.outline-group-head { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }.outline-group-sequence { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 12px; color: #1d64bb; background: #e5f0ff; font-size: 12px; font-weight: 900; letter-spacing: .045em; }.outline-group:nth-of-type(3) .outline-group-sequence { color: #19754f; background: #e7f7ee; }.outline-group-head p { margin: 0 0 2px; color: #758aa2; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.outline-group-head h3 { margin: 0; color: #1b385e; font-size: 15px; letter-spacing: -.015em; }
.outline-note { margin: 2px 0 0; padding: 11px 14px; border-left: 3px solid var(--blue); border-radius: 0 10px 10px 0; color: #516b87; background: #f2f7fd; font-size: 12px; line-height: 1.45; }
.dissertation-outline-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.outline-card { position: relative; display: flex; min-height: 226px; flex-direction: column; padding: 18px; overflow: hidden; border: 1px solid #d6e4f3; border-radius: 15px; color: #172c4a; background: rgba(255, 255, 255, .94); box-shadow: 0 7px 16px rgba(42, 85, 134, .07); text-decoration: none; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease; }.outline-card::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; content: ""; background: #b8cadf; }.outline-card::after { position: absolute; right: -21px; bottom: -34px; width: 112px; height: 112px; border: 1px solid rgba(79, 139, 211, .14); border-radius: 50%; content: ""; transition: transform .25s ease; }.outline-card:hover { transform: translateY(-5px); border-color: #a7c9ee; background: #fff; box-shadow: 0 15px 25px rgba(42, 85, 134, .14); }.outline-card:hover::after { transform: scale(1.16); }.outline-card.active::before { background: #43a979; }.outline-card--intro::before { background: #316fd0; }.outline-card--literature::before { background: #7561cc; }.outline-card--methods::before { background: #1486a0; }.outline-card--results::before { background: #2678d8; }.outline-card--models::before { background: #268dba; }.outline-card--discussion::before { background: #a66aaf; }.outline-card--conclusion::before { background: #38a36f; }.outline-card--appendices::before { background: #697b93; }
.outline-card-top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 9px; }.outline-index { display: inline-flex; align-items: center; gap: 7px; color: #466b92; font-size: 10px; font-weight: 900; letter-spacing: .075em; text-transform: uppercase; }.outline-index i { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 9px; color: #2766ba; background: #edf4ff; font-size: 10px; font-style: normal; letter-spacing: 0; }.outline-card-content { position: relative; z-index: 1; display: grid; gap: 9px; margin: 22px 0 auto; }.outline-card strong { display: block; color: #142b50; font-size: 18px; letter-spacing: -.027em; line-height: 1.25; }.outline-card-copy { color: #607995; font-size: 11px; line-height: 1.48; }.outline-card-action { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 18px; color: #2867ba; font-size: 11px; font-weight: 850; }.outline-card-action span { font-size: 20px; line-height: .7; transition: transform .18s ease; }.outline-card:hover .outline-card-action span { transform: translateX(4px); }
.manuscript-page-head { align-items: flex-end; }.manuscript-editor { max-width: 1080px; padding: clamp(19px, 3vw, 30px); border: 1px solid #d9e6f4; border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--surface-shadow); }.manuscript-field { margin: 0; }.manuscript-field label { color: #274561; font-weight: 850; }.manuscript-field textarea { min-height: 540px; margin-top: 3px; padding: 15px; border-color: #cbdbea; border-radius: 12px; line-height: 1.62; resize: vertical; }.editor-note { margin-top: 13px; padding: 10px 12px; border: 1px solid #dce8f5; border-radius: 10px; color: #607891; background: #f6faff; font-size: 12px; line-height: 1.45; }.editor-updated { margin: 18px 0 0; color: #72859a; font-size: 11px; }.readonly-manuscript { min-height: 330px; }.manuscript-text { color: #2d4764; line-height: 1.7; }

/* Authentication view */
.auth-shell { display:flex; min-height:100vh; flex-direction:column; background:radial-gradient(circle at 78% 8%, rgba(120,183,255,.26), transparent 29%), linear-gradient(135deg,#edf5ff,#f8fbff); }
.auth-brand { display:flex; align-items:center; gap:11px; width:min(100%, 1160px); margin:0 auto; padding:26px 34px 0; color:#10284d; font-size:18px; font-weight:850; letter-spacing:-.025em; text-decoration:none; }.auth-brand .sidebar-brand-mark { color:#fff; background:linear-gradient(145deg,#236bd1,#5b98f1); box-shadow:0 9px 20px rgba(50,111,204,.19); }
.auth-container { display:grid; min-height:0; flex:1; align-items:center; }.auth-card { min-height:58vh; }.auth-card h1 { color:#10294f; letter-spacing:-.045em; }.auth-card .form-card { border-color:#d6e3f3; background:rgba(255,255,255,.87); backdrop-filter:blur(8px); }.auth-card label { display:block; margin-top:13px; color:#3b5573; font-size:12px; font-weight:800; }.auth-card input { width:100%; margin-top:5px; }.auth-card .button { width:100%; margin-top:20px; }.auth-footer { width:min(100%,1160px); }

@media (max-width: 1260px) {
  .dashboard-module-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .dashboard-module-grid .module-card { grid-column: span 2; }
  .dashboard-module-grid .module-card:nth-child(4),
  .dashboard-module-grid .module-card:nth-child(5) { grid-column: span 3; }
  .dashboard-lower-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-research-card { grid-row: span 1; }
  .dashboard-report-card { grid-column: span 2; }
}

@media (max-width: 1060px) {
  .app-shell { grid-template-columns: 226px minmax(0, 1fr); }
  .app-sidebar { width:226px; padding-inline:11px; }
  .sidebar-brand { margin-inline:5px; font-size:16px; }
  .sidebar-nav a { gap:11px; padding-inline:11px; }
  .app-topbar,.container { padding-inline:24px; }
  .overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-copy { padding-inline:30px; }
}

@media (max-width: 880px) {
  .app-shell { display:block; }
  .app-sidebar { position:static; width:auto; height:auto; min-height:0; padding:13px 16px 12px; overflow:visible; }
  .sidebar-brand { min-height:40px; margin:0 0 13px; font-size:17px; }.sidebar-brand small { display:none; }.sidebar-brand-mark { width:36px; height:36px; flex-basis:36px; border-radius:10px; }.sidebar-brand-mark svg { width:29px; height:29px; }
  .sidebar-nav { display:flex; gap:6px; overflow-x:auto; padding-bottom:2px; scrollbar-width:thin; }.sidebar-nav a { min-height:38px; flex:0 0 auto; padding:0 11px; border-radius:9px; font-size:12px; }.sidebar-nav svg { width:18px; height:18px; flex-basis:18px; }.sidebar-scope { display:none; }
  .app-topbar { position:static; min-height:58px; }.dashboard-hero { grid-template-columns:1fr minmax(240px,.65fr); }.hero-heart { right:24%; }.hero-data-bars { right:21px; }
}

@media (max-width: 920px) {
  .dissertation-outline-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .outline-card { min-height: 214px; }
}

@media (max-width: 680px) {
  .app-topbar,.container { padding-inline:16px; }.topbar-context,.data-scope-pill,.account-name { display:none; }.app-topbar { justify-content:flex-end; min-height:52px; }
  .container { padding-top:20px; padding-bottom:30px; }.app-footer { flex-direction:column; padding:16px; font-size:10px; }
  .dashboard-hero { display:block; min-height:0; }.hero-copy { padding:27px 21px 17px; }.hero-visual { min-height:150px; }.hero-heart { top:-7px; right:26%; min-width:114px; }.hero-data-bars { right:18px; bottom:17px; height:58px; gap:6px; }.hero-data-bars i { width:11px; }.hero-chips { margin-top:15px; }
  .overview-grid { gap:9px; margin-bottom:23px; }.overview-metric { min-height:84px; padding:12px; gap:10px; }.overview-icon { width:35px; height:35px; flex-basis:35px; border-radius:10px; }.overview-icon svg { width:20px; height:20px; }.overview-metric strong { font-size:24px; }.overview-metric small { font-size:10px; }
  .dashboard-section-head h2 { font-size:20px; }.dashboard-section-head>a { white-space:nowrap; }.dashboard-module-grid,.dashboard-lower-grid { grid-template-columns:1fr; }.dashboard-module-grid .module-card,.dashboard-module-grid .module-card:nth-child(4),.dashboard-module-grid .module-card:nth-child(5),.dashboard-report-card { grid-column:auto; }.module-card { min-height:172px; }.dashboard-research-card,.dashboard-risk-card,.dashboard-report-card { min-height:0; }
  .page-head h1,.workspace-head h1 { font-size:28px; }.page-head,.workspace-head { align-items:flex-start; flex-direction:column; gap:13px; }.metric-grid,.card-grid,.two-column,.statistics-layout,.workspace-lower-grid,.chapter-grid,.supervisor-grid,.model-spec-grid,.scope-grid { grid-template-columns:1fr; }.filter-bar { padding:11px; }.report-meta { grid-template-columns:1fr 1fr; }.auth-brand { padding:18px 18px 0; }.auth-container { padding-inline:18px; }.auth-card { grid-template-columns:1fr; min-height:0; gap:25px; }.auth-card h1 { font-size:34px; }
}

@media (max-width: 680px) {
  .dissertation-outline-head,.manuscript-page-head { align-items: flex-start; }
  .outline-project-name { max-width: 100%; }
  .outline-project-switcher { align-items: stretch; flex-direction: column; }
  .dissertation-map-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .dissertation-outline-grid { grid-template-columns: 1fr; }
  .outline-group { padding: 13px; }
  .outline-card { min-height: 168px; }
  .outline-card strong { font-size: 18px; }
  .manuscript-editor { padding: 16px; }
  .manuscript-field textarea { min-height: 420px; }
}

@media (max-width: 430px) {
  .sidebar-nav a span { display:none; }.sidebar-nav a { width:42px; justify-content:center; padding:0; }.sidebar-nav svg { margin:0; }.overview-grid { grid-template-columns:1fr; }.dashboard-section-head { align-items:flex-start; flex-direction:column; gap:6px; }.dashboard-section-head>a { font-size:11px; }.hero-actions { align-items:stretch; flex-direction:column; }.hero-actions .button { width:100%; }.hero-text-link { padding:6px 0; }.report-meta { grid-template-columns:1fr; }
}

@media print {
  .app-sidebar,.app-topbar,.app-footer,.no-print { display:none !important; }
  .app-shell { display:block; }.container { width:100%; padding:0; }.dashboard-hero,.overview-grid,.dashboard-module-grid,.dashboard-lower-grid { break-inside:avoid; }
}

/* DoctorRisk v3: pinned research-only model workspace */
.doctor-risk-model-card { display:grid; grid-template-columns:64px minmax(0,1fr) minmax(210px,.42fr); gap:20px; align-items:start; padding:22px; border:1px solid #cbdff6; border-radius:calc(var(--radius-lg) + 3px); background:linear-gradient(135deg,#f8fbff 0%,#edf5ff 62%,#e7f5f2 100%); box-shadow:var(--surface-shadow); }
.doctor-risk-model-mark,.research-boundary>span { display:grid; width:56px; height:56px; place-items:center; border-radius:17px; color:#fff; background:linear-gradient(145deg,#2068cf,#55a0f4); box-shadow:0 10px 20px rgba(39,108,204,.2); font-size:14px; font-weight:900; letter-spacing:.06em; }.doctor-risk-model-copy h2 { margin:8px 0 7px; color:#132b50; font-size:25px; letter-spacing:-.035em; }.doctor-risk-model-copy>p { max-width:730px; margin:0; color:#4d6b88; font-size:13px; line-height:1.5; }.doctor-risk-model-copy .muted { margin-top:8px; font-size:11px; }.doctor-risk-model-facts { display:grid; grid-template-columns:1fr; gap:8px; padding:11px; border:1px solid rgba(122,165,215,.23); border-radius:13px; background:rgba(255,255,255,.68); }.doctor-risk-model-facts>div { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:4px 3px; }.doctor-risk-model-facts strong { color:#1b5ea9; font-size:25px; letter-spacing:-.05em; line-height:1; }.doctor-risk-model-facts span { color:#587694; font-size:10px; font-weight:800; text-align:right; }
.research-boundary { display:flex; align-items:center; gap:13px; margin:0 0 18px; padding:13px 15px; border:1px solid #bdddcf; border-left:4px solid #3e9e71; border-radius:11px; background:#effaf4; }.research-boundary>span { width:37px; height:37px; flex:0 0 37px; border-radius:11px; background:#2e9569; box-shadow:none; font-size:10px; }.research-boundary strong { display:block; color:#256443; font-size:13px; }.research-boundary p { margin:3px 0 0; color:#557564; font-size:12px; line-height:1.42; }
.doctor-risk-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(248px,.34fr); gap:14px; align-items:start; }.doctor-risk-form { padding:clamp(18px,2.5vw,28px); border:1px solid #d8e5f3; border-radius:var(--radius-lg); background:var(--white); box-shadow:var(--surface-shadow); }.doctor-risk-form .errorlist { margin:0 0 13px; padding:10px 12px; border:1px solid #edc4ca; border-radius:9px; color:#9d3e4d; background:#fff4f5; font-size:12px; list-style:none; }.doctor-risk-fieldset { min-width:0; margin:0 0 17px; padding:17px; border:1px solid #dce7f3; border-radius:13px; background:#fbfdff; }.doctor-risk-fieldset legend { padding:0 6px; color:#244c78; font-size:12px; font-weight:900; letter-spacing:.02em; }.doctor-risk-field-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px 14px; }.doctor-risk-field-grid .field { min-width:0; margin:0; padding:7px 0; }.doctor-risk-field-grid .field label { color:#355779; font-size:11px; }.doctor-risk-field-grid .field select,.doctor-risk-field-grid .field input { width:100%; min-width:0; }.doctor-risk-field-grid .field small { min-height:0; color:#7590aa; font-size:10px; line-height:1.3; }.doctor-risk-confirmation { display:flex; align-items:flex-start; gap:9px; margin:0 0 12px; padding:11px 13px; border:1px solid #d9e7f4; border-radius:10px; color:#385a78; background:#f5f9fd; }.doctor-risk-confirmation input { width:16px; height:16px; flex:0 0 16px; margin:2px 0 0; }.doctor-risk-confirmation label { display:block; color:#2d4d6d; font-size:12px; font-weight:800; }.doctor-risk-confirmation small { display:block; margin-top:3px; color:#6a829c; font-size:10px; line-height:1.38; }.doctor-risk-confirmation.is-disabled { opacity:.62; }.doctor-risk-side-note { padding:19px; border:1px solid #dce7f3; border-radius:var(--radius-lg); background:linear-gradient(150deg,#f7fbff,#edf6ff); box-shadow:var(--surface-shadow); }.doctor-risk-side-note h2 { margin:5px 0 12px; color:#18365d; font-size:18px; letter-spacing:-.02em; }.doctor-risk-side-note ul { display:grid; gap:9px; margin:0; padding-left:18px; color:#536f8c; font-size:11px; line-height:1.45; }.doctor-risk-side-note a { display:inline-flex; margin-top:15px; color:#2369be; font-size:11px; font-weight:850; text-decoration:none; }.doctor-risk-side-note a:hover { color:var(--blue-dark); text-decoration:underline; text-underline-offset:3px; }
.doctor-risk-results { margin-top:21px; }.doctor-risk-result-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:11px; margin:0 0 14px; }.doctor-risk-result-card { position:relative; min-height:183px; padding:15px; overflow:hidden; border:1px solid #d6e4f2; border-top:3px solid #3d8ed7; border-radius:13px; background:var(--white); box-shadow:var(--surface-shadow); }.doctor-risk-result-card::after { position:absolute; right:-25px; bottom:-37px; width:110px; height:110px; border:1px solid rgba(74,145,220,.14); border-radius:50%; content:""; }.doctor-risk-result-card>span,.doctor-risk-result-card strong,.doctor-risk-result-card p,.doctor-risk-result-card small { position:relative; z-index:1; display:block; }.doctor-risk-result-card>span { min-height:31px; color:#355b83; font-size:11px; font-weight:850; line-height:1.28; }.doctor-risk-result-card strong { margin:12px 0 8px; color:#165eaf; font-size:31px; letter-spacing:-.055em; line-height:1; }.doctor-risk-result-card p { min-height:39px; margin:0; color:#607b96; font-size:10px; line-height:1.35; }.doctor-risk-result-card small { margin-top:11px; color:#7189a1; font-size:9px; line-height:1.3; }
.doctor-risk-guide-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }.doctor-risk-guide-grid .compact-panel { min-width:0; }.doctor-risk-guide-grid code { overflow-wrap:anywhere; }.doctor-risk-guide-section { margin:0 0 12px; padding:16px; border:1px solid #dce7f3; border-radius:13px; background:#fbfdff; }.doctor-risk-guide-section h3 { margin:0 0 10px; color:#254b73; font-size:15px; }.doctor-risk-dictionary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }.doctor-risk-dictionary>div { min-width:0; padding:10px; border:1px solid #e0eaf4; border-radius:10px; background:#fff; }.doctor-risk-dictionary code,.doctor-risk-dictionary strong,.doctor-risk-dictionary span { display:block; }.doctor-risk-dictionary code { overflow-wrap:anywhere; color:#1f65b7; font-size:10px; }.doctor-risk-dictionary strong { margin-top:5px; color:#244565; font-size:11px; line-height:1.27; }.doctor-risk-dictionary span { margin-top:5px; color:#6b829b; font-size:10px; line-height:1.32; }.doctor-risk-target-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }.doctor-risk-target-grid article { min-width:0; padding:14px; border:1px solid #d7e4f2; border-radius:12px; background:#fff; box-shadow:var(--surface-shadow); }.doctor-risk-target-grid code { color:#2670c5; font-size:10px; overflow-wrap:anywhere; }.doctor-risk-target-grid h3 { margin:8px 0 6px; color:#1d3d62; font-size:14px; line-height:1.25; }.doctor-risk-target-grid p { margin:0; color:#607c96; font-size:10px; line-height:1.38; }.doctor-risk-protocol { display:grid; gap:9px; margin:0; padding:0; list-style:none; counter-reset:doctor-risk-protocol; }.doctor-risk-protocol li { display:grid; grid-template-columns:31px 1fr; gap:12px; align-items:start; padding:13px; border:1px solid #dce7f3; border-radius:11px; background:#fff; box-shadow:0 4px 10px rgba(42,85,134,.04); }.doctor-risk-protocol b { display:grid; width:29px; height:29px; place-items:center; border-radius:9px; color:#fff; background:#3377cd; font-size:11px; }.doctor-risk-protocol strong,.doctor-risk-protocol span { display:block; }.doctor-risk-protocol strong { color:#294b6e; font-size:12px; }.doctor-risk-protocol span { margin-top:2px; color:#627d97; font-size:11px; line-height:1.42; }

@media (max-width: 1160px) { .doctor-risk-result-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.doctor-risk-target-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width: 940px) { .doctor-risk-model-card { grid-template-columns:55px minmax(0,1fr); }.doctor-risk-model-facts { grid-column:1 / -1; grid-template-columns:repeat(3,1fr); }.doctor-risk-workspace { grid-template-columns:1fr; }.doctor-risk-field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 680px) { .doctor-risk-model-card { display:flex; flex-direction:column; gap:13px; }.doctor-risk-model-facts { width:100%; }.doctor-risk-fieldset { padding:13px; }.doctor-risk-field-grid,.doctor-risk-guide-grid,.doctor-risk-dictionary,.doctor-risk-result-grid,.doctor-risk-target-grid { grid-template-columns:1fr; }.doctor-risk-result-card { min-height:0; }.doctor-risk-result-card p { min-height:0; }.doctor-risk-model-facts>div { justify-content:flex-start; }.doctor-risk-model-facts span { text-align:left; } }

.doctor-risk-local-runner { display:grid; gap:1rem; padding:1.5rem; border:1px solid #d4e5e3; border-radius:20px; background:linear-gradient(130deg,#f8fbff,#eff8f6); }
.doctor-risk-local-runner h3 { margin:0 0 .55rem; color:var(--ink); }
.doctor-risk-local-runner p { margin:0; line-height:1.5; }
.doctor-risk-command { margin:0; padding:1rem 1.1rem; overflow-x:auto; border-radius:14px; color:#e8f4ff; background:#0f2747; font-size:.78rem; line-height:1.6; white-space:pre; }

.module-card.current .module-status,
.module-status.current,
.status-legend .current { color:#166c8d; background:#e7f6fb; }
.module-card.current { border-top-color:#287f8a; }

/* Registry workspace */
.registry-workspace-head { align-items: flex-end; }
.registry-workspace-head > div:first-child { max-width: 780px; }
.registry-actions { flex-wrap: wrap; justify-content: flex-end; }
.registry-boundary { margin: 0 0 20px; }
.registry-boundary.wide { max-width: 980px; }
.registry-metric-strip { margin-bottom: 26px; }
.registry-layout { display: grid; grid-template-columns: minmax(0, 1.48fr) minmax(300px, .72fr); gap: 14px; align-items: start; }
.registry-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.registry-section-card { position: relative; display: flex; min-height: 168px; flex-direction: column; padding: 17px; overflow: hidden; border: 1px solid #d8e6f2; border-radius: 13px; color: var(--ink); background: #fff; box-shadow: 0 6px 19px rgba(27, 62, 113, .055); text-decoration: none; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.registry-section-card:hover { transform: translateY(-2px); border-color: #a7c7ea; box-shadow: var(--surface-shadow-hover); }
.registry-section-card:before { position: absolute; top: 0; right: 0; width: 88px; height: 88px; border-radius: 0 0 0 100%; background: #edf6ff; content: ""; }
.registry-section-number { position: relative; width: 28px; height: 28px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 8px; color: #1761a9; background: #e7f2ff; font-size: 10px; font-weight: 900; letter-spacing: .06em; }
.registry-section-card strong { position: relative; max-width: 250px; color: #17335d; font-size: 15px; line-height: 1.25; }
.registry-section-card small { position: relative; margin-top: 7px; color: #687c95; font-size: 11px; line-height: 1.45; }
.registry-section-card b { position: relative; display: flex; justify-content: space-between; margin-top: auto; padding-top: 12px; border-top: 1px solid #e4edf7; color: #3671aa; font-size: 11px; }
.registry-section-card b span { font-size: 16px; line-height: .7; }
.registry-governance { min-height: 100%; }
.registry-workflow { display: grid; gap: 0; padding: 0; margin: 4px 0 0; list-style: none; }
.registry-workflow li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; padding: 12px 0; border-top: 1px solid #e2ebf2; }
.registry-workflow li b { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; color: #21619d; background: #e8f2ff; font-size: 10px; }
.registry-workflow strong, .registry-workflow small { display: block; }
.registry-workflow strong { color: #18355d; font-size: 12px; }
.registry-workflow small { margin-top: 3px; color: #6c7f95; font-size: 10px; line-height: 1.45; }
.registry-note { margin-top: 12px; padding: 12px; border: 1px solid #cfe0f3; border-radius: 9px; background: #f1f7ff; }
.registry-note strong { color: #275b91; font-size: 11px; }
.registry-note p { margin: 4px 0 0; color: #58738f; font-size: 11px; line-height: 1.45; }
.registry-filter { align-items: center; }
.registry-filter input { min-width: 260px; }
.registry-table-wrap { margin-top: 15px; }
.registry-structure-table td:first-child { width: 56px; color: #66809b; font-size: 12px; font-weight: 800; }
.registry-structure-table td:nth-child(2) { width: 220px; color: #526e8d; }
.registry-structure-table td:nth-child(4) { width: 125px; }
.registry-structure-table td:nth-child(5) { width: 105px; color: #5e748b; font-size: 12px; }
.registry-structure-table td:nth-child(6) { width: 130px; }
.registry-key { display: block; margin-top: 3px; color: #8596a9; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.status.registry-review { border-color: #f0d69d; color: #91671a; background: #fff7e3; }
.registry-next-steps { max-width: 860px; }

@media (max-width: 980px) {
  .registry-layout { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .registry-section-grid { grid-template-columns: 1fr; }
  .registry-workspace-head { align-items: flex-start; }
  .registry-actions { justify-content: flex-start; }
  .registry-filter input { min-width: 100%; }
}

/* Model-development methodology */
.methodology-boundary { display: flex; align-items: center; gap: 13px; margin: 0 0 24px; padding: 14px 16px; border: 1px solid #c9dced; border-left: 4px solid #2a72ba; border-radius: 11px; color: #2c547f; background: #eef6ff; }
.methodology-boundary > span { display: grid; flex: 0 0 35px; width: 35px; height: 35px; place-items: center; border-radius: 9px; color: #fff; background: #2a72ba; font-size: 10px; font-weight: 900; letter-spacing: .04em; }
.methodology-boundary strong { color: #173e6c; font-size: 13px; }
.methodology-boundary p { margin: 3px 0 0; color: #557392; font-size: 12px; line-height: 1.45; }
.methodology-flow { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr) 28px minmax(0, 1fr); align-items: stretch; gap: 10px; margin: 0 0 30px; }
.methodology-arrow { display: grid; place-items: center; color: #4e8bca; font-size: 27px; font-weight: 300; }
.methodology-step { position: relative; min-height: 238px; padding: 20px; overflow: hidden; border: 1px solid #dce8f5; border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(29, 72, 123, .06); }
.methodology-step:before { position: absolute; top: 0; right: 0; width: 108px; height: 108px; border-radius: 0 0 0 100%; content: ""; opacity: .88; }
.methodology-step.definition:before { background: #e3f1ff; }
.methodology-step.data:before { background: #e4f8ef; }
.methodology-step.split:before { background: #f5e9ff; }
.methodology-step > span { position: relative; display: inline-grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; color: #1d5f9f; background: #eaf3ff; font-size: 10px; font-weight: 900; letter-spacing: .06em; }
.methodology-step p { position: relative; margin: 16px 0 2px; color: #5582ae; font-size: 10px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.methodology-step h2 { position: relative; margin: 0; color: #16365e; font-size: 20px; line-height: 1.15; }
.methodology-step ul { position: relative; padding-left: 18px; margin: 14px 0 0; color: #526e89; font-size: 11px; line-height: 1.45; }
.methodology-step li { margin-bottom: 6px; }
.methodology-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 34px 0 13px; }
.methodology-section-head h2 { margin: 2px 0 0; color: #16365e; font-size: 24px; letter-spacing: -.03em; }
.methodology-training-grid, .methodology-model-grid, .methodology-evaluation-grid { display: grid; gap: 11px; }
.methodology-training-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.methodology-panel { padding: 16px; border: 1px solid #dce9ef; border-top: 3px solid #5a9a89; border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(30, 84, 87, .045); }
.methodology-panel h3, .methodology-model-grid h3, .methodology-evaluation-grid h3 { margin: 0 0 7px; color: #1c3b60; font-size: 15px; line-height: 1.2; }
.methodology-panel p, .methodology-model-grid p, .methodology-evaluation-grid p { margin: 0; color: #617b91; font-size: 11px; line-height: 1.5; }
.methodology-model-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.methodology-model-grid article { padding: 17px; border: 1px solid #dfe8f4; border-radius: 12px; background: linear-gradient(145deg, #fff, #f7fbff); }
.methodology-model-code { display: inline-grid; width: 30px; height: 30px; place-items: center; margin-bottom: 13px; border-radius: 8px; color: #fff; background: #2d6cae; font-size: 10px; font-weight: 900; letter-spacing: .03em; }
.methodology-evaluation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.methodology-evaluation-grid article { padding: 16px; border: 1px solid #e5e5f3; border-radius: 12px; background: #fff; }
.methodology-evaluation-grid article:nth-child(3n + 1) { border-top: 3px solid #7d65bc; }
.methodology-evaluation-grid article:nth-child(3n + 2) { border-top: 3px solid #498cb3; }
.methodology-evaluation-grid article:nth-child(3n) { border-top: 3px solid #5c9d7c; }
.methodology-closeout { display: flex; align-items: center; justify-content: space-between; gap: 26px; margin-top: 28px; padding: 23px; border: 1px solid #cde4da; border-radius: 14px; background: linear-gradient(110deg, #f2fbf6, #f5fbff); }
.methodology-closeout h2 { margin: 2px 0 7px; color: #174d45; font-size: 22px; }
.methodology-closeout p { max-width: 730px; margin: 0; color: #587671; font-size: 12px; line-height: 1.55; }
.methodology-closeout .artifact-links { flex: 0 0 auto; justify-content: flex-end; }

@media (max-width: 1120px) {
  .methodology-training-grid, .methodology-model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .methodology-flow { grid-template-columns: 1fr; }
  .methodology-arrow { min-height: 22px; transform: rotate(90deg); }
  .methodology-evaluation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .methodology-closeout { align-items: flex-start; flex-direction: column; }
  .methodology-closeout .artifact-links { justify-content: flex-start; }
}
@media (max-width: 520px) {
  .methodology-training-grid, .methodology-model-grid, .methodology-evaluation-grid { grid-template-columns: 1fr; }
  .methodology-section-head { align-items: flex-start; flex-direction: column; }
}
