/* =============================================================================
   Spangler's — app.css
   Deep navy with an electric blue accent. One stylesheet for every page, so the
   whole look changes here and nowhere else.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@500;600;700&display=swap');

:root{
  /* Navy climbing toward the viewer, rather than one flat dark. */
  --bg:#070B1A;
  --bg-2:#0B1228;
  --surface:#101A38;
  --raised:#16224A;
  --line:#22315F;
  --line-soft:#182448;

  --text:#EAF0FF;
  --dim:#94A6CC;
  --faint:#647099;

  --accent:#4C7DFF;
  --accent-hi:#6E97FF;
  --violet:#8B5CF6;
  --cyan:#38BDF8;

  --good:#34D399;
  --bad:#FB7185;

  --radius:10px;
  --pad:28px;
  --glow:0 0 0 1px rgba(76,125,255,.18), 0 8px 30px -12px rgba(76,125,255,.45);

  --ink:var(--text); --paper:var(--bg); --steel:var(--dim);
  --hairline:var(--line); --amber:var(--accent); --signal:var(--bad);
  --tint:rgba(76,125,255,.10); --running:#0A1730; --running-ink:var(--text);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;min-height:100%}
body{
  background:
    radial-gradient(900px 500px at 12% -8%, rgba(76,125,255,.20), transparent 60%),
    radial-gradient(700px 420px at 92% 4%, rgba(139,92,246,.14), transparent 62%),
    linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 46%);
  background-attachment:fixed;
  color:var(--text);
  font-family:Barlow,system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;
  padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);
}
a{color:inherit}
::selection{background:rgba(76,125,255,.34);color:#fff}

/* shell ------------------------------------------------------------------ */
.wrap{max-width:1180px;margin:0 auto;padding:26px var(--pad) 84px}
header{display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:0 0 18px;border-bottom:1px solid var(--line-soft);margin-bottom:26px}
.mark{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:24px}
.mark::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;
  margin-right:11px;vertical-align:1px;
  background:linear-gradient(135deg,var(--cyan),var(--accent) 45%,var(--violet));
  box-shadow:0 0 14px rgba(76,125,255,.85)}
.back,.who{font-size:14px;color:var(--dim);text-decoration:none;transition:color .15s}
.back:hover{color:var(--accent-hi)}
.asof,.cap{font-size:14px;color:var(--dim);margin:0 0 16px}

/* type ------------------------------------------------------------------- */
h3{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:19px;margin:34px 0 6px}
h2{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:36px 0 12px}
.big{font-family:"Barlow Condensed",sans-serif;font-weight:700;
  font-size:clamp(30px,4vw,42px);line-height:1.05;margin:0 0 6px}
.sub,.muted,.dim,.meta,.s,.d,.m{color:var(--dim);font-size:14px}

.lead{margin:26px 0 8px}
.lead .k{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:0 0 7px}
.lead .v{font-family:"Barlow Condensed",sans-serif;font-weight:700;
  font-size:clamp(40px,6vw,66px);line-height:1;letter-spacing:-.015em;margin:0;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(120deg,#fff 12%,var(--accent-hi) 78%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.lead .n{font-size:14px;color:var(--dim);margin:9px 0 0}
.skel{color:var(--line);-webkit-text-fill-color:currentColor}

/* metrics ---------------------------------------------------------------- */
.grid{display:grid;gap:14px;margin-top:26px;background:none;border:0;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.cell{background:linear-gradient(160deg,var(--surface),rgba(16,26,56,.55));
  border:1px solid var(--line-soft)!important;border-radius:var(--radius);padding:18px 20px}
.cell .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 7px}
.cell .v{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:29px;
  line-height:1.1;font-variant-numeric:tabular-nums;margin:0}
.cell .n{font-size:13px;color:var(--dim);margin:5px 0 0}

/* cards ------------------------------------------------------------------ */
.card,.acct,.item,.rcpt,fieldset{
  background:linear-gradient(160deg,var(--surface),rgba(16,26,56,.6));
  border:1px solid var(--line-soft);border-radius:var(--radius);padding:18px 20px;margin:14px 0}
.card.flag,.acct.flag{border-color:rgba(76,125,255,.5);box-shadow:var(--glow)}
.acct.bad{border-color:rgba(251,113,133,.5)}
.item{padding:15px 20px}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.t,.dest,.p{font-weight:600}
.amt,.a,.v,.mi,.h,.odo{font-family:"Barlow Condensed",sans-serif;font-weight:700;
  font-variant-numeric:tabular-nums}
.amt{font-size:27px;white-space:nowrap}
.amt.in,.ok,.clear{color:var(--good)}
.neg,.bad,.err,.stop{color:var(--bad)}
.hint{font-size:14px;margin:14px 0 0;padding:12px 15px;border-radius:0 6px 6px 0;
  background:rgba(76,125,255,.09);border-left:2px solid var(--accent)}

/* rows ------------------------------------------------------------------- */
.tool{display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:17px 20px;margin:9px 0;text-decoration:none;color:inherit;
  background:linear-gradient(160deg,var(--surface),rgba(16,26,56,.55));
  border:1px solid var(--line-soft);border-radius:var(--radius);
  transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.tool:hover{border-color:rgba(76,125,255,.55);transform:translateY(-1px);box-shadow:var(--glow)}
.tool .t{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:20px;
  display:block;line-height:1.15}
.tool .d{display:block;font-size:13px;color:var(--dim);margin-top:6px;line-height:1.4}
.tool .go{font-size:20px;color:var(--faint);transition:color .18s}
.tool:hover .go{color:var(--accent-hi)}
.tool[aria-disabled="true"]{opacity:.38;pointer-events:none}

.lrow,.trip,.row{display:grid;grid-template-columns:1fr auto;gap:3px 16px;
  padding:14px 0;border-bottom:1px solid var(--line-soft)}
.lrow.flagged{background:rgba(76,125,255,.07);border-left:2px solid var(--accent);
  padding-left:14px;margin-left:-16px;padding-right:14px;border-radius:0 6px 6px 0}
.lrow .a,.trip .mi,.row .a{grid-row:span 2;align-self:center;font-size:20px}
.lrow .pick{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:10px;margin-top:10px}

/* tallies ---------------------------------------------------------------- */
.ln,.tr{display:flex;justify-content:space-between;align-items:baseline;
  padding:8px 0;font-size:15px;gap:16px}
.ln .v,.tr .r{font-family:"Barlow Condensed",sans-serif;font-weight:700;
  font-size:18px;font-variant-numeric:tabular-nums}
.ln.tot,.tr.big{border-top:1px solid var(--line);margin-top:10px;padding-top:13px;font-weight:600}
.ln.tot .v,.tr.big .r{font-size:25px}
.tally{border-top:1px solid var(--line);margin-top:20px;padding-top:6px}

/* tables ----------------------------------------------------------------- */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th{text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);font-weight:600;padding:12px 0;border-bottom:1px solid var(--line)}
th.r,td.r{text-align:right}
td{padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:15px}
td.r{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:17px}
tr.sum td{border-top:1px solid var(--line);border-bottom:0;font-weight:700}
tr.sum td.r{font-size:20px}
tr.big td{border-top:1px solid rgba(76,125,255,.45);border-bottom:1px solid rgba(76,125,255,.45)}
tr.big td.r{font-size:26px;color:var(--accent-hi)}
.sec{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.11em;text-transform:uppercase;color:var(--faint);
  padding-top:26px!important;border-bottom:0!important}

/* forms ------------------------------------------------------------------ */
label{display:block;font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);margin:18px 0 8px;font-weight:600}
input,select,textarea{width:100%;font-family:inherit;font-size:15px;color:var(--text);
  background:rgba(10,16,38,.72);border:1px solid var(--line);border-radius:7px;
  padding:12px 14px;min-height:46px;transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:var(--faint)}
input:hover,select:hover,textarea:hover{border-color:#2E4179}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(76,125,255,.20)}
textarea{min-height:84px;resize:vertical;line-height:1.5}
select{appearance:none;background-image:
  linear-gradient(45deg,transparent 50%,var(--dim) 50%),
  linear-gradient(135deg,var(--dim) 50%,transparent 50%);
  background-position:calc(100% - 18px) 51%,calc(100% - 13px) 51%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px}
option{background:var(--surface);color:var(--text)}
input[inputmode="numeric"],input[inputmode="decimal"]{
  font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:26px;
  font-variant-numeric:tabular-nums}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}

/* buttons ---------------------------------------------------------------- */
button{font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;
  background:rgba(22,34,74,.85);color:var(--text);border:1px solid var(--line);
  border-radius:7px;padding:11px 16px;min-height:46px;transition:all .16s ease}
button:hover:not(:disabled){border-color:#3A4E8C;background:#1B2A5C}
button.go,button.primary,button.save{
  background:linear-gradient(135deg,var(--accent),#3A63E0);color:#fff;border-color:transparent;
  font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:17px;
  letter-spacing:.02em;min-height:50px;width:100%;
  box-shadow:0 6px 20px -8px rgba(76,125,255,.85)}
button.go:hover:not(:disabled),button.primary:hover:not(:disabled){
  background:linear-gradient(135deg,var(--accent-hi),#4570F0);
  box-shadow:0 8px 26px -8px rgba(76,125,255,1)}
button.stop{background:linear-gradient(135deg,var(--bad),#E11D48);color:#fff;border-color:transparent}
button.quiet,button.plain,button.addline{background:transparent}
button:disabled{opacity:.36;cursor:default;box-shadow:none}
.acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px}
button.wide,button.primary{grid-column:1/-1}
.stack>*+*{margin-top:12px}

/* tabs ------------------------------------------------------------------- */
.tabs{display:flex;overflow-x:auto;gap:4px;border-bottom:1px solid var(--line-soft);
  margin:18px 0 0;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{border:0;background:transparent;padding:11px 15px;border-radius:0;
  font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:16px;
  white-space:nowrap;color:var(--dim);border-bottom:2px solid transparent;
  margin-bottom:-1px;min-height:auto;box-shadow:none}
.tabs button:hover{color:var(--text);background:transparent}
.tabs button[aria-pressed="true"]{color:var(--text);border-bottom-color:var(--accent)}
.toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;
  overflow:hidden;margin:6px 0 14px;background:rgba(10,16,38,.6)}
.toggle button{border:0;border-radius:0;background:transparent;min-height:40px;
  font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;
  padding:0 18px;box-shadow:none}
.toggle button[aria-pressed="true"]{background:linear-gradient(135deg,var(--accent),#3A63E0);color:#fff}
.toggle button+button{border-left:1px solid var(--line)}
.controls{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 4px;align-items:center}
.controls select,.controls input{width:auto;min-width:150px}

/* callouts --------------------------------------------------------------- */
.note,.flag,.an,.test{font-size:14px;color:var(--dim);
  border-left:2px solid var(--line);padding:11px 0 11px 15px;margin:14px 0}
.note.warn,.flag{border-color:var(--accent);color:var(--text)}
.note.red,.flag.red,.an,.test.risk{border-color:var(--bad);color:var(--text)}
.test.met{border-color:var(--good)}
.an{background:rgba(251,113,133,.07);border-radius:0 8px 8px 0;padding:15px 17px}
.an .h{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:16px;color:var(--text)}
.flag .amt,.an .amt{font-size:17px;color:var(--accent-hi)}
hr.hair{border:0;border-top:1px solid var(--line-soft);margin:32px 0 18px}
.check{margin-top:14px;padding:13px 16px;font-size:14px;font-weight:600;border-radius:8px}
.check.ok{background:rgba(52,211,153,.12);color:var(--good);border:1px solid rgba(52,211,153,.3)}
.check.bad{background:rgba(251,113,133,.12);color:var(--bad);border:1px solid rgba(251,113,133,.3)}
.pill{display:inline-block;background:linear-gradient(135deg,var(--accent),var(--violet));
  color:#fff;padding:2px 9px;font-size:12px;font-weight:700;border-radius:20px;margin-left:8px}

/* capture ---------------------------------------------------------------- */
.shot{border:1px dashed var(--line);border-radius:var(--radius);padding:40px 20px;
  text-align:center;background:rgba(16,26,56,.5);cursor:pointer;transition:all .16s}
.shot:hover{border-color:var(--accent);background:rgba(76,125,255,.08);box-shadow:var(--glow)}
.shot p{margin:0;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:21px}
.shot span{display:block;color:var(--dim);font-size:14px;font-weight:400;margin-top:5px}
input[type=file]{display:none}
#preview{width:100%;border:1px solid var(--line);border-radius:var(--radius);display:block}
.state{margin:24px 0 26px}
.waive{display:flex;align-items:center;gap:11px;margin-top:16px;font-size:15px;
  color:var(--text);text-transform:none;letter-spacing:0}
.waive input{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--accent)}
fieldset{padding:4px 20px 20px;margin:24px 0}
legend{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:0 9px}

body.running{background:
  radial-gradient(800px 420px at 50% -10%, rgba(76,125,255,.26), transparent 62%),
  linear-gradient(180deg,#0A1730,#070B1A)}
body.running .state .big{color:var(--accent-hi)}

.empty,.done{color:var(--dim);padding:44px 0;text-align:center}
.done .big{color:var(--text)}
.off{opacity:.42}
.hide{display:none!important}
.err,.ok,.msg{font-weight:600;margin:12px 0}
.msg{color:var(--good)}

/* wide screens ----------------------------------------------------------- */
@media (min-width:900px){
  .wrap{padding:36px 40px 96px}
  .stack,fieldset,.card form{max-width:640px}
  input,select,textarea{max-width:640px}
  .row2 input,.row2 select,.row2 textarea,.controls select,.controls input{max-width:none}
  button.go,button.primary,button.save{max-width:330px}
  .acts{max-width:640px}
  .lrow .pick select{max-width:none}
}

@media (max-width:640px){
  :root{--pad:18px}
  .wrap{padding:20px var(--pad) 72px}
  .grid{grid-template-columns:1fr 1fr;gap:10px}
  .cell{padding:15px 16px}
  .acts{grid-template-columns:1fr 1fr}
  button.go,button.primary{min-height:54px;font-size:18px}
  input,select,textarea{min-height:50px;font-size:16px}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
