/* TOKENS */
:root {
  --bg: #f7f5f2;
  --white: #ffffff;
  --teal: #2cb5a8;
  --teal-d: #1e9990;
  --teal-bg: #eaf6f5;
  --gold: #c9922a;
  --gold-bg: #fdf5e8;
  --text: #1c2635;
  --mid: #4b5668;
  --muted: #8a95a3;
  --border: #e4e1da;
  --danger: #e05151;
  --danger-bg: #fef0f0;
  --success: #2cb5a8;
  --radius: 14px;
  --radius-lg: 22px;
  --shadow-s: 0 2px 10px rgba(0,0,0,.06);
  --shadow-m: 0 8px 32px rgba(0,0,0,.10);
  --shadow-l: 0 20px 60px rgba(0,0,0,.14);
  --ease: cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased;min-height:100vh}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button{border:none;background:none;cursor:pointer;font-family:inherit}
select,input,textarea{font-family:inherit}

.wrap{max-width:1140px;margin:0 auto;padding:0 24px}

/* NAVBAR */
.navbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:10px 0;transition:background .3s,box-shadow .3s}
.navbar.stuck{background:rgba(247,245,242,.96);backdrop-filter:blur(18px);box-shadow:var(--shadow-s);padding:6px 0}
.nav-wrap{max-width:1140px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:16px}
.logo img{height:56px;width:auto}
.nav-links{display:flex;align-items:center;gap:28px;margin-left:auto}
.nav-links a{font-size:.88rem;font-weight:600;color:var(--mid);transition:color .2s}
.nav-links a:hover{color:var(--teal)}
.link-psi{color:var(--gold)!important}
.link-psi:hover{color:#a87520!important}

/* Burger */
.burger{display:none;flex-direction:column;gap:5px;padding:4px;margin-left:12px;background:none;border:none;cursor:pointer}
.burger span{width:22px;height:2px;background:var(--text);border-radius:2px;transition:.25s var(--ease)}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Drawer */
.drawer{
  position:fixed;top:0;left:0;right:0;
  background:var(--white);
  padding:80px 24px 32px;
  display:none;flex-direction:column;
  transform:translateY(-110%);
  transition:transform .38s var(--ease);
  z-index:99;
  box-shadow:var(--shadow-m);
  border-bottom:1px solid var(--border);
}
.drawer.open{transform:translateY(0);display:flex}
.drawer-link{padding:15px 0;border-bottom:1px solid var(--border);font-size:.97rem;font-weight:600;color:var(--mid);text-decoration:none}
.drawer-link:hover{color:var(--teal)}
.drawer-link.gold{color:var(--gold)}
.nav-links a:hover{color:var(--teal)}
.link-psi{color:var(--gold)!important}
.link-psi:hover{color:#a87520!important}
.nav-right{display:flex;align-items:center;gap:16px}
.nav-badge{font-size:.78rem;font-weight:700;color:var(--mid);background:var(--teal-bg);border:1px solid rgba(44,181,168,.2);padding:5px 14px;border-radius:50px;letter-spacing:.04em}
.btn-admin{display:inline-flex;align-items:center;gap:7px;font-size:.85rem;font-weight:700;color:var(--mid);border:1.5px solid var(--border);padding:8px 18px;border-radius:50px;transition:all .22s}
.btn-admin:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-bg)}

.nav-login-icon:hover { background: var(--teal-bg) !important; color: var(--teal) !important; transform: translateY(-2px); }

/* BUTTONS */
.btn-cta{display:inline-flex;align-items:center;gap:9px;background:var(--teal);color:#fff;padding:13px 26px;border-radius:50px;font-size:.95rem;font-weight:700;transition:background .25s var(--ease),transform .2s var(--ease),box-shadow .25s var(--ease);box-shadow:0 4px 18px rgba(44,181,168,.32)}
.btn-cta:hover{background:var(--teal-d);transform:translateY(-2px);box-shadow:0 8px 28px rgba(44,181,168,.42)}
.btn-cta.btn-full{width:100%;justify-content:center}
.btn-outline{display:inline-flex;align-items:center;padding:13px 26px;border-radius:50px;font-size:.95rem;font-weight:600;color:var(--mid);border:1.5px solid var(--border);transition:border-color .22s,color .22s,background .22s;background:transparent}
.btn-outline:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-bg)}

/* HERO FORM SECTION */
.hero-form{min-height:100vh;padding:130px 24px 80px;display:flex;align-items:center;position:relative;overflow:hidden;background:var(--bg)}
.hero-bg-blob{position:absolute;top:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(44,181,168,.09) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.blob-2{top:auto;right:auto;bottom:-150px;left:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(201,146,42,.06) 0%,transparent 70%)}
.form-outer{max-width:1100px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr 520px;gap:72px;align-items:center;position:relative;z-index:1}

/* HERO COPY */
.hero-copy{}
.pill{display:inline-flex;align-items:center;gap:8px;background:var(--teal-bg);color:var(--teal-d);border:1px solid rgba(44,181,168,.22);padding:7px 16px;border-radius:50px;font-size:.76rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:24px}
.dot{width:7px;height:7px;background:var(--teal);border-radius:50%;animation:blink 2s ease infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}
.hero-copy h1{font-size:clamp(2.4rem,4.5vw,3.5rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--text);margin-bottom:20px}
.hero-copy h1 em{font-style:normal;color:var(--teal)}
.lead{font-size:1rem;color:var(--mid);line-height:1.7;max-width:420px;margin-bottom:32px}
.trust-row{display:flex;align-items:center;gap:0;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;color:var(--mid);padding:4px 0}
.trust-sep{width:1px;height:16px;background:var(--border);margin:0 14px}

/* FORM CARD */
.form-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-l);overflow:hidden}

/* PROGRESS */
.progress-bar-wrap{padding:24px 32px 0}
.progress-steps{display:flex;align-items:center;gap:0;margin-bottom:16px}
.ps{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto}
.ps-dot{width:32px;height:32px;border-radius:50%;background:var(--border);color:var(--muted);font-size:.82rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:background .3s,color .3s}
.ps.active .ps-dot,.ps.done .ps-dot{background:var(--teal);color:#fff}
.ps span{font-size:.72rem;font-weight:600;color:var(--muted);white-space:nowrap}
.ps.active span,.ps.done span{color:var(--teal-d)}
.ps-line{flex:1;height:2px;background:var(--border);margin:0 8px;margin-bottom:22px;transition:background .3s}
.ps-line.done{background:var(--teal)}
.progress-bar{height:4px;background:var(--border);border-radius:4px;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--teal-d));border-radius:4px;transition:width .4s var(--ease);width:33%}

/* FORM STEPS */
.form-step{display:none;padding:28px 32px 32px}
.form-step.active{display:block;animation:fadeUp .35s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.step-head{margin-bottom:24px}
.step-head h2{font-size:1.35rem;font-weight:800;color:var(--text);margin-bottom:6px}
.step-head p{font-size:.88rem;color:var(--muted)}

/* FORM FIELDS */
.field-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field-row{display:grid;grid-template-columns:1fr 100px;gap:12px}
label{font-size:.83rem;font-weight:700;color:var(--text)}
.req{color:var(--danger)}
.hint{font-weight:400;color:var(--muted);font-size:.78rem}
input,select,textarea{border:1.5px solid var(--border);border-radius:10px;padding:11px 14px;font-size:.92rem;color:var(--text);background:var(--bg);transition:border-color .2s,box-shadow .2s;outline:none;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(44,181,168,.12);background:var(--white)}
input.error,select.error,textarea.error{border-color:var(--danger)}
.field-err{font-size:.78rem;color:var(--danger);min-height:16px}
textarea{resize:vertical;min-height:80px}

/* CHECKBOX */
.consent-wrap{margin-bottom:16px}
.checkbox-label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:.83rem;color:var(--mid);line-height:1.5}
.checkbox-label input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}
.checkbox-box{flex-shrink:0;width:20px;height:20px;border:2px solid var(--border);border-radius:6px;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:all .2s;margin-top:1px}
.checkbox-label input:checked ~ .checkbox-box{background:var(--teal);border-color:var(--teal)}
.checkbox-box svg{opacity:0;transition:opacity .15s}
.checkbox-label input:checked ~ .checkbox-box svg{opacity:1}

/* CHIP SELECTOR */
.chip-group{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:7px 16px;border-radius:50px;font-size:.82rem;font-weight:600;color:var(--mid);border:1.5px solid var(--border);background:var(--bg);transition:all .2s;cursor:pointer}
.chip:hover{border-color:var(--teal);color:var(--teal)}
.chip.active{background:var(--teal);border-color:var(--teal);color:#fff}

/* FORM ACTIONS */
.form-actions{margin-top:8px}
.two-btns{display:grid;grid-template-columns:auto 1fr;gap:12px}
.two-btns .btn-cta{justify-content:center}

/* REVIEW CARD */
.review-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.review-section{display:flex;flex-direction:column;gap:6px}
.review-section h4{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--teal-d);margin-bottom:2px}
.review-row{display:flex;gap:8px;font-size:.88rem}
.review-row strong{color:var(--text);min-width:100px;flex-shrink:0}
.review-row span{color:var(--mid)}
.review-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.review-chip{padding:4px 12px;border-radius:50px;background:var(--teal-bg);color:var(--teal-d);font-size:.78rem;font-weight:600}

/* SPINNER */
.spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* SUCCESS */
.success-state{text-align:center;padding:16px 0 8px;display:flex;flex-direction:column;align-items:center;gap:16px}
.success-icon{width:80px;height:80px;border-radius:50%;background:var(--teal-bg);border:2px solid rgba(44,181,168,.2);display:flex;align-items:center;justify-content:center}
.success-state h2{font-size:1.4rem;font-weight:800;color:var(--text)}
.success-state p{font-size:.92rem;color:var(--mid);line-height:1.65;max-width:340px}

/* FOOTER */
.footer{background:#1a2230;padding:28px 0}
.foot-bottom-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;max-width:1140px;margin:0 auto;padding:0 24px}
.foot-logo{height:44px;width:auto;filter:brightness(0) invert(1);opacity:.75}
.footer p{font-size:.78rem;color:rgba(255,255,255,.35)}

/* ====== ADMIN ====== */
.admin-body{background:#f0f2f5;min-height:100vh}
.admin-navbar{background:#1a2230;padding:0;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.admin-nav-inner{max-width:1300px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px;height:64px}
.admin-logo{height:44px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.admin-nav-title{font-size:.88rem;font-weight:700;color:rgba(255,255,255,.5);margin-left:4px}
.admin-nav-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.admin-count-badge{background:var(--teal);color:#fff;font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:50px}
.btn-logout{font-size:.82rem;font-weight:600;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.15);padding:6px 14px;border-radius:50px;transition:all .2s}
.btn-logout:hover{color:#fff;border-color:rgba(255,255,255,.4)}

/* ADMIN LOGIN */
.admin-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
.admin-login-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-l);padding:48px 40px;width:100%;max-width:420px;text-align:center}
.admin-login-logo{height:56px;margin:0 auto 24px}
.admin-login-card h1{font-size:1.4rem;font-weight:800;color:var(--text);margin-bottom:6px}
.admin-login-card p{font-size:.88rem;color:var(--muted);margin-bottom:28px}
.admin-login-err{font-size:.84rem;color:var(--danger);margin-top:-12px;margin-bottom:12px;display:none}

/* ADMIN MAIN */
.admin-main{max-width:1300px;margin:0 auto;padding:32px 24px}
.admin-top-bar{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}
.admin-top-bar h1{font-size:1.5rem;font-weight:800;color:var(--text)}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:28px}
.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column;gap:4px}
.stat-card .stat-label{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.stat-card .stat-val{font-size:2rem;font-weight:800;color:var(--text);line-height:1.1}
.stat-card .stat-sub{font-size:.78rem;color:var(--muted)}
.stat-card.teal .stat-val{color:var(--teal-d)}

/* FILTERS */
.admin-filters{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.filter-select{border:1.5px solid var(--border);border-radius:8px;padding:8px 12px;font-size:.85rem;color:var(--mid);background:var(--white);outline:none}
.filter-select:focus{border-color:var(--teal)}
.search-wrap{position:relative;flex:1;min-width:200px}
.search-wrap input{background:var(--white);padding-left:36px}
.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted)}
.btn-refresh{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;border:1.5px solid var(--border);font-size:.85rem;font-weight:600;color:var(--mid);background:var(--white);transition:all .2s}
.btn-refresh:hover{border-color:var(--teal);color:var(--teal)}

/* FICHAS GRID */
.fichas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}
.ficha-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .22s,box-shadow .22s,border-color .22s}
.ficha-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-m);border-color:var(--teal)}
.ficha-header{padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ficha-name{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:3px}
.ficha-meta{font-size:.78rem;color:var(--muted)}
.ficha-status{flex-shrink:0}
.badge{display:inline-block;padding:4px 12px;border-radius:50px;font-size:.72rem;font-weight:700;letter-spacing:.04em}
.badge-nova{background:#eaf6f5;color:#1e9990}
.badge-enviada{background:#fdf5e8;color:#a87520}
.badge-atendida{background:#eef7ee;color:#2a8a2a}
.ficha-body{padding:14px 20px}
.ficha-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;font-size:.84rem}
.ficha-row svg{flex-shrink:0;color:var(--muted);margin-top:1px}
.ficha-row span{color:var(--mid)}
.ficha-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.ficha-chip{padding:3px 10px;border-radius:50px;background:var(--teal-bg);color:var(--teal-d);font-size:.73rem;font-weight:600}
.ficha-footer{padding:12px 20px 16px;border-top:1px solid var(--border);display:flex;gap:8px;flex-wrap:wrap}
.btn-ficha{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;padding:7px 13px;border-radius:8px;transition:all .2s}
.btn-enviar{background:var(--teal);color:#fff}
.btn-enviar:hover{background:var(--teal-d)}
.btn-pdf{background:var(--gold-bg);color:var(--gold);border:1px solid rgba(201,146,42,.2)}
.btn-pdf:hover{background:#f5e8cc}
.btn-status{background:var(--bg);color:var(--mid);border:1px solid var(--border)}
.btn-status:hover{border-color:var(--teal);color:var(--teal)}
.btn-del{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(224,81,81,.15);margin-left:auto}
.btn-del:hover{background:#fde0e0}

/* EMPTY STATE */
.empty-state{grid-column:1/-1;text-align:center;padding:64px 24px;color:var(--muted)}
.empty-state svg{margin:0 auto 16px;opacity:.4}
.empty-state p{font-size:.92rem}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .25s}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-l);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;transform:translateY(20px);transition:transform .28s var(--ease)}
.modal-overlay.open .modal{transform:translateY(0)}
.modal-head{padding:24px 28px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-head h3{font-size:1.1rem;font-weight:800;color:var(--text)}
.modal-close{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:background .2s}
.modal-close:hover{background:var(--bg)}
.modal-body{padding:24px 28px}
.modal-body .field-group{margin-bottom:14px}
.modal-footer{padding:16px 28px 24px;display:flex;gap:10px;justify-content:flex-end}

/* RESPONSIVE */
@media(max-width:960px){
  .nav-links,.nav-wrap .btn-cta,.nav-wrap .nav-badge,.nav-wrap .nav-login-icon{display:none}
  .burger{display:flex}
  .drawer{display:flex}
}
@media(max-width:900px){
  .form-outer{grid-template-columns:1fr}
  .hero-copy{display:none}
  .hero-form{padding:100px 20px 60px;align-items:flex-start}
  .form-card{border-radius:16px}
}
@media(max-width:600px){
  .progress-steps .ps span{display:none}
  .field-row{grid-template-columns:1fr}
  .two-btns{grid-template-columns:1fr 1fr}
  .form-step{padding:20px 20px 24px}
  .progress-bar-wrap{padding:20px 20px 0}
  .fichas-grid{grid-template-columns:1fr}
  .admin-stats{grid-template-columns:1fr 1fr}
  .admin-top-bar{flex-direction:column;align-items:flex-start}
  .trust-row{flex-direction:column;align-items:flex-start;gap:8px}
  .trust-sep{display:none}
  .nav-badge{display:none}
}
