/* === Base === */
body {
    background: #f5f6fa;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    -webkit-font-smoothing: antialiased;
    padding-bottom: env(safe-area-inset-bottom);
}

/* === Login === */
.login-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    padding: 1rem;
}
.login-card {
    background: #fff;
    border-radius: 16px;
    padding: 2rem 1.5rem;
    width: 100%;
    max-width: 380px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.login-icon {
    font-size: 3rem;
    color: #667eea;
}
.alert-sm { font-size: 0.85rem; }

/* === Report Cards === */
.report-card {
    border: none;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: transform 0.15s, box-shadow 0.15s;
}
.report-card:active {
    transform: scale(0.98);
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.card-title {
    font-size: 1rem;
    font-weight: 600;
    color: #1a1a2e;
}
.card-text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* === Status Badges === */
.status-success {
    background: #d4edda;
    color: #155724;
}
.status-attention {
    background: #fff3cd;
    color: #856404;
}
.status-alert {
    background: #f8d7da;
    color: #721c24;
}

/* === Finding Banner === */
.finding-banner {
    color: #fff;
    font-weight: 500;
}
.status-bg-success {
    background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
}
.status-bg-attention {
    background: linear-gradient(135deg, #f7971e 0%, #ffd200 100%);
    color: #333;
}
.status-bg-alert {
    background: linear-gradient(135deg, #eb3349 0%, #f45c43 100%);
}

/* === Stat Cards === */
.stat-card {
    background: #fff;
    border-radius: 10px;
    padding: 0.75rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.stat-card small { font-size: 0.75rem; }

/* === Accordion === */
.accordion-item {
    border: none;
    margin-bottom: 4px;
    border-radius: 10px !important;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.accordion-button {
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.75rem 1rem;
}
.accordion-button:not(.collapsed) {
    background: #f0f4ff;
    color: #333;
    box-shadow: none;
}
.accordion-body {
    font-size: 0.88rem;
    line-height: 1.7;
    padding: 1rem;
}

/* === Report Content === */
.report-content table {
    width: 100%;
    font-size: 0.82rem;
    margin: 0.5rem 0;
}
.report-content table th,
.report-content table td {
    padding: 0.4rem 0.5rem;
    border: 1px solid #e9ecef;
}
.report-content table th {
    background: #f8f9fa;
    font-weight: 600;
}
.report-content strong {
    color: #e74c3c;
}
.report-content h3, .report-content h4 {
    font-size: 1rem;
    margin-top: 1rem;
    color: #2c3e50;
}

/* === Highlight Flash === */
.highlight-flash {
    animation: flash 1s ease-in-out 3;
}
@keyframes flash {
    0%, 100% { box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
    50% { box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.4); }
}

/* === History === */
.list-group-item.active {
    background: #667eea;
    border-color: #667eea;
}

/* === Mobile Touch === */
.btn-lg { min-height: 48px; }
.form-control-lg { min-height: 48px; }

@media (max-width: 576px) {
    .container { padding-left: 12px; padding-right: 12px; }
    .card-body { padding: 0.75rem; }
}
