:root{--green:#2e9e44;--green-d:#1f7a33;--teal:#12606b;--bg:#f4f7f6;--txt:#20302b;--muted:#68766f;--line:#dde5e1;--red:#b3261e;}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--txt);line-height:1.5}
.wrap{max-width:860px;margin:0 auto;padding:0 16px}
.topbar{background:#fff;border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{font-size:24px;font-weight:800;color:var(--teal);text-decoration:none}
.brand span{color:var(--green)}
main.wrap{padding:32px 16px 48px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px;margin:0 auto}
.card.narrow{max-width:480px}
.card.center{text-align:center}
h1{font-size:22px;margin:0 0 8px}
h2{font-size:17px;margin:24px 0 10px}
.muted{color:var(--muted);font-size:14px}
label{display:block;margin:14px 0 0;font-weight:600;font-size:14px}
label input[type=text],label input[type=email],label input[type=tel],label input[type=password]{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;font-weight:400}
label.check{display:flex;gap:8px;align-items:flex-start;font-weight:400;margin-top:12px}
label.check input{margin-top:3px}
.hint{font-weight:400;color:var(--muted);font-size:12px}
.btn{display:inline-block;margin-top:20px;background:var(--green);color:#fff;border:0;border-radius:8px;padding:12px 22px;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--green-d)}
.linklike{background:none;border:0;color:var(--teal);cursor:pointer;text-decoration:underline;font-size:14px;padding:0}
.alert{background:#fdeceb;border:1px solid #f5c6c3;border-radius:8px;padding:10px 14px;margin:14px 0;color:var(--red)}
.alert p{margin:4px 0}
.ts{margin-top:16px}
.inline{display:inline}
.foot{padding:24px 16px;color:var(--muted);font-size:13px}
.foot a{color:var(--teal)}
.dash-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.state-badge{background:#eef6f0;border:1px solid var(--line);color:var(--green-d);border-radius:999px;padding:8px 16px;font-weight:700;font-size:14px;white-space:nowrap}
.state-rejected,.state-abandoned{color:var(--red);background:#fdeceb}
.progress{height:10px;background:#e7eeea;border-radius:999px;margin-top:18px;overflow:hidden}
.progress .bar{height:100%;background:var(--green);border-radius:999px;transition:width .3s}
ul.sections{list-style:none;padding:0;margin:0}
ul.sections li{display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid var(--line);font-size:15px}
ul.sections li:last-child{border-bottom:0}
ul.sections .mark{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;background:#e7eeea;color:var(--muted)}
ul.sections li.done .mark{background:var(--green);color:#fff}
ul.sections .tag{margin-left:auto;font-size:12px;color:var(--muted)}
ul.sections li.done .tag{color:var(--green-d);font-weight:700}
table.hist{width:100%;border-collapse:collapse;font-size:14px}
table.hist th,table.hist td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}
table.hist th{color:var(--muted);font-weight:600}
.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:8px}
.row.spread{justify-content:space-between;align-items:center}
.row .grow{flex:1;min-width:180px}
.btn.secondary{background:#fff;color:var(--green-d);border:1px solid var(--green)}
.btn.secondary:hover{background:#eef6f0}
.notice{background:#eef6f0;border:1px solid #cfe5d6;border-radius:8px;padding:10px 14px;margin:14px 0;color:var(--green-d)}
.notice p{margin:4px 0}
.okline{color:var(--green-d);font-size:14px}
.warn{color:var(--red);font-weight:700}
.sect-link{color:var(--txt);text-decoration:none}
.sect-link:hover{color:var(--teal);text-decoration:underline}
.boxed{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:14px 0}
.upl{margin:8px 0}
fieldset{border:1px solid var(--line);border-radius:10px;margin:14px 0;padding:10px 16px}
legend{font-weight:600;font-size:14px;padding:0 6px}
select{display:block;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;background:#fff}
input[type=file]{font-size:14px}
code{background:#f0f4f2;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:12px;word-break:break-all}
.docrow{border-bottom:1px solid var(--line);padding:6px 0 14px}
.rowtd form{margin-right:8px}
ol.hint{color:var(--muted);font-size:13px}
.alertlist{color:var(--red);font-size:14px}
a.btn{display:inline-block;text-decoration:none;text-align:center}

/* --- parcursul ghidat (stepper) --- */
.next-step { display:flex; align-items:center; justify-content:space-between; gap:16px; background:#eef7f0; border:1px solid #cfe7d6; border-radius:10px; padding:16px 18px; margin:14px 0 22px; }
.next-step.next-fix { background:#fdf3e7; border-color:#f2d9b5; }
.next-step.next-done { background:#eef4fb; border-color:#cadcf0; }
.next-step-txt { display:flex; flex-direction:column; gap:3px; }
.next-kicker { font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color:#1d7a3f; font-weight:700; }
.next-fix .next-kicker { color:#b06510; }
.next-done .next-kicker { color:#2c5f96; }
.btn-big { font-size:1.05rem; padding:12px 22px; white-space:nowrap; }
ol.steps { list-style:none; margin:0; padding:0; }
.step { display:flex; align-items:flex-start; gap:14px; padding:13px 10px; border-bottom:1px solid #eee; border-radius:8px; }
.step-no { flex:0 0 30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; background:#eee; color:#666; margin-top:2px; }
.step.done .step-no { background:#1d7a3f; color:#fff; }
.step.current { background:#f4faf5; box-shadow:inset 3px 0 0 #1d7a3f; }
.step.current .step-no { background:#fff; color:#1d7a3f; border:2px solid #1d7a3f; }
.step.fix { background:#fffaf3; box-shadow:inset 3px 0 0 #d98a1f; }
.step-body { display:flex; flex-direction:column; gap:2px; flex:1; }
.step-body .sect-link { font-weight:600; }
.step.done .sect-link { color:#3f7a52; }
.step-desc { color:#666; font-size:.92rem; }
.step-need { color:#8a6d3b; font-size:.85rem; }
.step-side { margin-top:3px; }
.tag-done { background:#e3f2e7; color:#1d7a3f; }
.tag-cur { background:#1d7a3f; color:#fff; }
.tag-fix { background:#fbe9d0; color:#9c5a00; }
@media (max-width:640px){ .next-step{flex-direction:column;align-items:stretch;text-align:left} .btn-big{text-align:center} }

/* CUI ancorat pe dosar */
.cui-locked { display:flex; align-items:baseline; gap:10px; background:#f4faf5; border:1px solid #d8ecdc; border-radius:8px; padding:10px 14px; margin-bottom:14px; flex-wrap:wrap; }
.cui-locked-lbl { color:#666; font-size:.9rem; }
.cui-locked strong { font-size:1.1rem; letter-spacing:.03em; }

/* descrieri sub pasii dosarului (pe scheletul original ul.sections) */
ul.sections .sect-main { display:flex; flex-direction:column; gap:2px; flex:1; }
ul.sections .sect-desc { font-size:.9rem; }

/* completare CNP inline la beneficiari reali */
.cnp-inline { width:140px; padding:5px 8px; margin-right:6px; }
.btn-sm { padding:5px 12px; font-size:.88rem; }

/* cont din extras + pliul de verificare tehnica */
.quick-add { background:#f4faf5; border:1px solid #d8ecdc; border-radius:8px; padding:12px 16px; margin-bottom:14px; }
.quick-add h3 { margin:0 0 4px; }
details.tech-verify { margin:8px 0 12px; }
details.tech-verify summary { cursor:pointer; color:#2c5f96; font-size:.92rem; }
details.tech-verify ol { margin-top:8px; }

/* bara de actiune de la finalul sectiunilor */
.next-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; background:#eef7f0; border:1px solid #cfe7d6; border-radius:10px; padding:12px 18px; margin:14px 0 24px; }
.next-bar-kicker { font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; color:#1d7a3f; font-weight:700; }

/* revizuirea finala */
.rev-chips { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 18px; }
.chip { background:#fff; border:1px solid #dfe7e1; border-radius:999px; padding:5px 14px; font-size:.88rem; color:#3c463f; box-shadow:0 1px 2px rgba(20,40,25,.04); }
.review { margin:6px 0 26px; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.review .rev-block:first-child, .review .rev-block:last-child { grid-column:1 / -1; }
@media (max-width:860px){ .review { grid-template-columns:1fr; } }
.rev-block { background:#fff; border:1px solid #e3eae5; border-radius:12px; box-shadow:0 1px 3px rgba(20,40,25,.05); overflow:hidden; }
.rev-head { display:flex; align-items:center; justify-content:space-between; gap:10px; background:#f4f9f5; border-bottom:1px solid #e3eae5; padding:11px 18px; }
.rev-head h3 { margin:0; font-size:.98rem; font-weight:650; color:#1e2b22; }
.rev-block > table.rev, .rev-block > ul.rev-docs { margin:4px 18px 12px; }
table.rev { width:calc(100% - 36px); border-collapse:collapse; }
table.rev tr { border-bottom:1px solid #f0f4f1; }
table.rev tr:last-child { border-bottom:none; }
table.rev th { text-align:left; width:190px; color:#7c857e; font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; padding:9px 14px 9px 0; vertical-align:top; }
table.rev td { padding:9px 0; color:#22292414; color:#232b25; }
ul.rev-docs { list-style:none; padding:0; }
ul.rev-docs li { display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid #f0f4f1; }
ul.rev-docs li:last-child { border-bottom:none; }
.doc-badge { flex:0 0 auto; background:#eef4f0; color:#3f5a47; border:1px solid #dbe6de; border-radius:6px; font-size:.72rem; font-weight:700; letter-spacing:.05em; padding:4px 8px; }
.doc-main { display:flex; flex-direction:column; gap:1px; flex:1; min-width:0; }
.doc-main .muted { font-size:.85rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.submit-panel { background:#f4f9f5; border:1px solid #cfe7d6; border-radius:12px; padding:18px 22px; margin-top:6px; }
.submit-panel h3 { margin:0 0 8px; }
.submit-panel form { margin-top:12px; }


/* comunicarea analist -> client */
.op-note { background:#fff8ec; border:1px solid #f1dcae; border-left:4px solid #e0a93e; border-radius:8px; padding:10px 14px; margin:10px 0; }
.op-note-mini { font-size:.86rem; color:#8a6d1f; background:#fff8ec; border-radius:6px; padding:4px 10px; margin-top:4px; display:inline-block; }
.doc-rejected { color:#9c2b2b; background:#fdf2f2; border:1px solid #f0d4d4; border-radius:6px; padding:6px 10px; }
