/* /Components/AppointmentGate.razor.rz.scp.css */
/* Self-contained: this component renders one .gate at the top level, so the
   variables live on it rather than on a wrapper it doesn't own. */

.gate[b-w1yxa6417x] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414;
    --steel: #333c4a;
    --rich-bg: #fbe9e2; --stoich-bg: #fbf1dd; --lean-bg: #eaf2df;

    color: var(--ink);
    border: 1px solid var(--rule);
    border-left: 3px solid var(--rule);
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 8px;
    background: #fff;
}

.gate.cleared[b-w1yxa6417x] { border-left-color: var(--lean); }
.gate.waiting[b-w1yxa6417x] { border-left-color: var(--stoich); background: #fffdf8; }
.gate.blocked[b-w1yxa6417x] { border-left-color: var(--rich); background: #fffaf8; }

.g-head[b-w1yxa6417x] { display: flex; align-items: center; gap: 9px; font-size: 14px; }

.dot[b-w1yxa6417x] { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.gate.cleared .dot[b-w1yxa6417x] { background: var(--lean); }
.gate.waiting .dot[b-w1yxa6417x] { background: var(--stoich); }
.gate.blocked .dot[b-w1yxa6417x] { background: var(--rich); }

.g-name[b-w1yxa6417x] { font-weight: 500; min-width: 110px; }
.g-note[b-w1yxa6417x] { color: var(--ink-2); }
.gate.blocked .g-note[b-w1yxa6417x] { color: var(--rich); }

.g-action[b-w1yxa6417x] {
    display: flex; align-items: flex-end; gap: 8px;
    margin-top: 11px; flex-wrap: wrap;
}

.inline[b-w1yxa6417x] { display: flex; flex-direction: column; gap: 3px; }
.inline.narrow[b-w1yxa6417x] { max-width: 90px; }

.k[b-w1yxa6417x] { font-size: 12px; color: var(--ink-3); }

.g-action input[b-w1yxa6417x], .g-action select[b-w1yxa6417x] {
    font: inherit; font-size: 14px; padding: 6px 9px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff;
}

.g-action .grow[b-w1yxa6417x] { flex: 1; min-width: 180px; }

.g-action input:focus-visible[b-w1yxa6417x], .g-action select:focus-visible[b-w1yxa6417x] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.btn-sm[b-w1yxa6417x] {
    font: inherit; font-size: 14px; font-weight: 500;
    padding: 7px 14px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer;
}
.btn-sm:hover[b-w1yxa6417x] { background: #29313d; }
.btn-sm:disabled[b-w1yxa6417x] { opacity: .5; cursor: default; }

.btn-ghost-sm[b-w1yxa6417x] {
    font: inherit; font-size: 14px;
    padding: 7px 13px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff; color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-w1yxa6417x] { border-color: var(--ink-3); }
.btn-ghost-sm:disabled[b-w1yxa6417x] { opacity: .5; cursor: default; }
.btn-ghost-sm.danger[b-w1yxa6417x] { color: var(--rich); border-color: #f0c3b0; }
.btn-ghost-sm.danger:hover[b-w1yxa6417x] { background: var(--rich-bg); }

.fine[b-w1yxa6417x] { font-size: 12px; color: var(--ink-3); margin: 9px 0 0; line-height: 1.5; }
.warn-text[b-w1yxa6417x] { color: var(--rich); }
/* /Components/DangerZone.razor.rz.scp.css */
.danger[b-8k8hbsj8v7] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rich: #cc4318; --rich-bg: #fbe8e1;

    margin-top: 40px;
    padding-top: 18px;
    border-top: 1px solid var(--rule);
}

/* Deliberately quiet until asked for. A destructive action shouldn't sit
   there catching the eye next to things you press all day. */
.reveal[b-8k8hbsj8v7] {
    font: inherit;
    font-size: 13px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--ink-3);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.reveal:hover[b-8k8hbsj8v7] { color: var(--rich); }

.panel[b-8k8hbsj8v7] {
    border: 1px solid #edc0ac;
    border-radius: 6px;
    background: var(--rich-bg);
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 520px;
}

.panel h3[b-8k8hbsj8v7] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 17px;
    font-weight: 600;
    margin: 0;
    color: #8a2f10;
}

.blocked[b-8k8hbsj8v7] {
    margin: 0;
    font-size: 14px;
    color: #8a2f10;
    font-weight: 500;
}

.fine[b-8k8hbsj8v7] {
    margin: 0;
    font-size: 12px;
    color: var(--ink-2);
    line-height: 1.55;
}

label[b-8k8hbsj8v7] { display: flex; flex-direction: column; gap: 4px; }
.k[b-8k8hbsj8v7] { font-size: 13px; color: var(--ink-2); }

input[b-8k8hbsj8v7] {
    font: inherit;
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    padding: 8px 10px;
    border: 1px solid #edc0ac;
    border-radius: 5px;
    background: #fff;
    width: 100%;
    max-width: 220px;
}

input:focus-visible[b-8k8hbsj8v7] { outline: 2px solid var(--rich); outline-offset: -1px; }

.acts[b-8k8hbsj8v7] { display: flex; gap: 8px; align-items: center; }

.btn-danger[b-8k8hbsj8v7] {
    font: inherit;
    font-weight: 500;
    padding: 9px 18px;
    border-radius: 5px;
    border: 1px solid var(--rich);
    background: var(--rich);
    color: #fff;
    cursor: pointer;
}

.btn-danger:hover:not(:disabled)[b-8k8hbsj8v7] { background: #a8360f; }
.btn-danger:disabled[b-8k8hbsj8v7] { opacity: .4; cursor: not-allowed; }

.btn-ghost-sm[b-8k8hbsj8v7] {
    font: inherit;
    font-size: 13px;
    padding: 7px 13px;
    border-radius: 5px;
    border: 1px solid var(--rule);
    background: #fff;
    color: var(--ink-2);
    cursor: pointer;
}
.btn-ghost-sm:hover[b-8k8hbsj8v7] { border-color: var(--ink-3); color: var(--ink); }
/* /Components/DynoPanel.razor.rz.scp.css */
.dyno-panel[b-53n39tk1rk] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;
    --stoich-bg: #fbf1dc;

    color: var(--ink);
    margin-top: 30px;
}

.mono[b-53n39tk1rk] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
        font-variant-numeric: tabular-nums; }

h2[b-53n39tk1rk] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; font-weight: 600; margin: 0 0 12px;
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
    display: flex; align-items: baseline; gap: 12px;
}

/* The headline figure sits in the heading, because it's the one number
   anyone opening this section came for. */
.headline[b-53n39tk1rk] {
    font-family: "IBM Plex Mono", monospace;
    font-size: 14px; font-weight: 500;
    color: var(--stoich);
    margin-left: auto;
}

.pulls[b-53n39tk1rk] { display: flex; flex-direction: column; gap: 10px; }

.pull[b-53n39tk1rk] {
    padding: 12px 14px;
    border: 1px solid var(--rule-2);
    border-left: 3px solid var(--rule);
    border-radius: 6px;
    background: #fff;
}

.pull.best[b-53n39tk1rk] { border-left-color: var(--stoich); background: #fffdf8; }

.run[b-53n39tk1rk] { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }

.run .n[b-53n39tk1rk] {
    font-size: 12px; color: var(--ink-3);
    border: 1px solid var(--rule); border-radius: 999px;
    padding: 1px 9px;
}

.tag[b-53n39tk1rk] {
    font-size: 10px; text-transform: uppercase; letter-spacing: .05em;
    padding: 2px 8px; border-radius: 999px;
    background: var(--stoich-bg); color: #8d6008;
}

.tag.pub[b-53n39tk1rk] { background: #eef4e4; color: #3f6209; }

/* ── the numbers ── */

.figures[b-53n39tk1rk] { display: flex; gap: 26px; flex-wrap: wrap; }

.fig[b-53n39tk1rk] { display: flex; flex-direction: column; }

.fig .v[b-53n39tk1rk] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 28px; font-weight: 600; line-height: 1;
}

.fig .u[b-53n39tk1rk] { font-size: 11px; color: var(--ink-3); margin-top: 2px; }

.cond[b-53n39tk1rk] {
    display: flex; flex-wrap: wrap; gap: 12px;
    margin-top: 9px; font-size: 12px; color: var(--ink-2);
}

.changes[b-53n39tk1rk], .notes[b-53n39tk1rk] { font-size: 13px; color: var(--ink-2); margin-top: 7px; line-height: 1.5; }
.notes[b-53n39tk1rk] { font-style: italic; }

.graph[b-53n39tk1rk] { display: block; margin-top: 10px; max-width: 420px; }

.graph img[b-53n39tk1rk] {
    width: 100%; display: block;
    border: 1px solid var(--rule); border-radius: 5px;
}

.acts[b-53n39tk1rk] { display: flex; gap: 6px; margin-top: 11px; align-items: center; }

.icon[b-53n39tk1rk] {
    font: inherit; font-size: 16px; line-height: 1;
    width: 26px; height: 26px; padding: 0; margin-left: auto;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; color: var(--ink-3); cursor: pointer;
}
.icon:hover[b-53n39tk1rk] { color: var(--rich); border-color: #edc0ac; }

.add[b-53n39tk1rk] { margin-top: 12px; }

/* ── editor ── */

.editor[b-53n39tk1rk] {
    margin-top: 12px; padding: 14px;
    border: 1px solid var(--rule); border-radius: 6px;
    background: #fcfcfa;
    display: flex; flex-direction: column; gap: 12px;
}

.e-row[b-53n39tk1rk] { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.e-row .grow[b-53n39tk1rk] { flex: 1; }

label[b-53n39tk1rk] { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.narrow[b-53n39tk1rk] { max-width: 110px; }

.k[b-53n39tk1rk] { font-size: 12px; color: var(--ink-3); }
.hint[b-53n39tk1rk] { font-size: 11px; }

input[b-53n39tk1rk] {
    font: inherit; font-size: 14px; padding: 7px 9px;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; width: 100%;
}

input:focus-visible[b-53n39tk1rk] { outline: 2px solid var(--steel); outline-offset: -1px; }

.thumb[b-53n39tk1rk] { position: relative; max-width: 220px; }
.thumb img[b-53n39tk1rk] { width: 100%; border: 1px solid var(--rule); border-radius: 5px; display: block; }

.thumb .x[b-53n39tk1rk] {
    position: absolute; top: -7px; right: -7px;
    width: 22px; height: 22px; padding: 0; line-height: 1;
    font-size: 15px; border-radius: 50%;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}

.check[b-53n39tk1rk] { flex-direction: row !important; align-items: center; gap: 8px !important;
         font-size: 14px; cursor: pointer; }
.check input[b-53n39tk1rk] { width: auto; }

.e-actions[b-53n39tk1rk] { display: flex; gap: 8px; }

.btn-sm[b-53n39tk1rk] {
    font: inherit; font-size: 14px; font-weight: 500;
    padding: 8px 16px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel);
    color: #fff; cursor: pointer;
}
.btn-sm:hover[b-53n39tk1rk] { background: #1c2127; }
.btn-sm:disabled[b-53n39tk1rk] { opacity: .5; cursor: default; }

.btn-ghost-sm[b-53n39tk1rk] {
    font: inherit; font-size: 13px;
    padding: 6px 12px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-53n39tk1rk] { border-color: var(--ink-3); color: var(--ink); }
.btn-ghost-sm:disabled[b-53n39tk1rk] { opacity: .4; cursor: default; }

.warn[b-53n39tk1rk] {
    margin: 0; font-size: 13px; padding: 9px 12px;
    background: var(--stoich-bg); border: 1px solid #ecd49f;
    border-radius: 5px; color: #8d6008;
}

.empty[b-53n39tk1rk] { color: var(--ink-2); font-style: italic; margin: 0; }

/* ── the curve ── */

[b-53n39tk1rk] .curve {
    width: 100%;
    max-width: 420px;
    display: block;
    margin-top: 10px;
    background: #fcfcfa;
    border: 1px solid var(--rule);
    border-radius: 5px;
}

[b-53n39tk1rk] .curve path { fill: none; stroke-width: 2; stroke-linejoin: round; }
[b-53n39tk1rk] .curve .hp { stroke: #cc4318; }
[b-53n39tk1rk] .curve .tq { stroke: #cf8b0c; }

[b-53n39tk1rk] .curve-key {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    font-size: 11px;
    color: var(--ink-3);
}

[b-53n39tk1rk] .curve-key span { display: inline-block; }

[b-53n39tk1rk] .k-hp, [b-53n39tk1rk] .k-tq {
    width: 14px; height: 2px; border-radius: 2px;
}
[b-53n39tk1rk] .k-hp { background: #cc4318; }
[b-53n39tk1rk] .k-tq { background: #cf8b0c; margin-left: 10px; }
[b-53n39tk1rk] .curve-key .rpm { margin-left: auto; width: auto; height: auto; }
/* /Components/GatePanel.razor.rz.scp.css */
.gates-panel[b-ypndm97ilp] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414;
    --steel: #333c4a;
    --rich-bg: #fbe9e2; --stoich-bg: #fbf1dd; --lean-bg: #eaf2df;
    margin-top: 30px;
}

.gates-panel h2[b-ypndm97ilp] {
    font-size: 15px; font-weight: 600; margin: 0 0 12px;
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
}

.gate[b-ypndm97ilp] {
    border: 1px solid var(--rule);
    border-left: 3px solid var(--rule);
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 8px;
    background: #fff;
}

.gate.cleared[b-ypndm97ilp] { border-left-color: var(--lean); }
.gate.waiting[b-ypndm97ilp] { border-left-color: var(--stoich); background: #fffdf8; }
.gate.blocked[b-ypndm97ilp] { border-left-color: var(--rich); background: #fffaf8; }

.g-head[b-ypndm97ilp] { display: flex; align-items: center; gap: 9px; font-size: 14px; }

.dot[b-ypndm97ilp] { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.gate.cleared .dot[b-ypndm97ilp] { background: var(--lean); }
.gate.waiting .dot[b-ypndm97ilp] { background: var(--stoich); }
.gate.blocked .dot[b-ypndm97ilp] { background: var(--rich); }

.g-name[b-ypndm97ilp] { font-weight: 500; min-width: 110px; }
.g-note[b-ypndm97ilp] { color: var(--ink-2); }
.gate.blocked .g-note[b-ypndm97ilp] { color: var(--rich); }

.g-action[b-ypndm97ilp] {
    display: flex; align-items: flex-end; gap: 8px;
    margin-top: 11px; flex-wrap: wrap;
}

.inline[b-ypndm97ilp] { display: flex; flex-direction: column; gap: 3px; }
.inline.narrow[b-ypndm97ilp] { max-width: 110px; }

.k[b-ypndm97ilp] { font-size: 12px; color: var(--ink-3); }

.g-action input[b-ypndm97ilp], .g-action select[b-ypndm97ilp] {
    font: inherit; font-size: 14px; padding: 6px 9px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff;
}

.g-action .grow[b-ypndm97ilp] { flex: 1; min-width: 180px; }

.g-action input:focus-visible[b-ypndm97ilp], .g-action select:focus-visible[b-ypndm97ilp] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.btn-sm[b-ypndm97ilp] {
    font: inherit; font-size: 14px; font-weight: 500;
    padding: 7px 14px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer;
}
.btn-sm:hover[b-ypndm97ilp] { background: #29313d; }
.btn-sm:disabled[b-ypndm97ilp] { opacity: .5; cursor: default; }

.btn-ghost-sm[b-ypndm97ilp] {
    font: inherit; font-size: 14px;
    padding: 7px 13px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff; color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-ypndm97ilp] { border-color: var(--ink-3); }
.btn-ghost-sm:disabled[b-ypndm97ilp] { opacity: .5; cursor: default; }
.btn-ghost-sm.danger[b-ypndm97ilp] { color: var(--rich); border-color: #f0c3b0; }
.btn-ghost-sm.danger:hover[b-ypndm97ilp] { background: var(--rich-bg); }

.fine[b-ypndm97ilp] { font-size: 12px; color: var(--ink-3); margin: 9px 0 0; line-height: 1.5; }
.warn-text[b-ypndm97ilp] { color: var(--rich); }

.ok[b-ypndm97ilp] {
    font-size: 13px; margin: 0 0 12px; padding: 8px 12px;
    background: var(--lean-bg); border: 1px solid #cfe0ba;
    border-radius: 6px; color: #43690e;
}

.warn[b-ypndm97ilp] {
    font-size: 13px; margin: 0 0 12px; padding: 8px 12px;
    background: var(--stoich-bg); border: 1px solid #edd6a4;
    border-radius: 6px; color: #96660a;
}

.link[b-ypndm97ilp] { text-decoration: none; display: inline-block; }

/* A button that reads as a link — it belongs inside the sentence explaining
   the gate, not as another control competing for attention. */
.linkish[b-ypndm97ilp] {
    font: inherit;
    font-size: inherit;
    padding: 0;
    margin-left: 6px;
    border: 0;
    background: none;
    color: var(--ink-2);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.linkish:hover[b-ypndm97ilp] { color: var(--ink); }
/* /Components/Layout/CustomerLayout.razor.rz.scp.css */
/* Matches 14point7solutions.com: charcoal page, black bands, white text. */

.shell[b-hyogksnq7w] {
    min-height: 100vh;
    background: #38383b;
    display: flex;
    flex-direction: column;
}

/* The black band is the strongest single cue — it's the first thing you see
   on the website and the first thing you see here. */
.band[b-hyogksnq7w] {
    background: #000;
    padding: 18px 24px;
    display: flex;
    justify-content: center;
}

/* The logo PNG is square with a lot of transparent padding — the artwork
   only occupies the middle third vertically. Sized to the whole square it
   reads tiny, so the image is scaled up and the container crops the empty
   space rather than asking you to re-cut the file. */
.brand[b-hyogksnq7w] {
    display: block;
    line-height: 0;
    height: 66px;
    overflow: hidden;
}

.brand img[b-hyogksnq7w] {
    height: 168px;
    width: auto;
    display: block;

    /* Pulls the artwork's centre onto the container's centre. The logo sits
       slightly above the middle of the square, hence not exactly half. */
    margin-top: -50px;
}

.body[b-hyogksnq7w] {
    flex: 1;
    padding: 30px 20px 50px;
    display: flex;
    justify-content: center;
}

.foot[b-hyogksnq7w] {
    padding: 0 20px 26px;
    text-align: center;
    font-size: 12px;
}

.foot a[b-hyogksnq7w] {
    color: #8b8f95;
    text-decoration: none;
}
.foot a:hover[b-hyogksnq7w] { color: #e8e8e6; }

[b-hyogksnq7w] .cq {
    width: 100%;
    max-width: 640px;
}

/* The intake form has three-across rows, so it needs more width than a
   status card. */
[b-hyogksnq7w] .intake {
    width: 100%;
    max-width: 760px;
}

@media (max-width: 600px) {
    .brand[b-hyogksnq7w] { height: 52px; }
    .brand img[b-hyogksnq7w] { height: 132px; margin-top: -39px; }
    .body[b-hyogksnq7w] { padding: 20px 14px 40px; }
}

/* ── section tabs ── */

.tabs[b-hyogksnq7w] {
    display: flex;
    justify-content: center;
    gap: 4px;
    padding: 14px 16px 0;
    flex-wrap: wrap;
}

.tab[b-hyogksnq7w] {
    position: relative;
    font-size: 14px;
    padding: 9px 18px;
    border-radius: 6px 6px 0 0;
    color: #b4b6b9;
    text-decoration: none;
    border: 1px solid transparent;
    border-bottom: 0;
}

.tab:hover[b-hyogksnq7w] { color: #f0f0ee; }

.tab.on[b-hyogksnq7w] {
    background: #2b2b2e;
    border-color: #434347;
    color: #f0f0ee;
    font-weight: 500;
}

/* A dot rather than a count — the customer doesn't need a number, only to
   know that this is the one waiting on them. */
.flag[b-hyogksnq7w] {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 7px;
    border-radius: 50%;
    background: #e8a317;
    vertical-align: middle;
}

.tabs + .body[b-hyogksnq7w] { padding-top: 0; }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.app[b-zf0btpovu6] {
    display: grid;
    grid-template-columns: 220px 1fr;
    min-height: 100vh;
    background: #f2f2ef;
}

.main[b-zf0btpovu6] {
    min-width: 0;          /* lets wide tables shrink instead of overflowing */
    overflow-x: auto;
}

.page[b-zf0btpovu6] {
    padding: 28px 32px 60px;
}

@media (max-width: 860px) {
    .app[b-zf0btpovu6] { grid-template-columns: 1fr; }
    .page[b-zf0btpovu6] { padding: 20px 18px 60px; }
}

#blazor-error-ui[b-zf0btpovu6] {
    color: #14161b;
    background: #fbf1dd;
    border-top: 1px solid #edd6a4;
    bottom: 0;
    box-shadow: 0 -1px 3px rgba(20, 22, 27, .1);
    display: none;
    left: 0;
    padding: 12px 16px 12px 20px;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-size: 14px;
}

#blazor-error-ui .dismiss[b-zf0btpovu6] {
    cursor: pointer;
    position: absolute;
    right: 16px;
    top: 12px;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* NavLink renders its own <a>, so the scope attribute never lands on it.
   Anything targeting a NavLink has to go through ::deep — without it the
   links fall back to browser defaults, which is exactly what happened. */

.rail[b-bm3bgy2j7e] {
    background: #14161b;
    border-right: 1px solid #23262d;
    padding: 18px 10px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

[b-bm3bgy2j7e] .brand {
    display: flex;
    align-items: baseline;
    gap: 7px;
    padding: 2px 10px 6px;
    text-decoration: none;
}

.mark[b-bm3bgy2j7e] {
    font-weight: 600;
    font-size: 15px;
    letter-spacing: -.01em;
    /* the AFR sweep off the logo — rich through lean */
    background: linear-gradient(95deg, #e2571f, #e8a317 55%, #8dbb2e);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.name[b-bm3bgy2j7e] { font-size: 15px; font-weight: 500; color: #f2f2ef; }

.group[b-bm3bgy2j7e] { display: flex; flex-direction: column; gap: 1px; }

.g-label[b-bm3bgy2j7e] {
    font-size: 11px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #5f646c;
    padding: 0 10px 7px;
}

.rail[b-bm3bgy2j7e]  .item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 6px;
    color: #b9bdc3;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.3;
    transition: background .1s, color .1s;
}

.rail[b-bm3bgy2j7e]  .item:hover {
    background: #1d2027;
    color: #f2f2ef;
}

.rail[b-bm3bgy2j7e]  .item.active {
    background: #24272f;
    color: #fff;
    font-weight: 500;
    box-shadow: inset 2px 0 0 #8dbb2e;
}

.rail[b-bm3bgy2j7e]  .item:focus-visible {
    outline: 2px solid #8dbb2e;
    outline-offset: -2px;
}

.rail[b-bm3bgy2j7e]  .item.quiet {
    color: #7d828a;
    font-size: 13px;
    padding-top: 6px;
    padding-bottom: 6px;
}

.rail[b-bm3bgy2j7e]  .item.quiet:hover { color: #d5d8dc; }
.rail[b-bm3bgy2j7e]  .item.quiet.active { box-shadow: none; background: #1d2027; }

.rail[b-bm3bgy2j7e]  .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: none;
}

.rail[b-bm3bgy2j7e]  ::deep .dot.go { background: #8dbb2e; }
.rail[b-bm3bgy2j7e]  ::deep .dot.wait { background: #e8a317; }
[b-bm3bgy2j7e] .dot.quiet { background: #6b7078; }

.foot[b-bm3bgy2j7e] { margin-top: auto; }

@media (max-width: 860px) {
    .rail[b-bm3bgy2j7e] {
        flex-direction: row;
        align-items: center;
        gap: 8px;
        overflow-x: auto;
        padding: 10px 12px;
    }
    [b-bm3bgy2j7e] .brand { padding: 0 8px 0 0; }
    .g-label[b-bm3bgy2j7e], .foot[b-bm3bgy2j7e] { display: none; }
    .group[b-bm3bgy2j7e] { flex-direction: row; }
    .rail[b-bm3bgy2j7e]  .item { white-space: nowrap; }
}

/* ── signed-in user ── */

.who[b-bm3bgy2j7e] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 10px 14px;
    margin-bottom: 8px;
    border-bottom: 1px solid #23262d;
}

.w-name[b-bm3bgy2j7e] { font-size: 13px; color: #c3c6cb; }

.signout[b-bm3bgy2j7e] {
    font: inherit;
    font-size: 12px;
    margin-left: auto;
    padding: 3px 9px;
    border-radius: 5px;
    border: 1px solid #2c3038;
    background: none;
    color: #878c94;
    cursor: pointer;
}

.signout:hover[b-bm3bgy2j7e] { color: #f2f2ef; border-color: #3a3f48; }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-z980lttwuy],
.components-reconnect-repeated-attempt-visible[b-z980lttwuy],
.components-reconnect-failed-visible[b-z980lttwuy],
.components-pause-visible[b-z980lttwuy],
.components-resume-failed-visible[b-z980lttwuy],
.components-rejoining-animation[b-z980lttwuy] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-retrying[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-failed[b-z980lttwuy],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-z980lttwuy] {
    display: block;
}


#components-reconnect-modal[b-z980lttwuy] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-z980lttwuy 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-z980lttwuy 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-z980lttwuy 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-z980lttwuy]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-z980lttwuy 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-z980lttwuy {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-z980lttwuy {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-z980lttwuy {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-z980lttwuy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-z980lttwuy] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-z980lttwuy] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-z980lttwuy] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-z980lttwuy] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-z980lttwuy] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-z980lttwuy] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-z980lttwuy 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-z980lttwuy] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-z980lttwuy {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Board.razor.rz.scp.css */
/* Palette off the 14.7 logo — an AFR gauge sweeping rich to lean.
   Rich orange means blocked, amber means waiting, green means clear.
   Nothing else in here gets to be colourful. */

.board[b-ni0gfnz6gt] {
    --ink: #16181a;
    --ink-2: #55595e;
    --ink-3: #8b8f95;
    --paper: #edeeec;
    --rule: #d8d9d6;
    --rule-2: #e6e7e4;
    --rich: #cc4318;
    --stoich: #cf8b0c;
    --lean: #5b8f11;
    --steel: #2b3138;

    color: var(--ink);
    max-width: 1180px;
    padding-bottom: 80px;
}

.mono[b-ni0gfnz6gt] {
    font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
    font-variant-ligatures: none;
}

/* ── head: the count is the headline, not the word "board" ── */

.board-head[b-ni0gfnz6gt] {
    display: flex;
    align-items: flex-end;
    gap: 34px;
    flex-wrap: wrap;
    padding-bottom: 18px;
    border-bottom: 2px solid var(--ink);
}

.board-head h1[b-ni0gfnz6gt] {
    font-family: "Barlow Condensed", "Archivo", sans-serif;
    font-size: 40px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: .95;
    margin: 0;
    text-transform: none;
}

.tally[b-ni0gfnz6gt] {
    display: flex;
    gap: 26px;
    margin: 0;
    padding-bottom: 3px;
}

.tally > div[b-ni0gfnz6gt] { display: flex; align-items: baseline; gap: 7px; }

.tally dd[b-ni0gfnz6gt] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 30px;
    font-weight: 600;
    line-height: 1;
    margin: 0;
    font-variant-numeric: tabular-nums;
}

.tally dt[b-ni0gfnz6gt] { font-size: 13px; color: var(--ink-2); }

.tally .hot dd[b-ni0gfnz6gt] { color: var(--rich); }

.btn[b-ni0gfnz6gt] {
    margin-left: auto;
    font: inherit;
    font-weight: 500;
    padding: 9px 16px;
    border-radius: 4px;
    border: 1px solid var(--steel);
    background: var(--steel);
    color: #fff;
    cursor: pointer;
}
.btn:hover[b-ni0gfnz6gt] { background: #1c2127; }
.btn:disabled[b-ni0gfnz6gt] { opacity: .5; cursor: default; }

/* ── lanes ── */

.group[b-ni0gfnz6gt] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: var(--ink-2);
    margin: 30px 0 0;
    display: flex;
    align-items: center;
    gap: 9px;
}

.count[b-ni0gfnz6gt] {
    font-family: Barlow, sans-serif;
    font-size: 12px;
    font-weight: 400;
    color: var(--ink-3);
    border: 1px solid var(--rule);
    border-radius: 999px;
    padding: 1px 8px;
}

/* ── rows, not cards ──
   A shop board is a list of cars. Rows fit more on screen and stop every
   item looking like a separate document. */

.rows[b-ni0gfnz6gt] { display: flex; flex-direction: column; }

.row[b-ni0gfnz6gt] {
    display: grid;
    grid-template-columns: minmax(200px, 1.1fr) minmax(190px, 1fr) minmax(180px, 1.1fr);
    gap: 26px;
    align-items: start;
    padding: 17px 16px 17px 13px;
    border-bottom: 1px solid var(--rule-2);
    border-left: 3px solid transparent;
    text-decoration: none;
    color: inherit;
    background: #fff;
}

.row:first-of-type[b-ni0gfnz6gt] { border-top: 1px solid var(--rule-2); }
.row:hover[b-ni0gfnz6gt] { background: #fbfbfa; }
.row:focus-visible[b-ni0gfnz6gt] { outline: 2px solid var(--steel); outline-offset: -2px; }

.row.lane-clear[b-ni0gfnz6gt]             { border-left-color: var(--lean); }
.row.lane-waitingoncustomer[b-ni0gfnz6gt] { border-left-color: var(--stoich); }
.row.lane-blocked[b-ni0gfnz6gt]           { border-left-color: var(--rich); }

/* identity — the car is the hero */

.car[b-ni0gfnz6gt] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -0.005em;
    margin: 0;
}

.owner[b-ni0gfnz6gt] { font-size: 14px; color: var(--ink-2); margin-top: 3px; }

.ref[b-ni0gfnz6gt] {
    font-size: 11px;
    color: var(--ink-3);
    margin-top: 5px;
}

/* middle — the gate bar */

.service[b-ni0gfnz6gt] { font-size: 13px; color: var(--ink-2); }

.bar[b-ni0gfnz6gt] {
    display: flex;
    gap: 3px;
    margin-top: 8px;
}

.seg[b-ni0gfnz6gt] {
    height: 6px;
    flex: 1;
    border-radius: 1px;
    background: var(--rule);
}

.seg.cleared[b-ni0gfnz6gt] { background: var(--lean); }
.seg.waiting[b-ni0gfnz6gt] { background: var(--stoich); }
.seg.blocked[b-ni0gfnz6gt] { background: var(--rich); }

.legend[b-ni0gfnz6gt] {
    display: flex;
    gap: 3px;
    margin-top: 5px;
}

.leg[b-ni0gfnz6gt] {
    flex: 1;
    font-size: 10.5px;
    color: var(--ink-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.leg.blocked[b-ni0gfnz6gt] { color: var(--rich); }

/* right — status and what's holding it */

.right[b-ni0gfnz6gt] { text-align: right; }

.status[b-ni0gfnz6gt] {
    display: inline-block;
    font-size: 12px;
    font-weight: 500;
    padding: 3px 9px;
    border-radius: 3px;
    border: 1px solid;
}

.status.go[b-ni0gfnz6gt]      { background: #eef4e4; border-color: #cbdcac; color: #3f6209; }
.status.wait[b-ni0gfnz6gt]    { background: #fbf1dc; border-color: #ecd49f; color: #8d6008; }
.status.neutral[b-ni0gfnz6gt] { background: #f1f1ef; border-color: var(--rule); color: var(--ink-2); }

.update[b-ni0gfnz6gt] {
    font-size: 13px;
    margin-top: 8px;
    color: var(--ink);
}

.blocker[b-ni0gfnz6gt] {
    font-size: 12px;
    color: var(--ink-3);
    margin-top: 4px;
}

.row.lane-blocked .blocker[b-ni0gfnz6gt],
.row.lane-waitingoncustomer .blocker[b-ni0gfnz6gt] { color: var(--ink-2); }

/* ── states ── */

.empty[b-ni0gfnz6gt] {
    color: var(--ink-2);
    margin-top: 30px;
    font-size: 15px;
}

.err[b-ni0gfnz6gt] {
    margin-top: 16px;
    padding: 12px 14px;
    border: 1px solid #edc0ac;
    background: #fbe8e1;
    border-radius: 4px;
    font-size: 14px;
}

.err-inner[b-ni0gfnz6gt] { margin-top: 6px; font-size: 13px; color: var(--ink-2); }

@media (max-width: 780px) {
    .row[b-ni0gfnz6gt] { grid-template-columns: 1fr; gap: 12px; }
    .right[b-ni0gfnz6gt] { text-align: left; }
    .board-head[b-ni0gfnz6gt] { gap: 18px; }
    .board-head h1[b-ni0gfnz6gt] { font-size: 32px; }
}

.sync[b-ni0gfnz6gt] {
    font: inherit;
    font-size: 13px;
    padding: 7px 14px;
    margin-left: auto;
    border: 1px solid var(--stoich);
    border-radius: 5px;
    background: var(--stoich-bg);
    color: #8d6008;
    cursor: pointer;
    align-self: center;
}
.sync:hover:not(:disabled)[b-ni0gfnz6gt] { background: #f7e7c4; }
.sync:disabled[b-ni0gfnz6gt] { opacity: .6; cursor: default; }

.sync-note[b-ni0gfnz6gt] {
    margin: 12px 0 0;
    padding: 9px 12px;
    font-size: 13px;
    background: var(--lean-bg);
    border: 1px solid #cbdcac;
    border-radius: 5px;
    color: #3f6209;
}
/* /Components/Pages/Checkin.razor.rz.scp.css */
.checkin[b-h1irhhdvfo] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414;
    --steel: #333c4a;
    --rich-bg: #fbe9e2; --stoich-bg: #fbf1dd; --lean-bg: #eaf2df;
    color: var(--ink); max-width: 760px; padding-bottom: 60px;
}

.mono[b-h1irhhdvfo] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }

.back[b-h1irhhdvfo] { display: inline-block; font-size: 13px; color: var(--ink-2);
        text-decoration: none; margin-bottom: 14px; }
.back:hover[b-h1irhhdvfo] { color: var(--ink); text-decoration: underline; }

.head[b-h1irhhdvfo] { padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.head h1[b-h1irhhdvfo] { font-size: 24px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-h1irhhdvfo] { color: var(--ink-2); font-size: 14px; margin: 4px 0 0; }
.sep[b-h1irhhdvfo] { margin: 0 7px; color: var(--ink-3); }

.intro[b-h1irhhdvfo] { font-size: 14px; color: var(--ink-2); margin: 14px 0 0; max-width: 56ch; }

.steps[b-h1irhhdvfo] {
    display: flex; flex-wrap: wrap; gap: 4px; list-style: none;
    margin: 18px 0 0; padding: 0 0 14px; border-bottom: 1px solid var(--rule);
}

.steps button[b-h1irhhdvfo] {
    font: inherit; font-size: 13px; padding: 5px 11px; border-radius: 999px;
    border: 1px solid transparent; background: none; color: var(--ink-3); cursor: pointer;
}
.steps button:disabled[b-h1irhhdvfo] { cursor: default; }
.steps .past button[b-h1irhhdvfo] { color: var(--lean); }
.steps .now button[b-h1irhhdvfo] { color: var(--ink); background: #fff;
                     border-color: var(--rule); font-weight: 500; }

section[b-h1irhhdvfo] { margin-top: 22px; display: flex; flex-direction: column; gap: 14px; }

label[b-h1irhhdvfo] { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.row[b-h1irhhdvfo] { display: flex; gap: 12px; flex-wrap: wrap; }
.narrow[b-h1irhhdvfo] { max-width: 130px; }
.k[b-h1irhhdvfo] { font-size: 13px; color: var(--ink-2); }

input[b-h1irhhdvfo], textarea[b-h1irhhdvfo], select[b-h1irhhdvfo] {
    font: inherit; padding: 8px 10px; border: 1px solid var(--rule);
    border-radius: 6px; background: #fff; width: 100%;
}
textarea[b-h1irhhdvfo] { resize: vertical; }

input:focus-visible[b-h1irhhdvfo], textarea:focus-visible[b-h1irhhdvfo], select:focus-visible[b-h1irhhdvfo] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.fine[b-h1irhhdvfo] { font-size: 12px; color: var(--ink-3); margin: 0; line-height: 1.5; }

/* ── zones ── */

.zone[b-h1irhhdvfo] {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 8px 12px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--rule);
    border-left: 3px solid var(--lean);
    border-radius: 6px;
    background: #fff;
}

/* Green until something is wrong. The eye can then skim a page of twelve
   zones and land only on what needs reading. */
.zone.flagged[b-h1irhhdvfo] { border-left-color: var(--rich); background: #fffaf8; }

.z-name[b-h1irhhdvfo] { font-size: 14px; font-weight: 500; }

/* Option lists differ per zone and some run to six items, so they wrap
   rather than squeezing. */
.z-buttons[b-h1irhhdvfo] { display: flex; gap: 5px; flex-wrap: wrap; }

.z-buttons button[b-h1irhhdvfo] {
    font: inherit; font-size: 13px; padding: 6px 13px;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; color: var(--ink-2); cursor: pointer;
}
.z-buttons button:hover:not(.on)[b-h1irhhdvfo] { border-color: var(--ink-3); color: var(--ink); }

.z-buttons button:focus-visible[b-h1irhhdvfo] { outline: 2px solid var(--steel); outline-offset: 2px; }

/* The first option in every list means "nothing wrong", so the selected
   colour follows the row rather than the option's name — there's no fixed
   set of labels to key off any more. */
.z-buttons button.on[b-h1irhhdvfo] {
    background: var(--rich-bg);
    border-color: #f0c3b0;
    color: #a63514;
    font-weight: 500;
}

.zone:not(.flagged) .z-buttons button.on[b-h1irhhdvfo] {
    background: var(--lean-bg);
    border-color: #cfe0ba;
    color: #43690e;
}

.z-note[b-h1irhhdvfo] { grid-column: 1 / -1; font-size: 14px; }

/* ── tri ── */

.tri[b-h1irhhdvfo] { display: flex; gap: 6px; }

.tri button[b-h1irhhdvfo] {
    font: inherit; font-size: 14px; padding: 8px 18px;
    border: 1px solid var(--rule); border-radius: 6px;
    background: #fff; color: var(--ink-2); cursor: pointer;
}

.tri button:hover:not(.on)[b-h1irhhdvfo] { border-color: var(--ink-3); color: var(--ink); }

.tri button:focus-visible[b-h1irhhdvfo] { outline: 2px solid var(--steel); outline-offset: 2px; }

/* Same three signals as the intake form — fill, weight and a tick. One
   subtle cue isn't enough on a phone screen in daylight. */
.tri button.on[b-h1irhhdvfo] {
    background: var(--steel); border-color: var(--steel);
    color: #fff; font-weight: 500;
}

.tri button.on[b-h1irhhdvfo]::before { content: "✓"; margin-right: 6px; font-size: 12px; }

/* ── checks ── */

.checks[b-h1irhhdvfo] { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 6px 14px; }
.check[b-h1irhhdvfo] { flex-direction: row !important; align-items: center; gap: 8px !important;
         font-size: 14px; cursor: pointer; }
.check input[b-h1irhhdvfo] { width: auto; }

/* ── photos ── */

.photos[b-h1irhhdvfo] {
    display: flex; flex-direction: column; gap: 8px;
    border: 1px solid var(--rule); border-radius: 6px;
    padding: 12px; background: #fcfcfa;
}

.photos input[type=file][b-h1irhhdvfo] { font-size: 13px; border: 0; padding: 0; background: none; }

.thumbs[b-h1irhhdvfo] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }

.thumb[b-h1irhhdvfo] { position: relative; width: 92px; height: 70px; }

.thumb img[b-h1irhhdvfo] {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: 5px; border: 1px solid var(--rule);
}

.thumb .x[b-h1irhhdvfo] {
    position: absolute; top: -6px; right: -6px;
    width: 20px; height: 20px; padding: 0; line-height: 1;
    font-size: 14px; border-radius: 50%;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.thumb .x:hover[b-h1irhhdvfo] { background: var(--rich-bg); color: var(--rich); border-color: #f0c3b0; }

/* ── acknowledgement ── */

.ack[b-h1irhhdvfo] {
    border: 1px solid var(--rule); border-radius: 6px;
    padding: 12px; background: #fcfcfa;
    display: flex; flex-direction: column; gap: 8px;
}

/* ── actions ── */

.actions[b-h1irhhdvfo] { display: flex; gap: 8px; margin-top: 26px;
           padding-top: 18px; border-top: 1px solid var(--rule); }

.btn[b-h1irhhdvfo] { font: inherit; font-weight: 500; padding: 9px 18px; border-radius: 6px;
       border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer; }
.btn:hover[b-h1irhhdvfo] { background: #29313d; }
.btn:disabled[b-h1irhhdvfo] { opacity: .5; cursor: default; }

.btn-ghost[b-h1irhhdvfo] { font: inherit; padding: 9px 16px; border-radius: 6px;
             border: 1px solid var(--rule); background: #fff; color: var(--ink-2); cursor: pointer; }
.btn-ghost:hover[b-h1irhhdvfo] { border-color: var(--ink-3); }

.warn[b-h1irhhdvfo] { margin-top: 16px; font-size: 13px; padding: 9px 12px;
        background: var(--stoich-bg); border: 1px solid #edd6a4;
        border-radius: 6px; color: #96660a; }

.empty[b-h1irhhdvfo] { color: var(--ink-2); font-style: italic; }
.err[b-h1irhhdvfo] { margin: 16px 0; padding: 12px 14px; border: 1px solid #f0c3b0;
       background: #fbe9e2; border-radius: 6px; font-size: 14px; }
.err-inner[b-h1irhhdvfo] { margin-top: 6px; font-size: 13px; color: var(--ink-2); }

/* ── customer acknowledgement ── */

.ack h3[b-h1irhhdvfo] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 16px; font-weight: 600; margin: 0 0 8px;
}

.ack > p[b-h1irhhdvfo] {
    font-size: 14px; line-height: 1.6; color: var(--ink-2);
    margin: 0 0 14px; max-width: 62ch;
}

.sig[b-h1irhhdvfo] { display: flex; flex-direction: column; gap: 7px; margin: 16px 0 4px; }

.pad-wrap[b-h1irhhdvfo] { position: relative; max-width: 460px; }

.pad-wrap canvas[b-h1irhhdvfo] {
    width: 100%; height: 150px; display: block;
    border: 1px solid var(--rule); border-radius: 6px;
    background: #fff; touch-action: none;
}

.pad-wrap .clear[b-h1irhhdvfo] {
    position: absolute; top: 7px; right: 7px;
    font: inherit; font-size: 12px; padding: 4px 10px;
    border: 1px solid var(--rule); border-radius: 4px;
    background: #fff; color: var(--ink-3); cursor: pointer;
}
.pad-wrap .clear:hover[b-h1irhhdvfo] { color: var(--ink); border-color: var(--ink-3); }
/* /Components/Pages/Clock.razor.rz.scp.css */
.clock[b-2yn12gkzl2] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;
    --lean-bg: #eef4e4; --stoich-bg: #fbf1dc;

    color: var(--ink);
    max-width: 640px;
    padding-bottom: 80px;
}

.mono[b-2yn12gkzl2] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
        font-variant-numeric: tabular-nums; }

.head[b-2yn12gkzl2] {
    display: flex; align-items: baseline; gap: 16px;
    padding-bottom: 16px; border-bottom: 2px solid var(--ink);
}

.head h1[b-2yn12gkzl2] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 36px; font-weight: 600; line-height: .95; margin: 0;
}

.today[b-2yn12gkzl2] { margin-left: auto; font-size: 13px; color: var(--ink-2); }

/* ── the punch ── */

.punch[b-2yn12gkzl2] {
    margin-top: 24px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: #fff;
    padding: 20px 22px;
}

.state[b-2yn12gkzl2] { display: flex; align-items: center; gap: 10px; }

.pip[b-2yn12gkzl2] { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.state.on .pip[b-2yn12gkzl2]    { background: var(--lean); }
.state.lunch .pip[b-2yn12gkzl2] { background: var(--stoich); }
.state.off .pip[b-2yn12gkzl2]   { background: var(--ink-3); }

.state-text[b-2yn12gkzl2] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 24px; font-weight: 600;
}

.worked[b-2yn12gkzl2] { margin-left: auto; font-size: 15px; color: var(--ink-2); }

.buttons[b-2yn12gkzl2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 8px;
    margin-top: 18px;
}

/* Big targets. This gets used with dirty hands on a phone propped on a
   toolbox, not with a mouse. */
.punch-btn[b-2yn12gkzl2] {
    font: inherit; font-size: 15px; font-weight: 500;
    padding: 16px 12px;
    border-radius: 6px;
    border: 1px solid var(--rule);
    background: #fff; color: var(--ink-2);
    cursor: pointer;
}

.punch-btn:hover:not(:disabled)[b-2yn12gkzl2] { border-color: var(--steel); color: var(--ink); }

.punch-btn.primary[b-2yn12gkzl2] {
    background: var(--steel); border-color: var(--steel); color: #fff;
}
.punch-btn.primary:hover:not(:disabled)[b-2yn12gkzl2] { background: #1c2127; color: #fff; }

.punch-btn:disabled[b-2yn12gkzl2] { opacity: .35; cursor: default; }

/* ── sections ── */

section[b-2yn12gkzl2] { margin-top: 30px; }

h2[b-2yn12gkzl2] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; font-weight: 600; margin: 0 0 12px;
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
}

.punches[b-2yn12gkzl2] { display: flex; flex-direction: column; }

.p-row[b-2yn12gkzl2] {
    display: flex; align-items: center; gap: 14px;
    padding: 9px 0; border-bottom: 1px solid var(--rule-2);
    font-size: 14px;
}

.p-row time[b-2yn12gkzl2] { min-width: 76px; color: var(--ink-2); }

.p-type[b-2yn12gkzl2] { font-weight: 500; }
.p-type.on[b-2yn12gkzl2]    { color: var(--lean); }
.p-type.lunch[b-2yn12gkzl2] { color: var(--stoich); }
.p-type.off[b-2yn12gkzl2]   { color: var(--ink-2); }

.p-note[b-2yn12gkzl2] { margin-left: auto; font-size: 12px; color: var(--ink-3); }

/* ── week ── */

.week[b-2yn12gkzl2] { display: flex; flex-direction: column; }

.w-row[b-2yn12gkzl2] {
    display: flex; align-items: baseline; gap: 14px;
    padding: 9px 0; border-bottom: 1px solid var(--rule-2);
    font-size: 14px;
}

.w-day[b-2yn12gkzl2] { min-width: 120px; }
.w-hours[b-2yn12gkzl2] { margin-left: auto; }

.w-row.open .w-hours[b-2yn12gkzl2] { color: var(--lean); }
.w-flag[b-2yn12gkzl2] { font-size: 12px; color: var(--lean); }

.w-row.total[b-2yn12gkzl2] {
    border-bottom: 0; border-top: 1px solid var(--rule);
    margin-top: 4px; padding-top: 12px; font-weight: 600;
}

.fine[b-2yn12gkzl2] { font-size: 12px; color: var(--ink-3); margin: 12px 0 0; line-height: 1.5; }
.empty[b-2yn12gkzl2] { color: var(--ink-2); font-style: italic; margin: 0; }

.err[b-2yn12gkzl2] {
    margin-top: 16px; padding: 12px 14px;
    border: 1px solid #edc0ac; background: #fbe8e1;
    border-radius: 4px; font-size: 14px;
}
/* /Components/Pages/CustomerBooking.razor.rz.scp.css */
.cq[b-0u7q4ihlaw] { max-width: 560px; }

.card[b-0u7q4ihlaw] {
    background: var(--card);
    border: 1px solid var(--rule);
    border-radius: 10px;
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

h1[b-0u7q4ihlaw] { font-size: 22px; margin: 0; color: var(--ink); }

.lead[b-0u7q4ihlaw] { font-size: 15px; line-height: 1.55; color: var(--ink-2); margin: 0; }

.fine[b-0u7q4ihlaw] { font-size: 13px; line-height: 1.6; color: var(--ink-3); margin: 0; }

/* ── the slots ── */

.day[b-0u7q4ihlaw] {
    padding-top: 14px;
    border-top: 1px solid var(--rule-2);
}

.d-name[b-0u7q4ihlaw] {
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
    margin-bottom: 9px;
}

.d-slots[b-0u7q4ihlaw] { display: flex; flex-wrap: wrap; gap: 7px; }

/* Big enough to hit with a thumb — most of these will be booked on a phone. */
.d-slots button[b-0u7q4ihlaw] {
    font: inherit;
    font-size: 15px;
    padding: 11px 18px;
    min-width: 92px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--card-2);
    color: var(--ink);
    cursor: pointer;
}

.d-slots button:hover:not(.on)[b-0u7q4ihlaw] { border-color: var(--ink-3); }

.d-slots button:focus-visible[b-0u7q4ihlaw] { outline: 2px solid var(--accent); outline-offset: 2px; }

.d-slots button.on[b-0u7q4ihlaw] {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    font-weight: 600;
}

/* ── actions ── */

.btn[b-0u7q4ihlaw] {
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    padding: 14px 22px;
    border-radius: 6px;
    border: 1px solid var(--accent);
    background: var(--accent);
    color: #fff;
    cursor: pointer;
    margin-top: 6px;
}

.btn:hover:not(:disabled)[b-0u7q4ihlaw] { background: #c9491a; }
.btn:disabled[b-0u7q4ihlaw] { opacity: .45; cursor: default; }

.btn-ghost[b-0u7q4ihlaw] {
    font: inherit;
    font-size: 14px;
    padding: 11px 18px;
    border-radius: 6px;
    border: 1px solid var(--rule);
    background: transparent;
    color: var(--ink-2);
    text-decoration: none;
    text-align: center;
    align-self: flex-start;
}
.btn-ghost:hover[b-0u7q4ihlaw] { border-color: var(--ink-3); color: var(--ink); }

.bad[b-0u7q4ihlaw] {
    margin: 0;
    font-size: 13px;
    padding: 10px 12px;
    background: var(--rich-bg);
    border: 1px solid #6a3220;
    border-radius: 6px;
    color: var(--rich);
}

.gone[b-0u7q4ihlaw] { align-items: flex-start; }
/* /Components/Pages/CustomerEdit.razor.rz.scp.css */
.customer[b-452rt3h2ka] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;
    --lean-bg: #eef4e4; --stoich-bg: #fbf1dc; --rich-bg: #fbe8e1;

    color: var(--ink);
    max-width: 760px;
    padding-bottom: 80px;
}

.mono[b-452rt3h2ka] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }
.dim[b-452rt3h2ka] { color: var(--ink-3); }

.head[b-452rt3h2ka] {
    display: flex; align-items: baseline; gap: 14px;
    padding-bottom: 16px; border-bottom: 2px solid var(--ink);
}

.head h1[b-452rt3h2ka] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 34px; font-weight: 600; line-height: .95; margin: 0;
}

.badge[b-452rt3h2ka] {
    font-size: 12px; padding: 2px 9px; border-radius: 999px;
    border: 1px solid var(--rule); background: #f4f4f1; color: var(--ink-2);
}

section[b-452rt3h2ka] { margin-top: 28px; display: flex; flex-direction: column; gap: 12px; }

h2[b-452rt3h2ka] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; font-weight: 600; margin: 0;
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
    display: flex; align-items: baseline; gap: 9px;
}

.count[b-452rt3h2ka] {
    font-family: Barlow, sans-serif; font-size: 12px;
    font-weight: 400; color: var(--ink-3);
    border: 1px solid var(--rule); border-radius: 999px; padding: 1px 8px;
}

.row[b-452rt3h2ka] { display: flex; gap: 12px; flex-wrap: wrap; }
label[b-452rt3h2ka] { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.grow[b-452rt3h2ka] { flex: 1; }
.narrow[b-452rt3h2ka] { max-width: 110px; }

.k[b-452rt3h2ka] { font-size: 13px; color: var(--ink-2); }
.hint[b-452rt3h2ka] { font-size: 12px; color: var(--ink-3); }
.warn-text[b-452rt3h2ka] { color: var(--rich); }

input[b-452rt3h2ka], textarea[b-452rt3h2ka] {
    font: inherit; padding: 8px 10px;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; width: 100%;
}
textarea[b-452rt3h2ka] { resize: vertical; }

input:focus-visible[b-452rt3h2ka], textarea:focus-visible[b-452rt3h2ka] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.consents[b-452rt3h2ka] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 18px;
    padding: 12px; border: 1px solid var(--rule);
    border-radius: 6px; background: #fcfcfa;
}

.check[b-452rt3h2ka] { flex-direction: row !important; align-items: center; gap: 8px !important;
         flex: 0 0 auto; font-size: 14px; cursor: pointer; }
.check input[b-452rt3h2ka] { width: auto; }

.actions[b-452rt3h2ka] { display: flex; gap: 8px; }

/* ── vehicles ── */

.vehicle[b-452rt3h2ka] {
    border: 1px solid var(--rule); border-radius: 6px;
    background: #fff; padding: 12px 14px;
}

.vehicle.archived[b-452rt3h2ka] { opacity: .5; }

.v-head[b-452rt3h2ka] { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.v-name[b-452rt3h2ka] { font-weight: 500; font-size: 15px; }
.v-meta[b-452rt3h2ka] { display: flex; gap: 10px; font-size: 12px; color: var(--ink-3); }
.v-head .btn-ghost-sm[b-452rt3h2ka] { margin-left: auto; }

.v-editor[b-452rt3h2ka] {
    margin-top: 14px; padding-top: 14px;
    border-top: 1px solid var(--rule-2);
    display: flex; flex-direction: column; gap: 12px;
}

/* ── jobs ── */

.jobs[b-452rt3h2ka] { display: flex; flex-direction: column; }

.job[b-452rt3h2ka] {
    display: flex; align-items: baseline; gap: 14px;
    padding: 10px 4px; border-bottom: 1px solid var(--rule-2);
    text-decoration: none; color: inherit; font-size: 14px;
}
.job:hover[b-452rt3h2ka] { background: #fbfbfa; }
.j-title[b-452rt3h2ka] { flex: 1; }
.j-status[b-452rt3h2ka] { font-size: 12px; color: var(--ink-2); }

/* ── buttons and messages ── */

.btn[b-452rt3h2ka] {
    font: inherit; font-weight: 500; padding: 9px 18px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel);
    color: #fff; cursor: pointer;
}
.btn:hover[b-452rt3h2ka] { background: #1c2127; }
.btn:disabled[b-452rt3h2ka] { opacity: .5; cursor: default; }

.btn-sm[b-452rt3h2ka] {
    font: inherit; font-size: 14px; font-weight: 500;
    padding: 8px 16px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel);
    color: #fff; cursor: pointer;
}
.btn-sm:hover[b-452rt3h2ka] { background: #1c2127; }

.btn-ghost-sm[b-452rt3h2ka] {
    font: inherit; font-size: 13px; padding: 6px 12px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-452rt3h2ka] { border-color: var(--ink-3); color: var(--ink); }

.ok[b-452rt3h2ka] {
    margin: 14px 0 0; padding: 9px 12px; font-size: 13px;
    background: var(--lean-bg); border: 1px solid #cbdcac;
    border-radius: 5px; color: #3f6209;
}

.warn[b-452rt3h2ka] {
    margin: 14px 0 0; padding: 9px 12px; font-size: 13px;
    background: var(--stoich-bg); border: 1px solid #ecd49f;
    border-radius: 5px; color: #8d6008;
}

.fine[b-452rt3h2ka] { font-size: 12px; color: var(--ink-3); margin: 0; line-height: 1.5; }
.empty[b-452rt3h2ka] { color: var(--ink-2); font-style: italic; margin: 0; }

.err[b-452rt3h2ka] {
    margin: 14px 0; padding: 12px 14px;
    border: 1px solid #edc0ac; background: var(--rich-bg);
    border-radius: 5px; font-size: 14px;
}

/* ── deleting a vehicle ── */

/* Sits with the save and cancel buttons but reads as a link, not a button —
   it shouldn't compete with the action you actually came here for. */
.danger-link[b-452rt3h2ka] {
    font: inherit;
    font-size: 13px;
    padding: 0;
    margin-left: auto;
    border: 0;
    background: none;
    color: var(--ink-3);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
    align-self: center;
}
.danger-link:hover[b-452rt3h2ka] { color: var(--rich); }

.v-danger[b-452rt3h2ka] {
    margin-top: 12px;
    padding: 14px 16px;
    border: 1px solid #edc0ac;
    border-radius: 6px;
    background: #fbe8e1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.v-danger .blocked[b-452rt3h2ka] {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #8a2f10;
}

.v-danger .fine[b-452rt3h2ka] { margin: 0; font-size: 12px; color: var(--ink-2); }

.v-danger .acts[b-452rt3h2ka] { display: flex; gap: 8px; }

.btn-danger[b-452rt3h2ka] {
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    padding: 8px 16px;
    border-radius: 5px;
    border: 1px solid var(--rich);
    background: var(--rich);
    color: #fff;
    cursor: pointer;
}
.btn-danger:hover:not(:disabled)[b-452rt3h2ka] { background: #a8360f; }
.btn-danger:disabled[b-452rt3h2ka] { opacity: .5; cursor: default; }
/* /Components/Pages/CustomerLookup.razor.rz.scp.css */
.cq[b-23lcpuhg5j] { max-width: 480px; }

.card[b-23lcpuhg5j] {
    background: var(--card);
    border: 1px solid var(--rule);
    border-radius: 10px;
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

h1[b-23lcpuhg5j] {
    font-size: 22px;
    margin: 0;
    color: var(--ink);
}

.lead[b-23lcpuhg5j] {
    font-size: 15px;
    line-height: 1.55;
    color: var(--ink-2);
    margin: 0;
}

form[b-23lcpuhg5j] { display: flex; flex-direction: column; gap: 14px; margin: 4px 0 0; }

label[b-23lcpuhg5j] { display: flex; flex-direction: column; gap: 5px; }

.k[b-23lcpuhg5j] { font-size: 13px; color: var(--ink-2); }

input[b-23lcpuhg5j] {
    font: inherit;
    font-size: 16px;
    padding: 11px 13px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--card-2);
    color: var(--ink);
    width: 100%;
}

input[b-23lcpuhg5j]::placeholder { color: var(--ink-3); }

input:focus-visible[b-23lcpuhg5j] {
    outline: 2px solid var(--accent);
    outline-offset: -1px;
    border-color: var(--accent);
}

.btn[b-23lcpuhg5j] {
    font: inherit;
    font-size: 15px;
    font-weight: 500;
    padding: 12px 20px;
    border-radius: 6px;
    border: 1px solid var(--accent);
    background: var(--accent);
    color: #fff;
    cursor: pointer;
}

.btn:hover:not(:disabled)[b-23lcpuhg5j] { background: #c9491a; }
.btn:disabled[b-23lcpuhg5j] { opacity: .55; cursor: default; }

.bad[b-23lcpuhg5j] {
    margin: 0;
    font-size: 13px;
    padding: 9px 12px;
    background: var(--rich-bg);
    border: 1px solid #6a3220;
    border-radius: 6px;
    color: var(--rich);
}

.fine[b-23lcpuhg5j] {
    font-size: 12px;
    color: var(--ink-3);
    margin: 0;
    line-height: 1.55;
}
/* /Components/Pages/CustomerQuote.razor.rz.scp.css */
.cq[b-bsytol79td] {
    color: var(--ink);
}

.mono[b-bsytol79td] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }

.head[b-bsytol79td] {
    background: var(--card); border: 1px solid var(--rule);
    border-radius: 10px 10px 0 0; border-bottom: 0;
    padding: 22px 24px 18px;
}

.brand[b-bsytol79td] { font-size: 12px; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 10px; }
.head h1[b-bsytol79td] { font-size: 22px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-bsytol79td] { color: var(--ink-2); font-size: 14px; margin: 5px 0 0; }
.sep[b-bsytol79td] { margin: 0 7px; color: var(--ink-3); }

.lines[b-bsytol79td] {
    background: var(--card); border: 1px solid var(--rule);
    border-radius: 0 0 10px 10px; padding: 4px 24px 20px;
}

.cat[b-bsytol79td] {
    font-size: 12px; color: var(--ink-3);
    margin: 18px 0 6px; padding-bottom: 5px;
    border-bottom: 1px solid var(--rule-2);
}

.line[b-bsytol79td] { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; font-size: 15px; }
.detail[b-bsytol79td] { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.amt[b-bsytol79td] { white-space: nowrap; }

.total-line[b-bsytol79td] { color: var(--ink-2); font-size: 14px; padding: 5px 0; }
.total-line:first-of-type[b-bsytol79td] { border-top: 1px solid var(--rule); margin-top: 12px; padding-top: 12px; }

.grand[b-bsytol79td] { font-weight: 600; font-size: 18px; border-top: 1px solid var(--rule); margin-top: 6px; padding-top: 12px; }

.fine[b-bsytol79td] { font-size: 12px; color: var(--ink-3); margin: 12px 2px 0; line-height: 1.5; }

.decide[b-bsytol79td] { display: flex; gap: 10px; margin-top: 20px; }

.btn[b-bsytol79td] {
    font: inherit; font-size: 15px; font-weight: 500;
    padding: 12px 24px; border-radius: 8px;
    border: 1px solid var(--accent); background: var(--accent); color: var(--ink); cursor: pointer;
}
.btn:hover[b-bsytol79td] { background: #c9491a; }
.btn:disabled[b-bsytol79td] { opacity: .5; cursor: default; }

.btn-ghost[b-bsytol79td] {
    font: inherit; font-size: 15px; padding: 12px 20px; border-radius: 8px;
    border: 1px solid var(--rule); background: var(--card); color: var(--ink-2); cursor: pointer;
}
.btn-ghost:hover[b-bsytol79td] { border-color: var(--ink-3); }

.banner[b-bsytol79td] {
    margin-top: 20px; padding: 13px 16px; border-radius: 8px;
    border: 1px solid var(--rule); background: var(--card); font-size: 14px;
}
.ok-banner[b-bsytol79td] { background: var(--lean-bg); border-color: #3f5624; color: var(--lean); }

.ok[b-bsytol79td] {
    margin-top: 18px; padding: 11px 14px; border-radius: 8px;
    background: var(--lean-bg); border: 1px solid #cfe0ba;
    color: var(--lean); font-size: 14px;
}

/* ── payment ── */

.pay[b-bsytol79td] {
    margin-top: 18px; background: var(--card);
    border: 1px solid var(--rule); border-radius: 10px; padding: 22px 24px;
}

.pay h2[b-bsytol79td] { font-size: 16px; font-weight: 600; margin: 0 0 10px; }
.pay p[b-bsytol79td] { font-size: 14px; margin: 0 0 12px; }

.due[b-bsytol79td] { color: var(--ink-2); }
.big[b-bsytol79td] { font-size: 26px; font-weight: 600; color: var(--ink); }

.method[b-bsytol79td] {
    border: 1px solid var(--rule); border-radius: 8px;
    padding: 14px 16px; margin-top: 12px;
}

.method.muted[b-bsytol79td] { background: var(--card-2); color: var(--ink-3); }
.m-name[b-bsytol79td] { font-weight: 500; margin-bottom: 6px; }

.foot[b-bsytol79td] {
    margin-top: 26px; text-align: center;
    font-size: 13px; color: var(--ink-3);
}

.gone[b-bsytol79td] { background: var(--card); border: 1px solid var(--rule);
        border-radius: 10px; padding: 30px 26px; }
.gone h1[b-bsytol79td] { font-size: 20px; font-weight: 600; margin: 0 0 10px; }
.gone p[b-bsytol79td] { color: var(--ink-2); font-size: 14px; margin: 0; }

.empty[b-bsytol79td] { color: var(--ink-2); font-style: italic; }

.foot a[b-bsytol79td] { color: var(--accent); }
.foot-note[b-bsytol79td] { margin-top: 8px; }

.card-method[b-bsytol79td] { border-color: #3f5624; background: var(--lean-bg); }
.card-method .btn[b-bsytol79td] { width: 100%; margin-top: 4px; }
.bad[b-bsytol79td] { color: var(--rich); }

/* Form controls on a dark surface. Left to the browser they render as white
   boxes, which is the single most obvious way a themed page gives itself
   away. */
input[b-bsytol79td], textarea[b-bsytol79td], select[b-bsytol79td] {
    background: var(--card-2);
    color: var(--ink);
    border-color: var(--rule);
}

input[b-bsytol79td]::placeholder, textarea[b-bsytol79td]::placeholder { color: var(--ink-3); }

/* Native dropdown lists are drawn by the OS, not the page, so they don't
   inherit anything — they have to be told explicitly or you get dark text on
   a dark list. */
select option[b-bsytol79td] {
    background: #2b2b2e;
    color: #f0f0ee;
}

.gone[b-bsytol79td] { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }

.gone .btn[b-bsytol79td] {
    font: inherit; font-size: 15px; font-weight: 500;
    padding: 11px 20px; border-radius: 6px;
    border: 1px solid var(--accent); background: var(--accent);
    color: #fff; text-decoration: none; display: inline-block;
}
.gone .btn:hover[b-bsytol79td] { background: #c9491a; }
/* /Components/Pages/CustomerStatus.razor.rz.scp.css */
.cq[b-fdrnwnqy0n] {
    color: var(--ink);
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mono[b-fdrnwnqy0n] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }
.muted[b-fdrnwnqy0n] { color: var(--ink-3); }

.card[b-fdrnwnqy0n] {
    background: var(--card);
    border: 1px solid var(--rule);
    border-radius: 10px;
    padding: 22px 24px;
}

.brand[b-fdrnwnqy0n] { font-size: 12px; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 10px; }

.head h1[b-fdrnwnqy0n] { font-size: 22px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-fdrnwnqy0n] { color: var(--ink-2); font-size: 14px; margin: 5px 0 0; }
.sep[b-fdrnwnqy0n] { margin: 0 7px; color: var(--ink-3); }

.status-line[b-fdrnwnqy0n] {
    display: flex; align-items: center; gap: 9px;
    margin-top: 16px; padding-top: 14px;
    border-top: 1px solid var(--rule-2);
    font-size: 15px;
}

.pip[b-fdrnwnqy0n] { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.pip.go[b-fdrnwnqy0n] { background: var(--lean); }
.pip.wait[b-fdrnwnqy0n] { background: var(--stoich); }
.pip.neutral[b-fdrnwnqy0n] { background: var(--ink-3); }

.status[b-fdrnwnqy0n] { font-weight: 500; }
.since[b-fdrnwnqy0n] { color: var(--ink-3); font-size: 13px; margin-left: auto; }

h2[b-fdrnwnqy0n] { font-size: 15px; font-weight: 600; margin: 0 0 12px; }

/* ── waiting on you ── */

.needs[b-fdrnwnqy0n] { background: var(--stoich-bg); border-color: #59492099; }
.needs h2[b-fdrnwnqy0n] { color: var(--stoich); }
.needs ul[b-fdrnwnqy0n] { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.needs li[b-fdrnwnqy0n] { font-size: 14px; }

/* ── progress ── */

.timeline[b-fdrnwnqy0n] { border-left: 2px solid var(--rule-2); padding-left: 15px;
            display: flex; flex-direction: column; gap: 16px; }

.entry time[b-fdrnwnqy0n] { font-size: 12px; color: var(--ink-3); display: block; }
.what[b-fdrnwnqy0n] { margin-top: 3px; font-size: 15px; }
.next[b-fdrnwnqy0n] { margin-top: 4px; font-size: 14px; color: var(--ink-2); }
.lbl[b-fdrnwnqy0n] { font-size: 11px; color: var(--ink-3); margin-right: 5px; }

/* ── money ── */

table[b-fdrnwnqy0n] { width: 100%; border-collapse: collapse; font-size: 14px; }
td[b-fdrnwnqy0n] { padding: 9px 0; border-bottom: 1px solid var(--rule-2); }
tr:last-child td[b-fdrnwnqy0n] { border-bottom: 0; }
.amt[b-fdrnwnqy0n] { text-align: right; white-space: nowrap; }
tr.due td[b-fdrnwnqy0n] { font-weight: 600; }

.tag[b-fdrnwnqy0n] {
    display: inline-block; margin-left: 8px;
    font-size: 11px; padding: 2px 8px; border-radius: 999px;
    border: 1px solid var(--rule); background: var(--card-2); color: var(--ink-2);
}
.tag.good[b-fdrnwnqy0n] { background: var(--lean-bg); border-color: #3f5624; color: var(--lean); }

/* ── condition ── */

.facts[b-fdrnwnqy0n] { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px 20px; }
.facts > div[b-fdrnwnqy0n] { display: flex; flex-direction: column; }
.k[b-fdrnwnqy0n] { font-size: 12px; color: var(--ink-3); }

.noted[b-fdrnwnqy0n] { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--rule-2); }
.noted ul[b-fdrnwnqy0n] { margin: 6px 0 0; padding-left: 18px; font-size: 14px;
            display: flex; flex-direction: column; gap: 3px; }

.foot[b-fdrnwnqy0n] { text-align: center; font-size: 13px; color: var(--ink-3); margin-top: 10px; }

.gone h1[b-fdrnwnqy0n] { font-size: 20px; font-weight: 600; margin: 0 0 10px; }
.gone p[b-fdrnwnqy0n] { color: var(--ink-2); font-size: 14px; margin: 0; }

.empty[b-fdrnwnqy0n] { color: var(--ink-2); font-style: italic; margin: 0; }

.done[b-fdrnwnqy0n] { margin-top: 6px; font-size: 14px; color: var(--ink-2); }

.parts[b-fdrnwnqy0n] { margin-top: 7px; font-size: 14px; }
.parts ul[b-fdrnwnqy0n] { margin: 3px 0 0; padding-left: 18px; color: var(--ink-2);
            display: flex; flex-direction: column; gap: 1px; }

.pay[b-fdrnwnqy0n] {
    font: inherit; font-size: 15px; font-weight: 500;
    width: 100%; margin-top: 16px;
    padding: 12px 20px; border-radius: 8px;
    border: 1px solid var(--accent); background: var(--accent);
    color: var(--ink); cursor: pointer;
}
.pay:hover[b-fdrnwnqy0n] { background: #c9491a; }
.pay:disabled[b-fdrnwnqy0n] { opacity: .5; cursor: default; }

.pay-error[b-fdrnwnqy0n] { font-size: 13px; color: var(--rich); margin: 8px 0 0; }

.needs .act[b-fdrnwnqy0n] { color: var(--stoich); font-weight: 500; }

.shots[b-fdrnwnqy0n] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

.shot[b-fdrnwnqy0n] {
    display: block; width: 104px; height: 80px;
    border-radius: 6px; overflow: hidden;
    border: 1px solid var(--rule); background: var(--card-2);
}

.shot img[b-fdrnwnqy0n] { width: 100%; height: 100%; object-fit: cover; display: block; }
.shot:hover[b-fdrnwnqy0n] { border-color: var(--ink-3); }

.fine[b-fdrnwnqy0n] { font-size: 12px; color: var(--ink-3); margin: 8px 0 0; }

.small[b-fdrnwnqy0n] { font-size: 12px; margin-top: 2px; }

.timeline .shots[b-fdrnwnqy0n] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }

.timeline .shot[b-fdrnwnqy0n] {
    display: block; width: 100px; height: 76px;
    border-radius: 6px; overflow: hidden;
    border: 1px solid var(--rule); background: var(--card-2);
}

.timeline .shot img[b-fdrnwnqy0n] { width: 100%; height: 100%; object-fit: cover; display: block; }
.timeline .shot:hover[b-fdrnwnqy0n] { border-color: var(--ink-3); }

/* Form controls on a dark surface. Left to the browser they render as white
   boxes, which is the single most obvious way a themed page gives itself
   away. */
input[b-fdrnwnqy0n], textarea[b-fdrnwnqy0n], select[b-fdrnwnqy0n] {
    background: var(--card-2);
    color: var(--ink);
    border-color: var(--rule);
}

input[b-fdrnwnqy0n]::placeholder, textarea[b-fdrnwnqy0n]::placeholder { color: var(--ink-3); }

/* Native dropdown lists are drawn by the OS, not the page, so they don't
   inherit anything — they have to be told explicitly or you get dark text on
   a dark list. */
select option[b-fdrnwnqy0n] {
    background: #2b2b2e;
    color: #f0f0ee;
}

.gone[b-fdrnwnqy0n] { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }

.gone .btn[b-fdrnwnqy0n] {
    font: inherit; font-size: 15px; font-weight: 500;
    padding: 11px 20px; border-radius: 6px;
    border: 1px solid var(--accent); background: var(--accent);
    color: #fff; text-decoration: none; display: inline-block;
}
.gone .btn:hover[b-fdrnwnqy0n] { background: #c9491a; }

/* ── dyno results ── */

.card.dyno .pull[b-fdrnwnqy0n] {
    padding: 14px 0;
    border-top: 1px solid var(--rule-2);
}
.card.dyno .pull:first-of-type[b-fdrnwnqy0n] { border-top: 0; padding-top: 4px; }

.card.dyno .figs[b-fdrnwnqy0n] { display: flex; gap: 28px; flex-wrap: wrap; }

.card.dyno .f[b-fdrnwnqy0n] { display: flex; align-items: baseline; gap: 5px; }

.card.dyno .v[b-fdrnwnqy0n] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 40px;
    font-weight: 600;
    line-height: 1;
    color: var(--ink);
}

.card.dyno .best .v[b-fdrnwnqy0n] { color: var(--stoich); }

.card.dyno .u[b-fdrnwnqy0n] { font-size: 13px; color: var(--ink-3); }

.card.dyno .cond[b-fdrnwnqy0n] { font-size: 13px; color: var(--ink-2); margin-top: 8px; }
.card.dyno .note[b-fdrnwnqy0n] { font-size: 14px; color: var(--ink-2); margin-top: 8px; line-height: 1.5; }

.card.dyno .graph[b-fdrnwnqy0n] { display: block; margin-top: 12px; }

.card.dyno .graph img[b-fdrnwnqy0n] {
    width: 100%;
    display: block;
    border: 1px solid var(--rule);
    border-radius: 6px;
}

/* ── the power curve ── */

.card.dyno .curve[b-fdrnwnqy0n] {
    width: 100%;
    display: block;
    margin-top: 14px;
    background: var(--card-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
}

.card.dyno .curve path[b-fdrnwnqy0n] {
    fill: none;
    stroke-width: 2.5;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.card.dyno .curve .hp[b-fdrnwnqy0n] { stroke: #e2571f; }
.card.dyno .curve .tq[b-fdrnwnqy0n] { stroke: #e8a317; }

.card.dyno .curve .grid[b-fdrnwnqy0n] { stroke: #3a3a3e; stroke-width: 1; }

.card.dyno .curve .lab[b-fdrnwnqy0n] {
    fill: #85888c;
    font-size: 10px;
    font-family: "IBM Plex Mono", monospace;
}

.card.dyno .curve .lab.y[b-fdrnwnqy0n] { text-anchor: end; }
.card.dyno .curve .lab.x[b-fdrnwnqy0n] { text-anchor: middle; }

.card.dyno .curve-key[b-fdrnwnqy0n] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    font-size: 12px;
    color: var(--ink-3);
}

.card.dyno .k-hp[b-fdrnwnqy0n], .card.dyno .k-tq[b-fdrnwnqy0n] {
    display: inline-block;
    width: 16px;
    height: 3px;
    border-radius: 2px;
}

.card.dyno .k-hp[b-fdrnwnqy0n] { background: #e2571f; }
.card.dyno .k-tq[b-fdrnwnqy0n] { background: #e8a317; margin-left: 14px; }

.card.dyno .corr[b-fdrnwnqy0n] { margin-left: auto; font-size: 11px; }
/* /Components/Pages/CustomerWaiver.razor.rz.scp.css */
.cq[b-onqvm99les] {
    color: var(--ink);
    display: flex; flex-direction: column; gap: 14px;
}

.mono[b-onqvm99les] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }

.card[b-onqvm99les] { background: var(--card); border: 1px solid var(--rule);
        border-radius: 10px; padding: 22px 24px; }

.brand[b-onqvm99les] { font-size: 12px; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 10px; }
h1[b-onqvm99les] { font-size: 22px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.lead[b-onqvm99les] { color: var(--ink-2); font-size: 14px; margin: 6px 0 0; }
.sep[b-onqvm99les] { margin: 0 7px; color: var(--ink-3); }

h2[b-onqvm99les] { font-size: 15px; font-weight: 600; margin: 0 0 14px; }

/* ── the document ── */

.doc[b-onqvm99les] { max-height: 380px; overflow-y: auto; }
.doc p[b-onqvm99les] { font-size: 13px; line-height: 1.6; color: var(--ink-2); margin: 0 0 14px; }
.doc p:first-child[b-onqvm99les] { font-weight: 600; color: var(--ink); }
.doc p:last-child[b-onqvm99les] { margin-bottom: 0; }

/* ── signing ── */

.sign[b-onqvm99les] { display: flex; flex-direction: column; gap: 14px; }

label[b-onqvm99les] { display: flex; flex-direction: column; gap: 4px; }
.k[b-onqvm99les] { font-size: 13px; color: var(--ink-2); }

input[b-onqvm99les] {
    font: inherit; padding: 9px 11px;
    border: 1px solid var(--rule); border-radius: 6px;
    background: var(--card); width: 100%;
}

input:focus-visible[b-onqvm99les] { outline: 2px solid var(--accent); outline-offset: -1px;
                      border-color: var(--accent); }

.pad-wrap[b-onqvm99les] { position: relative; }

canvas[b-onqvm99les] {
    width: 100%;
    height: 170px;
    border: 1px dashed var(--rule);
    border-radius: 8px;
    background: var(--card-2);
    touch-action: none;   /* stop the page scrolling while drawing */
    cursor: crosshair;
    display: block;
}

.clear[b-onqvm99les] {
    position: absolute; top: 8px; right: 8px;
    font: inherit; font-size: 12px;
    padding: 4px 10px; border-radius: 5px;
    border: 1px solid var(--rule); background: var(--card);
    color: var(--ink-2); cursor: pointer;
}
.clear:hover[b-onqvm99les] { border-color: var(--ink-3); }

.fine[b-onqvm99les] { font-size: 12px; color: var(--ink-3); margin: 0; line-height: 1.5; }

.bad[b-onqvm99les] {
    font-size: 13px; margin: 0; padding: 9px 12px;
    background: var(--rich-bg); border: 1px solid #f0c3b0;
    border-radius: 6px; color: var(--rich);
}

.btn[b-onqvm99les] {
    font: inherit; font-size: 15px; font-weight: 500;
    padding: 12px 20px; border-radius: 8px;
    border: 1px solid var(--accent); background: var(--accent);
    color: var(--ink); cursor: pointer;
}
.btn:hover[b-onqvm99les] { background: #c9491a; }
.btn:disabled[b-onqvm99les] { opacity: .5; cursor: default; }

.link[b-onqvm99les] { color: var(--accent); font-size: 14px; }

.foot[b-onqvm99les] { text-align: center; font-size: 13px; color: var(--ink-3); margin-top: 6px; }

.gone h1[b-onqvm99les] { font-size: 20px; margin-bottom: 10px; }
.gone p[b-onqvm99les] { color: var(--ink-2); font-size: 14px; margin: 0; }

.empty[b-onqvm99les] { color: var(--ink-2); font-style: italic; }

/* Form controls on a dark surface. Left to the browser they render as white
   boxes, which is the single most obvious way a themed page gives itself
   away. */
input[b-onqvm99les], textarea[b-onqvm99les], select[b-onqvm99les] {
    background: var(--card-2);
    color: var(--ink);
    border-color: var(--rule);
}

input[b-onqvm99les]::placeholder, textarea[b-onqvm99les]::placeholder { color: var(--ink-3); }

/* Native dropdown lists are drawn by the OS, not the page, so they don't
   inherit anything — they have to be told explicitly or you get dark text on
   a dark list. */
select option[b-onqvm99les] {
    background: #2b2b2e;
    color: #f0f0ee;
}

.gone[b-onqvm99les] { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }

.gone .btn[b-onqvm99les] {
    font: inherit; font-size: 15px; font-weight: 500;
    padding: 11px 20px; border-radius: 6px;
    border: 1px solid var(--accent); background: var(--accent);
    color: #fff; text-decoration: none; display: inline-block;
}
.gone .btn:hover[b-onqvm99les] { background: #c9491a; }
/* /Components/Pages/EditWorkLog.razor.rz.scp.css */
.editlog[b-d4whqx000j] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414; --steel: #333c4a;
    --rich-bg: #fbe9e2; --stoich-bg: #fbf1dd; --lean-bg: #eaf2df;
    color: var(--ink); max-width: 700px; padding-bottom: 60px;
}

.back[b-d4whqx000j] { display: inline-block; font-size: 13px; color: var(--ink-2);
        text-decoration: none; margin-bottom: 14px; }
.back:hover[b-d4whqx000j] { color: var(--ink); text-decoration: underline; }

.head[b-d4whqx000j] { display: flex; align-items: flex-start; gap: 16px;
        padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.head h1[b-d4whqx000j] { font-size: 22px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-d4whqx000j] { color: var(--ink-2); font-size: 13px; margin: 4px 0 0; }
.sep[b-d4whqx000j] { margin: 0 6px; color: var(--ink-3); }

.badge[b-d4whqx000j] { margin-left: auto; font-size: 12px; padding: 3px 10px; border-radius: 999px;
         border: 1px solid var(--rule); background: #f4f4f1; color: var(--ink-2);
         white-space: nowrap; }
.badge.pub[b-d4whqx000j] { background: var(--lean-bg); border-color: #cfe0ba; color: #43690e; }

section[b-d4whqx000j] { margin-top: 22px; display: flex; flex-direction: column; gap: 14px; }

label[b-d4whqx000j] { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.row[b-d4whqx000j] { display: flex; gap: 12px; flex-wrap: wrap; }
.narrow[b-d4whqx000j] { max-width: 130px; }

.k[b-d4whqx000j] { font-size: 13px; color: var(--ink-2); }
.hint[b-d4whqx000j] { font-size: 12px; color: var(--ink-3); }

input[b-d4whqx000j], textarea[b-d4whqx000j] {
    font: inherit; padding: 8px 10px;
    border: 1px solid var(--rule); border-radius: 6px;
    background: #fff; width: 100%;
}
textarea[b-d4whqx000j] { resize: vertical; }

input:focus-visible[b-d4whqx000j], textarea:focus-visible[b-d4whqx000j] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.publish-block[b-d4whqx000j] {
    border: 1px solid var(--rule); border-radius: 6px;
    padding: 12px; background: #fff;
    display: flex; flex-direction: column; gap: 10px;
}
.publish-block.on[b-d4whqx000j] { background: var(--lean-bg); border-color: #cfe0ba; }

.check[b-d4whqx000j] { flex-direction: row !important; align-items: center; gap: 8px !important; }
.check input[b-d4whqx000j] { width: auto; }

.warn[b-d4whqx000j] { margin: 16px 0 0; font-size: 13px; padding: 9px 12px;
        background: var(--stoich-bg); border: 1px solid #edd6a4;
        border-radius: 6px; color: #96660a; }

.actions[b-d4whqx000j] { display: flex; gap: 8px; margin-top: 24px;
           padding-top: 18px; border-top: 1px solid var(--rule); }

.btn[b-d4whqx000j] { font: inherit; font-weight: 500; padding: 9px 18px; border-radius: 6px;
       border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer; }
.btn:hover[b-d4whqx000j] { background: #29313d; }
.btn:disabled[b-d4whqx000j] { opacity: .5; cursor: default; }

.btn-ghost[b-d4whqx000j] { font: inherit; padding: 9px 16px; border-radius: 6px;
             border: 1px solid var(--rule); background: #fff; color: var(--ink-2);
             cursor: pointer; text-decoration: none; display: inline-block; }
.btn-ghost:hover[b-d4whqx000j] { border-color: var(--ink-3); }

.btn-ghost.danger[b-d4whqx000j] { margin-left: auto; color: var(--rich); border-color: #f0c3b0; }
.btn-ghost.danger:hover[b-d4whqx000j] { background: var(--rich-bg); }

.empty[b-d4whqx000j] { color: var(--ink-2); font-style: italic; }
.err[b-d4whqx000j] { margin: 16px 0; padding: 12px 14px; border: 1px solid #f0c3b0;
       background: var(--rich-bg); border-radius: 6px; font-size: 14px; }

.shots-field[b-d4whqx000j] {
    display: flex; flex-direction: column; gap: 8px;
    padding: 12px; border: 1px solid var(--rule);
    border-radius: 6px; background: #fcfcfa;
}

.shots-field input[type=file][b-d4whqx000j] { font-size: 13px; border: 0; padding: 0; background: none; }

.thumbs[b-d4whqx000j] { display: flex; flex-wrap: wrap; gap: 8px; }

.thumb[b-d4whqx000j] { position: relative; width: 88px; height: 66px; }

.thumb img[b-d4whqx000j] {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: 5px; border: 1px solid var(--rule);
}

/* Newly added photos are outlined so it's obvious which are staged and
   which are already saved. */
.thumb.new img[b-d4whqx000j] { border-color: var(--lean); border-width: 2px; }

.thumb .x[b-d4whqx000j] {
    position: absolute; top: -6px; right: -6px;
    width: 20px; height: 20px; padding: 0; line-height: 1;
    font-size: 14px; border-radius: 50%;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.thumb .x:hover[b-d4whqx000j] { background: var(--rich-bg); color: var(--rich); border-color: #f0c3b0; }

.warn-text[b-d4whqx000j] { color: var(--rich); }
/* /Components/Pages/Intake.razor.rz.scp.css */
.intake[b-mx4e1v5gdr] {
    color: var(--ink);
    max-width: 680px;
    padding-bottom: 60px;
}

.head h1[b-mx4e1v5gdr] {
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.015em;
    margin: 0;
}

.sub[b-mx4e1v5gdr] { color: var(--ink-2); font-size: 14px; margin: 6px 0 0; max-width: 52ch; }

/* ── step rail ── */

.steps[b-mx4e1v5gdr] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    list-style: none;
    margin: 22px 0 0;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--rule);
}

.steps button[b-mx4e1v5gdr] {
    font: inherit;
    font-size: 13px;
    padding: 5px 11px;
    border-radius: 999px;
    border: 1px solid transparent;
    background: none;
    color: var(--ink-3);
    cursor: pointer;
}

.steps button:disabled[b-mx4e1v5gdr] { cursor: default; }

.steps .past button[b-mx4e1v5gdr] { color: var(--lean); }
.steps .past button:hover[b-mx4e1v5gdr] { background: var(--lean-bg); }

.steps .now button[b-mx4e1v5gdr] {
    color: var(--ink);
    background: var(--card);
    border-color: var(--rule);
    font-weight: 500;
}

/* ── fields ── */

section[b-mx4e1v5gdr] {
    margin-top: 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

label[b-mx4e1v5gdr] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}

.row[b-mx4e1v5gdr] { display: flex; gap: 12px; flex-wrap: wrap; }

.narrow[b-mx4e1v5gdr] { max-width: 120px; }

.k[b-mx4e1v5gdr] { font-size: 13px; color: var(--ink-2); }

input[b-mx4e1v5gdr], textarea[b-mx4e1v5gdr], select[b-mx4e1v5gdr] {
    color: var(--ink);
    font: inherit;
    padding: 9px 11px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--card);
    width: 100%;
}

textarea[b-mx4e1v5gdr] { resize: vertical; }

input:focus-visible[b-mx4e1v5gdr], textarea:focus-visible[b-mx4e1v5gdr], select:focus-visible[b-mx4e1v5gdr] {
    outline: 2px solid var(--accent);
    outline-offset: -1px;
    border-color: var(--accent);
}

/* ── yes / no / not sure ── */

.tri[b-mx4e1v5gdr] { display: flex; gap: 6px; }

.tri button[b-mx4e1v5gdr] {
    font: inherit;
    font-size: 14px;
    font-weight: 400;
    padding: 8px 18px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--card);
    color: var(--ink-2);
    cursor: pointer;
}

.tri button:hover:not(.on)[b-mx4e1v5gdr] { border-color: var(--ink-3); color: var(--ink); }

.tri button:focus-visible[b-mx4e1v5gdr] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* Chosen state carries three signals, not one: fill, weight and a tick.
   Colour alone fails for anyone who can't distinguish it, and a single
   subtle cue is exactly what made this invisible on a phone in daylight. */
.tri button.on[b-mx4e1v5gdr] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--ink);
    font-weight: 500;
}

.tri button.on[b-mx4e1v5gdr]::before {
    content: "✓";
    margin-right: 6px;
    font-size: 12px;
}

/* ── multi-select ── */

.checks[b-mx4e1v5gdr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 6px 14px;
}

.check[b-mx4e1v5gdr] {
    flex-direction: row !important;
    align-items: center;
    gap: 8px !important;
    font-size: 14px;
    cursor: pointer;
}

.check input[b-mx4e1v5gdr] { width: auto; }

/* ── consent blocks ── */

.consent[b-mx4e1v5gdr] {
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 12px;
    background: var(--card-2);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fine[b-mx4e1v5gdr] {
    font-size: 12px;
    color: var(--ink-3);
    margin: 0;
    line-height: 1.5;
}

/* ── actions ── */

.actions[b-mx4e1v5gdr] {
    display: flex;
    gap: 8px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--rule);
}

.btn[b-mx4e1v5gdr] {
    font: inherit;
    font-weight: 500;
    padding: 9px 18px;
    border-radius: 6px;
    border: 1px solid var(--accent);
    background: var(--accent);
    color: var(--ink);
    cursor: pointer;
}

.btn:hover[b-mx4e1v5gdr] { background: #c9491a; }
.btn:disabled[b-mx4e1v5gdr] { opacity: .5; cursor: default; }

.btn-ghost[b-mx4e1v5gdr] {
    font: inherit;
    padding: 9px 16px;
    border-radius: 6px;
    border: 1px solid var(--rule);
    background: var(--card);
    color: var(--ink-2);
    cursor: pointer;
}

.btn-ghost:hover[b-mx4e1v5gdr] { border-color: var(--ink-3); }

.validation-message[b-mx4e1v5gdr] { font-size: 13px; color: var(--rich); }

.err[b-mx4e1v5gdr] {
    margin: 16px 0;
    padding: 12px 14px;
    border: 1px solid #f0c3b0;
    background: #fbe9e2;
    border-radius: 6px;
    font-size: 14px;
}

/* ── confirmation ── */

.done[b-mx4e1v5gdr] { padding-top: 20px; }
.done h1[b-mx4e1v5gdr] { font-size: 24px; font-weight: 600; margin: 0 0 10px; }
.done p[b-mx4e1v5gdr] { margin: 0 0 12px; }
.done .btn-ghost[b-mx4e1v5gdr] { margin-top: 10px; }

/* Sits directly above the buttons, where the eye already is when Next
   doesn't work. A message at the top of a long page gets missed. */
.step-error[b-mx4e1v5gdr] {
    margin: 16px 0 0;
    padding: 10px 13px;
    font-size: 14px;
    background: var(--rich-bg);
    border: 1px solid #6a3220;
    border-left: 3px solid #cc4318;
    border-radius: 5px;
    color: var(--rich);
}

.req[b-mx4e1v5gdr] {
    font-size: 11px;
    color: #8b8f95;
    margin-left: 5px;
}

/* Form controls on a dark surface. Left to the browser they render as white
   boxes, which is the single most obvious way a themed page gives itself
   away. */
input[b-mx4e1v5gdr], textarea[b-mx4e1v5gdr], select[b-mx4e1v5gdr] {
    background: var(--card-2);
    color: var(--ink);
    border-color: var(--rule);
}

input[b-mx4e1v5gdr]::placeholder, textarea[b-mx4e1v5gdr]::placeholder { color: var(--ink-3); }

/* Native dropdown lists are drawn by the OS, not the page, so they don't
   inherit anything — they have to be told explicitly or you get dark text on
   a dark list. */
select option[b-mx4e1v5gdr] {
    background: #2b2b2e;
    color: #f0f0ee;
}

.brandline[b-mx4e1v5gdr] {
    font-size: 12px;
    letter-spacing: .06em;
    color: var(--ink-3);
    margin-bottom: 8px;
}

/* Each step gets its own heading and intro, as the Fillout form does. Without
   them a six-page form is just fields, and the customer never knows why they're
   being asked. */
.step-head[b-mx4e1v5gdr] {
    margin-bottom: 6px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rule-2);
}

.step-head h2[b-mx4e1v5gdr] {
    font-size: 19px;
    margin: 0;
    color: var(--ink);
}

.step-head p[b-mx4e1v5gdr] {
    font-size: 14px;
    line-height: 1.6;
    color: var(--ink-2);
    margin: 8px 0 0;
}

/* The acknowledgement terms, as they appear on the Fillout form. Ticking a
   box that references terms nobody was shown is not much of a record. */
.ack-terms[b-mx4e1v5gdr] {
    padding: 16px 18px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--card-2);
}

.ack-terms h3[b-mx4e1v5gdr] {
    font-size: 15px;
    margin: 18px 0 6px;
    color: var(--ink);
}
.ack-terms h3:first-child[b-mx4e1v5gdr] { margin-top: 0; }

.ack-terms p[b-mx4e1v5gdr] {
    font-size: 13px;
    line-height: 1.6;
    color: var(--ink-2);
    margin: 0 0 10px;
}
.ack-terms p:last-child[b-mx4e1v5gdr] { margin-bottom: 0; }

/* The consent text is the record, so it sits next to the box rather than
   under a short label — a customer should be agreeing to what's actually
   stored against their name. */
.consent .check span[b-mx4e1v5gdr] { font-size: 13px; line-height: 1.55; }

.consent a[b-mx4e1v5gdr] { color: var(--ink-2); }
.consent a:hover[b-mx4e1v5gdr] { color: var(--ink); }
/* /Components/Pages/InvoiceBuilder.razor.rz.scp.css */
.invoice[b-tb26v45mn8] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414;
    --steel: #333c4a;
    --stoich-bg: #fbf1dd;
    color: var(--ink); max-width: 940px; padding-bottom: 60px;
}

.mono[b-tb26v45mn8] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }
.muted[b-tb26v45mn8] { color: var(--ink-3); }

.back[b-tb26v45mn8] { display: inline-block; font-size: 13px; color: var(--ink-2);
        text-decoration: none; margin-bottom: 14px; }
.back:hover[b-tb26v45mn8] { color: var(--ink); text-decoration: underline; }

.head[b-tb26v45mn8] { display: flex; align-items: flex-start; gap: 16px;
        padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.head h1[b-tb26v45mn8] { font-size: 24px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-tb26v45mn8] { color: var(--ink-2); font-size: 14px; margin: 4px 0 0; }
.sep[b-tb26v45mn8] { margin: 0 7px; color: var(--ink-3); }

.badge[b-tb26v45mn8] { margin-left: auto; font-size: 12px; padding: 3px 10px; border-radius: 999px;
         border: 1px solid var(--rule); background: #f4f4f1; color: var(--ink-2); }

.locked[b-tb26v45mn8] { margin-top: 16px; padding: 11px 14px; border-radius: 6px;
          background: var(--stoich-bg); border: 1px solid #edd6a4;
          color: #96660a; font-size: 14px; }

/* ── line grid ── */

.lines[b-tb26v45mn8] { margin-top: 22px; }

.lines-head[b-tb26v45mn8], .line[b-tb26v45mn8] {
    display: grid;
    grid-template-columns: 2.2fr 110px 84px 74px 64px 84px 96px 28px;
    gap: 8px;
    align-items: center;
}

.lines-head[b-tb26v45mn8] {
    font-size: 12px; color: var(--ink-3);
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
}

.lines-head .num[b-tb26v45mn8], .line .num[b-tb26v45mn8] { text-align: right; }

.line[b-tb26v45mn8] { padding: 7px 0; border-bottom: 1px solid var(--rule-2); }

.line input[b-tb26v45mn8], .line select[b-tb26v45mn8] {
    font: inherit; font-size: 14px; padding: 6px 9px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff; width: 100%;
}

.line input.num[b-tb26v45mn8] { text-align: right; }

.line input:focus-visible[b-tb26v45mn8], .line select:focus-visible[b-tb26v45mn8] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.line .total[b-tb26v45mn8] { font-weight: 500; }

.x[b-tb26v45mn8] {
    font: inherit; font-size: 17px; line-height: 1;
    width: 26px; height: 26px; padding: 0;
    border: 1px solid transparent; border-radius: 5px;
    background: none; color: var(--ink-3); cursor: pointer;
}
.x:hover[b-tb26v45mn8] { background: #fbe9e2; color: var(--rich); border-color: #f0c3b0; }

.add[b-tb26v45mn8] { display: flex; gap: 8px; margin-top: 12px; }

.btn-ghost-sm[b-tb26v45mn8] {
    font: inherit; font-size: 13px; padding: 6px 12px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff; color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-tb26v45mn8] { border-color: var(--ink-3); }

/* ── totals ── */

.totals[b-tb26v45mn8] { margin: 26px 0 0; margin-left: auto; max-width: 330px; }

.t-row[b-tb26v45mn8] { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; }
.t-row.sub-row[b-tb26v45mn8] { color: var(--ink-2); font-size: 13px; }
.t-row.grand[b-tb26v45mn8] {
    border-top: 1px solid var(--rule); margin-top: 5px; padding-top: 10px;
    font-weight: 600; font-size: 16px;
}

.warn[b-tb26v45mn8] { margin-top: 16px; font-size: 13px; padding: 9px 12px;
        background: var(--stoich-bg); border: 1px solid #edd6a4;
        border-radius: 6px; color: #96660a; }

.actions[b-tb26v45mn8] { display: flex; gap: 8px; margin-top: 26px;
           padding-top: 18px; border-top: 1px solid var(--rule); }

.btn[b-tb26v45mn8] {
    font: inherit; font-weight: 500; padding: 9px 18px; border-radius: 6px;
    border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer;
}
.btn:hover[b-tb26v45mn8] { background: #29313d; }
.btn:disabled[b-tb26v45mn8] { opacity: .5; cursor: default; }

.btn-ghost[b-tb26v45mn8] {
    font: inherit; padding: 9px 16px; border-radius: 6px;
    border: 1px solid var(--rule); background: #fff; color: var(--ink-2); cursor: pointer;
}
.btn-ghost:hover[b-tb26v45mn8] { border-color: var(--ink-3); }

.empty[b-tb26v45mn8] { color: var(--ink-2); font-style: italic; }
.err[b-tb26v45mn8] { margin: 16px 0; padding: 12px 14px; border: 1px solid #f0c3b0;
       background: #fbe9e2; border-radius: 6px; font-size: 14px; }

/* ── invoice-specific ── */

.head[b-tb26v45mn8] { display: flex; align-items: flex-start; gap: 16px; }
.head-right[b-tb26v45mn8] { margin-left: auto; text-align: right; }
.head-right .num[b-tb26v45mn8] { font-size: 12px; color: var(--ink-3); margin-top: 5px; }

.badge.paid[b-tb26v45mn8] { background: var(--lean-bg); border-color: #cfe0ba; color: #43690e; }

.offer[b-tb26v45mn8] {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    margin-top: 20px; padding: 14px 16px;
    background: var(--lean-bg); border: 1px solid #cfe0ba;
    border-radius: 8px; font-size: 14px;
}
.offer .btn[b-tb26v45mn8] { margin-left: auto; }

.t-row.credit[b-tb26v45mn8] { color: var(--lean); }

.fine[b-tb26v45mn8] { font-size: 12px; color: var(--ink-3); margin: 10px 0 0; text-align: right; }

/* ── payments ── */

.payments[b-tb26v45mn8] { margin-top: 34px; }
.payments h2[b-tb26v45mn8] { font-size: 15px; font-weight: 600; margin: 0 0 12px;
               padding-bottom: 7px; border-bottom: 1px solid var(--rule); }

.payments table[b-tb26v45mn8] { width: 100%; border-collapse: collapse; font-size: 14px; }
.payments td[b-tb26v45mn8] { padding: 8px 0; border-bottom: 1px solid var(--rule-2); }
.payments .amt[b-tb26v45mn8] { text-align: right; }

.take[b-tb26v45mn8] { display: flex; align-items: flex-end; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.take label[b-tb26v45mn8] { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.take .narrow[b-tb26v45mn8] { max-width: 130px; }
.take .k[b-tb26v45mn8] { font-size: 12px; color: var(--ink-3); }

.take input[b-tb26v45mn8], .take select[b-tb26v45mn8] {
    font: inherit; font-size: 14px; padding: 7px 10px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff; width: 100%;
}

.btn-sm[b-tb26v45mn8] {
    font: inherit; font-size: 14px; font-weight: 500;
    padding: 8px 16px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer;
}
.btn-sm:hover[b-tb26v45mn8] { background: #29313d; }
.btn-sm:disabled[b-tb26v45mn8] { opacity: .5; cursor: default; }

.settled[b-tb26v45mn8] {
    margin-top: 14px; padding: 10px 14px; border-radius: 6px;
    background: var(--lean-bg); border: 1px solid #cfe0ba;
    color: #43690e; font-size: 14px;
}

.empty[b-tb26v45mn8] { color: var(--ink-2); font-style: italic; }
.err-inner[b-tb26v45mn8] { margin-top: 6px; font-size: 13px; color: var(--ink-2); }

.logs-offer[b-tb26v45mn8] { background: #f4f4f1; border-color: var(--rule); }

.parts-offer[b-tb26v45mn8] { background: #eef4e4; border-color: #cbdcac; }

/* ── several invoices on one job ── */

.siblings[b-tb26v45mn8] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 16px;
}

.sib[b-tb26v45mn8] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 8px 13px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: #fff;
    text-decoration: none;
    color: var(--ink-2);
    font-size: 13px;
}

.sib:hover[b-tb26v45mn8] { border-color: var(--ink-3); color: var(--ink); }

.sib.on[b-tb26v45mn8] {
    border-color: var(--steel);
    background: #f4f5f6;
    color: var(--ink);
    font-weight: 500;
}

.sib .amt[b-tb26v45mn8] { color: var(--ink); }
.sib .st[b-tb26v45mn8] { font-size: 11px; color: var(--ink-3); }

.sib.new[b-tb26v45mn8] { border-style: dashed; color: var(--ink-3); }
.sib.new:hover[b-tb26v45mn8] { border-style: solid; }

/* Sent and paid — the invoice is now a record of what was agreed and
   collected, so it stops being a document you edit. */
.locked[b-tb26v45mn8] {
    margin-top: 16px;
    padding: 10px 13px;
    font-size: 13px;
    background: #f4f4f1;
    border: 1px solid var(--rule);
    border-left: 3px solid var(--ink-3);
    border-radius: 5px;
    color: var(--ink-2);
}

.btn-ghost.danger[b-tb26v45mn8] { border-color: #edc0ac; color: #a8360f; }
.btn-ghost.danger:hover[b-tb26v45mn8] { background: #fbe8e1; }

/* The deposit is a decision, not an automatic subtraction — which invoice it
   belongs on is something only the person writing it knows. */
.t-row.credit-toggle[b-tb26v45mn8] {
    border-top: 1px dashed var(--rule);
    padding-top: 10px;
    margin-top: 6px;
}

.t-row.credit-toggle .check[b-tb26v45mn8] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: var(--ink-2);
    cursor: pointer;
    line-height: 1.45;
}

.t-row.credit-toggle input[b-tb26v45mn8] { width: auto; margin-top: 2px; }

/* Only once it's issued — printing a draft produces a document that looks
   final and isn't. */
.print-link[b-tb26v45mn8] {
    display: inline-block;
    margin-top: 6px;
    font-size: 13px;
    color: var(--ink-2);
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
}
.print-link:hover[b-tb26v45mn8] { color: var(--ink); border-bottom-color: var(--ink-3); }
/* /Components/Pages/InvoicePrint.razor.rz.scp.css */
/* A document, not an app screen. Sized and spaced for US Letter. */

.sheet[b-10m92th9iw] {
    --ink: #16181a;
    --ink-2: #55595e;
    --ink-3: #8b8f95;
    --rule: #d8d9d6;
    --rule-2: #e6e7e4;
    --mark: #cc4318;

    max-width: 8.5in;
    min-height: 11in;
    margin: 24px auto;
    padding: 0.6in 0.65in;
    background: #fff;
    color: var(--ink);
    font-family: Barlow, system-ui, sans-serif;
    font-size: 13px;
    line-height: 1.5;
    box-shadow: 0 1px 4px rgba(0,0,0,.09);
}

/* ── toolbar ── */

.toolbar[b-10m92th9iw] {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 26px;
    padding-bottom: 14px;
    border-bottom: 1px dashed var(--rule);
}

.toolbar a[b-10m92th9iw] { font-size: 13px; color: var(--ink-2); text-decoration: none; }
.toolbar a:hover[b-10m92th9iw] { color: var(--ink); }

.toolbar button[b-10m92th9iw] {
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    margin-left: auto;
    padding: 8px 18px;
    border: 1px solid #2b3138;
    border-radius: 5px;
    background: #2b3138;
    color: #fff;
    cursor: pointer;
}

/* ── letterhead ── */

.letterhead[b-10m92th9iw] {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    padding-bottom: 20px;
    border-bottom: 2px solid var(--ink);
}

.shop .name[b-10m92th9iw] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: .04em;
}

.shop .mark[b-10m92th9iw] { color: var(--mark); }

.shop .lines[b-10m92th9iw] { font-size: 12px; color: var(--ink-2); margin-top: 6px; line-height: 1.6; }

.doc[b-10m92th9iw] { text-align: right; }

.doc-type[b-10m92th9iw] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 30px;
    font-weight: 600;
    line-height: 1;
}

.doc-num[b-10m92th9iw] {
    font-family: "IBM Plex Mono", monospace;
    font-size: 13px;
    color: var(--ink-2);
    margin-top: 3px;
}

.doc-meta[b-10m92th9iw] { margin-left: auto; margin-top: 10px; font-size: 12px; }
.doc-meta td[b-10m92th9iw] { padding: 1px 0 1px 14px; }
.doc-meta td:first-child[b-10m92th9iw] { color: var(--ink-3); padding-left: 0; }

/* ── who and what ── */

.parties[b-10m92th9iw] {
    display: flex;
    gap: 50px;
    margin-top: 22px;
}

.party[b-10m92th9iw] { flex: 1; }

.label[b-10m92th9iw] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ink-3);
    margin-bottom: 5px;
}

.who[b-10m92th9iw] { font-weight: 600; font-size: 14px; }

/* ── the lines ── */

.items[b-10m92th9iw] { width: 100%; border-collapse: collapse; margin-top: 28px; }

.items th[b-10m92th9iw] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ink-3);
    text-align: left;
    padding: 0 10px 7px 0;
    border-bottom: 1px solid var(--ink);
    font-weight: 500;
}

/* Fixed widths and real gaps between the numeric columns. Without them the
   figures run into each other — a qty em-dash touching an amount reads as a
   minus sign, which on an invoice is not a small confusion. */
.items th.n[b-10m92th9iw], .items td.n[b-10m92th9iw] {
    text-align: right;
    padding-left: 18px;
    padding-right: 0;
    white-space: nowrap;
}

.items th:nth-child(2)[b-10m92th9iw], .items td:nth-child(2)[b-10m92th9iw] { width: 84px; }
.items th:nth-child(3)[b-10m92th9iw], .items td:nth-child(3)[b-10m92th9iw] { width: 62px; }
.items th:nth-child(4)[b-10m92th9iw], .items td:nth-child(4)[b-10m92th9iw] { width: 52px; }
.items th:nth-child(5)[b-10m92th9iw], .items td:nth-child(5)[b-10m92th9iw] { width: 96px; }

.items td[b-10m92th9iw] {
    padding: 10px 10px 10px 0;
    border-bottom: 1px solid var(--rule-2);
    vertical-align: top;
}

.items td:first-child[b-10m92th9iw] { padding-right: 20px; line-height: 1.4; }

.cat[b-10m92th9iw] { font-size: 11px; color: var(--ink-3); margin-top: 3px; }

/* ── totals ── */

.totals[b-10m92th9iw] { display: flex; justify-content: flex-end; margin-top: 18px; }

.totals table[b-10m92th9iw] { min-width: 280px; }

.totals td[b-10m92th9iw] { padding: 5px 0; }
.totals td.n[b-10m92th9iw] { text-align: right; }

.totals .fine[b-10m92th9iw] { font-size: 11px; color: var(--ink-3); margin-left: 5px; }

.totals .grand td[b-10m92th9iw] {
    font-weight: 700;
    font-size: 15px;
    border-top: 1px solid var(--ink);
    padding-top: 9px;
}

.totals .pay td[b-10m92th9iw] { color: var(--ink-2); }

.totals .due td[b-10m92th9iw] {
    font-size: 17px;
    border-top: 2px solid var(--ink);
}

/* ── terms ── */

.terms[b-10m92th9iw] {
    margin-top: 34px;
    padding: 12px 14px;
    border: 1px solid var(--rule);
    border-left: 3px solid var(--ink);
    font-size: 12px;
    color: var(--ink-2);
}

.terms.paid-note[b-10m92th9iw] { border-left-color: #5b8f11; }

.foot[b-10m92th9iw] {
    margin-top: 40px;
    padding-top: 12px;
    border-top: 1px solid var(--rule-2);
    font-size: 11px;
    color: var(--ink-3);
    text-align: center;
}

.loading[b-10m92th9iw] { padding: 40px; color: #55595e; font-style: italic; }

/* ── on paper ── */

@media print {
    .no-print[b-10m92th9iw] { display: none !important; }

    .sheet[b-10m92th9iw] {
        margin: 0;
        padding: 0;
        max-width: none;
        min-height: 0;
        box-shadow: none;
    }

    /* A table row split across a page break is unreadable, and a total
       stranded on its own page looks like a mistake. */
    .items tr[b-10m92th9iw], .totals[b-10m92th9iw], .terms[b-10m92th9iw] { break-inside: avoid; }

    .items thead[b-10m92th9iw] { display: table-header-group; }
}

@page { margin: 0.6in; }
/* /Components/Pages/JobDetail.razor.rz.scp.css */
.detail[b-20mwsbzuds] {
    --ink: #14161b;
    --ink-2: #5b6069;
    --ink-3: #8d929b;
    --rule: #dcdcd6;
    --rule-2: #ebebe6;
    --rich: #d8481a;
    --stoich: #d99413;
    --lean: #5f9414;
    --steel: #333c4a;
    --rich-bg: #fbe9e2;
    --stoich-bg: #fbf1dd;
    --lean-bg: #eaf2df;

    color: var(--ink);
    max-width: 780px;
    padding-bottom: 60px;
}

.mono[b-20mwsbzuds] {
    font-family: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-variant-ligatures: none;
}

.back[b-20mwsbzuds] {
    display: inline-block;
    font-size: 13px;
    color: var(--ink-2);
    text-decoration: none;
    margin-bottom: 14px;
}

.back:hover[b-20mwsbzuds] { color: var(--ink); text-decoration: underline; }

.head[b-20mwsbzuds] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rule);
}

.head h1[b-20mwsbzuds] {
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.015em;
    margin: 0;
}

.sub[b-20mwsbzuds] { color: var(--ink-2); font-size: 14px; margin: 4px 0 0; }
.sep[b-20mwsbzuds] { margin: 0 7px; color: var(--ink-3); }

.status[b-20mwsbzuds] {
    margin-left: auto;
    font-size: 13px;
    font-weight: 500;
    padding: 4px 11px;
    border-radius: 999px;
    border: 1px solid var(--rule);
    background: #f4f4f1;
    color: var(--ink-2);
    white-space: nowrap;
}

section[b-20mwsbzuds] { margin-top: 30px; }

h2[b-20mwsbzuds] {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 12px;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--rule);
}

.facts[b-20mwsbzuds] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 14px 22px;
}

.facts > div[b-20mwsbzuds] { display: flex; flex-direction: column; }

.k[b-20mwsbzuds] { font-size: 12px; color: var(--ink-3); }
.v[b-20mwsbzuds] { margin-top: 1px; }

.note[b-20mwsbzuds] {
    margin-top: 14px;
    font-size: 14px;
    color: var(--ink-2);
}

.flag[b-20mwsbzuds] {
    margin-top: 8px;
    font-size: 14px;
    color: var(--rich);
}

/* ── work log ── */

.log[b-20mwsbzuds] { border-left: 2px solid var(--rule); padding-left: 16px; }

.entry[b-20mwsbzuds] {
    padding: 14px 0;
    border-bottom: 1px solid var(--rule-2);
}

.entry:last-child[b-20mwsbzuds] { border-bottom: 0; }

.entry-top[b-20mwsbzuds] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--ink-2);
    flex-wrap: wrap;
}

.who[b-20mwsbzuds] { font-weight: 500; color: var(--ink); }
time[b-20mwsbzuds] { color: var(--ink-3); }

.hours[b-20mwsbzuds] {
    font-size: 12px;
    color: var(--ink-3);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 1px 6px;
}

.vis[b-20mwsbzuds] {
    margin-left: auto;
    font: inherit;
    font-size: 12px;
    padding: 3px 10px;
    border-radius: 999px;
    border: 1px solid var(--rule);
    background: #fff;
    color: var(--ink-2);
    cursor: pointer;
    white-space: nowrap;
}

.vis:hover[b-20mwsbzuds] { border-color: var(--ink-3); }
.vis:disabled[b-20mwsbzuds] { opacity: .5; cursor: default; }
.vis.pub[b-20mwsbzuds] { background: var(--lean-bg); border-color: #cfe0ba; color: #43690e; }

.body[b-20mwsbzuds] { margin: 6px 0 0; }

.published[b-20mwsbzuds] {
    margin-top: 10px;
    padding: 9px 12px;
    background: var(--lean-bg);
    border-radius: 6px;
    font-size: 14px;
}

.published-label[b-20mwsbzuds] {
    font-size: 11px;
    color: #43690e;
    margin-bottom: 4px;
}

.published strong[b-20mwsbzuds] { font-weight: 500; }

.internal[b-20mwsbzuds] {
    margin-top: 10px;
    padding: 9px 12px;
    background: #f4f4f1;
    border-left: 2px solid var(--ink-3);
    border-radius: 0 6px 6px 0;
    font-size: 14px;
    color: var(--ink-2);
}

.internal-label[b-20mwsbzuds] {
    font-size: 11px;
    color: var(--ink-3);
    margin-bottom: 2px;
}

.parts[b-20mwsbzuds] {
    margin-top: 8px;
    font-size: 14px;
}

.parts .k[b-20mwsbzuds] { margin-right: 8px; }

/* ── money ── */

table[b-20mwsbzuds] { width: 100%; border-collapse: collapse; font-size: 14px; }
td[b-20mwsbzuds] { padding: 9px 0; border-bottom: 1px solid var(--rule-2); vertical-align: top; }
td:last-child[b-20mwsbzuds] { text-align: right; white-space: nowrap; }

tr.line td[b-20mwsbzuds] { color: var(--ink-2); padding-left: 18px; font-size: 13px; }

.pill[b-20mwsbzuds] {
    display: inline-block;
    margin-left: 8px;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid var(--rule);
    background: #f4f4f1;
    color: var(--ink-2);
}

.via[b-20mwsbzuds] { margin-left: 8px; font-size: 12px; color: var(--ink-3); }

.empty[b-20mwsbzuds] { color: var(--ink-2); font-style: italic; }

.err[b-20mwsbzuds] {
    margin: 16px 0;
    padding: 12px 14px;
    border: 1px solid #f0c3b0;
    background: #fbe9e2;
    border-radius: 6px;
    font-size: 14px;
}

/* ── logging work ── */

.btn[b-20mwsbzuds] {
    font: inherit;
    font-weight: 500;
    padding: 8px 15px;
    border-radius: 6px;
    border: 1px solid var(--steel);
    background: var(--steel);
    color: #fff;
    cursor: pointer;
}

.btn:hover[b-20mwsbzuds] { background: #29313d; }
.btn:disabled[b-20mwsbzuds] { opacity: .5; cursor: default; }

.btn-ghost[b-20mwsbzuds] {
    font: inherit;
    padding: 8px 14px;
    border-radius: 6px;
    border: 1px solid var(--rule);
    background: #fff;
    color: var(--ink-2);
    cursor: pointer;
}

.btn-ghost:hover[b-20mwsbzuds] { border-color: var(--ink-3); }

.composer[b-20mwsbzuds] {
    border: 1px solid var(--rule);
    border-radius: 8px;
    padding: 16px;
    background: #fcfcfa;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 22px;
}

.composer label[b-20mwsbzuds] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}

.composer .row[b-20mwsbzuds] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.composer .narrow[b-20mwsbzuds] { max-width: 130px; }

.composer input[b-20mwsbzuds],
.composer textarea[b-20mwsbzuds] {
    font: inherit;
    padding: 8px 10px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: #fff;
    width: 100%;
}

.composer textarea[b-20mwsbzuds] { resize: vertical; }

.composer input:focus-visible[b-20mwsbzuds],
.composer textarea:focus-visible[b-20mwsbzuds] {
    outline: 2px solid var(--steel);
    outline-offset: -1px;
    border-color: var(--steel);
}

.hint[b-20mwsbzuds] {
    font-size: 12px;
    color: var(--ink-3);
    font-weight: 400;
    margin: 0;
}

.publish-block[b-20mwsbzuds] {
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #fff;
}

.publish-block.on[b-20mwsbzuds] {
    background: var(--lean-bg);
    border-color: #cfe0ba;
}

.check[b-20mwsbzuds] {
    flex-direction: row !important;
    align-items: center;
    gap: 8px !important;
}

.check input[b-20mwsbzuds] { width: auto; }

.warn[b-20mwsbzuds] {
    margin: 0;
    font-size: 13px;
    color: #96660a;
    background: var(--stoich-bg);
    border: 1px solid #edd6a4;
    border-radius: 6px;
    padding: 8px 11px;
}

.actions[b-20mwsbzuds] { display: flex; gap: 8px; }

.validation-message[b-20mwsbzuds] {
    font-size: 13px;
    color: var(--rich);
}

.err-inner[b-20mwsbzuds] {
    margin-top: 8px;
    font-size: 13px;
    color: var(--ink-2);
    font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
}

.parts ul[b-20mwsbzuds] {
    margin: 3px 0 0;
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.edit[b-20mwsbzuds] {
    margin-left: auto;
    font-size: 12px;
    color: var(--ink-3);
    text-decoration: none;
    padding: 3px 8px;
    border-radius: 5px;
}
.edit:hover[b-20mwsbzuds] { color: var(--ink); background: var(--rule-2); }

/* the visibility button no longer needs to push itself right */
.vis[b-20mwsbzuds] { margin-left: 0; }

/* ── condition at drop-off ── */

.zones[b-20mwsbzuds] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }

.zone[b-20mwsbzuds] {
    font-size: 13px;
    padding: 5px 10px;
    border-radius: 4px;
    border: 1px solid var(--rule);
    background: #fff;
}

.zone b[b-20mwsbzuds] { font-weight: 500; margin-right: 5px; }

/* There is no longer a minor/major distinction — each zone has its own
   vocabulary, and anything that isn't that zone's "nothing wrong" answer is
   worth a second look. One tone, not a false severity ranking. */
.zone.flagged[b-20mwsbzuds] { border-color: #edc0ac; background: #fbe8e1; color: #a1350f; }

.z-note[b-20mwsbzuds] { color: var(--ink-2); margin-left: 6px; }
.zone.flagged .z-note[b-20mwsbzuds] { color: inherit; opacity: .8; }

.shot-group[b-20mwsbzuds] { margin-top: 18px; }

.g-label[b-20mwsbzuds] { font-size: 12px; color: var(--ink-3); margin-bottom: 7px; }

.shots[b-20mwsbzuds] { display: flex; flex-wrap: wrap; gap: 8px; }

.shot[b-20mwsbzuds] {
    display: block;
    width: 116px;
    height: 88px;
    border-radius: 5px;
    overflow: hidden;
    border: 1px solid var(--rule);
    background: #f1f1ef;
}

.shot img[b-20mwsbzuds] { width: 100%; height: 100%; object-fit: cover; display: block; }

.shot:hover[b-20mwsbzuds] { border-color: var(--ink-3); }
.shot:focus-visible[b-20mwsbzuds] { outline: 2px solid var(--steel); outline-offset: 2px; }

.cust-link[b-20mwsbzuds] { color: inherit; text-decoration: none; border-bottom: 1px dotted var(--rule); }
.cust-link:hover[b-20mwsbzuds] { color: var(--ink); border-bottom-color: var(--ink-3); }

/* ── work log photos ── */

.shots-field[b-20mwsbzuds] {
    display: flex; flex-direction: column; gap: 7px;
    padding: 12px; border: 1px solid var(--rule);
    border-radius: 6px; background: #fcfcfa;
}

.shots-field input[type=file][b-20mwsbzuds] { font-size: 13px; border: 0; padding: 0; background: none; }

.thumbs[b-20mwsbzuds] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }

.thumb[b-20mwsbzuds] { position: relative; width: 88px; height: 66px; }

.thumb img[b-20mwsbzuds] {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: 5px; border: 1px solid var(--rule);
}

.thumb .x[b-20mwsbzuds] {
    position: absolute; top: -6px; right: -6px;
    width: 20px; height: 20px; padding: 0; line-height: 1;
    font-size: 14px; border-radius: 50%;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.thumb .x:hover[b-20mwsbzuds] { background: #fbe8e1; color: #cc4318; border-color: #edc0ac; }

.warn-text[b-20mwsbzuds] { color: #cc4318; }

/* timeline */

.shots[b-20mwsbzuds] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

.shots .shot[b-20mwsbzuds] {
    display: block; width: 104px; height: 78px;
    border-radius: 5px; overflow: hidden;
    border: 1px solid var(--rule); background: #f1f1ef;
}

.shots .shot img[b-20mwsbzuds] { width: 100%; height: 100%; object-fit: cover; display: block; }
.shots .shot:hover[b-20mwsbzuds] { border-color: var(--ink-3); }
.shots .shot:focus-visible[b-20mwsbzuds] { outline: 2px solid var(--steel); outline-offset: 2px; }

/* Status and next steps on an unpublished entry — the same information, but
   nobody outside the shop has seen it. Quieter, and no "the customer sees
   this" label to mislead. */
.published.internal-only[b-20mwsbzuds] {
    background: #f4f4f1;
    border-color: var(--rule);
}
/* /Components/Pages/LabourReport.razor.rz.scp.css */
.report[b-c0jsp4ewr2] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;
    --stoich-bg: #fbf1dc;

    color: var(--ink);
    max-width: 880px;
    padding-bottom: 80px;
}

.mono[b-c0jsp4ewr2] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
        font-variant-numeric: tabular-nums; }
.dim[b-c0jsp4ewr2] { color: var(--ink-3); }

.head[b-c0jsp4ewr2] { padding-bottom: 16px; border-bottom: 2px solid var(--ink); }

h1[b-c0jsp4ewr2] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 36px; font-weight: 600; line-height: .95; margin: 0 0 14px;
}

.range[b-c0jsp4ewr2] { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }

label[b-c0jsp4ewr2] { display: flex; flex-direction: column; gap: 4px; }
.k[b-c0jsp4ewr2] { font-size: 12px; color: var(--ink-3); }

input[type=date][b-c0jsp4ewr2] {
    font: inherit; font-size: 14px; padding: 7px 9px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff;
}

.quick[b-c0jsp4ewr2] { display: flex; gap: 5px; margin-left: 8px; }

.quick button[b-c0jsp4ewr2] {
    font: inherit; font-size: 13px; padding: 7px 13px;
    border: 1px solid var(--rule); border-radius: 999px;
    background: #fff; color: var(--ink-2); cursor: pointer;
}
.quick button:hover[b-c0jsp4ewr2] { border-color: var(--ink-3); color: var(--ink); }

/* ── the table ── */

table[b-c0jsp4ewr2] { width: 100%; border-collapse: collapse; margin-top: 22px; }

th[b-c0jsp4ewr2] {
    font-family: Barlow, sans-serif;
    font-size: 12px; font-weight: 500; text-align: left;
    color: var(--ink-3); padding: 0 10px 8px 0;
    border-bottom: 1px solid var(--rule);
}

th.n[b-c0jsp4ewr2], td.n[b-c0jsp4ewr2] { text-align: right; }

td[b-c0jsp4ewr2] { padding: 11px 10px 11px 0; border-bottom: 1px solid var(--rule-2); font-size: 15px; }

/* A large gap usually means work isn't being written down rather than time
   isn't being worked — worth a look, not an accusation. */
td.hot[b-c0jsp4ewr2] { color: var(--rich); font-weight: 500; }

.ot[b-c0jsp4ewr2] {
    font-size: 11px;
    margin-left: 8px;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--stoich-bg);
    color: #8d6008;
}

tfoot td[b-c0jsp4ewr2] {
    border-bottom: 0;
    border-top: 2px solid var(--ink);
    font-weight: 600;
    padding-top: 12px;
}

/* ── notes ── */

.notes[b-c0jsp4ewr2] { margin-top: 24px; max-width: 62ch; }

.notes p[b-c0jsp4ewr2] {
    font-size: 13px;
    line-height: 1.65;
    color: var(--ink-2);
    margin: 0 0 12px;
}

.notes .warn[b-c0jsp4ewr2] {
    padding: 9px 12px;
    background: var(--stoich-bg);
    border: 1px solid #ecd49f;
    border-radius: 5px;
    color: #8d6008;
}

.empty[b-c0jsp4ewr2] { color: var(--ink-2); font-style: italic; margin-top: 28px; }
/* /Components/Pages/Login.razor.rz.scp.css */
.cq[b-8kdnv14h23] { max-width: 400px; margin: 30px auto 0; }

.card[b-8kdnv14h23] {
    background: var(--card);
    border: 1px solid var(--rule);
    border-radius: 10px;
    padding: 28px 26px;
}

.brand[b-8kdnv14h23] { font-size: 12px; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 14px; }

h1[b-8kdnv14h23] { font-size: 20px; font-weight: 600; margin: 0 0 6px; letter-spacing: -.01em; }

.lead[b-8kdnv14h23] { font-size: 14px; color: var(--ink-2); margin: 0 0 18px; }

form[b-8kdnv14h23] { display: flex; flex-direction: column; gap: 14px; margin-top: 16px; }

label[b-8kdnv14h23] { display: flex; flex-direction: column; gap: 4px; }

.k[b-8kdnv14h23] { font-size: 13px; color: var(--ink-2); }

input[b-8kdnv14h23] {
    font: inherit;
    padding: 9px 11px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--card);
    width: 100%;
}

input:focus-visible[b-8kdnv14h23] {
    outline: 2px solid var(--accent);
    outline-offset: -1px;
    border-color: var(--accent);
}

.fine[b-8kdnv14h23] { font-size: 12px; color: var(--ink-3); }

.bad[b-8kdnv14h23] {
    font-size: 13px;
    margin: 0;
    padding: 9px 12px;
    background: var(--rich-bg);
    border: 1px solid #6a3220;
    border-radius: 6px;
    color: var(--rich);
}

.btn[b-8kdnv14h23] {
    font: inherit;
    font-weight: 500;
    padding: 11px 18px;
    border-radius: 6px;
    border: 1px solid var(--accent);
    background: var(--accent);
    color: #fff;
    cursor: pointer;
    margin-top: 4px;
}

.btn:hover[b-8kdnv14h23] { background: #c9491a; }

h1[b-8kdnv14h23] { color: var(--ink); }

input[b-8kdnv14h23] {
    background: var(--card-2);
    color: var(--ink);
    border-color: var(--rule);
}
input[b-8kdnv14h23]::placeholder { color: var(--ink-3); }
/* /Components/Pages/PartsBoard.razor.rz.scp.css */
.parts[b-sbp73gbf4z] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;

    color: var(--ink);
    max-width: 1080px;
    padding-bottom: 80px;
}

.mono[b-sbp73gbf4z] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
        font-variant-numeric: tabular-nums; }
.dim[b-sbp73gbf4z] { color: var(--ink-3); }

/* ── head ── */

.head[b-sbp73gbf4z] {
    display: flex; align-items: flex-end; gap: 34px; flex-wrap: wrap;
    padding-bottom: 18px; border-bottom: 2px solid var(--ink);
}

.head h1[b-sbp73gbf4z] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 40px; font-weight: 600; line-height: .95; margin: 0;
}

.tally[b-sbp73gbf4z] { display: flex; gap: 24px; margin: 0; padding-bottom: 3px; }
.tally > div[b-sbp73gbf4z] { display: flex; align-items: baseline; gap: 7px; }

.tally dd[b-sbp73gbf4z] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 28px; font-weight: 600; line-height: 1; margin: 0;
    font-variant-numeric: tabular-nums;
}

.tally dt[b-sbp73gbf4z] { font-size: 13px; color: var(--ink-2); }
.tally .hot dd[b-sbp73gbf4z] { color: var(--rich); }

/* ── controls ── */

.controls[b-sbp73gbf4z] {
    display: flex; align-items: center; gap: 20px;
    margin-top: 16px; flex-wrap: wrap;
}

.tabs[b-sbp73gbf4z] { display: flex; gap: 4px; }

.tabs button[b-sbp73gbf4z] {
    font: inherit; font-size: 13px;
    padding: 6px 13px; border-radius: 999px;
    border: 1px solid transparent; background: none;
    color: var(--ink-3); cursor: pointer;
}
.tabs button:hover[b-sbp73gbf4z] { color: var(--ink); }
.tabs button.on[b-sbp73gbf4z] {
    background: #fff; border-color: var(--rule);
    color: var(--ink); font-weight: 500;
}

.check[b-sbp73gbf4z] { display: flex; align-items: center; gap: 7px; font-size: 13px;
         color: var(--ink-2); cursor: pointer; }
.check input[b-sbp73gbf4z] { width: auto; }

/* ── groups ── */

section[b-sbp73gbf4z] { margin-top: 26px; }

h2[b-sbp73gbf4z] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 17px; font-weight: 600; color: var(--ink-2);
    margin: 0 0 6px;
    display: flex; align-items: center; gap: 9px;
}

.count[b-sbp73gbf4z] {
    font-family: Barlow, sans-serif; font-size: 12px; font-weight: 400;
    color: var(--ink-3);
    border: 1px solid var(--rule); border-radius: 999px; padding: 1px 8px;
}

.hint[b-sbp73gbf4z] { font-family: Barlow, sans-serif; font-size: 12px;
        font-weight: 400; color: var(--lean); }

/* ── rows ── */

.rows[b-sbp73gbf4z] { display: flex; flex-direction: column; }

.row[b-sbp73gbf4z] {
    display: grid;
    grid-template-columns: minmax(200px, 1.4fr) minmax(160px, 1fr) minmax(120px, .8fr) 150px;
    gap: 18px;
    align-items: start;
    padding: 12px 14px 12px 11px;
    border-bottom: 1px solid var(--rule-2);
    border-left: 3px solid transparent;
    background: #fff;
    text-decoration: none; color: inherit;
}

.row:first-child[b-sbp73gbf4z] { border-top: 1px solid var(--rule-2); }
.row:hover[b-sbp73gbf4z] { background: #fbfbfa; }
.row:focus-visible[b-sbp73gbf4z] { outline: 2px solid var(--steel); outline-offset: -2px; }

.row.needed[b-sbp73gbf4z]  { border-left-color: var(--ink-3); }
.row.ordered[b-sbp73gbf4z] { border-left-color: var(--stoich); }
.row.arrived[b-sbp73gbf4z] { border-left-color: var(--lean); }
.row.late[b-sbp73gbf4z]    { border-left-color: var(--rich); background: #fffaf8; }

.desc[b-sbp73gbf4z] { font-weight: 500; font-size: 15px; }
.qty[b-sbp73gbf4z] { color: var(--ink-3); margin-right: 3px; }
.pn[b-sbp73gbf4z] { font-size: 12px; color: var(--ink-3); margin-top: 2px; }

.car[b-sbp73gbf4z] { font-size: 14px; }
.car .mono[b-sbp73gbf4z] { font-size: 11px; margin-top: 2px; }

.supplier[b-sbp73gbf4z] { font-size: 13px; color: var(--ink-2); }

.when[b-sbp73gbf4z] { display: flex; flex-direction: column; gap: 2px; text-align: right; }
.status[b-sbp73gbf4z] { font-size: 13px; font-weight: 500; }
.row.ordered .status[b-sbp73gbf4z] { color: #8d6008; }
.row.arrived .status[b-sbp73gbf4z] { color: #3f6209; }
.row.late .status[b-sbp73gbf4z] { color: var(--rich); }

.due[b-sbp73gbf4z] { font-size: 12px; color: var(--ink-3); }
.due.late[b-sbp73gbf4z] { color: var(--rich); font-weight: 500; }
.due.unknown[b-sbp73gbf4z] { font-style: italic; }

.note[b-sbp73gbf4z] {
    grid-column: 1 / -1;
    font-size: 13px; color: var(--ink-2);
    font-style: italic; margin-top: 2px;
}

.empty[b-sbp73gbf4z] { color: var(--ink-2); font-style: italic; margin-top: 28px; }

@media (max-width: 820px) {
    .row[b-sbp73gbf4z] { grid-template-columns: 1fr; gap: 6px; }
    .when[b-sbp73gbf4z] { text-align: left; flex-direction: row; gap: 10px; }
}
/* /Components/Pages/QuoteBuilder.razor.rz.scp.css */
.quote[b-ex6ditq2iu] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414;
    --steel: #333c4a;
    --stoich-bg: #fbf1dd;
    color: var(--ink); max-width: 940px; padding-bottom: 60px;
}

.mono[b-ex6ditq2iu] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }
.muted[b-ex6ditq2iu] { color: var(--ink-3); }

.back[b-ex6ditq2iu] { display: inline-block; font-size: 13px; color: var(--ink-2);
        text-decoration: none; margin-bottom: 14px; }
.back:hover[b-ex6ditq2iu] { color: var(--ink); text-decoration: underline; }

.head[b-ex6ditq2iu] { display: flex; align-items: flex-start; gap: 16px;
        padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.head h1[b-ex6ditq2iu] { font-size: 24px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-ex6ditq2iu] { color: var(--ink-2); font-size: 14px; margin: 4px 0 0; }
.sep[b-ex6ditq2iu] { margin: 0 7px; color: var(--ink-3); }

.badge[b-ex6ditq2iu] { margin-left: auto; font-size: 12px; padding: 3px 10px; border-radius: 999px;
         border: 1px solid var(--rule); background: #f4f4f1; color: var(--ink-2); }

.locked[b-ex6ditq2iu] { margin-top: 16px; padding: 11px 14px; border-radius: 6px;
          background: var(--stoich-bg); border: 1px solid #edd6a4;
          color: #96660a; font-size: 14px; }

/* ── line grid ── */

.lines[b-ex6ditq2iu] { margin-top: 22px; }

.lines-head[b-ex6ditq2iu], .line[b-ex6ditq2iu] {
    display: grid;
    grid-template-columns: 2.2fr 110px 84px 74px 64px 84px 96px 28px;
    gap: 8px;
    align-items: center;
}

.lines-head[b-ex6ditq2iu] {
    font-size: 12px; color: var(--ink-3);
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
}

.lines-head .num[b-ex6ditq2iu], .line .num[b-ex6ditq2iu] { text-align: right; }

.line[b-ex6ditq2iu] { padding: 7px 0; border-bottom: 1px solid var(--rule-2); }

.line input[b-ex6ditq2iu], .line select[b-ex6ditq2iu] {
    font: inherit; font-size: 14px; padding: 6px 9px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff; width: 100%;
}

.line input.num[b-ex6ditq2iu] { text-align: right; }

.line input:focus-visible[b-ex6ditq2iu], .line select:focus-visible[b-ex6ditq2iu] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.line .total[b-ex6ditq2iu] { font-weight: 500; }

.x[b-ex6ditq2iu] {
    font: inherit; font-size: 17px; line-height: 1;
    width: 26px; height: 26px; padding: 0;
    border: 1px solid transparent; border-radius: 5px;
    background: none; color: var(--ink-3); cursor: pointer;
}
.x:hover[b-ex6ditq2iu] { background: #fbe9e2; color: var(--rich); border-color: #f0c3b0; }

.add[b-ex6ditq2iu] { display: flex; gap: 8px; margin-top: 12px; }

.btn-ghost-sm[b-ex6ditq2iu] {
    font: inherit; font-size: 13px; padding: 6px 12px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff; color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-ex6ditq2iu] { border-color: var(--ink-3); }

/* ── totals ── */

.totals[b-ex6ditq2iu] { margin: 26px 0 0; margin-left: auto; max-width: 330px; }

.t-row[b-ex6ditq2iu] { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; }
.t-row.sub-row[b-ex6ditq2iu] { color: var(--ink-2); font-size: 13px; }
.t-row.grand[b-ex6ditq2iu] {
    border-top: 1px solid var(--rule); margin-top: 5px; padding-top: 10px;
    font-weight: 600; font-size: 16px;
}

.warn[b-ex6ditq2iu] { margin-top: 16px; font-size: 13px; padding: 9px 12px;
        background: var(--stoich-bg); border: 1px solid #edd6a4;
        border-radius: 6px; color: #96660a; }

.actions[b-ex6ditq2iu] { display: flex; gap: 8px; margin-top: 26px;
           padding-top: 18px; border-top: 1px solid var(--rule); }

.btn[b-ex6ditq2iu] {
    font: inherit; font-weight: 500; padding: 9px 18px; border-radius: 6px;
    border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer;
}
.btn:hover[b-ex6ditq2iu] { background: #29313d; }
.btn:disabled[b-ex6ditq2iu] { opacity: .5; cursor: default; }

.btn-ghost[b-ex6ditq2iu] {
    font: inherit; padding: 9px 16px; border-radius: 6px;
    border: 1px solid var(--rule); background: #fff; color: var(--ink-2); cursor: pointer;
}
.btn-ghost:hover[b-ex6ditq2iu] { border-color: var(--ink-3); }

.empty[b-ex6ditq2iu] { color: var(--ink-2); font-style: italic; }
.err[b-ex6ditq2iu] { margin: 16px 0; padding: 12px 14px; border: 1px solid #f0c3b0;
       background: #fbe9e2; border-radius: 6px; font-size: 14px; }

/* The deposit sits below the total because it's derived from it, and it goes
   out with the quote — you should see the number the customer will. */
.t-row.deposit[b-ex6ditq2iu] {
    margin-top: 8px;
    padding-top: 9px;
    border-top: 1px dashed var(--rule);
    color: var(--stoich);
}

.t-row.deposit .muted[b-ex6ditq2iu] { color: var(--ink-3); font-size: 12px; }
/* /Components/Pages/RequestReview.razor.rz.scp.css */
.review[b-70ubdxcyau] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414;
    --steel: #333c4a;
    --stoich-bg: #fbf1dd; --lean-bg: #eaf2df;
    color: var(--ink); max-width: 760px; padding-bottom: 60px;
}

.mono[b-70ubdxcyau] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }

.back[b-70ubdxcyau] { display: inline-block; font-size: 13px; color: var(--ink-2); text-decoration: none; margin-bottom: 14px; }
.back:hover[b-70ubdxcyau] { color: var(--ink); text-decoration: underline; }

.head[b-70ubdxcyau] { display: flex; align-items: flex-start; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.head h1[b-70ubdxcyau] { font-size: 24px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-70ubdxcyau] { color: var(--ink-2); font-size: 14px; margin: 4px 0 0; }
.sep[b-70ubdxcyau] { margin: 0 7px; color: var(--ink-3); }

.badge[b-70ubdxcyau] { margin-left: auto; font-size: 12px; padding: 3px 10px; border-radius: 999px;
         border: 1px solid var(--rule); background: #f4f4f1; color: var(--ink-2); white-space: nowrap; }
.badge.new[b-70ubdxcyau] { background: var(--stoich-bg); border-color: #edd6a4; color: #96660a; }

.converted[b-70ubdxcyau] { margin-top: 16px; padding: 11px 14px; border-radius: 6px;
             background: var(--lean-bg); border: 1px solid #cfe0ba; font-size: 14px; }

section[b-70ubdxcyau] { margin-top: 28px; }
h2[b-70ubdxcyau] { font-size: 15px; font-weight: 600; margin: 0 0 12px; padding-bottom: 7px; border-bottom: 1px solid var(--rule); }

.facts[b-70ubdxcyau] { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 13px 20px; }
.facts > div[b-70ubdxcyau] { display: flex; flex-direction: column; }
.k[b-70ubdxcyau] { font-size: 12px; color: var(--ink-3); }
.v[b-70ubdxcyau] { margin-top: 1px; }

.note[b-70ubdxcyau] { margin: 12px 0 0; font-size: 14px; color: var(--ink-2); }
.note .k[b-70ubdxcyau] { margin-right: 5px; }

.tags[b-70ubdxcyau] { display: flex; flex-wrap: wrap; gap: 6px; }
.tag[b-70ubdxcyau] { font-size: 13px; padding: 3px 10px; border-radius: 999px;
       border: 1px solid var(--rule); background: #fff; }

/* ── conversion ── */

.convert[b-70ubdxcyau] { border: 1px solid var(--rule); border-radius: 8px; padding: 18px; background: #fcfcfa; }
.convert h2[b-70ubdxcyau] { border-bottom: 0; padding-bottom: 0; margin-bottom: 14px; }

.matched[b-70ubdxcyau] { font-size: 13px; color: #96660a; margin: 4px 0 10px; }

.options[b-70ubdxcyau] { display: flex; flex-direction: column; gap: 8px; margin: 8px 0 18px; }

.opt[b-70ubdxcyau] {
    display: flex; align-items: flex-start; gap: 10px;
    border: 1px solid var(--rule); border-radius: 6px;
    padding: 11px 13px; background: #fff; cursor: pointer;
}

.opt:hover[b-70ubdxcyau] { border-color: var(--ink-3); }
.opt.on[b-70ubdxcyau] { border-color: var(--steel); box-shadow: inset 0 0 0 1px var(--steel); }

.opt input[b-70ubdxcyau] { margin-top: 3px; }
.opt > span[b-70ubdxcyau] { display: flex; flex-direction: column; gap: 2px; }
.opt-name[b-70ubdxcyau] { font-weight: 500; }
.opt-meta[b-70ubdxcyau] { font-size: 12px; color: var(--ink-3); }
.opt-why[b-70ubdxcyau] { font-size: 12px; color: var(--lean); }

.row[b-70ubdxcyau] { display: flex; gap: 12px; flex-wrap: wrap; }
.row label[b-70ubdxcyau] { display: flex; flex-direction: column; gap: 4px; flex: 1; }

input[b-70ubdxcyau], select[b-70ubdxcyau] {
    font: inherit; padding: 8px 10px; border: 1px solid var(--rule);
    border-radius: 6px; background: #fff; width: 100%;
}

input:focus-visible[b-70ubdxcyau], select:focus-visible[b-70ubdxcyau] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.gates-note[b-70ubdxcyau] { font-size: 13px; color: var(--ink-2); margin: 14px 0 0; }

.actions[b-70ubdxcyau] { margin-top: 16px; }

.btn[b-70ubdxcyau] {
    font: inherit; font-weight: 500; padding: 9px 18px; border-radius: 6px;
    border: 1px solid var(--steel); background: var(--steel); color: #fff; cursor: pointer;
}
.btn:hover[b-70ubdxcyau] { background: #29313d; }
.btn:disabled[b-70ubdxcyau] { opacity: .5; cursor: default; }

.empty[b-70ubdxcyau] { color: var(--ink-2); font-style: italic; }

.err[b-70ubdxcyau] { margin: 16px 0; padding: 12px 14px; border: 1px solid #f0c3b0;
       background: #fbe9e2; border-radius: 6px; font-size: 14px; }
.err-inner[b-70ubdxcyau] { margin-top: 6px; font-size: 13px; color: var(--ink-2); }

/* ── decline / delete ── */

.danger[b-70ubdxcyau] {
    margin-top: 36px;
    padding-top: 16px;
    border-top: 1px solid var(--rule);
}

/* Quiet until asked for. A destructive action shouldn't compete with the
   button you press forty times a week. */
.reveal[b-70ubdxcyau] {
    font: inherit; font-size: 13px; padding: 0;
    border: 0; background: none; color: var(--ink-3);
    cursor: pointer; text-decoration: underline; text-underline-offset: 3px;
}
.reveal:hover[b-70ubdxcyau] { color: var(--rich); }

.danger-panel[b-70ubdxcyau] {
    border: 1px solid #edc0ac;
    border-radius: 6px;
    background: #fbe8e1;
    padding: 15px 17px;
    display: flex; flex-direction: column; gap: 11px;
    max-width: 460px;
}

.blocked[b-70ubdxcyau] { margin: 0; font-size: 14px; font-weight: 500; color: #8a2f10; }

.danger-panel .fine[b-70ubdxcyau] { margin: 0; font-size: 12px; color: var(--ink-2); line-height: 1.55; }

.acts[b-70ubdxcyau] { display: flex; gap: 8px; }

.btn-danger[b-70ubdxcyau] {
    font: inherit; font-weight: 500;
    padding: 9px 18px; border-radius: 5px;
    border: 1px solid var(--rich); background: var(--rich);
    color: #fff; cursor: pointer;
}
.btn-danger:hover[b-70ubdxcyau] { background: #a8360f; }
.btn-danger:disabled[b-70ubdxcyau] { opacity: .5; cursor: default; }

.btn-ghost-sm[b-70ubdxcyau] {
    font: inherit; font-size: 13px;
    padding: 7px 13px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-70ubdxcyau] { border-color: var(--ink-3); color: var(--ink); }

.btn-ghost[b-70ubdxcyau] {
    font: inherit; font-weight: 500;
    padding: 9px 18px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost:hover[b-70ubdxcyau] { border-color: var(--ink-3); color: var(--ink); }
.btn-ghost:disabled[b-70ubdxcyau] { opacity: .5; cursor: default; }
/* /Components/Pages/Requests.razor.rz.scp.css */
.queue[b-0x8sy1g90s] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --stoich: #d99413; --stoich-bg: #fbf1dd;
    --steel: #333c4a;
    color: var(--ink); max-width: 900px; padding-bottom: 60px;
}

.mono[b-0x8sy1g90s] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }

.head[b-0x8sy1g90s] { padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.head h1[b-0x8sy1g90s] { font-size: 24px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.sub[b-0x8sy1g90s] { color: var(--ink-2); font-size: 14px; margin: 4px 0 0; }
.sep[b-0x8sy1g90s] { margin: 0 6px; color: var(--ink-3); }

.list[b-0x8sy1g90s] { display: flex; flex-direction: column; margin-top: 6px; }

.row[b-0x8sy1g90s] {
    display: grid;
    grid-template-columns: 1.2fr 1.4fr auto;
    gap: 16px;
    align-items: center;
    padding: 14px 12px;
    border-bottom: 1px solid var(--rule-2);
    border-left: 3px solid transparent;
    text-decoration: none;
    color: inherit;
}

.row:hover[b-0x8sy1g90s] { background: #fafaf8; }
.row.is-new[b-0x8sy1g90s] { border-left-color: var(--stoich); }

.name[b-0x8sy1g90s] { font-weight: 500; }
.contact[b-0x8sy1g90s] { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.want[b-0x8sy1g90s] { font-size: 13px; color: var(--ink-2); margin-top: 2px; }

.when[b-0x8sy1g90s] { text-align: right; }
.when time[b-0x8sy1g90s] { display: block; font-size: 12px; color: var(--ink-3); margin-top: 4px; }

.badge[b-0x8sy1g90s] {
    font-size: 12px; padding: 2px 9px; border-radius: 999px;
    border: 1px solid var(--rule); background: #f4f4f1; color: var(--ink-2);
}

.badge.new[b-0x8sy1g90s] { background: var(--stoich-bg); border-color: #edd6a4; color: #96660a; }

.empty[b-0x8sy1g90s] { color: var(--ink-2); font-style: italic; margin-top: 24px; }
/* /Components/Pages/SalesReport.razor.rz.scp.css */
.report[b-d2ckb85vd2] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;
    --stoich-bg: #fbf1dc;

    color: var(--ink);
    max-width: 880px;
    padding-bottom: 80px;
}

.mono[b-d2ckb85vd2] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
        font-variant-numeric: tabular-nums; }
.dim[b-d2ckb85vd2] { color: var(--ink-3); }

.head[b-d2ckb85vd2] { padding-bottom: 16px; border-bottom: 2px solid var(--ink); }

h1[b-d2ckb85vd2] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 36px; font-weight: 600; line-height: .95; margin: 0 0 14px;
}

.range[b-d2ckb85vd2] { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }

label[b-d2ckb85vd2] { display: flex; flex-direction: column; gap: 4px; }
.k[b-d2ckb85vd2] { font-size: 12px; color: var(--ink-3); }

input[type=date][b-d2ckb85vd2] {
    font: inherit; font-size: 14px; padding: 7px 9px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff;
}

.quick[b-d2ckb85vd2] { display: flex; gap: 5px; margin-left: 8px; }

.quick button[b-d2ckb85vd2] {
    font: inherit; font-size: 13px; padding: 7px 13px;
    border: 1px solid var(--rule); border-radius: 999px;
    background: #fff; color: var(--ink-2); cursor: pointer;
}
.quick button:hover[b-d2ckb85vd2] { border-color: var(--ink-3); color: var(--ink); }

/* ── the table ── */

table[b-d2ckb85vd2] { width: 100%; border-collapse: collapse; margin-top: 22px; }

th[b-d2ckb85vd2] {
    font-family: Barlow, sans-serif;
    font-size: 12px; font-weight: 500; text-align: left;
    color: var(--ink-3); padding: 0 10px 8px 0;
    border-bottom: 1px solid var(--rule);
}

th.n[b-d2ckb85vd2], td.n[b-d2ckb85vd2] { text-align: right; }

td[b-d2ckb85vd2] { padding: 11px 10px 11px 0; border-bottom: 1px solid var(--rule-2); font-size: 15px; }

/* A large gap usually means work isn't being written down rather than time
   isn't being worked — worth a look, not an accusation. */
td.hot[b-d2ckb85vd2] { color: var(--rich); font-weight: 500; }

.ot[b-d2ckb85vd2] {
    font-size: 11px;
    margin-left: 8px;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--stoich-bg);
    color: #8d6008;
}

tfoot td[b-d2ckb85vd2] {
    border-bottom: 0;
    border-top: 2px solid var(--ink);
    font-weight: 600;
    padding-top: 12px;
}

/* ── notes ── */

.notes[b-d2ckb85vd2] { margin-top: 24px; max-width: 62ch; }

.notes p[b-d2ckb85vd2] {
    font-size: 13px;
    line-height: 1.65;
    color: var(--ink-2);
    margin: 0 0 12px;
}

.notes .warn[b-d2ckb85vd2] {
    padding: 9px 12px;
    background: var(--stoich-bg);
    border: 1px solid #ecd49f;
    border-radius: 5px;
    color: #8d6008;
}

.empty[b-d2ckb85vd2] { color: var(--ink-2); font-style: italic; margin-top: 28px; }

/* ── sales specifics ── */

h2[b-d2ckb85vd2] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; font-weight: 600;
    margin: 30px 0 0;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--rule);
}

.topline[b-d2ckb85vd2] {
    display: flex;
    gap: 34px;
    flex-wrap: wrap;
    margin-top: 22px;
}

.topline > div[b-d2ckb85vd2] { display: flex; flex-direction: column; gap: 2px; }

.topline dd[b-d2ckb85vd2] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 30px; font-weight: 600; line-height: 1; margin: 0;
    font-variant-numeric: tabular-nums;
}

.topline dt[b-d2ckb85vd2] { font-size: 13px; color: var(--ink-2); }
.topline .hot dd[b-d2ckb85vd2] { color: var(--rich); }

/* A bar behind the percentage — the shape of the split matters more than the
   exact number, and a full chart would be more ceremony than it's worth. */
.bar[b-d2ckb85vd2] {
    display: inline-block;
    width: 90px;
    height: 7px;
    border-radius: 999px;
    background: linear-gradient(to right,
        var(--steel) 0 calc(var(--w) * 1%),
        var(--rule-2) calc(var(--w) * 1%) 100%);
    margin-right: 9px;
    vertical-align: middle;
}

.pct[b-d2ckb85vd2] { font-size: 13px; color: var(--ink-2); }

table.narrow[b-d2ckb85vd2] { max-width: 380px; }

tr.total td[b-d2ckb85vd2] {
    border-top: 1px solid var(--ink);
    border-bottom: 0;
    font-weight: 600;
    padding-top: 11px;
}

td.bad[b-d2ckb85vd2] { color: var(--rich); }

.warn[b-d2ckb85vd2] {
    margin-top: 14px;
    padding: 9px 12px;
    font-size: 13px;
    background: var(--stoich-bg);
    border: 1px solid #ecd49f;
    border-radius: 5px;
    color: #8d6008;
    max-width: 62ch;
}

/* ── trend ── */

h2 .toggle[b-d2ckb85vd2] { float: right; display: flex; gap: 4px; }

h2 .toggle button[b-d2ckb85vd2] {
    font-family: Barlow, sans-serif;
    font-size: 12px; font-weight: 400;
    padding: 4px 11px;
    border: 1px solid transparent; border-radius: 999px;
    background: none; color: var(--ink-3); cursor: pointer;
}
h2 .toggle button:hover[b-d2ckb85vd2] { color: var(--ink); }
h2 .toggle button.on[b-d2ckb85vd2] {
    background: #fff; border-color: var(--rule);
    color: var(--ink); font-weight: 500;
}

table.trend td[b-d2ckb85vd2] { padding-top: 9px; padding-bottom: 9px; }

.period[b-d2ckb85vd2] { font-size: 14px; }
td.strong[b-d2ckb85vd2] { font-weight: 600; }

/* Stacked bars, widths relative to the best period in view. Reading the shape
   of a run matters more here than reading exact figures — those are in the
   columns to the left. */
.spark[b-d2ckb85vd2] {
    width: 180px;
    padding-left: 14px;
    white-space: nowrap;
    line-height: 0;
}

.spark .s[b-d2ckb85vd2] {
    display: inline-block;
    height: 10px;
    width: calc(var(--w) * 1.6px);
    vertical-align: middle;
}

.spark .s:first-of-type[b-d2ckb85vd2] { border-radius: 2px 0 0 2px; }
.spark .s:last-of-type[b-d2ckb85vd2]  { border-radius: 0 2px 2px 0; }

.spark .labour[b-d2ckb85vd2] { background: var(--steel); }
.spark .dyno[b-d2ckb85vd2]   { background: var(--stoich); }
.spark .parts[b-d2ckb85vd2]  { background: var(--lean); }

.legend[b-d2ckb85vd2] {
    margin-top: 10px;
    font-size: 12px;
    color: var(--ink-2);
    display: flex;
    align-items: center;
    gap: 6px;
}

.legend .key[b-d2ckb85vd2] {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 2px;
    margin-left: 12px;
}
.legend .key:first-child[b-d2ckb85vd2] { margin-left: 0; }
.legend .labour[b-d2ckb85vd2] { background: var(--steel); }
.legend .dyno[b-d2ckb85vd2]   { background: var(--stoich); }
.legend .parts[b-d2ckb85vd2]  { background: var(--lean); }

/* ── drilling in ── */

tr.openable[b-d2ckb85vd2] { cursor: pointer; }
tr.openable:hover td[b-d2ckb85vd2] { background: #fbfbfa; }
tr.openable.open td[b-d2ckb85vd2] { background: #f7f7f5; }

.caret[b-d2ckb85vd2] {
    display: inline-block;
    width: 14px;
    color: var(--ink-3);
    font-size: 11px;
}

tr.detail td[b-d2ckb85vd2] {
    background: #fafaf8;
    border-bottom: 1px solid var(--rule-2);
    padding-top: 8px;
    padding-bottom: 8px;
    font-size: 13px;
}

tr.detail td:first-child[b-d2ckb85vd2] { padding-left: 24px; }

tr.detail a[b-d2ckb85vd2] {
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
}
tr.detail a:hover[b-d2ckb85vd2] { border-bottom-color: var(--ink-3); }

tr.detail .num[b-d2ckb85vd2] { font-size: 11px; color: var(--ink-3); margin-right: 8px; }
tr.detail .who[b-d2ckb85vd2] { font-size: 12px; color: var(--ink-3); margin-top: 2px; padding-left: 0; }
/* /Components/Pages/Schedule.razor.rz.scp.css */
.schedule[b-bkitqj1aro] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;

    color: var(--ink);
    padding-bottom: 80px;
}

.mono[b-bkitqj1aro] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }

.head[b-bkitqj1aro] {
    display: flex;
    align-items: flex-end;
    gap: 24px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--ink);
}

h1[b-bkitqj1aro] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 36px; font-weight: 600; line-height: .95; margin: 0;
}

.sub[b-bkitqj1aro] { font-size: 14px; color: var(--ink-2); margin: 4px 0 0; }

.nav[b-bkitqj1aro] { margin-left: auto; display: flex; gap: 5px; }

.nav button[b-bkitqj1aro] {
    font: inherit; font-size: 14px;
    padding: 7px 13px;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; color: var(--ink-2); cursor: pointer;
}
.nav button:hover[b-bkitqj1aro] { border-color: var(--ink-3); color: var(--ink); }
.nav .today[b-bkitqj1aro] { font-size: 13px; }

/* ── the week ── */

.week[b-bkitqj1aro] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
    margin-top: 20px;
}

.day[b-bkitqj1aro] {
    min-height: 140px;
    padding: 10px 9px;
    border: 1px solid var(--rule-2);
    border-radius: 7px;
    background: #fff;
}

/* Past days recede rather than disappear — you still want to see what
   happened, just not to read it first. */
.day.past[b-bkitqj1aro] { opacity: .55; }

.day.today[b-bkitqj1aro] {
    border-color: var(--stoich);
    background: #fffdf8;
}

.d-head[b-bkitqj1aro] {
    display: flex;
    align-items: baseline;
    gap: 7px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--rule-2);
    margin-bottom: 9px;
}

.d-name[b-bkitqj1aro] { font-size: 12px; color: var(--ink-3); text-transform: uppercase; letter-spacing: .04em; }

.d-num[b-bkitqj1aro] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 19px; font-weight: 600; margin-left: auto;
}

.day.today .d-num[b-bkitqj1aro] { color: var(--stoich); }



/* ── a booking ── */

.slot[b-bkitqj1aro] {
    display: block;
    padding: 8px 9px;
    margin-bottom: 7px;
    border-radius: 5px;
    border-left: 3px solid var(--steel);
    background: #f7f7f5;
    text-decoration: none;
    color: inherit;
}

.slot:hover[b-bkitqj1aro] { background: #f1f1ee; }
.slot:focus-visible[b-bkitqj1aro] { outline: 2px solid var(--steel); outline-offset: 2px; }

.slot.dyno[b-bkitqj1aro]    { border-left-color: var(--stoich); }
.slot.pickup[b-bkitqj1aro]  { border-left-color: var(--lean); }
.slot.dropoff[b-bkitqj1aro] { border-left-color: var(--steel); }

.time[b-bkitqj1aro] { font-size: 12px; color: var(--ink-2); }
.car[b-bkitqj1aro] { font-size: 13px; font-weight: 500; margin-top: 2px; line-height: 1.3; }
.who[b-bkitqj1aro] { font-size: 12px; color: var(--ink-2); margin-top: 1px; }
.kind[b-bkitqj1aro] { font-size: 11px; color: var(--ink-3); margin-top: 3px; }

.empty[b-bkitqj1aro] { color: var(--ink-2); font-style: italic; margin-top: 24px; }

/* A seven-column grid on a phone is seven unreadable columns. */
@media (max-width: 900px) {
    .week[b-bkitqj1aro] { grid-template-columns: 1fr; gap: 6px; }
    .day[b-bkitqj1aro] { min-height: 0; }
    .day:not(.today) .quiet[b-bkitqj1aro] { display: none; }
    .d-num[b-bkitqj1aro] { margin-left: 0; }
    .d-head[b-bkitqj1aro] { margin-bottom: 6px; }
}

/* ── what we're working on ── */

/* Visually distinct from appointments: an appointment is someone turning up,
   this is the shop's own plan. Same day, different kind of commitment. */
.work[b-bkitqj1aro] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding: 7px 8px;
    margin-bottom: 6px;
    border: 1px dashed var(--rule);
    border-radius: 5px;
    background: #fafaf8;
}

.work a[b-bkitqj1aro] { flex: 1; text-decoration: none; color: inherit; min-width: 0; }

.work .car[b-bkitqj1aro] { font-size: 13px; font-weight: 500; line-height: 1.3; }
.work .note[b-bkitqj1aro] { font-size: 12px; color: var(--ink-2); margin-top: 2px; line-height: 1.35; }
.work .who[b-bkitqj1aro] { font-size: 11px; color: var(--ink-3); margin-top: 3px; }

.work.done[b-bkitqj1aro] { opacity: .5; }
.work.done .car[b-bkitqj1aro] { text-decoration: line-through; }

.tick[b-bkitqj1aro] {
    font: inherit;
    font-size: 13px;
    line-height: 1;
    width: 22px;
    height: 22px;
    padding: 0;
    flex: 0 0 auto;
    border: 1px solid var(--rule);
    border-radius: 50%;
    background: #fff;
    color: var(--ink-3);
    cursor: pointer;
}
.tick:hover[b-bkitqj1aro] { border-color: var(--lean); color: var(--lean); }
.work.done .tick[b-bkitqj1aro] { border-color: var(--lean); color: var(--lean); }

/* Visible by default. The first version faded it until hover, which meant
   nobody could find it — a control you have to hunt for is a control that
   doesn't exist. */
.add-work[b-bkitqj1aro] {
    font: inherit;
    font-size: 12px;
    line-height: 1;
    width: 100%;
    padding: 7px 0;
    margin-top: 4px;
    border: 1px dashed var(--rule);
    border-radius: 5px;
    background: #fff;
    color: var(--ink-3);
    cursor: pointer;
}

.add-work:hover[b-bkitqj1aro] {
    border-color: var(--steel);
    border-style: solid;
    color: var(--ink);
    background: #f7f7f5;
}

/* ── the planner ── */

.planner[b-bkitqj1aro] {
    margin-top: 18px;
    padding: 16px 18px;
    border: 1px solid var(--rule);
    border-radius: 7px;
    background: #fcfcfa;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 680px;
}

.p-head[b-bkitqj1aro] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 17px;
    font-weight: 600;
}

.p-row[b-bkitqj1aro] { display: flex; gap: 12px; flex-wrap: wrap; }
.p-row .grow[b-bkitqj1aro] { flex: 1; min-width: 220px; }

.planner label[b-bkitqj1aro] { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.planner .k[b-bkitqj1aro] { font-size: 12px; color: var(--ink-3); }
.planner .hint[b-bkitqj1aro] { font-size: 11px; }

.planner input[b-bkitqj1aro], .planner select[b-bkitqj1aro] {
    font: inherit;
    font-size: 14px;
    padding: 8px 10px;
    border: 1px solid var(--rule);
    border-radius: 5px;
    background: #fff;
    width: 100%;
}

.p-actions[b-bkitqj1aro] { display: flex; gap: 8px; }

.btn-sm[b-bkitqj1aro] {
    font: inherit; font-size: 14px; font-weight: 500;
    padding: 8px 16px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel);
    color: #fff; cursor: pointer;
}
.btn-sm:hover[b-bkitqj1aro] { background: #1c2127; }
.btn-sm:disabled[b-bkitqj1aro] { opacity: .5; cursor: default; }

.btn-ghost-sm[b-bkitqj1aro] {
    font: inherit; font-size: 13px;
    padding: 7px 13px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-bkitqj1aro] { border-color: var(--ink-3); color: var(--ink); }

.planner .warn[b-bkitqj1aro] {
    margin: 0; font-size: 13px; padding: 9px 12px;
    background: #fbf1dc; border: 1px solid #ecd49f;
    border-radius: 5px; color: #8d6008;
}
/* /Components/Pages/Search.razor.rz.scp.css */
.search[b-ojbewb2n8y] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --lean: #5b8f11; --steel: #2b3138;

    color: var(--ink);
    max-width: 860px;
    padding-bottom: 80px;
}

.mono[b-ojbewb2n8y] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }
.dim[b-ojbewb2n8y] { color: var(--ink-3); }

.head[b-ojbewb2n8y] { padding-bottom: 16px; border-bottom: 2px solid var(--ink); }

.head h1[b-ojbewb2n8y] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 36px; font-weight: 600; line-height: .95; margin: 0;
}

/* ── the field ── */

.field[b-ojbewb2n8y] { position: relative; margin-top: 20px; }

.field input[b-ojbewb2n8y] {
    font: inherit;
    font-size: 19px;
    width: 100%;
    padding: 14px 44px 14px 16px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: #fff;
}

.field input:focus-visible[b-ojbewb2n8y] {
    outline: 2px solid var(--steel);
    outline-offset: -1px;
    border-color: var(--steel);
}

.clear[b-ojbewb2n8y] {
    position: absolute; right: 10px; top: 50%;
    transform: translateY(-50%);
    font: inherit; font-size: 22px; line-height: 1;
    width: 30px; height: 30px; padding: 0;
    border: 0; border-radius: 50%;
    background: none; color: var(--ink-3); cursor: pointer;
}
.clear:hover[b-ojbewb2n8y] { background: var(--rule-2); color: var(--ink); }

.fine[b-ojbewb2n8y] { font-size: 12px; color: var(--ink-3); margin: 8px 2px 0; }

/* ── results ── */

section[b-ojbewb2n8y] { margin-top: 30px; }

h2[b-ojbewb2n8y] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; font-weight: 600;
    margin: 0 0 8px;
    display: flex; align-items: center; gap: 8px;
}

.count[b-ojbewb2n8y] {
    font-family: Barlow, sans-serif;
    font-size: 12px; font-weight: 400; color: var(--ink-3);
    border: 1px solid var(--rule); border-radius: 999px; padding: 1px 8px;
}

.rows[b-ojbewb2n8y] { display: flex; flex-direction: column; }

.row[b-ojbewb2n8y] {
    display: flex; align-items: center; gap: 18px;
    padding: 13px 12px;
    border-bottom: 1px solid var(--rule-2);
    border-left: 3px solid transparent;
    text-decoration: none; color: inherit;
    background: #fff;
}

.row:first-child[b-ojbewb2n8y] { border-top: 1px solid var(--rule-2); }
.row:hover[b-ojbewb2n8y] { background: #fbfbfa; border-left-color: var(--lean); }
.row:focus-visible[b-ojbewb2n8y] { outline: 2px solid var(--steel); outline-offset: -2px; }

.main[b-ojbewb2n8y] { min-width: 0; flex: 1; }

.title[b-ojbewb2n8y] { font-weight: 500; }
.sub[b-ojbewb2n8y] { font-size: 13px; color: var(--ink-2); margin-top: 2px; }

.meta[b-ojbewb2n8y] {
    display: flex; align-items: center; gap: 10px;
    font-size: 12px; text-align: right;
    white-space: nowrap;
}

.pill[b-ojbewb2n8y] {
    font-size: 11px; padding: 2px 8px;
    border-radius: 999px; border: 1px solid var(--rule);
    background: #f4f4f1; color: var(--ink-2);
}

.empty[b-ojbewb2n8y] { color: var(--ink-2); font-style: italic; margin-top: 26px; }
/* /Components/Pages/SetPassword.razor.rz.scp.css */
.cq[b-vjrfe5yv0f] { max-width: 440px; }

.card[b-vjrfe5yv0f] {
    background: var(--card);
    border: 1px solid var(--rule);
    border-radius: 10px;
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.brandline[b-vjrfe5yv0f] { font-size: 12px; letter-spacing: .06em; color: var(--ink-3); }

h1[b-vjrfe5yv0f] { font-size: 21px; margin: 0; color: var(--ink); }

.lead[b-vjrfe5yv0f] { font-size: 15px; line-height: 1.55; color: var(--ink-2); margin: 0; }

label[b-vjrfe5yv0f] { display: flex; flex-direction: column; gap: 5px; }

.k[b-vjrfe5yv0f] { font-size: 13px; color: var(--ink-2); }

input[b-vjrfe5yv0f] {
    font: inherit;
    font-size: 16px;
    padding: 11px 13px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--card-2);
    color: var(--ink);
    width: 100%;
}

input:focus-visible[b-vjrfe5yv0f] {
    outline: 2px solid var(--accent);
    outline-offset: -1px;
    border-color: var(--accent);
}

/* Live feedback rather than a verdict after submitting. */
.rules[b-vjrfe5yv0f] {
    list-style: none;
    margin: 2px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rules li[b-vjrfe5yv0f] {
    font-size: 13px;
    color: var(--ink-3);
    padding-left: 20px;
    position: relative;
}

.rules li[b-vjrfe5yv0f]::before {
    content: "○";
    position: absolute;
    left: 0;
}

.rules li.met[b-vjrfe5yv0f] { color: var(--lean); }
.rules li.met[b-vjrfe5yv0f]::before { content: "●"; }

.btn[b-vjrfe5yv0f] {
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    padding: 13px 20px;
    border-radius: 6px;
    border: 1px solid var(--accent);
    background: var(--accent);
    color: #fff;
    cursor: pointer;
    margin-top: 4px;
}

.btn:hover:not(:disabled)[b-vjrfe5yv0f] { background: #c9491a; }
.btn:disabled[b-vjrfe5yv0f] { opacity: .45; cursor: default; }

.bad[b-vjrfe5yv0f] {
    margin: 0;
    font-size: 13px;
    padding: 10px 12px;
    background: var(--rich-bg);
    border: 1px solid #6a3220;
    border-radius: 6px;
    color: var(--rich);
}

.fine[b-vjrfe5yv0f] { font-size: 12px; color: var(--ink-3); margin: 0; line-height: 1.55; }
/* /Components/Pages/Staff.razor.rz.scp.css */
.staff[b-g8hx0sat0c] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;
    --lean-bg: #eef4e4; --stoich-bg: #fbf1dc; --rich-bg: #fbe8e1;

    color: var(--ink);
    max-width: 780px;
    padding-bottom: 80px;
}

.mono[b-g8hx0sat0c] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace; }

.head[b-g8hx0sat0c] {
    display: flex; align-items: baseline; gap: 16px;
    padding-bottom: 16px; border-bottom: 2px solid var(--ink);
}

.head h1[b-g8hx0sat0c] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 36px; font-weight: 600; line-height: .95; margin: 0;
}

.btn[b-g8hx0sat0c] {
    margin-left: auto; font: inherit; font-weight: 500;
    padding: 9px 16px; border-radius: 4px;
    border: 1px solid var(--steel); background: var(--steel);
    color: #fff; cursor: pointer;
}
.btn:hover[b-g8hx0sat0c] { background: #1c2127; }
.btn:disabled[b-g8hx0sat0c] { opacity: .5; cursor: default; }

.btn-ghost[b-g8hx0sat0c] {
    font: inherit; padding: 9px 16px; border-radius: 4px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost:hover[b-g8hx0sat0c] { border-color: var(--ink-3); }

.btn-sm[b-g8hx0sat0c] {
    font: inherit; font-size: 13px; font-weight: 500;
    padding: 7px 13px; border-radius: 4px;
    border: 1px solid var(--steel); background: var(--steel);
    color: #fff; cursor: pointer;
}
.btn-sm:hover[b-g8hx0sat0c] { background: #1c2127; }

.btn-ghost-sm[b-g8hx0sat0c] {
    font: inherit; font-size: 13px;
    padding: 6px 12px; border-radius: 4px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-g8hx0sat0c] { border-color: var(--ink-3); }
.btn-ghost-sm:disabled[b-g8hx0sat0c] { opacity: .4; cursor: default; }
.btn-ghost-sm.danger[b-g8hx0sat0c] { color: var(--rich); border-color: #edc0ac; }
.btn-ghost-sm.danger:hover[b-g8hx0sat0c] { background: var(--rich-bg); }

/* ── add panel ── */

.panel[b-g8hx0sat0c] {
    margin-top: 20px; padding: 18px 20px;
    border: 1px solid var(--rule); border-radius: 6px;
    background: #fcfcfa;
    display: flex; flex-direction: column; gap: 14px;
}

.panel h2[b-g8hx0sat0c] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; font-weight: 600; margin: 0;
}

label[b-g8hx0sat0c] { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.row[b-g8hx0sat0c] { display: flex; gap: 12px; flex-wrap: wrap; }
.narrow[b-g8hx0sat0c] { max-width: 150px; }

.k[b-g8hx0sat0c] { font-size: 13px; color: var(--ink-2); }
.hint[b-g8hx0sat0c] { font-size: 12px; color: var(--ink-3); }

input[b-g8hx0sat0c], select[b-g8hx0sat0c] {
    font: inherit; padding: 8px 10px;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; width: 100%;
}

input:focus-visible[b-g8hx0sat0c], select:focus-visible[b-g8hx0sat0c] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.withbtn[b-g8hx0sat0c] { display: flex; gap: 8px; }

.actions[b-g8hx0sat0c] { display: flex; gap: 8px; }

/* ── list ── */

.list[b-g8hx0sat0c] { display: flex; flex-direction: column; margin-top: 22px; }

.row-item[b-g8hx0sat0c] {
    display: grid;
    grid-template-columns: 1fr 150px auto;
    gap: 14px;
    align-items: center;
    padding: 14px 4px;
    border-bottom: 1px solid var(--rule-2);
}

.row-item.inactive[b-g8hx0sat0c] { opacity: .55; }

.name[b-g8hx0sat0c] { font-weight: 500; }

.you[b-g8hx0sat0c] {
    font-size: 11px; font-weight: 400;
    margin-left: 7px; padding: 1px 7px;
    border-radius: 999px; border: 1px solid var(--rule);
    color: var(--ink-3);
}

.email[b-g8hx0sat0c] { font-size: 12px; color: var(--ink-3); margin-top: 2px; }

.role-fixed[b-g8hx0sat0c] { font-size: 14px; color: var(--ink-2); }

.acts[b-g8hx0sat0c] { display: flex; gap: 6px; }

.reset[b-g8hx0sat0c] {
    grid-column: 1 / -1;
    display: flex; gap: 8px; align-items: center;
    padding-top: 10px;
}

.reset input[b-g8hx0sat0c] { flex: 1; }

/* ── messages ── */

.ok[b-g8hx0sat0c] {
    margin-top: 16px; padding: 9px 12px; font-size: 13px;
    background: var(--lean-bg); border: 1px solid #cbdcac;
    border-radius: 5px; color: #3f6209;
}

.warn[b-g8hx0sat0c] {
    margin-top: 16px; padding: 9px 12px; font-size: 13px;
    background: var(--stoich-bg); border: 1px solid #ecd49f;
    border-radius: 5px; color: #8d6008;
}

.note[b-g8hx0sat0c] {
    margin-top: 16px; font-size: 14px; color: var(--ink-2);
}

.fine[b-g8hx0sat0c] { font-size: 12px; color: var(--ink-3); margin: 16px 0 0; line-height: 1.5; }

.rate[b-g8hx0sat0c] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.rate .k[b-g8hx0sat0c] { font-size: 12px; color: var(--ink-3); }

.rate input[b-g8hx0sat0c] {
    font: inherit;
    font-size: 14px;
    width: 76px;
    padding: 6px 8px;
    border: 1px solid var(--rule);
    border-radius: 5px;
    background: #fff;
    text-align: right;
}
/* /Components/PartsPanel.razor.rz.scp.css */
.parts-panel[b-74hescs0ht] {
    --ink: #16181a; --ink-2: #55595e; --ink-3: #8b8f95;
    --rule: #d8d9d6; --rule-2: #e6e7e4;
    --rich: #cc4318; --stoich: #cf8b0c; --lean: #5b8f11; --steel: #2b3138;
    --stoich-bg: #fbf1dc; --lean-bg: #eef4e4; --rich-bg: #fbe8e1;

    color: var(--ink);
    margin-top: 30px;
}

.mono[b-74hescs0ht] { font-family: "IBM Plex Mono", ui-monospace, Consolas, monospace;
        font-variant-numeric: tabular-nums; }

.parts-panel h2[b-74hescs0ht] {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; font-weight: 600; margin: 0 0 12px;
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
    display: flex; align-items: baseline; gap: 10px;
}

.tally[b-74hescs0ht] {
    font-family: Barlow, sans-serif;
    font-size: 12px; font-weight: 400; color: var(--stoich);
}

/* ── rows ── */

.rows[b-74hescs0ht] { display: flex; flex-direction: column; }

.row[b-74hescs0ht] {
    display: grid;
    grid-template-columns: 1fr 130px 120px auto;
    gap: 14px;
    align-items: start;
    padding: 12px 10px;
    border-bottom: 1px solid var(--rule-2);
    border-left: 3px solid transparent;
    background: #fff;
}

.row.needed[b-74hescs0ht]    { border-left-color: var(--ink-3); }
.row.ordered[b-74hescs0ht]   { border-left-color: var(--stoich); background: #fffdf8; }
.row.arrived[b-74hescs0ht]   { border-left-color: var(--lean); }
.row.fitted[b-74hescs0ht]    { border-left-color: var(--lean); opacity: .7; }
.row.cancelled[b-74hescs0ht] { border-left-color: var(--rule); opacity: .45; }

.row.cancelled .desc[b-74hescs0ht] { text-decoration: line-through; }

.desc[b-74hescs0ht] { font-weight: 500; font-size: 15px; }

.meta[b-74hescs0ht] {
    display: flex; flex-wrap: wrap; gap: 10px;
    font-size: 12px; color: var(--ink-3); margin-top: 3px;
}

.note[b-74hescs0ht] { font-size: 13px; color: var(--ink-2); margin-top: 4px; font-style: italic; }

.when[b-74hescs0ht] { display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.status[b-74hescs0ht] { font-weight: 500; }
.row.ordered .status[b-74hescs0ht] { color: #8d6008; }
.row.arrived .status[b-74hescs0ht], .row.fitted .status[b-74hescs0ht] { color: #3f6209; }

.due[b-74hescs0ht] { font-size: 12px; color: var(--ink-3); }
.due.late[b-74hescs0ht] { color: var(--rich); font-weight: 500; }

.money[b-74hescs0ht] { display: flex; flex-direction: column; gap: 2px; text-align: right; }
.sell[b-74hescs0ht] { font-size: 15px; }
.margin[b-74hescs0ht] { font-size: 11px; color: var(--ink-3); }
.margin.thin[b-74hescs0ht] { color: var(--rich); }

.acts[b-74hescs0ht] { display: flex; gap: 5px; align-items: flex-start; }

.icon[b-74hescs0ht] {
    font: inherit; font-size: 13px;
    width: 28px; height: 28px; padding: 0;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; color: var(--ink-3); cursor: pointer;
}
.icon:hover[b-74hescs0ht] { color: var(--ink); border-color: var(--ink-3); }

.add[b-74hescs0ht] { margin-top: 12px; }

/* ── editor ── */

.editor[b-74hescs0ht] {
    grid-column: 1 / -1;
    margin-top: 12px;
    padding: 14px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: #fcfcfa;
    display: flex; flex-direction: column; gap: 12px;
}

.e-row[b-74hescs0ht] { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.e-row .grow[b-74hescs0ht] { flex: 1; min-width: 200px; }

label[b-74hescs0ht] { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.narrow[b-74hescs0ht] { max-width: 120px; }

.k[b-74hescs0ht] { font-size: 12px; color: var(--ink-3); }

.owner[b-74hescs0ht] {
    font-size: 10px;
    border: 1px solid var(--rule);
    border-radius: 999px;
    padding: 0 5px;
    margin-left: 4px;
    color: var(--ink-3);
}

input[b-74hescs0ht], select[b-74hescs0ht] {
    font: inherit; font-size: 14px; padding: 7px 9px;
    border: 1px solid var(--rule); border-radius: 5px;
    background: #fff; width: 100%;
}

input:focus-visible[b-74hescs0ht], select:focus-visible[b-74hescs0ht] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}

.money-row[b-74hescs0ht] { align-items: flex-end; }

.live-margin[b-74hescs0ht] {
    display: flex; flex-direction: column; gap: 3px;
    padding-bottom: 7px;
    font-size: 14px;
    color: var(--lean);
}
.live-margin.thin[b-74hescs0ht] { color: var(--rich); }

.check[b-74hescs0ht] { flex-direction: row !important; align-items: center; gap: 8px !important;
         font-size: 14px; cursor: pointer; }
.check input[b-74hescs0ht] { width: auto; }

.e-actions[b-74hescs0ht] { display: flex; gap: 8px; }

.btn-sm[b-74hescs0ht] {
    font: inherit; font-size: 14px; font-weight: 500;
    padding: 8px 16px; border-radius: 5px;
    border: 1px solid var(--steel); background: var(--steel);
    color: #fff; cursor: pointer;
}
.btn-sm:hover[b-74hescs0ht] { background: #1c2127; }
.btn-sm:disabled[b-74hescs0ht] { opacity: .5; cursor: default; }

.btn-ghost-sm[b-74hescs0ht] {
    font: inherit; font-size: 13px;
    padding: 6px 12px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.btn-ghost-sm:hover[b-74hescs0ht] { border-color: var(--ink-3); color: var(--ink); }
.btn-ghost-sm:disabled[b-74hescs0ht] { opacity: .4; cursor: default; }

.fine[b-74hescs0ht] { font-size: 12px; color: var(--ink-3); margin: 0; line-height: 1.5; }

.warn[b-74hescs0ht] {
    margin: 12px 0 0; font-size: 13px; padding: 9px 12px;
    background: var(--stoich-bg); border: 1px solid #ecd49f;
    border-radius: 5px; color: #8d6008;
}

.empty[b-74hescs0ht] { color: var(--ink-2); font-style: italic; margin: 0; }

@media (max-width: 760px) {
    .row[b-74hescs0ht] { grid-template-columns: 1fr; gap: 8px; }
    .money[b-74hescs0ht] { text-align: left; }
}

/* ── running totals ── */

.totals[b-74hescs0ht] {
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px solid var(--rule);
    display: flex;
    flex-direction: column;
    gap: 5px;
    max-width: 320px;
    margin-left: auto;
}

.t[b-74hescs0ht] {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-size: 14px;
}

.t.fitted[b-74hescs0ht] { font-weight: 500; }
.t.coming[b-74hescs0ht] { color: var(--stoich); font-size: 13px; }
.t.margin[b-74hescs0ht] { color: var(--lean); font-size: 12px; }
.t.margin.thin[b-74hescs0ht] { color: var(--rich); }

.t .owner[b-74hescs0ht] {
    font-size: 10px;
    border: 1px solid var(--rule);
    border-radius: 999px;
    padding: 0 5px;
    margin-left: 4px;
    color: var(--ink-3);
}
/* /Components/StatusPanel.razor.rz.scp.css */
.status-panel[b-b7d78gme1r] {
    --ink: #14161b; --ink-2: #5b6069; --ink-3: #8d929b;
    --rule: #dcdcd6; --rule-2: #ebebe6;
    --rich: #d8481a; --stoich: #d99413; --lean: #5f9414; --steel: #333c4a;
    --stoich-bg: #fbf1dd;
    color: var(--ink);
    margin-top: 30px;
}

.status-panel h2[b-b7d78gme1r] {
    font-size: 15px; font-weight: 600; margin: 0 0 12px;
    padding-bottom: 7px; border-bottom: 1px solid var(--rule);
}

.now[b-b7d78gme1r] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.pip[b-b7d78gme1r] { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.pip.go[b-b7d78gme1r] { background: var(--lean); }
.pip.wait[b-b7d78gme1r] { background: var(--stoich); }
.pip.done[b-b7d78gme1r] { background: var(--steel); }
.pip.off[b-b7d78gme1r] { background: var(--ink-3); }

.label[b-b7d78gme1r] { font-weight: 500; }

.moves[b-b7d78gme1r] { display: flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }

.move[b-b7d78gme1r] {
    font: inherit; font-size: 13px;
    padding: 6px 12px; border-radius: 5px;
    border: 1px solid var(--rule); background: #fff;
    color: var(--ink-2); cursor: pointer;
}
.move:hover[b-b7d78gme1r] { border-color: var(--steel); color: var(--ink); }

.move.off[b-b7d78gme1r] {
    opacity: .45;
    cursor: not-allowed;
    border-style: dashed;
}

.terminal[b-b7d78gme1r] { color: var(--ink-3); font-size: 13px; margin-left: auto; }

.warn[b-b7d78gme1r] {
    margin: 12px 0 0; font-size: 13px; padding: 9px 12px;
    background: var(--stoich-bg); border: 1px solid #edd6a4;
    border-radius: 6px; color: #96660a;
}

.history[b-b7d78gme1r] {
    margin-top: 18px; padding-top: 14px;
    border-top: 1px solid var(--rule-2);
    display: flex; flex-direction: column; gap: 9px;
}

.h-row[b-b7d78gme1r] {
    display: grid;
    grid-template-columns: 130px 1fr auto;
    gap: 10px;
    font-size: 13px;
    align-items: baseline;
}

.h-row time[b-b7d78gme1r] { color: var(--ink-3); }
.h-move[b-b7d78gme1r] { color: var(--ink-2); }
.h-move strong[b-b7d78gme1r] { color: var(--ink); font-weight: 500; }
.h-who[b-b7d78gme1r] { color: var(--ink-3); }

.h-note[b-b7d78gme1r] {
    grid-column: 2 / -1;
    color: var(--ink-2);
    font-style: italic;
}

.note-field[b-b7d78gme1r] { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; }
.note-field .k[b-b7d78gme1r] { font-size: 13px; color: var(--ink-2); }
.note-field .hint[b-b7d78gme1r] { font-size: 12px; color: var(--ink-3); }

.note-field input[b-b7d78gme1r] {
    font: inherit; padding: 8px 10px;
    border: 1px solid var(--rule); border-radius: 5px; background: #fff;
}
.note-field input:focus-visible[b-b7d78gme1r] {
    outline: 2px solid var(--steel); outline-offset: -1px; border-color: var(--steel);
}
