:root{color-scheme:light;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:#f7f7f7;color:#231f20;line-height:1.5;--red: #b42318;--red-dark: #8f1714;--red-soft: #fff1f0;--border: #e7e2e1;--muted: #746c6b}*{box-sizing:border-box}body{margin:0;overflow-x:hidden}#root{max-width:100%;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.customer-shell{grid-template-columns:1fr}.sidebar{background:var(--red-dark);color:#fff;padding:22px 18px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand-mark,.metric-icon,.scan-icon{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:#ffffff29;color:#fff}.brand strong,.brand span{display:block}.brand span{color:#ffffffb3;font-size:13px}nav{display:grid;gap:8px}.nav{border:0;color:#ffffffb8;background:transparent;display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:8px;text-align:left}.nav.active,.nav:hover{background:#fff;color:var(--red-dark)}.content{padding:26px 32px;max-width:1440px;width:100%;min-width:0}.topbar,.section-actions,.mode-bar,.panel-title,.form-header,.item-heading,.detail-head,.inspection-item{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar{margin-bottom:24px}.topbar p,.topbar h1,.panel-title h2,.detail-head h2,.scan-panel h2{margin:0}.topbar p,.panel-title span,.section-actions p,.scan-panel p,td span,.info span,.item-card p{color:#60717d}.topbar h1{font-size:26px;line-height:1.25}.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric,.panel,.item-card,.form-panel,.scan-panel,.detail-panel,.qr-dialog{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 10px #3f1e1b0a}.metric{padding:16px;display:flex;gap:14px;align-items:center}.metric.warn .metric-icon{background:#fff4d6;color:#9a6700}.metric .metric-icon,.scan-icon{background:var(--red-soft);color:var(--red)}.metric span,.metric strong{display:block}.metric strong{font-size:24px}.panel,.form-panel,.scan-panel,.detail-panel{padding:18px}.danger-panel{border-color:#f0c8c0}.warning-panel{border-color:#ead8a2}.primary-button,.secondary-button,.icon-button{border:0;border-radius:8px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px}.primary-button{background:var(--red);color:#fff}.primary-button:hover{background:var(--red-dark)}.secondary-button{background:#f3f1f1;color:#342e2d}.icon-button{width:40px;padding:0;background:#f3f1f1;color:#4d4544}.alert{background:#fff2ec;color:#9a351f;border:1px solid #f1c4b6;border-radius:8px;padding:12px 14px;display:flex;gap:8px;align-items:center;margin-bottom:16px}.loading,.empty{background:#fff;border:1px dashed #ccd8dd;padding:24px;border-radius:8px;color:#60717d;text-align:center}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.item-card{padding:16px}.overview-card,.project-panel{background:#fff;border:1px solid #e1e7eb;border-radius:8px;box-shadow:0 8px 28px #1121280f}.overview-head{width:100%;border:0;background:transparent;padding:16px;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:14px}.overview-head h2,.overview-head span{margin:0;display:block}.overview-head span{color:#60717d}.project-stack{display:grid;gap:14px;padding:0 16px 16px}.project-panel{box-shadow:none;padding:14px}.project-panel h3{margin:0}.summary-tags{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.summary-group{border:1px solid #edf1f3;border-radius:8px;padding:10px;background:#fafcfc}.summary-group span,.summary-group strong{display:block}.summary-group span{color:#60717d;font-size:13px;margin-bottom:4px}.summary-group strong{font-size:14px;font-weight:600}.item-card h3{margin:0;font-size:18px}.item-heading span,.status{background:var(--red-soft);color:var(--red);border-radius:999px;padding:4px 10px;white-space:nowrap;font-size:13px}.item-card-actions,.table-actions,.structure-actions{display:flex;align-items:center;gap:8px}.danger-icon{color:var(--red);background:var(--red-soft)}.detail-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf1f3;padding-top:9px;margin-top:9px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.field{display:grid;gap:6px}.field span{font-size:13px;color:#52636e}.field em{color:#b9432b;font-style:normal;margin-left:2px}.field input,.field select,.search-box input,.scan-input input{width:100%;border:1px solid #d8d1d0;border-radius:8px;min-height:42px;padding:0 11px;background:#fff}.field input:focus,.field select:focus,.search-box input:focus,.scan-input input:focus{border-color:var(--red);outline:3px solid rgba(180,35,24,.1)}.search-box{flex:1;max-width:520px;position:relative}.search-box svg{position:absolute;left:12px;top:12px;color:#60717d}.search-box input{padding-left:38px}.table-wrap{overflow-x:auto;max-width:100%;background:#fff;border:1px solid #e1e7eb;border-radius:8px}table{width:100%;border-collapse:collapse;min-width:780px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf1f3;vertical-align:middle}th{color:#52636e;font-size:13px;background:#f8fafb}td strong,td span{display:block}.due{color:#4f4746;white-space:nowrap}.due.warning{color:#987017}.due.danger,.due.expired{color:#b9432b}.modal-backdrop{position:fixed;inset:0;background:#0a161d6b;display:grid;place-items:center;padding:20px;z-index:10}.qr-dialog{padding:18px;width:min(420px,100%)}.ocr-dialog{background:#fff;border:1px solid #e1e7eb;border-radius:8px;box-shadow:0 18px 50px #11212833;width:min(1080px,calc(100vw - 40px));max-height:92vh;display:grid;grid-template-rows:auto 1fr auto}.setup-dialog{background:#fff;border:1px solid #e1e7eb;border-radius:8px;box-shadow:0 18px 50px #11212833;width:min(620px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto}.setup-dialog .form-header{padding:18px;border-bottom:1px solid #edf1f3}.setup-dialog .form-header h2,.setup-dialog .form-header p{margin:0}.setup-dialog .form-header p{color:#60717d}.setup-body{padding:18px;display:grid;gap:12px}.setup-body ol{margin:4px 0 0;padding-left:22px;line-height:1.9}.setup-body code{color:#b42318;background:#fff0ed;padding:2px 6px;border-radius:4px}.setup-provider{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;background:#f4f7f8;border-radius:6px}.setup-provider span{color:#60717d}.ocr-dialog .form-header{padding:16px 18px;border-bottom:1px solid #edf1f3}.ocr-dialog .form-header h2,.ocr-dialog .form-header p{margin:0}.ocr-dialog .form-header p{color:#60717d}.ocr-dialog-body{overflow:auto;padding:16px 18px;display:grid;gap:16px}.ocr-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ocr-summary>div{padding:12px;border:1px solid #e5eaed;border-radius:6px;display:grid;gap:4px}.ocr-summary span{color:#60717d;font-size:13px}.ocr-review{display:flex;align-items:flex-start;gap:8px;padding:11px 12px;border:1px solid #e9bc67;background:#fffaf0;color:#7b4b00;border-radius:6px}.ocr-group{border:1px solid #edf1f3;border-radius:8px;padding:14px}.ocr-group h3{margin:0 0 12px}.ocr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ocr-empty input{border-color:#e0a11b;background:#fffaf0}.dialog-actions{padding:14px 18px;border-top:1px solid #edf1f3;display:flex;justify-content:flex-end;gap:10px}.qr-dialog img{width:100%;max-width:320px;display:block;margin:18px auto 10px}.qr-dialog p{word-break:break-all;color:#60717d}.scan-layout{display:grid;grid-template-columns:minmax(320px,430px) 1fr;gap:18px;align-items:start}.scan-input{display:flex;gap:8px;margin:16px 0 10px}.reader{margin-top:14px;border-radius:8px;overflow:hidden;border:1px solid #d4e0e4}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.inspection-layout{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start;min-width:0}.inspection-list{background:#fff;border:1px solid #e1e7eb;border-radius:8px;padding:14px;position:sticky;top:18px;display:grid;gap:10px;width:100%;min-width:0}.inspection-customer-field{margin-top:2px;min-width:0}.inspection-customer-field select{width:100%;min-width:0;max-width:100%}.inspection-child-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:4px}.inspection-child-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspection-child-title span{flex:0 0 auto;color:#60717d;font-size:13px}.inspection-cylinder-search{min-height:38px;display:flex;align-items:center;gap:8px;border:1px solid #cbd7dc;border-radius:6px;padding:0 10px;color:#60717d;background:#fff}.inspection-cylinder-search:focus-within{border-color:var(--red);box-shadow:0 0 0 3px #be232d1a}.inspection-cylinder-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#20313a}.inspection-cylinder-list{max-height:calc(100vh - 330px);min-height:120px;overflow-y:auto;display:grid;align-content:start;gap:8px;padding-right:2px;min-width:0}.inspection-list-empty{padding:22px 10px;color:#7a8991;font-size:13px;text-align:center;border:1px dashed #d7e0e4;border-radius:6px}.inspection-item{width:100%;border:1px solid #e1e7eb;background:#fff;border-radius:8px;padding:11px;text-align:left;align-items:flex-start;flex-direction:column}.inspection-item.active,.inspection-item:hover{border-color:var(--red);background:var(--red-soft)}.inspection-item strong,.inspection-item span{display:block}.inspection-item span{color:#60717d;font-size:13px}.inspection-item small{color:#8a969d;font-size:12px}.inspection-form{display:grid;gap:18px}.mode-bar{background:#fff;border:1px solid #e1e7eb;border-radius:8px;padding:14px 16px}.mode-bar h2,.mode-bar p{margin:0}.segmented{display:inline-flex;background:#eef3f4;border-radius:8px;padding:4px;gap:4px}.segmented button{border:0;background:transparent;border-radius:6px;min-height:34px;padding:0 12px;color:#52636e;display:inline-flex;align-items:center;justify-content:center;gap:6px}.group-section{display:grid;gap:10px;min-width:0}.group-section>.panel-title{padding:0 2px}.group-section>.panel-title h2{font-size:18px}.structure-actions{justify-content:flex-end}.segmented button.active{background:#fff;color:var(--red);box-shadow:0 1px 4px #1121281f}.button-row{display:flex;gap:10px;flex-wrap:wrap}.inspection-section .panel-title{align-items:flex-start}.inspection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.scan-inspection{margin-top:20px;border-top:1px solid #edf1f3;padding-top:16px}.scan-inspection h3{margin:0 0 12px}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.batch-table-wrap{margin-top:16px;overflow:auto;border:1px solid #e1e7eb;border-radius:8px;max-height:68vh}.batch-table{min-width:1720px}.batch-table th{position:sticky;top:0;z-index:1}.batch-table input{width:100%;min-width:86px;height:34px;border:1px solid #cbd7dc;border-radius:6px;padding:0 8px}.print-report{display:none}.report-button{margin-top:14px}.customer-page{min-height:100vh;display:grid;place-items:start center;padding:28px 18px}.customer-card{width:min(760px,100%);background:#fff;border:1px solid #e1e7eb;border-radius:8px;box-shadow:0 8px 28px #1121280f;padding:22px;display:grid;gap:16px}.customer-card h1,.customer-card p{margin:0}.customer-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.customer-document-actions{display:flex;flex-wrap:wrap;gap:10px}.qr-hint{color:var(--muted);font-size:13px;line-height:1.6}.document-package{margin-top:18px;border-top:1px solid #edf1f3;padding-top:16px}.upload-button{min-height:40px;border-radius:8px;background:#eef3f4;color:#24333b;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;cursor:pointer}.accent-upload{background:#fff2ec;color:#b9432b;border:1px solid #f1c4b6}.upload-button input{display:none}.attachment-list{display:grid;gap:10px;margin-top:12px}.attachment-item{display:flex;justify-content:space-between;gap:12px;text-decoration:none;color:inherit;border:1px solid #e1e7eb;border-radius:8px;padding:12px;background:#fafcfc}.attachment-item span{color:#60717d}.attachment-item.generated{background:var(--red-soft);border-color:#f0c5c1}.small-empty{padding:12px}.certificate-print{display:none}.info{border:1px solid #edf1f3;background:#fafcfc;border-radius:8px;padding:12px}.info span,.info strong{display:block}.inspection-callout{margin-top:18px;border-radius:8px;background:var(--red-soft);color:var(--red);padding:12px;display:flex;gap:8px;align-items:center}.trial-panel{position:relative;display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:18px 28px;align-items:center;padding:22px 24px;color:#fff;background:var(--red-dark);border-radius:8px;width:100%;max-width:100%;min-width:0}.trial-panel>*{min-width:0}.trial-panel h2,.trial-panel p{margin:0}.trial-panel h2{margin-top:3px;font-size:22px}.trial-panel p{margin-top:6px;color:#ffffffc2}.eyebrow{font-size:12px;font-weight:700;color:#ffd7d2}.trial-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.trial-panel .primary-button{color:var(--red-dark);background:#fff}.trial-panel .secondary-button{color:#fff;background:#ffffff1f}.capability{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding-top:13px;border-top:1px solid rgba(255,255,255,.16);color:#ffd8d5;font-size:13px}.capability.ready{color:#fff}.disabled-upload{color:#8b8382;background:#f1efef;cursor:not-allowed}.topbar>div>p{color:var(--red);font-size:13px;font-weight:600}.account-actions{display:flex;align-items:center;gap:8px}.account-actions>span{display:grid;text-align:right;margin-right:4px}.account-actions small{color:var(--muted)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--red-dark)}.auth-panel{width:min(430px,100%);display:grid;gap:18px;padding:28px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 18px 50px #38131029}.auth-panel h1,.auth-panel p{margin:0}.auth-panel h1{margin-top:4px;font-size:28px}.auth-panel p{margin-top:5px;color:var(--muted)}.auth-brand{display:flex;gap:12px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--border)}.auth-brand .brand-mark{background:var(--red)}.auth-brand strong,.auth-brand span{display:block}.auth-brand span{color:var(--muted);font-size:13px}.customer-content{max-width:none;padding:0}@media(max-width:900px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;padding:14px 14px 10px;width:100%;min-width:0}nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:4px}.nav{justify-content:center;flex:0 0 48px;padding:10px}.nav span{display:none}.content{padding:18px;width:100%;min-width:0}.brand{margin-bottom:12px}.trial-panel{grid-template-columns:minmax(0,1fr);padding:18px}.trial-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.trial-actions button{min-width:0;padding:0 8px}.trial-actions button:last-child{grid-column:1 / -1}.group-mode-bar .segmented{overflow-x:auto;width:100%}.group-mode-bar .segmented button{flex:0 0 auto}.capability{grid-column:auto}.metric-grid,.scan-layout,.inspection-layout,.form-grid,.summary-tags,.detail-grid,.inspection-grid,.ocr-summary,.ocr-grid,.mini-grid{grid-template-columns:1fr}.inspection-list{position:static}.section-actions,.mode-bar{align-items:stretch;flex-direction:column}.topbar{align-items:center}.account-actions>span{display:none}.auth-page{padding:16px;background:var(--red-dark)}.auth-panel{padding:22px}.search-box{max-width:none}.scan-input{flex-direction:column}}@media print{@page{size:A4;margin:0}body{background:#fff}.sidebar,.topbar,.scan-panel,.customer-card,.detail-head,.detail-grid,.inspection-callout,.report-button,.scan-inspection,.document-package,.inspection-list,.inspection-section,.mode-bar,.button-row,.alert{display:none!important}.app-shell,.content,.inspection-layout,.inspection-form,.panel,.detail-panel{display:block;padding:0;margin:0;max-width:none;border:0;box-shadow:none}.panel>.panel-title{display:none}.print-report{display:block;color:#000;background:#fff;font-family:Songti SC,SimSun,serif}.certificate-print{display:block;color:#000;font-family:Songti SC,SimSun,serif}.report-page{width:210mm;min-height:297mm;page-break-after:always;padding:20mm 18mm 14mm;position:relative}.certificate-page{width:210mm;min-height:297mm;page-break-after:always;padding:22mm 24mm;position:relative}.certificate-page header{display:flex;justify-content:space-between;border-bottom:1px solid #222;padding-bottom:5px;margin-bottom:34mm}.certificate-page h1{text-align:center;font-size:28px;margin-bottom:28mm}.certificate-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #000}.certificate-grid p{margin:0;min-height:18mm;border-right:1px solid #000;border-bottom:1px solid #000;display:grid;grid-template-columns:38mm 1fr;align-items:center;font-size:16px}.certificate-grid span{border-right:1px solid #000;height:100%;display:grid;place-items:center;background:#fff}.certificate-grid strong{font-weight:400;padding:0 8px}.certificate-seal{position:absolute;right:35mm;bottom:54mm;width:36mm;height:36mm;border:2px solid #c84535;color:#c84535;border-radius:50%;display:grid;place-items:center;transform:rotate(-12deg);font-size:18px}.report-seal{position:absolute;right:28mm;bottom:38mm;width:38mm;height:38mm;border:2px solid #c84535;color:#c84535;border-radius:50%;display:grid;place-content:center;gap:2mm;text-align:center;transform:rotate(-12deg);font-size:14px;line-height:1.2}.report-seal span{font-size:10px}body[data-print-document=report] .certificate-print,body[data-print-document=certificate] .print-report{display:none!important}.report-page header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #222;padding-bottom:5px;margin-bottom:22mm;font-size:13px}.report-page footer{position:absolute;bottom:7mm;left:0;right:0;text-align:center;font-size:12px}.report-page h1{text-align:center;font-size:23px;margin:0 0 10mm;font-weight:700}.cover-page{text-align:center}.cover-page .report-logo{margin:28mm 0 18mm;color:#10466f;font-size:24px;font-family:Arial,sans-serif}.cover-page h1,.cover-page h2{font-size:27px;font-weight:400;letter-spacing:0;margin:0 0 12mm}.cover-fields{width:136mm;margin:52mm auto 0;text-align:left;font-size:20px}.cover-fields p{border-bottom:1px solid #222;margin:0 0 9mm;padding-bottom:2mm}.cover-fields span{display:inline-block;width:36mm}.cover-fields strong{font-weight:400}.report-no{text-align:right;margin:-6mm 0 10mm}.report-body{font-size:21px;line-height:2.1;text-indent:2em}.report-body p:first-child{text-indent:0}.signature-block{margin-top:22mm;font-size:19px;line-height:2.3}.seal-text{text-align:right;margin-top:16mm}.report-table{min-width:0;width:100%;border:1px solid #000;border-collapse:collapse;table-layout:fixed}.report-table th,.report-table td{border:1px solid #000;color:#000;padding:6px 5px;font-size:14px;text-align:center;vertical-align:middle;word-break:break-word}.report-table th{background:#fff;font-weight:600}.report-page>p{font-size:18px}.sub-report-title{margin-top:28mm!important}.notice-text{line-height:2;text-indent:2em}}
