:root {
    --rs-primary: #083b4c;
    --rs-primary-2: #0d5268;
    --rs-accent: #20a4ae;
    --rs-accent-light: #dff5f6;
    --rs-bg: #f4f7f8;
    --rs-text: #20343c;
    --rs-muted: #65767d;
    --rs-border: #e3eaed;
}

html, body {
    background-color: var(--rs-bg);
    color: var(--rs-text);
    font-family: "Segoe UI", Arial, sans-serif;
}

.site-navbar {
    background: linear-gradient(100deg, var(--rs-primary), var(--rs-primary-2));
    box-shadow: 0 2px 12px rgba(8, 59, 76, .16);
}

.navbar-brand {
    font-weight: 700;
    letter-spacing: .01rem;
}

.site-navbar .nav-link {
    color: rgba(255, 255, 255, .88);
}

.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus {
    color: #fff;
}

.user-label {
    color: rgba(255, 255, 255, .92);
    font-size: .93rem;
}

.btn-accent {
    color: #fff;
    background-color: var(--rs-accent);
    border-color: var(--rs-accent);
}

.btn-accent:hover {
    color: #fff;
    background-color: #188791;
    border-color: #188791;
}

.hero {
    background:
        radial-gradient(circle at 90% 10%, rgba(32,164,174,.18), transparent 32%),
        linear-gradient(122deg, #f8fcfc, #eaf3f5);
    padding: 5rem 0;
    border-bottom: 1px solid var(--rs-border);
}

.hero h1 {
    color: var(--rs-primary);
    font-weight: 750;
    letter-spacing: -.03em;
}

.hero-label {
    color: var(--rs-accent);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .08em;
    font-size: .82rem;
}

.hero-card {
    background: #fff;
    border-radius: 1.25rem;
    padding: 1.25rem;
    box-shadow: 0 18px 55px rgba(8, 59, 76, .09);
}

.hero-process {
    border-left: 3px solid var(--rs-accent);
    padding-left: 1rem;
}

.section-title {
    color: var(--rs-primary);
    font-weight: 700;
}

.feature-card,
.metric-card,
.module-card,
.panel-card {
    border: 1px solid var(--rs-border);
    border-radius: .9rem;
    background-color: #fff;
    box-shadow: 0 3px 12px rgba(8, 59, 76, .04);
    height: 100%;
}

.feature-icon,
.metric-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .75rem;
    background-color: var(--rs-accent-light);
    color: var(--rs-accent);
    font-size: 1.35rem;
}

.metric-number {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--rs-primary);
}

.module-card.pending {
    border-style: dashed;
    background: #fffdf6;
}

.module-coming-soon {
    max-width: 720px;
    border-top: 4px solid var(--rs-accent) !important;
}

.workflow-step {
    position: relative;
    background: #fff;
    border: 1px solid var(--rs-border);
    border-radius: .75rem;
    padding: 1.1rem;
    height: 100%;
}

.workflow-step .number {
    color: #fff;
    background: var(--rs-primary);
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    margin-bottom: .75rem;
}

.workflow-step.future {
    background: #fffdf7;
}

.form-card {
    max-width: 650px;
    margin: 0 auto;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 7px 28px rgba(8, 59, 76, .08);
}

.table thead th {
    color: var(--rs-primary);
    white-space: nowrap;
    font-size: .91rem;
}

.page-header {
    background: #fff;
    border-bottom: 1px solid var(--rs-border);
}

.breadcrumb a {
    color: var(--rs-primary-2);
}

.placeholder-state {
    border: 1px dashed #cfdadd;
    background: #fff;
    border-radius: .8rem;
    padding: 2.5rem 1.25rem;
    text-align: center;
}

.site-footer {
    color: #d9e8ec;
    background-color: var(--rs-primary);
    font-size: .9rem;
}

.definition-list dt {
    color: var(--rs-muted);
    font-size: .87rem;
    font-weight: 500;
}

.definition-list dd {
    font-weight: 550;
    margin-bottom: 1rem;
}

.badge-stage {
    background-color: #fff0bf;
    color: #725400;
}

@media (max-width: 767.98px) {
    .hero {
        padding: 3rem 0;
    }
    .metric-number {
        font-size: 1.65rem;
    }
}

.ai-status-active { background: #dff6ea; color: #14643d; }
.ai-status-disabled { background: #fff0bf; color: #725400; }
.code-query { white-space: pre-wrap; background: #f6f8f9; border: 1px solid var(--rs-border); border-radius: .55rem; padding: .85rem; font-size: .9rem; color: #183a47; }
.metadata-grid dt { color: var(--rs-muted); font-weight: 500; font-size: .88rem; }
.metadata-grid dd { margin-bottom: .8rem; }
.step-active { border-left: .28rem solid var(--rs-accent); }
.upload-zone { border: 2px dashed #bbd1d7; border-radius: .9rem; padding: 2rem; background: #fbfdfd; }
.table-title { max-width: 340px; }
.small-mono { font-family: Consolas, "Courier New", monospace; font-size: .84rem; }


.separator-text {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: var(--rs-muted);
    font-size: .85rem;
}
.separator-text::before,
.separator-text::after {
    content: "";
    border-top: 1px solid var(--rs-border);
    flex: 1;
}
.prisma-flow {
    max-width: 760px;
}
.prisma-box {
    background: #fff;
    border: 1px solid var(--rs-border);
    border-radius: .85rem;
    padding: 1.3rem;
    text-align: center;
    box-shadow: 0 2px 10px rgba(8, 59, 76, .04);
}
.flow-arrow {
    text-align: center;
    color: var(--rs-accent);
    font-size: 1.75rem;
    line-height: 2.1;
}
.decision-include {
    border-top: 4px solid #198754;
}
.decision-exclude {
    border-top: 4px solid #dc3545;
}
.matrix-table {
    min-width: 1280px;
}
.report-page dl dt {
    color: var(--rs-muted);
}
@media print {
    .site-navbar, .site-footer, .no-print, .breadcrumb {
        display: none !important;
    }
    html, body {
        background: #fff;
    }
    .panel-card, .prisma-box {
        box-shadow: none;
        border: 1px solid #d7d7d7;
    }
}
