* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: -apple-system, 'Segoe UI', Arial, sans-serif;
    background: #f4f6fa;
    color: #1c2733;
}

/* ---------- Landing page ---------- */
.landing-wrap { max-width: 720px; margin: 0 auto; padding: 50px 20px 30px 20px; }

.landing-header { text-align: center; margin-bottom: 44px; }
.landing-logo { width: 64px; height: 64px; margin-bottom: 14px; }
.landing-brand { font-size: 22px; font-weight: 800; color: #004AAD; letter-spacing: 0.3px; }
.landing-tagline { font-size: 12px; color: #55647a; letter-spacing: 1.5px; margin-top: 4px; }

.landing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 40px; }
.landing-card {
    background: #fff; border: 1.5px solid #e3e9f2; border-radius: 12px;
    padding: 32px 24px; text-align: center;
}
.card-icon { font-size: 36px; margin-bottom: 14px; }
.landing-card h2 { font-size: 16px; font-weight: 700; color: #1a2b45; margin: 0 0 8px 0; }
.card-desc { font-size: 13px; color: #7c8aa0; line-height: 1.5; margin: 0 0 20px 0; min-height: 40px; }
.card-btn {
    display: inline-block; padding: 11px 26px; border-radius: 7px;
    font-size: 13.5px; font-weight: 700; text-decoration: none;
}
.client-btn { background: #004AAD; color: #fff; }
.client-btn:hover { background: #003a87; }
.staff-btn { background: #f0f2f5; color: #33404f; }
.staff-btn:hover { background: #e3e7ed; }

.landing-footer {
    text-align: center; font-size: 12px; color: #8592a5;
    display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;
}

/* ---------- Search page ---------- */
.search-wrap { max-width: 560px; margin: 0 auto; padding: 40px 20px 30px 20px; }
.search-back { font-size: 13px; color: #8592a5; text-decoration: none; display: inline-block; margin-bottom: 20px; }
.search-back:hover { text-decoration: underline; }

.search-title { font-size: 19px; font-weight: 800; color: #1a2b45; margin-bottom: 6px; }
.search-sub { font-size: 13.5px; color: #55647a; margin-bottom: 28px; line-height: 1.5; }

.search-form-card { background: #fff; border: 1.5px solid #e3e9f2; border-radius: 12px; padding: 26px 24px; margin-bottom: 24px; }
.search-field { margin-bottom: 16px; }
.search-field:last-of-type { margin-bottom: 0; }
.search-field label { display: block; font-size: 11.5px; font-weight: 700; color: #55647a; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.3px; }
.search-field input {
    width: 100%; padding: 12px 14px; border: 1.5px solid #cdd7e3; border-radius: 7px; font-size: 15px;
}
.search-field input:focus { outline: none; border-color: #004AAD; box-shadow: 0 0 0 3px rgba(0,74,173,0.1); }
.search-submit-btn {
    width: 100%; margin-top: 20px; padding: 13px; background: #004AAD; color: #fff; border: none;
    border-radius: 7px; font-size: 14.5px; font-weight: 700; cursor: pointer;
}
.search-submit-btn:hover { background: #003a87; }

.search-error {
    background: #fdeceb; color: #b02a1f; border: 1px solid #f3c6c2; padding: 12px 16px;
    border-radius: 8px; font-size: 13.5px; margin-bottom: 20px;
}

.result-card {
    background: #fff; border: 1.5px solid #e3e9f2; border-radius: 12px; padding: 22px 24px; margin-bottom: 16px;
}
.result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.result-type { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: #7c8aa0; }
.result-number { font-size: 17px; font-weight: 800; color: #1a2b45; }
.result-status-badge { font-size: 11px; font-weight: 700; padding: 4px 11px; border-radius: 14px; text-transform: uppercase; letter-spacing: 0.3px; }
.badge-paid { background: #e9f7ee; color: #1a7a4a; }
.badge-unpaid { background: #fdf3e6; color: #a3510a; }
.badge-quote { background: #eaf1fb; color: #004AAD; }

.result-row { display: flex; justify-content: space-between; font-size: 13.5px; padding: 6px 0; border-bottom: 1px solid #f0f2f5; }
.result-row:last-of-type { border-bottom: none; }
.result-row span:first-child { color: #7c8aa0; }
.result-row span:last-child { color: #1a2333; font-weight: 600; }

.result-pdf-links { display: flex; gap: 10px; margin-top: 16px; }
.result-pdf-links a {
    flex: 1; text-align: center; padding: 10px; border-radius: 7px; text-decoration: none;
    font-size: 13px; font-weight: 700; background: #f5f8fc; color: #004AAD; border: 1.5px solid #dde4ee;
}
.result-pdf-links a:hover { background: #eaf1fb; }

.no-results {
    text-align: center; padding: 40px 20px; color: #7c8aa0; font-size: 14px;
    background: #fff; border: 1.5px solid #e3e9f2; border-radius: 12px;
}

@media (max-width: 560px) {
    .landing-grid { grid-template-columns: 1fr; }
}
