:root {
  --ink: #19211f;
  --muted: #68736f;
  --line: #dce2df;
  --line-strong: #c5cec9;
  --surface: #fff;
  --canvas: #f3f6f4;
  --sidebar: #14201d;
  --green: #14745a;
  --green-soft: #e7f3ef;
  --blue: #2f6f8f;
  --blue-soft: #eaf2f6;
  --amber: #a9691d;
  --amber-soft: #f8f0df;
  --red: #ad3d3d;
  --red-soft: #f8eaea;
  --shadow: 0 14px 34px rgba(20, 31, 27, .08);
}


.auth-logout {
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid rgba(112, 201, 170, .2);
  border-radius: 4px;
  color: #b8cac3;
  background: rgba(255,255,255,.04);
  font-size: 10px;
}
.auth-logout:hover { color: #fff; border-color: rgba(112, 201, 170, .48); }
.auth-logout[hidden] { display: none; }
.workflow-jumpbar {
  width: min(1180px, calc(100% - 60px));
  margin: 0 auto 24px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid #cddbd5;
  border-radius: 6px;
  background: linear-gradient(105deg, #edf6f2 0%, #fff 70%);
  box-shadow: 0 10px 26px rgba(20, 31, 27, .05);
}
.workflow-jumpbar > div:first-child { display: grid; gap: 3px; }
.workflow-jumpbar span { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.workflow-jumpbar strong { font-size: 14px; }
.workflow-jumpbar small { color: var(--muted); font-size: 11px; }
.workflow-jump-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.police-filing { display: inline-flex; align-items: center; gap: 5px; }
.police-filing img { width: 18px; height: 18px; object-fit: contain; }

@media (max-width: 820px) {
  .workflow-jumpbar { width: calc(100% - 32px); margin-bottom: 18px; align-items: flex-start; flex-direction: column; }
  .workflow-jump-actions { width: 100%; justify-content: flex-start; }
}

@media (max-width: 520px) {
  .workflow-jump-actions { display: grid; grid-template-columns: 1fr; }
  .workflow-jump-actions .button { width: 100%; text-align: center; }
}

@media print {
  .workflow-jumpbar, .auth-logout { display: none !important; }
}

/* MOZI enterprise visual language · tool selection laboratory */
body{background:radial-gradient(circle at 88% 7%,rgba(39,204,211,.11),transparent 27rem),radial-gradient(circle at 25% 92%,rgba(91,75,239,.08),transparent 31rem),var(--canvas)}
.main{position:relative;isolation:isolate;overflow:hidden}.main::before{content:"";position:absolute;z-index:-1;right:-190px;top:120px;width:500px;height:500px;border:1px solid rgba(47,170,194,.14);border-radius:50%;box-shadow:0 0 0 44px rgba(79,93,226,.03),0 0 0 108px rgba(55,197,202,.022);animation:moziLabOrbit 36s linear infinite;pointer-events:none}
.sidebar{background:linear-gradient(180deg,rgba(7,18,40,.97),rgba(12,28,55,.98)),url('/assets/enterprise-city-scan.png') center/cover;box-shadow:14px 0 40px rgba(7,23,52,.11)}
.logo-shell{width:72px;height:72px;padding:0;border-radius:15px;overflow:hidden;background:#07569a;box-shadow:0 10px 26px rgba(0,0,0,.24)}.logo-shell img,.report-logo img{width:100%;height:100%;object-fit:cover}.brand-copy strong{font-size:14px;line-height:1.45}.brand-copy span{margin-top:4px;font-size:10px;letter-spacing:.08em}
.button{display:inline-flex;align-items:center;justify-content:center;line-height:1.2;text-decoration:none!important;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:linear-gradient(105deg,#2f68ed,#594eea,#25b8c6);background-size:180% 100%;border-color:transparent;box-shadow:0 10px 24px rgba(69,82,225,.22)}.button-primary:hover{background-position:100% 0;box-shadow:0 14px 30px rgba(69,82,225,.28)}
.content{background-image:linear-gradient(rgba(47,105,175,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(47,105,175,.025) 1px,transparent 1px);background-size:36px 36px}.panel,.stat,.source-card{box-shadow:0 14px 36px rgba(30,62,112,.065)}
.workflow-jumpbar{position:relative;overflow:hidden;border-color:rgba(55,115,194,.2);background:linear-gradient(110deg,rgba(239,246,255,.97),rgba(255,255,255,.98))}.workflow-jumpbar::after{content:"";position:absolute;right:-55px;top:-96px;width:210px;height:210px;border:1px solid rgba(49,159,183,.14);border-radius:50%;box-shadow:0 0 0 27px rgba(85,75,230,.025);pointer-events:none}.workflow-jump-actions{position:relative;z-index:1;align-items:center}.workflow-jump-actions .button{padding:11px 18px;border-radius:9px}
body[data-view="dashboard"] .page-head{position:relative;min-height:270px;align-items:flex-end;overflow:hidden;padding:36px 40px;border-radius:18px;color:#fff;background:linear-gradient(90deg,rgba(7,18,43,.96),rgba(13,39,72,.76),rgba(11,30,62,.20)),url('/assets/enterprise-cyber-city.png') center 51%/cover;box-shadow:0 28px 62px rgba(12,37,78,.24)}body[data-view="dashboard"] .page-head>*{position:relative;z-index:1}body[data-view="dashboard"] .page-head h1{max-width:780px;font-size:clamp(30px,3vw,44px)}body[data-view="dashboard"] .page-head p{color:rgba(235,243,255,.82)}body[data-view="dashboard"] .page-head .eyebrow{color:#62e4e6}
body:not([data-view="dashboard"]):not([data-view="mozi"]):not([data-view="report"]) .page-head{position:relative;overflow:hidden;padding:23px 25px;border:1px solid rgba(57,105,180,.13);border-radius:14px;background:linear-gradient(120deg,rgba(255,255,255,.95),rgba(239,246,255,.85));box-shadow:0 12px 30px rgba(30,63,111,.05)}
body[data-view="mozi"] .content{max-width:none;background:radial-gradient(circle at 86% 7%,rgba(49,210,216,.14),transparent 29rem),linear-gradient(145deg,#071225,#0c1b35 62%,#10284a)}body[data-view="mozi"] .page-head{color:#fff;padding:28px 30px;border:1px solid rgba(101,198,225,.2);border-radius:16px;background:linear-gradient(120deg,rgba(17,43,81,.98),rgba(20,66,93,.92));box-shadow:0 18px 46px rgba(0,0,0,.22)}body[data-view="mozi"] .page-head p{color:#a8bad5}body[data-view="mozi"] .page-head .eyebrow{color:#5ce0e2}body[data-view="mozi"] .panel{background:#101f39;border-color:rgba(136,174,221,.18);color:#eef5ff}body[data-view="mozi"] .panel-head{border-color:rgba(136,174,221,.14)}body[data-view="mozi"] .panel-head span,body[data-view="mozi"] .panel p{color:#99aac6}
.mozi-bridge-status{margin:18px 0;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid rgba(119,165,220,.2);border-radius:16px;background:linear-gradient(120deg,rgba(25,49,87,.95),rgba(18,39,74,.95));color:#fff}.mozi-bridge-status>div:first-child{display:grid;gap:5px}.mozi-bridge-status span{color:#65dfe2;font-size:11px;font-weight:800;letter-spacing:.1em}.mozi-bridge-status strong{font-size:20px}.mozi-bridge-status small{color:#9eb0cb}.mozi-bridge-status.is-ready{box-shadow:inset 4px 0 #39d0bd}.bridge-flow{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.bridge-flow b{padding:8px 10px;border:1px solid rgba(129,177,225,.2);border-radius:9px;background:rgba(255,255,255,.04);font-size:11px}.bridge-flow i{color:#59d8dd;font-style:normal}
.source-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.source-card{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border:1px solid rgba(136,174,221,.18);border-radius:14px;background:#101f39;color:#fff}.source-card h3{margin:6px 0;font-size:16px}.source-card p{margin:0;color:#91a5c5;font-size:11px}.source-card>strong{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:18px}.source-card.online>strong{color:#5ce0bf;background:rgba(51,207,169,.12)}.source-card.offline>strong{color:#e3a663;background:rgba(226,153,73,.11)}.source-card span{font-size:10px;color:#5ce0e2;font-weight:800}
.mozi-context-grid{align-items:start}.context-list{display:grid;gap:10px}.context-list article{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:13px;border:1px solid rgba(136,174,221,.14);border-radius:12px;background:rgba(255,255,255,.035)}.context-list article>b{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#0a1730;color:#64d9df;font-size:11px}.context-list article strong{font-size:13px}.context-list article p{margin:5px 0 0;line-height:1.55;font-size:12px}.meta-line{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.meta-line span{padding:4px 7px;border-radius:999px;background:rgba(100,145,205,.12);color:#9fb5d4;font-size:10px}
.task-template-panel{margin-top:18px}.task-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}.task-template-grid article{padding:15px;border:1px solid rgba(136,174,221,.14);border-radius:12px;background:rgba(255,255,255,.035)}.task-template-grid article>div{display:flex;align-items:center;justify-content:space-between}.task-template-grid h3{margin:12px 0 7px;font-size:14px}.task-template-grid p{margin:0;line-height:1.65;font-size:12px}
.report-cover{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(90deg,rgba(7,18,42,.97),rgba(13,42,72,.75),rgba(10,31,62,.22)),url('/assets/enterprise-night-drone.png') center 53%/cover}.report-logo{width:72px;height:72px;padding:0;border-radius:14px;overflow:hidden;background:#07569a;box-shadow:0 12px 28px rgba(0,0,0,.25)}body[data-view="report"] .content{max-width:none;background:radial-gradient(circle at 85% 10%,rgba(47,202,204,.12),transparent 28rem),linear-gradient(145deg,#071225,#0c2035)}
@keyframes moziLabOrbit{to{transform:rotate(360deg)}}
@media(max-width:900px){.mozi-bridge-status{align-items:flex-start;flex-direction:column}.source-grid,.task-template-grid{grid-template-columns:1fr}}
@media(max-width:760px){body[data-view="dashboard"] .page-head{min-height:310px;padding:28px 23px;background-position:58% center}.logo-shell{width:62px;height:62px}}
@media(prefers-reduced-motion:reduce){.main::before{animation:none!important}.button{transition:none!important}}
@media print{.main::before{display:none!important}body[data-view="mozi"] .content,body[data-view="report"] .content{background:#fff!important}}

/* AI治理全链系统统一导航与备案区域 */
.ecosystem-bar {
  position: sticky;
  top: 0;
  z-index: 45;
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 0 24px;
  color: #eaf3ef;
  background: #0d1714;
  border-bottom: 1px solid rgba(117, 201, 174, .16);
  box-shadow: 0 8px 20px rgba(8, 17, 14, .12);
}
.ecosystem-bar a { color: inherit; text-decoration: none; }
.ecosystem-brand { display: inline-flex; align-items: baseline; gap: 9px; flex: 0 0 auto; }
.ecosystem-brand span { color: #70c9aa; font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.ecosystem-brand strong { font-size: 12px; letter-spacing: .02em; }
.ecosystem-bar nav { display: flex; align-items: center; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.ecosystem-bar nav::-webkit-scrollbar { display: none; }
.ecosystem-bar nav a { flex: 0 0 auto; padding: 5px 9px; border-radius: 4px; color: #aebdb7; font-size: 11px; transition: .16s ease; }
.ecosystem-bar nav a:hover { color: #fff; background: rgba(255,255,255,.07); }
.ecosystem-bar nav a.current { color: #fff; background: rgba(75, 177, 143, .2); box-shadow: inset 0 0 0 1px rgba(112, 201, 170, .22); }
.ecosystem-suite { margin-left: auto; flex: 0 0 auto; color: #73857e; font-size: 10px; letter-spacing: .12em; }
.app-shell { min-height: calc(100vh - 42px); }
.sidebar { top: 42px; height: calc(100vh - 42px); }
.main { min-height: calc(100vh - 42px); }
.topbar { top: 42px; }
.filing-links { flex-basis: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; padding-top: 2px; }
.filing-links[hidden], .filing-links a[hidden] { display: none; }
.filing-links a { color: inherit; text-decoration: none; }
.filing-links a:hover { color: var(--green); text-decoration: underline; }

@media (max-width: 680px) {
  .ecosystem-bar { gap: 10px; padding: 0 10px; }
  .ecosystem-brand strong, .ecosystem-suite { display: none; }
  .ecosystem-bar nav { flex: 1; justify-content: flex-end; }
  .ecosystem-bar nav a { padding-inline: 7px; }
}

@media (max-width: 440px) {
  .ecosystem-brand { display: none; }
  .ecosystem-bar nav { justify-content: space-between; }
}

@media print {
  .ecosystem-bar { display: none !important; }
}
* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; min-width: 320px; background: var(--canvas); color: var(--ink); font-family: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; font-size: 14px; line-height: 1.55; letter-spacing: 0; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { display: grid; grid-template-columns: 238px minmax(0,1fr); min-height: calc(100vh - 42px); }
.sidebar { position: sticky; top: 42px; height: calc(100vh - 42px); display: flex; flex-direction: column; padding: 22px 14px 16px; background: var(--sidebar); color: #fff; z-index: 20; }
.brand { display: grid; gap: 10px; padding: 0 8px 18px; border-bottom: 1px solid rgba(255,255,255,.1); }
.logo-shell { width: 132px; height: 44px; display: flex; align-items: center; padding: 6px 9px; border-radius: 5px; background: #fff; }
.logo-shell img, .report-logo img { width: 100%; height: auto; display: block; }
.brand-copy { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.brand-copy strong { font-size: 14px; }
.brand-copy span { color: #9fada7; font-size: 11px; }
.nav { display: grid; gap: 4px; padding-top: 18px; }
.nav-item { width: 100%; min-height: 42px; display: flex; align-items: center; gap: 11px; padding: 0 12px; border: 0; border-radius: 5px; background: transparent; color: #cbd4d0; text-align: left; }
.nav-item span { min-width: 21px; color: #728079; font-size: 10px; }
.nav-item:hover { background: rgba(255,255,255,.06); color: #fff; }
.nav-item.active { background: #263530; color: #fff; box-shadow: inset 3px 0 #55ac91; }
.nav-item.active span { color: #7bc4ae; }
.sidebar-footer { margin-top: auto; }
.local-status { display: flex; align-items: center; gap: 8px; margin: 14px 12px 0; color: #9fada7; font-size: 11px; }
.local-status i { width: 7px; height: 7px; border-radius: 50%; background: #55ac91; box-shadow: 0 0 0 3px rgba(85,172,145,.14); }
.main { min-width: 0; min-height: calc(100vh - 42px); display: flex; flex-direction: column; }
.topbar { position: sticky; top: 42px; z-index: 15; height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 30px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.breadcrumb { display: flex; align-items: baseline; gap: 10px; }
.breadcrumb span, .save-status { color: var(--muted); font-size: 12px; }
.breadcrumb strong { font-size: 16px; }
.top-actions { display: flex; align-items: center; gap: 14px; }
.save-status { min-width: 48px; text-align: right; }
.save-status.saving { color: var(--amber); }
.menu-button { display: none; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.content { width: min(1400px,100%); margin: 0 auto; padding: 30px; flex: 1; }
.app-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; padding: 16px 30px 18px; border-top: 1px solid var(--line); color: var(--muted); background: rgba(255,255,255,.72); font-size: 10px; text-align: center; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.page-head h1 { margin: 4px 0 5px; font-size: 26px; line-height: 1.25; }
.page-head p { margin: 0; max-width: 760px; color: var(--muted); }
.eyebrow { display: block; color: var(--green); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.button { min-height: 38px; padding: 0 15px; border: 1px solid transparent; border-radius: 5px; font-weight: 700; font-size: 13px; }
.button-primary { background: var(--green); color: #fff; border-color: var(--green); }
.button-primary:hover { background: #0e634c; }
.button-secondary { background: #fff; color: var(--ink); border-color: var(--line-strong); }
.button-secondary:hover { background: #f7f9f8; }
.button-danger { background: #fff; color: var(--red); border-color: #e1b9b9; }
.button-small { min-height: 30px; padding: 0 10px; font-size: 12px; }
.icon-button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 5px; background: #fff; color: var(--muted); font-size: 22px; line-height: 1; }
.actions { display: flex; flex-wrap: wrap; gap: 9px; }
.stats-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 20px; }
.stat { min-height: 128px; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.stat-label { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 12px; }
.stat-label i { width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.stat strong { display: block; margin-top: 16px; font-size: 28px; line-height: 1; font-variant-numeric: tabular-nums; }
.stat small { display: block; margin-top: 10px; color: var(--muted); }
.layout-two { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(320px,.75fr); gap: 18px; }
.panel { background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.panel + .panel { margin-top: 18px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 19px; border-bottom: 1px solid var(--line); }
.panel-head h2 { margin: 0; font-size: 15px; }
.panel-head > span { color: var(--muted); font-size: 12px; }
.panel-body { padding: 19px; }
.form-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.form-grid.two-col { grid-template-columns: repeat(2,minmax(0,1fr)); }
.field { display: grid; gap: 7px; min-width: 0; }
.field.full { grid-column: 1 / -1; }
.field > span { color: #47514d; font-size: 12px; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 5px; background: #fff; color: var(--ink); padding: 10px 11px; outline: none; }
.field input, .field select { height: 41px; }
.field textarea { min-height: 84px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(20,116,90,.11); }
.form-footer { display: flex; justify-content: flex-end; padding-top: 18px; border-top: 1px solid var(--line); }
.weight-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 20px; }
.weight-row { display: grid; grid-template-columns: 90px 1fr 46px; align-items: center; gap: 10px; }
.weight-row span { font-size: 12px; }
.weight-row input { accent-color: var(--green); }
.weight-row output { text-align: right; font-weight: 800; font-size: 12px; }
.weight-total { margin-top: 15px; padding: 11px 13px; background: var(--green-soft); color: var(--green); border-radius: 4px; font-size: 12px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 11px 13px; background: #f7f9f8; color: var(--muted); text-align: left; font-size: 11px; white-space: nowrap; }
td { padding: 14px 13px; border-top: 1px solid var(--line); vertical-align: middle; }
td strong, td small { display: block; }
td small { margin-top: 3px; color: var(--muted); max-width: 340px; }
.table-actions { display: flex; justify-content: flex-end; gap: 6px; }
.score { min-width: 48px; display: inline-flex; justify-content: center; align-items: center; padding: 5px 7px; border-radius: 4px; background: var(--green-soft); color: var(--green); font-weight: 800; }
.score.medium { background: var(--amber-soft); color: var(--amber); }
.score.low { background: var(--red-soft); color: var(--red); }
.tag { display: inline-flex; min-height: 24px; align-items: center; padding: 0 8px; border-radius: 4px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.tag-green { background: var(--green-soft); color: var(--green); }
.tag-blue { background: var(--blue-soft); color: var(--blue); }
.tag-amber { background: var(--amber-soft); color: var(--amber); }
.tag-red { background: var(--red-soft); color: var(--red); }
.tag-gray { background: #edf0ee; color: #59635f; }
.notice { margin-bottom: 18px; padding: 13px 15px; background: var(--blue-soft); border: 1px solid #c9dfe9; border-radius: 6px; color: #28546b; font-size: 12px; }
.notice strong { display: block; margin-bottom: 3px; }
.ranking { display: grid; }
.rank-row { display: grid; grid-template-columns: 34px minmax(0,1fr) 70px; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.rank-row:last-child { border-bottom: 0; }
.rank-index { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 4px; background: var(--canvas); color: var(--muted); font-size: 11px; }
.rank-copy strong, .rank-copy span { display: block; }
.rank-copy span { margin-top: 2px; color: var(--muted); font-size: 12px; }
.evidence-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.evidence-card { padding: 17px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 6px; }
.evidence-card.pass { border-left-color: var(--green); }
.evidence-card.fail { border-left-color: var(--red); }
.evidence-card h3 { margin: 8px 0 4px; font-size: 15px; }
.evidence-card p { min-height: 38px; margin: 0 0 13px; color: var(--muted); font-size: 12px; }
.evidence-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; padding-top: 11px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.finding-list { display: grid; }
.finding { display: grid; grid-template-columns: 30px 1fr; align-items: start; gap: 11px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.finding:last-child { border-bottom: 0; }
.finding-index { width: 26px; height: 26px; display: grid; place-items: center; background: var(--canvas); color: var(--muted); font-size: 10px; border-radius: 4px; }
.finding strong, .finding span { display: block; }
.finding span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.empty { padding: 52px 24px; text-align: center; color: var(--muted); }
.empty strong { display: block; margin-bottom: 7px; color: var(--ink); font-size: 16px; }
.muted { color: var(--muted); }
.integration-status { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.integration-status strong, .integration-status span { display: block; }
.integration-status span { color: var(--muted); font-size: 12px; }
.toggle-line { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.toggle-line input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--green); }
.endpoint-list { display: grid; gap: 7px; margin-top: 12px; }
.endpoint-list code, .token-box code { padding: 8px 10px; overflow-wrap: anywhere; border: 1px solid var(--line); border-radius: 4px; background: #f7f9f8; color: var(--blue); font-family: Consolas, monospace; font-size: 11px; }
.token-box { display: grid; gap: 8px; margin-top: 12px; padding: 12px; border: 1px solid #b7d8cc; border-radius: 5px; background: var(--green-soft); }
.integration-form-grid { grid-template-columns: 1fr; margin-top: 18px; }
.report { max-width: 960px; margin: 0 auto; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); }
.report-cover { min-height: 420px; display: flex; flex-direction: column; justify-content: space-between; padding: 54px; background: var(--sidebar); color: #fff; }
.report-cover-brand { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.report-logo { width: 146px; height: 49px; display: flex; align-items: center; padding: 7px 10px; border-radius: 5px; background: #fff; }
.report-cover h1 { max-width: 720px; margin: 0; font-size: 38px; line-height: 1.25; }
.report-cover p { margin: 10px 0 0; color: #b9c5c0; }
.report-meta { display: flex; justify-content: space-between; color: #aebbb5; font-size: 12px; }
.report-section { padding: 38px 54px; border-bottom: 1px solid var(--line); }
.report-section h2 { margin: 0 0 18px; font-size: 21px; }
.report-summary { font-size: 16px; line-height: 1.9; white-space: pre-wrap; }
.report-kpis { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--line); }
.report-kpis div { padding: 18px; border-right: 1px solid var(--line); }
.report-kpis div:last-child { border-right: 0; }
.report-kpis span, .report-kpis strong { display: block; }
.report-kpis span { color: var(--muted); font-size: 10px; }
.report-kpis strong { margin-top: 5px; font-size: 18px; }
.report-note { padding: 14px 16px; background: var(--amber-soft); border-left: 3px solid var(--amber); color: #5e4c24; font-size: 12px; white-space: pre-wrap; }
.report-legal { margin-top: 28px; padding-top: 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; text-align: center; }
.dialog { width: min(760px,calc(100% - 30px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 7px; box-shadow: 0 24px 70px rgba(12,20,17,.25); }
.dialog::backdrop { background: rgba(15,24,21,.55); }
.dialog form { padding: 23px; }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 19px; }
.dialog h2 { margin: 3px 0 0; font-size: 20px; }
.rating-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 18px; margin-top: 18px; padding: 15px; background: var(--canvas); }
.rating-grid label { display: grid; grid-template-columns: 90px 1fr 24px; align-items: center; gap: 10px; font-size: 12px; }
.rating-grid input { accent-color: var(--green); }
.rating-grid output { text-align: center; font-weight: 800; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 21px; }
.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: 100; display: grid; gap: 8px; }
.toast { width: min(360px,calc(100vw - 40px)); padding: 13px 15px; border-radius: 5px; background: var(--sidebar); color: #fff; box-shadow: var(--shadow); }
.governance-strip { display:grid; grid-template-columns:2fr 1fr; gap:1px; margin-bottom:18px; overflow:hidden; border:1px solid #28483e; border-radius:7px; background:#28483e; color:#dff8ee; box-shadow:var(--shadow); }
.governance-strip div { padding:16px 18px; background:linear-gradient(135deg,#10211d,#18352d); }
.governance-strip strong,.governance-strip span { display:block; }
.governance-strip span { margin-top:5px; color:#9fc6b8; font-size:11px; line-height:1.7; }
.template-launch { display:flex; gap:12px; align-items:center; }
.template-launch select { min-width:280px; padding:10px; border:1px solid var(--line); border-radius:5px; background:#fff; }
.formal-score { display:flex; align-items:baseline; gap:8px; margin:14px 0; }
.formal-score strong { font-size:30px; color:var(--green); }
.formal-score span { color:var(--muted); font-size:11px; }
.score-entry { margin-top:18px; padding:16px; border:1px solid var(--line); border-radius:6px; background:var(--canvas); }
.score-entry .panel-head { padding:0 0 12px; border:0; }
.score-entry-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.score-entry-grid label { display:grid; gap:6px; color:var(--muted); font-size:11px; }
.score-entry-grid select { padding:8px; border:1px solid var(--line); border-radius:4px; background:#fff; }
.critical-check { display:flex; align-items:center; gap:8px; margin:14px 0 8px; font-size:12px; font-weight:700; color:#8f3030; }
.critical-check input { width:18px; height:18px; accent-color:#a53a3a; }
.decision-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.decision-card { padding:18px; border:1px solid var(--line); border-top:3px solid var(--green); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.decision-card>div { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.decision-card h3 { margin:0; font-size:16px; }
.decision-card>div span { padding:4px 8px; border-radius:999px; background:var(--green-soft); color:var(--green); font-size:10px; font-weight:800; }
.decision-card>strong { display:block; margin-top:16px; font-size:34px; }
.decision-card p,.decision-card li { color:var(--muted); font-size:11px; line-height:1.6; }
.decision-card ul { margin:8px 0 0; padding-left:17px; color:#983838; }
.rule-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; padding:1px; background:var(--line); }
.rule-grid article { padding:16px; background:#fff; }
.rule-grid article span { color:var(--green); font-size:9px; font-weight:900; letter-spacing:.14em; }
.rule-grid article strong { display:block; margin:6px 0; }
.rule-grid article p { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.danger-text { color:#a53a3a !important; }

@media (max-width: 1120px) {
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .form-grid { grid-template-columns: repeat(2,1fr); }
  .weight-grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar { position: fixed; left: -250px; width: 238px; transition: left .2s ease; box-shadow: var(--shadow); }
  .sidebar.open { left: 0; }
  .menu-button { display: block; }
  .topbar { padding: 0 16px; }
  .breadcrumb span, .save-status { display: none; }
  .content { padding: 20px 16px; }
  .layout-two { grid-template-columns: 1fr; }
  .page-head { align-items: flex-start; flex-direction: column; }
  .evidence-grid { grid-template-columns: 1fr; }
  .governance-strip,.decision-board,.rule-grid { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .stats-grid, .form-grid, .form-grid.two-col, .rating-grid, .score-entry-grid { grid-template-columns: 1fr; }
  .template-launch { align-items:stretch; flex-direction:column; }
  .template-launch select { min-width:0; width:100%; }
  .field.full { grid-column: auto; }
  .top-actions .button { display: none; }
  .page-head h1 { font-size: 22px; }
  .report-cover, .report-section { padding: 30px 24px; }
  .report-cover h1 { font-size: 28px; }
  .report-kpis { grid-template-columns: repeat(2,1fr); }
  .report-kpis div:nth-child(2) { border-right: 0; }
  .report-kpis div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .dialog form { padding: 18px; }
  .rating-grid label { grid-template-columns: 90px 1fr 22px; }
  .integration-status { align-items: flex-start; flex-direction: column; }
}
@media print {
  body { background: #fff; }
  .sidebar, .topbar, .page-head, .notice, .app-footer, .toast-region { display: none !important; }
  .app-shell { display: block; }
  .content { width: auto; padding: 0; }
  .report { max-width: none; border: 0; box-shadow: none; }
  .report-cover { min-height: 95vh; break-after: page; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .report-section { break-inside: avoid; }
}
