:root{color:#17202a;background:#f5f7f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}.app-shell{width:min(1120px,calc(100vw - 32px));margin:0 auto;padding:40px 0}.panel{background:#fff;border:1px solid #d9e0e7;border-radius:8px;padding:28px;box-shadow:0 12px 28px #1e293b14}.header{display:flex;justify-content:space-between;gap:16px;margin-bottom:28px}h1{margin:0;font-size:2rem;line-height:1.15}p{margin:8px 0 0;color:#596675}.controls{display:grid;grid-template-columns:minmax(180px,220px) minmax(240px,1fr) auto;gap:16px;align-items:end}label{display:grid;gap:8px;color:#354150;font-size:.9rem;font-weight:600}select,input[type=file]{min-height:42px;width:100%;border:1px solid #c7d0da;border-radius:6px;background:#fff;color:#17202a;padding:8px 10px}button{min-height:42px;border:0;border-radius:6px;background:#1f6feb;color:#fff;padding:0 18px;font-weight:700;cursor:pointer}button:disabled{background:#8aaee8;cursor:wait}.file-note{margin-top:14px;font-size:.92rem}.status-note{margin-top:10px;color:#1f4f8f;font-size:.92rem;font-weight:600}.error-panel{margin-top:24px;border:1px solid #efb4b4;border-radius:8px;background:#fff3f3;color:#8f1d1d;padding:16px}.error-panel ul{margin:10px 0 0;padding-left:20px}.results,.review{margin-top:28px}.review-actions{display:flex;align-items:center;gap:12px;margin-top:24px;color:#596675;font-size:.92rem}.secondary-button{border:1px solid #1f6feb;background:#fff;color:#1f5ebd}.secondary-button:disabled{border-color:#b8c5d6;background:#f4f6f8;color:#7b8794}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;border-bottom:1px solid #d9e0e7;padding-bottom:10px}.tab-button{min-height:36px;max-width:260px;border:1px solid #c7d0da;border-radius:6px;background:#fff;color:#354150;padding:6px 12px;font-size:.88rem;font-weight:700}.tab-button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-button.active{border-color:#1f6feb;background:#eaf2ff;color:#164f9f}.tab-button.failed{border-color:#efb4b4}.tab-button.failed.active{background:#fff3f3;color:#8f1d1d}.review-panel{min-width:0}.review-panel .results,.review-panel .error-panel{margin-top:18px}.review-title{display:flex;flex-wrap:wrap;gap:6px;color:#596675;font-size:.92rem}.review-title strong{color:#17202a}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}.summary-item{border:1px solid #d9e0e7;border-radius:8px;padding:14px;background:#fafbfc}.summary-item span{display:block;margin-bottom:6px;color:#667384;font-size:.82rem}.summary-item strong{font-size:1.05rem}.table-wrap{overflow-x:auto;border:1px solid #d9e0e7;border-radius:8px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:12px 14px;border-bottom:1px solid #e5eaf0;text-align:left;vertical-align:top}th{background:#f3f6f9;color:#354150;font-size:.82rem;text-transform:uppercase}tr:last-child td{border-bottom:0}@media(max-width:760px){.app-shell{width:min(100vw - 20px,1120px);padding:20px 0}.panel{padding:18px}.controls,.summary-grid{grid-template-columns:1fr}button{width:100%}.review-actions{align-items:stretch;flex-direction:column}.tab-button{max-width:100%;width:100%}}
