/* Entry and documents (Builder U2): Add (flight, simulator, email or file), Aircraft, Documents.
   Everything is scoped under .u2 so this sheet can be linked on every page. It speaks the app's own
   language from app.css: paper and ink, 1px rules with a 1.5px ink rule under each section's name,
   pills for choices, teal for what the machine worked out, terracotta for what needs him, olive for
   what is fine. Phone first: one column, a sticky save bar; two columns from 900px, with the
   worked-out numbers standing beside the form like the right-hand page of a logbook. */

.u2{--tint-ok:color-mix(in srgb,var(--between) 13%,var(--paper));--tint-warn:color-mix(in srgb,var(--human) 10%,var(--paper));--tint-machine:color-mix(in srgb,var(--machine) 9%,var(--paper));--r:10px}
.u2 [hidden]{display:none!important}

/* Page head: the title, and one quiet way sideways */
.u2 .addhead{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem 1rem;flex-wrap:wrap;margin:2rem 0 1rem}
.u2 .addhead h1{margin:0}
.u2 .addhead .side{font-size:14px}
.u2 .lead{font-size:16.5px;line-height:1.5;max-width:40rem;margin:.2rem 0 1rem}
.u2 .hint{font-size:13px;line-height:1.45;color:var(--quiet);margin:.55rem 0 0;max-width:42rem}
.u2 .count{margin:-.4rem 0 1rem;color:var(--quiet);font-size:14px}
.u2 .count b.warn{color:var(--human)}

/* Three ways in: a segmented control, the page you are on raised out of the groove */
.u2 .seg{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;margin:0 0 1.4rem;background:var(--soft);border:1px solid var(--rule);border-radius:12px;max-width:34rem}
.u2 .seg a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 .6rem;border-radius:9px;color:var(--quiet);font-size:14.5px;font-weight:700;text-decoration:none;text-align:center;line-height:1.15;transition:background-color .18s var(--ease),color .18s var(--ease)}
.u2 .seg a:hover{color:var(--ink)}
.u2 .seg a[aria-current]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px color-mix(in srgb,var(--ink) 14%,transparent),0 1px 6px color-mix(in srgb,var(--ink) 6%,transparent)}

/* Banners: done (olive) and not yet (terracotta) */
.u2 .done,.u2 .warnbox{border-radius:var(--r);padding:.8rem 1rem;margin:0 0 1.2rem;max-width:44rem}
.u2 .done{background:var(--tint-ok)}
.u2 .done b{color:color-mix(in srgb,var(--between) 70%,var(--ink))}
.u2 .warnbox{border:1px solid var(--human);background:var(--tint-warn)}
.u2 .warnbox b{color:var(--human)}
.u2 .done p,.u2 .warnbox p{margin:.15rem 0}
.u2 .warnbox ul{margin:.3rem 0 0;padding-left:1.1rem}
.u2 .warnbox button{margin-top:.6rem}

/* The form: sections named like the logbook's columns */
.u2 form.entryform{margin:0}
.u2 form.entryform fieldset{border:0;margin:0 0 1.5rem;padding:0;min-width:0}
.u2 form.entryform fieldset > legend{display:block;width:100%;padding:0 0 .4rem;margin:0 0 .15rem;border-bottom:1.5px solid var(--ink);font:700 12.5px/1.3 var(--ui);letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
.u2 .row{display:grid;grid-template-columns:1fr 1fr;gap:0 .9rem}
.u2 .row.r3{grid-template-columns:1.3fr 1fr 1fr}
.u2 .row.r4{grid-template-columns:repeat(4,1fr)}
.u2 .f{min-width:0}
.u2 .f label{margin:.9rem 0 .3rem}
.u2 input,.u2 select,.u2 textarea{min-height:46px}
.u2 input.code{letter-spacing:.04em}
.u2 input.short{max-width:9rem}
.u2 select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--quiet) 50%),linear-gradient(135deg,var(--quiet) 50%,transparent 50%);background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2rem}
.u2 input[type=date],.u2 input[type=time]{font-variant-numeric:tabular-nums}
.u2 output.place{display:block;min-height:1.2em;margin:.3rem .1rem 0;font-size:12.5px;line-height:1.3;color:var(--machine);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u2 details.more{margin:.9rem 0 0}
.u2 details summary{cursor:pointer;color:var(--machine);font-size:14px;list-style:none;display:inline-flex;align-items:center;gap:.35rem;min-height:32px}
.u2 details summary::-webkit-details-marker{display:none}
.u2 details summary::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .18s var(--ease);margin-right:.15rem}
.u2 details[open] > summary::before{transform:rotate(45deg)}

/* Choices as pills; a pair or a trio as one segmented bar */
.u2 fieldset.chips,.u2 form.entryform fieldset.chips{margin:.9rem 0 0;border:0;padding:0}
.u2 form.entryform fieldset.chips > legend,.u2 fieldset.chips > legend{font:400 13px/1.3 var(--ui);letter-spacing:0;text-transform:none;color:var(--quiet);border:0;padding:0;margin:0 0 .35rem}
.u2 .chips > div{display:flex;flex-wrap:wrap;gap:.4rem}
.u2 .chips label{position:relative;margin:0;display:block;color:var(--ink)}
.u2 .chips input{position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;cursor:pointer;min-height:0}
.u2 .chips span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 .95rem;border:1px solid var(--rule);border-radius:999px;font-size:14.5px;line-height:1.1;background:var(--paper);transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease);white-space:nowrap}
.u2 .chips label:hover span{border-color:color-mix(in srgb,var(--ink) 40%,var(--rule))}
.u2 .chips input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:700}
.u2 .chips input:focus-visible + span{outline:2px solid var(--between);outline-offset:2px}
.u2 .chips.seg2 > div,.u2 .chips.seg3 > div{display:grid;gap:0;border:1px solid var(--rule);border-radius:10px;overflow:hidden;max-width:26rem}
.u2 .chips.seg2 > div{grid-template-columns:1fr 1fr}
.u2 .chips.seg3 > div{grid-template-columns:repeat(3,1fr)}
.u2 .chips.seg2 span,.u2 .chips.seg3 span{border:0;border-radius:0;min-height:42px}
.u2 .chips.seg2 label + label span,.u2 .chips.seg3 label + label span{border-left:1px solid var(--rule)}

/* Two columns from 900px: the form, and the numbers it makes */
.u2 .cols{display:block}
@media (min-width:900px){
  .u2 .cols{display:grid;grid-template-columns:minmax(0,1fr) 19.5rem;gap:0 2.6rem;align-items:start}
  .u2 .cols > .sum,.u2 .cols > .scan{position:sticky;top:1.2rem}
}

/* "Logged as": what the entry will carry, worked out by the server as he types */
.u2 .sum{background:var(--soft);border-radius:14px;padding:1rem 1.1rem 1.1rem;margin:0 0 1.4rem}
.u2 .sum h2{margin:0 0 .5rem;padding-bottom:.4rem;border-bottom:1.5px solid var(--ink)}
.u2 .sum .lines{margin:0}
.u2 .sum .lines > div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.42rem 0;border-bottom:1px solid var(--rule)}
.u2 .sum dt{font-size:14px;color:var(--quiet)}
.u2 .sum dd{margin:0;font-weight:700;font-size:16px;white-space:nowrap;text-align:right}
.u2 .sum .big dt{align-self:center;color:var(--ink);font-weight:700}
.u2 .sum .big dd{font-size:32px;letter-spacing:-.03em;line-height:1.05}
.u2 .sum .none{color:var(--quiet);font-weight:400}
.u2 .sum .zero{color:var(--quiet);font-weight:400}
.u2 .sum .clash{margin:.7rem 0 0;padding:.55rem .7rem;border-radius:8px;background:var(--tint-warn);color:var(--human);font-size:13.5px;line-height:1.4}
.u2 .sum .todo{margin:.6rem 0 0;padding-left:1.05rem;color:var(--human);font-size:13.5px;line-height:1.4}
.u2 .sum details.adjust{margin:.8rem 0 0}
.u2 .sum .adjust .row{grid-template-columns:1fr 1fr}
.u2 .sum .adjust .row.r4{grid-template-columns:1fr 1fr}
.u2 .sum .adjust input{background:var(--paper)}

/* Save: always in reach, with the total beside the button */
.u2 .savebar{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;gap:1rem;padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom));margin-top:.4rem;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--rule)}
.u2 .savebar button{min-height:48px;padding:0 1.4rem}
.u2 .savebar .mini{font-size:14px;color:var(--quiet)}
.u2 .savebar .mini b{color:var(--ink);font-size:17px}

/* From an email or a file */
.u2 .importer{max-width:44rem}
.u2 .importer textarea{min-height:12rem;font-size:14px;line-height:1.45;resize:vertical}
.u2 .or{display:flex;align-items:center;gap:.8rem;margin:1rem 0;color:var(--quiet);font-size:13px}
.u2 .or::before,.u2 .or::after{content:"";flex:1;height:1px;background:var(--rule)}
.u2 .filepick{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .8rem;margin:0;padding:.9rem 1rem;border:1.5px dashed var(--rule);border-radius:var(--r);color:var(--ink);font-size:14px}
.u2 .filepick .pk{font-weight:700}
.u2 .filepick input{flex:1 1 100%;min-height:0;border:0;padding:0;background:none;font-size:14px}
.u2 .filepick input::file-selector-button{font:700 14px/1 var(--ui);padding:.65rem 1rem;margin-right:.8rem;border-radius:9px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);cursor:pointer}
.u2 .preview{max-width:48rem}
.u2 .preview h2{margin:0 0 .4rem;padding-bottom:.4rem;border-bottom:1.5px solid var(--ink)}
.u2 .sectors{list-style:none;margin:.6rem 0 1rem;padding:0}
.u2 .sectors li{display:grid;grid-template-columns:4.6rem minmax(7rem,1fr) auto 3.4rem;grid-template-areas:"sx what when blk" "sx cap cap go";align-items:baseline;gap:.1rem .8rem;padding:.55rem 0;border-bottom:1px solid var(--rule);font-size:14.5px}
.u2 .sectors .sx{grid-area:sx;align-self:center;justify-self:start;padding:.15rem .55rem;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.03em;border:1px solid var(--rule);color:var(--quiet)}
.u2 .sectors .new .sx{background:var(--tint-ok);border-color:transparent;color:color-mix(in srgb,var(--between) 70%,var(--ink))}
.u2 .sectors .updated .sx{background:var(--tint-machine);border-color:transparent;color:var(--machine)}
.u2 .sectors .review .sx{background:var(--tint-warn);border-color:transparent;color:var(--human)}
.u2 .sectors .what{grid-area:what}
.u2 .sectors .what b{color:var(--machine)}
.u2 .sectors .when{grid-area:when;color:var(--quiet);font-size:13.5px;white-space:nowrap}
.u2 .sectors .blk{grid-area:blk;text-align:right;font-weight:700}
.u2 .sectors .cap{grid-area:cap;font-size:13px;color:var(--quiet)}
.u2 .sectors a{grid-area:go;text-align:right;font-size:13px}
.u2 .confirm{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1rem}
.u2 .again{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}

/* Aircraft */
.u2 .bycap{margin:0 0 .35rem;font-size:13px;color:var(--quiet)}
.u2 .bycat{margin:0 0 1.4rem;max-width:34rem;border-top:1.5px solid var(--ink)}
.u2 .bycat > div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--rule)}
.u2 .bycat dt{font-size:14.5px}
.u2 .bycat dt small,.u2 .bycat dd small{display:block;font-size:12.5px;color:var(--quiet)}
.u2 .bycat dd{margin:0;text-align:right}
.u2 .bycat dd b{font-size:18px}
.u2 .bycat dd small{display:inline;margin-left:.45rem}
.u2 .bycat .apart dt{color:var(--quiet)}
.u2.fleet-page section h2{display:flex;align-items:baseline;gap:.5rem;padding-bottom:.4rem;border-bottom:1.5px solid var(--ink);margin:2rem 0 0}
.u2 section h2 .n{color:var(--quiet);font-weight:400;letter-spacing:0}
.u2 .planes{list-style:none;margin:0;padding:0}
.u2 .plane{display:grid;grid-template-columns:7.5rem minmax(0,1fr) 7rem 6.5rem;align-items:center;gap:.2rem 1rem;padding:.6rem .35rem;border-bottom:1px solid var(--rule);color:var(--ink);text-decoration:none}
.u2 .plane:hover{background:var(--soft)}
.u2 .plane .reg{color:var(--machine);font-size:15px}
.u2 .plane .ty{display:grid;min-width:0}
.u2 .plane small{font-size:12.5px;color:var(--quiet)}
.u2 .plane .use{display:grid;text-align:right}
.u2 .plane .last{text-align:right;font-size:13.5px;color:var(--quiet)}
.u2 details.fleet > summary{list-style:none;cursor:pointer;display:grid}
.u2 details.fleet > summary::before{display:none}
.u2 details.fleet > summary .reg{color:var(--ink)}
.u2 details.fleet > summary .reg::after{content:"";display:inline-block;width:6px;height:6px;margin-left:.5rem;border-right:1.5px solid var(--machine);border-bottom:1.5px solid var(--machine);transform:rotate(45deg) translateY(-3px);transition:transform .18s var(--ease)}
.u2 details.fleet[open] > summary .reg::after{transform:rotate(-135deg)}
.u2 details.fleet .planes{padding-left:1rem;border-left:1px solid var(--rule);margin-left:.35rem}
.u2 .narrow{max-width:36rem}
@media (max-width:560px){
  .u2 .plane{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"reg use" "ty last"}
  .u2 .plane .reg{grid-area:reg}.u2 .plane .ty{grid-area:ty}.u2 .plane .use{grid-area:use}.u2 .plane .last{grid-area:last;font-size:12.5px}
}

/* Documents: the list, most urgent first */
.u2 .docs{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink);max-width:48rem}
.u2 .doc{display:grid;grid-template-columns:2rem minmax(0,1fr) auto 2rem;align-items:center;gap:.2rem .9rem;padding:.8rem .35rem;border-bottom:1px solid var(--rule);color:var(--ink);text-decoration:none}
.u2 .doc:hover{background:var(--soft)}
.u2 svg.dk{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:var(--quiet)}
.u2 .doc.soon svg.dk,.u2 .doc.expired svg.dk{color:var(--human)}
.u2 .doc .dt{display:grid;min-width:0}
.u2 .doc .dt b{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u2 .doc .dt small,.u2 .doc .ds small{font-size:12.5px;color:var(--quiet);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u2 .doc .ds{display:grid;justify-items:end;gap:.2rem;text-align:right}
.u2 .doc .att{display:flex;justify-content:center;color:var(--quiet);font-size:10.5px;font-weight:700;letter-spacing:.04em}
.u2 .doc .att svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.u2 .badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap;border:1px solid transparent}
.u2 .badge.valid{background:var(--tint-ok);color:color-mix(in srgb,var(--between) 72%,var(--ink))}
.u2 .badge.soon{background:var(--tint-warn);color:var(--human);border-color:color-mix(in srgb,var(--human) 45%,transparent)}
.u2 .badge.expired{background:var(--human);color:#fff}
.u2 .badge.none{color:var(--quiet);border-color:var(--rule)}
.u2 .welcome{max-width:40rem;padding:1.4rem 0;border-top:1.5px solid var(--ink)}
.u2 .starts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.u2 .addhead .button{padding:.62rem 1.1rem}
@media (max-width:560px){.u2 .doc{grid-template-columns:1.7rem minmax(0,1fr) auto;column-gap:.7rem}.u2 .doc .att{display:none}.u2 svg.dk{width:22px;height:22px}}

/* One document */
.u2 .dochead{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;margin:2rem 0 .8rem}
.u2 .dochead svg.dk{width:44px;height:44px;stroke-width:1.2;margin-top:.3rem}
.u2 .dochead.soon svg.dk,.u2 .dochead.expired svg.dk{color:var(--human)}
.u2 .dochead .kind{margin:0;font-size:13px;color:var(--quiet)}
.u2 .dochead h1{margin:.1rem 0 .45rem}
.u2 .dochead p{margin:0;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.u2 .dochead .until{font-size:14px;color:var(--quiet)}
.u2 .actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 1.4rem}
.u2 .docbody{display:grid;gap:1.4rem 2.4rem;align-items:start}
@media (min-width:760px){.u2 .docbody{grid-template-columns:minmax(0,26rem) minmax(0,1fr)}}
.u2 .scan .photo{display:block}
.u2 .scan img{display:block;width:100%;height:auto;border-radius:var(--r);border:1px solid var(--rule);box-shadow:0 2px 10px color-mix(in srgb,var(--ink) 10%,transparent)}
.u2 .scan .pdf,.u2 .scan .noscan{display:flex;align-items:center;gap:.8rem;padding:1rem;border:1px solid var(--rule);border-radius:var(--r);color:var(--ink);text-decoration:none}
.u2 .scan .pdf span{display:grid}
.u2 .scan .pdf small{color:var(--quiet);font-size:12.5px}
.u2 .scan .noscan{justify-content:center;min-height:6rem;border-style:dashed;color:var(--machine)}
.u2 .facts{margin:0;border-top:1.5px solid var(--ink)}
.u2 .facts > div{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--rule)}
.u2 .facts dt{color:var(--quiet);font-size:14px}
.u2 .facts dd{margin:0;overflow-wrap:anywhere}
.u2 details.danger{margin:2.2rem 0 0;border-top:1px solid var(--rule);padding-top:.8rem}
.u2 details.danger summary{color:var(--human)}
.u2 .back{margin-top:1.4rem;font-size:14px}

/* The document form: the scan beside the facts, the photo checked before it goes */
.u2 .docform fieldset.scan{margin:0 0 1.5rem}
.u2 .picker{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.9rem 0 0}
.u2 .picker .button{position:relative;display:flex;align-items:center;justify-content:center;min-height:52px;text-align:center;overflow:hidden}
.u2 .picker input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0;width:100%;height:100%}
.u2 .picker .button:has(input:focus-visible){outline:2px solid var(--between);outline-offset:2px}
.u2 .shot{display:grid;grid-template-columns:5.5rem 1fr;gap:.9rem;align-items:start;margin:.9rem 0 0;padding:.8rem;border-radius:var(--r);background:var(--soft)}
.u2 .shot img{width:100%;height:auto;border-radius:6px;border:1px solid var(--rule)}
.u2 .shot .verdict{margin:0;font-weight:700;font-size:14.5px}
.u2 .shot[data-state=ok]{background:var(--tint-ok)}
.u2 .shot[data-state=ok] .verdict{color:color-mix(in srgb,var(--between) 72%,var(--ink))}
.u2 .shot[data-state=warn],.u2 .shot[data-state=bad]{background:var(--tint-warn)}
.u2 .shot[data-state=warn] .verdict,.u2 .shot[data-state=bad] .verdict{color:var(--human)}
.u2 .shot .advice{margin:.35rem 0 0;padding-left:1.05rem;font-size:13.5px;line-height:1.45}
.u2 .shot .still{margin:.35rem 0 0;font-size:13px;color:var(--quiet)}
.u2 .shot .still:empty{display:none}
.u2 .docform fieldset.kinds{margin:.4rem 0 1.6rem}
.u2 .was{display:block;margin:.3rem .1rem 0;font-size:12.5px;color:var(--quiet)}

/* Phone */
@media (max-width:560px){
  .u2 .row.r3{grid-template-columns:1fr 1fr}
  .u2 .row.r3 .f:first-child{grid-column:1 / -1}
  .u2 .row.r4{grid-template-columns:1fr 1fr}
  .u2 .seg a{font-size:13.5px}
  .u2 .chips span{padding:0 .8rem;font-size:14px}
  .u2 .sectors li{grid-template-columns:4.2rem minmax(0,1fr) 3rem;grid-template-areas:"sx what blk" "sx when when" "sx cap go"}
}
@media (prefers-reduced-motion:reduce){.u2 *{transition:none!important}}
