@font-face{font-family:Outfit;src:url('/static/fonts/Outfit-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Outfit;src:url('/static/fonts/Outfit-Medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Outfit;src:url('/static/fonts/Outfit-SemiBold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Outfit;src:url('/static/fonts/Outfit-Bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Outfit;src:url('/static/fonts/Outfit-ExtraBold.woff2') format('woff2');font-style:normal;font-weight:800;font-display:swap}
:root{font-family:Outfit,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#1e3037;background:#f4f7f5;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
.shell{max-width:1040px;margin:0 auto;padding:42px 24px 72px}
.masthead{margin-bottom:30px}
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.13em;color:#398069}
h1{font-size:clamp(2.2rem,6vw,4rem);letter-spacing:-.055em;margin:8px 0 6px;line-height:1.05}
.masthead p{font-size:1.08rem;color:#53666a;margin:0}
.card{background:#fff;border:1px solid #dbe7df;border-radius:20px;padding:30px;margin:22px 0;box-shadow:0 10px 36px rgba(28,64,48,.055)}
.sectionHead{display:flex;gap:15px;align-items:flex-start;margin:0 0 22px}
.sectionHead h2{margin:0 0 4px;font-size:1.4rem;letter-spacing:-.025em}
.sectionHead p,.reversePanel p{margin:0;color:#617477}
.step{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:11px;background:#e5f3eb;color:#176846;font-size:.82rem;font-weight:800}
.fields{display:grid;gap:16px}
.projectFields{grid-template-columns:1fr 1fr}
label{display:block;font-size:.86rem;font-weight:700;color:#30484d}
input,textarea,select{font:inherit;color:#1e3037}
label input:not([type=file]),textarea,select{display:block;width:100%;border:1px solid #bfcfc8;border-radius:10px;padding:11px 13px;margin-top:6px;background:#fff}
textarea{resize:vertical;min-height:130px;line-height:1.5}
input:focus,textarea:focus,select:focus,button:focus-visible{outline:3px solid #9ed9bc;outline-offset:2px}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
button{font:inherit;font-weight:750;border:0;border-radius:10px;padding:11px 17px;cursor:pointer}
button:disabled{opacity:.55;cursor:wait}
.primary{background:#15704a;color:white}
.primary:hover:not(:disabled){background:#0e5c3c}
.secondary{background:#e9f2ed;color:#19543b}
.secondary:hover:not(:disabled){background:#d7e9de}
.textButton{background:transparent;color:#176846;padding:7px 9px}
.small{padding:8px 12px;font-size:.88rem}
.hint{color:#6a7c7e;font-size:.83rem;line-height:1.5}
.hint code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#f1f6f2;padding:2px 4px;border-radius:4px}
.recentProject{margin:15px 0 0;padding:10px 13px;background:#f1f8f3;border-radius:9px;color:#276648;font-size:.88rem;font-weight:700}
.message{padding:13px 16px;border-radius:10px;background:#e5f3eb;color:#155438;font-weight:600;margin-bottom:16px}
.message.error{background:#fff0ec;color:#a42f19}
.projectBar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e3ebe6;padding-bottom:24px;margin-bottom:28px}
.projectBar strong{display:block;font-size:1.32rem;margin-top:4px}
.projectBar small{color:#607777}
.fileDropZone{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;background:#f5f9f6;border:2px dashed #91b8a1;border-radius:12px;padding:26px 15px;margin-top:16px;cursor:pointer;text-align:center}
.fileDropZone span{font-size:.83rem;font-weight:400;color:#617477}
.fileDropZone:hover,.fileDropZone.dragOver{background:#e5f3eb;border-color:#15704a}
.fileDropZone:focus-visible{outline:3px solid #9ed9bc;outline-offset:2px}
.visuallyHidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fileList{list-style:none;padding:0;margin:10px 0 16px;display:grid;gap:6px}
.fileList li{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e1ebe4;border-radius:8px;padding:7px 10px;font-size:.84rem;min-width:0}
.fileList li span{overflow-wrap:anywhere;min-width:0}
.fileList li.emptyFileList{border:0;color:#6a7c7e;padding-left:0}
.fileList button{flex:none;padding:5px 8px;font-size:.79rem;background:#e9f2ed;color:#19543b}
.reviewPanel,.resultPanel,.reversePanel{border-top:1px solid #e3ebe6;margin-top:34px;padding-top:30px}
.notice{border-left:4px solid #d6a749;background:#fff9e9;padding:12px 14px;color:#665229;border-radius:4px 9px 9px 4px;font-size:.89rem;line-height:1.5}
h3{font-size:1rem;margin:25px 0 12px}
.count{font-size:.78rem;color:#607777;font-weight:500}
.previews{display:grid;gap:10px;margin-top:18px}
.preview{border:1px solid #e1ebe4;border-radius:10px;overflow:hidden}
.preview summary{cursor:pointer;padding:11px 13px;font-weight:700;background:#f7faf8}
.preview pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;margin:0;max-height:250px;overflow:auto;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}
.candidateList{display:grid;gap:8px;max-height:440px;overflow:auto}
.candidate{display:grid;grid-template-columns:auto 92px minmax(0,1fr);gap:10px;align-items:start;border:1px solid #e1ebe4;border-radius:10px;padding:10px 12px}
.candidate input{margin-top:4px}
.kind{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#30745a;font-weight:800}
.candidateValue{font-weight:700;overflow-wrap:anywhere}
.candidateSources{font-size:.77rem;color:#6a7c7e;margin-top:3px;overflow-wrap:anywhere}
.known{font-size:.74rem;background:#e7f3ea;border-radius:5px;color:#24704a;padding:2px 5px;margin-left:7px}
.manualValues{display:grid;gap:8px}
.manualRow{display:grid;grid-template-columns:155px 1fr auto;gap:8px;align-items:end}
.manualRow select,.manualRow input{margin:0!important;height:43px}
.manualRow button{height:43px}
.empty{color:#6a7c7e;font-style:italic}
footer{text-align:center;color:#80918b;font-size:.8rem;margin-top:34px}
@media(max-width:640px){.shell{padding:24px 14px 50px}.card{padding:21px}.projectFields,.manualRow{grid-template-columns:1fr}.candidate{grid-template-columns:auto 70px minmax(0,1fr)}.manualRow button{justify-self:start}}
body:not([data-mode="local"]) [data-only="local"],body:not([data-mode="online"]) [data-only="online"]{display:none}
.rememberLabel{display:flex;gap:8px;align-items:center;margin:10px 0}
.rememberLabel input{width:auto!important;margin:0!important}
#knownPanel{margin:14px 0}
[hidden]{display:none!important}
