/* =====================================================================
   The Print Device — incorporated.ink (/print/)
   One device: email a document to a mailbox, paper comes out at the
   printer where the electron runner is installed. Same design tokens as
   the escrow studio (paper/ink/wash, mobile-first, senior-friendly).
   ===================================================================== */

:root {
  --paper:#ffffff; --wash:#f5f7fb; --ink:#0f172a; --muted:#4a5568; --line:#d2d6dc;
  --brand:#0e7490; --brand-2:#0a596f; --brand-soft:#e2f3f7; --brand-deep:#0a4f63;
  --accent:#0e7490; --accent-soft:rgb(14 116 144/.14); --accent-deep:#0a596f;
  --good:#059669; --good-soft:#e3f6ef; --bad:#dc2626; --bad-soft:#fdeaea; --warn:#d97706; --warn-soft:#fdf1df;
  --radius:16px; --radius-sm:10px; --radius-xs:7px;
  --shadow-sm:0 1px 2px rgb(15 23 42/.05),0 1px 3px rgb(15 23 42/.07);
  --mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,"Liberation Mono",monospace;
  --display:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-base:18px; --fs-lg:22px; --fs-xl:28px; --fs-2xl:36px; --tap-min:52px;
}

html{scroll-behavior:smooth;}
body{
  font-family:var(--display);font-size:var(--fs-base);line-height:1.6;
  background:var(--wash);color:var(--ink);-webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
}
h1,h2,h3,h4{letter-spacing:-.02em;color:var(--ink);}
a{color:var(--brand);text-decoration:none;} a:hover{color:var(--brand-deep);}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.small-caps{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;}
.muted{color:var(--muted);}

.app-nav{background:rgb(255 255 255/.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1030;}
.app-nav .navbar-brand{font-weight:800;letter-spacing:-.02em;font-size:1.1rem;}
.brand-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:.45rem;vertical-align:1px;}
.wrap{max-width:1080px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px);}

/* the dark greeting band — the shared gui.css .band-dark, plus its chips */
.band-dark .chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem;}
.band-dark .chips .chip{color:var(--band-ink,#eef4f7);border-color:rgb(255 255 255/.28);background:transparent;}

.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);}
.pad{padding:clamp(16px,4vw,24px);}
.panel + .panel{margin-top:18px;}
.panel-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between;flex-wrap:wrap;}
.step-num{flex:0 0 44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:1.1rem;background:var(--brand-soft);color:var(--brand-deep);}
.step-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.step-title{margin:0;font-size:var(--fs-lg);font-weight:800;}
.step-sub{color:var(--muted);font-size:.95rem;}

.badge-soft{font-weight:700;border-radius: 10px;padding:.4em .85em;font-size:.82rem;}
.bge-brand{background:var(--brand-soft);color:var(--brand-deep);}
.bge-good{background:var(--good-soft);color:var(--good);}
.bge-warn{background:var(--warn-soft);color:var(--warn);}
.bge-line{background:var(--wash);color:var(--muted);border:1px solid var(--line);}

.btn{border-radius: 10px;font-weight:700;padding:.6rem 1.4rem;font-size:var(--fs-base);min-height:var(--tap-min);display:inline-flex;align-items:center;gap:.5rem;border:1px solid transparent;}
.btn-brand{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn-brand:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--brand-soft);}

/* the address pills */
.address{display:flex;flex-direction:column;gap:4px;background:var(--wash);border:1px dashed var(--brand-2);border-radius:var(--radius-sm);padding:14px 18px;}
.address .loc{font-weight:800;font-size:1.05rem;}
.address .full{font-family:var(--mono);font-size:1rem;word-break:break-all;}
.address .note{color:var(--muted);font-size:.9rem;}

/* queue table */
table.queue{width:100%;border-collapse:collapse;font-size:.95rem;}
table.queue th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;}
table.queue td{padding:12px;border-bottom:1px solid #edf0f3;vertical-align:top;}
table.queue tr:last-child td{border-bottom:0;}
.queue-empty{border:1px dashed var(--line);border-radius:var(--radius-sm);padding:18px;color:var(--muted);background:var(--wash);}
.queue-error{background:var(--warn-soft);border:1px solid #f3d9a4;border-radius:var(--radius-sm);padding:14px 16px;color:var(--warn);margin-top:10px;}

/* runner install card */
.code{font-family:var(--mono);background:#0b1220;color:#dbe7f5;border-radius:var(--radius-sm);padding:14px 16px;font-size:.9rem;overflow-x:auto;line-height:1.7;}
.code .c{color:#7dd3fc;}

/* fine print / UMG card */
.market-card{border:1px dashed var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin-top:12px;font-size:.95rem;background:var(--wash);}
.mc-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid #edf0f3;}
.mc-row:last-child{border-bottom:0;}
.mc-k{font-weight:700;color:var(--muted);}
.honest{margin-top:14px;font-size:.9rem;color:var(--bad);}

.app-foot{border-top:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:.88rem;margin-top:18px;}

/* the per-job waiting page (written by the pipe) */
.job-page{background:var(--wash);}
.job-wrap{max-width:640px;margin-inline:auto;padding:clamp(20px,5vw,40px);}
.job-title{font-size:var(--fs-xl);margin:6px 0 10px;}
.job-meta{list-style:none;padding:0;margin:18px 0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;}
.job-meta li{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #edf0f3;background:var(--paper);}
.job-meta li:last-child{border-bottom:0;}
.job-meta span{font-family:var(--mono);word-break:break-all;text-align:right;}

@media print{
  body{background: var(--bg);}
  .no-print,.app-nav,.app-foot{display:none !important;}
  .wrap{max-width:100%;padding:0;}
  .panel{border:0;border-radius:0;}
  a[href]::after{content:"";}
}

@media(min-width:768px){
  :root{--fs-base:17px;--fs-lg:20px;--fs-xl:26px;--fs-2xl:34px;}
}
@media(min-width:1024px){
  :root{--fs-base:16px;--fs-lg:19px;--fs-xl:24px;--fs-2xl:32px;}
}