@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter','Segoe UI',Arial,sans-serif;background:#f8f9fc;color:#1a202c;line-height:1.6;height:100vh;overflow:hidden;}
.hidden{display:none!important;}

.form-layout{display:flex;height:100vh;}

/* SIDEBAR */
.sidebar{width:272px;background:#fff;border-right:1px solid #e5e7eb;padding:28px 20px;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:36px;}
.brand-logo{width:38px;height:38px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:9px;flex-shrink:0;}
.brand h3{font-size:17px;color:#1F2A44;font-weight:800;margin:0;}
.brand-badge{font-size:10px;background:#eef2ff;color:#667eea;padding:2px 7px;border-radius:4px;font-weight:700;display:block;margin-top:2px;}

.stepper{flex:1;}
.step-ind{display:flex;gap:14px;margin-bottom:22px;padding:6px 8px;border-radius:9px;cursor:pointer;transition:background .2s;opacity:.45;}
.step-ind.active{opacity:1;}
.step-ind.done{opacity:.8;}
.step-ind.done:hover,.step-ind.active:hover{background:#f0f4ff;}
.step-num{width:30px;height:30px;border-radius:50%;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#9ca3af;background:#fff;flex-shrink:0;transition:.2s;}
.step-ind.active .step-num{border-color:#667eea;background:#667eea;color:#fff;}
.step-ind.done .step-num{border-color:#10b981;background:#10b981;color:#fff;}
.step-txt span{display:block;font-weight:600;color:#1F2A44;font-size:14px;}
.step-txt small{font-size:11px;color:#9ca3af;}

.sidebar-exit{text-decoration:none;color:#9ca3af;font-size:13px;font-weight:600;padding:10px 0;margin-top:auto;display:block;}
.sidebar-exit:hover{color:#667eea;}

/* MOBILE PROGRESS */
.mobile-progress{display:none;background:#fff;padding:10px 16px 12px;border-bottom:1px solid #e5e7eb;flex-shrink:0;position:sticky;top:0;z-index:50;}
.mob-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.mob-home-btn{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:#667eea;text-decoration:none;padding:6px 10px;border:1.5px solid #e0d9f9;border-radius:8px;background:#f5f3ff;min-width:72px;}
.mob-home-btn:active{background:#ede9fe;}
.mob-brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:#1F2A44;font-size:14px;font-weight:800;}
.mob-brand-logo{width:28px;height:28px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:7px;flex-shrink:0;}
.prog-label{font-size:12px;font-weight:600;color:#64748b;margin-bottom:6px;}
.prog-track{background:#e2e8f0;border-radius:99px;height:5px;}
.prog-fill{background:linear-gradient(90deg,#667eea,#9f7aea);height:5px;border-radius:99px;transition:width .35s ease;}

/* MAIN CONTENT */
.form-main{flex:1;overflow-y:auto;padding:40px 56px;}
.form-step{max-width:780px;margin:0 auto;animation:fadeIn .3s ease;}
.step-heading{font-size:22px;font-weight:800;color:#1F2A44;border-bottom:1px solid #e5e7eb;padding-bottom:14px;margin-bottom:28px;}

/* GRID */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.full{grid-column:1/-1;}

/* FIELDS */
.fg{display:flex;flex-direction:column;margin-bottom:4px;}
.fg label{font-size:13px;font-weight:600;color:#374151;margin-bottom:5px;}
.fg input,.fg textarea,.fg select{padding:11px 13px;border:1.5px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;background:#fff;transition:border-color .2s,box-shadow .2s;}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px rgba(102,126,234,.12);}
.fg input.err,.fg textarea.err{border-color:#ef4444!important;}
.ferr{font-size:12px;color:#ef4444;font-weight:500;margin-top:3px;display:none;}
.ferr.show{display:block;}
.uid-hint{font-size:11px;color:#9ca3af;margin-top:3px;}

/* CHECKBOX */
.check-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;}
.check-row input[type=checkbox]{width:17px;height:17px;cursor:pointer;flex-shrink:0;margin-top:2px;}
.check-row span{font-size:13px;color:#374151;line-height:1.5;}

/* END DATE */
.end-date-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:9px 13px;font-size:13px;color:#15803d;font-weight:600;margin-top:6px;display:none;}

/* SAVE INDICATOR */
.save-ind{font-size:11px;color:#10b981;font-weight:600;opacity:0;transition:opacity .3s;margin-bottom:16px;display:flex;align-items:center;gap:4px;}
.save-ind.show{opacity:1;}

/* BTN ROW */
.btn-row{margin-top:36px;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.btn-row.right{justify-content:flex-end;}
.btn-primary{background:#667eea;color:#fff;padding:12px 30px;border:none;border-radius:8px;font-weight:700;cursor:pointer;font-family:inherit;font-size:14px;transition:background .2s;}
.btn-primary:hover{background:#5a6fd6;}
.btn-back{background:#fff;border:1.5px solid #d1d5db;padding:12px 22px;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;font-size:14px;color:#374151;transition:.2s;}
.btn-back:hover{border-color:#667eea;color:#667eea;}
.btn-dl{background:#10b981;color:#fff;padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-weight:700;font-family:inherit;font-size:13px;display:flex;align-items:center;gap:8px;transition:opacity .2s;}
.btn-dl:hover{opacity:.9;}
.btn-dl.loading{opacity:.6;pointer-events:none;}
.spin{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:none;}
.btn-dl.loading .spin{display:inline-block;}

/* PREVIEW */
.preview-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:10px;}
.preview-bar h2{font-size:20px;font-weight:800;color:#1F2A44;}
.draft-warn{font-size:12px;color:#ef4444;font-weight:600;}
.paper{background:#fff;padding:48px;box-shadow:0 4px 20px rgba(0,0,0,0.06);font-family:'Times New Roman',serif;font-size:13pt;line-height:1.8;color:#000;position:relative;overflow:hidden;}
.paper::before{content:'DRAFT - NOT VALID UNTIL REGISTERED';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-35deg);font-size:36px;font-weight:900;color:rgba(200,0,0,0.055);white-space:nowrap;pointer-events:none;z-index:0;font-family:'Inter',sans-serif;letter-spacing:2px;}

@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
@keyframes spin{to{transform:rotate(360deg);}}

@media(max-width:768px){
  body{height:auto;overflow:auto;}
  .form-layout{flex-direction:column;height:auto;}
  .sidebar{display:none;}
  .mobile-progress{display:block;}
  .form-main{padding:16px 14px;overflow-y:visible;}
  .grid2{grid-template-columns:1fr;}
  .paper{padding:20px 14px;}
  .paper::before{font-size:18px;}
  .btn-row{flex-wrap:wrap;gap:10px;}
  .btn-primary{width:100%;justify-content:center;}
  .step-heading{font-size:18px;}
  .party-block{padding:16px 14px;}
  .fg input,.fg textarea,.fg select{font-size:16px;}  /* prevent iOS zoom */
  .form-step{padding:20px 16px;}
  .btn-row.right{justify-content:stretch;}
  .btn-row.right .btn-primary{width:100%;}
}
@media(max-width:420px){
  .form-main{padding:12px 10px;}
  .form-step{padding:16px 12px;}
  .party-block{padding:12px 10px;}
  .step-heading{font-size:16px;}
}

/* MULTIPLE PARTIES */
.party-block{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;padding:20px;margin-bottom:16px;position:relative;}
.party-label{font-size:12px;font-weight:800;color:#667eea;text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;}
.party-remove{background:#fef2f2;color:#ef4444;border:none;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;}
.party-remove:hover{background:#fee2e2;}
.btn-add-party{background:#f0f4ff;color:#667eea;border:1.5px dashed #667eea;border-radius:9px;padding:10px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;width:100%;margin-bottom:20px;transition:.2s;}
.btn-add-party:hover{background:#e8edff;}
