*{box-sizing:border-box} :root{--navy:#142c3a;--ink:#203440;--muted:#788792;--line:#e4e9ed;--green:#15806e;--mint:#eaf6f1;--bg:#f3f6f8;--red:#c44840;--amber:#ab7622}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #65b4e1;outline-offset:3px}button{border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink);padding:9px 15px;transition:background .15s}button:hover{background:#f1f6f5}button.primary{background:var(--green);color:white;border-color:var(--green)}button.primary:hover{background:#116e5f}button.danger{color:var(--red)}button.link{border:0;background:none;color:var(--green);padding:2px 5px}button.small{padding:5px 10px;font-size:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:225px;background:var(--navy);color:#d9e6eb;padding:30px 18px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:12px;align-items:center;margin:0 8px 42px;font-size:23px;font-weight:700;letter-spacing:1px}.brand small{display:block;font-size:9px;font-weight:400;letter-spacing:1.8px;color:#9cb3be}.brandmark{width:36px;height:40px;display:grid;place-items:center;font-size:28px;color:#70c2af;font-style:italic;border:2px solid #70c2af;border-radius:5px}.side-label{font-size:11px;letter-spacing:1px;color:#859fab;margin:0 14px 14px}.lower{margin-top:35px}nav{display:grid;gap:8px}nav button{display:flex;align-items:center;gap:12px;border:0;text-align:left;background:none;color:#bcd0da;font-size:18px;padding:12px 16px}nav button span{font-size:14px}nav button.active{background:#254b58;color:#fff;border-left:3px solid #72cbb0;padding-left:13px}nav button:hover,.side-extra:hover{background:#24404d}nav i{margin-left:auto;background:#cb8351;color:white;border-radius:4px;padding:0 6px;font:11px sans-serif}.side-extra{background:none;border:0;color:#adc3ce;text-align:left;font-size:12px;padding:11px 15px}.side-bottom{margin-top:auto;font-size:12px;color:#b4c5cd;padding:20px 10px 0;border-top:1px solid #2c444f}.side-bottom small{color:#77929f;font-size:10px}.online{display:inline-block;width:6px;height:6px;border-radius:50%;background:#71c4a9;margin-right:6px}.workspace{margin-left:225px}header{height:78px;background:#fff;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:10px}.crumb{font-size:12px;color:var(--muted)}.crumb span{margin:0 12px;color:#bcc7ce}.crumb b{font-weight:500;color:var(--ink)}.header-actions{display:flex;align-items:center;gap:16px}.demo-label{font-size:11px;color:#996b26;border:1px solid #ead8b5;border-radius:4px;padding:3px 7px}.role-label{font-size:11px;color:var(--muted)}.role-label select{font-size:12px;margin-left:6px;padding:5px;max-width:180px;background:#fff;border:0;color:var(--ink)}.avatar{border-radius:50%;padding:0;width:30px;height:30px;background:#eef3f5;font-weight:bold}.demo-strip{padding:8px 32px;background:#f5f8fa;display:flex;justify-content:space-between;align-items:center;color:#6b7b88;font-size:11px;border-bottom:1px solid var(--line)}.demo-strip button{border:0;padding:0;background:none;color:#557886;font-size:11px}main{padding:28px 32px 32px;min-height:calc(100vh - 170px)}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);font-weight:600;margin-bottom:6px}h1{font-size:25px;letter-spacing:.5px;margin:0;font-weight:650}h2{font-size:15px;margin:0;font-weight:600}h3{font-size:13px;margin:0 0 12px}.subtitle{font-size:12px;color:var(--muted);margin-top:7px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:9px;padding:20px 22px;position:relative;text-align:left}.metric strong{display:block;font-size:33px;font-weight:600;letter-spacing:-1px;margin:8px 0 3px}.metric .label{font-size:12px;color:#71808b}.metric small{font-size:11px;color:var(--muted)}.metric .symbol{position:absolute;right:18px;top:20px;background:#f1f5f6;width:28px;height:28px;text-align:center;line-height:28px;border-radius:6px;color:var(--green)}.metric.alert strong{color:#bb7443}.metric.good strong{color:var(--green)}.grid2{display:grid;grid-template-columns:1.45fr 1fr;gap:20px;margin-bottom:20px}.card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:22px;margin-bottom:20px;min-width:0}.grid2>.card{margin:0}.card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:21px}.card-head small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.legend{color:var(--muted);font-size:10px;white-space:nowrap}.legend i{display:inline-block;width:8px;height:8px;background:var(--green);margin-right:6px}.chart{height:220px;width:100%;overflow:visible}.chart text{font-size:10px;fill:#87949d}.chart .gridline{stroke:#edf0f2;stroke-dasharray:4}.chart-bar{fill:#1d8e7c}.chart-bad{fill:#dbad78}.bar-row{display:grid;grid-template-columns:115px 1fr 28px;gap:13px;align-items:center;margin:20px 0;font-size:12px}.bar-track{height:9px;background:#f1f4f6;border-radius:3px;overflow:hidden}.bar-track div{height:100%;background:#7a9cae;border-radius:3px}.bar-row:first-of-type .bar-track div{background:#dba273}.summary-note{color:var(--muted);font-size:11px;border-top:1px solid var(--line);padding-top:13px;margin-top:15px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar input{min-width:240px}input,select,textarea{border:1px solid #dce4e9;background:#fff;border-radius:5px;padding:9px 11px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#6caa9e;box-shadow:0 0 0 2px #e5f3ef}textarea{resize:vertical;min-height:85px;width:100%}label.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#687d8a}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field .help{font-size:10px;color:#8997a0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{text-align:left;background:#f6f8fa;font-size:11px;font-weight:500;color:#7e8d98;padding:12px 15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:14px 15px;border-bottom:1px solid #edf0f2}tr:last-child td{border-bottom:0}td strong{display:block;font-size:12px;font-weight:500}td small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.mono{font-family:Consolas,monospace;font-size:11px}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;font-size:10px;white-space:nowrap;background:#edf2f5;color:#698193}.badge.green{background:#e9f5ef;color:#227b63}.badge.red{background:#fbeeea;color:#c16950}.badge.amber{background:#fcf4e5;color:#aa7a31}.badge.blue{background:#eaf2f8;color:#5786a8}.quiet{color:var(--muted);font-size:12px}.inspection-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:20px 0}.info-grid span{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}.info-grid b{font-size:12px;font-weight:500}.stepper{display:flex;margin:5px 0 23px;gap:0}.stepper>div{flex:1;color:#8d9ba5;position:relative;font-size:11px;border-bottom:2px solid #e7edef;padding-bottom:12px}.stepper>div.done{color:var(--green);border-color:var(--green)}.stepper i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#edf2f4;margin-right:7px}.stepper .done i{background:#e0f0e9}.notice{padding:12px 15px;background:#f6f9fa;border:1px solid #e7eef1;border-radius:5px;color:#67808c;font-size:11px;margin:15px 0}.notice.warning{background:#fff8ed;border-color:#f0dfc4;color:#9a702e}.notice.success{background:#eff9f3;border-color:#d5e9de;color:#338268}.inspection-table input{width:100px;padding:7px 9px}.inspection-table select{width:110px;padding:7px 9px}.inspection-table th,.inspection-table td{padding:13px 10px}.required{color:var(--red);margin-left:3px}.upload{border:1px dashed #bad1d6;border-radius:6px;text-align:center;padding:26px 15px;background:#f8fbfb;color:#688692;cursor:pointer;display:block}.upload input{display:none}.upload b{display:block;font-size:24px;font-weight:300}.upload small{font-size:10px;display:block;margin-top:7px}.image-preview{max-width:100%;max-height:160px;border-radius:4px}.facts{display:grid;gap:15px;font-size:11px}.facts>div{display:flex;justify-content:space-between;gap:8px}.facts span{color:var(--muted)}.reviewbox{margin-top:20px;display:flex;gap:10px;align-items:flex-start;font-size:12px}.reviewbox input{margin-top:4px}.bottom-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);gap:12px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:24px;margin-bottom:20px}.tabs button{border:0;background:none;border-radius:0;padding:0 0 12px;color:var(--muted)}.tabs button.active{color:var(--green);border-bottom:2px solid var(--green)}.issue-grid{display:grid;grid-template-columns:320px 1fr;gap:20px}.issue-item{padding:17px;border:1px solid var(--line);border-radius:7px;margin-bottom:12px;background:#fff;cursor:pointer;width:100%;text-align:left}.issue-item.active{border-color:#68a696;box-shadow:0 0 0 1px #68a696;background:#f8fcfa}.issue-item .row{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.issue-item strong{font-size:13px;display:block;margin-bottom:6px}.issue-item small{font-size:11px;color:var(--muted)}.timeline{border-left:1px solid #d9e6df;padding-left:18px;margin:15px 0 0 6px}.timeline>div{position:relative;margin:16px 0;font-size:12px}.timeline>div:before{position:absolute;content:'';width:7px;height:7px;left:-22px;top:6px;border-radius:50%;background:#70a18f}.timeline small{display:block;color:var(--muted);font-size:10px}.empty{padding:35px;text-align:center;color:#8697a0;font-size:12px}.report-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px}.report-list{max-height:680px;overflow:auto}.report-page{background:#fff;border:1px solid #e2e7ea;padding:38px 40px;position:relative}.report-page h2{text-align:center;font-size:20px;margin:8px 0}.report-page .report-sub{text-align:center;color:#7b8b96;font-size:12px;margin-bottom:23px}.report-watermark{text-align:center;color:#b07855;font-size:11px;letter-spacing:2px;border:1px solid #eadcd0;padding:5px;margin:16px auto;max-width:330px}.report-page table{white-space:normal}.report-footer{display:flex;justify-content:space-between;margin-top:24px;padding-top:15px;border-top:1px solid var(--line);font-size:12px}.receipt{padding:16px;margin-top:20px;background:#f7faf9;border-radius:6px;font-size:12px}.receipt .actions{margin-top:12px}footer{padding:15px 32px 22px;color:#91a0aa;font-size:10px;display:flex;align-items:center;gap:8px}footer button{margin-left:auto;font-size:10px;border:0;background:none;color:#91a0aa;padding:0}dialog{border:0;border-radius:12px;max-width:850px;width:calc(100vw - 40px);padding:0;box-shadow:0 25px 90px #132c3b30;color:var(--ink)}dialog::backdrop{background:#122b3b70;backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line)}.modal-body{padding:25px 28px;max-height:74vh;overflow:auto}.modal-body p{font-size:13px;line-height:1.8}.modal-body a{color:var(--green);text-decoration:none}.modal-body h3{margin-top:22px}.source{border-bottom:1px solid var(--line);padding:12px 0}.source small{color:var(--muted);display:block;font-size:11px}.guide-step{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.guide-step b{font-size:22px;color:#90b7a9}.guide-step strong{display:block;font-size:14px}.guide-step p{margin:5px 0;font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:30px;left:calc(50% + 100px);transform:translateX(-50%);background:#1b3e4e;color:#fff;padding:13px 22px;border-radius:7px;box-shadow:0 5px 20px #193a4028;z-index:50;opacity:0;pointer-events:none;font-size:13px;max-width:80vw;transition:opacity .2s}#toast.show{opacity:1}#toast.error{background:#a95647}.wrap{white-space:normal}.progress{display:flex;align-items:center;gap:12px;font-size:12px;margin-top:16px}.progress .bar-track{flex:1}.progress .bar-track div{background:var(--green)}.check-list{list-style:none;padding:0;margin:0}.check-list li{font-size:12px;padding:9px 0;border-bottom:1px solid #eef1f3}.check-list li::before{content:'✓';color:var(--green);margin-right:8px}.filter-note{font-size:11px;color:#8b9ba5;margin:12px 0}.wide{grid-column:1/-1}
@media(max-width:1150px){.sidebar{width:190px;padding:26px 12px}.brand{font-size:20px}.workspace{margin-left:190px}main{padding:24px}header{padding:0 24px}.inspection-grid{grid-template-columns:minmax(0,1fr) 250px}.issue-grid{grid-template-columns:270px 1fr}.report-grid{grid-template-columns:230px 1fr}.report-page{padding:25px}.metrics{gap:12px}.metric{padding:18px 15px}.grid2{grid-template-columns:1.2fr 1fr}.info-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.sidebar{width:70px;padding:22px 7px}.brand{margin:0 auto 35px;justify-content:center}.brand>div,.side-label,.side-extra,.side-bottom,nav span,nav i{display:none}.brandmark{width:33px}nav button{justify-content:center;padding:12px!important}.workspace{margin-left:70px}.crumb{display:none}header{justify-content:flex-end;height:63px}.demo-strip{padding:8px 18px;gap:12px}.demo-strip span{max-width:70%}.metrics{grid-template-columns:repeat(2,1fr)}.grid2,.inspection-grid,.issue-grid,.report-grid{grid-template-columns:1fr}.issue-list,.report-list{display:flex;gap:12px;overflow:auto;max-height:190px}.issue-item{min-width:230px}.report-page{padding:25px}.page-title{align-items:flex-start}.page-title .actions{justify-content:flex-end}.role-label select{max-width:140px}.info-grid{grid-template-columns:repeat(2,1fr)}main{padding:20px 16px}h1{font-size:22px}#toast{left:50%}.fields{grid-template-columns:1fr}.stepper{overflow:auto}.stepper>div{min-width:100px}footer{padding:15px;flex-wrap:wrap}.card{padding:18px}.inspection-table input{width:90px}}
@media print{body{background:#fff}.sidebar,header,.demo-strip,footer,.page-title,.report-list,.receipt,#toast,dialog,.report-page button{display:none!important}.workspace{margin:0}main{padding:0}.report-grid{display:block}.report-page{border:0;padding:0}.report-page table{font-size:10pt}.report-watermark{color:#555}.report-page h2{font-size:18pt}@page{size:A4;margin:18mm}}

.report-tools input{min-width:280px;max-width:100%;flex:1}.report-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #65b4e1;outline-offset:2px}
@media print{.report-tools{display:none!important}}
@media(max-width:600px){nav button{flex-direction:column;gap:3px;min-height:63px}nav button span{display:block;font-size:10px;white-space:nowrap}.page-title{display:block}.page-title>.actions{margin-top:14px;justify-content:flex-start}.page-title>.actions button{flex:1;white-space:nowrap}.demo-label{white-space:nowrap}.header-actions{gap:8px}.report-tools input{min-width:0;width:100%}}
@media(max-width:600px){nav button{padding:8px 0!important}nav button.active{padding-left:0!important}}
