:root {
    --rr-navy: #07152f;
    --rr-navy-soft: #10264d;
    --rr-blue: #2962ff;
    --rr-cyan: #00b8d9;
    --rr-surface: #f5f7fb;
    --rr-border: #e4e9f2;
}

html, body { min-height: 100%; }
body { background: var(--rr-surface); color: #172033; }
a { text-underline-offset: .18em; }
.rr-brand { font-weight: 800; letter-spacing: -.03em; }
.rr-brand-mark {
    align-items: center; background: linear-gradient(135deg, var(--rr-blue), var(--rr-cyan));
    border-radius: .75rem; color: #fff; display: inline-flex; font-size: .85rem;
    height: 2.25rem; justify-content: center; margin-right: .6rem; min-width: 2.75rem; padding: 0 .48rem;
}
.landing-shell { background: radial-gradient(circle at 80% 15%, #d8efff 0, transparent 32%), #fff; min-height: 100vh; }
.hero { min-height: calc(100vh - 76px); padding: 5rem 0; }
.hero-title { font-size: clamp(2.5rem, 6vw, 4.8rem); font-weight: 800; letter-spacing: -.055em; line-height: 1.02; }
.hero-card { background: linear-gradient(145deg, var(--rr-navy), #14376c); border: 0; border-radius: 1.5rem; box-shadow: 0 2rem 5rem rgba(7, 21, 47, .22); color: #fff; }
.feature-pill { background: #eef5ff; border: 1px solid #dce9ff; border-radius: 999px; color: #1647a8; display: inline-block; font-size: .82rem; font-weight: 700; padding: .45rem .8rem; }
.auth-shell {
    background: #f6f8fc;
    min-height: 100vh;
}
.auth-page {
    display: grid;
    grid-template-columns: minmax(25rem, 42%) minmax(0, 1fr);
    min-height: 100vh;
}
.auth-showcase {
    background:
        radial-gradient(circle at 82% 14%, rgba(72, 209, 255, .3), transparent 27%),
        linear-gradient(145deg, #06152f 0%, #0c2c60 54%, #1555b6 100%);
    color: #fff;
    display: flex;
    flex-direction: column;
    isolation: isolate;
    justify-content: space-between;
    min-height: 100vh;
    overflow: hidden;
    padding: clamp(2rem, 4vw, 4.5rem);
    position: relative;
}
.auth-showcase::after {
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 42px 42px;
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}
.auth-showcase-shape {
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 50%;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}
.auth-showcase-shape-one {
    height: 22rem;
    right: -8rem;
    top: -7rem;
    width: 22rem;
}
.auth-showcase-shape-two {
    bottom: -13rem;
    height: 30rem;
    left: -12rem;
    width: 30rem;
}
.auth-brand {
    align-items: center;
    color: #10213f;
    display: inline-flex;
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: -.025em;
    position: relative;
    text-decoration: none;
    width: fit-content;
    z-index: 1;
}
.auth-brand:hover { color: inherit; }
.auth-brand .rr-brand-mark { font-size: .68rem; letter-spacing: -.04em; }
.auth-showcase-copy {
    margin: clamp(3rem, 10vh, 7rem) 0;
    max-width: 36rem;
    position: relative;
    z-index: 1;
}
.auth-eyebrow,
.auth-section-label {
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.auth-eyebrow { color: #8be3ff; }
.auth-showcase-copy h2 {
    font-size: clamp(2.25rem, 4.1vw, 4.25rem);
    font-weight: 800;
    letter-spacing: -.055em;
    line-height: 1.04;
    margin: 1rem 0 1.4rem;
}
.auth-showcase-copy > p {
    color: #c7d7f1;
    font-size: clamp(1rem, 1.4vw, 1.16rem);
    line-height: 1.75;
    max-width: 32rem;
}
.auth-benefits {
    display: grid;
    gap: .85rem;
    list-style: none;
    margin: 2rem 0 0;
    padding: 0;
}
.auth-benefits li {
    align-items: center;
    color: #e7efff;
    display: flex;
    font-weight: 600;
    gap: .8rem;
}
.auth-benefits li span {
    align-items: center;
    background: rgba(80, 220, 255, .14);
    border: 1px solid rgba(139, 227, 255, .32);
    border-radius: 50%;
    color: #8be3ff;
    display: inline-flex;
    flex: 0 0 1.65rem;
    height: 1.65rem;
    justify-content: center;
}
.auth-showcase-note {
    color: #9fb4d5;
    font-size: .84rem;
    line-height: 1.6;
    max-width: 36rem;
    position: relative;
    z-index: 1;
}
.auth-workspace {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-width: 0;
}
.auth-mobile-header {
    display: none;
    padding: 1.25rem clamp(1.25rem, 5vw, 3rem);
}
.auth-content {
    align-items: center;
    display: flex;
    flex: 1 0 auto;
    justify-content: center;
    padding: clamp(2rem, 6vh, 4.5rem) clamp(1.25rem, 5vw, 5rem);
    width: 100%;
}
.auth-content:focus { outline: none; }
.auth-form-panel {
    background: #fff;
    border: 1px solid rgba(218, 225, 238, .9);
    border-radius: 1.4rem;
    box-shadow: 0 1.5rem 4.5rem rgba(20, 39, 76, .1);
    padding: clamp(1.6rem, 4vw, 2.7rem);
    width: 100%;
}
.auth-form-panel-login { max-width: 31rem; }
.auth-form-panel-register { max-width: 46rem; }
.auth-form-heading { margin-bottom: 2rem; }
.auth-section-label { color: #2459d3; display: inline-block; margin-bottom: .7rem; }
.auth-form-heading h1 {
    color: #10213f;
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.12;
    margin-bottom: .75rem;
}
.auth-form-heading p {
    color: #66758d;
    line-height: 1.65;
    margin: 0;
    max-width: 39rem;
}
.auth-form-panel .form-label { color: #253551; margin-bottom: .45rem; }
.auth-form-panel .form-control {
    border-color: #d8dfeb;
    border-radius: .78rem;
    min-height: 3.1rem;
    padding: .7rem .9rem;
}
.auth-form-panel .form-control:focus {
    border-color: #5d83ef;
    box-shadow: 0 0 0 .22rem rgba(41, 98, 255, .13);
}
.auth-form-panel .form-text { color: #78879c; font-size: .76rem; line-height: 1.45; }
.auth-primary-action {
    background: linear-gradient(105deg, #2458de, #176fd4);
    border: 0;
    border-radius: .8rem;
    box-shadow: 0 .75rem 1.6rem rgba(41, 98, 255, .2);
    min-height: 3.2rem;
}
.auth-primary-action:hover,
.auth-primary-action:focus-visible { background: linear-gradient(105deg, #1748c8, #0a5fc4); }
.auth-inline-link,
.auth-switch a { color: #2459d3; font-weight: 700; text-decoration: none; }
.auth-inline-link:hover,
.auth-switch a:hover { text-decoration: underline; }
.auth-divider {
    align-items: center;
    color: #94a0b2;
    display: flex;
    font-size: .76rem;
    gap: .9rem;
    margin: 1.55rem 0;
    text-transform: uppercase;
}
.auth-divider::before,
.auth-divider::after { background: #e4e8f0; content: ""; flex: 1; height: 1px; }
.auth-switch { color: #66758d; text-align: center; }
.auth-resend {
    background: #f7f9fd;
    border: 1px solid #e4e9f2;
    border-radius: .8rem;
    color: #5e6d84;
    padding: .85rem 1rem;
}
.auth-resend summary { cursor: pointer; font-size: .86rem; font-weight: 700; }
.auth-resend .input-group .form-control { min-width: 0; }
.auth-privacy-note {
    border-top: 1px solid #ebeff5;
    color: #7a8799;
    font-size: .76rem;
    line-height: 1.55;
    margin-top: 1.35rem;
    padding-top: 1.1rem;
    text-align: center;
}
.auth-footer {
    align-items: center;
    color: #7a879a;
    display: flex;
    flex-wrap: wrap;
    font-size: .78rem;
    gap: .65rem;
    justify-content: center;
    padding: 1.35rem clamp(1.25rem, 5vw, 3rem) 1.75rem;
    text-align: center;
}
.auth-footer-divider { color: #b5bfce; }
.auth-footer a { color: #526987; font-weight: 650; text-decoration: none; }
.auth-footer a:hover { color: #2459d3; text-decoration: underline; }
.auth-skip-link {
    background: #fff;
    border-radius: .5rem;
    color: #173b8f;
    left: 1rem;
    padding: .7rem 1rem;
    position: fixed;
    top: 1rem;
    z-index: 2000;
}
.auth-content > .row {
    margin-left: 0;
    margin-right: 0;
    max-width: 34rem;
    width: 100%;
}
.auth-content > .row > [class*="col-"] { max-width: none; padding: 0; width: 100%; }
.auth-card { border: 1px solid rgba(218, 225, 238, .9); border-radius: 1.25rem; box-shadow: 0 1.5rem 4rem rgba(25, 44, 80, .1); }
.app-sidebar { background: var(--rr-navy); color: #c8d3e7; min-height: 100vh; position: fixed; width: 265px; z-index: 1030; }
.app-main { margin-left: 265px; min-height: 100vh; }
.sidebar-link { border-radius: .7rem; color: #aebbd1; display: flex; font-weight: 600; margin: .18rem 0; padding: .7rem .9rem; text-decoration: none; }
.sidebar-link:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.sidebar-link.active { background: linear-gradient(90deg, rgba(41, 98, 255, .85), rgba(0, 184, 217, .6)); color: #fff; }
.sidebar-label { color: #657996; font-size: .7rem; font-weight: 800; letter-spacing: .12em; margin: 1.5rem .9rem .5rem; text-transform: uppercase; }
.topbar { backdrop-filter: blur(14px); background: rgba(255,255,255,.88); border-bottom: 1px solid var(--rr-border); min-height: 68px; }
.content-wrap { padding: 1.75rem; }
.page-title { font-size: 1.65rem; font-weight: 800; letter-spacing: -.03em; }
.panel-card { border: 1px solid var(--rr-border); border-radius: 1rem; box-shadow: 0 .35rem 1.3rem rgba(30, 50, 90, .045); }
.metric-card { border: 0; border-radius: 1rem; box-shadow: 0 .5rem 1.5rem rgba(30, 50, 90, .07); overflow: hidden; }
.metric-accent { background: linear-gradient(135deg, var(--rr-blue), var(--rr-cyan)); height: .3rem; }
.metric-number { font-size: 2rem; font-weight: 800; letter-spacing: -.04em; }
.table > :not(caption) > * > * { padding: .85rem .75rem; vertical-align: middle; }
.table thead th { color: #64748b; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.code-hint { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .04em; }
.empty-state { color: #64748b; padding: 3rem 1rem; text-align: center; }
.form-label { font-weight: 650; }
.btn { font-weight: 650; }
.admin-sidebar { background: #101828; }
.outbox-preview { background: #f8fafc; max-height: 10rem; overflow: auto; white-space: pre-wrap; }
.word-break { word-break: break-word; }
.release-upload-status {
    background: #f8fbff;
    border: 1px solid #dce8fb;
    border-radius: .8rem;
    padding: .85rem 1rem;
}
.release-upload-progress { height: .65rem; }
.release-upload-progress .progress-bar { transition: width .18s ease; }
.release-upload-status.is-error { background: #fff7f7; border-color: #f2c7cc; }
.release-upload-status.is-error .progress-bar { background-color: #dc3545; }
.release-upload-status.is-complete { background: #f2fbf6; border-color: #bfe4cd; }
.release-upload-status.is-complete .progress-bar { background-color: #198754; }
.release-upload-modal-meta { color: #64748b; font-size: .82rem; margin-top: .65rem; }
.release-upload-modal-progress { height: .75rem; margin-top: 1rem; }

@media (max-width: 991.98px) {
    .auth-page { display: block; }
    .auth-showcase { display: none; }
    .auth-mobile-header { display: block; }
    .auth-content { align-items: flex-start; padding-top: clamp(1rem, 4vh, 2.5rem); }
    .auth-workspace { min-height: 100vh; }
    .app-sidebar { display: none; }
    .app-main { margin-left: 0; }
    .content-wrap { padding: 1rem; }
    .hero { padding: 3rem 0; }
}

@media (max-width: 575.98px) {
    .auth-mobile-header { padding-bottom: .65rem; }
    .auth-content { padding-left: 1rem; padding-right: 1rem; }
    .auth-form-panel { border-radius: 1rem; padding: 1.35rem; }
    .auth-form-heading { margin-bottom: 1.5rem; }
    .auth-form-heading h1 { font-size: 1.75rem; }
    .auth-footer { display: block; padding-top: .75rem; }
    .auth-footer > span,
    .auth-footer > a { display: block; }
    .auth-footer-divider { display: none !important; }
    .auth-resend .input-group { display: block; }
    .auth-resend .input-group > .form-control,
    .auth-resend .input-group > .btn { border-radius: .65rem !important; width: 100%; }
    .auth-resend .input-group > .btn { margin-top: .55rem; }
}

/* Public landing, legal pages, and shared footer */
.landing-shell { background: #fff; min-height: 100vh; }
.landing-navbar {
    backdrop-filter: blur(18px);
    background: rgba(255, 255, 255, .92);
    border-bottom: 1px solid rgba(219, 226, 239, .82);
    min-height: 76px;
    z-index: 1040;
}
.landing-navbar .nav-link { color: #506078; font-size: .92rem; font-weight: 650; padding-left: .9rem !important; padding-right: .9rem !important; }
.landing-navbar .nav-link:hover { color: #1f57dc; }
.landing-navbar .navbar-toggler { border-color: #d9e1ed; box-shadow: none; }
.landing-hero {
    background:
        radial-gradient(circle at 88% 10%, rgba(52, 188, 255, .2), transparent 28%),
        radial-gradient(circle at 5% 85%, rgba(41, 98, 255, .1), transparent 25%),
        linear-gradient(180deg, #f8fbff 0%, #fff 100%);
    min-height: calc(100vh - 76px);
    overflow: hidden;
    padding: clamp(5rem, 9vw, 8rem) 0;
    position: relative;
}
.landing-hero::before {
    background-image: radial-gradient(rgba(31, 88, 218, .14) .8px, transparent .8px);
    background-size: 24px 24px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(to right, #000, transparent 54%);
    opacity: .35;
    pointer-events: none;
    position: absolute;
}
.landing-kicker,
.section-eyebrow {
    color: #2459d3;
    font-size: .77rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.landing-hero .hero-title { color: #0b1d3a; font-size: clamp(2.9rem, 6.4vw, 5.55rem); font-weight: 850; letter-spacing: -.065em; line-height: .99; }
.text-gradient { -webkit-background-clip: text; background-clip: text; background-image: linear-gradient(100deg, #2158dc, #00a4ce); color: transparent; }
.landing-lead { color: #5c6c84; font-size: clamp(1.05rem, 1.5vw, 1.22rem); line-height: 1.75; max-width: 46rem; }
.landing-trust { color: #4f6078; font-size: .9rem; font-weight: 650; }
.landing-trust b { color: #168b68; margin-right: .35rem; }
.portal-preview { background: #fff; border: 1px solid rgba(213, 223, 239, .9); border-radius: 1.6rem; box-shadow: 0 2.4rem 6rem rgba(21, 52, 104, .18); overflow: hidden; position: relative; transform: perspective(1100px) rotateY(-3deg) rotateX(1deg); }
.portal-preview::after { border: 1px solid rgba(255,255,255,.75); border-radius: inherit; content: ""; inset: .5rem; pointer-events: none; position: absolute; }
.portal-preview-top { background: #f2f6fc; border-bottom: 1px solid #e1e8f3; padding: .9rem 1.2rem; }
.preview-dot { border-radius: 50%; display: inline-block; height: .58rem; width: .58rem; }
.preview-dot-red { background: #ff6472; }.preview-dot-yellow { background: #f7c84b; }.preview-dot-green { background: #2ec889; }
.preview-secure { color: #64758e; font-size: .64rem; font-weight: 800; letter-spacing: .12em; }
.portal-preview-body { background: linear-gradient(145deg, #071a39, #113a78); color: #fff; padding: clamp(1.5rem, 4vw, 2.5rem); }
.preview-welcome small { color: #8fb4ec; display: block; font-size: .75rem; margin-bottom: .25rem; text-transform: uppercase; }
.preview-welcome h2 { font-size: clamp(1.45rem, 2.6vw, 2.05rem); font-weight: 800; letter-spacing: -.04em; margin: 0; }
.preview-metric-row { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; }
.preview-metric { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.12); border-radius: .9rem; padding: 1rem; }
.preview-metric span { color: #a9bddb; display: block; font-size: .72rem; }.preview-metric strong { display: block; font-size: 1rem; margin-top: .2rem; }
.preview-release { align-items: center; background: #fff; border-radius: .9rem; color: #162743; display: flex; gap: .8rem; padding: .9rem; }
.preview-release-icon { align-items: center; background: #e8f1ff; border-radius: .7rem; color: #2459d3; display: inline-flex; font-size: 1.3rem; height: 2.6rem; justify-content: center; width: 2.6rem; }
.preview-release div { min-width: 0; }.preview-release small,.preview-release strong { display: block; }.preview-release small { color: #748196; font-size: .68rem; }.preview-release strong { font-size: .85rem; }
.preview-badge { background: #dff7ed; border-radius: 999px; color: #167451; font-size: .57rem; font-weight: 850; margin-left: auto; padding: .35rem .55rem; }
.preview-support { color: #adbfda; font-size: .72rem; }.preview-support span { color: #39d698; margin-right: .35rem; }
.landing-section { padding: clamp(5rem, 9vw, 8rem) 0; scroll-margin-top: 76px; }
.landing-section-soft { background: #f6f8fc; border-bottom: 1px solid #e8edf5; border-top: 1px solid #e8edf5; }
.section-heading { max-width: 47rem; }.section-heading h2,.section-title { color: #10213f; font-size: clamp(2rem, 4vw, 3.35rem); font-weight: 820; letter-spacing: -.05em; line-height: 1.08; margin: .8rem 0 1rem; }
.section-heading p { color: #69778c; font-size: 1.06rem; }
.feature-card { background: #fff; border: 1px solid #e2e8f2; border-radius: 1.25rem; box-shadow: 0 .7rem 2.4rem rgba(24, 50, 93, .06); padding: 1.75rem; transition: transform .2s ease, box-shadow .2s ease; }
.feature-card:hover { box-shadow: 0 1.2rem 3.2rem rgba(24, 50, 93, .11); transform: translateY(-4px); }
.feature-icon { align-items: center; background: linear-gradient(135deg, #e5efff, #e5fbff); border-radius: .85rem; color: #2459d3; display: inline-flex; font-size: .75rem; font-weight: 850; height: 2.8rem; justify-content: center; margin-bottom: 1.4rem; width: 2.8rem; }
.feature-card h3 { color: #162743; font-size: 1.15rem; font-weight: 780; }.feature-card p { color: #68778c; font-size: .92rem; line-height: 1.7; margin: 0; }
.process-list { display: grid; gap: .75rem; }
.process-item { align-items: flex-start; background: #fff; border: 1px solid #e1e7f0; border-radius: 1rem; display: flex; gap: 1rem; padding: 1.1rem 1.25rem; }
.process-item > span { align-items: center; background: #eaf1ff; border-radius: .7rem; color: #2459d3; display: inline-flex; flex: 0 0 2.6rem; font-weight: 850; height: 2.6rem; justify-content: center; }
.process-item h3 { color: #1a2c49; font-size: 1rem; font-weight: 780; margin: .08rem 0 .3rem; }.process-item p { color: #6a788d; font-size: .88rem; margin: 0; }
.model-pills span { background: #eff5ff; border: 1px solid #dce8fb; border-radius: 999px; color: #2455b6; font-size: .85rem; font-weight: 700; padding: .55rem .85rem; }
.support-card { background: linear-gradient(145deg, #0b1d3a, #123f80); border-radius: 1.4rem; box-shadow: 0 1.5rem 4rem rgba(13, 39, 79, .2); color: #fff; padding: clamp(1.75rem, 4vw, 2.7rem); }
.support-status { color: #9eb7da; display: inline-flex; font-size: .75rem; font-weight: 750; gap: .5rem; letter-spacing: .08em; text-transform: uppercase; }.support-status i { background: #36dc97; border-radius: 50%; box-shadow: 0 0 0 .3rem rgba(54,220,151,.13); height: .55rem; margin-top: .25rem; width: .55rem; }
.support-card h3 { font-size: 1.7rem; font-weight: 800; letter-spacing: -.035em; margin: 1.2rem 0 .8rem; }.support-card p { color: #c2d1e7; line-height: 1.7; }.support-card a { color: #82ddff; font-weight: 750; text-decoration: none; }
.landing-community { padding: 0 0 clamp(5rem, 9vw, 8rem); }
.community-panel { align-items: center; background: linear-gradient(115deg, #0b2046, #1959bd 70%, #00a0c8); border-radius: 1.6rem; box-shadow: 0 1.5rem 4rem rgba(15, 53, 110, .2); color: #fff; display: flex; gap: 3rem; justify-content: space-between; overflow: hidden; padding: clamp(2rem, 5vw, 4rem); position: relative; }
.community-panel::after { border: 1px solid rgba(255,255,255,.13); border-radius: 50%; content: ""; height: 24rem; position: absolute; right: -9rem; top: -11rem; width: 24rem; }
.section-eyebrow-light { color: #8ee5ff; }.community-panel h2 { font-size: clamp(1.9rem, 3.7vw, 3rem); font-weight: 820; letter-spacing: -.045em; margin: .75rem 0; max-width: 48rem; }.community-panel p { color: #c7d8f1; margin: 0; max-width: 42rem; }
.site-footer { background: #07152f; color: #9eafc9; padding: 4rem 0 1.5rem; }
.footer-brand { align-items: center; color: #fff; display: inline-flex; font-size: 1.05rem; font-weight: 800; text-decoration: none; }.footer-brand:hover { color: #fff; }
.footer-description { color: #8294b0; font-size: .88rem; margin-top: .9rem; max-width: 26rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: .7rem 1.5rem; justify-content: flex-end; }.footer-links a { color: #c5d1e4; font-size: .86rem; font-weight: 650; text-decoration: none; }.footer-links a:hover { color: #7fddff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); display: flex; font-size: .76rem; justify-content: space-between; margin-top: 2.4rem; padding-top: 1.4rem; }
.app-footer { align-items: center; border-top: 1px solid var(--rr-border); color: #768399; display: flex; font-size: .76rem; justify-content: space-between; margin-top: auto; padding: 1rem 1.75rem; }.app-footer a { color: #526987; text-decoration: none; }.app-footer a:hover { color: #2459d3; }
.app-main { display: flex; flex-direction: column; }.content-wrap { flex: 1 0 auto; }
.legal-header { background: linear-gradient(145deg, #f5f9ff, #fff); border-bottom: 1px solid #e3eaf4; padding: 2rem 0 4rem; }.legal-header h1 { color: #10213f; font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 830; letter-spacing: -.055em; margin: .8rem 0; }.legal-header p { color: #64738a; font-size: 1.08rem; margin: 0; max-width: 43rem; }
.legal-content { background: #f7f9fc; padding: 4rem 0 6rem; }.legal-card { background: #fff; border: 1px solid #e1e7f0; border-radius: 1.25rem; box-shadow: 0 1rem 3rem rgba(25, 50, 90, .07); margin: 0 auto; max-width: 58rem; padding: clamp(1.5rem, 5vw, 3.5rem); }.legal-card h2 { color: #1b2d49; font-size: 1.18rem; font-weight: 780; margin: 2rem 0 .65rem; }.legal-card h2:first-child { margin-top: 0; }.legal-card p { color: #65748a; line-height: 1.75; }.legal-updated { border-top: 1px solid #e8edf4; font-size: .8rem; margin-top: 2.4rem; padding-top: 1.2rem; }

@media (max-width: 991.98px) {
    .landing-navbar .navbar-collapse { background: #fff; border: 1px solid #e1e7f0; border-radius: 1rem; box-shadow: 0 1rem 3rem rgba(20,45,85,.12); margin-top: .8rem; padding: 1rem; }
    .landing-navbar .nav-link { padding: .65rem .25rem !important; }
    .landing-hero { min-height: auto; padding: 5rem 0; }
    .portal-preview { transform: none; }
    .community-panel { align-items: flex-start; flex-direction: column; }
    .footer-links { justify-content: flex-start; }
}

@media (max-width: 575.98px) {
    .rr-brand { font-size: .92rem; }.rr-brand-mark { font-size: .68rem; min-width: 2.5rem; }
    .landing-hero .hero-title { font-size: 2.75rem; }
    .preview-metric-row { grid-template-columns: 1fr; }
    .preview-badge { display: none; }
    .community-panel { border-radius: 1.1rem; }
    .footer-bottom,.app-footer { align-items: flex-start; flex-direction: column; gap: .5rem; }
}

/* Landing presentation refinements */
.landing-shell {
    --landing-ink: #0b1d3a;
    --landing-muted: #5d6d84;
    --landing-line: #dfe7f2;
    color: var(--landing-ink);
    overflow-x: clip;
}
.landing-skip-link {
    background: #fff;
    border: 1px solid var(--landing-line);
    border-radius: .7rem;
    box-shadow: 0 .75rem 2rem rgba(15, 39, 82, .16);
    color: #164fc4;
    font-weight: 750;
    left: 1rem;
    padding: .75rem 1rem;
    position: fixed;
    top: 1rem;
    z-index: 1100;
}
.landing-navbar {
    box-shadow: 0 1px 0 rgba(20, 43, 80, .02);
}
.landing-navbar .rr-brand { color: #0b1d3a; }
.landing-navbar .rr-brand-mark {
    box-shadow: 0 .45rem 1rem rgba(41, 98, 255, .2);
}
.landing-navbar .nav-link {
    border-radius: .55rem;
    position: relative;
    transition: background-color .18s ease, color .18s ease;
}
.landing-navbar .nav-link:hover,
.landing-navbar .nav-link:focus-visible {
    background: #f0f5ff;
    color: #1f57dc;
}
.landing-navbar .btn,
.landing-hero-actions .btn,
.community-panel .btn {
    border-radius: .72rem;
    transition: box-shadow .18s ease, transform .18s ease;
}
.landing-navbar .btn:hover,
.landing-hero-actions .btn:hover,
.community-panel .btn:hover {
    transform: translateY(-1px);
}
.landing-hero {
    align-items: center;
    display: flex;
    min-height: min(51rem, calc(100svh - 76px));
    padding: clamp(4.5rem, 8vh, 6.5rem) 0;
}
.landing-hero::after {
    background: linear-gradient(120deg, rgba(255,255,255,0), rgba(255,255,255,.55));
    border: 1px solid rgba(41, 98, 255, .07);
    border-radius: 50%;
    content: "";
    height: clamp(22rem, 42vw, 43rem);
    pointer-events: none;
    position: absolute;
    right: clamp(-17rem, -12vw, -7rem);
    top: clamp(-18rem, -16vw, -8rem);
    width: clamp(22rem, 42vw, 43rem);
}
.landing-hero-container { z-index: 1; }
.landing-hero-row { --bs-gutter-x: clamp(2.5rem, 4vw, 4.5rem); }
.landing-hero-copy { position: relative; z-index: 2; }
.landing-kicker {
    align-items: center;
    background: rgba(235, 243, 255, .88);
    border: 1px solid #d8e6ff;
    border-radius: 999px;
    display: inline-flex;
    gap: .55rem;
    padding: .48rem .75rem;
}
.landing-kicker i {
    background: #22b788;
    border: 3px solid #c9f3e5;
    border-radius: 50%;
    flex: 0 0 auto;
    height: .65rem;
    width: .65rem;
}
.landing-hero .hero-title {
    font-size: clamp(3rem, 5.35vw, 5rem);
    line-height: .98;
    max-width: 51rem;
    text-wrap: balance;
}
.hero-title-line { display: block; }
.landing-lead {
    color: var(--landing-muted);
    max-width: 44rem;
    text-wrap: pretty;
}
.landing-hero-actions .btn {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 3.35rem;
}
.landing-hero-actions .btn-primary {
    background: linear-gradient(110deg, #2458df, #087bd8);
    border-color: transparent;
    box-shadow: 0 .8rem 1.8rem rgba(36, 88, 223, .22);
}
.landing-hero-actions .btn-primary:hover,
.landing-hero-actions .btn-primary:focus-visible {
    background: linear-gradient(110deg, #194bcd, #006bc7);
    box-shadow: 0 1rem 2.1rem rgba(36, 88, 223, .28);
}
.landing-hero-actions .btn-light {
    background: rgba(255, 255, 255, .76);
    border-color: #d7e0ec !important;
}
.landing-hero-actions .btn-light:hover,
.landing-hero-actions .btn-light:focus-visible { background: #fff; }
.landing-trust { row-gap: .65rem !important; }
.landing-trust-item {
    align-items: center;
    display: inline-flex;
    white-space: nowrap;
}
.landing-trust-item b {
    align-items: center;
    background: #ddf7ed;
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 1.35rem;
    font-size: .73rem;
    height: 1.35rem;
    justify-content: center;
    margin-right: .48rem;
}
.landing-preview-column { position: relative; z-index: 1; }
.portal-preview-frame {
    isolation: isolate;
    margin: 1.5rem 0;
    position: relative;
}
.portal-preview-frame::before {
    background: linear-gradient(140deg, rgba(41, 98, 255, .26), rgba(0, 184, 217, .14));
    border-radius: 50%;
    content: "";
    filter: blur(1px);
    inset: -2.25rem -2.5rem -3rem 2.25rem;
    opacity: .72;
    position: absolute;
    transform: rotate(-4deg);
    z-index: -1;
}
.portal-preview {
    box-shadow: 0 2.2rem 5rem rgba(17, 49, 99, .2), 0 .3rem 1rem rgba(17, 49, 99, .08);
    transform: perspective(1100px) rotateY(-2.2deg) rotateX(1deg);
}
.portal-preview-top { min-height: 3rem; }
.preview-secure { align-items: center; display: inline-flex; gap: .4rem; }
.preview-secure::before {
    background: #2ec889;
    border-radius: 50%;
    box-shadow: 0 0 0 .22rem rgba(46, 200, 137, .12);
    content: "";
    height: .42rem;
    width: .42rem;
}
.portal-preview-body {
    background:
        radial-gradient(circle at 90% 5%, rgba(57, 156, 255, .22), transparent 32%),
        linear-gradient(145deg, #071a39, #113a78);
}
.preview-metric,
.preview-release { transition: border-color .18s ease, transform .18s ease; }
.preview-metric { backdrop-filter: blur(6px); }
.preview-release { box-shadow: 0 .6rem 1.5rem rgba(1, 15, 37, .12); }
.landing-section { position: relative; }
.landing-features {
    background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
    overflow: hidden;
}
.landing-features::before {
    background: radial-gradient(circle, rgba(41, 98, 255, .11) 1px, transparent 1.2px);
    background-size: 22px 22px;
    content: "";
    height: 17rem;
    opacity: .32;
    pointer-events: none;
    position: absolute;
    right: -2rem;
    top: 2rem;
    width: 26rem;
}
.section-heading,
.section-title { text-wrap: balance; }
.section-heading p { text-wrap: pretty; }
.feature-card {
    box-shadow: 0 .8rem 2.3rem rgba(24, 50, 93, .055);
    isolation: isolate;
    overflow: hidden;
    padding: clamp(1.5rem, 2.5vw, 2rem);
    position: relative;
}
.feature-card::before {
    background: linear-gradient(90deg, #2962ff, #00b8d9);
    content: "";
    height: 3px;
    inset: 0 32% auto 0;
    opacity: 0;
    position: absolute;
    transform: scaleX(.55);
    transform-origin: left;
    transition: opacity .2s ease, transform .2s ease;
}
.feature-card:hover::before {
    opacity: 1;
    transform: scaleX(1);
}
.feature-icon {
    box-shadow: inset 0 0 0 1px rgba(36, 89, 211, .03);
    height: 3rem;
    width: 3rem;
}
.feature-card h3 {
    font-size: 1.2rem;
    letter-spacing: -.025em;
    margin-bottom: .65rem;
}
.landing-section-soft {
    background:
        radial-gradient(circle at 12% 12%, rgba(41, 98, 255, .07), transparent 28%),
        #f6f8fc;
}
.process-intro { max-width: 31rem; }
.process-list { gap: .85rem; position: relative; }
.process-list::before {
    background: linear-gradient(#cdddf8 75%, transparent);
    content: "";
    inset: 2rem auto 2rem 2.54rem;
    position: absolute;
    width: 1px;
}
.process-item {
    box-shadow: 0 .4rem 1.2rem rgba(29, 52, 91, .035);
    gap: 1.1rem;
    min-height: 5.35rem;
    padding: 1.15rem 1.3rem;
    position: relative;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.process-item:hover {
    border-color: #cfdcf1;
    box-shadow: 0 .75rem 1.8rem rgba(29, 52, 91, .07);
    transform: translateX(.18rem);
}
.process-item > span {
    box-shadow: 0 0 0 .38rem #fff;
    position: relative;
    z-index: 1;
}
.process-item h3 { font-size: 1.04rem; }
.process-item p { line-height: 1.55; }
.model-pills span { box-shadow: 0 .25rem .8rem rgba(31, 78, 160, .035); }
.support-card {
    isolation: isolate;
    overflow: hidden;
    position: relative;
}
.support-card::after {
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
    content: "";
    height: 13rem;
    pointer-events: none;
    position: absolute;
    right: -6rem;
    top: -7rem;
    width: 13rem;
    z-index: -1;
}
.support-card a {
    align-items: center;
    display: inline-flex;
    gap: .45rem;
}
.support-card a span { transition: transform .18s ease; }
.support-card a:hover span { transform: translateX(.2rem); }
.community-panel > * { position: relative; z-index: 1; }
.community-panel .d-flex { flex: 0 0 auto; }
.landing-shell a:focus-visible,
.landing-shell button:focus-visible {
    outline: 3px solid rgba(36, 89, 211, .28);
    outline-offset: 3px;
}

@media (min-width: 992px) {
    .process-intro { position: sticky; top: 8rem; }
}

@media (max-width: 1199.98px) {
    .landing-hero .hero-title { font-size: clamp(3rem, 5.8vw, 4.45rem); }
    .landing-trust { column-gap: 1rem !important; }
    .portal-preview-body { padding: 1.7rem; }
}

@media (max-width: 991.98px) {
    .landing-navbar { min-height: 70px; }
    .landing-menu { max-height: calc(100vh - 6rem); overflow-y: auto; }
    .landing-nav-actions .btn { flex: 1; }
    .landing-hero {
        min-height: auto;
        padding: clamp(4rem, 9vw, 5.5rem) 0;
    }
    .landing-hero-row { --bs-gutter-x: 1.5rem; row-gap: 4.5rem; }
    .landing-hero-copy { max-width: 48rem; }
    .landing-hero .hero-title { font-size: clamp(3.25rem, 9.3vw, 5.15rem); max-width: 50rem; }
    .landing-lead { max-width: 42rem; }
    .landing-preview-column { margin: 0 auto; max-width: 43rem; }
    .portal-preview-frame { margin: 0; }
    .portal-preview-frame::before { inset: -1.6rem -1.4rem -2rem 2rem; }
    .portal-preview { transform: none; }
    .landing-section { padding: clamp(4.5rem, 10vw, 6rem) 0; }
    .process-intro { max-width: 42rem; }
}

@media (max-width: 767.98px) {
    .landing-kicker { font-size: .7rem; letter-spacing: .1em; }
    .landing-hero .hero-title { font-size: clamp(2.85rem, 11vw, 4.3rem); }
    .landing-lead { font-size: 1rem; line-height: 1.7; }
    .landing-trust { align-items: flex-start; flex-direction: column; }
    .section-heading h2,
    .section-title { font-size: clamp(2rem, 7.5vw, 2.7rem); }
    .process-list::before { left: 2.44rem; }
    .community-panel { gap: 2rem; }
    .community-panel .d-flex { width: 100%; }
    .community-panel .btn { flex: 1 1 12rem; }
}

@media (max-width: 575.98px) {
    .landing-nav-inner { flex-wrap: nowrap; }
    .landing-navbar .rr-brand { font-size: .88rem; min-width: 0; }
    .landing-navbar .rr-brand > span:last-child {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .landing-navbar .navbar-toggler { flex: 0 0 auto; padding: .38rem .5rem; }
    .landing-navbar .navbar-collapse {
        left: .75rem;
        position: absolute;
        right: .75rem;
        top: calc(100% - .25rem);
    }
    .landing-hero { padding: 3.75rem 0 4.25rem; }
    .landing-hero-row { row-gap: 3.5rem; }
    .landing-kicker { padding: .42rem .62rem; }
    .landing-hero .hero-title { font-size: clamp(2.25rem, 11.4vw, 3.25rem); line-height: 1.01; }
    .landing-hero-actions { display: grid !important; gap: .75rem !important; grid-template-columns: 1fr; }
    .landing-hero-actions .btn { width: 100%; }
    .landing-preview-column { padding-left: .85rem; padding-right: .85rem; }
    .portal-preview-frame::before { inset: -1rem -.6rem -1.3rem 1rem; }
    .portal-preview { border-radius: 1.2rem; }
    .portal-preview-body { padding: 1.3rem; }
    .preview-welcome { margin-bottom: 1.25rem !important; }
    .preview-welcome h2 { font-size: 1.45rem; }
    .preview-release { gap: .65rem; padding: .75rem; }
    .preview-release-icon { flex: 0 0 2.35rem; height: 2.35rem; width: 2.35rem; }
    .landing-section { padding: 4.25rem 0; }
    .section-heading { margin-bottom: 2.25rem !important; }
    .feature-card { border-radius: 1rem; }
    .process-item { padding: 1rem; }
    .process-item > span { flex-basis: 2.4rem; height: 2.4rem; }
    .process-list::before { left: 2.18rem; }
    .community-panel { padding: 1.65rem; }
    .community-panel .btn { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .landing-shell *,
    .landing-shell *::before,
    .landing-shell *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* Authenticated member and admin workspaces */
.app-shell {
    background:
        radial-gradient(circle at 100% 0, rgba(41, 98, 255, .045), transparent 25rem),
        #f5f7fb;
    min-height: 100vh;
}
.app-skip-link {
    background: #fff;
    border: 1px solid #cfd9e8;
    border-radius: .65rem;
    box-shadow: 0 .75rem 2rem rgba(15, 39, 82, .18);
    color: #164fc4;
    font-weight: 750;
    left: 1rem;
    padding: .72rem 1rem;
    position: fixed;
    top: 1rem;
    z-index: 2000;
}
.app-shell .app-sidebar {
    border-right: 1px solid rgba(255, 255, 255, .07);
    box-shadow: .75rem 0 2.5rem rgba(5, 17, 39, .08);
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: 100svh;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: rgba(255, 255, 255, .22) transparent;
    scrollbar-width: thin;
}
.sidebar-brand { border-radius: .75rem; min-width: 0; }
.sidebar-brand:hover { background: rgba(255, 255, 255, .045); }
.sidebar-brand-copy { display: grid; line-height: 1.15; min-width: 0; }
.sidebar-brand-copy strong {
    font-size: .98rem;
    letter-spacing: -.025em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sidebar-brand-copy small {
    color: #91a6c6;
    font-size: .68rem;
    font-weight: 650;
    letter-spacing: .08em;
    margin-top: .25rem;
    text-transform: uppercase;
}
.app-shell .sidebar-label { color: #879ab7; }
.sidebar-nav { display: grid; gap: .12rem; }
.app-shell .sidebar-link {
    align-items: center;
    border: 1px solid transparent;
    line-height: 1.35;
    min-height: 2.7rem;
    position: relative;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.app-shell .sidebar-link:hover { transform: translateX(.12rem); }
.app-shell .sidebar-link.active {
    border-color: rgba(141, 214, 255, .18);
    box-shadow: 0 .45rem 1.1rem rgba(0, 18, 52, .14);
}
.app-shell .sidebar-link.active::before {
    background: #9ae7ff;
    border-radius: 999px;
    content: "";
    height: 1.2rem;
    left: -.2rem;
    position: absolute;
    width: .18rem;
}
.app-shell .app-main { min-width: 0; }
.app-shell .topbar {
    box-shadow: 0 .2rem 1rem rgba(27, 48, 82, .035);
    z-index: 1020;
}
.topbar-context {
    align-items: flex-start;
    flex-direction: column;
    line-height: 1.15;
}
.topbar-context span {
    color: #7b899e;
    font-size: .67rem;
    font-weight: 750;
    letter-spacing: .1em;
    margin-bottom: .25rem;
    text-transform: uppercase;
}
.topbar-context strong { color: #24334e; font-size: .94rem; }
.app-menu-button { align-items: center; display: inline-flex; gap: .45rem; }
.user-menu-button {
    background: #fff;
    border: 1px solid #e1e7f0;
    border-radius: .72rem;
    color: #24334e;
    display: inline-flex;
    padding: .42rem .72rem;
}
.user-menu-button:hover,
.user-menu-button:focus-visible { background: #f7f9fc; border-color: #cbd7e8; color: #17233a; }
.user-menu-copy { display: grid; line-height: 1.15; max-width: 18rem; text-align: left; }
.user-menu-copy strong,
.user-menu-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-menu-copy strong { font-size: .84rem; }
.user-menu-copy small { color: #738197; font-size: .68rem; font-weight: 500; margin-top: .18rem; }
.app-shell .content-wrap {
    margin-inline: auto;
    max-width: 105rem;
    padding: clamp(1.25rem, 2.25vw, 2.25rem);
    width: 100%;
}
.app-shell .content-wrap:focus { outline: none; }
.app-shell .page-title { color: #13233f; font-size: clamp(1.55rem, 2.2vw, 2rem); }
.app-shell .panel-card,
.app-shell .metric-card {
    background: rgba(255, 255, 255, .96);
    border-color: #e0e6f0;
}
.app-shell .panel-card { box-shadow: 0 .45rem 1.5rem rgba(26, 49, 86, .055); overflow: hidden; }
.app-shell .panel-card .card-header { border-bottom-color: #e7ebf2; }
.app-shell .metric-card { box-shadow: 0 .65rem 1.7rem rgba(26, 49, 86, .07); }
.app-shell .metric-number { color: #122442; margin-top: .2rem; }
.app-shell .table-responsive {
    outline: none;
    scrollbar-color: #aebbd0 #eef2f7;
    scrollbar-width: thin;
}
.app-shell .table-responsive:focus-visible {
    box-shadow: inset 0 0 0 3px rgba(41, 98, 255, .2);
}
.app-shell .table { --bs-table-bg: transparent; }
.app-shell .table > tbody > tr { transition: background-color .14s ease; }
.app-shell .table > tbody > tr:hover { background: #f7faff; }
.app-shell .table thead th {
    background: #f8faff;
    border-bottom-color: #dfe5ef;
    color: #52627a;
    font-weight: 750;
}
.app-shell .table tbody td { border-bottom-color: #edf0f5; }
.app-shell .table tbody tr:last-child td { border-bottom-width: 0; }
.app-shell .form-control,
.app-shell .form-select { border-color: #d8e0eb; border-radius: .65rem; min-height: 2.65rem; }
.app-shell .form-control:focus,
.app-shell .form-select:focus {
    border-color: #6489ef;
    box-shadow: 0 0 0 .2rem rgba(41, 98, 255, .12);
}
.app-shell .btn { border-radius: .62rem; }
.app-shell .dropdown-menu { border-color: #e0e6ef; border-radius: .75rem; padding: .45rem; }
.app-shell .dropdown-item { border-radius: .48rem; }
.app-shell .app-footer { background: rgba(255, 255, 255, .56); }
.app-offcanvas { max-width: min(21rem, 88vw); }
.app-offcanvas .offcanvas-header { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.app-offcanvas .sidebar-link { color: #bdc9dc; }
.app-shell :is(a, button, input, select, textarea, summary):focus-visible,
.app-offcanvas :is(a, button):focus-visible {
    outline: 3px solid rgba(75, 135, 255, .32);
    outline-offset: 2px;
}

.password-field { position: relative; }
.password-field .form-control { padding-right: 6.25rem; }
.password-toggle {
    background: transparent;
    border: 0;
    border-radius: .45rem;
    color: #315ea8;
    font-size: .76rem;
    font-weight: 750;
    padding: .35rem .5rem;
    position: absolute;
    right: .45rem;
    top: 50%;
    transform: translateY(-50%);
}
.password-toggle:hover { background: #eef4ff; color: #174bb0; }
.password-toggle:focus-visible { outline: 3px solid rgba(41, 98, 255, .22); outline-offset: 1px; }

@media (max-width: 991.98px) {
    .app-shell .app-sidebar { display: none; }
    .app-shell .content-wrap { padding: 1.25rem; }
}

@media (max-width: 575.98px) {
    .app-shell .content-wrap { padding: 1rem; }
    .app-shell .topbar { min-height: 62px; }
    .app-shell .topbar .badge { margin-left: .55rem !important; }
    .user-menu-copy { max-width: 9.5rem; }
    .user-menu-copy small { display: none; }
    .admin-shell .topbar .badge { display: none; }
    .app-shell .panel-card { border-radius: .85rem; }
    .app-shell .card-body.p-4 { padding: 1.25rem !important; }
    .app-shell .table > :not(caption) > * > * { padding: .75rem .65rem; }
}

@media (prefers-reduced-motion: reduce) {
    .app-shell *,
    .app-shell *::before,
    .app-shell *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

