:root {
    font-family:Segoe UI, system-ui, sans-serif;
    color:#1a1a1a;
    background:#f4f6f8;
}

body {
    margin:0;
}

.topbar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:1rem 1.5rem;
    color:#fff;
}

.portal-topbar {
    background:#0b3d5c;
}

.topbar a {
    color:#fff;
    text-decoration:none;
    margin-right:1rem;
}

.content {
    max-width:1200px;
    margin:0 auto;
    padding:1.5rem;
}

.hero h1 {
    margin-bottom:.25rem;
}

.card {
    background:#fff;
    border-radius:8px;
    padding:1rem 1.25rem;
    margin-top:1rem;
    box-shadow:0 1px 4px rgba(0,0,0,.08);
}

.form-row {
    display:flex;
    gap:.75rem;
    align-items:center;
    flex-wrap:wrap;
}

.form-row input {
    min-width:220px;
    padding:.5rem;
}

.error {
    color:#b00020;
}

.result-table {
    width:100%;
    border-collapse:collapse;
    margin-top:1rem;
}

.result-table th,
.result-table td {
    border:1px solid #ddd;
    padding:.5rem .75rem;
    text-align:left;
}

.result-table th {
    width:160px;
    background:#f0f3f6;
}

.badge-soon {
    display:inline-block;
    font-size:.75rem;
    padding:.15rem .5rem;
    border-radius:4px;
    background:#e8eaf0;
    color:#555;
    margin-left:.5rem;
}

.form-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
    gap:1rem;
    margin-bottom:1rem;
}

.form-field {
    display:flex;
    flex-direction:column;
    gap:.35rem;
}

.form-field label {
    font-weight:600;
    font-size:.9rem;
}

.form-field input,
.form-field select {
    padding:.5rem;
}

.form-actions {
    margin-bottom:1rem;
}

.required {
    color:#b00020;
}

.result-count {
    margin-top:1rem;
    color:#333;
}

.table-scroll {
    overflow-x:auto;
    margin-top:.75rem;
}

.data-grid {
    width:100%;
    border-collapse:collapse;
    font-size:.9rem;
}

.data-grid th,
.data-grid td {
    border:1px solid #ddd;
    padding:.45rem .6rem;
    text-align:left;
    white-space:nowrap;
}

.data-grid th {
    background:#e8eef3;
    position:sticky;
    top:0;
}

.data-grid a {
    color:#0b3d5c;
    font-weight:600;
}

.link-list {
    margin:0;
    padding-left:1.25rem;
    line-height:1.8;
}

.link-list a {
    color:#0b3d5c;
    font-weight:600;
}

.topbar nav {
    display:flex;
    flex-wrap:wrap;
    gap:.25rem 1rem;
}
