:root{
  --paper:#f4f1ea;
  --wash:#e8f0ee;
  --ink:#101819;
  --muted:#62706f;
  --line:rgba(28,40,39,.16);
  --panel:rgba(255,255,255,.78);
  --deep:#0c1a1b;
  --moss:#667a60;
  --teal:#0f8c92;
  --clay:#b65f4d;
  --ochre:#a88944;
  --blue:#386e9f;
  --shadow:0 24px 70px rgba(14,24,25,.13);
  --tight:0;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;font:15px/1.72 "Aptos","Microsoft YaHei","Segoe UI",sans-serif;color:var(--ink);letter-spacing:0;background:
  linear-gradient(90deg,rgba(16,24,25,.035) 1px,transparent 1px),
  linear-gradient(180deg,rgba(16,24,25,.03) 1px,transparent 1px),
  radial-gradient(circle at 16% 8%,rgba(15,140,146,.12),transparent 30rem),
  radial-gradient(circle at 84% 12%,rgba(182,95,77,.10),transparent 26rem),
  linear-gradient(180deg,#fbfaf6 0%,#edf4f2 44%,#f7f5ee 100%);background-size:72px 72px,72px 72px,auto,auto,auto}
a{color:var(--teal);text-decoration:none}a:hover{text-decoration:none;color:#0b666b}
button,input,textarea,select{font:inherit}button{cursor:pointer}
.shell{max-width:1360px;margin:0 auto;padding:0 26px}.topbar{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(28,40,39,.12);background:rgba(250,248,241,.78);backdrop-filter:blur(22px) saturate(1.08)}
.topbar .shell{height:72px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:12px;min-width:280px;color:var(--ink)}
.mark{width:36px;height:36px;border:1px solid rgba(16,24,25,.18);border-radius:8px;background:linear-gradient(135deg,#0c1a1b,#356866 56%,#e6d6b0);box-shadow:0 16px 38px rgba(15,140,146,.18);position:relative}.mark:before,.mark:after{content:"";position:absolute;background:#fff;border-radius:1px}.mark:before{left:10px;right:10px;top:16px;height:3px}.mark:after{top:10px;bottom:10px;left:16px;width:3px}
.brand strong{display:block;font-size:15px;line-height:1.25;font-weight:850}.brand span{display:block;color:var(--muted);font-size:11px;line-height:1.25;margin-top:2px}.nav{display:flex;gap:5px;align-items:center;overflow:auto;margin-left:auto}.nav a{white-space:nowrap;color:#263333;font-size:13px;padding:8px 10px;border-radius:8px}.nav a:hover{background:rgba(255,255,255,.68)}
.hero{position:relative;padding:54px 0 36px;overflow:hidden}.hero:before{content:"";position:absolute;inset:14px 26px auto 26px;height:1px;background:linear-gradient(90deg,transparent,rgba(16,24,25,.25),transparent)}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);gap:34px;align-items:stretch}.eyebrow{display:inline-flex;margin-bottom:16px;border:1px solid rgba(16,24,25,.16);background:rgba(255,255,255,.62);border-radius:999px;padding:6px 10px;color:#53615e;font-size:12px;font-weight:800}.hero h1{max-width:900px;font-size:clamp(38px,6vw,82px);line-height:.99;margin:0;letter-spacing:0;font-weight:900;color:#0c1718}.hero p{max-width:760px;color:#465654;font-size:17px;margin:22px 0 0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(28,40,39,.17);border-radius:8px;background:rgba(255,255,255,.76);color:var(--ink);padding:10px 14px;font-weight:800;font-size:13px;min-height:42px;box-shadow:0 10px 30px rgba(14,24,25,.05)}.btn.primary{border-color:transparent;background:#0c1a1b;color:#fff;box-shadow:0 18px 38px rgba(12,26,27,.22)}.btn.ghost{background:rgba(255,255,255,.48)}
.hero-panel{border:1px solid rgba(28,40,39,.15);background:linear-gradient(180deg,rgba(255,255,255,.70),rgba(255,255,255,.42));box-shadow:var(--shadow);border-radius:8px;padding:14px;display:grid;gap:12px;min-width:0}.hero-art{position:relative;border-radius:8px;overflow:hidden;min-height:275px;background:#111b1c}.hero-art img{width:100%;height:100%;min-height:275px;display:block;object-fit:cover;filter:grayscale(.15) contrast(1.05) brightness(.88);opacity:.92}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,26,27,.02),rgba(12,26,27,.72))}.art-caption{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;color:#fff}.art-caption b{display:block;font-size:17px;line-height:1.2}.art-caption span{display:block;color:rgba(255,255,255,.72);font-size:12px;margin-top:3px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric{border:1px solid rgba(28,40,39,.13);background:rgba(255,255,255,.72);border-radius:8px;padding:13px}.metric b{font-size:26px;display:block;line-height:1;font-weight:900}.metric span{font-size:12px;color:var(--muted)}.status-line{padding:12px;border-radius:8px;background:rgba(102,122,96,.12);color:#43544f;font-size:13px}
.section{padding:32px 0;scroll-margin-top:88px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px;border-top:1px solid rgba(28,40,39,.16);padding-top:22px}.section h2{font-size:clamp(22px,2.4vw,34px);margin:0;line-height:1.15;font-weight:900}.section .hint{color:var(--muted);font-size:13px;max-width:760px}.toolbar{position:sticky;top:72px;z-index:40;margin:10px 0 22px;border:1px solid rgba(28,40,39,.14);background:rgba(250,248,241,.82);backdrop-filter:blur(18px);border-radius:8px;padding:12px;display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center}.search{display:flex;align-items:center;gap:8px;border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.84);border-radius:8px;padding:0 10px}.search input{width:100%;border:0;outline:0;min-height:42px;background:transparent}.tabs{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.tab{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.72);color:#32413f;border-radius:8px;padding:8px 11px;font-weight:800;font-size:13px}.tab.active{background:var(--deep);color:#fff;border-color:var(--deep)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.module,.team-card,.review-panel,.quick-panel,.standards-panel,.library-card{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.72);border-radius:8px;box-shadow:0 18px 54px rgba(14,24,25,.08)}.module{overflow:hidden;display:flex;flex-direction:column;min-height:100%;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.module:hover{transform:translateY(-3px);box-shadow:0 28px 70px rgba(14,24,25,.13);border-color:rgba(15,140,146,.24)}.visual{position:relative;aspect-ratio:16/10;background:linear-gradient(145deg,#e8eeec,#fff);overflow:hidden;border-bottom:1px solid rgba(28,40,39,.12)}.visual img,.visual video{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.86) contrast(1.03)}.visual canvas{width:100%;height:100%;display:block;touch-action:none}.badge-row{position:absolute;left:10px;right:10px;top:10px;display:flex;gap:6px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;min-height:24px;border-radius:7px;padding:3px 8px;background:rgba(255,255,255,.86);border:1px solid rgba(28,40,39,.13);color:#263333;font-size:11px;font-weight:850}.badge.core{color:#a84c3e}.badge.important{color:#856a20}.badge.model{color:#0e6f74}.model-tip{position:absolute;right:10px;bottom:10px;background:rgba(12,26,27,.84);color:#fff;border-radius:7px;padding:5px 8px;font-size:11px}.module-body{padding:16px;display:flex;flex-direction:column;gap:11px;flex:1}.module h3{font-size:19px;line-height:1.25;margin:0;font-weight:900}.meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}.summary{color:#33413f;margin:0;font-size:14px}.rule-list{display:grid;gap:7px}.rule{border-left:3px solid var(--moss);background:rgba(102,122,96,.09);border-radius:7px;padding:8px 10px;font-size:12px;color:#40504c}.rule.core{border-left-color:var(--clay)}.rule.important{border-left-color:var(--ochre)}.rule.advisory{border-left-color:var(--moss)}.assets{display:flex;gap:7px;flex-wrap:wrap}.asset{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.68);border-radius:7px;padding:5px 8px;color:#263b3a;font-size:12px}.asset:hover{background:#fff}.module-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.comment{border-top:1px solid rgba(28,40,39,.12);background:rgba(250,248,241,.68);padding:14px 15px}.comment label{display:block;font-weight:900;font-size:13px;margin-bottom:5px}.comment .ask{font-size:12px;color:var(--muted);margin-bottom:8px}.comment textarea{width:100%;min-height:96px;resize:vertical;border:1px solid rgba(28,40,39,.16);border-radius:8px;background:rgba(255,255,255,.82);color:var(--ink);padding:9px 10px;outline-color:var(--teal)}.comment-row{display:flex;gap:8px;align-items:center;margin-top:8px}.comment-row input{min-width:0;flex:1;border:1px solid rgba(28,40,39,.16);border-radius:8px;padding:8px 10px;background:rgba(255,255,255,.82)}.comment-row button{border:0;background:var(--deep);color:#fff;border-radius:8px;padding:8px 11px;font-weight:900}.comment-list{margin-top:9px;display:grid;gap:7px}.comment-item{border:1px solid rgba(28,40,39,.12);border-radius:7px;background:#fff;padding:8px 9px;color:#344541;font-size:12px;white-space:pre-wrap;word-break:break-word}.comment-item b{display:block;color:#101819;margin-bottom:2px}
.team-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.team-card{padding:18px}.team-card h3{margin:0 0 8px;font-size:21px}.team-card p{margin:0;color:var(--muted)}.member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.member-item{border:1px solid rgba(28,40,39,.12);background:rgba(255,255,255,.74);border-radius:8px;padding:10px 12px}.member-item b{display:block;font-size:15px}.member-item span{display:block;color:var(--muted);font-size:12px}.publish-note{border:1px dashed rgba(28,40,39,.2);border-radius:8px;padding:11px 12px;background:rgba(255,255,255,.46);color:var(--muted);font-size:13px;margin-top:10px}
.review{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px}.review-panel,.quick-panel,.standards-panel{padding:16px}.checklist{display:grid;gap:8px;margin-top:12px}.check{display:flex;gap:9px;align-items:flex-start;border:1px solid rgba(28,40,39,.12);background:rgba(255,255,255,.72);border-radius:8px;padding:10px}.check input{margin-top:4px;accent-color:var(--teal)}.check b{display:block;font-size:13px}.check span{display:block;font-size:12px;color:var(--muted)}.quick-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-item{border:1px solid rgba(28,40,39,.12);background:rgba(255,255,255,.72);border-radius:8px;padding:12px}.quick-item b{display:block;font-size:14px;margin-bottom:5px}.quick-item span{display:block;color:var(--muted);font-size:12px}.quick-item .mini-assets{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.standards-panel{margin-top:18px}.standards-panel h3{margin:0 0 12px;font-size:19px}.standard-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.standard-card{border:1px solid rgba(28,40,39,.12);background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.58));border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:8px}.standard-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.std-code{display:inline-flex;border:1px solid rgba(15,140,146,.24);background:rgba(15,140,146,.08);color:#0c6a70;border-radius:7px;padding:3px 8px;font-size:12px;font-weight:900;white-space:nowrap}.std-link{border:1px solid rgba(28,40,39,.14);border-radius:7px;padding:4px 8px;background:rgba(255,255,255,.72);color:#263b3a;font-size:12px;font-weight:900;white-space:nowrap}.std-link:hover{background:#fff}.standard-card h4{margin:0;font-size:15px;line-height:1.35}.standard-card p{margin:0;color:#40504c;font-size:13px}.standard-card ul{margin:0;padding-left:18px;color:#596865;font-size:12px}.std-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.std-tags span{border-radius:7px;background:rgba(102,122,96,.10);color:#43544f;padding:3px 7px;font-size:11px}
.library{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.library-card{padding:14px}.library-card b{font-size:22px;display:block}.library-card span{font-size:12px;color:var(--muted)}.modal,.site-modal{position:fixed;inset:0;z-index:80;background:rgba(12,26,27,.72);display:none;align-items:center;justify-content:center;padding:18px}.modal.show,.site-modal.show{display:flex}.modal-box,.site-modal-box{background:#fbfaf6;border:1px solid rgba(255,255,255,.35);border-radius:8px;box-shadow:0 30px 90px rgba(0,0,0,.35);overflow:hidden}.modal-box{width:min(1120px,96vw);height:min(760px,92vh);display:grid;grid-template-rows:auto 1fr}.modal-head,.site-modal-head{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 14px;background:#0c1a1b;color:#fff}.modal-head button,.site-modal-head button{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;padding:6px 10px}.modal-content{display:grid;grid-template-columns:1fr 330px;min-height:0}.model-stage{position:relative;background:linear-gradient(145deg,#e7eeec,#fff)}.model-stage canvas{width:100%;height:100%;display:block;touch-action:none}.side{border-left:1px solid var(--line);background:#fff;padding:16px;overflow:auto}.side h3{margin:0 0 8px;font-size:20px}.side p,.side ul{color:#40504c}.site-modal{z-index:90}.site-modal-box{width:min(1180px,96vw);height:min(820px,92vh);display:grid;grid-template-rows:auto 1fr}.site-modal iframe{width:100%;height:100%;border:0;background:#0e1416}footer{border-top:1px solid rgba(28,40,39,.14);padding:24px 0;color:var(--muted);font-size:12px}
@media(max-width:1100px){.hero-grid,.review{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.standard-list{grid-template-columns:repeat(2,minmax(0,1fr))}.library{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-content{grid-template-columns:1fr}.side{border-left:0;border-top:1px solid var(--line);max-height:230px}}
@media(max-width:900px){.team-grid{grid-template-columns:1fr}.member-list{grid-template-columns:1fr}.site-modal-box{height:94vh}}
@media(max-width:720px){.shell{padding:0 15px}.topbar .shell{height:auto;min-height:62px;padding-top:9px;padding-bottom:9px;align-items:flex-start;flex-direction:column;gap:8px}.brand{min-width:0}.nav{margin-left:0;width:100%;padding-bottom:3px;flex-wrap:wrap;overflow:visible}.hero{padding-top:30px}.hero-grid{gap:18px}.hero-art{min-height:220px;max-height:300px}.hero-art img{min-height:220px;height:300px}.hero h1{font-size:38px}.toolbar{top:96px;grid-template-columns:1fr}.tabs{justify-content:flex-start}.grid,.quick-list,.standard-list,.library,.metric-grid{grid-template-columns:1fr}.section-head{display:block}.section .hint{margin-top:8px}.comment-row{display:grid;grid-template-columns:1fr}.btn{width:100%}}


.menu-toggle{margin-left:auto;border:1px solid rgba(28,40,39,.18);background:rgba(255,255,255,.72);border-radius:8px;padding:9px 13px;font-weight:900;color:var(--ink);display:inline-flex;align-items:center;gap:8px;box-shadow:0 10px 28px rgba(14,24,25,.06)}
.menu-toggle span{width:18px;height:12px;display:inline-block;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}.menu-toggle span:before{content:"";position:absolute;left:0;right:0;top:4px;border-top:2px solid currentColor}.menu-panel{position:fixed;inset:0;z-index:120;background:rgba(12,26,27,.56);backdrop-filter:blur(12px);display:none;justify-content:flex-end}.menu-panel.show{display:flex}.menu-surface{width:min(430px,92vw);height:100%;overflow:auto;background:linear-gradient(180deg,#fbfaf6,#edf4f2);border-left:1px solid rgba(255,255,255,.45);box-shadow:-28px 0 80px rgba(0,0,0,.24);padding:20px}.menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.menu-head b{font-size:20px}.menu-head button{border:1px solid rgba(28,40,39,.16);background:rgba(255,255,255,.72);border-radius:8px;padding:7px 10px;font-weight:800}.menu-links{display:grid;gap:8px;margin-bottom:22px}.menu-links a{display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(28,40,39,.13);background:rgba(255,255,255,.72);border-radius:8px;padding:14px 13px;color:var(--ink);font-size:17px;font-weight:900}.menu-links a:after{content:"→";color:var(--muted)}.menu-team{border-top:1px solid rgba(28,40,39,.16);padding-top:18px}.menu-team h3{margin:0;font-size:20px}.menu-team p{margin:6px 0 14px;color:var(--muted)}
.dialog-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.dialog-steps span{border:1px solid rgba(28,40,39,.12);background:rgba(102,122,96,.08);border-radius:7px;padding:5px 6px;color:#43544f;font-size:11px;text-align:center;font-weight:800}
.process-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.flow-card{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.72);box-shadow:0 18px 54px rgba(14,24,25,.08);border-radius:8px;padding:16px;display:grid;gap:12px}.flow-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.flow-head b{font-size:18px}.flow-head span{border:1px solid rgba(15,140,146,.22);background:rgba(15,140,146,.08);color:#0c6a70;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900}.flow-card p{margin:0;color:#40504c}.flow-steps{display:flex;gap:8px;flex-wrap:wrap}.flow-steps span{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(28,40,39,.13);background:rgba(255,255,255,.66);border-radius:999px;padding:5px 8px;font-size:12px}.flow-steps i{font-style:normal;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--deep);color:#fff;font-size:10px}.flow-focus{display:flex;gap:6px;flex-wrap:wrap}.flow-focus em{font-style:normal;border-radius:7px;background:rgba(182,95,77,.09);color:#7c4238;padding:4px 7px;font-size:11px;font-weight:800}.resource-links{display:flex;gap:7px;flex-wrap:wrap}.resource-links a{border:1px solid rgba(28,40,39,.14);background:#fff;border-radius:7px;padding:5px 8px;color:#263b3a;font-size:12px;font-weight:800}
.review-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.review-tree{display:grid;gap:14px}.review-dept{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.72);border-radius:8px;padding:14px;box-shadow:0 18px 54px rgba(14,24,25,.08)}.review-dept-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.review-dept-head b{font-size:18px}.review-dept-head span{color:var(--muted);font-size:12px}.review-module-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.review-module{border:1px solid rgba(28,40,39,.13);background:rgba(255,255,255,.72);border-radius:8px;padding:10px;text-align:left;color:var(--ink)}.review-module:hover{border-color:rgba(15,140,146,.35);background:#fff}.review-module b{display:block;font-size:14px}.review-module em{display:block;font-style:normal;color:var(--muted);font-size:11px}.review-module i{display:block;font-style:normal;color:#50605d;font-size:11px;margin-top:5px}.review-guide{position:sticky;top:96px;align-self:start;border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.72);border-radius:8px;padding:16px;box-shadow:0 18px 54px rgba(14,24,25,.08)}.review-guide b{font-size:18px}.review-guide p{margin:8px 0 0;color:var(--muted)}
.review-modal{position:fixed;inset:0;z-index:130;background:rgba(12,26,27,.72);display:none;align-items:center;justify-content:center;padding:18px}.review-modal.show{display:flex}.review-modal-box{width:min(1180px,96vw);max-height:min(820px,92vh);background:#fbfaf6;border-radius:8px;box-shadow:0 30px 90px rgba(0,0,0,.34);display:grid;grid-template-rows:auto 1fr;overflow:hidden}/* 高度随内容自适应：仅设上限，内容少的模块（如双人病房方案比较）不再出现大片空白，内容多的模块仍在上限内滚动 */.review-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#0c1a1b;color:#fff}.review-modal-head button{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;padding:6px 10px}.review-modal-body{overflow:auto;padding:18px}.review-detail-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);gap:18px}.review-detail-main,.review-detail-side{border:1px solid rgba(28,40,39,.12);background:rgba(255,255,255,.72);border-radius:8px;padding:16px}.review-detail-main h3{margin:0 0 8px;font-size:24px}.review-detail-main p{color:#40504c}.confirm-path{border:1px solid rgba(15,140,146,.16);background:rgba(15,140,146,.07);border-radius:8px;padding:12px;margin:12px 0}.confirm-path ol{margin:8px 0 0;padding-left:22px;color:#40504c}.detail-rules{margin:8px 0 14px}.flow-mini{border:1px solid rgba(28,40,39,.12);background:rgba(102,122,96,.08);border-radius:8px;padding:12px;margin-bottom:14px}.flow-mini b{display:block;margin-bottom:8px}.flow-mini div{display:flex;gap:6px;flex-wrap:wrap}.flow-mini span{border-radius:999px;background:#fff;border:1px solid rgba(28,40,39,.12);padding:4px 7px;font-size:11px}.review-detail-side h4{margin:0 0 10px;font-size:18px}.spec-stack{display:grid;gap:10px}.spec-card{border:1px solid rgba(28,40,39,.12);background:rgba(255,255,255,.76);border-radius:8px;padding:12px}.spec-card div{display:flex;align-items:center;justify-content:space-between;gap:8px}.spec-card div b{color:#0c6a70}.spec-card div a{border:1px solid rgba(28,40,39,.14);border-radius:7px;padding:3px 8px;background:#fff;font-weight:900}.spec-card h5{margin:7px 0 5px;font-size:14px}.spec-card p{margin:0;color:#40504c;font-size:12px}.spec-card ul{margin:8px 0 0;padding-left:18px;color:#596865;font-size:12px}
.case-library{display:grid;gap:16px}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.case-card{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.72);border-radius:8px;padding:15px;box-shadow:0 18px 54px rgba(14,24,25,.08)}.case-tag-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.case-tag-row span{border-radius:7px;background:rgba(102,122,96,.10);color:#43544f;padding:3px 7px;font-size:11px;font-weight:800}.case-card h3{margin:0 0 8px;font-size:19px}.case-card p{margin:0 0 8px;color:#40504c}.case-card a{display:inline-flex;margin-top:4px;border:1px solid rgba(28,40,39,.14);background:#fff;border-radius:7px;padding:6px 9px;color:#263b3a;font-weight:900}.local-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.process-board,.review-workspace,.review-detail-grid{grid-template-columns:1fr}.review-guide{position:static}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-module-list{grid-template-columns:1fr}.local-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.menu-surface{width:100%}.process-board,.case-grid,.local-resource-grid{grid-template-columns:1fr}.dialog-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.review-modal{padding:10px}.review-modal-box{max-height:94vh}.review-modal-body{padding:12px}}

/* 2026-06 Word深化版：展开式主菜单、团队侧栏与艺术对比配色 */
:root{
  --paper:#f6f2ea;--wash:#e8f2ef;--ink:#121617;--muted:#62706f;--line:rgba(30,38,38,.15);--panel:rgba(255,255,255,.80);--deep:#111a1d;--moss:#5f7664;--teal:#0f8c92;--clay:#bd6048;--ochre:#b28a33;--blue:#2d6f9f;--plum:#76506f;--saffron:#d7a43f;
}
body{background:linear-gradient(90deg,rgba(17,26,29,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(17,26,29,.03) 1px,transparent 1px),linear-gradient(135deg,#f7f3ea 0%,#edf4f2 42%,#f3eadf 100%);background-size:48px 48px,48px 48px,100% 100%;}
.topbar{background:rgba(250,247,239,.86);border-bottom:1px solid rgba(17,26,29,.14)}.topbar-shell{height:auto;min-height:76px;display:flex;align-items:center;gap:18px}.brand{flex:0 0 auto}.mark{background:linear-gradient(135deg,#111a1d 0%,#0f8c92 42%,#bd6048 68%,#d7a43f 100%)}
.main-menu{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.menu-group{position:relative}.menu-group>button,.menu-direct,.team-toggle{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.64);color:#243130;border-radius:8px;padding:9px 10px;font-size:13px;font-weight:900;min-height:40px}.menu-group>button:after{content:"";display:inline-block;margin-left:6px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;vertical-align:middle}.menu-direct{display:inline-flex;align-items:center}.team-toggle{background:#111a1d;color:#fff;border-color:#111a1d}.submenu{position:absolute;right:0;top:calc(100% + 8px);min-width:190px;display:none;z-index:140;padding:8px;border:1px solid rgba(28,40,39,.13);border-radius:8px;background:rgba(255,255,255,.94);box-shadow:0 24px 70px rgba(14,24,25,.18);backdrop-filter:blur(16px)}.menu-group:hover .submenu,.menu-group:focus-within .submenu,.menu-group.open .submenu{display:grid;gap:5px}.submenu a{display:block;border-radius:7px;padding:9px 10px;color:#243130;font-weight:800;font-size:13px}.submenu a:hover{background:rgba(15,140,146,.09);color:#0b666b}.menu-panel{justify-content:flex-end}.team-surface{width:min(430px,92vw)}.menu-team{border-top:0;padding-top:0}
.hero-panel,.module,.review-dept,.flow-card,.case-card,.review-guide,.quick-panel,.review-detail-main,.review-detail-side,.library-card{background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62));border-color:rgba(28,40,39,.13)}.hero h1{color:#10191b}.eyebrow{border-color:rgba(189,96,72,.22);background:rgba(255,255,255,.68);color:#7b4b43}.btn.primary{background:linear-gradient(135deg,#111a1d,#174e54);box-shadow:0 18px 42px rgba(15,140,146,.23)}.tab.active{background:linear-gradient(135deg,#111a1d,#76506f);border-color:transparent}.rule.core{border-left-color:var(--clay);background:rgba(189,96,72,.08)}.rule.important{border-left-color:var(--saffron);background:rgba(215,164,63,.10)}.rule.advisory{border-left-color:var(--moss)}
.principles{padding-top:26px}.principle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.principle-card,.dept-summary{border:1px solid rgba(28,40,39,.13);border-radius:8px;background:rgba(255,255,255,.72);box-shadow:0 18px 54px rgba(14,24,25,.08);padding:16px;position:relative;overflow:hidden}.principle-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--teal)}.principle-card.accent-2:before{background:var(--clay)}.principle-card.accent-3:before{background:var(--blue)}.principle-card.accent-4:before{background:var(--moss)}.principle-card.accent-5:before{background:var(--plum)}.principle-card.accent-6:before{background:var(--saffron)}.principle-card h3{margin:0 0 8px;font-size:18px}.principle-card p,.dept-summary p{margin:0;color:#40504c}.principle-card div,.dept-summary div,.doc-facts{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.principle-card span,.dept-summary span,.doc-facts span{border-radius:7px;background:rgba(15,140,146,.08);color:#0c6a70;padding:4px 7px;font-size:11px;font-weight:800}.section-subhead{margin:18px 0 12px;display:flex;align-items:end;justify-content:space-between;gap:16px}.section-subhead b{font-size:20px}.section-subhead span{font-size:13px;color:var(--muted)}.department-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dept-summary b{display:block;font-size:18px;margin-bottom:7px}.dept-summary:nth-child(2n) span{background:rgba(189,96,72,.08);color:#854438}.dept-summary:nth-child(3n) span{background:rgba(118,80,111,.09);color:#684760}.doc-note{border:1px solid rgba(15,140,146,.16);background:linear-gradient(135deg,rgba(15,140,146,.07),rgba(215,164,63,.08));border-radius:8px;padding:10px}.doc-note b{display:block;font-size:13px;margin-bottom:4px}.doc-note p{margin:0;color:#3e504d;font-size:12px}.word-review{border:1px solid rgba(118,80,111,.18);background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(118,80,111,.08));border-radius:8px;padding:13px;margin:12px 0}.word-review h4{margin:0 0 8px;font-size:17px}.word-list{margin-top:10px}.word-list b{display:block;margin-bottom:4px}.word-list ul{margin:0;padding-left:19px;color:#40504c}.word-list li+li{margin-top:4px}
@media(max-width:1100px){.topbar-shell{align-items:flex-start;flex-direction:column;padding-top:10px;padding-bottom:10px}.main-menu{margin-left:0;justify-content:flex-start}.principle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.department-grid{grid-template-columns:1fr}}
@media(max-width:720px){.main-menu{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.menu-group>button,.menu-direct,.team-toggle{width:100%;justify-content:center;text-align:center}.submenu{position:static;margin-top:6px;min-width:0}.principle-grid,.department-grid{grid-template-columns:1fr}.section-subhead{display:block}.team-surface{width:100%}}

/* 2026-06-30 深化：团队同级下拉、精确条文矩阵、插图库 */
.team-menu .submenu{min-width:310px}.team-submenu>b{display:block;padding:8px 10px 10px;font-size:14px;color:#102022}.menu-team-list{display:grid;gap:6px;max-height:380px;overflow:auto}.menu-team-list a{display:grid;grid-template-columns:76px 1fr;gap:8px;border:1px solid rgba(28,40,39,.10);background:rgba(255,255,255,.62)}.menu-team-list b{font-size:13px}.menu-team-list span{font-size:12px;color:var(--muted)}
.clause-matrix{display:grid;gap:10px;margin-bottom:14px}.clause-card{border:1px solid rgba(28,40,39,.13);background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.68));border-radius:8px;padding:12px}.clause-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.clause-head b{color:#0c6a70}.clause-head a{border:1px solid rgba(28,40,39,.14);border-radius:7px;background:#fff;padding:3px 8px;font-weight:900;font-size:12px}.clause-card h5{margin:8px 0 6px;font-size:14px}.clause-card blockquote{margin:0;padding:9px 10px;border-left:3px solid var(--clay);background:rgba(189,96,72,.07);color:#273837;font-size:13px}.clause-card p{margin:8px 0 0;color:#52615f;font-size:12px}.empty-clause{border:1px dashed rgba(28,40,39,.22);border-radius:8px;padding:12px;color:var(--muted);background:rgba(255,255,255,.55)}
.illustration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.illustration-card{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.72);border-radius:8px;overflow:hidden;box-shadow:0 18px 54px rgba(14,24,25,.08)}.illus-visual{min-height:132px;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;color:#fff;background:linear-gradient(135deg,#112024,#0f8c92 52%,#bd6048)}.illustration-card:nth-child(2n) .illus-visual{background:linear-gradient(135deg,#111a1d,#76506f 54%,#d7a43f)}.illus-visual span{font-size:12px;font-weight:900;opacity:.8}.illus-visual b{font-size:20px;line-height:1.2}.illus-body{padding:14px}.illus-body h3{margin:0 0 7px;font-size:18px}.illus-body p{margin:0 0 8px;color:#40504c}.illus-source{font-size:12px;color:var(--muted)}.illus-body a{display:inline-flex;border:1px solid rgba(28,40,39,.14);border-radius:7px;background:#fff;padding:6px 9px;color:#263b3a;font-weight:900}
@media(max-width:1100px){.illustration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.team-menu .submenu{min-width:0}.menu-team-list a{grid-template-columns:1fr}.illustration-grid{grid-template-columns:1fr}}

/* 2026-06-30 模板调色：紫色 + 灰绿色，普蓝菜单，橙黄色强调 */
:root{
  --paper:#f2f0f4;--wash:#dfe8e2;--ink:#172026;--muted:#66736f;--line:rgba(42,54,57,.15);--panel:rgba(255,255,255,.78);
  --deep:#17324a;--prussian:#183a58;--moss:#728579;--teal:#4f8f8c;--clay:#c7672b;--ochre:#d2a037;--blue:#274f73;--plum:#765b86;--saffron:#d8a742;
}
html{background:#f2f0f4}body{background:linear-gradient(90deg,rgba(39,79,115,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(118,91,134,.035) 1px,transparent 1px),linear-gradient(135deg,#f2f0f4 0%,#dfe8e2 45%,#eee7f0 100%);background-size:48px 48px,48px 48px,100% 100%;color:var(--ink)}
.topbar{background:rgba(242,240,244,.88);border-bottom:1px solid rgba(39,79,115,.18)}.mark{background:linear-gradient(135deg,#17324a 0%,#765b86 48%,#c7672b 76%,#d8a742 100%)}.brand strong{color:#182b3a}.brand span span{color:#69766f}.eyebrow{border-color:rgba(199,103,43,.28);background:rgba(255,255,255,.62);color:#7b4b29}.hero h1{color:#182638}.hero p{color:#465754}
.main-menu{gap:7px}.menu-group>button,.menu-direct{background:linear-gradient(135deg,#183a58,#243f5b);border-color:rgba(39,79,115,.20);color:#fff;box-shadow:0 12px 28px rgba(24,58,88,.12)}.menu-group:nth-child(2n)>button{background:linear-gradient(135deg,#274f73,#765b86)}.menu-group>button:after{border-top-color:#d8a742}.menu-direct{background:linear-gradient(135deg,#c7672b,#d2a037);color:#162433}.team-menu>button{background:linear-gradient(135deg,#765b86,#274f73);color:#fff}.submenu{border-top:3px solid #d2a037;background:rgba(250,249,252,.96);box-shadow:0 24px 70px rgba(39,79,115,.18)}.submenu a:hover{background:rgba(216,167,66,.16);color:#17324a}.team-submenu>b{color:#17324a}.menu-team-list a:hover{background:rgba(118,91,134,.10)}
.btn.primary{background:linear-gradient(135deg,#183a58,#765b86);box-shadow:0 18px 42px rgba(39,79,115,.22)}.btn.ghost:hover,.btn:hover{border-color:rgba(199,103,43,.35)}.tab.active{background:linear-gradient(135deg,#183a58,#765b86);border-color:transparent}.modal-head,.site-modal-head,.review-modal-head{background:linear-gradient(135deg,#183a58,#274f73);color:#fff}.hero-art{background:#17324a}.hero-art:after{background:linear-gradient(180deg,rgba(23,50,74,.04),rgba(23,50,74,.78))}.status-line{background:rgba(114,133,121,.14);color:#465754}
.rule.core{border-left-color:#c7672b;background:rgba(199,103,43,.09)}.rule.important{border-left-color:#d2a037;background:rgba(210,160,55,.12)}.rule.advisory{border-left-color:#728579;background:rgba(114,133,121,.12)}.std-code,.clause-head b{color:#274f73}.clause-card blockquote{border-left-color:#c7672b;background:rgba(199,103,43,.07)}.principle-card:before{background:#765b86}.principle-card.accent-2:before{background:#728579}.principle-card.accent-3:before{background:#274f73}.principle-card.accent-4:before{background:#c7672b}.principle-card.accent-5:before{background:#4f8f8c}.principle-card.accent-6:before{background:#d2a037}.illus-visual{background:linear-gradient(135deg,#183a58,#765b86 56%,#c7672b)}.illustration-card:nth-child(2n) .illus-visual{background:linear-gradient(135deg,#728579,#274f73 56%,#d2a037)}
.future-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.future-grid article{border:1px dashed rgba(39,79,115,.22);background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(255,255,255,.56));border-radius:8px;padding:15px;box-shadow:0 18px 54px rgba(39,79,115,.07)}.future-grid b{display:block;font-size:18px;color:#17324a;margin-bottom:7px}.future-grid p{margin:0 0 11px;color:#4d5d59}.future-grid a{display:inline-flex;border:1px solid rgba(199,103,43,.22);background:rgba(216,167,66,.12);color:#6c4218;border-radius:7px;padding:6px 9px;font-weight:900}
@media(max-width:1100px){.future-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.future-grid{grid-template-columns:1fr}.main-menu{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 2026-06-30 终版收束：单色菜单与灰绿紫基调 */
:root{
  --paper:#f3f1f5;
  --wash:#e1e8e2;
  --ink:#1f2930;
  --muted:#66736f;
  --deep:#2f4257;
  --prussian:#2f4257;
  --moss:#738577;
  --teal:#6f8f87;
  --clay:#9b6732;
  --ochre:#b38b42;
  --blue:#425c7a;
  --plum:#6f5a7d;
  --saffron:#b9954f;
}
html,
body{
  background:#f3f1f5;
  color:var(--ink);
}
.topbar{
  background:rgba(245,244,247,.92);
  border-bottom-color:#d7dcd8;
}
.mark,
.hero-art,
.illus-visual,
.illustration-card:nth-child(2n) .illus-visual{
  background:#6f5a7d;
  box-shadow:none;
}
.hero-art:after{
  background:rgba(47,66,87,.22);
}
.hero h1{
  font-size:clamp(48px,7.2vw,96px);
  line-height:1.02;
  color:#263342;
}
.hero p{
  color:#4f5f5b;
}
.hero-panel,
.module,
.review-dept,
.flow-card,
.case-card,
.review-guide,
.quick-panel,
.standards-panel,
.review-detail-main,
.review-detail-side,
.library-card,
.principle-card,
.dept-summary,
.illustration-card,
.future-grid article,
.standard-card,
.spec-card,
.clause-card{
  background:#fff;
  box-shadow:0 14px 36px rgba(47,66,87,.08);
}
.main-menu .menu-group>button,
.main-menu .menu-direct{
  background:#eef2ee;
  color:#2f4257;
  border-color:#cbd7cf;
  box-shadow:none;
}
.main-menu .menu-group>button:after{
  border-top-color:#b9954f;
}
.main-menu .menu-group>button:hover,
.main-menu .menu-group.open>button,
.main-menu .menu-direct:hover{
  background:#dfe8e2;
  color:#2f4257;
}
.team-menu>button{
  background:#e9e4ee;
  color:#4f3e5c;
  border-color:#d8cfdf;
}
.submenu{
  background:#fbfafc;
  border:1px solid #d7dcd8;
  border-top:3px solid #b9954f;
  box-shadow:0 18px 45px rgba(47,66,87,.12);
}
.submenu a:hover{
  background:#e9e4ee;
  color:#4f3e5c;
}
.btn.primary,
.modal-head,
.site-modal-head,
.review-modal-head,
.tab.active{
  background:#2f4257;
  color:#fff;
  box-shadow:none;
}
.btn,
.btn.ghost,
.tab,
.asset,
.std-link,
.resource-links a,
.case-card a,
.illus-body a{
  background:#fff;
}
.rule.core,
.clause-card blockquote{
  border-left-color:#9b6732;
  background:rgba(155,103,50,.08);
}
.rule.important{
  border-left-color:#b38b42;
  background:rgba(179,139,66,.11);
}
.rule.advisory,
.status-line{
  border-left-color:#738577;
  background:rgba(115,133,119,.13);
}
.word-review{
  background:#fff;
  border-color:#d8cfdf;
}
.word-review h4{
  font-size:20px;
  color:#4f3e5c;
}
.principle-card:before,
.principle-card.accent-2:before,
.principle-card.accent-3:before,
.principle-card.accent-4:before,
.principle-card.accent-5:before,
.principle-card.accent-6:before{
  background:#6f5a7d;
}
@media(max-width:720px){
  .hero h1{
    font-size:42px;
  }
}


/* 2026-06-30 交互菜单与深橙强调修订 */
:root{
  --deep:#984b1d;
  --clay:#984b1d;
  --ochre:#b46f2b;
}
.mark{
  width:42px;
  height:42px;
  background:#984b1d;
  border-color:#7f3f18;
  box-shadow:none;
}
.brand strong{
  font-size:17px;
}
.hero h1{
  font-size:clamp(56px,8vw,108px);
}
.btn.primary,
.modal-head,
.site-modal-head,
.review-modal-head,
.tab.active,
.comment-row button,
.flow-steps i{
  background:#984b1d;
  color:#fff;
  border-color:#984b1d;
  box-shadow:none;
}
.main-menu .menu-direct{
  background:#984b1d;
  color:#fff;
  border-color:#984b1d;
}
.menu-group:not(.open) .submenu{
  display:none !important;
}
.menu-group.open .submenu{
  display:grid !important;
  gap:5px;
}
.dialog-steps a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(152,75,29,.18);
  background:#fff;
  border-radius:7px;
  padding:5px 6px;
  color:#6b3a1d;
  font-size:11px;
  text-align:center;
  font-weight:850;
}
.dialog-steps a:hover{
  background:#f4e9df;
  color:#984b1d;
}
.clause-ref-line{
  border:1px solid rgba(111,90,125,.16);
  background:#f8f6f9;
  border-radius:7px;
  padding:7px 8px;
  color:#4f3e5c;
  font-size:12px;
  line-height:1.55;
}
.clause-head a,
.spec-card div a{
  color:#984b1d;
}
@media(max-width:720px){
  .hero h1{font-size:48px;}
}

/* 2026-06-30 图标十字居中强化 */
.mark:before,
.mark:after{
  background:#fff;
  border-radius:2px;
}
.mark:before{
  left:9px;
  right:9px;
  top:18px;
  height:6px;
}
.mark:after{
  top:9px;
  bottom:9px;
  left:18px;
  width:6px;
}

/* 2026-06-30 首页题目与署名微调 */
.hero h1{
  font-size:clamp(44px,6.4vw,84px);
}
.hero-signature{
  display:inline-block;
  margin-top:8px;
  color:#6b3a1d;
  font-weight:850;
}
@media(max-width:720px){
  .hero h1{font-size:40px;}
}


/* 2026-06-30 署名字号再收一档 */
.hero-signature{
  font-size:0.88em;
}


/* 2026-06-30 手机端菜单缩进 */
.menu-toggle{display:none}
@media(max-width:720px){
  .topbar .shell{position:relative;gap:10px}
  .menu-toggle{display:inline-flex;align-self:flex-end;position:absolute;right:15px;top:10px;z-index:2}
  .main-menu{display:none;width:100%}
  body.menu-collapsed .main-menu{display:none !important}
  body:not(.menu-collapsed) .main-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .hero{padding-top:18px}
  .hero{cursor:pointer}
  .hero-grid{padding-top:24px}
  .topbar .shell{padding-top:14px}
  .brand{padding-right:120px}
}

/* 2026-06-30 儿童医院题名与菜单状态修订 */
.hero h1{
  font-size:clamp(40px,5.8vw,76px);
}
@media(max-width:720px){
  .hero h1{font-size:36px;}
}

/* 2026-06-30 题目图标替换为上传图标 */
.mark{
  width:48px;
  height:48px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 22px rgba(47,66,87,.16);
  flex:0 0 48px;
}
.mark img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.mark:before,
.mark:after{
  display:none;
  content:none;
}
@media(max-width:720px){
  .mark{width:42px;height:42px;flex-basis:42px;}
}

/* 2026-06-30 儿童医院题名再减两号 */
.hero h1{
  font-size:clamp(34px,4.9vw,64px);
}
@media(max-width:720px){
  .hero h1{font-size:30px;}
}

/* 2026-07-01 Product Design polish: pediatric hospital atlas */
:root{
  --pd-paper:#f7f8f6;
  --pd-ink:#1e2b30;
  --pd-muted:#65746f;
  --pd-green:#dfe9e1;
  --pd-mint:#ecf5ef;
  --pd-plum:#6a4f78;
  --pd-orange:#9a4e20;
  --pd-blue:#2f536f;
  --pd-line:rgba(47,83,111,.14);
}
html{background:var(--pd-paper)}
body{
  color:var(--pd-ink);
  background:
    linear-gradient(90deg,rgba(47,83,111,.035) 1px,transparent 1px),
    linear-gradient(180deg,rgba(106,79,120,.028) 1px,transparent 1px),
    linear-gradient(135deg,#f7f8f6 0%,#edf3ed 46%,#f4f1f6 100%);
  background-size:44px 44px,44px 44px,100% 100%;
}
.topbar{
  box-shadow:0 10px 28px rgba(47,83,111,.08);
  border-bottom:1px solid rgba(47,83,111,.12);
}
.brand strong{letter-spacing:0;color:#203247}
.brand span span{color:#6d7774}
.menu-group>button,.menu-direct,.menu-toggle{
  transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.menu-group>button:hover,.menu-direct:hover,.menu-toggle:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(47,83,111,.10);
}
.submenu{
  animation:menuDrop .18s ease both;
  transform-origin:top right;
}
@keyframes menuDrop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.hero{
  padding-bottom:28px;
}
.hero:before{
  background:linear-gradient(90deg,transparent,rgba(154,78,32,.30),rgba(106,79,120,.22),transparent);
}
.eyebrow{
  background:#fff;
  border-color:rgba(154,78,32,.20);
  color:#7a4a2c;
}
.hero h1{
  letter-spacing:0;
  text-wrap:balance;
}
.hero p{
  color:#485956;
  font-size:16px;
  max-width:820px;
}
.hero-actions .btn{
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease;
}
.hero-actions .btn:hover{
  transform:translateY(-2px);
}
.hero-panel,.module,.review-dept,.flow-card,.case-card,.review-guide,.quick-panel,.standards-panel,.review-detail-main,.review-detail-side,.library-card,.principle-card,.dept-summary,.illustration-card,.future-grid article,.standard-card,.spec-card,.clause-card{
  border-color:rgba(47,83,111,.12);
  box-shadow:0 12px 28px rgba(47,83,111,.075);
}
.hero-panel,.module,.flow-card,.case-card,.principle-card,.dept-summary,.review-dept,.future-grid article{
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.module:hover,.flow-card:hover,.case-card:hover,.principle-card:hover,.dept-summary:hover,.review-dept:hover,.future-grid article:hover{
  transform:translateY(-4px);
  border-color:rgba(154,78,32,.22);
  box-shadow:0 20px 42px rgba(47,83,111,.12);
}
.metric{
  background:linear-gradient(180deg,#fff,#f7fbf8);
  border-color:rgba(115,133,119,.18);
}
.metric b{color:#2f536f}
.status-line{
  background:#f4efe9;
  color:#6b3a1d;
  border-left:4px solid var(--pd-orange);
}
.section-head{
  border-top-color:rgba(47,83,111,.13);
}
.section h2{
  color:#23384b;
  text-wrap:balance;
}
.section .hint,.section-subhead span{
  color:#66746f;
}
.principle-card:before,
.principle-card.accent-2:before,
.principle-card.accent-3:before,
.principle-card.accent-4:before,
.principle-card.accent-5:before,
.principle-card.accent-6:before{
  background:var(--pd-orange);
}
.rule,.flow-mini,.confirm-path{
  background:#f7faf7;
}
.clause-ref-line{
  background:#f8f5fa;
  border-color:rgba(106,79,120,.18);
}
.visual img,.hero-art img{
  filter:saturate(.98) contrast(1.02);
}
.art-caption{
  text-shadow:0 2px 12px rgba(20,31,40,.35);
}
.module h3,.flow-head b,.case-card h3,.principle-card h3,.dept-summary b{
  color:#213447;
}
.comment textarea:focus,.comment-row input:focus,.search input:focus{
  outline:2px solid rgba(154,78,32,.22);
  outline-offset:2px;
}
.section,.module,.flow-card,.case-card,.principle-card,.dept-summary,.review-dept,.future-grid article,.quick-panel,.hero-panel{
  opacity:0;
  transform:translateY(14px);
}
.section.is-visible,.module.is-visible,.flow-card.is-visible,.case-card.is-visible,.principle-card.is-visible,.dept-summary.is-visible,.review-dept.is-visible,.future-grid article.is-visible,.quick-panel.is-visible,.hero-panel.is-visible{
  opacity:1;
  transform:translateY(0);
  transition:opacity .55s ease var(--reveal-delay,0ms),transform .55s ease var(--reveal-delay,0ms),box-shadow .24s ease,border-color .24s ease;
}
@media (prefers-reduced-motion:reduce){
  .section,.module,.flow-card,.case-card,.principle-card,.dept-summary,.review-dept,.future-grid article,.quick-panel,.hero-panel{
    opacity:1;
    transform:none;
    transition:none;
  }
  .submenu{animation:none}
}
@media(max-width:720px){
  .hero{padding-top:14px;padding-bottom:18px}
  .hero-grid{padding-top:12px;gap:14px}
  .hero p{font-size:14px;line-height:1.72}
  .section{padding:24px 0}
  .section-head{padding-top:18px;margin-bottom:14px}
  .toolbar{top:72px;padding:10px}
  .module-body{padding:14px}
  .metric b{font-size:22px}
}

/* 2026-07-01 内容链接修复与可用性优化 */
.content-link-strip{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
  max-width:900px;
}
.content-link-strip a,
.card-links a,
.card-links button,
.clause-ref-line a,
.clause-ref-line button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  border:1px solid rgba(154,78,32,.18);
  background:#fff;
  color:#6b3a1d;
  border-radius:8px;
  padding:5px 9px;
  font-size:12px;
  font-weight:850;
  line-height:1.35;
  text-decoration:none;
  transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.content-link-strip a:hover,
.card-links a:hover,
.card-links button:hover,
.clause-ref-line a:hover,
.clause-ref-line button:hover{
  background:#f4e9df;
  border-color:rgba(154,78,32,.34);
  color:#984b1d;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(47,83,111,.08);
}
.card-links{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}
.module-link-title{
  margin-top:2px;
  color:#6e8378;
  font-size:12px;
  font-weight:900;
  letter-spacing:0;
}
.module-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:0;
}
.module-links a{
  min-height:36px;
  justify-content:flex-start;
  padding:8px 10px;
  background:#fffaf3;
  border-color:rgba(196,100,36,.28);
  color:#74401a;
}
.module-links a:nth-child(2){
  background:#f4f7f2;
  border-color:rgba(110,131,120,.26);
  color:#405c51;
}
.module-links a:nth-child(3){
  background:#f6f2f8;
  border-color:rgba(116,85,135,.24);
  color:#5a3e69;
}
.module-links a:nth-child(4){
  background:#f8f6ef;
  border-color:rgba(210,160,55,.28);
  color:#6d5318;
}
.card-links button,
.clause-ref-line button{
  cursor:pointer;
  font:inherit;
}
.clause-ref-line{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.clause-ref-line a{
  min-height:26px;
  padding:4px 7px;
  color:#4f3e5c;
  border-color:rgba(106,79,120,.18);
  background:#fff;
}
.clause-ref-line button{
  min-height:26px;
  padding:4px 8px;
  color:#fff;
  background:#984b1d;
  border-color:#984b1d;
}
.asset,.resource-links a,.illus-body a,.case-card a,.std-link,.spec-card div a{
  text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease;
}
.asset:hover,.resource-links a:hover,.illus-body a:hover,.case-card a:hover,.std-link:hover,.spec-card div a:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(47,83,111,.08);
}
@media(max-width:720px){
  .content-link-strip{gap:6px;margin-top:12px}
  .content-link-strip a{flex:1 1 calc(50% - 6px);min-width:128px}
  .card-links a,.card-links button{flex:1 1 auto}
}


/* 2026-07-03 7.1资料更新：结构化审图表与待补充规范状态 */
.review-table-wrap{width:100%;overflow:auto;margin:14px 0 16px;border:1px solid rgba(88,74,120,.18);border-radius:8px;background:#fffdf8;box-shadow:0 10px 26px rgba(65,54,91,.08)}
.review-table{width:100%;min-width:860px;border-collapse:collapse;font-size:13px;line-height:1.55;color:#243531}
.review-table th{background:#eef4ef;color:#51306f;text-align:left;font-weight:800;padding:11px 12px;border-bottom:1px solid rgba(88,74,120,.18);white-space:nowrap}
.review-table td{padding:10px 12px;border-bottom:1px solid rgba(88,74,120,.12);vertical-align:top}
.review-table td:nth-child(3){color:#263b35;font-weight:650}
.review-table td:nth-child(4){color:#6b567d;min-width:150px}
.review-table tr:last-child td{border-bottom:0}
.pending-file{display:inline-flex;align-items:center;margin:3px 4px 3px 0;padding:5px 8px;border-radius:999px;background:#f7efe8;color:#9a4b1d;font-size:12px;font-weight:800;white-space:nowrap}
.clause-ref-line .pending-file{vertical-align:middle}
.word-review>p:first-of-type{font-weight:650;color:#33433e;background:#f6f8f4;border-left:4px solid #b65b22;padding:10px 12px;border-radius:6px}
@media(max-width:720px){.review-table-wrap{border-radius:6px}.review-table{font-size:12px;min-width:760px}.review-table th,.review-table td{padding:9px 10px}}


/* 2026-07-03 Product Design: 首页系统结构图与全站视觉增强 */
.hero-panel{background:#fbfaf6;border-color:rgba(116,85,135,.18);box-shadow:0 22px 50px rgba(38,52,60,.10)}
.hero-art.hero-map{min-height:360px;background:#f8faf6;border:1px solid rgba(110,131,120,.20)}
.hero-art.hero-map img{height:100%;min-height:360px;object-fit:contain;background:#f8faf6;padding:0;filter:none;opacity:1}
.hero-art.hero-map:after{display:none}
.hero-art.hero-map .art-caption{left:14px;right:auto;bottom:14px;padding:8px 10px;border-radius:8px;background:rgba(38,52,60,.82);backdrop-filter:blur(8px);box-shadow:0 10px 22px rgba(38,52,60,.16)}
.hero-art.hero-map .art-caption b{font-size:14px}.hero-art.hero-map .art-caption span{font-size:11px;color:rgba(255,255,255,.82)}
.btn.primary,.comment-row button{background:#c46424;color:#fff;border-color:#c46424;box-shadow:0 14px 30px rgba(196,100,36,.24)}
.btn.primary:hover,.comment-row button:hover{background:#a94f18;border-color:#a94f18}
.menu-group.open>button,.menu-direct:hover,.menu-group>button:hover,.content-link-strip a:hover{background:#c46424;color:#fff;border-color:#c46424}
.tab.active,.flow-steps i{background:#745587;border-color:#745587;color:#fff}
.flow-card{position:relative;overflow:hidden;border-color:rgba(116,85,135,.16)}
.flow-card:before{content:"";position:absolute;left:18px;right:18px;top:64px;height:2px;background:linear-gradient(90deg,rgba(110,131,120,.16),rgba(196,100,36,.70),rgba(41,79,114,.16));transform-origin:left;animation:flowPulse 3.8s ease-in-out infinite;pointer-events:none}
.flow-card:nth-child(2n):before{animation-delay:.9s}.flow-card:nth-child(3n):before{animation-delay:1.6s}
.flow-card{scroll-margin-top:96px}
.flow-card.flow-selected{border-color:#c46424;background:#fff7ed;box-shadow:0 18px 42px rgba(196,100,36,.18)}
@keyframes flowPulse{0%,100%{transform:scaleX(.36);opacity:.38}50%{transform:scaleX(1);opacity:.88}}
.illustration-card{background:#fffdf8}.illus-visual{position:relative;min-height:210px;padding:0;background:#eef4ef;overflow:hidden}.illus-visual img,.illus-visual video{width:100%;height:100%;min-height:210px;object-fit:cover;display:block;filter:saturate(1.02) contrast(1.02)}.illus-visual span{position:absolute;left:10px;top:10px;background:rgba(38,52,60,.78);color:#fff;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:900}.illus-visual b{display:none}.illus-body a,.resource-links a,.asset,.std-link,.spec-card div a{border-color:rgba(196,100,36,.22);color:#7a3d16}.illus-body a:hover,.resource-links a:hover,.asset:hover{background:#fff7ed;border-color:#c46424}
.library-card b{color:#745587}.library-card:nth-child(3n+1) b{color:#6e8378}.library-card:nth-child(3n+2) b{color:#c46424}
@media(max-width:1100px){.hero-art.hero-map{min-height:320px}.hero-art.hero-map img{min-height:320px}}
@media(max-width:720px){.hero-panel{padding:10px}.hero-art.hero-map{min-height:230px}.hero-art.hero-map img{min-height:230px}.hero-art.hero-map .art-caption{display:none}.flow-card:before{top:58px}.illus-visual,.illus-visual img,.illus-visual video{min-height:180px}}
@media (prefers-reduced-motion:reduce){.flow-card:before{animation:none;transform:none}}

/* 2026-07-03 首页结构图：可点击模块与手机端重排 */
.hero-art.hero-map{
  min-height:455px;
  overflow:hidden;
  background:#f8faf6;
}
.site-atlas{
  position:relative;
  min-height:455px;
  height:100%;
  padding:20px;
  isolation:isolate;
  background:
    linear-gradient(90deg,rgba(110,131,120,.08) 1px,transparent 1px),
    linear-gradient(180deg,rgba(110,131,120,.08) 1px,transparent 1px),
    #f8faf6;
  background-size:28px 28px;
}
.atlas-links{
  position:absolute;
  inset:20px;
  z-index:1;
  width:calc(100% - 40px);
  height:calc(100% - 40px);
  overflow:visible;
  pointer-events:none;
}
/* 2026-07-09 连线改细贝塞尔（参照 overall-process-flow.svg）：颜色/箭头由 app.js setupAtlasLinks() 按分组内联 */
.atlas-link{
  fill:none;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.88;
}
.site-atlas:before{
  content:"";
  position:absolute;
  inset:20px;
  border:1px solid rgba(116,85,135,.14);
  border-radius:8px;
  background:rgba(255,255,255,.46);
  z-index:0;
}
.atlas-center,
.atlas-node{
  position:absolute;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:64px;
  border:1px solid rgba(116,85,135,.22);
  border-radius:8px;
  background:rgba(255,255,255,.96);
  color:#223038;
  box-shadow:0 14px 30px rgba(38,52,60,.11);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease;
}
.atlas-center{
  left:50%;
  top:50%;
  z-index:4;
  width:clamp(132px,28%,156px);
  min-height:82px;
  padding:10px 10px;
  transform:translate(-50%,-50%);
  border-color:rgba(196,100,36,.34);
  background:#fffaf3;
  text-align:center;
}
.atlas-node{
  width:29%;
  min-height:62px;
  padding:9px 10px;
}
.atlas-center b,
.atlas-node b{
  font-size:15px;
  line-height:1.2;
  font-weight:900;
}
.atlas-center b{
  color:#6c4b7d;
  font-size:15px;
}
.atlas-center span,
.atlas-node span{
  margin-top:3px;
  color:#60706b;
  font-size:10.5px;
  line-height:1.35;
}
.atlas-node:hover,
.atlas-center:hover{
  transform:translateY(-2px);
  border-color:rgba(196,100,36,.45);
  background:#fff7ed;
  box-shadow:0 18px 34px rgba(196,100,36,.14);
}
.atlas-center:hover{
  transform:translate(-50%,-52%);
}
/* 2026-07-09 节点规整网格：左右列统一 3% 边距，四行等距（20px / 35% / 57% / 20px） */
.atlas-process{left:3%;top:20px;width:30%}
.atlas-review{right:3%;top:20px;width:30%}
.atlas-opd{left:3%;top:35%;width:27%}
.atlas-emg{left:3%;top:57%;width:27%}
.atlas-tech{right:3%;top:35%;width:27%}
.atlas-ward{right:3%;top:57%;width:27%}
.atlas-assets{left:3%;bottom:20px;width:29%}
.atlas-future{left:50%;bottom:20px;width:29%;transform:translateX(-50%)}
.atlas-comments{right:3%;bottom:20px;width:29%}
.atlas-future:hover{transform:translate(-50%,-2px)}
.atlas-arrow{
  position:absolute;
  z-index:1;
  left:50%;
  top:50%;
  background:#c46424;
  opacity:.62;
  pointer-events:none;
}
.atlas-arrow:after{
  content:"";
  position:absolute;
  width:0;
  height:0;
}
.atlas-arrow-e,
.atlas-arrow-w{
  width:36%;
  height:2px;
}
.atlas-arrow-e{transform:translateY(-50%)}
.atlas-arrow-w{transform:translate(-100%,-50%)}
.atlas-arrow-e:after{
  right:-1px;
  top:50%;
  transform:translateY(-50%);
  border-left:8px solid #c46424;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
}
.atlas-arrow-w:after{
  left:-1px;
  top:50%;
  transform:translateY(-50%);
  border-right:8px solid #c46424;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
}
.atlas-arrow-n,
.atlas-arrow-s{
  width:2px;
  height:33%;
}
.atlas-arrow-n{transform:translate(-50%,-100%)}
.atlas-arrow-s{transform:translateX(-50%)}
.atlas-arrow-n:after{
  left:50%;
  top:-1px;
  transform:translateX(-50%);
  border-bottom:8px solid #c46424;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
}
.atlas-arrow-s:after{
  left:50%;
  bottom:-1px;
  transform:translateX(-50%);
  border-top:8px solid #c46424;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
}
@media(max-width:1100px){
  .hero-art.hero-map,.site-atlas{min-height:390px}
}
@media(max-width:720px){
  .hero-art.hero-map{
    min-height:0;
    max-height:none;
    overflow:visible;
  }
  .site-atlas{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    min-height:0;
    padding:12px;
    background:#f8faf6;
  }
  .site-atlas:before,
  .atlas-links,
  .atlas-arrow{
    display:none;
  }
  .atlas-center,
  .atlas-node,
  .atlas-process,
  .atlas-review,
  .atlas-opd,
  .atlas-emg,
  .atlas-tech,
  .atlas-ward,
  .atlas-assets,
  .atlas-future,
  .atlas-comments{
    position:relative;
    inset:auto;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    width:auto;
    min-height:58px;
    transform:none;
  }
  .atlas-center{
    min-height:82px;
  }
  .atlas-center:hover,
  .atlas-node:hover,
  .atlas-future:hover{
    transform:none;
  }
  .atlas-node{
    padding-left:42px;
  }
  .atlas-node:before{
    content:"";
    position:absolute;
    left:20px;
    top:-10px;
    bottom:auto;
    width:2px;
    height:16px;
    background:#c46424;
    opacity:.7;
  }
  .atlas-node:after{
    content:"";
    position:absolute;
    left:16px;
    top:4px;
    border-top:7px solid #c46424;
    border-left:5px solid transparent;
    border-right:5px solid transparent;
    opacity:.7;
  }
}

/* 2026-07-03 空间图则入口兜底：部门链接跳转后不得出现透明空白 */
#library,
#library .module,
#library .section-head,
#library .toolbar,
#moduleGrid{
  opacity:1 !important;
  transform:none !important;
  align-items:start;   /* 卡片按各自内容高度，不被同行最高卡拉伸——消除速览块到底部按钮间的大片空白 */
}
/* 配合 align-items:start：解除 .module 的等高强制，并去掉按钮的贴底撑开（内容不足时不再留空） */
#moduleGrid .module{min-height:0}
#moduleGrid .module-actions{margin-top:14px}

/* 2026-07-08 3D 信息模型入口前置：每张空间卡先给“进入模型”的主路径，再进入文字审图 */
.module-front-entry{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-items:stretch;
  margin-top:2px;
  padding:11px;
  border:1px solid rgba(12,106,112,.20);
  border-radius:8px;
  background:linear-gradient(135deg,rgba(238,247,246,.96),rgba(255,250,243,.88));
  box-shadow:0 12px 26px rgba(38,52,60,.07);
}
.module-front-copy{
  min-width:0;
  display:grid;
  gap:3px;
}
.module-front-copy>span{
  color:#6e8378;
  font-size:11px;
  line-height:1.2;
  font-weight:900;
}
.module-front-copy>b{
  color:#17373a;
  font-size:17px;
  line-height:1.18;
  font-weight:950;
}
.module-front-copy em{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  font-style:normal;
}
.module-front-copy i{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  border:1px solid rgba(12,106,112,.16);
  border-radius:999px;
  background:rgba(255,255,255,.70);
  color:#50605d;
  padding:2px 7px;
  font-size:11px;
  line-height:1.45;
  font-style:normal;
  font-weight:800;
}
.module-front-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-start;
  width:100%;
}
.module-front-actions .btn{
  flex:0 1 auto;
  min-height:44px;
  padding:10px 13px;
  box-shadow:none;
}
.module-front-actions .module-model-primary{
  flex:1 1 220px;
  min-width:190px;
  background:#d94a1f;
  border-color:#ffb28f;
  color:#fff;
  font-weight:950;
  box-shadow:0 14px 30px rgba(217,74,31,.26),0 0 0 0 rgba(217,74,31,.30);
  animation:moduleModelPulse 1.12s ease-in-out infinite;
}
.module-front-actions .module-model-primary:hover{
  background:#bf3216;
  border-color:#ffd0bd;
  transform:translateY(-1px);
  box-shadow:0 18px 36px rgba(191,50,22,.34),0 0 0 7px rgba(217,74,31,.10);
}
.module-front-actions .module-review-quick{
  flex:0 1 140px;
  color:#5a3e69;
  border-color:rgba(116,85,135,.24);
  background:#fff;
}
@keyframes moduleModelPulse{
  0%,100%{
    background:#d94a1f;
    box-shadow:0 14px 30px rgba(217,74,31,.26),0 0 0 0 rgba(217,74,31,.30);
  }
  50%{
    background:#ff5a2a;
    box-shadow:0 18px 38px rgba(255,90,42,.40),0 0 0 7px rgba(255,90,42,.14);
  }
}

/* 2026-07-03 强化说明模型入口 */
.module-actions .btn.primary[data-open-model]{
  min-width:178px;
  min-height:54px;
  padding:12px 18px;
  border-radius:12px;
  border:2px solid #ffb3a7 !important;
  background:#d71920 !important;
  color:#fff !important;
  font-size:13px;
  font-weight:950;
  letter-spacing:0;
  box-shadow:0 14px 30px rgba(215,25,32,.28),0 0 0 0 rgba(215,25,32,.34);
  animation:modelButtonFlash 1.08s ease-in-out infinite;
}
.module-actions .btn[data-open-review]{
  min-width:126px;
  min-height:54px;
  padding:12px 18px;
  border-radius:12px;
  font-size:13px;
}
.module-actions .btn.primary[data-open-model]:hover{
  background:#b80f18 !important;
  border-color:#ffd1c9 !important;
  transform:translateY(-1px) scale(1.01);
  box-shadow:0 18px 36px rgba(184,15,24,.34),0 0 0 7px rgba(215,25,32,.10);
}
@keyframes modelButtonFlash{
  0%,100%{background:#d71920;box-shadow:0 14px 30px rgba(215,25,32,.28),0 0 0 0 rgba(215,25,32,.34)}
  50%{background:#ff3b30;box-shadow:0 18px 38px rgba(255,59,48,.38),0 0 0 7px rgba(255,59,48,.12)}
}

/* 2026-07-03 恢复模块链接入口的紧凑尺寸 */
.module-links{
  display:flex;
  flex-wrap:wrap;
  grid-template-columns:none;
  gap:6px;
}
.module-links a{
  flex:0 0 auto;
  width:auto;
  min-height:30px;
  padding:5px 9px;
  justify-content:center;
  font-size:12px;
  line-height:1.35;
}
.module-links a:nth-child(1){
  background:#eef7f6;
  border-color:rgba(12,106,112,.28);
  color:#0c6a70;
  font-weight:950;
}
.module-links a:nth-child(2){
  background:#fffaf3;
  border-color:rgba(196,100,36,.28);
  color:#74401a;
}
@media(max-width:720px){
  .module-front-actions{
    justify-content:stretch;
  }
  .module-front-actions .btn{
    flex:1 1 150px;
    width:auto;
  }
}

/* 2026-07-05 统一3D查看器接入 + 模态窗口最大化 + 移动端全屏优化 */
/* 头部动作区：旧版模型链接 + 最大化 + 关闭 */
.modal-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.modal-head b,.site-modal-head b,.review-modal-head b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.legacy-model-link{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:800;white-space:nowrap}
.legacy-model-link:hover{background:rgba(255,255,255,.22)}

/* 最大化态：真全屏（100dvh），含刘海/手势条安全区 */
.modal.is-max,.site-modal.is-max,.review-modal.is-max{padding:0}
.modal.is-max .modal-box,.site-modal.is-max .site-modal-box,.review-modal.is-max .review-modal-box{
  width:100%;height:100%;max-width:none;max-height:none;border-radius:0;border:0;
  padding-bottom:env(safe-area-inset-bottom)}
/* 遮罩层自身即为固定视口（inset:0），最大化盒体填满即可实现 100dvh 效果 */
.modal.is-max .modal-head,.site-modal.is-max .site-modal-head,.review-modal.is-max .review-modal-head{
  padding-top:calc(8px + env(safe-area-inset-top));
  padding-left:calc(14px + env(safe-area-inset-left));
  padding-right:calc(14px + env(safe-area-inset-right))}

/* 移动端：顶部细条 + ≥44px 按钮热区 + 内容可滚动（JS 打开时默认加 is-max 直接全屏） */
@media(max-width:720px){
  .modal,.site-modal,.review-modal{padding:10px}
  .modal-box{width:100%;height:94dvh}
  .site-modal-box{width:100%;height:94dvh}
  .review-modal-box{width:100%;max-height:94dvh}/* iframe 容器需固定高度，审核弹窗改为随内容自适应 */
  .modal-head,.site-modal-head,.review-modal-head{padding:6px 10px;gap:8px}
  .modal-head b,.site-modal-head b,.review-modal-head b{font-size:14px}
  .modal-head button,.site-modal-head button,.review-modal-head button,.legacy-model-link,.data-error button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
  .modal-content{grid-template-rows:minmax(240px,1fr) auto;min-height:0;overflow:auto}
  .side{max-height:none}
}

/* 数据加载失败提示条（initSystem 出错时显示，含重试按钮） */
.data-error{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:200;display:flex;align-items:center;gap:12px;max-width:min(680px,calc(100vw - 24px));padding:10px 14px;border-radius:8px;border:1px solid rgba(155,60,45,.38);background:#fdf1ee;color:#84291d;box-shadow:0 18px 44px rgba(132,41,29,.24);font-weight:800;font-size:13px}
.data-error[hidden]{display:none}
.data-error button{flex:0 0 auto;border:1px solid rgba(132,41,29,.35);background:#84291d;color:#fff;border-radius:7px;padding:7px 16px;font-weight:900}
.data-error button:hover{background:#9c3a2b}

/* 团队菜单小屏防溢出：721-1100px 下拉改左锚点并限宽；≤720 占满整行避免半栏挤压 */
@media(max-width:1100px){
  .team-menu .submenu{right:auto;left:0;max-width:calc(100vw - 30px);min-width:min(310px,calc(100vw - 30px))}
}
@media(max-width:720px){
  .team-menu{grid-column:1 / -1}
  .team-submenu>b{white-space:normal;line-height:1.4}
  .menu-team-list{max-height:300px}
  .menu-team-list a{min-width:0}
  .menu-team-list b,.menu-team-list span{overflow-wrap:anywhere}
}

/* ===== 总体工艺流程图（自绘SVG） ===== */
.process-overview{margin:0 0 26px;padding:18px 18px 10px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.process-overview img{display:block;width:100%;height:auto;border-radius:8px}
.process-overview a{display:block;cursor:zoom-in}
.process-overview figcaption{margin-top:10px;font-size:12.5px;color:var(--muted);text-align:center;line-height:1.6}
@media (max-width:720px){
  .process-overview{padding:10px 10px 6px;overflow-x:auto}
  .process-overview img{min-width:760px}/* 手机上保持可读，横向滚动看全图 */
}

/* ===== 2026-07-05 设备识别分端优化 =====
   app.js 顶部检测后给 <html> 写入 is-mobile / is-desktop（互斥）与 is-touch（可叠加）：
   - is-mobile：真手机（触屏 + 屏幕短边 <820，或 UA 含 Mobile|Android|iPhone），横屏时视口宽度可 >720px，
     故以下规则不放媒体查询内，与既有 720px 断点并存互补（≤720px 时两套规则同时命中、值一致）；
   - is-touch：含触屏笔记本，仅做 ≥44px 触控热区与惯性滚动优化，不改布局；
   - is-desktop：保持现状，不额外覆盖。 */

/* —— 手机（含横屏）：菜单收起体系，镜像 720px 断点的菜单规则 —— */
html.is-mobile .topbar .shell{position:relative;gap:10px;padding-top:14px;padding-bottom:9px;height:auto;align-items:flex-start;flex-direction:column}
html.is-mobile .menu-toggle{display:inline-flex;position:absolute;right:15px;top:10px;z-index:2}
html.is-mobile .brand{min-width:0;padding-right:120px}
html.is-mobile .main-menu{display:none;width:100%}
html.is-mobile body.menu-collapsed .main-menu{display:none !important}
html.is-mobile body:not(.menu-collapsed) .main-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
html.is-mobile .menu-group>button,html.is-mobile .menu-direct,html.is-mobile .team-toggle{width:100%;justify-content:center;text-align:center}
html.is-mobile .submenu{position:static;margin-top:6px;min-width:0}
html.is-mobile .team-menu{grid-column:1 / -1}
html.is-mobile .hero{cursor:pointer}

/* —— 手机（含横屏）：说明模型弹窗改上下布局（横屏宽度 >720px 时 720 断点不命中，需在此兜底） —— */
html.is-mobile .modal-content{grid-template-columns:1fr;grid-template-rows:minmax(240px,1fr) auto;min-height:0;overflow:auto}
html.is-mobile .side{border-left:0;border-top:1px solid var(--line);max-height:none}

/* —— 手机（含横屏）：横向可滚动区域（总体流程图 / 审图表格）保证可横滑 —— */
html.is-mobile .process-overview{overflow-x:auto}

/* —— 触屏（含触屏笔记本）：横向/纵向滚动容器启用 iOS 惯性滚动 —— */
html.is-touch .process-overview,
html.is-touch .review-table-wrap,
html.is-touch .review-modal-body,
html.is-touch .side,
html.is-touch .menu-team-list{-webkit-overflow-scrolling:touch}

/* —— 触屏（含触屏笔记本）：点击热区 ≥44px。弹窗头部按钮原仅在 ≤720px 达标，这里扩展到所有触屏设备；
      再覆盖科室标签、主菜单、子菜单项、卡片内按钮/链接与留言提交行 —— */
html.is-touch .tab{min-height:44px;padding:10px 14px}
html.is-touch .menu-toggle,
html.is-touch .menu-group>button,
html.is-touch .menu-direct,
html.is-touch .team-toggle{min-height:44px}
html.is-touch .submenu a{display:flex;align-items:center;min-height:44px;padding-top:6px;padding-bottom:6px}
html.is-touch .btn{min-height:44px}
html.is-touch .card-links a,
html.is-touch .card-links button,
html.is-touch .content-link-strip a,
html.is-touch .module-links a,
html.is-touch .clause-ref-line a,
html.is-touch .clause-ref-line button{min-height:44px}
html.is-touch .asset,
html.is-touch .resource-links a,
html.is-touch .illus-body a,
html.is-touch .case-card a,
html.is-touch .std-link,
html.is-touch .clause-head a,
html.is-touch .spec-card div a{min-height:44px;display:inline-flex;align-items:center}
html.is-touch .comment-row input,
html.is-touch .comment-row button{min-height:44px}
html.is-touch .modal-head button,
html.is-touch .site-modal-head button,
html.is-touch .review-modal-head button,
html.is-touch .legacy-model-link,
html.is-touch .data-error button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}

/* ============================================================
   2026-07-05f 手机端"应用式全屏导航"重设计（仅 html.is-mobile 生效，桌面端零改动）
   解决"标题/菜单常驻遮挡内容"：顶栏瘦身+智能隐藏、全屏抽屉导航、
   模块全屏页+明确返回（配合 app.js 浏览器历史集成）、hero 压缩、内容密度收紧。
   本段位于文件末尾，同特异性下覆盖上文既有 html.is-mobile 规则。
   ============================================================ */
html.is-mobile{--mbar:calc(38px + env(safe-area-inset-top))}   /* 顶栏总高（含刘海安全区）：2026-07-05g 按实拍反馈极限压窄 52→38 */

/* ---- 1. 顶栏极限压窄为单行 38px + 智能隐藏 ---- */
html.is-mobile .topbar{
  position:fixed;left:0;right:0;top:0;z-index:60;
  transition:transform .28s ease;will-change:transform;
  padding-top:env(safe-area-inset-top);
  box-shadow:none;   /* 去掉桌面主题的下投影，消除"顶栏更厚"的视觉叠加 */
}
html.is-mobile body.topbar-hidden .topbar{transform:translateY(-100%)}   /* 下滑收起 */
html.is-mobile .topbar .shell{
  flex-direction:row;align-items:center;justify-content:flex-start;
  height:38px;min-height:38px;gap:8px;padding-top:0;padding-bottom:0;position:static;
}
html.is-mobile .brand{flex:1 1 auto;min-width:0;padding-right:0;gap:8px}
html.is-mobile .brand .mark{display:none}   /* 极限压窄：隐藏 logo，标题单行占满 */
html.is-mobile .brand>span:not(.mark){min-width:0;overflow:hidden;margin-top:0}
html.is-mobile .brand strong{font-size:14px;line-height:1.2;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* 标题单行省略号 */
html.is-mobile .brand>span:not(.mark)>span{display:none}   /* 隐藏副标题，保持单行 */
/* ☰ 菜单按钮：单行内、图标即可，宽热区 ≥44px、高度随栏（32px 居中于 38px 栏内） */
html.is-mobile .menu-toggle{position:static;right:auto;top:auto;margin-left:0;flex:0 0 auto;min-width:44px;min-height:0;height:32px;padding:0 10px;justify-content:center;box-shadow:none}
html.is-mobile .menu-toggle b{display:none}
/* 顶栏为 fixed：主内容补顶部间距，避免遮挡/跳动；锚点滚动落点让开顶栏 */
html.is-mobile main{padding-top:var(--mbar)}
html.is-mobile .section{scroll-margin-top:calc(var(--mbar) + 8px)}
html.is-mobile .toolbar{top:var(--mbar)}
/* 桌面主菜单在手机端一律隐藏（全屏抽屉替代） */
html.is-mobile .main-menu{display:none !important}
html.is-mobile .hero{cursor:auto}
/* body 滚动锁定：抽屉/全屏页打开时防背景穿透（列表滚动位置随之天然保留） */
body.overlay-open{overflow:hidden}

/* ---- 2. 全屏抽屉导航（app.js 动态创建 #mobileNav）---- */
.mobile-nav{position:fixed;inset:0;z-index:120;display:none;flex-direction:column;background:linear-gradient(180deg,#fbfaf6,#eef4f2)}
.mobile-nav.show{display:flex;animation:mnavIn .26s ease both}
@keyframes mnavIn{from{opacity:0;transform:translateX(6%)}to{opacity:1;transform:translateX(0)}}
.mobile-nav .mnav-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:calc(5px + env(safe-area-inset-top)) 14px 5px;background:#0c1a1b;color:#fff}   /* 2026-07-05g 顶栏压窄后同步收窄抽屉标题栏 */
.mobile-nav .mnav-bar b{font-size:16px;font-weight:900}
.mobile-nav .mnav-close{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff;border-radius:9px;padding:0 14px;min-height:32px;min-width:44px;font-weight:900;font-size:14px}
.mobile-nav .mnav-close:active{background:rgba(255,255,255,.26)}
.mobile-nav .mnav-body{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px calc(28px + env(safe-area-inset-bottom))}   /* 底部安全区 padding */
.mnav-brand{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.7);border-radius:12px;padding:14px;margin-bottom:16px}
.mnav-brand b{display:block;font-size:16px;font-weight:900;color:var(--ink)}
.mnav-brand span{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
.mnav-group{margin-bottom:18px}
.mnav-title{font-size:13px;font-weight:900;letter-spacing:.04em;color:#0e6f74;margin:0 2px 8px;padding-bottom:6px;border-bottom:1px solid rgba(15,140,146,.18)}
.mnav-links{display:grid;gap:8px}
.mnav-link{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:12px 14px;border-radius:11px;border:1px solid rgba(28,40,39,.13);background:rgba(255,255,255,.78);color:var(--ink);font-size:17px;font-weight:800;line-height:1.3}
.mnav-link:after{content:"›";color:var(--muted);font-size:20px;margin-left:10px}
.mnav-link:active{background:#fff;border-color:rgba(15,140,146,.3)}
.mnav-link.solo{font-weight:900}

/* ---- 3. 模块弹窗 → 全屏页：顶部固定返回栏（← 返回 左 / 名称 中 / 次要动作 右）----
   移动端弹窗已由 app.js 默认全屏（is-max）；此处把头部改造为返回栏。 */
html.is-mobile .modal-head,
html.is-mobile .site-modal-head,
html.is-mobile .review-modal-head{min-height:40px;align-items:center;gap:10px;padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:4px}   /* 2026-07-05g 顶栏压窄后同步收窄全屏页返回栏（保留刘海安全区） */
/* 让 .modal-head-actions 的按钮升为头部直接 flex 子项，便于用 order 排布 */
html.is-mobile .modal-head-actions{display:contents}
/* ← 返回：最左、大热区（文字用 ::before 覆盖"关闭"字样） */
/* 选择器带 .modal-head-actions（display:contents 的 DOM 祖先）拉高特异性至 0,3,1，
   压过 html.is-touch .modal-head button 的 0,2,2（min-height:44px），返回栏才能真正变薄 */
html.is-mobile .modal-head-actions .modal-close-btn{order:-2;flex:0 0 auto;min-height:36px;min-width:44px;font-size:0;padding:0 12px 0 4px;background:transparent;border:0}
html.is-mobile .modal-close-btn::before{content:"← 返回";font-size:16px;font-weight:900;color:#fff;white-space:nowrap}
/* 模块名：居中、占满、省略号 */
html.is-mobile .modal-head>b,
html.is-mobile .site-modal-head>b,
html.is-mobile .review-modal-head>b{order:-1;flex:1 1 auto;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
/* 全屏页里"最大化"按钮多余，隐藏（提高特异性，压过 html.is-touch .modal-head button 的 0,2,1） */
html.is-mobile .modal-head .modal-max-btn,
html.is-mobile .site-modal-head .modal-max-btn,
html.is-mobile .review-modal-head .modal-max-btn{display:none}
/* 次要动作（说明模型 实景/旧版 切换）留在右侧 */
html.is-mobile .legacy-model-link{order:1;flex:0 0 auto;font-size:12px;padding:8px 10px}

/* ---- 4. Hero 压缩：标题 + 一句话 + 两个按钮；导览图折叠 ---- */
html.is-mobile .hero{padding-top:14px;padding-bottom:20px}
html.is-mobile .hero h1{font-size:clamp(24px,6.4vw,30px);line-height:1.05}
html.is-mobile .hero p{font-size:15px;margin-top:14px}
html.is-mobile .content-link-strip{display:none}                 /* 快捷入口条与抽屉重复，隐藏 */
html.is-mobile .hero-actions{gap:8px;margin-top:18px}
html.is-mobile .hero-actions .btn{width:auto;flex:1 1 46%}
html.is-mobile .hero-actions .btn:nth-child(n+3){display:none}   /* 仅保留前两个按钮 */
html.is-mobile .metric-grid{grid-template-columns:1fr 1fr}       /* 指标 2 列，避免过高 */
html.is-mobile .status-line{display:none}                        /* 长说明段落收起，压缩首屏 */
/* 导览图（site-atlas）默认折叠，点开关（app.js 注入）展开——不再占满首屏 */
html.is-mobile .hero-art.hero-map{display:none}
html.is-mobile .hero-panel.atlas-open .hero-art.hero-map{display:block;min-height:0;max-height:none;overflow:visible}
.atlas-toggle{display:block;width:100%;margin-bottom:10px;border:1px dashed rgba(15,140,146,.4);background:rgba(15,140,146,.06);color:#0c6a70;border-radius:10px;padding:12px;font-weight:900;font-size:14px;min-height:48px}
/* 展开时：竖屏/横屏手机都用纵向堆叠卡片，避免绝对定位重叠 */
html.is-mobile .site-atlas{display:grid;grid-template-columns:1fr;gap:9px;min-height:0;padding:12px;background:#f8faf6}
html.is-mobile .site-atlas:before,
html.is-mobile .atlas-links,
html.is-mobile .atlas-arrow{display:none}
html.is-mobile .atlas-center,
html.is-mobile .atlas-node{position:relative;inset:auto;left:auto;right:auto;top:auto;bottom:auto;width:auto;transform:none;min-height:56px}

/* ---- 5. 内容密度：标题区更紧凑、卡片间距略收、正文 ≥15px ---- */
html.is-mobile .section{padding:22px 0}
html.is-mobile .section-head{margin-bottom:14px;padding-top:16px}
html.is-mobile .grid{gap:14px}
html.is-mobile .summary{font-size:15px}
html.is-mobile .module h3{font-size:18px}
html.is-mobile .section .hint{font-size:13px}

/* ============================================================
   2026-07-05g 手机端搜索栏"顶部停靠 + 手势唤出 + 自动消隐"
   仅 html.is-mobile 且 app.js setupSearchDock() 给 #library .toolbar
   加上 .sb-dock 后生效；JS 失效时无该类，自动回退为原 sticky 工具条；
   桌面端（is-desktop）完全不命中，零改动。
   三态（由 JS 状态机切换）：
     .sb-open   展开 —— fixed 停靠在顶栏正下方（顶栏滚动收起后贴屏幕顶）
     （无类）    缩回 —— 位移出屏，仅剩 .sb-grip 把手提示条
     away       整体隐藏 —— #library 滚出视口，把手一并隐藏（JS 移除 .show）
   注意：上文"空间图则入口兜底"有 #library .toolbar{transform:none !important}
   （渐显透明兜底），故本段状态位移必须同用 !important（选择器更长且更靠后）。
   ============================================================ */
html.is-mobile #library .toolbar.sb-dock{
  position:fixed;left:0;right:0;top:var(--mbar);z-index:55;   /* 低于顶栏(60)，顶栏滑动时可盖过它 */
  margin:0;border-radius:0;border-top:0;border-left:0;border-right:0;
  display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:6px 10px;
  background:rgba(250,248,241,.8);backdrop-filter:blur(16px) saturate(1.05);   /* 半透明毛玻璃底 */
  transform:translateY(-112%) !important;                     /* 默认缩回（透明兜底规则需 !important 压制） */
  visibility:hidden;pointer-events:none;
  transition:transform .2s ease,visibility 0s linear .2s,top .28s ease;         /* 弹出/缩回 ≤200ms；top 跟随顶栏 .28s */
}
@supports not (backdrop-filter:blur(1px)){
  html.is-mobile #library .toolbar.sb-dock{background:rgba(250,248,241,.97)}   /* 无毛玻璃能力时降级近纯色 */
}
html.is-mobile #library .toolbar.sb-dock.sb-open{
  transform:translateY(0) !important;visibility:visible;pointer-events:auto;
  transition:transform .2s ease,visibility 0s,top .28s ease;
}
/* 顶栏滚动收起后：停靠条与把手贴屏幕顶（消除原 sticky 方案顶部的半透明空隙） */
html.is-mobile body.topbar-hidden #library .toolbar.sb-dock,
html.is-mobile body.topbar-hidden .sb-grip{top:env(safe-area-inset-top)}
/* 紧凑单行：搜索框（约 46% 宽）+ 横向可滑科室标签（隐藏滚动条） */
html.is-mobile #library .toolbar.sb-dock .search{flex:0 1 46%;min-width:132px}
html.is-mobile #library .toolbar.sb-dock .search input{min-height:34px}
html.is-mobile #library .toolbar.sb-dock .tabs{flex:1 1 auto;min-width:0;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
html.is-mobile #library .toolbar.sb-dock .tabs::-webkit-scrollbar{display:none}
html.is-mobile #library .toolbar.sb-dock .tab{flex:0 0 auto;min-height:34px;padding:6px 11px}
/* 把手（缩回态提示条）：顶部居中、高 14px 圆角、白色小横杠，暗示可拉出；
   pointer-events 仅自身（其余区域不遮挡内容点击），::after 略扩不可见拖拽热区 */
html.is-mobile .sb-grip{
  position:fixed;left:50%;margin-left:-39px;top:var(--mbar);z-index:54;
  width:78px;height:14px;border:0;padding:0;border-radius:0 0 12px 12px;
  background:rgba(12,26,27,.52);display:none;touch-action:none;   /* touch-action:none 保证下拖手势 pointermove 连续 */
  transition:top .28s ease;
}
html.is-mobile .sb-grip:before{content:"";display:block;width:34px;height:4px;margin:5px auto 0;border-radius:2px;background:#fff;opacity:.9}
html.is-mobile .sb-grip:after{content:"";position:absolute;left:-12px;right:-12px;top:0;height:30px}
html.is-mobile .sb-grip.show{display:block}
/* 锚点/菜单跳到 #library 时，落点让开"顶栏 + 展开态停靠条"，标题不被盖住 */
html.is-mobile #library{scroll-margin-top:calc(var(--mbar) + 52px)}

/* ============================================================
   2026-07-06h 站内自绘插图接入
   ① hero 三步上手条 ② 规范审核右栏 sticky 插图 ③ 图纸审核工作流
   ④ 工艺原则卡 / 科室摘要卡 线条图标（雪碧图 use 引用）
   ============================================================ */
/* ① hero 三步上手条：桌面显示、手机隐藏（首屏，不加 lazy） */
.hero-steps{margin:22px 0 0;padding:0}
.hero-steps img{display:block;width:100%;max-width:900px;height:auto}
html.is-mobile .hero-steps{display:none}

/* ② 规范审核右栏：sticky 由 .review-guide 移交给外层 .review-side；
   右栏总高约 1500px 超出视口，用 max-height + 内部细滚动条保证漏斗图与图例任何时刻都可达 */
.review-side{position:sticky;top:88px;align-self:start;display:grid;gap:14px;max-height:calc(100vh - 102px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-bottom:4px}
.review-guide{position:static;top:auto}
.review-figure{margin:0;border:1px solid rgba(28,40,39,.13);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62));box-shadow:0 18px 54px rgba(14,24,25,.08);padding:10px}
.review-figure img{display:block;width:100%;height:auto}
.review-figure figcaption{margin-top:8px;color:var(--muted);font-size:11px;line-height:1.5;text-align:center}
@media(max-width:1100px){.review-side{position:static;max-height:none;overflow:visible}}
html.is-mobile .review-side{position:static;max-height:none;overflow:visible}

/* ③ 图纸审核工作流（#future 区）：与 .process-overview 同语言；手机端整体缩放（max-width:100%），不引入横向溢出，可点开大图 */
.audit-workflow-figure{margin:6px 0 18px;border:1px solid rgba(28,40,39,.13);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62));box-shadow:0 18px 54px rgba(14,24,25,.08);padding:10px}
.audit-workflow-figure a{display:block}
.audit-workflow-figure img{display:block;width:100%;max-width:100%;height:auto}
.drawing-audit{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:16px;align-items:start}
.audit-column{display:grid;gap:16px;align-content:start;min-width:0}
.audit-panel{border:1px solid rgba(28,40,39,.13);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.84),rgba(255,255,255,.64));box-shadow:0 18px 54px rgba(14,24,25,.08);padding:14px}
.audit-intake,.audit-markup,.audit-checklist,.audit-scope,.audit-layout,.audit-optimize,.audit-database{grid-column:auto}
.audit-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;border-bottom:1px solid rgba(28,40,39,.10);padding-bottom:9px}
.audit-panel-head b{font-size:18px;color:#243531}
.audit-panel-head span{font-size:12px;color:var(--muted);text-align:right}
.audit-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.audit-form-grid label,.audit-notes{display:grid;gap:5px;font-size:12px;font-weight:900;color:#40504c}
.audit-form-grid select,.audit-notes textarea{width:100%;border:1px solid rgba(28,40,39,.16);border-radius:8px;background:#fffefb;color:#243531;padding:9px 10px;font:inherit}
.audit-notes{margin-top:10px}
.audit-notes textarea{min-height:92px;resize:vertical;line-height:1.55;font-weight:500}
.audit-file-drop{display:flex;align-items:center;gap:12px;border:1px dashed rgba(15,140,146,.35);background:rgba(15,140,146,.06);border-radius:8px;padding:12px;margin-top:10px;cursor:pointer}
.audit-file-drop input{width:1px;height:1px;opacity:.01;position:absolute}
.audit-file-drop span{display:grid;gap:3px}
.audit-file-drop b{color:#0c6a70}
.audit-file-drop em{font-style:normal;color:var(--muted);font-size:12px}
.audit-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.audit-module-picks{display:flex;gap:8px;flex-wrap:wrap}
.audit-module-picks button{border:1px solid rgba(28,40,39,.14);background:#fff;border-radius:8px;padding:8px 10px;text-align:left;color:#243531;cursor:pointer}
.audit-module-picks button:hover{border-color:rgba(15,140,146,.36)}
.audit-module-picks b{display:block;font-size:13px}
.audit-module-picks span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.audit-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.audit-result-grid article{border:1px solid rgba(28,40,39,.12);border-radius:8px;background:rgba(246,248,244,.72);padding:10px;text-align:center}
.audit-result-grid strong{display:block;font-size:21px;color:#243531}
.audit-result-grid span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.audit-layout-board{display:grid;gap:10px}
.audit-lane{border:1px solid rgba(28,40,39,.12);border-radius:8px;background:rgba(255,255,255,.72);padding:10px}
.audit-lane.public{border-left:5px solid #4f8f8c}.audit-lane.core{border-left:5px solid #b65b22}.audit-lane.support{border-left:5px solid #765b86}.audit-lane.risk{border-left:5px solid #728579}
.audit-lane-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}
.audit-lane-head b{font-size:13px;color:#243531}.audit-lane-head span{font-size:11px;color:var(--muted);text-align:right;line-height:1.35}
.audit-lane-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.audit-node{border:1px solid rgba(28,40,39,.12);border-radius:8px;background:#fffdf8;padding:8px;min-width:0}
.audit-node b{display:block;font-size:12px;line-height:1.35;color:#243531}
.audit-node span,.audit-node em{display:block;margin-top:3px;font-size:11px;line-height:1.35;color:#52615d;font-style:normal}
.audit-node.risk-high{background:linear-gradient(180deg,rgba(182,91,34,.10),#fffdf8);border-color:rgba(182,91,34,.26)}
.audit-node.risk-mid{background:linear-gradient(180deg,rgba(215,164,63,.11),#fffdf8);border-color:rgba(215,164,63,.30)}
.audit-lane-empty{border:1px dashed rgba(28,40,39,.15);border-radius:8px;padding:8px;color:var(--muted);font-size:12px;text-align:center}
.audit-flow-legend{display:grid;gap:9px;margin-top:10px}
.audit-flow-legend>div{border:1px solid rgba(15,140,146,.14);border-radius:8px;background:rgba(15,140,146,.05);padding:9px}
.audit-flow-legend b{font-size:12px;color:#0c6a70}
.audit-flow-legend ul{list-style:none;margin:7px 0 0;padding:0;display:grid;gap:6px}
.audit-flow-legend li{display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:#52615d;font-size:11.5px;line-height:1.45}
.audit-flow-legend li>b{color:#243531}.audit-flow-legend li>span{color:#0c6a70;font-weight:900}.audit-flow-legend li>em{font-style:normal;color:var(--muted)}
.audit-flow-legend li.warning{display:block;border-left:3px solid #b65b22;background:rgba(182,91,34,.08);border-radius:6px;padding:7px;color:#6c3d24}
.audit-markup-stage{display:grid;gap:10px}
.audit-markup-canvas{position:relative;aspect-ratio:16/9;min-height:0;border:1px solid rgba(28,40,39,.13);border-radius:8px;background:#fff;overflow:hidden}
.audit-markup-canvas img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.audit-markup-canvas.is-placeholder{background:
  linear-gradient(90deg,rgba(39,79,115,.05) 1px,transparent 1px),
  linear-gradient(180deg,rgba(39,79,115,.05) 1px,transparent 1px),#fbfcfa;background-size:36px 36px}
.audit-markup-placeholder{position:absolute;inset:0;z-index:1;display:grid;place-content:center;text-align:center;padding:24px;color:#66736f;pointer-events:none}
.audit-markup-placeholder b,.audit-markup-placeholder span{display:block;max-width:min(680px,calc(100vw - 96px));margin-left:auto;margin-right:auto;border-radius:8px;background:rgba(251,252,250,.82);backdrop-filter:blur(3px)}
.audit-markup-placeholder b{color:#243531;font-size:20px;padding:6px 12px 2px}.audit-markup-placeholder span{margin-top:3px;padding:2px 12px 7px;font-size:12px;line-height:1.55}
.audit-marker{position:absolute;z-index:2;transform:translate(-50%,-50%);display:grid;place-items:center;width:30px;height:30px;border-radius:999px;border:3px solid #fff;background:#183a58;color:#fff;font-weight:900;font-size:13px;box-shadow:0 10px 24px rgba(14,24,25,.22);cursor:pointer}
.audit-marker.auto{background:#765b86}.audit-marker.on{background:#b65b22;box-shadow:0 0 0 4px rgba(182,91,34,.18),0 14px 28px rgba(14,24,25,.24)}
/* 2026-07-09 自动分区底图：索引点锚定在模块框内，点位密集，缩小尺寸减少堆叠遮挡 */
.audit-markup-canvas.is-auto .audit-marker{width:22px;height:22px;border-width:2px;font-size:11px;box-shadow:0 6px 14px rgba(14,24,25,.20)}
.audit-markup-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}
.audit-markup-actions span{color:var(--muted);font-size:12px;line-height:1.45}
.audit-markup-index ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.audit-markup-index li button{width:100%;border:1px solid rgba(28,40,39,.12);border-radius:8px;background:rgba(255,255,255,.78);padding:9px 10px;text-align:left;color:#243531;cursor:pointer}
.audit-markup-index li.on button{border-color:rgba(182,91,34,.42);background:rgba(182,91,34,.07)}
.audit-markup-index b,.audit-markup-index span,.audit-markup-index em{display:block;line-height:1.4}
.audit-markup-index b{font-size:12.5px}.audit-markup-index span{margin-top:3px;color:#0c6a70;font-size:11px;font-weight:900}.audit-markup-index em{margin-top:3px;color:var(--muted);font-size:11px;font-style:normal}
.audit-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.audit-filter{border:1px solid rgba(28,40,39,.15);background:rgba(255,255,255,.78);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;color:#40504c;cursor:pointer}
.audit-filter.on{background:#183a58;color:#fff;border-color:#183a58}
.audit-list{display:grid;gap:9px;max-height:660px;overflow:auto;padding-right:4px}
.audit-item{border:1px solid rgba(28,40,39,.12);border-left:5px solid var(--moss);border-radius:8px;background:#fffdf8;padding:11px 12px}
.audit-item.core{border-left-color:#b65b22;background:linear-gradient(90deg,rgba(182,91,34,.08),#fffdf8 38%)}
.audit-item.optimize{border-left-color:#765b86;background:linear-gradient(90deg,rgba(118,91,134,.08),#fffdf8 38%)}
.audit-item-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}
.audit-item-top span,.audit-item-top em{border-radius:999px;padding:3px 8px;font-size:11px;font-style:normal;font-weight:900;white-space:nowrap}
.audit-item-top span{background:rgba(15,140,146,.08);color:#0c6a70}
.audit-item.core .audit-item-top span{background:rgba(182,91,34,.11);color:#8a3d15}
.audit-item.optimize .audit-item-top span{background:rgba(118,91,134,.11);color:#61416f}
.audit-item-top em{background:#eef2ef;color:#5b675f}
.audit-item-top b{min-width:0;font-size:14px;line-height:1.35}
.audit-item p{margin:8px 0;color:#33433e;font-size:13px;line-height:1.55}
.audit-item dl{display:grid;grid-template-columns:52px minmax(0,1fr);gap:5px 8px;margin:0;font-size:12px;color:#52615d}
.audit-item dt{font-weight:900;color:#6b567d}
.audit-item dd{margin:0}
.audit-decision{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;padding-top:9px;border-top:1px solid rgba(28,40,39,.10)}
.audit-decision button{border:1px solid rgba(28,40,39,.14);background:rgba(255,255,255,.82);border-radius:999px;padding:5px 9px;color:#40504c;font-size:11.5px;font-weight:900;cursor:pointer}
.audit-decision button:hover{border-color:rgba(15,140,146,.32)}
.audit-decision button.on{background:#183a58;border-color:#183a58;color:#fff}
.audit-decision button[data-audit-decision="revise"].on{background:#b65b22;border-color:#b65b22}
.audit-decision button[data-audit-decision="pass"].on{background:#4f8f8c;border-color:#4f8f8c}
.audit-decision button[data-audit-decision="optimized"].on{background:#765b86;border-color:#765b86}
.audit-ai-queue{border:1px solid rgba(28,40,39,.12);border-radius:8px;background:rgba(255,255,255,.72);padding:10px;margin-bottom:10px}
.audit-ai-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.audit-ai-head b{font-size:13px;color:#243531}.audit-ai-head span{font-size:11px;color:var(--muted);text-align:right}
.audit-ai-queue ol{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;color:#52615d;font-size:11.5px;line-height:1.45}
.audit-ai-queue li b,.audit-ai-queue li span{display:block}.audit-ai-queue li b{color:#243531}.audit-ai-queue p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.audit-suggestions{display:grid;gap:9px}
.audit-suggestions article{border:1px solid rgba(28,40,39,.12);background:#fff;border-radius:8px;padding:10px}
.audit-suggestions span{display:inline-block;border-radius:999px;background:rgba(118,91,134,.10);color:#61416f;padding:3px 8px;font-size:11px;font-weight:900;margin-bottom:6px}
.audit-suggestions b{display:block;font-size:13px;color:#243531}
.audit-suggestions p,.audit-database p{margin:6px 0 0;color:#52615d;font-size:12px;line-height:1.55}
.audit-history{display:grid;gap:8px;margin-top:12px}
.audit-history-head{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(28,40,39,.10);padding-top:10px;color:#243531}
.audit-history-head b{font-size:13px}.audit-history-head span{font-size:11px;color:var(--muted)}
.audit-history-item button{width:100%;border:1px solid rgba(28,40,39,.12);border-radius:8px;background:rgba(255,255,255,.78);padding:9px 10px;text-align:left;color:#243531;cursor:pointer}
.audit-history-item button:hover{border-color:rgba(15,140,146,.30);background:#fff}
.audit-history-item b{display:block;font-size:12.5px;line-height:1.45}
.audit-history-item span{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.4}
.audit-save-state,.audit-empty{color:var(--muted);font-size:12px;line-height:1.55;padding:8px 0}
@media(max-width:1100px){.drawing-audit{grid-template-columns:1fr}.audit-intake,.audit-markup,.audit-checklist,.audit-scope,.audit-layout,.audit-optimize,.audit-database{grid-column:auto}}
@media(max-width:720px){.audit-form-grid{grid-template-columns:1fr}.audit-item-top{grid-template-columns:1fr}.audit-list{max-height:none;overflow:visible}.audit-lane-nodes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.audit-lane-nodes{grid-template-columns:1fr}.audit-lane-head,.audit-ai-head{display:grid}.audit-lane-head span,.audit-ai-head span{text-align:left}}

/* ④ 卡片线条图标：currentColor 取色，与 accent 色条同步 */
.card-icon{flex:0 0 auto;display:inline-grid;place-items:center;width:46px;height:46px;border-radius:10px;border:1px solid rgba(28,40,39,.12);background:rgba(255,255,255,.7)}
.card-icon svg{display:block}
.principle-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.principle-head h3{margin:0}
.principle-card .card-icon{color:var(--teal)}
.principle-card.accent-2 .card-icon{color:var(--clay)}
.principle-card.accent-3 .card-icon{color:var(--blue)}
.principle-card.accent-4 .card-icon{color:var(--moss)}
.principle-card.accent-5 .card-icon{color:var(--plum)}
.principle-card.accent-6 .card-icon{color:var(--saffron)}
.dept-head{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.dept-head b{margin-bottom:0}
.dept-summary .card-icon{width:42px;height:42px}
.dept-summary:nth-child(1) .card-icon{color:var(--teal)}
.dept-summary:nth-child(2) .card-icon{color:var(--clay)}
.dept-summary:nth-child(3) .card-icon{color:var(--plum)}
.dept-summary:nth-child(4) .card-icon{color:var(--moss)}

/* ============================================================
   2026-07-06i 留言中央收集（Netlify Forms）配套样式
   .suggestion-box：#suggestions 全站建议表单（复用 .comment 结构，独立成卡）
   .comment-hint：留言框下"意见将汇总至研究团队"提示小字
   .sync-ok / .sync-pending：留言条目上报状态标记（已上报 ✓ / 仅本地保存）
   ============================================================ */
.suggestion-box{border:1px solid rgba(28,40,39,.14);border-radius:12px;background:rgba(250,248,241,.8);margin-top:14px}
.comment-hint{font-size:12px;color:var(--muted);margin-top:6px}
.sync-ok{color:#2c7a4b;font-weight:700;font-size:11px;margin-left:6px;white-space:nowrap}
.sync-pending{color:#a05a1a;font-weight:700;font-size:11px;margin-left:6px;white-space:nowrap}

/* ============================================================
   2026-07-06b 专家结构化评分 + 打包提交（评审篮）
   .rating-block：模块留言区内的评分行（三项星评 + 适配性单选 + 加入篮）
   .review-cart / .cart-pill / .cart-panel：右下角悬浮评审篮
   评分先入 localStorage 评审篮，"一次性提交全部"=1 条 expert-review-batch 表单（省额度）
   ============================================================ */
/* ---- 模块内评分行 ---- */
.rating-block{margin-top:12px;border:1px solid rgba(15,140,146,.18);background:rgba(15,140,146,.05);border-radius:8px;padding:11px 12px;display:grid;gap:8px}
.rating-title{font-size:12px;font-weight:900;color:#0c6a70}
.rating-stars{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rating-label{font-size:12px;color:#40504c;min-width:96px}
.rating-stars .stars{display:inline-flex;gap:2px}
.star{border:0;background:transparent;padding:0 1px;font-size:20px;line-height:1;color:rgba(28,40,39,.22);cursor:pointer}
.star.on{color:#e0a92e}
.star:hover{color:#e0a92e}
.rating-fit{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fit-opts{display:inline-flex;gap:6px;flex-wrap:wrap}
.fit-opt{border:1px solid rgba(28,40,39,.16);background:rgba(255,255,255,.82);border-radius:7px;padding:5px 10px;font-size:12px;font-weight:800;color:#40504c;cursor:pointer}
.fit-opt.on{background:var(--deep);color:#fff;border-color:var(--deep)}
.rating-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rating-add{min-height:36px;padding:7px 13px;font-size:13px;border:1px solid rgba(15,140,146,.3);background:rgba(255,255,255,.9);color:#0c6a70;font-weight:900}
.rating-add:hover{background:#fff}
.rating-tip{font-size:12px;font-weight:800}
.rating-tip.ok{color:#2c7a4b}
.rating-tip.warn{color:#a05a1a}

/* ---- 悬浮评审篮（右下角） ---- */
.review-cart{position:fixed;right:20px;bottom:20px;z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
/* 修复：类选择器的 display:flex 优先级压过 [hidden] 自带的 display:none，导致空篮也常驻显示、× 也关不掉。显式覆盖 [hidden] 态 */
.review-cart[hidden],.cart-panel[hidden]{display:none!important}
.cart-clear{border:1px solid rgba(28,40,39,.2);background:#fff;color:#50605d;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:800;cursor:pointer}
.cart-pill{border:0;border-radius:999px;background:var(--deep);color:#fff;font-weight:900;font-size:14px;padding:12px 18px;box-shadow:0 14px 34px rgba(12,26,27,.28);cursor:pointer;min-height:46px}
.cart-pill:hover{filter:brightness(1.08)}
.cart-panel{width:min(340px,calc(100vw - 40px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:#fbfaf6;border:1px solid rgba(28,40,39,.16);border-radius:12px;box-shadow:0 26px 70px rgba(12,26,27,.3);overflow:hidden}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#0c1a1b;color:#fff}
.cart-head b{font-size:16px;font-weight:900}
.cart-close{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;width:32px;height:32px;font-size:18px;line-height:1;cursor:pointer}
.cart-list{flex:1 1 auto;overflow-y:auto;padding:10px 12px;display:grid;gap:8px}
.cart-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(28,40,39,.12);background:#fff;border-radius:8px;padding:9px 10px}
.cart-item-main{min-width:0}
.cart-item-main b{display:block;font-size:13px;color:#101819}
.cart-scores{display:block;font-size:11px;color:#50605d;margin-top:3px}
.cart-fit{font-style:normal;color:#0c6a70;font-weight:800}
.cart-del{flex:0 0 auto;border:1px solid rgba(155,60,45,.28);background:rgba(155,60,45,.06);color:#8a2c1d;border-radius:7px;padding:5px 9px;font-size:12px;font-weight:800;cursor:pointer}
.cart-foot{border-top:1px solid rgba(28,40,39,.12);padding:12px;display:grid;gap:8px;background:rgba(250,248,241,.9)}
.cart-foot input{border:1px solid rgba(28,40,39,.16);border-radius:8px;padding:9px 10px;background:#fff;font-size:13px}
.cart-foot .btn.primary{width:100%;min-height:44px}
.cart-msg{font-size:12px;font-weight:800;min-height:1em}
.cart-msg.ok{color:#2c7a4b}
.cart-msg.warn{color:#a05a1a}

/* 手机端：胶囊右下角上抬避让底部安全区；浮层全屏化，不与顶部返回栏/搜索把手冲突 */
html.is-mobile .review-cart{right:14px;bottom:calc(16px + env(safe-area-inset-bottom))}
html.is-mobile .review-cart.open{left:0;right:0;bottom:0;top:0;z-index:118;align-items:stretch}
html.is-mobile .review-cart.open .cart-pill{display:none}
html.is-mobile .review-cart.open .cart-panel{width:100%;max-height:none;height:100%;border-radius:0;border:0}
html.is-mobile .cart-head{padding-top:calc(12px + env(safe-area-inset-top))}
@media(max-width:720px){
  .rating-label{min-width:0}
  .rating-stars,.rating-fit{gap:8px}
}

/* ===== 模块卡「3D 速览」：轴测渲染缩略图 + 空间参数速览条（填充等高卡片留白） ===== */
.scene-quick{margin-top:10px}
.sq-thumb{display:block;width:100%;height:auto;border-radius:10px;border:1px solid rgba(28,40,39,.12);background:#eef1f3;cursor:pointer;transition:filter .15s ease}
.sq-thumb:hover{filter:brightness(.95)}
.sq-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sq-chip{font-size:11px;font-weight:600;color:#50605d;border:1px solid rgba(28,40,39,.12);background:rgba(250,248,241,.8);border-radius:999px;padding:3px 9px;line-height:1.5}
.sq-chip.sq-area{color:#0c6a70;border-color:rgba(12,106,112,.25);background:rgba(12,106,112,.06);font-weight:800}
.sq-chip.sq-norm{color:#8a3c19;border-color:rgba(188,94,40,.28);background:rgba(188,94,40,.08);font-weight:850}
.sq-chip.sq-cost{color:#a05a1a;border-color:rgba(160,90,26,.25);background:rgba(160,90,26,.06);font-weight:800}

/* 2026-07-07 3D 全屏页移动端返回栏压缩：避免浏览器安全区与站内头部叠加出过宽顶栏 */
html.is-mobile .site-modal.is-max .site-modal-head{
  min-height:36px;
  padding-top:0;
  padding-bottom:0;
  gap:8px;
}
html.is-mobile .site-modal.is-max .site-modal-head .modal-close-btn{
  min-height:34px;
  padding-left:4px;
  padding-right:8px;
}
html.is-mobile .site-modal.is-max .site-modal-head>b{
  font-size:14px;
}
html.is-mobile .site-modal.is-max .legacy-model-link{
  min-height:34px;
  padding:5px 8px;
}

/* 2026-07-08 模块封面：3D 信息模型优先显示真实轴测/整层平面/交互图底，替代空房间 canvas 占位 */
.interactive-cover{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;padding:0;margin:0;background:#eef7f6;cursor:pointer;overflow:hidden;text-align:left;font:inherit;color:inherit}
.interactive-cover-img{display:block;width:100%;height:100%;object-fit:cover;filter:none!important}
.interactive-cover.generated .interactive-cover-img{object-fit:cover}
.interactive-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0) 48%,rgba(13,32,33,.36));pointer-events:none}
.interactive-cover-bar{position:absolute;left:10px;right:auto;bottom:10px;z-index:2;display:flex;align-items:center;gap:7px;max-width:calc(100% - 130px);pointer-events:none}
.interactive-cover-bar b,.interactive-cover-bar span{display:inline-flex;align-items:center;min-height:26px;border-radius:7px;padding:4px 8px;font-size:11px;line-height:1;font-weight:900;white-space:nowrap;box-shadow:0 8px 24px rgba(14,24,25,.10)}
.interactive-cover-bar b{background:rgba(12,26,27,.88);color:#fff}
.interactive-cover-bar span{max-width:145px;overflow:hidden;text-overflow:ellipsis;background:rgba(255,255,255,.88);color:#0c6a70}
.visual .badge-row,.visual .model-tip{z-index:4}
@media(max-width:720px){.interactive-cover-bar{max-width:calc(100% - 108px)}.interactive-cover-bar span{display:none}}

.sq-normcheck,.module-front-normcheck{margin-top:12px;border-top:1px solid rgba(188,94,40,.18);padding-top:10px;display:grid;gap:6px;color:#6e3a1f;font-size:0.92rem;line-height:1.45}
.sq-normcheck b,.module-front-normcheck b{font-size:0.88rem;color:#9a481d;letter-spacing:0;font-weight:900}
.sq-normcheck span,.module-front-normcheck span{display:block}
.module-front-normcheck{max-width:52rem}

.audit-markup-upload{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.audit-markup-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.audit-markup-file-state{flex:1;min-width:260px;color:var(--muted);font-size:12px;line-height:1.45}
.audit-markup-drawing-note{position:absolute;left:14px;right:14px;bottom:14px;z-index:3;border:1px solid rgba(182,91,34,.24);border-radius:8px;background:rgba(255,250,244,.92);box-shadow:0 12px 34px rgba(14,24,25,.12);padding:10px 12px;color:#6e3a1f;pointer-events:none}
.audit-markup-drawing-note b{display:block;color:#9a481d;font-size:13px}.audit-markup-drawing-note span{display:block;margin-top:3px;font-size:12px;line-height:1.45}

/* 2026-07-09 审图 AI 结果结构化：强条、条款、图中问题、修改建议分列显示 */
.audit-ai-result{
  margin-top:9px;
  border:1px solid rgba(116,85,135,.16);
  border-radius:8px;
  background:rgba(250,248,252,.82);
  overflow:hidden;
}
.audit-ai-result-head{
  padding:7px 9px;
  background:rgba(116,85,135,.10);
  color:#4d315d;
  font-size:12px;
  line-height:1.2;
  font-weight:950;
}
.audit-ai-result dl{
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  gap:0;
  margin:0;
  font-size:12px;
  line-height:1.45;
}
.audit-ai-result dt,
.audit-ai-result dd{
  padding:7px 9px;
  border-top:1px solid rgba(116,85,135,.10);
}
.audit-ai-result dt{
  color:#704060;
  font-weight:950;
  background:rgba(255,255,255,.52);
}
.audit-ai-result dd{
  margin:0;
  color:#34443f;
}
.audit-item.core .audit-ai-result{border-color:rgba(182,91,34,.22);background:rgba(255,248,242,.88)}
.audit-item.core .audit-ai-result-head{background:rgba(182,91,34,.12);color:#8a3d15}
.audit-markup-drawing-note.ok{border-color:rgba(15,140,146,.24);background:rgba(240,250,249,.94);color:#1d5f62}
.audit-markup-drawing-note.ok b{color:#0c6a70}
@media(max-width:720px){.audit-ai-result dl{grid-template-columns:1fr}.audit-ai-result dt{padding-bottom:2px}.audit-ai-result dd{padding-top:2px}}
/* 2026-07-09 强条徽章 + 定量硬指标高亮（规范审核卡 / 条文弹卡 / 审图参数表） */
.mand-badge{display:inline-block;flex:0 0 auto;background:#d23b30;color:#fff;font-size:11px;font-weight:800;line-height:1;padding:3px 7px;border-radius:6px;letter-spacing:.3px;white-space:nowrap;vertical-align:middle}
.clause-card.mandatory{border-left:4px solid #d23b30;background:linear-gradient(180deg,rgba(210,59,48,.06),rgba(255,255,255,.68))}
.clause-card.mandatory blockquote{border-left-color:#d23b30;background:rgba(210,59,48,.07)}
.spec-card.mandatory{border-left:4px solid #d23b30;background:rgba(210,59,48,.05)}
.clause-head,.spec-card>div{flex-wrap:wrap}
.clause-head>a,.spec-card>div>a{margin-left:auto}
.spec-card ul li.mand-li{background:linear-gradient(90deg,rgba(210,59,48,.12),transparent 72%);border-radius:5px;padding:2px 5px;margin-left:-4px}
.mand-li .mand-badge{margin-right:6px;transform:scale(.9);transform-origin:left center}
/* 定量硬指标：数值+单位橙色加粗高亮 */
.quant-hi{background:rgba(245,166,35,.24);color:#8a3d15;font-weight:800;border-radius:3px;padding:0 2px}
