:root{color-scheme:light;font-family:Segoe UI,Microsoft YaHei,Arial,sans-serif;background:#f6f7f9;color:#18202f}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f6f7f9}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;padding:18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid #dde2eb}.topbar h1{margin:0;font-size:21px;line-height:1.25;font-weight:700;letter-spacing:0}.topbar p{margin:5px 0 0;font-size:13px;color:#667085}.icon-button,.dialog header button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d7deea;border-radius:6px;color:#2d3b52;background:#fff;cursor:pointer}.control-band{display:grid;gap:12px;margin:18px 0}.segmented{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid #d7deea;border-radius:7px;background:#fff}.segmented button{min-height:34px;border:0;border-radius:5px;color:#596579;background:transparent;cursor:pointer}.segmented button.active{color:#0f172a;background:#e8eef8;font-weight:700}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border-radius:7px;border:1px solid transparent;padding:0 14px;font-size:14px;font-weight:700;cursor:pointer}.primary-button{color:#fff;background:#2456a6}.primary-button:disabled{cursor:not-allowed;opacity:.64}.secondary-button{color:#253149;border-color:#d7deea;background:#fff}.status,.pass-panel{display:flex;align-items:flex-start;gap:10px;border-radius:8px;padding:12px;font-size:14px}.status.error{border:1px solid #f0c9c9;color:#9a1f1f;background:#fff1f1}.empty-state{display:grid;place-items:center;min-height:260px;text-align:center;color:#6b7280}.empty-state h2{margin:14px 0 6px;font-size:18px;color:#1d2939}.empty-state p{max-width:240px;margin:0;font-size:14px;line-height:1.55}.results{display:grid;gap:14px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric{min-height:68px;padding:10px;border:1px solid #dfe5ee;border-radius:8px;background:#fff}.metric span{display:block;color:#667085;font-size:12px}.metric strong{display:block;margin-top:8px;font-size:24px;line-height:1}.metric.success strong{color:#147a4b}.metric.danger strong{color:#b42318}.pass-panel{border:1px solid #bfe3cf;color:#17684a;background:#ecfdf3}.issue-list{display:grid;gap:10px}.issue-row{display:grid;grid-template-columns:20px 1fr;gap:10px;padding:12px;border:1px solid #e5d3bb;border-radius:8px;background:#fff8ed}.issue-row svg{margin-top:2px;color:#b54708}.issue-row h2{margin:0;font-size:15px;line-height:1.35}.issue-row p{margin:5px 0 0;color:#5f4320;font-size:13px;line-height:1.45}.issue-name{color:#314158!important}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:18px;background:#0f172a5c}.dialog{width:min(440px,100%);display:grid;gap:13px;padding:16px;border-radius:8px;box-shadow:0 22px 60px #0f172a38;background:#fff}.dialog header,.dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog h2{margin:0;font-size:18px}.dialog label{display:grid;gap:6px;color:#344054;font-size:13px;font-weight:700}.dialog input,.dialog select,.dialog textarea{width:100%;border:1px solid #ccd5e1;border-radius:7px;padding:9px 10px;color:#111827;background:#fff}.dialog textarea{min-height:110px;resize:vertical}.dialog footer{justify-content:flex-end}.dialog-message{margin:0;font-size:13px}.dialog-message.success{color:#147a4b}.dialog-message.error{color:#b42318}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:380px){.app-shell{padding:14px}.summary-grid{grid-template-columns:1fr}}
