/* Denial Reply design system (navy + baby blue, approved 2026-11-03). One local stylesheet for the app and the
   static pages. No fonts, images or scripts are loaded from anywhere. Phone text never below 1rem (16px). */
:root{--navy:#1b2a41;--navy2:#1f3f74;--baby:#a9d4ff;--baby-soft:#e3f1ff;--cream:#fbf8f2;--line:#e6e1d6;--text2:#33435a;--muted:#5a6b80;--error:#b42318;--card:#ffffff}
*{box-sizing:border-box}
html{background:var(--cream)}
body{font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;max-width:46rem;margin:0 auto;padding:0 1.25rem 6rem;line-height:1.6;color:var(--navy);background:var(--cream);font-size:1.0625rem}
a{color:var(--navy2);overflow-wrap:break-word}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--baby);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* header bar: the navy reaches both edges of the window on a wide screen (a spread shadow, clipped top and bottom) */
header,.bar{background:var(--navy);color:#fff;margin:0 -1.25rem 1.5rem;padding:.75rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;box-shadow:0 0 0 100vmax var(--navy);clip-path:inset(0 -100vmax)}
header .brand,.bar .brand{color:#fff;font-weight:800;font-size:1.2rem;text-decoration:none}
header .tag,.bar .flag{color:var(--baby);font-weight:700;font-size:.85rem;letter-spacing:.04em}
header nav,.bar nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:.25rem .9rem}
header nav a,.bar nav a{color:#fff;font-size:.95rem}
/* type */
h1{font-size:2rem;line-height:1.15;letter-spacing:-.01em;font-weight:800;margin:.5rem 0 .75rem}
h2{font-size:1.3rem;font-weight:800;margin:2.25rem 0 .6rem}
h3{font-size:1.1rem;font-weight:700;margin:1.4rem 0 .4rem}
p,li{color:var(--text2)}
.lead{font-size:1.1rem;color:var(--text2)}
.hl{background:linear-gradient(transparent 58%,var(--baby) 58%)}
.pill{display:inline-block;background:var(--baby-soft);color:var(--navy);border-radius:999px;padding:.2rem .75rem;font-weight:700;font-size:.9rem}
.muted,.when,.src{color:var(--muted);font-size:.92rem}
.muted a,.result a{overflow-wrap:anywhere}
/* buttons */
button,.btn,.btn2{font:inherit;font-weight:800;display:inline-block;text-align:center;text-decoration:none;border-radius:12px;padding:.85rem 1.4rem;min-height:3rem;cursor:pointer}
button,.btn{background:var(--navy2);color:#fff;border:0}
.btn2,button.secondary{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
button.hold{background:#fff8e8;color:var(--navy);border:1.5px solid #8a5a00}
.btn-row{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
/* cards and lists */
.card,section.card,fieldset,.box,.result{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;margin:1rem 0}
fieldset{min-width:0}
.checks{list-style:none;padding:0;margin:1rem 0}
.checks li{display:flex;gap:.6rem;align-items:flex-start;margin:.4rem 0;color:var(--navy);font-weight:600}
.checks svg{flex:0 0 1.25rem;margin-top:.2rem}
.steps{list-style:none;counter-reset:s;padding:0}
.steps li{counter-increment:s;display:flex;gap:.75rem;margin:.6rem 0}
.steps li::before{content:counter(s);flex:0 0 1.9rem;height:1.9rem;border-radius:999px;background:var(--baby-soft);color:var(--navy);font-weight:800;text-align:center;line-height:1.9rem}
.count{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem 0}
.count div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.75rem .5rem;text-align:center}
.count b{display:block;font-size:1.6rem;color:var(--navy)}
.guides{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1rem 0;padding:0;list-style:none}
.guides a{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.9rem;font-weight:700;color:var(--navy);text-decoration:none;min-height:3rem}
.stat{background:var(--navy);color:#fff;border-radius:12px;padding:1rem 1.1rem;font-weight:700;margin:1.5rem 0}
.stat .src{color:var(--baby)}
.free,.free-note{background:var(--baby-soft);border-left:4px solid var(--navy2);border-radius:8px;padding:.6rem 1rem;font-weight:700;color:var(--navy)}
.warn{background:#fff8e8;border-left:4px solid #8a5a00;border-radius:8px;padding:.6rem 1rem}
.bad{background:#fdeeee;border-left:4px solid var(--error);border-radius:8px;padding:.6rem 1rem}
.ok{color:#205f20;font-weight:700}
.fail{color:var(--error);font-weight:700}
/* sticky call to action (no script) */
.sticky{position:sticky;bottom:0;background:rgba(251,248,242,.97);border-top:1px solid var(--line);margin:2rem -1.25rem 0;padding:.75rem 1.25rem}
.sticky .btn{display:block}
@supports (animation-timeline: scroll()){
.sticky{animation:ov-reveal linear both;animation-timeline:scroll(root);animation-range:0 40vh}
@keyframes ov-reveal{from{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}
}
@media (prefers-reduced-motion:reduce){.sticky{animation:none}}
/* forms */
label{display:block;margin:.5rem 0;color:var(--navy)}
label.tick{font-weight:700}
.field{margin:1rem 0}
.field>label{font-weight:700}
input[type=text],input[type=email],input[type=date],input[type=tel],select,textarea{font:inherit;width:100%;max-width:32rem;border:1.5px solid #b9c4d3;border-radius:10px;padding:.65rem .75rem;background:#fff;min-height:2.9rem}
input.initials{width:5rem}
textarea{min-height:6rem}
.field:target input,.field.has-err input{border-color:var(--error)}
.err{color:var(--error);font-weight:700;margin:.3rem 0 0}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:flex;gap:.7rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.75rem .9rem;margin:.45rem 0}
input[type=checkbox],input[type=radio]{width:1.35rem;height:1.35rem;flex:0 0 1.35rem;margin-top:.15rem;accent-color:var(--navy2)}
.sign{border-top:1px dashed var(--muted);margin-top:.8rem;padding-top:.5rem}
/* the e-mail line: keep the input and the period that follows it on one line */
p>label{display:inline}
p>label input[type=email]{width:calc(95% - 1rem)}
input[type=file]::file-selector-button{font:inherit;font-size:1rem;font-weight:700;min-height:44px;padding:.6rem 1rem;margin-right:.75rem;border-radius:10px;border:1.5px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer}
.parts{font-weight:700;color:var(--navy)}
/* status page */
.deadline-card{background:var(--navy);color:#fff;border-radius:12px;padding:1rem 1.1rem;margin:1rem 0}
.deadline-card .k{color:var(--baby);font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.deadline-card .v{font-size:1.4rem;font-weight:800;margin:.2rem 0}
.deadline-card p{color:#fff;margin:.2rem 0}
.tracker{list-style:none;padding:0;margin:1rem 0}
.tracker li{display:flex;gap:.6rem;align-items:center;margin:.35rem 0}
.tracker li::before{content:"";flex:0 0 1rem;height:1rem;border-radius:999px;border:2px solid var(--muted)}
.tracker li.done::before{background:var(--navy2);border-color:var(--navy2)}
.tracker li.now{font-weight:800;color:var(--navy)}
.tracker li.now::before{background:var(--baby);border-color:var(--navy2)}
.tracker li.next{color:var(--muted)}
/* tables, quotes, admin */
table{border-collapse:collapse;font-size:.95rem;margin:.6rem 0;background:#fff}
table.wide{width:100%}
.slide-hint{display:none}
th,td{border:1px solid var(--line);padding:.45rem .55rem;vertical-align:top;text-align:left}
th{background:var(--navy);color:#fff}
blockquote{margin:.6rem 0;padding:.4rem .9rem;border-left:4px solid var(--baby);background:#fff;border-radius:6px}
.stage{font-size:1.25rem;font-weight:800}
.statuslink{word-break:break-all;font-family:monospace;font-size:1rem;background:#fff;padding:.5rem;border:1px solid var(--line);border-radius:8px}
.quick{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem}
details.more{margin:1rem 0}
details.more>summary{cursor:pointer;font-weight:700;color:var(--navy2);padding:.5rem 0}
summary{min-height:2.75rem;display:flex;align-items:center;cursor:pointer}
iframe.packet{width:99%;height:46rem;border:1px solid var(--line);border-radius:8px}
.triage{background:#fff8e8;border:2px solid #8a5a00;border-radius:12px;padding:.6rem 1rem;margin:1rem 0}
.turnaway{background:#f3f3f3;border:2px solid #555;border-radius:12px;padding:.6rem 1rem;margin:1rem 0}
.urgent{color:#8a5a00;font-weight:700}
ol.script li{margin:.35rem 0}
/* footer */
footer{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1rem;color:var(--muted);font-size:.92rem}
footer p{color:var(--muted)}
/* Lane F: the admin's read-only model_bound/ view wraps inside the page */
pre.model-bound{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.75rem;font-size:1rem}
/* Phone widths: text at 16px or more, fields full width, tap targets about 44px tall, wide tables scroll in their own box. */
@media (max-width:40rem){
body{padding:0 1rem 6rem;overflow-wrap:break-word;font-size:1rem}
header,.bar{margin:0 -1rem 1.25rem;padding:.6rem 1rem}
header .brand,.bar .brand{display:inline-flex;align-items:center;min-height:44px}
header nav,.bar nav{flex-wrap:wrap;margin:0;width:100%;gap:0 1rem}
header nav a,.bar nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 .1rem;font-size:1rem}
.muted a,label a{display:inline-block;min-height:44px;padding:.6rem .1rem}
.parts a,#form-error a,.admin-actions a{display:inline-flex;align-items:center;min-height:44px;padding:0 .1rem}
h1{font-size:1.65rem}
.muted,.when,.src,footer,table,.statuslink,header .tag,.bar .flag,.pill,.deadline-card .k,.slide-hint{font-size:1rem}
.guides{grid-template-columns:1fr}
.count b{font-size:1.35rem}
/* a wide table scrolls in its own box; a shadow at the edge that has more (no script: background-attachment) */
table{display:block;overflow-x:auto}
table{background-color:#fff;background-repeat:no-repeat;background-image:linear-gradient(to right,#fff 30%,rgba(255,255,255,0)),linear-gradient(to left,#fff 30%,rgba(255,255,255,0)),radial-gradient(farthest-side at 0 50%,rgba(27,42,65,.3),rgba(27,42,65,0)),radial-gradient(farthest-side at 100% 50%,rgba(27,42,65,.3),rgba(27,42,65,0));background-position:left center,right center,left center,right center;background-size:2.5rem 100%,2.5rem 100%,1rem 100%,1rem 100%;background-attachment:local,local,scroll,scroll}
table td{background:transparent}
.slide-hint{display:block;font-weight:700;color:var(--muted);margin:.8rem 0 .2rem}
table:has(tr>:nth-child(4)){border-collapse:separate;border-spacing:0}
table:has(tr>:nth-child(4)) :is(th,td){min-width:9rem;border-width:0 1px 1px 0}
table:has(tr>:nth-child(4)) tr:first-child>*{border-top-width:1px}
table:has(tr>:nth-child(4)) tr>:first-child{position:sticky;left:0;z-index:1;min-width:6.5rem;border-left-width:1px;background:#fff}
table:has(tr>:nth-child(4)) tr>th:first-child{background:var(--navy)}
fieldset,section.card{padding:.75rem;margin-left:0;margin-right:0}
input[type=text],input[type=email],input[type=date],input[type=tel],select,textarea{max-width:none}
p>label input[type=email]{display:inline-block;width:calc(100% - 1rem)}
input.initials{display:inline-block;width:6rem}
input[type=file]{width:100%;font-size:1rem;padding:.7rem 0}
summary{padding:.6rem 0}
button,.btn,.btn2{width:100%}
.sticky{margin:2rem -1rem 0;padding:.6rem 1rem}
iframe.packet{height:60vh;max-height:32rem}
footer a{display:inline-block;padding:.6rem 0}
}
