:root{--blue:#003087;--blue-mid:#0050b3;--blue-light:#eef3ff;--gold:#c9a84c;--gold-pale:#f5e6c0;--text:#1a1a2e;--muted:#7780a0;--bg:#eef1f8;--border:#dde3f0;color-scheme:light}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;background:var(--bg);min-height:100vh;display:flex;flex-direction:column;align-items:center;overflow-x:hidden}
body::before{content:'';position:fixed;top:0;left:0;right:0;height:340px;background:linear-gradient(135deg,#003087 0%,#0a2f6e 60%,#1a4a9e 100%);z-index:0}
.page-header{position:relative;z-index:2;width:100%;max-width:680px;padding:40px 24px 0;display:flex;flex-direction:column;align-items:center;text-align:center}
.logo-row{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.logo-box{width:48px;height:48px;background:white;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-brand .name{font-size:17px;font-weight:600;color:white;text-align:left}
.logo-brand .sub{font-size:10px;color:rgba(255,255,255,.55);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px;text-align:left}
.page-title{font-family:'Noto Serif Display',serif;font-size:30px;font-weight:300;color:white;margin-bottom:8px}
.page-sub{font-size:13px;color:rgba(255,255,255,.65);max-width:360px;line-height:1.6;margin-bottom:20px}
.pill{display:inline-flex;align-items:center;gap:6px;background:rgba(201,168,76,.18);border:1px solid rgba(201,168,76,.4);color:var(--gold-pale);font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:5px 14px;border-radius:20px;margin-bottom:36px}
.card{position:relative;z-index:2;width:100%;max-width:680px;background:white;border-radius:12px 12px 0 0;min-height:calc(100vh - 300px);padding-bottom:40px}
.progress-bar{height:3px;background:var(--border);border-radius:12px 12px 0 0;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--gold));width:0%;transition:width .5s cubic-bezier(.4,0,.2,1)}
.nav-tabs{display:flex;background:#f4f6fc;border-bottom:1px solid var(--border);padding:0 28px;overflow-x:auto}
.nav-tab{font-size:12px;font-weight:500;color:var(--muted);padding:12px 14px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap}
.nav-tab.active{color:var(--blue);border-bottom-color:var(--blue)}
.dots{display:flex;justify-content:center;gap:7px;padding:16px 0 0}
.dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:all .3s}
.dot.active{background:var(--blue);transform:scale(1.3)}
.dot.done{background:var(--gold)}
.step{display:none;padding:24px 28px}
.step.active{display:block;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
.step-lbl{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.step-title{font-family:'Noto Serif Display',serif;font-size:20px;font-weight:400;color:var(--text);margin-bottom:4px}
.step-desc{font-size:12px;color:var(--muted);margin-bottom:22px;line-height:1.6}
.rcard{border:1.5px solid var(--border);border-radius:10px;padding:16px 18px;display:flex;gap:12px;align-items:flex-start;margin-bottom:10px;cursor:pointer;transition:all .2s;background:white}
.rcard:hover{border-color:var(--blue-mid);background:var(--blue-light)}
.rcard.sel{border-color:var(--blue);background:var(--blue-light)}
.rcircle{width:18px;height:18px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;transition:all .2s}
.rcard.sel .rcircle{border-color:var(--blue);background:var(--blue)}
.rdot{width:6px;height:6px;border-radius:50%;background:white;opacity:0;transition:opacity .2s}
.rcard.sel .rdot{opacity:1}
.rt{font-size:14px;font-weight:500;color:var(--text)}
.rs{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5}
.fgroup{display:flex;flex-direction:column;gap:16px}
.fwrap{display:flex;flex-direction:column;gap:5px}
.flabel{font-size:12px;font-weight:500;color:var(--text)}
.flabel .opt{font-weight:400;color:var(--muted);font-size:11px}
.finput,.fselect,.ftextarea{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:10px 13px;font-family:'DM Sans',sans-serif;font-size:13px;color:#1a1a2e!important;background:#ffffff!important;outline:none;appearance:none;-webkit-appearance:none;transition:border-color .2s,box-shadow .2s}
.finput:focus,.fselect:focus,.ftextarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,48,135,.08)}
.fselect option{background:#ffffff;color:#1a1a2e}
.ftextarea{background:#ffffff!important;color:#1a1a2e!important}
input.finput{background:#ffffff!important;color:#1a1a2e!important}
.ftextarea{resize:vertical;min-height:110px;line-height:1.6}
.fselect-wrap{position:relative}
.fselect-wrap::after{content:'▾';position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;font-size:12px}
.anon-badge{display:inline-flex;align-items:center;gap:7px;background:#fff8e6;border:1px solid #e8d5a0;color:#7a5c00;font-size:11px;font-weight:600;padding:7px 16px;border-radius:20px;margin-bottom:20px}
.ident-chip{display:inline-flex;align-items:center;gap:8px;background:var(--blue-light);border:1px solid var(--border);border-radius:8px;padding:10px 16px;margin-bottom:20px;font-size:12px;color:var(--blue);font-weight:500}
.upload-zone{border:1.5px dashed var(--border);border-radius:10px;padding:22px;text-align:center;cursor:pointer;position:relative;transition:all .25s;background:#fafbfe}
.upload-zone:hover,.upload-zone.drag-over{border-color:var(--blue);background:var(--blue-light)}
.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.upload-ico{width:36px;height:36px;background:var(--blue-light);border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;font-size:20px;color:var(--blue)}
.upload-t{font-size:13px;font-weight:500;color:var(--text)}
.upload-s{font-size:11px;color:var(--muted);margin-top:3px}
.file-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.file-item{display:flex;align-items:center;gap:8px;background:var(--blue-light);border-radius:7px;padding:8px 12px;font-size:12px}
.file-name{flex:1;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-size{color:var(--muted);font-size:11px}
.file-rm{cursor:pointer;color:#c0392b;opacity:.7}
.file-rm:hover{opacity:1}
.rev-box{background:#f6f8fd;border-radius:10px;padding:16px 18px;margin-bottom:20px}
.rev-sec{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.rev-sec+.rev-sec,.rev-row+.rev-sec{margin-top:18px}
.rev-row{display:flex;gap:8px;padding:5px 0;border-bottom:1px solid #eef0f8;font-size:12px}
.rev-label{min-width:120px;color:var(--muted);font-weight:500}
.rev-val{color:var(--text)}
.decl-wrap{border:1.5px solid var(--border);border-radius:10px;padding:15px 18px;display:flex;gap:12px;cursor:pointer;transition:all .2s;margin-bottom:20px}
.decl-wrap.chk{border-color:var(--blue);background:var(--blue-light)}
.decl-box{width:18px;height:18px;border:2px solid var(--border);border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s}
.decl-wrap.chk .decl-box{background:var(--blue);border-color:var(--blue)}
.chk-ico{opacity:0;transition:opacity .2s;color:white;font-size:12px}
.decl-wrap.chk .chk-ico{opacity:1}
.decl-text{font-size:12px;color:var(--text);line-height:1.6}
.btn-row{display:flex;justify-content:space-between;align-items:center;margin-top:24px}
.btn-back{padding:10px 22px;border-radius:8px;border:1.5px solid var(--border);background:transparent;font-size:13px;color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s}
.btn-back:hover{border-color:var(--muted);color:var(--text)}
.btn-next,.btn-submit{padding:10px 24px;border-radius:8px;background:var(--blue);border:none;color:white;font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;display:flex;align-items:center;gap:7px;transition:all .2s}
.btn-next:hover,.btn-submit:hover{background:var(--blue-mid);transform:translateY(-1px)}
.err-msg{font-size:11px;color:#c0392b;margin-top:4px;display:none}
.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:white;border-radius:50%;animation:spin .7s linear infinite;display:none}
@keyframes spin{to{transform:rotate(360deg)}}
.success-screen{display:none;padding:44px 28px;text-align:center}
.success-icon{width:64px;height:64px;background:#0a7c59;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:white;font-size:28px}
.success-title{font-family:'Noto Serif Display',serif;font-size:24px;font-weight:400;color:var(--text);margin-bottom:8px}
.success-desc{font-size:13px;color:var(--muted);max-width:340px;margin:0 auto 24px;line-height:1.7}
.proto-box{display:inline-block;background:var(--blue-light);border:1.5px solid var(--border);border-radius:10px;padding:14px 28px;margin-bottom:24px}
.proto-lbl{font-size:10px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:3px}
.proto-num{font-family:monospace;font-size:19px;font-weight:700;color:var(--blue);letter-spacing:1px}
.btn-novo{border:1.5px solid var(--blue);background:transparent;color:var(--blue);padding:10px 24px;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}
.btn-novo:hover{background:var(--blue-light)}
.page-footer{position:relative;z-index:2;width:100%;max-width:680px;padding:18px 28px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}

/* ── MODAL / POPUP ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .35s ease}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-box{width:440px;max-width:100%;background:linear-gradient(160deg,#003087 0%,#001f5e 100%);border-radius:20px;border:1px solid rgba(201,168,76,.25);overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06);transform:translateY(32px) scale(0.96);transition:transform .42s cubic-bezier(.34,1.56,.64,1),opacity .35s ease;opacity:0}
.modal-overlay.open .modal-box{transform:translateY(0) scale(1);opacity:1}

/* topo com brilho dourado sutil */
.modal-top{padding:36px 32px 28px;text-align:center;position:relative;border-bottom:1px solid rgba(255,255,255,.06)}
.modal-top::before{content:'';position:absolute;top:-60px;left:50%;transform:translateX(-50%);width:200px;height:120px;background:radial-gradient(ellipse,rgba(201,168,76,.18) 0%,transparent 70%);pointer-events:none}
.modal-close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.45);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:'DM Sans',sans-serif;line-height:1}
.modal-close-btn:hover{background:rgba(255,255,255,.14);color:white;border-color:rgba(255,255,255,.2)}
.modal-avatar{width:64px;height:64px;background:linear-gradient(135deg,rgba(201,168,76,.15),rgba(201,168,76,.05));border:1.5px solid rgba(201,168,76,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:26px;box-shadow:0 0 24px rgba(201,168,76,.15)}
.modal-title{font-family:'Noto Serif Display',serif;font-size:23px;font-weight:300;color:white;margin-bottom:8px;letter-spacing:-.3px}
.modal-sub{font-size:12.5px;color:rgba(255,255,255,.6);line-height:1.7;max-width:260px;margin:0 auto}

/* corpo */
.modal-body{padding:28px 32px 32px}
.modal-field{margin-bottom:20px}
.modal-label{display:block;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:8px}
.modal-input{width:100%;background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.22);border-radius:10px;padding:14px 16px;font-family:'DM Sans',sans-serif;font-size:14px;color:white;outline:none;box-sizing:border-box;transition:border-color .25s,background .25s,box-shadow .25s}
.modal-input::placeholder{color:rgba(255,255,255,.45)}
.modal-input:focus{border-color:rgba(201,168,76,.8);background:rgba(255,255,255,.16);box-shadow:0 0 0 3px rgba(201,168,76,.15)}
.modal-input.preenchido{border-color:rgba(201,168,76,.5);background:rgba(255,255,255,.14)}
.modal-hint{font-size:11px;color:rgba(255,255,255,.5);margin-top:6px}
.modal-divider{height:1px;background:rgba(255,255,255,.06);margin:4px 0 24px}
.modal-btn-confirm{width:100%;background:linear-gradient(135deg,#c9a84c,#b8932f);border:none;color:#0a0a0a;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:700;padding:15px;border-radius:10px;cursor:pointer;letter-spacing:.3px;transition:all .25s;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 20px rgba(201,168,76,.3)}
.modal-btn-confirm:hover:not(:disabled){background:linear-gradient(135deg,#d4b560,#c9a84c);transform:translateY(-1px);box-shadow:0 6px 28px rgba(201,168,76,.4)}
.modal-btn-confirm:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}
.modal-skip{text-align:center;margin-top:16px;font-size:12px;color:rgba(255,255,255,.25);cursor:pointer;transition:color .2s}
.modal-skip:hover{color:rgba(255,255,255,.55)}
.modal-skip span{text-decoration:underline;text-underline-offset:3px}

/* modal success */
.modal-success{padding:40px 32px;text-align:center;display:none}
.ms-check{width:62px;height:62px;background:rgba(29,179,122,.12);border:1.5px solid rgba(29,179,122,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:#1db37a;font-size:26px;box-shadow:0 0 24px rgba(29,179,122,.15)}
.ms-title{font-family:'Noto Serif Display',serif;font-size:20px;font-weight:300;color:white;margin-bottom:8px}
.ms-sub{font-size:12.5px;color:rgba(255,255,255,.38);line-height:1.7;margin-bottom:22px}
.ms-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(201,168,76,.08);border:1px solid rgba(201,168,76,.25);border-radius:8px;padding:10px 20px;font-size:13px;color:#c9a84c;font-weight:500;margin-bottom:24px}
.ms-next{width:100%;background:transparent;border:1.5px solid rgba(255,255,255,.15);color:white;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;padding:14px;border-radius:10px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:7px}
.ms-next:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.28)}

@media(max-width:600px){.page-header{padding:24px 16px 0}.step{padding:20px 18px}.page-footer{flex-direction:column;gap:6px;text-align:center}}
