/* Public auth & registration pages - extends the .rp/.dp green corporate design system */
.ap{--g1:#173f34;--g2:#145a46;--g3:#226950;--g4:#2e8a5d;--mut:#667c73;--line:#e0e9e4;--tint:#f2f7f1}
.ap *{box-sizing:border-box}.ap a{text-decoration:none}
.ap-wrap{max-width:620px;margin:0 auto;padding:34px 16px 72px}
.ap-wrap.wide{max-width:900px}

/* Card shell */
.ap-card{background:#fff;border:1px solid #e0e9e4;border-radius:16px;box-shadow:0 24px 56px -28px rgba(23,63,52,.32);overflow:hidden}
.ap-head{background:linear-gradient(135deg,#145a46,#2e8a5d);padding:28px 32px;color:#fff;position:relative}
.ap-head .ap-brand{display:inline-flex;align-items:center;gap:12px;margin-bottom:14px}
.ap-head img{height:36px;width:auto;filter:brightness(0) invert(1);opacity:.95}
.ap-kicker{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;opacity:.85;margin:0}
.ap-title{font-size:25px;font-weight:700;margin:7px 0 0;color:#fff;line-height:1.2;letter-spacing:-.4px}
.ap-sub{font-size:13.5px;margin:8px 0 0;opacity:.9;color:#fff;line-height:1.5}
.ap-head .fa,.ap-head [class*=" fa-"]{color:#fff;opacity:1}
.ap-body{padding:28px 32px 30px}
@media(max-width:520px){.ap-head{padding:22px 20px}.ap-body{padding:22px 18px 24px}}

/* Stepper */
.ap-steps{display:flex;gap:6px;flex-wrap:wrap;padding:20px 24px;background:#f7faf7;border-bottom:1px solid #e0e9e4}
.ap-step{flex:1;min-width:74px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.ap-step i{font-style:normal;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:12px;font-weight:700;background:#fff;border:1.5px solid #cbdcd0;color:#8aa294;line-height:1}
.ap-step span{font-size:10.5px;font-weight:600;color:#8aa294;text-transform:uppercase;letter-spacing:.6px}
.ap-step.on i{background:#145a46;border-color:#145a46;color:#fff;box-shadow:0 0 0 4px rgba(20,90,70,.15)}
.ap-step.on span{color:#173f34}
.ap-step.done i{background:#eaf4ec;border-color:#a5c9ae;color:#226950}
@media(max-width:520px){.ap-step span{display:none}.ap-step i{width:26px;height:26px}.ap-step{min-width:0;flex:0 0 auto}}

/* Fields */
.ap-form .section{margin-bottom:18px}
.ap-form .ap-row{display:flex;gap:16px;flex-wrap:wrap}
.ap-form .ap-row>.section{flex:1;min-width:220px}
.ap-label,.ap-form .ap-label{display:block;font-size:12.5px;font-weight:700;color:#173f34;margin:0 0 8px;letter-spacing:.2px}
.ap-label .field-label{font-weight:700}
.ap-input,.ap-form .gui-input,.ap-form select,select.ap-input
{width:100%;height:46px;padding:0 13px;border:1.5px solid #cfdcd2;border-radius:9px;font-size:14px;color:#173f34;background:#fafcfb;transition:border-color .15s,box-shadow .15s,background .15s}
.ap-input:focus,.ap-form .gui-input:focus{border-color:#226950;box-shadow:0 0 0 4px rgba(34,105,80,.12);background:#fff;outline:none}
.ap-input::-webkit-input-placeholder{color:#a4b6ac}
.ap-input:-ms-input-placeholder{color:#a4b6ac}
.ap-input::placeholder{color:#a4b6ac}
.ap-form select{border-color:#cfdcd2;background:#fafcfb;color:#173f34;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23667c73' d='M6 8L0 0h12z'/></svg>");background-repeat:no-repeat;background-position:right 13px center;appearance:none;-webkit-appearance:none;padding-right:34px}
.ap-form textarea{width:100%;border:1.5px solid #cfdcd2;border-radius:9px;padding:11px 13px;font-size:14px;color:#173f34;background:#fafcfb;transition:border-color .15s,box-shadow .15s;font-family:inherit}
.ap-form textarea:focus{border-color:#226950;box-shadow:0 0 0 4px rgba(34,105,80,.12);outline:none;background:#fff}
.ap-field-ic{position:relative}
.ap-field-ic .gui-input,.ap-field-ic .ap-input{padding-left:42px}
.ap-field-ic>i,.ap-field-ic>span.ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#8aa294;font-size:14px;background:transparent}
.ap-hint{font-size:11.5px;color:#667c73;margin-top:5px;line-height:1.4}

/* File inputs */
.ap-form input[type=file]{height:auto;padding:10px 12px;font-size:13px;border:1.5px dashed #c4d6c8;border-radius:9px;background:#f7faf7;color:#55675e;width:100%}
.ap-form input[type=file]::-webkit-file-upload-button{background:linear-gradient(135deg,#145a46,#2e8a5d);color:#fff;border:0;border-radius:7px;padding:8px 14px;margin-right:12px;font-weight:600;font-size:12.5px;cursor:pointer}

/* Checkbox */
.ap-check,.ap-form .option{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:#446;color:#4a5c52;line-height:1.5;cursor:pointer}
.ap-check input,.ap-form .option input{width:17px;height:17px;margin:1px 0 0;accent-color:#226950;flex-shrink:0;cursor:pointer}

/* Buttons */
.ap-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;height:48px;border:0;border-radius:10px;background:linear-gradient(135deg,#145a46,#2e8a5d);color:#fff;font-size:14px;font-weight:700;letter-spacing:.4px;cursor:pointer;transition:filter .15s,transform .12s,box-shadow .15s}
.ap-btn:hover{filter:brightness(1.07);color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(20,90,70,.55)}
.ap-btn:active{transform:translateY(0)}
.ap-btn-ghost{background:#fff;color:#226950;border:1.5px solid #bfd6c5}
.ap-btn-ghost:hover{filter:none;background:#f2f7f1;color:#145a46}
.ap-btn-sm{height:44px;width:auto;padding:0 22px}
.ap-btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.ap-btn-row .ap-btn{flex:1;min-width:150px}
@media(max-width:520px){.ap-btn-row .ap-btn{min-width:100%}}

/* Alerts (flash + inline notes) */
.ap-alert{display:flex;gap:10px;align-items:flex-start;padding:13px 15px;border-radius:10px;font-size:13px;line-height:1.5;margin-bottom:18px;border:1px solid;position:relative}
.ap-alert .close{position:absolute;right:10px;top:8px;font-size:18px;color:inherit;opacity:.6;border:0;background:none;cursor:pointer}
.ap-alert.success,.ap-alert-success{background:#edf7ef;border-color:#bfe0c8;color:#1e5c34}
.ap-alert.danger,.ap-alert-danger,.ap-alert.error,.ap-alert-error{background:#fdf0ef;border-color:#f2d1cb;color:#9b3730}
.ap-alert.info,.ap-alert-info{background:#eef6fa;border-color:#cfe3ef;color:#28607a}
.ap-alert.warning,.ap-alert-warning{background:#fdf7ea;border-color:#f0e0b4;color:#7a5c16}

/* Footer links under card */
.ap-links{text-align:center;font-size:13px;color:#667c73;margin-top:22px;line-height:1.9}
.ap-links a{color:#226950;font-weight:700}
.ap-links a:hover{color:#145a46;text-decoration:underline}
.ap-sec{display:flex;align-items:center;gap:10px;margin:26px 0 16px;font-size:12.5px;font-weight:700;color:#173f34;text-transform:uppercase;letter-spacing:.8px}
.ap-sec:before{content:"";width:14px;height:14px;border-radius:4px;background:linear-gradient(135deg,#145a46,#2e8a5d)}
.ap-sec:first-child{margin-top:0}

/* Beneficiary blocks (spouse / children / parents) */
.ap-benef{border:1px solid #e0e9e4;border-radius:12px;background:#fbfdfc;padding:18px 18px 4px;margin-bottom:16px;position:relative}
.ap-benef .ap-benef-num{font-size:12px;font-weight:700;color:#226950;text-transform:uppercase;letter-spacing:.6px;margin-bottom:14px}
.ap-benef .ap-tools{position:absolute;top:14px;right:14px;display:flex;gap:8px}
.ap-tools button{width:36px;height:36px;border-radius:9px;border:1.5px solid #cfdcd2;background:#fff;color:#667c73;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.ap-tools button.clone{color:#226950;border-color:#a5c9ae;background:#eaf4ec}
.ap-tools button.clone:hover{background:#145a46;color:#fff}
.ap-tools button.remove{color:#a95548;border-color:#f0c4bc;background:#fdf1ef}
.ap-tools button.remove:hover{background:#b04337;color:#fff}
.ap-add-benef{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #a5c9ae;color:#226950;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:18px;transition:all .15s}
.ap-add-benef:hover{background:#eaf4ec;color:#145a46}

/* Success page */
.ap-done{display:grid;place-items:center;text-align:center;padding:14px 0}
.ap-done-ic{width:74px;height:74px;border-radius:50%;background:#eaf4ec;color:#226950;display:grid;place-items:center;font-size:32px;margin:0 auto 18px}