/* Reuses guanmu-portal palette and primary/quiet/badge control conventions.
   Brand facts checked through MCP 2026.09.11.1+4f0b2833e037. */
:root{--brand-core:#759F2F;--brand-deep:#4F6F20;--expert:#0056D2;--alert:#F5A623;--ink:#1A1A1A;--body:#333333;--muted:#5C6254;--line:#DDE2D5;--accent:#EDF3E3;--warning-soft:#FFF4DF;--warning-ink:#725015;--surface:#F7F8F5;--danger:#9B3535;--danger-soft:#FFF1EF}
*{box-sizing:border-box}body{margin:0;color:var(--body);background:#fff;font:14px/1.65 Inter,"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--expert);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink)}h1{font-size:26px;line-height:1.4;margin-bottom:6px}h2{font-size:18px;margin-bottom:12px}h3{font-size:15px;margin-bottom:8px}p{margin-bottom:12px}small,.caption{font-size:12px;color:var(--muted)}svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}
.environment{padding:7px 24px;background:var(--warning-soft);color:var(--warning-ink);display:flex;justify-content:center;gap:12px;font-size:12px;border-bottom:1px solid #EEDAB4}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:20px}.brand{display:flex;align-items:center;gap:11px}.brand small{display:block;font-size:12px;line-height:1.4;color:var(--muted)}.brand strong{display:block;font-size:20px;color:var(--ink);line-height:1.5}.product-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--accent);border-radius:8px;color:var(--brand-deep)}.product-mark svg{width:26px;height:26px}.role-control{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}select,input,textarea{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:9px 11px;min-height:44px}select{max-width:100%}.role-control select{font-size:13px;min-height:40px}.app-shell{display:grid;grid-template-columns:192px minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - 113px)}.sidebar{border-right:1px solid var(--line);padding:26px 16px;display:flex;flex-direction:column;gap:56px;background:#FCFDFB}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:7px;color:var(--muted);min-height:46px}.sidebar nav a:hover{background:var(--surface);color:var(--ink)}.sidebar nav a.active{background:var(--accent);color:var(--brand-deep);font-weight:650}.nav-count{margin-left:auto;font-size:11px}.sidebar-note{padding:0 12px;color:var(--muted);font-size:12px}.sidebar-note strong{font-size:12px;font-weight:600}.sidebar-note p{margin:8px 0 20px}.sidebar-note span{color:#737B68}main{min-width:0;padding:28px 32px 100px;max-width:1408px;width:100%}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-head p{color:var(--muted);margin:0;max-width:700px}.head-actions{display:flex;gap:8px;flex-shrink:0;padding-top:3px}.primary,.quiet,.text-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 16px;border:1px solid transparent;border-radius:7px;font-size:13px;font-weight:600;line-height:1.5}.primary{background:var(--brand-deep);color:#fff}.primary:hover:not(:disabled){background:#405A19}.quiet{background:#fff;border-color:var(--line);color:var(--body);font-weight:500}.quiet:hover:not(:disabled){background:var(--accent);color:var(--brand-deep)}.text-button{background:none;color:var(--expert);padding:8px 4px;font-weight:500}.text-button:hover{text-decoration:underline}.danger-button{background:#fff;border-color:#DCAFA7;color:var(--danger)}.badge{display:inline-flex;align-items:center;font-size:11px;line-height:1.5;padding:3px 7px;border:1px solid var(--line);border-radius:5px;white-space:nowrap;font-weight:500;background:#fff;color:var(--muted)}.badge.warn{background:var(--warning-soft);border-color:#EDD9B3;color:var(--warning-ink)}.badge.good{background:var(--accent);border-color:#C6D5B2;color:var(--brand-deep)}.badge.danger{background:var(--danger-soft);border-color:#E8C7C0;color:var(--danger)}.badge.info{background:#EEF4FF;color:#164E9B;border-color:#CEDCF1}
.notice{display:flex;gap:10px;background:var(--warning-soft);border-left:3px solid var(--alert);padding:12px 15px;border-radius:0 7px 7px 0;font-size:13px;margin-bottom:20px;color:var(--warning-ink)}.notice p{margin:0}.notice.neutral{background:var(--surface);border-color:var(--brand-core);color:var(--muted)}.toolbar{display:flex;gap:12px;align-items:center;margin:18px 0 12px;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:220px}.search-box svg{position:absolute;left:13px;top:12px;color:var(--muted)}.search-box input{width:100%;padding-left:42px}.filter-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.list-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:12px;color:var(--muted)}.meta-chip{padding:2px 8px;background:var(--surface);border-radius:4px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fff}table{width:100%;border-collapse:collapse;text-align:left}th{background:var(--surface);font-weight:550;color:var(--muted);font-size:12px;padding:11px 14px;white-space:nowrap}td{padding:14px;border-top:1px solid var(--line);vertical-align:top;font-size:13px}tbody tr:hover{background:#FAFCF7}.catalog-table{min-width:750px}.catalog-table .name-cell{min-width:240px;max-width:380px}.code-button{padding:0;min-height:28px;border:0;background:none;color:var(--brand-deep);font-weight:700;font-size:14px;text-align:left}.code-button:hover{text-decoration:underline}.product-name{margin:3px 0 4px;font-size:12px;line-height:1.6;color:var(--muted)}.cell-sub{display:block;font-size:11px;color:var(--muted);margin-top:5px}.cell-pair{white-space:nowrap}.check-cell{width:42px;padding:15px 9px 15px 14px}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--brand-deep);margin:5px 0}.empty{padding:40px 20px;text-align:center;border:1px dashed var(--line);border-radius:9px;color:var(--muted)}.empty h2{margin-bottom:8px}.source-foot{font-size:11px;color:var(--muted);margin-top:14px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:24px 0 12px}.section-title h2{margin:0}.panel{border:1px solid var(--line);border-radius:9px;padding:22px;background:#fff}.two-col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);gap:22px}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px}.info-grid dt{color:var(--muted);font-size:12px;margin-bottom:5px}.info-grid dd{margin:0;font-size:14px;overflow-wrap:anywhere}.details-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.details-title h2{font-size:23px;margin:4px 0 8px}.details-title p{color:var(--muted);font-size:13px}.fact-name{max-width:680px}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:18px 0}.tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:10px 0;color:var(--muted);min-height:44px}.tabs button.active{border-bottom-color:var(--brand-deep);color:var(--brand-deep);font-weight:600}.detail-note{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.small-label{font-size:12px;color:var(--muted);margin-bottom:8px}.file-empty{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--surface);border-radius:7px;padding:16px}.file-empty p{margin:0}.file-empty small{display:block}.question-list{display:grid;gap:12px}.question-item{border:1px solid var(--line);border-radius:8px;padding:16px}.question-top{display:flex;gap:10px;align-items:center;margin-bottom:9px}.question-top h3{margin:0}.question-item p{font-size:13px;margin-bottom:8px}.question-item small{display:block}.decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.decision-card{border:1px solid var(--line);border-radius:9px;padding:20px}.decision-card h2{font-size:16px;margin-bottom:10px;display:flex;gap:10px;align-items:center}.decision-card p{font-size:13px;min-height:42px}.decision-card .why{font-size:12px;color:var(--muted);min-height:38px}.decision-input{display:grid;gap:9px}.decision-input label{font-size:12px;color:var(--muted)}textarea{width:100%;resize:vertical;min-height:75px}.decisions-summary{font-size:13px;color:var(--muted)}details.permission-panel{margin-top:20px;border:1px solid var(--line);border-radius:9px;padding:16px 20px}summary{cursor:pointer;min-height:30px;font-weight:600}.permission-panel table{min-width:650px}.permission-panel .table-wrap{margin-top:12px}.steps{display:flex;align-items:center;gap:8px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:22px;flex-wrap:wrap}.step{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.step span{border:1px solid var(--line);border-radius:50%;width:24px;height:24px;display:grid;place-items:center;background:#fff}.step.active{color:var(--brand-deep);font-weight:600}.step.active span{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}.step-line{width:26px;height:1px;background:var(--line)}.form-stack{display:grid;gap:16px}.form-stack label{display:grid;gap:6px;font-size:13px}.form-stack small{font-weight:400}.form-stack input{width:100%}.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px}.timeline{list-style:none;padding:0;margin:0}.timeline li{position:relative;padding:0 0 20px 20px;border-left:1px solid var(--line);font-size:12px}.timeline li:before{content:"";position:absolute;left:-4px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--brand-core)}.timeline li:last-child{padding-bottom:0}.timeline strong{display:block;color:var(--body)}.timeline p{margin:4px 0;color:var(--muted)}.review-value{white-space:pre-wrap;overflow-wrap:anywhere}.permission-note{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:15px;margin:20px 0 0}.success{background:var(--accent);border:1px solid #C6D5B2;padding:16px;border-radius:7px;color:var(--brand-deep)}.issue-controls{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.issue-controls button.active{border-color:var(--brand-deep);color:var(--brand-deep);background:var(--accent)}.issue-summary{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.issue-summary strong{font-size:20px;color:var(--ink)}.issue-summary span{font-size:12px;color:var(--muted)}.issue-summary>div{padding-right:26px;border-right:1px solid var(--line)}.issue-summary>div:last-child{border:0}.compare-table{table-layout:fixed;min-width:600px}.compare-table th:first-child{width:130px}.compare-table td,.compare-table th{overflow-wrap:anywhere;white-space:normal}.compare-table .different td{background:var(--warning-soft)}.compare-table th:first-child small{display:block;color:var(--warning-ink);font-weight:400}.compare-code{font-weight:700;color:var(--brand-deep)}#compare-bar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;max-width:calc(100% - 32px);background:#fff;border:1px solid var(--brand-deep);box-shadow:0 6px 24px #1a1a1a15;border-radius:10px;padding:12px 16px;z-index:10}#compare-bar>span{font-size:13px;white-space:nowrap}#toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);z-index:100;background:var(--ink);color:#fff;border-radius:7px;padding:12px 20px;font-size:13px;max-width:calc(100% - 28px)}dialog{width:min(940px,calc(100% - 36px));max-height:90vh;border:1px solid var(--line);border-radius:12px;padding:0;color:var(--body);box-shadow:0 20px 60px #1a1a1a20}dialog::backdrop{background:#1a1a1a55}#dialog-body{padding:26px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}.dialog-heading h2{margin:0;font-size:22px}.close-button{width:40px;min-height:40px;padding:0;font-size:22px}.dialog-footer{margin-top:22px;display:flex;justify-content:flex-end;gap:10px}.progress-note{font-size:12px;color:var(--muted);margin:12px 0 0}.mobile-field{display:none}.role-scope{font-size:12px;color:var(--muted);margin-top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(min-width:1500px){main{padding-left:42px;padding-right:42px}}
@media(max-width:1100px){.app-shell{grid-template-columns:168px minmax(0,1fr)}main{padding:24px 24px 100px}.sidebar{padding:24px 10px}.two-col{grid-template-columns:1fr}.page-head{flex-wrap:wrap}.head-actions{padding:0}.decision-grid{grid-template-columns:1fr}}
@media(max-width:700px){body{font-size:14px}.environment{padding:7px 15px;display:block;font-size:11px}.environment strong{margin-right:8px}.topbar{padding:12px 16px;height:auto;min-height:74px;gap:12px;flex-wrap:wrap}.brand strong{font-size:18px}.role-control{margin-left:auto;gap:6px}.role-control label{display:none}.role-control select{max-width:208px;font-size:12px}.product-mark{width:34px;height:34px}.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:4px 10px;display:block}.sidebar nav{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.sidebar nav a{padding:10px 4px;font-size:12px;justify-content:center;gap:0;white-space:nowrap}.sidebar nav svg,.sidebar-note,.nav-count{display:none}main{padding:20px 16px 110px}h1{font-size:23px}.page-head{margin-bottom:16px;gap:12px}.page-head p{font-size:12px}.notice{font-size:12px;padding:10px 12px}.toolbar{gap:10px}.search-box{flex-basis:100%;min-width:0}.filter-label{flex:1}.filter-label select{flex:1}.list-meta{align-items:flex-start;flex-wrap:wrap}.catalog-table{min-width:0;display:block}.catalog-table thead{display:none}.catalog-table tbody{display:block}.catalog-table tr{display:grid;grid-template-columns:30px minmax(0,1fr);gap:0 5px;padding:12px;border-top:1px solid var(--line)}.catalog-table tr:first-child{border-top:0}.catalog-table td{border:0;padding:0}.catalog-table .check-cell{grid-column:1;grid-row:1 / span 3;width:auto}.catalog-table .name-cell{grid-column:2;min-width:0;max-width:none}.catalog-table .config-cell{grid-column:2;font-size:12px;display:flex;gap:14px;margin:6px 0}.catalog-table .status-cell{grid-column:2;display:flex;gap:8px;align-items:center;margin-top:6px}.catalog-table .source-cell{display:none}.mobile-field{display:inline;color:var(--muted);font-size:11px;margin-right:5px}.cell-sub{margin-top:2px}.catalog-table .cell-pair{white-space:normal}.catalog-table .status-cell .cell-sub{display:inline;margin:0}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{padding:16px}.decision-card{padding:16px}.decision-card p,.decision-card .why{min-height:0}.issue-summary{gap:12px}.issue-summary>div{padding-right:14px}.issue-summary strong{font-size:18px}.issue-summary span{font-size:11px;display:block}.two-col{gap:14px}dialog{width:calc(100% - 20px);max-height:94vh}#dialog-body{padding:18px}.dialog-heading h2{font-size:19px}.tabs{gap:18px}.tabs button{font-size:13px}.file-empty{align-items:flex-start;flex-direction:column}.head-actions{flex-wrap:wrap}#compare-bar{gap:10px;bottom:12px;padding:10px;width:calc(100% - 24px);justify-content:space-between}#compare-bar>span{font-size:12px;white-space:normal}#compare-bar .primary,#compare-bar .quiet{padding:8px 12px}.steps{padding:12px;gap:5px}.step-line{width:12px}.step{font-size:11px;gap:5px}.step span{width:22px;height:22px}.permission-panel{padding:12px!important}.details-title{gap:10px}.details-title h2{font-size:21px}}
.two-col>*{min-width:0}.form-stack label{min-width:0}.form-stack select{width:100%;min-width:0}.source-foot{overflow-wrap:anywhere}.info-grid dl{margin:0}
@media(max-width:1100px){.two-col{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
