:root{--olive:#28301f;--olive2:#39422d;--gold:#b89a62;--cream:#f6f4ef;--ink:#1c2118;--line:#e4e2db;--red:#b8423c;--orange:#c67b2d;--green:#4c7756}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--cream);color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#20271a,#3a432f)}.login-card{width:min(420px,92vw);background:#fff;padding:36px;border-radius:22px;box-shadow:0 25px 70px #0005}.login-logo{width:100%;height:90px;object-fit:contain}.login h1{margin:10px 0 0}.login p{color:#6d7168}.login label{display:block;margin:16px 0;font-size:14px}.login input{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;margin-top:6px}.login button,.primary,header button{border:0;background:var(--olive);color:#fff;padding:12px 16px;border-radius:10px;cursor:pointer}.msg{color:var(--red);margin-top:12px}.app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.app > aside{background:var(--olive);color:#fff;padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{height:72px;width:100%;object-fit:contain;filter:brightness(0) invert(1)}nav{display:grid;gap:6px;margin-top:25px}nav button,.logout{border:0;background:transparent;color:#fff;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer}nav button.active,nav button:hover{background:#ffffff18}.logout{margin-top:auto}main{min-width:0}header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;padding:12px 24px;position:sticky;top:0;z-index:5}.search{position:relative;flex:1}.search input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px}.search-results{position:absolute;top:48px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 40px #0002;max-height:380px;overflow:auto;z-index:20}.search-results button{display:block;width:100%;text-align:left;padding:12px;background:#fff;color:var(--ink);border:0;border-bottom:1px solid var(--line)}.menu{display:none}#content{padding:24px}.hero{background:#fff;border-radius:18px;padding:20px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between}.hero img{height:70px;max-width:45%;object-fit:contain}.cards{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.card b{font-size:28px;display:block}.card small{color:#73776f}.danger b{color:var(--red)}.warn b{color:var(--orange)}.ok b{color:var(--green)}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:18px}.panel-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}th{background:#faf9f6;color:#686d64}.pill{padding:5px 8px;border-radius:999px;background:#eee;white-space:nowrap}.pill.red{background:#f9dddd;color:#a12e2a}.pill.orange{background:#faead5;color:#a45f18}.pill.green{background:#e3f0e5;color:#356140}.actions{display:flex;gap:6px}.iconbtn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;cursor:pointer}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.filters button{border:1px solid var(--line);background:#fff;padding:8px 12px;border-radius:999px}.filters button.active{background:var(--olive);color:#fff}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:15px 18px}.modal-head button{border:0;background:none;font-size:25px}dialog{width:min(760px,94vw);border:0;border-radius:16px;padding:0;box-shadow:0 30px 80px #0005}dialog::backdrop{background:#0006}#modalBody{padding:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label{font-size:13px}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;margin-top:5px}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.whatsapp{color:#147a38;text-decoration:none;font-weight:700}.empty{padding:35px;text-align:center;color:#777}.client-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.count-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.count-grid .card b{font-size:22px}@media(max-width:1000px){.cards{grid-template-columns:repeat(3,1fr)}.count-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:720px){.app{display:block}.app > aside{position:fixed;z-index:30;width:250px;transform:translateX(-100%);transition:.2s}aside.open{transform:none}.menu{display:block}header{padding:10px;height:auto;flex-wrap:wrap}header .search{order:3;flex-basis:100%}header button{padding:10px}.cards{grid-template-columns:repeat(2,1fr)}#content{padding:14px}.hero{padding:12px}.hero img{max-width:60%;height:55px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.count-grid{grid-template-columns:repeat(2,1fr)}}
.mobile-policy-list,.bottom-nav,.mobile-home-brand,.quick-add{display:none}.home-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.home-card{appearance:none;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;color:var(--ink);cursor:pointer}.home-card b{display:block;font-size:30px}.home-card span{display:block;font-weight:750;margin-top:3px}.home-card small{display:block;color:#777;margin-top:5px}.home-card.due b{color:var(--orange)}.home-card.expired b{color:var(--red)}.section-title,.page-heading{margin:8px 0 14px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:12px}.section-title h2,.page-heading h1{margin:0}.section-title p,.page-heading p{margin:4px 0 0;color:#72766e}.section-title button{border:0;background:transparent;color:var(--olive);font-weight:700;cursor:pointer}
@media(max-width:720px){body{padding-bottom:84px}.app > aside{display:none}header{position:static;padding:12px 16px;background:#fff}header .menu,header #newClient,header #newPolicy{display:none!important}header .search{order:0;flex-basis:100%}.search input{font-size:16px;padding:14px 15px;border-radius:14px}#content{padding:18px 16px}.mobile-home-brand{display:flex;justify-content:center;padding:2px 0 18px}.mobile-home-brand img{width:min(230px,62vw);height:64px;object-fit:contain}.hero{display:none}.home-cards{grid-template-columns:1fr 1fr;gap:12px}.home-card{min-height:126px;padding:16px;border-radius:18px;box-shadow:0 1px 0 #00000008}.home-card b{font-size:34px}.home-card span{font-size:17px}.home-card small{font-size:12px;line-height:1.3}.section-title{margin-top:26px;align-items:center}.section-title h2{font-size:22px}.section-title p{font-size:13px}.page-heading{margin:4px 0 18px}.page-heading h1{font-size:28px}.page-heading p{font-size:14px}.policy-panel{background:transparent;border:0;overflow:visible}.policy-panel .panel-head{padding:0 2px 12px;border:0}.desktop-policy-table{display:none}.mobile-policy-list{display:grid;gap:12px}.mobile-policy-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.mobile-policy-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.mobile-policy-top strong{display:block;font-size:18px}.mobile-policy-top span:not(.pill){display:block;color:#696e65;font-size:13px;margin-top:4px}.mobile-policy-top .pill{font-size:11px}.mobile-policy-meta{display:grid;gap:5px;margin:14px 0;color:#5f645c;font-size:14px}.mobile-policy-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mobile-policy-actions a,.mobile-policy-actions button{text-align:center;padding:11px;border-radius:11px}.mobile-policy-actions .whatsapp{background:#e6f5ea}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);padding:7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));box-shadow:0 -6px 20px #0000000d}.bottom-nav button{border:0;background:transparent;color:#777;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:21px;padding:3px 1px}.bottom-nav button span{font-size:10px}.bottom-nav button.active{color:var(--olive);font-weight:750}.bottom-nav .mobile-add{position:relative;width:64px;height:58px;justify-self:center;margin-top:-25px;padding:0;background:transparent;color:inherit;box-shadow:none;overflow:visible;gap:0}.bottom-nav .mobile-add .add-circle{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--olive);color:#fff;font-size:32px;line-height:1;box-shadow:0 5px 14px #0003}.bottom-nav .mobile-add .add-label{position:absolute;top:55px;left:50%;transform:translateX(-50%);color:#777;font-size:10px;line-height:1;white-space:nowrap;font-weight:400}.bottom-nav .mobile-add.active .add-label{color:var(--olive);font-weight:750}.quick-add{display:grid;position:fixed;left:16px;right:16px;bottom:92px;z-index:45;background:#fff;padding:10px;border-radius:16px;border:1px solid var(--line);box-shadow:0 14px 40px #0003;gap:8px}.quick-add.hidden{display:none}.quick-add button{border:0;background:var(--cream);padding:14px;border-radius:11px;text-align:left;font-weight:700}.cards{grid-template-columns:1fr 1fr}.panel:not(.policy-panel) .table-wrap{overflow:auto}dialog{width:100vw;max-width:none;margin:auto 0 0;border-radius:20px 20px 0 0;max-height:90vh}.form-grid input,.form-grid select,.form-grid textarea{font-size:16px;padding:12px}.client-title{align-items:flex-start;flex-direction:column}.actions{flex-wrap:wrap}}
.client-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sort-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.sort-label select{min-width:150px}.client-reference{margin:-4px 0 16px;padding:12px 14px;border-radius:14px;background:#f3f1eb;display:flex;flex-direction:column;gap:3px}.client-reference:empty{display:none}.client-reference span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.client-reference strong{font-size:15px}@media(max-width:700px){.client-head{align-items:stretch}.client-tools{width:100%;justify-content:space-between}.sort-label{flex:1}.sort-label select{width:100%;min-width:0}}
.client-name-cell{display:flex;flex-direction:column;gap:4px}.client-name-cell small{display:block;color:#777;font-size:12px;font-style:italic}.birthday-list{display:grid;gap:10px;margin:0 0 24px}.birthday-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}.birthday-card strong{display:block}.birthday-card span{display:block;color:#777;font-size:13px;margin-top:3px}.birthday-wa{background:#e6f5ea;padding:9px 12px;border-radius:10px;white-space:nowrap}.birthday-empty{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.notes-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}.notes-add textarea{min-height:74px;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;resize:vertical}.notes-list{display:grid;gap:8px;margin-bottom:22px}.note-item{background:#f7f6f2;border:1px solid var(--line);border-radius:12px;padding:11px 13px}.note-item time{font-size:12px;color:#777;font-weight:700}.note-item p{margin:5px 0 0;white-space:pre-wrap}.client-notes .empty{padding:16px}@media(max-width:720px){.birthday-card{align-items:flex-start}.birthday-card .birthday-wa{align-self:center}.notes-add{grid-template-columns:1fr}.notes-add textarea{font-size:16px}}

.quote-mini-list,.quote-list{display:grid;gap:10px;margin-bottom:24px}.quote-mini{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--ink);cursor:pointer}.quote-mini strong,.quote-card strong{display:block}.quote-mini span:not(.pill),.quote-card-head span:not(.pill){display:block;color:#777;font-size:12px;margin-top:3px}.quote-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto auto;gap:8px;margin-bottom:14px}.quote-toolbar input,.quote-toolbar select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px;font-size:14px}.quote-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px}.quote-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.quote-summary{margin:12px 0;color:#60655d}.insured-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.insured-card{border:1px solid var(--line);background:#f8f7f3;border-radius:12px;padding:12px;display:grid;gap:8px}.insured-card label{font-size:12px}.insured-card input,.insured-card select{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;margin-top:4px}.currency-preview{display:block;color:#666;margin-top:5px}.quote-detail-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.quote-detail{margin:14px 0 20px}.insured-line{padding:8px 0;border-bottom:1px solid var(--line)}
@media(max-width:900px){.quote-toolbar{grid-template-columns:1fr 1fr}.quote-toolbar input{grid-column:1/-1}}@media(max-width:720px){.quote-toolbar{grid-template-columns:1fr 1fr}.quote-toolbar input,.quote-toolbar .primary{grid-column:1/-1}.quote-toolbar input,.quote-toolbar select{font-size:16px}.insured-grid{grid-template-columns:1fr}.quote-card .mobile-policy-actions{margin-top:12px}}
.client-name-line{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.insurance-badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.insurance-badges span{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#ece8d8;border:1px solid #d8d1b9;color:#4d4a38;font-size:10px;font-weight:800;letter-spacing:.03em}.agenda-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;max-width:720px}.calendar-head{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;text-align:center;margin-bottom:10px}.calendar-head strong{text-transform:capitalize}.calendar-head button{border:0;background:var(--cream);border-radius:9px;font-size:24px}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-week span{text-align:center;color:#777;font-size:11px;font-weight:700;padding:5px}.cal-day{aspect-ratio:1;border:0;background:#f7f6f2;border-radius:10px;position:relative;cursor:pointer}.cal-day.active{background:var(--olive);color:#fff}.cal-day i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--orange);bottom:7px;left:50%;transform:translateX(-50%)}.cal-day.active i{background:#fff}.appointment-list{display:grid;gap:10px;margin-bottom:24px}.appointment-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}.appointment-main strong,.appointment-main span,.appointment-main small{display:block}.appointment-main span{margin-top:4px}.appointment-main small{color:#777;margin-top:4px}.appointment-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
@media(max-width:720px){.client-name-line{gap:8px}.insurance-badges{max-width:42%}.insurance-badges span{font-size:9px;padding:3px 6px}.agenda-heading{align-items:flex-start}.calendar-card{padding:10px}.appointment-card{align-items:flex-start;flex-direction:column}.appointment-actions{width:100%}.appointment-actions>*{flex:1;text-align:center}.calendar-week,.calendar-grid{gap:3px}.cal-day{border-radius:8px}}
/* V2.0 aseguradoras por cliente */
.client-right-marks{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:max-content}.insurer-logos{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.insurer-logo{display:inline-flex;align-items:center;justify-content:center;height:22px;min-width:0;background:transparent;overflow:visible}.insurer-logo img{display:block;width:auto;max-width:82px;height:20px;object-fit:contain;object-position:center}.insurer-logo.text-logo{height:auto;min-height:18px;max-width:none;padding:2px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface2);font-size:9px;font-weight:800;line-height:1.1;white-space:nowrap;color:var(--muted)}.insurer-logo.text-logo{height:auto;min-height:18px;max-width:none;padding:2px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface2);font-size:9px;font-weight:800;line-height:1.1;white-space:nowrap;color:var(--muted)}.insurer-field{border:1px solid var(--line);border-radius:12px;padding:12px}.insurer-field legend{padding:0 6px;font-weight:750}.insurer-checks{display:flex;gap:7px;flex-wrap:wrap}.insurer-check{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:7px 9px;background:#faf9f5}.insurer-check input{width:auto!important;margin:0}.client-insurers-detail{display:flex;gap:6px;flex-wrap:wrap;margin:-2px 0 12px}
@media(max-width:720px){.client-right-marks{max-width:45%}.insurer-logo{height:20px}.insurer-logo img{max-width:68px;height:18px}.insurer-logo.text-logo{height:auto;min-height:18px;max-width:none;padding:2px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface2);font-size:9px;font-weight:800;line-height:1.1;white-space:nowrap;color:var(--muted)}}

.policy-document{margin:16px 0}.policy-document-btn{display:inline-flex!important;align-items:center;gap:8px;text-decoration:none!important}.policy-document-empty{margin:14px 0;padding:12px 14px;border:1px dashed #c9cdbf;border-radius:12px;color:#6f7568;background:#f8f9f5}

.policy-back-btn{display:inline-flex;align-items:center;justify-content:center;margin:0 0 14px;padding:11px 16px;font-weight:750}.policy-document{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.policy-download-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink);padding:11px 16px;font-weight:750}@media(max-width:720px){.policy-back-btn{display:flex;width:100%;min-height:48px;font-size:16px;margin-bottom:16px}.policy-document{display:grid;grid-template-columns:1fr;gap:10px}.policy-document-btn,.policy-download-btn{display:flex!important;width:100%;min-height:48px;justify-content:center;font-size:16px}#modalBody>.actions{margin-top:18px}.modal-head button{display:inline-flex}}

.policy-pdf-viewer{margin:14px 0 18px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#f2f2ee}.policy-pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#fff;border-bottom:1px solid var(--line)}.policy-pdf-viewer iframe{display:block;width:100%;height:min(72vh,760px);border:0;background:#fff}@media(max-width:720px){.policy-pdf-viewer{margin-left:-18px;margin-right:-18px;border-left:0;border-right:0;border-radius:0}.policy-pdf-viewer iframe{height:68vh}.policy-pdf-toolbar{position:sticky;top:0;z-index:2}.policy-back-btn{position:sticky;top:0;z-index:3;background:#fff}}

/* V2.0.12: botones WhatsApp con icono */
.whatsapp{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1}
.whatsapp img{display:block;width:24px;height:24px;object-fit:contain}
.birthday-wa{min-width:44px;min-height:44px;padding:8px}
.mobile-policy-actions .whatsapp{min-height:44px}

/* V2.0.13: acciones de clientes alineadas en una sola fila */
td.client-row-actions{display:table-cell!important;white-space:nowrap;vertical-align:middle;}
td.client-row-actions .iconbtn,td.client-row-actions .whatsapp{display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;}
td.client-row-actions .whatsapp{margin-left:8px;}
@media(max-width:720px){td.client-row-actions{white-space:nowrap!important;}td.client-row-actions .whatsapp{margin-left:7px;}td.client-row-actions .whatsapp img{width:24px;height:24px;}}

/* V2.0.14: salida visible y consistente en modales */
.modal-head{position:sticky;top:0;z-index:20;background:#fff;padding-top:max(15px,env(safe-area-inset-top));gap:12px}
.modal-close-btn{display:inline-flex!important;align-items:center;justify-content:center;min-height:40px;padding:8px 12px!important;border:1px solid var(--line)!important;border-radius:9px;background:#fff!important;color:var(--ink);font-size:14px!important;font-weight:750;white-space:nowrap}
@media(max-width:720px){dialog{width:100vw;max-width:100vw;max-height:100dvh;margin:auto 0 0;border-radius:18px 18px 0 0}.modal-head{padding-left:18px;padding-right:18px}.modal-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-close-btn{min-height:44px;font-size:15px!important}#modalBody{padding-bottom:calc(24px + env(safe-area-inset-bottom))}}

/* V2.0.16: detalle de cliente como vista navegable, no modal */
.client-detail-nav{display:flex;align-items:center;margin:0 0 12px}.client-back-btn{min-height:44px;padding:10px 14px;font-weight:750}.client-detail-body{padding:18px}.client-detail-panel{overflow:visible}
@media(max-width:720px){.client-detail-page{padding-top:2px}.client-detail-nav{position:sticky;top:0;z-index:8;background:var(--cream);padding:4px 0 10px}.client-back-btn{width:100%;min-height:48px;font-size:16px}.client-detail-body{padding:16px}.client-detail-panel .panel-head{padding:15px 16px}.client-detail-panel .panel-head strong{font-size:20px}.client-detail-panel .card b{font-size:16px}}
/* V2.0.17 — visor PDF multipágina responsive */
.policy-pdf-pages{padding:12px;display:flex;flex-direction:column;align-items:center;gap:14px;max-height:72vh;overflow:auto;-webkit-overflow-scrolling:touch;background:#e9e9e5}.pdf-page-wrap{width:100%;max-width:900px;display:flex;flex-direction:column;align-items:center;gap:6px}.pdf-page-label{font-size:12px;color:#62655d;align-self:flex-start}.pdf-page-canvas{display:block;max-width:100%;height:auto!important;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.16)}.pdf-state{display:block;font-size:12px;color:#6c7067;margin-top:2px}.policy-pdf-viewer iframe{display:none!important}@media(max-width:720px){.policy-pdf-pages{padding:8px;gap:10px;max-height:none;overflow:visible}.pdf-page-wrap{max-width:100%}.policy-pdf-toolbar{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}}

/* V2.0.24 — control de pagos */
.policy-payment-state{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0;padding:12px;border:1px solid var(--border,#d8ded3);border-radius:12px}.payment-status{font-weight:700;padding:7px 11px;border-radius:99px}.payment-status.paid{background:#e2f4e8;color:#1e6b3c}.payment-status.pending{background:#fff0d5;color:#8b5200}.pending-payment-list{display:grid;gap:9px;margin-bottom:20px}.pending-payment-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card,#fff);border:1px solid var(--border,#ddd);border-radius:13px;padding:13px}.pending-payment-card>div{display:grid;gap:4px;min-width:0}.pending-payment-card small{opacity:.75}.pending-payment-card b{font-size:14px}@media(max-width:520px){.pending-payment-card{align-items:flex-start}.pending-payment-card button{flex-shrink:0}}

/* V2.0.25: payment list clearly visible directly under the home summary cards */
.home-payment-section{margin:18px 0 24px;padding:16px;border:1px solid var(--border,#d8ded3);border-radius:16px;background:var(--card,#fff)}
.home-payment-section .section-title{margin-top:0}
.home-payment-section .pending-payment-list{margin-bottom:0}
@media(max-width:600px){.home-payment-section{padding:13px;margin:14px 0 20px}}

/* APSE 2.0.26: aviso compacto de pago rechazado */
.reject-payment-btn{appearance:none;border:1px solid #f3a5a5;background:#fff0ed;color:#b42332;border-radius:8px;padding:6px 9px;font-size:12px;font-weight:700;line-height:1.2;cursor:pointer;white-space:nowrap;min-height:29px}.reject-payment-btn:hover{background:#ffe1dc;border-color:#dd7575}.reject-payment-btn:focus-visible{outline:2px solid #b42332;outline-offset:2px}.client-policy-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.reject-message-preview{white-space:normal;background:#f6f7f6;border:1px solid #e0e4e0;border-radius:12px;padding:14px;line-height:1.6;margin:12px 0}.reject-policy-picker{display:flex;flex-direction:column;gap:8px}.reject-policy-picker button{text-align:left}.reject-warning{color:#a72b31;font-weight:600}

.client-title .reject-payment-btn,.client-policy-actions .reject-payment-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;visibility:visible!important;opacity:1!important}
.client-title .actions{display:flex;align-items:center;flex-wrap:wrap}

/* APSE 2.0.29: Safari iOS no amplía al enfocar controles de formulario. */
@media (pointer:coarse){
  input,select,textarea{font-size:16px!important;}
  button,a,[role="button"]{touch-action:manipulation;}
}

/* APSE 2.0.30 — correcciones específicas para iOS/PWA */
html{background:#20271a;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{touch-action:manipulation;overflow-x:clip;background:#20271a;}
body.app-open{background:var(--cream);}
.login{min-height:100vh;min-height:100svh;min-height:100dvh;box-sizing:border-box;
 padding:calc(12px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));}
.login-card{max-width:100%;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;}
input,select,textarea{font-size:16px!important;}
button,a,input,select,textarea,[role="button"]{touch-action:manipulation;}
@media(max-width:720px){
 body{padding-bottom:0!important;}
 body.app-open{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important;}
 .login{width:100%;}
 .login-card{width:min(420px,100%);padding:clamp(20px,5vw,36px);}
}

/* Seguimiento periódico de cobros */
.payment-tracker{margin-bottom:18px;padding:14px}.payment-tracker .pending-payment-card{margin:10px 0}.payment-cycle-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-left:4px solid #9eae73}.payment-cycle-card.payment-late{border-left-color:#ca574f}.payment-cycle-card.payment-soon{border-left-color:#cc9b46}.payment-info{display:flex;flex-direction:column;gap:4px;min-width:220px;flex:1}.payment-info small,.payment-date{display:block}.payment-date{font-size:.92rem}.payment-hint{color:#746f64}.payment-actions{display:flex;gap:7px;flex-wrap:wrap}.payment-actions button{min-height:38px}.policy-period-detail{margin:12px 0}.payment-tracker .panel-head{flex-wrap:wrap;gap:8px}@media(max-width:600px){.payment-cycle-card{align-items:stretch}.payment-actions{width:100%}.payment-actions button{flex:1}.payment-tracker{padding:8px}}

/* APSE 2.0.33: inicio compacto con secciones plegables */
.home-folds{display:flex;flex-direction:column;gap:12px;margin:12px 0 28px}
.home-fold{border:1px solid rgba(91,103,76,.17);border-radius:16px;background:var(--card, #fff);box-shadow:0 2px 10px rgba(31,41,27,.045);overflow:hidden}
.home-fold-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:17px 20px;min-height:76px;user-select:none}
.home-fold-summary::-webkit-details-marker{display:none}
.home-fold-summary:focus-visible{outline:3px solid #879a70;outline-offset:-3px;border-radius:14px}
.home-fold-heading{display:flex;flex-direction:column;gap:5px;min-width:0}
.home-fold-title{font-size:1.04rem;font-weight:750;color:#273225;line-height:1.25}
.home-fold-subtitle{font-size:.82rem;color:#777f71;line-height:1.3}
.home-fold-tools{display:flex;align-items:center;gap:15px;flex-shrink:0}
.home-fold-count{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;border-radius:100px;background:#ecf1e8;color:#40513c;font-weight:750;font-size:.88rem}
.home-fold-chevron{width:10px;height:10px;border-bottom:2px solid #596755;border-right:2px solid #596755;transform:rotate(45deg);transition:transform .16s ease;margin:0 4px 5px 0}
.home-fold[open] .home-fold-chevron{transform:rotate(225deg);margin:5px 4px 0 0}
.home-fold[open] .home-fold-summary{border-bottom:1px solid rgba(91,103,76,.11)}
.home-fold-body{padding:14px 18px 20px;min-width:0}
.home-fold-actions{display:flex;justify-content:flex-end;margin:0 0 10px}
.home-fold-actions button{font-size:.86rem}
.home-fold-body .home-payment-section{margin:0;padding:0;border:none;box-shadow:none;background:transparent}
.home-fold-body .pending-payment-list,.home-fold-body .appointment-list,.home-fold-body .birthday-list,.home-fold-body .quote-mini-list{margin-top:0}
.home-fold-body .policy-panel{margin:0}
.home-fold-footnote{font-size:.8rem;color:#777f71;margin:12px 0 0}
@media(max-width:650px){.home-folds{gap:10px;margin:7px 0 20px}.home-fold-summary{padding:15px 14px;min-height:70px}.home-fold-body{padding:12px 10px 16px}.home-fold-title{font-size:1rem}.home-fold-subtitle{font-size:.77rem}.home-fold-tools{gap:12px}}

/* APSE 2.0.34 — cotizaciones, recordatorios y ánimo */
.anel-encouragement{display:flex;align-items:flex-start;gap:11px;padding:12px 15px;margin:0 0 6px;border-radius:13px;border:1px solid rgba(168,139,82,.28);background:linear-gradient(110deg,#f6f1e6,#f5f8ed);color:#4c513a;box-shadow:0 2px 12px rgba(44,49,29,.04)}
.anel-encouragement-spark{font-size:1.25rem;line-height:1.25;color:#a58957;flex:none}.anel-encouragement p{font-size:.88rem;line-height:1.5;margin:0;font-weight:550}
.quote-mini-actions{display:flex;gap:8px;align-items:center;justify-content:space-between}.quote-mini-main{flex:1;min-width:0;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;color:inherit;padding:0;cursor:pointer}.quote-mini-actions>.quote-mark-done{flex-shrink:0;font-size:.78rem;white-space:nowrap}
.payment-reminder-wa{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;border:1px solid #c8dfc8;border-radius:10px;background:#f2faf0}.payment-reminder-wa img{width:24px;height:24px;object-fit:contain}
@media(max-width:600px){.anel-encouragement{margin:0 0 6px;padding:11px 12px}.quote-mini-actions{flex-wrap:wrap}.quote-mini-main{flex-basis:100%}.quote-mini-actions>.quote-mark-done{margin-left:auto}.payment-reminder-wa{width:42px;height:40px}}

/* APSE 2.0.36: la frase nunca hereda las reglas del menu lateral. */
.home-folds > .anel-encouragement{position:static!important;height:auto!important;min-height:0!important;max-height:none!important;display:flex!important;flex-direction:row!important;align-items:flex-start!important;flex-shrink:0!important;width:100%!important;overflow:visible!important;}
