:root{--primary: #2d1f14;--gold: #d4a853;--coral: #c4674a;--light-bg: #fafafa;--border: #e0e0e0;--error: #d32f2f;--success: #388e3c;--warning: #f57c00}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#f5f5f5;color:#333;line-height:1.6}button{background:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}button:hover{background:#1a1108}button:disabled{background:#ccc;cursor:not-allowed}button.secondary{background:var(--gold);color:var(--primary)}button.secondary:hover{background:#c49543}input[type=file]{padding:8px;border:1px solid var(--border);border-radius:4px}.container{max-width:1400px;margin:0 auto;padding:20px}.header{background:var(--primary);color:#fff;padding:30px 20px;text-align:center;margin-bottom:30px;box-shadow:0 2px 8px #0000001a}.header h1{font-size:32px;margin-bottom:5px}.card{background:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.card.warning{border-left:4px solid var(--warning)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}@media (max-width: 1024px){.grid{grid-template-columns:1fr}}.section-title{font-size:18px;font-weight:600;color:var(--primary);margin-bottom:15px;border-bottom:2px solid var(--gold);padding-bottom:10px}.upload-area{border:2px dashed var(--border);border-radius:8px;padding:30px;text-align:center;cursor:pointer;transition:all .2s}.upload-area:hover,.upload-area.dragging{border-color:var(--gold);background:var(--light-bg)}.upload-area input{display:none}.status-badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;margin:5px 5px 5px 0}.status-badge.pass{background:#e8f5e9;color:var(--success)}.status-badge.fail{background:#ffebee;color:var(--error)}.data-table{width:100%;border-collapse:collapse;margin-top:15px;font-size:13px}.data-table th{background:var(--light-bg);color:var(--primary);padding:12px;text-align:left;font-weight:600;border-bottom:2px solid var(--border)}.data-table td{padding:12px;border-bottom:1px solid var(--border)}.data-table tr:hover{background:var(--light-bg)}.data-table tr.pass{background:#f1f8f5}.data-table tr.fail{background:#fdf1f1}.issue-list{list-style:none;padding:0;margin:10px 0}.issue-list li{padding:8px;background:#ffebee;color:var(--error);margin:5px 0;border-left:3px solid var(--error);border-radius:2px;font-size:13px}.recommendation{padding:12px;background:#e3f2fd;color:#1565c0;border-left:3px solid #1976d2;border-radius:2px;margin-top:10px;font-size:13px}.spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{text-align:center;padding:40px 20px}.loading p{margin-top:15px;color:#666}.error-message{background:#ffebee;color:var(--error);padding:15px;border-radius:4px;margin-bottom:20px;border-left:4px solid var(--error)}.success-message{background:#e8f5e9;color:var(--success);padding:15px;border-radius:4px;margin-bottom:20px;border-left:4px solid var(--success)}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.mt-20{margin-top:20px}.mt-30{margin-top:30px}.monospace{font-family:Courier New,monospace}
