:root{color:#172126;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f7faf8;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif}body{min-width:320px;margin:0}:root{--ink:#172126;--muted:#66757a;--line:#dce5e4;--paper:#f7faf8;--card:#fff;--mint:#d5f0e5;--mint-strong:#2e8b68;--coral:#e76e57}*{box-sizing:border-box}button{font:inherit}.app-shell{width:min(1120px,100% - 40px);min-height:100vh;margin:0 auto;padding:28px 0 36px}.topbar{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--ink);color:#fff;letter-spacing:.08em;border-radius:12px;place-items:center;width:42px;height:42px;font-size:14px;font-weight:800;display:grid}.brand-name{color:var(--ink);margin:0;font-size:15px;font-weight:800}.brand-caption{color:var(--muted);margin:2px 0 0;font-size:12px}.status-pill{border:1px solid var(--line);color:var(--muted);border-radius:99px;margin-left:auto;padding:7px 12px;font-size:12px}.hero-section{max-width:680px;padding:108px 0 52px}.compact-hero{padding-bottom:40px}.section-kicker{color:var(--mint-strong);letter-spacing:.16em;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:800}h1{color:var(--ink);letter-spacing:-.06em;margin:0;font-size:clamp(40px,6vw,72px);line-height:1.08}h1 span{color:var(--coral)}.hero-copy{max-width:480px;color:var(--muted);margin:22px 0 0;font-size:17px;line-height:1.8}.workflow-card{border:1px solid var(--line);background:var(--card);border-radius:24px;padding:30px;box-shadow:0 18px 60px #25464014}.card-heading,.next-step{justify-content:space-between;align-items:center;display:flex}.workflow-actions{align-items:center;gap:16px;display:flex}.reset-button,.restart-button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;padding:11px 16px;font-size:13px;font-weight:700}.reset-button{color:var(--coral);border-color:#e8b2a8}.reset-button:hover,.restart-button:hover{border-color:var(--coral);color:var(--coral);background:#fff8f6}.restart-button{color:var(--coral);border-color:#e8b2a8}h2{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:26px}.step-count{color:var(--muted);font-size:13px;font-weight:700}.workflow-steps{grid-template-columns:1fr 52px 1fr 52px 1fr;align-items:start;gap:8px;margin-top:28px;display:grid}.workflow-step{color:var(--muted);grid-template-columns:30px 1fr;column-gap:9px;display:grid}.workflow-step>span{width:30px;height:30px;color:var(--muted);background:#edf2f0;border-radius:50%;grid-row:span 2;place-items:center;font-size:12px;font-weight:800;display:grid}.workflow-step strong{color:var(--muted);align-self:end;font-size:13px}.workflow-step small{margin-top:3px;font-size:10px;line-height:1.4}.workflow-step.active>span{background:var(--ink);color:#fff}.workflow-step.active strong{color:var(--ink)}.workflow-step.available>span{background:var(--mint);color:var(--mint-strong)}.workflow-line{background:var(--line);height:1px;margin-top:15px}.inspection-choice{border:1px solid var(--line);background:#fbfdfc;border-radius:14px;justify-content:space-between;align-items:center;gap:24px;margin-top:28px;padding:20px;display:flex}.inspection-choice h3{color:var(--ink);margin:0;font-size:18px}.inspection-choice p:not(.section-kicker){max-width:440px;color:var(--muted);margin:7px 0 0;font-size:12px;line-height:1.6}.choice-buttons{grid-template-columns:repeat(2,minmax(150px,1fr));gap:8px;min-width:370px;display:grid}.choice-button{border:1px solid var(--line);color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:10px;padding:12px}.choice-button:hover{border-color:#a8ccc0}.choice-button.selected{border:2px solid var(--mint-strong);background:#f4fbf7;padding:11px}.choice-button strong,.choice-button span{display:block}.choice-button strong{font-size:12px}.choice-button span{color:var(--muted);margin-top:4px;font-size:10px;line-height:1.4}.mode-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px;display:grid}.mode-card{border:1px solid var(--line);min-height:282px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:18px;flex-direction:column;align-items:flex-start;padding:24px;transition:all .2s;display:flex;position:relative}.mode-card:hover{border-color:#a8ccc0;transform:translateY(-2px)}.mode-card.selected{border:2px solid var(--mint-strong);background:#fbfffd;padding:23px}.mode-icon{background:var(--mint);width:42px;height:42px;color:var(--mint-strong);border-radius:12px;place-items:center;margin-bottom:24px;font-size:22px;font-weight:800;display:grid}.mode-eyebrow{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:700}.mode-card strong{letter-spacing:-.04em;font-size:22px}.mode-description{min-height:54px;color:var(--muted);margin-top:10px;font-size:14px;line-height:1.65}.check-list{color:var(--ink);flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:12px;display:flex}.selection-indicator{color:var(--mint-strong);margin-top:auto;padding-top:20px;font-size:12px;font-weight:800}.mode-card:not(.selected) .selection-indicator{color:var(--muted);font-weight:600}.next-step{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.next-label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.next-step strong{color:var(--ink);font-size:15px}.primary-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:13px 18px;font-size:14px;font-weight:700}.primary-button:hover{background:#2d3c42}.primary-button span{color:var(--mint);margin-left:10px}.privacy-note{color:var(--muted);justify-content:center;align-items:center;gap:8px;margin-top:22px;font-size:12px;display:flex}.lock-icon{color:var(--mint-strong)}.dropzone{text-align:center;background:#f7fcf9;border:1.5px dashed #a7c9bd;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:220px;margin-top:26px;padding:28px;transition:all .2s;display:flex}.dropzone.dragging{border-color:var(--mint-strong);background:var(--mint);transform:scale(1.01)}.dropzone>strong{color:var(--ink);font-size:18px}.dropzone>span{color:var(--muted);font-size:13px}.dropzone small{color:var(--muted);margin-top:2px;font-size:11px}.upload-icon{background:var(--mint);width:48px;height:48px;color:var(--mint-strong);border-radius:50%;place-items:center;margin-bottom:6px;font-size:24px;font-weight:800;display:grid}.secondary-button{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;margin-top:10px;padding:10px 18px;font-size:13px;font-weight:700}.secondary-button:hover{background:var(--ink);color:#fff}.secondary-button:disabled{cursor:wait;opacity:.55}.results-section{border-top:1px solid var(--line);margin-top:34px;padding-top:28px}.results-heading{justify-content:space-between;align-items:flex-end;display:flex}.text-button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 0 4px;font-size:12px}.text-button:hover{color:var(--coral)}.summary-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0;display:grid}.summary-item{background:#f4f7f6;border-radius:12px;padding:14px}.summary-label{justify-content:space-between;align-items:flex-start;gap:8px;min-height:38px;display:flex}.summary-item span{color:var(--muted);font-size:11px;display:block}.summary-icon{flex:none;margin-top:-7px;font-weight:800;line-height:1;font-size:42px!important}.summary-item.passed .summary-icon{color:var(--mint-strong)}.summary-item.failed .summary-icon{color:var(--coral)}.summary-item.warning .summary-icon{color:#b27818}.summary-item strong{color:var(--ink);margin-top:2px;font-size:25px;display:block}.summary-item.passed{background:#effaf4}.summary-item.passed strong{color:var(--mint-strong)}.summary-item.failed{background:#fff1ee}.summary-item.failed strong{color:var(--coral)}.summary-item.warning{background:#fff9e9}.summary-item.warning strong{color:#b27818}.checking-message{color:var(--muted);margin:0 0 10px;font-size:12px}.result-table-wrap{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.result-table{border-collapse:collapse;text-align:left;width:100%;min-width:720px}.result-table th{color:var(--muted);white-space:nowrap;background:#f4f7f6;padding:12px 14px;font-size:11px;font-weight:700}.result-table td{border-top:1px solid var(--line);color:var(--ink);vertical-align:middle;padding:14px;font-size:13px}.result-table tbody tr{border-left:3px solid #0000;transition:background .15s}.result-table tbody tr:hover{background:#fbfdfc}.result-table tbody tr.failed,.result-table tbody tr.unreadable{border-left-color:var(--coral);background:#fff5f2}.result-table tbody tr.warning{background:#fffaf0;border-left-color:#d59a32}.result-status{border-radius:50%;place-items:center;width:26px;height:26px;font-weight:800;display:grid}.result-status.passed{color:var(--mint-strong);background:#dff4e8}.result-status.failed,.result-status.unreadable{color:var(--coral);background:#ffe2dc}.result-status.warning{color:#b27818;background:#fff0c5}.result-main{min-width:220px}.result-main strong,.result-main span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.result-main strong{color:var(--ink);font-size:13px}.result-main span{max-width:290px;color:var(--muted);margin-top:3px;font-size:11px}.result-main span.message-error{color:var(--coral);font-weight:800}.result-table td:nth-child(3),.result-table td:nth-child(4){font-variant-numeric:tabular-nums;white-space:nowrap;min-width:118px}.result-table td:nth-child(5){white-space:nowrap;min-width:100px}.value-error{color:var(--coral);font-weight:800}.value-pass{color:var(--mint-strong);font-weight:800}.result-table tbody tr.spec-mismatch{border-left-color:var(--coral);background:#fff5f2}.file-size strong,.file-size small{display:block}.file-size small{color:var(--mint-strong);margin-top:3px;font-size:11px}.coverage-section{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.coverage-section .subheading>strong{color:var(--ink);letter-spacing:-.04em;font-size:26px}.coverage-caption{color:var(--muted);font-size:11px}.coverage-table{border:1px solid var(--line);border-spacing:0;text-align:left;border-radius:10px;width:100%;margin-top:14px;overflow:hidden}.coverage-table th{color:var(--muted);background:#f4f7f6;padding:11px 12px;font-size:12px}.coverage-table td{border-top:1px solid var(--line);color:var(--ink);padding:12px;font-size:13px}.coverage-file{max-width:260px;color:var(--ink);font-size:13px;line-height:1.5;display:block}.coverage-file+.coverage-file{border-top:1px solid var(--line);margin-top:7px;padding-top:7px}.coverage-file small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.coverage-file.mismatch,.coverage-file.mismatch small{color:var(--coral)}.coverage-table tr.coverage-error,.coverage-table tr.coverage-extra{background:#fffaf0}.coverage-table tr.sheet-tone-0{background:#f4f9ff}.coverage-table tr.sheet-tone-1{background:#f8f5ff}.coverage-table tr.sheet-tone-2{background:#f3fbf7}.coverage-table tr.sheet-tone-3{background:#fffaf2}.coverage-status{font-size:13px;font-weight:800}.coverage-status-stack{flex-direction:column;gap:4px;display:flex}.coverage-status.shared{color:#4b575b}.coverage-status.passed{color:var(--mint-strong)}.coverage-status.short{color:#b27818}.coverage-status.missing{color:var(--coral)}.coverage-status.extra{color:#b27818}.coverage-status.dimension-error{color:var(--coral)}.coming-soon{color:var(--muted);text-align:center;background:#f4f7f6;border-radius:16px;flex-direction:column;gap:8px;margin-top:26px;padding:30px;display:flex}.coming-soon strong{color:var(--ink)}.spec-builder{margin-top:26px}.spec-builder-heading,.subheading{justify-content:space-between;align-items:center;display:flex}.spec-count{color:var(--muted);font-size:12px;font-weight:700}.spec-import-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:24px;display:grid}.spec-source-card{border:1px solid var(--line);background:#fbfdfc;border-radius:14px;flex-direction:column;align-items:flex-start;min-height:214px;padding:20px;display:flex}.spec-source-card strong{color:var(--ink);font-size:16px}.spec-source-card>span:not(.source-icon){color:var(--muted);margin-top:8px;font-size:12px;line-height:1.6}.source-icon{background:var(--mint);width:36px;height:36px;color:var(--mint-strong);border-radius:10px;place-items:center;margin-bottom:16px;font-size:20px;font-weight:800;display:grid}.spec-source-card .secondary-button{margin-top:auto}.file-picked{max-width:100%;color:var(--mint-strong);text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-size:11px;overflow:hidden}.manual-form{grid-template-columns:1fr 1fr auto;gap:8px;width:100%;margin-top:auto;display:grid}.manual-form input,.spec-rules-table input{border:1px solid var(--line);min-width:0;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:10px;font-size:12px}.manual-form input:focus,.spec-rules-table input:focus{border-color:var(--mint-strong);outline:2px solid #2e8b681f}.manual-form .secondary-button{margin:0;padding:9px 12px}.sheet-picker,.spec-rules-wrap{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.subheading{color:var(--ink);font-size:14px}.sheet-list{grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;display:grid}.sheet-option{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.sheet-option:has(input:checked){border-color:var(--mint-strong);background:#f4fbf7}.sheet-option input{accent-color:var(--mint-strong)}.sheet-option span{min-width:0}.sheet-option strong,.sheet-option small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sheet-option strong{color:var(--ink);font-size:12px}.sheet-option small{color:var(--muted);margin-top:2px;font-size:11px}.compact-button{margin-top:4px;padding:10px 14px;font-size:12px}.compact-button:disabled{cursor:not-allowed;opacity:.45}.spec-message{color:var(--muted);background:#f4f7f6;border-radius:8px;margin:16px 0 0;padding:10px 12px;font-size:12px}.ocr-message{color:#8a661d;background:#fff9e9}.spec-rules-table{border:1px solid var(--line);border-spacing:0;text-align:left;border-radius:10px;width:100%;margin-top:14px;overflow:hidden}.spec-rules-table th{color:var(--muted);background:#f4f7f6;padding:10px 12px;font-size:11px}.spec-rules-table td{border-top:1px solid var(--line);color:var(--ink);padding:10px 12px;font-size:13px}.spec-rules-table td strong,.spec-rules-table td small{display:block}.spec-rules-table td small{color:var(--muted);margin-top:3px;font-size:10px}.spec-rules-table td:nth-child(2){white-space:nowrap;font-weight:800}.spec-rules-table td:nth-child(3) input{width:64px;padding:7px}.remove-button{color:var(--coral);cursor:pointer;background:0 0;border:0;font-size:11px}.empty-spec{color:var(--muted);text-align:center;background:#f4f7f6;border-radius:12px;flex-direction:column;align-items:center;gap:6px;margin-top:24px;padding:28px;font-size:12px;display:flex}.empty-spec strong{color:var(--ink);font-size:14px}.spec-summary{border:1px solid var(--line);background:#f4fbf7;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding:16px;display:flex}.spec-summary strong,.spec-summary span{display:block}.spec-summary strong{color:var(--ink);font-size:13px}.spec-summary span{color:var(--muted);margin-top:4px;font-size:11px}.spec-summary .secondary-button{white-space:nowrap;margin:0;padding:9px 12px}@media (width<=720px){.app-shell{width:min(100% - 28px,560px);padding-top:18px}.hero-section{padding:76px 0 34px}.workflow-card{border-radius:18px;padding:20px}.mode-grid{grid-template-columns:1fr}.workflow-steps{grid-template-columns:1fr;gap:10px}.workflow-line{display:none}.workflow-step{grid-template-columns:30px 1fr}.inspection-choice{flex-direction:column;align-items:stretch;gap:16px}.choice-buttons{grid-template-columns:1fr;min-width:0}.workflow-actions{flex-direction:column;align-items:flex-end;gap:8px}.reset-button{padding:7px 8px}.mode-card{min-height:250px}.spec-import-grid,.sheet-list{grid-template-columns:1fr}.manual-form{grid-template-columns:1fr 1fr}.manual-form .secondary-button{grid-column:1/-1}.summary-grid{grid-template-columns:repeat(2,1fr)}.result-table{min-width:0}.result-table thead{display:none}.result-table,.result-table tbody,.result-table tr,.result-table td{width:100%;display:block}.result-table tbody tr{border-top:1px solid var(--line);border-left-width:3px;padding:14px 16px}.result-table tbody tr:first-child{border-top:0}.result-table td{border:0;justify-content:space-between;align-items:center;gap:16px;padding:7px 0;font-size:13px;display:flex}.result-table td:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:700}.result-table td:first-child{justify-content:flex-start}.result-table td:first-child:before{display:none}.result-main{text-align:right;flex:1;min-width:0}.result-main span{max-width:100%}.file-size{text-align:right}.next-step{flex-direction:column;align-items:flex-start;gap:18px}.primary-button{width:100%}}
