* {
    box-sizing: border-box;
}

:root {
    --navy: #14213d;
    --navy-2: #1e335f;
    --gold: #c89b3c;
    --light: #f4f7fb;
    --border: #dfe5ee;
    --text: #182033;
    --muted: #687386;
    --danger: #b42318;
    --success: #176b42;
}

body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--text);
    background: var(--light);
}

a { color: inherit; }

.public-page,
.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    background:
        radial-gradient(circle at top left, rgba(200,155,60,.13), transparent 28%),
        linear-gradient(135deg, #f7f9fc, #eef2f8);
}

.public-shell {
    width: min(760px, 100%);
    padding: 56px;
    background: white;
    border-radius: 22px;
    box-shadow: 0 18px 60px rgba(20,33,61,.12);
    text-align: center;
}

.brand-mark {
    width: 84px;
    height: 84px;
    margin: 0 auto 22px;
    border-radius: 50%;
    background: var(--navy);
    color: white;
    display: grid;
    place-items: center;
    font-weight: 800;
    letter-spacing: 2px;
    border: 5px solid #e2c98e;
}

.brand-mark.small {
    width: 68px;
    height: 68px;
    border-width: 4px;
}

h1, h2, p { margin-top: 0; }
h1 { color: var(--navy); }
.lead, .muted { color: var(--muted); }

.status-card {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 24px 0;
    padding: 12px 18px;
    border: 1px solid #cfe7d8;
    background: #f3fbf6;
    border-radius: 999px;
    color: var(--success);
    font-weight: 700;
}

.status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #2a9d62;
}

.public-actions { margin-top: 18px; }

.btn {
    display: inline-block;
    border: 0;
    border-radius: 10px;
    padding: 12px 18px;
    text-decoration: none;
    cursor: pointer;
    font-weight: 700;
}

.btn-primary { background: var(--navy); color: white; }
.btn-primary:hover { background: var(--navy-2); }

.btn-secondary {
    background: white;
    border: 1px solid var(--border);
    color: var(--navy);
}

.btn-small { padding: 8px 12px; font-size: 13px; }
.btn-block { width: 100%; }
.btn-warning { background: #fff1d6; color: #7a4c00; }
.btn-success { background: #eaf8ef; color: #176b42; }

.login-card {
    width: min(450px, 100%);
    padding: 38px;
    background: white;
    border-radius: 18px;
    box-shadow: 0 18px 55px rgba(20,33,61,.13);
}

.setup-card { width: min(650px, 100%); }

label {
    display: block;
    margin: 16px 0 7px;
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

input, select, textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #cfd7e3;
    border-radius: 9px;
    font-size: 15px;
    font-family: inherit;
    background: white;
    color: var(--text);
}

textarea { resize: vertical; }

input:focus, select:focus, textarea:focus {
    outline: 2px solid rgba(30,51,95,.12);
    border-color: var(--navy-2);
}

.login-card button { margin-top: 22px; }

.footer-note {
    margin: 22px 0 0;
    text-align: center;
    color: var(--muted);
    font-size: 12px;
}

.alert {
    padding: 12px 14px;
    margin: 18px 0;
    border-radius: 9px;
}

.alert-error {
    background: #fff1f0;
    color: var(--danger);
    border: 1px solid #f3c4bf;
}

.alert-success {
    background: #effaf3;
    color: var(--success);
    border: 1px solid #c7e8d4;
}

.two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.topbar {
    min-height: 70px;
    background: var(--navy);
    color: white;
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.portal-label {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #d8dfed;
}

.topbar-user {
    display: flex;
    align-items: center;
    gap: 14px;
}

.dashboard-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    min-height: calc(100vh - 70px);
}

.sidebar {
    background: white;
    border-right: 1px solid var(--border);
    padding: 24px 16px;
}

.sidebar-title {
    padding: 0 12px 16px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.nav-link {
    display: block;
    padding: 11px 12px;
    margin-bottom: 5px;
    border-radius: 8px;
    text-decoration: none;
}

.nav-link.active {
    background: #eef2f8;
    color: var(--navy);
    font-weight: 700;
}

.nav-link.disabled {
    color: #8f98a8;
    cursor: default;
}

.main-content { padding: 32px; }

.page-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 28px;
}

.page-heading p { color: var(--muted); }

.status-pill {
    background: #fff6df;
    color: #7a5b17;
    border: 1px solid #ead49c;
    border-radius: 999px;
    padding: 7px 11px;
    font-size: 12px;
    font-weight: 700;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}

.metric-card, .panel {
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 5px 18px rgba(20,33,61,.05);
}

.metric-card { padding: 22px; }

.metric-label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.metric-number {
    margin-top: 8px;
    color: var(--navy);
    font-size: 32px;
    font-weight: 800;
}

.panel { padding: 24px; }
.panel-gap { margin-top: 24px; }

.check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    color: #33415c;
}

.form-grid {
    display: grid;
    gap: 18px;
    margin-bottom: 22px;
}

.form-grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.form-grid.four { grid-template-columns: repeat(4, minmax(0,1fr)); }
.span-3 { grid-column: 1 / -1; }

.section-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: space-between;
}

.count-badge {
    background: #eef2f8;
    color: var(--navy);
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 800;
}

.table-wrap {
    overflow-x: auto;
    margin-top: 14px;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px;
}

.data-table th,
.data-table td {
    padding: 13px 12px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .03em;
    background: #fafbfd;
}

.data-table tbody tr:hover { background: #fafbfd; }

.table-subtext {
    color: var(--muted);
    font-size: 12px;
    margin-top: 4px;
}

.text-right { text-align: right !important; }
.action-cell { white-space: nowrap; }
.inline-form { display: inline; }

.status-badge {
    display: inline-block;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 12px;
    font-weight: 800;
}

.status-badge.active { background: #ecf8f0; color: #176b42; }
.status-badge.inactive { background: #f3f4f6; color: #6b7280; }
.status-badge.draft { background:#f3f4f6; color:#6b7280; }
.status-badge.under_review { background:#fff4d6; color:#7a4c00; }
.status-badge.published { background:#e8f0ff; color:#1f4f99; }
.status-badge.open { background:#eaf8ef; color:#176b42; }
.status-badge.closed { background:#fceaea; color:#a12622; }
.status-badge.allocation { background:#f1eafe; color:#63339b; }
.status-badge.finalized { background:#e9f6f5; color:#176a64; }
.status-badge.matured { background:#eef0f3; color:#4b5563; }
.status-badge.archived { background:#f3f4f6; color:#6b7280; }
.status-badge.cancelled { background:#fdecec; color:#9b1c1c; }

.empty-state {
    text-align: center !important;
    color: var(--muted);
    padding: 30px !important;
}

.info-note {
    margin: 12px 0 18px;
    padding: 11px 13px;
    border: 1px solid #d9e4f2;
    background: #f7faff;
    border-radius: 8px;
    color: #46566f;
    font-size: 13px;
}

.narrow-panel { max-width: 650px; }

.metric-link {
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease;
}

.metric-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(20,33,61,.09);
}

.admin-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.admin-action-card {
    display: block;
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: 12px;
    text-decoration: none;
    background: #fff;
}

.admin-action-card strong {
    display: block;
    color: var(--navy);
    margin-bottom: 7px;
}

.admin-action-card span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.admin-action-card:not(.upcoming):hover { background: #f8fafd; }
.admin-action-card.upcoming { background: #fafafa; }

.agreement-preview {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 22px;
    background: #fafbfd;
}

.agreement-meta {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.agreement-meta span { color: var(--muted); font-size: 13px; }

.agreement-text {
    line-height: 1.65;
    color: #374151;
    background: white;
    border: 1px solid #e7ebf1;
    border-radius: 10px;
    padding: 18px;
}

.agreement-checkbox-demo {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 18px;
    font-weight: 700;
    color: var(--navy);
}

.agreement-checkbox-demo input { width: auto; margin-top: 2px; }

.empty-state-block {
    padding: 24px;
    border: 1px dashed #cfd7e3;
    border-radius: 10px;
    color: var(--muted);
    background: #fafbfd;
}

.input-with-suffix {
    display: flex;
    align-items: stretch;
}

.input-with-suffix input {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-with-suffix span {
    display: flex;
    align-items: center;
    padding: 0 14px;
    border: 1px solid #cfd7e3;
    border-left: 0;
    border-radius: 0 9px 9px 0;
    background: #f6f8fb;
    color: var(--muted);
    font-weight: 700;
    white-space: nowrap;
}

.field-help {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.toggle-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
    padding: 13px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fafbfd;
}

.toggle-row input { width: auto; margin-top: 2px; }

.fee-example-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 14px;
}

.fee-example-grid > div {
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fafbfd;
}

.fee-example-grid span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-bottom: 7px;
}

.fee-example-grid strong {
    color: var(--navy);
    font-size: 22px;
}

.settings-toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 12px;
}

.panel-inner-gap { margin-top: 18px; }

.filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

.audit-table { min-width: 1100px; }

.audit-code {
    display: inline-block;
    padding: 4px 7px;
    border-radius: 6px;
    background: #f2f4f8;
    color: var(--navy);
    font-size: 12px;
}

.audit-description { min-width: 320px; }

.audit-details { margin-top: 8px; }

.audit-details summary {
    cursor: pointer;
    color: var(--navy-2);
    font-weight: 700;
    font-size: 12px;
}

.audit-details pre {
    max-width: 520px;
    overflow: auto;
    padding: 10px;
    background: #f7f8fb;
    border: 1px solid var(--border);
    border-radius: 7px;
    font-size: 11px;
    white-space: pre-wrap;
    word-break: break-word;
}

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin-top: 20px;
    color: var(--muted);
    font-size: 13px;
}

.auction-filter-row {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:16px;
}

.filter-chip {
    text-decoration:none;
    padding:7px 11px;
    border:1px solid var(--border);
    border-radius:999px;
    color:var(--muted);
    background:white;
    font-size:13px;
    font-weight:700;
}

.filter-chip.active {
    background:var(--navy);
    color:white;
    border-color:var(--navy);
}

.auction-term-panel {
    border-left:4px solid #d6b66a;
}

.term-tag {
    background:#fff6df;
    border:1px solid #ead49c;
    color:#7a5b17;
    border-radius:999px;
    padding:6px 10px;
    font-size:12px;
    font-weight:700;
}

.form-action-bar {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:10px;
    margin-top:22px;
}

.auction-preview-hero {
    display:flex;
    justify-content:space-between;
    gap:24px;
    padding:28px;
    margin-bottom:24px;
    background:linear-gradient(135deg,#14213d,#223c70);
    color:white;
    border-radius:16px;
}

.auction-preview-hero h2 {
    margin:4px 0 8px;
    font-size:30px;
    color:white;
}

.auction-preview-hero p {
    margin:0;
    color:#dfe7f5;
}

.eyebrow {
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:11px;
    color:#c8d3e8;
    font-weight:700;
}

.preview-dates {
    min-width:280px;
    display:grid;
    gap:12px;
}

.preview-dates div {
    padding:12px 14px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
    border-radius:10px;
}

.preview-dates span {
    display:block;
    font-size:11px;
    color:#c8d3e8;
    margin-bottom:4px;
}

.announcement-copy {
    line-height:1.7;
    color:#344054;
}

.term-card-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin-top:24px;
}

.term-card {
    background:white;
    border:1px solid var(--border);
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 5px 18px rgba(20,33,61,.05);
}

.term-card-header {
    padding:16px 18px;
    background:#f8fafc;
    border-bottom:1px solid var(--border);
}

.term-card-header span {
    display:block;
    color:var(--navy);
    font-weight:800;
    font-size:18px;
}

.term-card-header small { color:var(--muted); }

.term-stat {
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:12px 18px;
    border-bottom:1px solid #edf0f4;
}

.term-stat:last-child { border-bottom:0; }

.term-stat span {
    color:var(--muted);
    font-size:12px;
}

.term-stat strong {
    text-align:right;
    color:var(--navy);
    font-size:13px;
}

.workflow-strip {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:8px;
}

.workflow-step {
    padding:10px;
    text-align:center;
    background:#f6f8fb;
    border:1px solid var(--border);
    border-radius:8px;
    color:#536176;
    font-size:12px;
    font-weight:700;
}

@media (max-width:1000px) {
    .form-grid.four,
    .settings-toggle-grid {
        grid-template-columns: 1fr;
    }

    .term-card-grid {
        grid-template-columns:1fr;
    }

    .auction-preview-hero {
        flex-direction:column;
    }

    .preview-dates { min-width:0; }

    .workflow-strip { grid-template-columns:1fr; }
}

@media (max-width:900px) {
    .dashboard-layout { grid-template-columns:1fr; }
    .sidebar { display:none; }
    .metric-grid { grid-template-columns:repeat(2,1fr); }

    .form-grid.three,
    .form-grid.two,
    .admin-action-grid {
        grid-template-columns:1fr;
    }

    .span-3 { grid-column:auto; }
}

@media (max-width:800px) {
    .fee-example-grid { grid-template-columns:1fr; }
    .agreement-meta { flex-direction:column; }
}

@media (max-width:600px) {
    .metric-grid,
    .two-column,
    .check-grid {
        grid-template-columns:1fr;
    }

    .topbar,
    .page-heading {
        align-items:flex-start;
        flex-direction:column;
    }

    .main-content,
    .login-card,
    .public-shell {
        padding:24px;
    }
}
