@import '_content/Riproka.UI.Auth/Riproka.UI.Auth.jzkswnpu9e.bundle.scp.css';
@import '_content/Riproka.UI.Controls/Riproka.UI.Controls.jy35wvuf83.bundle.scp.css';

/* /Layout/AdminLayout.razor.rz.scp.css */
/*
    The fleet console shell.

    No z-index on .shell or .main. Giving a layout container a z-index creates a stacking
    context and traps every overlay underneath the app bar - the ladder note is in
    rk-tokens.css.
*/

.shell[b-gy029liuns] {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--rk-paper);
}

.appbar[b-gy029liuns] {
    position: sticky;
    top: 0;
    z-index: var(--rk-z-bar);
    /*
        THE PERMANENT-CHROME PAIR, NOT ink/white. In the dark theme --rk-ink and --rk-white
        resolve to the SAME value and this bar would render its wordmark invisibly. It
        shipped that way once. --rk-chrome-bg / --rk-chrome-ink do not flip.
    */
    background: var(--rk-chrome-bg);
    color: var(--rk-chrome-ink);
    /* Danger rather than accent: this bar is the one that says you are in the control plane. */
    border-bottom: var(--rk-btn-edge) solid var(--rk-danger);
    padding-top: env(safe-area-inset-top);
}

/* Width and gutter come from the kit's .rk-col utility, applied in the markup. */
.appbar-inner[b-gy029liuns] {
    display: flex;
    align-items: baseline;
    gap: var(--rk-sp-12);
    min-height: var(--rk-control-h);
    flex-wrap: wrap;
}

.mark[b-gy029liuns] {
    font-family: var(--rk-font-display);
    font-size: var(--rk-fs-5xl);
    font-weight: var(--rk-fw-bold);
    letter-spacing: var(--rk-track-5xl);
    text-transform: uppercase;
}

.tag[b-gy029liuns] {
    font-size: var(--rk-fs-xs);
    letter-spacing: var(--rk-track-lg);
    text-transform: uppercase;
    color: var(--rk-chrome-mute);
}

.nav[b-gy029liuns] {
    display: flex;
    gap: var(--rk-sp-14);
    margin-left: auto;
}

.nav-link[b-gy029liuns] {
    font-family: var(--rk-font-display);
    font-size: var(--rk-fs-xl);
    font-weight: var(--rk-fw-semibold);
    letter-spacing: var(--rk-track-xl);
    text-transform: uppercase;
    text-decoration: none;
    color: var(--rk-chrome-mute);
}

.nav-link:hover[b-gy029liuns] {
    color: var(--rk-chrome-ink);
}

.nav-link.active[b-gy029liuns] {
    color: var(--rk-chrome-ink);
    border-bottom: var(--rk-sp-3) solid var(--rk-danger);
}

.who[b-gy029liuns] {
    display: flex;
    align-items: baseline;
    gap: var(--rk-sp-10);
    margin-left: var(--rk-sp-16);
}

.who-name[b-gy029liuns] {
    font-size: var(--rk-fs-sm);
    letter-spacing: var(--rk-track-2xs);
    color: var(--rk-chrome-ink);
}

/* A sentence, not a button - it must not compete with anything on the page below. */
.who-out[b-gy029liuns] {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: var(--rk-font-body);
    font-size: var(--rk-fs-xs);
    letter-spacing: var(--rk-track-xl);
    text-transform: uppercase;
    text-decoration: underline;
    color: var(--rk-chrome-mute);
}

.who-out:hover[b-gy029liuns] {
    color: var(--rk-chrome-ink);
}

/* The standing scope warning. Quiet, permanent, never dismissible. */
.scope[b-gy029liuns] {
    display: flex;
    align-items: center;
    gap: var(--rk-sp-10);
    padding-top: var(--rk-sp-14);
}

.scope-note[b-gy029liuns] {
    font-size: var(--rk-fs-sm);
    letter-spacing: var(--rk-track-2xs);
    color: var(--rk-ink-soft);
}

.main[b-gy029liuns] {
    flex: 1;
    padding-top: var(--rk-sp-16);
    padding-bottom: var(--rk-sp-28);
}

@media (max-width: 639px) {
    .tag[b-gy029liuns] {
        display: none;
    }

    .who[b-gy029liuns] {
        margin-left: 0;
    }

    .scope-note[b-gy029liuns] {
        font-size: var(--rk-fs-xs);
    }
}
/* /Pages/Company.razor.rz.scp.css */
/* One company. Layout only - every value is a token. */

.co__notice[b-a177kzl02l] {
    margin-bottom: var(--rk-sp-14);
}

/* The route, as a definition list: a label column and a value column that stays mono. */
.co__route[b-a177kzl02l] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--rk-sp-6) var(--rk-sp-16);
    margin: 0 0 var(--rk-sp-16);
}

.co__route dt[b-a177kzl02l] {
    font-size: var(--rk-fs-xs);
    font-weight: var(--rk-fw-semibold);
    letter-spacing: var(--rk-track-xl);
    text-transform: uppercase;
    color: var(--rk-steel);
}

.co__route dd[b-a177kzl02l] {
    margin: 0;
    font-family: var(--rk-font-mono);
    font-size: var(--rk-fs-lg);
    color: var(--rk-ink);
    overflow-wrap: anywhere;
}

/*
    The clock is READ-ONLY on this screen, deliberately: the two ids are one fact and the
    save proc refuses a half-filled pair, so they are changed together through the register
    flow rather than edited as two boxes that can disagree.
*/
.co__clock[b-a177kzl02l] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--rk-sp-10);
    padding: var(--rk-sp-10) 0;
    border-top: var(--rk-border-hair) dashed var(--rk-line);
}

.co__clocklabel[b-a177kzl02l] {
    font-size: var(--rk-fs-xs);
    font-weight: var(--rk-fw-semibold);
    letter-spacing: var(--rk-track-xl);
    text-transform: uppercase;
    color: var(--rk-steel);
}

.co__clockwin[b-a177kzl02l] {
    font-size: var(--rk-fs-sm);
    color: var(--rk-ink-soft);
}
/* /Pages/Fleet.razor.rz.scp.css */
/* The fleet list. Layout only - every value is a token. */

.fleet__notice[b-fwzhx4ngxk] {
    margin-bottom: var(--rk-sp-14);
}

.fleet__filters[b-fwzhx4ngxk] {
    display: flex;
    flex-direction: column;
    gap: var(--rk-sp-10);
    margin-bottom: var(--rk-sp-16);
}

/* The trading name sits under the legal name, quieter - it is the same company. */
.fleet__trading[b-fwzhx4ngxk] {
    display: block;
    font-size: var(--rk-fs-sm);
    color: var(--rk-steel);
}

/* Server over database rather than beside: two mono strings on one line read as one string. */
.fleet__db[b-fwzhx4ngxk] {
    display: block;
    font-size: var(--rk-fs-sm);
    color: var(--rk-ink-soft);
}

@media (min-width: 640px) {
    .fleet__filters[b-fwzhx4ngxk] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}
/* /Pages/ImportPeople.razor.rz.scp.css */
/* Loading people from a file. Layout only - every value is a token.

   ⚠️ THE FIRST DRAFT INVENTED ELEVEN OF THEM - --rk-space-4, --rk-text-sm, --rk-rule,
   --rk-border-strong and seven more - and every one COMPILED, because CSS drops a
   declaration that reads an undeclared custom property and renders as though nothing was
   set. Riproka.Tests' EveryTokenAComponentReadsActuallyExists is what caught it, and its
   own message says why it is a build failure rather than a warning: it "looks almost
   right". The real scale is --rk-sp-N and --rk-fs-*; there is no spacing or type token
   named after its purpose. */

.imp[b-mm8n9bvxq9] {
    display: flex;
    flex-direction: column;
    gap: var(--rk-sp-16);
    max-width: 72rem;
}

.imp__notice[b-mm8n9bvxq9] {
    margin-block: var(--rk-sp-10);
}

/* ------------------------------------------------------------------ the numbered steps */

.imp__step[b-mm8n9bvxq9] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--rk-sp-12);
    align-items: start;
    padding: var(--rk-sp-14);
    background: var(--rk-card);
    border: var(--rk-border-card);
}

/* The step number wears the permanent dark chrome pair, which does NOT flip with the
   theme - pairing --rk-ink with --rk-white resolves to a 1:1 ratio in dark mode and the
   text disappears. That shipped once. */
.imp__num[b-mm8n9bvxq9] {
    display: grid;
    place-items: center;
    inline-size: var(--rk-control-sm);
    block-size: var(--rk-control-sm);
    font-family: var(--rk-font-display);
    font-size: var(--rk-fs-lg);
    color: var(--rk-chrome-ink);
    background: var(--rk-chrome-bg);
}

.imp__body[b-mm8n9bvxq9] {
    display: flex;
    flex-direction: column;
    gap: var(--rk-sp-10);
    min-inline-size: 0;
}

.imp__word[b-mm8n9bvxq9] {
    font-family: var(--rk-font-display);
    font-size: var(--rk-fs-sm);
    letter-spacing: var(--rk-track-lg);
    text-transform: uppercase;
    color: var(--rk-ink-soft);
}

.imp__hint[b-mm8n9bvxq9] {
    margin: 0;
    font-size: var(--rk-fs-sm);
    color: var(--rk-steel);
    max-inline-size: var(--rk-measure);
}

/* Two pickers side by side on a desktop, stacked on a phone. */
.imp__grid[b-mm8n9bvxq9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--rk-sp-10);
}

/* ------------------------------------------------------------------ the column reference */

.imp__cols summary[b-mm8n9bvxq9] {
    cursor: pointer;
    font-size: var(--rk-fs-sm);
    color: var(--rk-steel);
}

.imp__cols dl[b-mm8n9bvxq9] {
    display: grid;
    grid-template-columns: minmax(10rem, auto) 1fr;
    gap: var(--rk-sp-6) var(--rk-sp-12);
    margin-block: var(--rk-sp-10) 0;
    font-size: var(--rk-fs-sm);
}

.imp__cols dt[b-mm8n9bvxq9] {
    font-family: var(--rk-font-display);
    letter-spacing: var(--rk-track-lg);
    text-transform: uppercase;
    color: var(--rk-ink);
}

.imp__cols dd[b-mm8n9bvxq9] {
    margin: 0;
    color: var(--rk-steel);
}

/* ------------------------------------------------------------------ the actions */

.imp__acts[b-mm8n9bvxq9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--rk-sp-10);
}

.imp__act-hint[b-mm8n9bvxq9] {
    font-size: var(--rk-fs-sm);
    color: var(--rk-steel);
}

/* ------------------------------------------------------------------ the counts */

.imp__counts[b-mm8n9bvxq9] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--rk-sp-10);
    margin: 0;
}

.imp__counts > div[b-mm8n9bvxq9] {
    flex: 1 1 10rem;
    padding: var(--rk-sp-10);
    background: var(--rk-card);
    border: var(--rk-border-card);
}

.imp__counts dt[b-mm8n9bvxq9] {
    font-family: var(--rk-font-display);
    font-size: var(--rk-fs-xs);
    letter-spacing: var(--rk-track-lg);
    text-transform: uppercase;
    color: var(--rk-steel);
}

.imp__counts dd[b-mm8n9bvxq9] {
    margin: 0;
    font-family: var(--rk-font-mono);
    font-size: var(--rk-fs-2xl);
    color: var(--rk-ink);
}

/* A count that needs reading gets a RAIL rather than coloured text. Warn and danger ink on
   paper is the pair that fails the contrast test when the theme flips, and a 4px edge reads
   from further away than a tinted numeral anyway. */
.imp__counts .imp__warn[b-mm8n9bvxq9] {
    border-inline-start: var(--rk-rail) solid var(--rk-warn);
}

.imp__counts .imp__bad[b-mm8n9bvxq9] {
    border-inline-start: var(--rk-rail) solid var(--rk-danger);
}

.imp__counts .imp__ok[b-mm8n9bvxq9] {
    border-inline-start: var(--rk-rail) solid var(--rk-ok);
}

.imp__counts .imp__upd[b-mm8n9bvxq9] {
    border-inline-start: var(--rk-rail) solid var(--rk-accent);
}

/* ------------------------------------------------------------------ what the columns go to */

/* Read-only: the mapping is the company's to edit, on its own Setup. One line per used column. */
.imp__map[b-mm8n9bvxq9] {
    display: grid;
    grid-template-columns: minmax(10rem, max-content) minmax(0, 1fr);
    gap: var(--rk-sp-4) var(--rk-sp-12);
    margin: 0;
    font-size: var(--rk-fs-sm);
}

.imp__map > div[b-mm8n9bvxq9] {
    display: contents;
}

.imp__map dt[b-mm8n9bvxq9] {
    font-weight: var(--rk-fw-semibold);
    color: var(--rk-ink);
    overflow-wrap: anywhere;
}

.imp__map dd[b-mm8n9bvxq9] {
    margin: 0;
    color: var(--rk-steel);
}

.imp__list[b-mm8n9bvxq9] {
    margin: 0 0 var(--rk-sp-6);
    padding-inline-start: var(--rk-sp-16);
    font-size: var(--rk-fs-sm);
}

.imp__h[b-mm8n9bvxq9] {
    margin: var(--rk-sp-12) 0 0;
    font-family: var(--rk-font-display);
    font-size: var(--rk-fs-lg);
    letter-spacing: var(--rk-track-lg);
    text-transform: uppercase;
}

@media (max-width: 640px) {
    .imp__step[b-mm8n9bvxq9] {
        grid-template-columns: 1fr;
    }

    .imp__cols dl[b-mm8n9bvxq9],
    .imp__map[b-mm8n9bvxq9] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Sessions.razor.rz.scp.css */
/* Sessions. Layout only - every value is a token. */

.ses__notice[b-3vgb5xiopq] {
    margin-bottom: var(--rk-sp-14);
}

.ses__email[b-3vgb5xiopq],
.ses__where[b-3vgb5xiopq] {
    display: block;
    font-family: var(--rk-font-mono);
    font-size: var(--rk-fs-sm);
    color: var(--rk-steel);
    overflow-wrap: anywhere;
}

.ses__actions[b-3vgb5xiopq] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--rk-sp-12);
    margin-top: var(--rk-sp-14);
}
/* /Pages/User.razor.rz.scp.css */
/* One person. Layout only - every value is a token. */

.usr__notice[b-bzh02dbd0k] {
    margin-bottom: var(--rk-sp-14);
}

/*
    WHAT IS STILL OWED AFTER A PASSWORD IS SET. A list rather than one run-on sentence,
    because each line is a separate job with a separate door - enable the account, grant a
    membership, check the employee row - and an operator works down them one at a time.
*/
.usr__owed[b-bzh02dbd0k] {
    margin: 0;
    padding-left: var(--rk-sp-16);
}

.usr__owed li + li[b-bzh02dbd0k] {
    margin-top: var(--rk-sp-6);
}

/* The role checklist. A fieldset, because these ticks are one question. */
.usr__roles[b-bzh02dbd0k] {
    border: var(--rk-border-hair) dashed var(--rk-line);
    border-radius: var(--rk-radius-0);
    padding: var(--rk-sp-12);
    margin: var(--rk-sp-14) 0;
}

.usr__roles legend[b-bzh02dbd0k] {
    font-size: var(--rk-fs-xs);
    font-weight: var(--rk-fw-semibold);
    letter-spacing: var(--rk-track-xl);
    text-transform: uppercase;
    color: var(--rk-steel);
    padding: 0 var(--rk-sp-6);
}

/*
    THE TOKEN, SHOWN ONCE.

    Mono, selectable, and allowed to wrap - a credential that overflows its box is a
    credential somebody copies half of. It sits on the FIELD surface rather than on white:
    --rk-white and --rk-ink resolve to the same value in the dark theme, and a token nobody
    can read is worse here than anywhere else on the screen.
*/
.usr__token[b-bzh02dbd0k] {
    margin: var(--rk-sp-14) 0 0;
    padding: var(--rk-sp-12);
    background: var(--rk-field);
    border: var(--rk-border) solid var(--rk-line-hard);
    font-family: var(--rk-font-mono);
    font-size: var(--rk-fs-lg);
    line-height: var(--rk-lh-snug);
    color: var(--rk-ink);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    user-select: all;
}
/* /Pages/Users.razor.rz.scp.css */
/* The people list. Layout only - every value is a token. */

.ppl__notice[b-ldrqbzth9v] {
    margin-bottom: var(--rk-sp-14);
}

.ppl__filters[b-ldrqbzth9v] {
    display: flex;
    flex-direction: column;
    gap: var(--rk-sp-10);
    margin-bottom: var(--rk-sp-16);
}

/* The login handle under the name: the same person, said twice, so the second is quieter. */
.ppl__email[b-ldrqbzth9v] {
    display: block;
    font-family: var(--rk-font-mono);
    font-size: var(--rk-fs-sm);
    color: var(--rk-steel);
    overflow-wrap: anywhere;
}

@media (min-width: 640px) {
    .ppl__filters[b-ldrqbzth9v] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}
