:root{--color-primary:#07c160;--color-primary-hover:#06ad56;--color-primary-light:#e8f8ee;--severity-red:#dc2626;--severity-red-bg:#fef2f2;--severity-red-border:#fca5a5;--severity-yellow:#d97706;--severity-yellow-bg:#fffbeb;--severity-yellow-border:#fcd34d;--severity-blue:#2563eb;--severity-blue-bg:#eff6ff;--severity-blue-border:#93c5fd;--color-suggestion-bg:#f0fdf4;--color-suggestion-border:#86efac;--color-suggestion-text:#166534;--color-bg:#f5f5f5;--color-surface:#fff;--color-border:#e5e7eb;--color-text-primary:#1f2937;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--max-width:880px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:var(--color-text-primary);background:var(--color-bg);line-height:1.6;min-height:100vh}.page-container{max-width:var(--max-width);margin:0 auto;padding:48px 20px 80px}.header{text-align:center;margin-bottom:40px}.header h1{font-size:28px;font-weight:700;letter-spacing:.5px}.header p{margin-top:10px;font-size:15px;color:var(--color-text-secondary)}.mode-tabs{display:flex;gap:0;margin-bottom:20px;border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden}.mode-tab{flex:1 1;padding:10px 0;font-size:14px;font-weight:600;cursor:pointer;background:#fff;color:var(--color-text-secondary);border:none;transition:background .2s,color .2s}.mode-tab:first-child{border-right:1px solid var(--color-border)}.mode-tab.active{background:var(--color-primary);color:#fff}.mode-tab:disabled{cursor:not-allowed;opacity:.5}.text-title-input{width:100%;height:44px;padding:0 16px;margin-bottom:12px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;outline:none;font-weight:600}.text-title-input:focus{border-color:var(--color-primary)}.text-body-input{width:100%;padding:14px 16px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;outline:none;resize:vertical;line-height:1.8;font-family:inherit}.text-body-input:focus{border-color:var(--color-primary)}.text-body-input.error{border-color:var(--severity-red)}.text-input-row{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.input-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:32px;box-shadow:0 1px 3px rgba(0,0,0,.04)}.input-row{display:flex;gap:12px;align-items:center}.input-row input{flex:1 1;height:48px;padding:0 16px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}.input-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(7,193,96,.12)}.input-row input.error{border-color:var(--severity-red)}.input-hint{margin-top:10px;font-size:13px;color:var(--severity-red)}.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 28px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s,opacity .2s,transform .1s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);padding:14px 18px;color:var(--severity-red);font-size:14px;margin-bottom:16px}.progress-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:28px 32px;margin-bottom:32px;box-shadow:0 2px 8px rgba(0,0,0,.05)}.progress-title{font-size:16px;font-weight:700;margin-bottom:20px;color:var(--color-text-primary)}.progress-steps{display:flex;flex-direction:column;gap:10px}.progress-step{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:14px;color:var(--color-text-tertiary);transition:color .3s,background .3s}.progress-step.running{color:var(--color-primary-hover);background:var(--color-primary-light);font-weight:600}.progress-step.done{color:var(--color-text-secondary)}.progress-step .progress-icon{width:24px;text-align:center;flex-shrink:0}.progress-label{flex:1 1}.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(7,193,96,.25);border-top:2px solid var(--color-primary);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}.overview-card{border-radius:var(--radius-md);padding:24px;margin-bottom:24px;border:2px solid var(--color-border)}.overview-card.has-risk{background:#fef2f2;border-color:var(--severity-red-border)}.overview-card.no-risk{background:var(--color-primary-light);border-color:#86efac}.overview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px}.overview-title{font-size:16px;font-weight:700}.overview-badge{display:inline-block;padding:4px 14px;border-radius:20px;font-size:13px;font-weight:600}.badge-risk{background:#fee2e2;color:var(--severity-red)}.badge-ok{background:#dcfce7;color:var(--color-primary-hover)}.overview-body{font-size:14px;color:var(--color-text-primary);line-height:1.8}.overview-body p{margin-bottom:6px}.scores-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.wc-tag{font-size:12px;font-weight:400;color:var(--color-text-tertiary);background:#f3f4f6;padding:2px 8px;border-radius:10px;margin-left:8px}.dimensions-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:18px}.dim-item{text-align:center;padding:10px 6px;border-radius:var(--radius-sm);background:#f9fafb;border:1px solid var(--color-border)}.dim-item .dim-icon{font-size:18px;display:block;margin-bottom:4px}.dim-item .dim-label{font-size:12px;color:var(--color-text-secondary);display:block;margin-bottom:4px}.dim-item .dim-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;display:inline-block}.dim-pass .dim-badge{background:#dcfce7;color:var(--color-primary-hover)}.dim-low .dim-badge{background:var(--severity-blue-bg);color:var(--severity-blue)}.dim-mid .dim-badge{background:var(--severity-yellow-bg);color:var(--severity-yellow)}.dim-high .dim-badge{background:var(--severity-red-bg);color:var(--severity-red)}.dim-mid{border-color:var(--severity-yellow-border)}.dim-high{border-color:var(--severity-red-border);background:var(--severity-red-bg)}.score-item{flex:1 1;min-width:100px;text-align:center;padding:12px 10px;border-radius:var(--radius-sm);background:#f9fafb;border:1px solid var(--color-border)}.score-item .score-icon{font-size:18px;display:block;margin-bottom:4px}.score-item .score-label{font-size:12px;color:var(--color-text-secondary);display:block;margin-bottom:2px}.score-item .score-value{font-size:22px;font-weight:800}.score-green .score-value{color:var(--color-primary-hover)}.score-yellow .score-value{color:var(--severity-yellow)}.score-red .score-value{color:var(--severity-red)}.score-red{border-color:var(--severity-red-border);background:var(--severity-red-bg)}.score-yellow{border-color:var(--severity-yellow-border)}.stats-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 24px;margin-bottom:24px;font-size:15px;font-weight:600;align-items:center;justify-content:space-between;gap:12px}.stats-bar,.stats-detail{display:flex;flex-wrap:wrap}.stats-detail{gap:16px}.stat{font-size:13px;font-weight:600;padding:4px 12px;border-radius:20px}.stat-red{background:var(--severity-red-bg);color:var(--severity-red)}.stat-yellow{background:var(--severity-yellow-bg);color:var(--severity-yellow)}.stat-blue{background:var(--severity-blue-bg);color:var(--severity-blue)}.issues-list{animation:fadeInUp .35s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.issue-card{background:var(--color-surface);border-radius:var(--radius-md);padding:20px 24px;margin-bottom:16px;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .2s}.issue-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.issue-card:before{content:"";position:absolute;top:0;left:0;width:5px;height:100%;border-radius:var(--radius-md) 0 0 var(--radius-md)}.issue-card.severity-red{border:1.5px solid var(--severity-red-border)}.issue-card.severity-red:before{background:var(--severity-red)}.issue-card.severity-yellow{border:1.5px solid var(--severity-yellow-border)}.issue-card.severity-yellow:before{background:var(--severity-yellow)}.issue-card.severity-blue{border:1px solid var(--color-border)}.issue-card.severity-blue:before{background:var(--severity-blue)}.issue-header{justify-content:space-between;margin-bottom:14px;gap:8px}.issue-header,.issue-header-left{display:flex;align-items:center;flex-wrap:wrap}.issue-header-left{gap:10px}.issue-severity-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}.issue-card.severity-red .issue-severity-badge{background:var(--severity-red-bg);color:var(--severity-red)}.issue-card.severity-yellow .issue-severity-badge{background:var(--severity-yellow-bg);color:var(--severity-yellow)}.issue-card.severity-blue .issue-severity-badge{background:var(--severity-blue-bg);color:var(--severity-blue)}.issue-position{font-size:14px}.issue-position,.issue-type-tag{font-weight:500;color:var(--color-text-secondary)}.issue-type-tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;background:#f3f4f6}.issue-row{margin-bottom:10px}.issue-row:last-child{margin-bottom:0}.issue-label{font-size:13px;font-weight:600;color:var(--color-text-secondary);display:block;margin-bottom:3px}.issue-value{font-size:14px;color:var(--color-text-primary);line-height:1.6;word-break:break-word}.issue-original{background:#f9fafb;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.issue-original,.issue-suggestion{padding:10px 14px;font-size:14px;line-height:1.6;word-break:break-word}.issue-suggestion{background:var(--color-suggestion-bg);border:1px solid var(--color-suggestion-border);border-radius:var(--radius-sm);color:var(--color-suggestion-text);font-weight:500}.result-section{animation:fadeInUp .35s ease-out}.empty-state{text-align:center;padding:60px 20px;color:var(--color-text-tertiary)}.empty-icon{font-size:48px;margin-bottom:16px;display:block}.empty-text{font-size:15px}@keyframes spin{to{transform:rotate(1turn)}}.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:8px;vertical-align:middle}.footer{text-align:center;padding:40px 20px 0;font-size:13px;color:var(--color-text-tertiary)}@media (max-width:640px){.page-container{padding:28px 16px 60px}.header h1{font-size:22px}.input-section{padding:16px}.input-row{flex-direction:column}.btn,.input-row input{width:100%}.issue-card{padding:16px}.issue-header{flex-direction:column;align-items:flex-start}.progress-panel{padding:20px}.stats-bar{flex-direction:column;align-items:flex-start}}