/* resultUploader — page-specific styles; theme + chrome from /index.css */
.uploader{max-width:1080px;position:relative}
.upgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;align-items:stretch}
@media(max-width:900px){
  .upgrid{grid-template-columns:1fr}
  #payload{flex:none;height:320px}
}

/* left column stretches with the field stack so payload + notes fill the
   same height as the pickers; the textareas themselves never resize */
.up-main{display:flex;flex-direction:column;min-width:0}
#payload{flex:1 1 auto;min-height:200px;height:auto}
#notes{flex:none;height:96px;min-height:96px}

textarea{
  width:100%;font-family:var(--font-mono);font-size:12.5px;line-height:1.55;
  color:var(--ink);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:16px 18px;resize:none;
  box-shadow:var(--shadow-sm);tab-size:2;
}
textarea:focus{outline:2px solid var(--accent-2);outline-offset:-1px;border-color:var(--accent-2)}

.up-side{display:grid;gap:8px;align-content:start}
.up-side input[type=text],.up-side input[type=date],.up-side input[type=number],.up-side select{
  font:inherit;font-size:14.5px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;width:100%;
}
.up-side input:focus,.up-side select:focus{outline:2px solid var(--accent-2);outline-offset:-1px}
.range-label{margin-top:10px}
.req{color:var(--accent);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
.opt{color:var(--ink-mute);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}

.cfg{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px 16px;margin-top:12px}
.cfg legend{font-size:12px;font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:var(--ink-mute);padding:0 8px}
.cfg .range-label{margin-top:10px}
.cfg input,.cfg select{font:inherit;font-size:14.5px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;width:100%}

/* validation halos: red persists while invalid; green flashes then fades */
.halo-bad{border-color:var(--c-danger)!important;
  box-shadow:0 0 0 3px var(--a-danger-halo),0 0 18px 6px var(--a-danger-glow)!important}
.halo-ok{border-color:var(--ok)!important;
  box-shadow:0 0 0 3px rgba(144,238,144,.5),0 0 16px 5px rgba(144,238,144,.40)!important}
.halo-fade{transition:box-shadow 500ms ease,border-color 500ms ease;box-shadow:none!important;border-color:var(--line)!important}

.checks{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:10px}
.checks li{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:16px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:11px 16px;font-size:14.5px;color:var(--ink-soft)}
.checks li > span,.checks li > b{position:relative;z-index:1}
.checks .bar{position:absolute;left:0;top:0;bottom:0;width:0;z-index:0;
  background:rgba(144,238,144,.5)}
.checks li.failed .bar{background:var(--accent-soft)}
.filerow{display:flex;align-items:center;gap:14px;margin-top:12px}
.opts-btn{margin-top:18px;width:100%;justify-content:center;color:var(--ink-soft)}
.checkline{display:flex;gap:10px;align-items:center;font-size:14.5px;color:var(--ink-soft);margin-top:12px}
.checkline input{width:auto;margin:0}

/* optional-details slide-in: covers the input area, auto-grid fields,
   save keeps the values in the form, cancel clears them */
.opts-panel{position:absolute;left:0;right:0;top:0;bottom:0;z-index:70;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:28px 30px;
  opacity:0;visibility:hidden;transform:translateX(14px);
  transition:opacity .25s ease,transform .25s var(--ease),visibility .25s}
.opts-panel.open{opacity:1;visibility:visible;transform:none}
.opts-panel h3{color:var(--ink)}
.opts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:10px 24px;margin-top:18px}
.optcell{display:grid;gap:8px;align-content:start}
.optcell .range-label{margin-top:4px}
.panel-actions{display:flex;justify-content:flex-end;gap:14px;margin-top:30px;
  padding-top:20px;border-top:1px solid var(--line)}
@media(max-width:760px){
  .opts-panel{position:fixed;inset:0;border:0;border-radius:0;padding:22px 20px;
    overflow:auto;transform:translateY(14px)}
  .opts-panel.open{transform:none}
  .panel-actions{position:sticky;bottom:0;background:var(--bg);
    padding-bottom:6px;box-shadow:0 -8px 16px rgba(var(--shadow-tint),.12)}
}
.submitrow{display:flex;align-items:center;gap:18px;margin-top:26px;flex-wrap:wrap}
.hint{font-size:13.5px;color:var(--ink-mute)}
button:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}
