/* Ylookup design system ("Ylookup calm"), from ylookupv3/.docs/design-system.md §2-§4, §7, §9. */
@font-face{font-family:"Ambit";src:url("/fonts/ambit-regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Ambit";src:url("/fonts/ambit-semibold.otf") format("opentype");font-weight:600;font-style:normal;font-display:swap}
:root{
  --bg-default:#f7f6f2; --bg-paper:#ffffff; --nav-surface:#efede7; --surface-sunken:#f3f1ec;
  --divider:#e4e1da; --frame-border:#d6d2c9; --border-hover:#bdb7ab; --border-strong:#92a993;
  --text-primary:#17201c; --text-secondary:#5f655f; --text-muted:#8a8f88; --text-disabled:#9a9e97;
  --accent:#004230; --fill:#004230; --fill-hover:#0b5640; --fill-text:#ffffff;
  --control-hover:#efede7; --selected:#edf1eb; --icon-tile:#edf1eb; --badge-sage:#dce5d8;
  --chip-bg:#f2f0eb; --chip-text:#5f655f; --track:#f0eee8;
  --warn:#7a5a22; --danger:#b3261e; --success:#004230; --live:#2f7a57;
  --st-pass:#2f7a57; --st-warn:#c8650a; --st-error:#b3261e;
  --card-shadow:0 1px 2px rgba(23,32,28,0.04),0 8px 24px -12px rgba(23,32,28,0.10);
  --r-control:6px; --r-tile:8px; --r-container:10px; --r-pill:999px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Ambit",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text-primary);background:var(--bg-default);line-height:1.4;font-size:13.5px;font-weight:400;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-weight:600}
b,strong{font-weight:600}
::selection{background:#dce5d8;color:var(--text-primary)}
input{caret-color:var(--accent)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
.icon-svg{width:16px;height:16px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.appbar{background:var(--nav-surface);border-bottom:1px solid var(--divider);padding:0 var(--sp-5);height:56px;display:flex;align-items:center;gap:var(--sp-3)}
.appbar .mark{width:24px;height:18px;color:var(--accent);flex-shrink:0}
.appbar .title{font-size:15px;font-weight:600;color:var(--text-primary)}

.wrap{max-width:1080px;margin:0 auto;padding:var(--sp-6) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5)}
.stack{display:flex;flex-direction:column;gap:var(--sp-4)}
.stack.hidden{display:none!important}
.page-nav{margin-top:0;justify-content:space-between}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4)}
.panel-head h2{margin-bottom:0}
.summary{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums}
.summary .item{display:inline-flex;align-items:center;gap:6px;color:var(--text-primary)}
.summary .st{width:16px;height:16px}
.st{width:18px;height:18px;flex-shrink:0;display:block}
.st-cell{display:flex;align-items:center;width:18px;flex-shrink:0}
.progress-head{display:flex;align-items:baseline;gap:var(--sp-3)}
.progress-pct{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}

.stepper{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-1)}
.step{display:flex;align-items:center;gap:var(--sp-2);flex:1}
.step .num{width:24px;height:24px;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border:1px solid var(--frame-border);color:var(--text-secondary);background:var(--bg-paper);flex-shrink:0}
.step .lbl{font-size:13.5px;color:var(--text-secondary)}
.step.active .num{border-color:var(--accent);color:var(--accent)}
.step.active .lbl{color:var(--accent);font-weight:600}
.step.done .num{background:var(--icon-tile);border-color:var(--icon-tile);color:var(--accent)}
.step.done .lbl{color:var(--text-primary)}
.step.done .num{font-size:0}
.step.done .num::after{content:"";width:12px;height:12px;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat}
.step .connector{flex:1;height:1px;background:var(--divider);margin:0 var(--sp-2)}

.panel{background:var(--bg-paper);border:1px solid var(--divider);border-radius:var(--r-container);box-shadow:var(--card-shadow);padding:var(--sp-5)}
.panel > :last-child{margin-bottom:0}
.panel h2{font-size:18px;font-weight:600;line-height:1.3;color:var(--text-primary);margin-bottom:var(--sp-2)}
.panel .lead{color:var(--text-secondary);margin-bottom:var(--sp-4)}
.eyebrow{font-size:12.5px;font-weight:600;line-height:1.3;color:var(--text-secondary);margin-bottom:var(--sp-1)}

.drop{border:1px dashed var(--text-muted);border-radius:var(--r-container);padding:var(--sp-6) var(--sp-5);text-align:left;cursor:pointer;background:var(--bg-paper);display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--sp-3);transition:border-color 140ms ease-out,background 140ms ease-out}
.drop:hover,.drop.over{border-color:var(--accent);background:var(--selected)}
.drop .icon{color:var(--accent);display:flex}
.drop .icon .icon-svg{width:24px;height:24px}
.drop h3{font-size:13.5px;font-weight:600;color:var(--text-primary)}
.drop p{color:var(--text-secondary);font-size:12px}
.drop .browse{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.drop.loading{cursor:wait;border-style:solid;border-color:var(--frame-border)}
.spinner{width:18px;height:18px;border:2px solid var(--track);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation:none}}

.btn{font-family:inherit;font-weight:400;font-size:13.5px;height:34px;padding:0 var(--sp-4);border-radius:var(--r-control);border:1px solid var(--frame-border);background:var(--bg-paper);color:var(--text-primary);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2);transition:background 120ms ease-out,border-color 120ms ease-out;white-space:nowrap}
.btn:hover:not(:disabled){border-color:var(--border-hover)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-primary{background:var(--fill);border-color:var(--fill);color:var(--fill-text)}
.btn-primary:hover:not(:disabled){background:var(--fill-hover);border-color:var(--fill-hover)}
.btn-secondary,.btn-outline{background:var(--bg-paper);color:var(--text-primary);border-color:var(--frame-border)}
.btn-ghost{background:transparent;border-color:transparent;color:var(--accent);height:28px;padding:0 var(--sp-2)}
.btn-ghost:hover:not(:disabled){background:var(--control-hover);border-color:transparent}
.btn-sm{height:28px;padding:0 var(--sp-3);font-size:13px}
.btn-row{display:flex;gap:var(--sp-2);margin-top:var(--sp-4);flex-wrap:wrap;align-items:center}

.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4) var(--sp-5)}
.field{display:flex;flex-direction:column;gap:var(--sp-1)}
.field label{font-weight:600;font-size:13.5px;color:var(--text-primary)}
.field .hint{font-size:12px;color:var(--text-secondary);margin-bottom:var(--sp-1)}
.field input[type=text],.field input[type=date],.field input[type=number],.field input[type=password]{height:34px;padding:0 var(--sp-3);border:1px solid var(--frame-border)!important;border-radius:var(--r-control)!important;font-size:13.5px!important;font-family:inherit;background:var(--bg-paper);color:var(--text-primary);transition:border-color 120ms ease-out}
.field input:hover:not(:focus){border-color:var(--border-hover)!important}
.field input:focus{outline:none;border:2px solid var(--border-strong)!important;padding:0 calc(var(--sp-3) - 1px)}
.field input::placeholder{color:#6c716b}

.results{border:1px solid var(--divider);border-radius:var(--r-container);overflow:hidden;background:var(--bg-paper)}
.rescheck{border-bottom:1px solid var(--divider)}
.rescheck:last-child{border-bottom:none}
.rescheck .hd{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);min-height:44px}
.rescheck .hd.clickable{cursor:pointer;transition:background 120ms ease-out}
.rescheck .hd.clickable:hover{background:var(--control-hover)}
.rescheck .nm{font-weight:600;color:var(--text-primary)}
.rescheck .dt{color:var(--text-secondary);font-size:13px;margin-left:auto;text-align:right}
.rescheck .caret{color:var(--text-secondary);transition:transform 140ms ease-out;flex-shrink:0;display:flex}
.rescheck.open .caret{transform:rotate(90deg)}
.editarea{padding:0 var(--sp-4) var(--sp-4);display:none}
.rescheck.open .editarea{display:block}

.editscroll{max-height:340px;overflow:auto;border:1px solid var(--divider);border-radius:var(--r-tile)}
table.grid{border-collapse:collapse;width:100%;font-size:13px}
table.grid th{background:var(--surface-sunken);color:var(--text-secondary);text-align:left;padding:var(--sp-2) var(--sp-3);font-weight:600;font-size:12px;position:sticky;top:0;white-space:nowrap;border-bottom:1px solid var(--divider)}
table.grid td{padding:6px var(--sp-3);border-bottom:1px solid var(--divider);white-space:nowrap}
table.grid tr:last-child td{border-bottom:none}
table.grid tr:hover td{background:var(--control-hover)}
table.grid td.ctx{color:var(--text-secondary)}

.note{position:relative;display:block;background:var(--surface-sunken);border:1px solid var(--divider);border-radius:var(--r-container);padding:var(--sp-3) var(--sp-4) var(--sp-3) 40px;color:var(--text-primary);margin:var(--sp-3) 0;line-height:1.45;overflow-wrap:anywhere}
.note::before{content:"";position:absolute;left:var(--sp-4);top:14px;width:16px;height:16px;background:var(--text-secondary);-webkit-mask:var(--glyph) center/16px no-repeat;mask:var(--glyph) center/16px no-repeat;--glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E")}
.note.ok::before{background:var(--success);--glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E")}
.note.warn::before{background:var(--warn);--glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E")}
.note.err::before{background:var(--danger);--glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m15 9-6 6M9 9l6 6'/%3E%3C/svg%3E")}

.hidden{display:none!important}
.fm{font-size:12px;color:var(--text-secondary)}
.summary-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:var(--sp-2)}
.summary-table th{text-align:left;padding:6px var(--sp-3);background:var(--surface-sunken);color:var(--text-secondary);font-size:12px;font-weight:600;border-bottom:1px solid var(--divider)}
.summary-table td{padding:6px var(--sp-3);border-bottom:1px solid var(--divider);font-variant-numeric:tabular-nums}

.dup-choice{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--divider);font-weight:600;cursor:pointer}
.dup-choice input{margin:0}
.step.done{cursor:pointer}
.step.done:hover .lbl{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.link-btn{font:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.conn-line{color:var(--text-secondary)}
.progress-track{height:6px;background:var(--track);border-radius:var(--r-pill);overflow:hidden;margin:var(--sp-3) 0}
.progress-fill{height:100%;background:var(--fill);border-radius:var(--r-pill);transition:width 200ms ease-out}
label input[type=checkbox]{accent-color:var(--fill);vertical-align:middle;margin:0 4px}
.rescheck .hd[role=button]{cursor:pointer;transition:background 120ms ease-out}
.rescheck .hd[role=button]:hover{background:var(--control-hover)}
.rescheck .hd[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rescheck .nm{min-width:0;overflow-wrap:break-word}
.rescheck .rows{color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.rescheck .dt{max-width:60%}
.spinner.sm{width:16px;height:16px;border-width:2px}
.filelist{margin-top:var(--sp-4)}
.problems{margin:0 0 0 20px;font-size:13px;line-height:1.5}
.problems li+li{margin-top:2px}
table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums}
table.grid td.why{white-space:normal;color:var(--text-secondary);min-width:260px}
table.grid td.why.skip{color:var(--warn)}
table.grid td.ref{font-weight:600}
.more{padding:var(--sp-2) var(--sp-3);font-size:12px;color:var(--text-secondary);border-top:1px solid var(--divider)}
.checking{display:flex;align-items:center;gap:var(--sp-3);color:var(--text-primary);padding:var(--sp-3) 0}
.field.wide{max-width:560px}
.field input[type=text].wide{width:100%}
.load-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--divider)}
.load-row .fm{max-width:520px}
.rescheck .dt .lc{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:2px;font-size:12px;color:var(--text-secondary)}
.rescheck .dt .lc.off{color:var(--warn)}
.rescheck .dt .lc .st{width:14px;height:14px}
.rescheck .caret:empty{width:16px}
.detail-h{font-size:12.5px;font-weight:600;color:var(--text-secondary);margin:var(--sp-2) 0 var(--sp-2)}
.editscroll + .detail-h{margin-top:var(--sp-4)}
.detail-note{margin-top:var(--sp-3)}
.panel h2{overflow-wrap:anywhere}
table.grid td.why{max-width:420px}
.summary .item .st{width:16px;height:16px}
#endPanel .summary{color:var(--text-primary)}
.resume-err{padding:0 var(--sp-4) var(--sp-1)}
.resume-err .note{margin-top:0}
#resumeOut .hd .btn{flex-shrink:0}
#resumeOut .hd-btns{display:flex;gap:var(--sp-2);flex-shrink:0}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}.step .lbl{display:none}.wrap{padding:var(--sp-4)}}
@media(max-width:760px){.rescheck .hd{flex-wrap:wrap}.rescheck .caret{margin-left:auto}.rescheck .dt{order:3;flex-basis:100%;max-width:none;margin-left:30px;text-align:left}.rescheck .dt .lc{justify-content:flex-start}#resumeOut .hd > .btn,#resumeOut .hd-btns{order:4;margin-left:30px}}

/* The hosted app: the bar, sign-in, the audit log and the admin page. */
.appbar .nav{margin-left:auto;display:flex;gap:var(--sp-4);align-items:center;font-size:13.5px}
.appbar .nav a{color:var(--text-secondary);text-decoration:none}
.appbar .nav a:hover{color:var(--text-primary);text-decoration:underline}
.appbar .nav a.on{color:var(--text-primary);font-weight:600}
.appbar .who{color:var(--text-muted)}
.field input[type=email],.field select{height:34px;padding:0 var(--sp-3);border:1px solid var(--frame-border);border-radius:var(--r-control);font-size:13.5px;font-family:inherit;background:var(--bg-paper);color:var(--text-primary)}
.narrow{max-width:440px;width:100%;margin:0 auto}
.table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.table th,.table td{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--divider);vertical-align:top}
.table th{font-weight:600;color:var(--text-secondary);white-space:nowrap}
.table tr.click{cursor:pointer}
.table tr.click:hover td{background:var(--control-hover)}
.table td.num,.table th.num{text-align:right}
.filters{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end;margin-bottom:var(--sp-4)}
.filters .field{min-width:150px}
.email-text{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;white-space:pre-wrap;background:var(--surface-sunken);border-radius:var(--r-tile);padding:var(--sp-4);max-height:480px;overflow:auto}
