.jl-clients{width:100%;max-width:1200px;margin:0 auto;padding:28px 22px 60px;color:inherit;box-sizing:border-box}.jl-clients *{box-sizing:border-box}.jl-head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:25px}.jl-head h1{margin:0 0 6px;font-size:clamp(24px,3vw,34px)}.jl-head p,.jl-form p{color:#969a9f;margin:0}.jl-table-wrap{overflow-x:auto;border:1px solid #ddd4;border-radius:12px}.jl-table{border-collapse:collapse;width:100%;min-width:750px}.jl-table th,.jl-table td{text-align:left;padding:15px;border-bottom:1px solid #ddd3}.jl-table th{font-size:12px;opacity:.7}.jl-table td{font-size:14px}.jl-empty{padding:18px}.jl-edit{cursor:pointer;border:1px solid #aaa6;background:transparent;color:inherit;border-radius:8px;padding:9px 15px}.jl-status{border-radius:20px;padding:5px 10px;font-size:12px}.jl-active{background:#16a34a2b;color:#16a34a}.jl-inactive{background:#ef44442b;color:#ef4444}.jl-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.jl-form>label{display:flex;flex-direction:column;gap:8px;font-weight:600;font-size:13px;min-width:0}.jl-form input:not([type=checkbox]),.jl-form select,.jl-form textarea{width:100%;padding:12px;border:1px solid #9ca3af66;border-radius:9px;background:transparent;color:inherit;font:inherit}.jl-form select option{color:#111;background:#fff}.jl-wide{grid-column:1/-1}.jl-wide h2{font-size:19px;margin:20px 0 10px}.jl-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.jl-options label{display:flex;gap:10px;align-items:center;font-size:14px}.jl-actions{display:flex;gap:12px;align-items:center;margin-top:24px}.jl-alert{border-radius:8px;padding:12px;margin:14px 0}.jl-alert-error{background:#ef444422;color:#dc2626}.jl-alert-success{background:#16a34a22;color:#16a34a}@media(max-width:720px){.jl-form,.jl-options{grid-template-columns:1fr}.jl-clients{padding:16px 12px}}
/* Fase 1 rev. 2 — formulário cadastral e contratual */
.jl-section-header{border-top:1px solid #9994;margin-top:12px;padding-top:17px}
.jl-section-header:first-of-type{border:0;margin-top:0;padding-top:0}
.jl-section-header h2{font-size:20px;margin:0 0 5px}
.jl-section-header p,.jl-hint{font-size:13px;opacity:.78;line-height:1.55;margin:0}
.jl-information{border:1px solid #16a34a55;background:#16a34a13;padding:16px;border-radius:12px}
.jl-information p{margin:8px 0 0;font-size:13px;line-height:1.5}
.jl-form input:focus,.jl-form select:focus,.jl-form textarea:focus{outline:2px solid #16a34a88;outline-offset:1px}
.jl-form>label textarea{min-height:100px}


/* Fase 1 rev. 4 — observações acessíveis na listagem de clientes */
/* Em desktop, overflow visível evita que o scroll horizontal corte o tooltip. */
.jl-clients .jl-table-wrap{overflow:visible}
.jl-clients .jl-table td:first-child{position:relative}
.jl-client-name{display:inline-flex;align-items:center;gap:8px;min-width:0}
.jl-client-notes{display:inline-flex;position:relative;align-items:center;flex:0 0 auto}
.jl-client-notes-trigger{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;padding:0;border:0;border-radius:50%;background:transparent;color:#64748b;cursor:help;font:inherit;transition:background .18s,color .18s}
.jl-client-notes-trigger:hover,.jl-client-notes-trigger:focus-visible{background:#1D593317;color:var(--jl-brand-primary)}
.jl-client-notes-trigger:focus-visible{outline:2px solid var(--jl-brand-primary);outline-offset:2px}
.jl-client-notes-popover{position:absolute;bottom:calc(100% + 10px);left:0;z-index:1000;display:block;width:max-content;min-width:240px;max-width:min(390px,calc(100vw - 40px));max-height:220px;padding:13px 15px;border:1px solid #ffffff22;border-radius:11px;background:#20232a;color:#fff;box-shadow:0 12px 35px #0003;font-size:13px;line-height:1.55;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(5px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease;overflow-y:auto;overflow-wrap:anywhere;text-align:left;font-weight:400}
.jl-client-notes-title{display:block;font-size:12px;font-weight:700;color:#dce9df;margin-bottom:6px}
.jl-client-notes-content{display:block;white-space:pre-wrap}
.jl-client-notes:hover .jl-client-notes-popover,.jl-client-notes:focus-within .jl-client-notes-popover{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
/* Telas menores: não deixar a caixa de observações ser cortada pelo scroll da tabela. */
@media(max-width:900px){
 .jl-clients .jl-table-wrap{overflow-x:auto;overflow-y:auto}
 .jl-client-notes-popover{position:fixed;left:16px;right:16px;bottom:16px;top:auto;width:auto;min-width:0;max-width:none;max-height:min(45vh,280px);transform:translateY(5px)}
 .jl-client-notes:hover .jl-client-notes-popover,.jl-client-notes:focus-within .jl-client-notes-popover{transform:translateY(0)}
}

/* Fase 2.2.A: acesso administrativo ao financeiro na listagem de clientes */
.jl-client-actions{display:inline-flex;align-items:center;flex-wrap:wrap;gap:7px}
.jl-finance-open{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 13px;border:1px solid #16a34a55;border-radius:8px;background:#16a34a15;color:#157d52;cursor:pointer;font:inherit;font-size:13px;font-weight:650;white-space:nowrap}
.jl-finance-open:hover,.jl-finance-open:focus-visible{background:#16a34a27;border-color:#16a34a;outline-offset:2px}

/* Fase 2.2.B + melhorias do cadastro V5: documentos e datas brasileiras */
.jl-clients .jl-upload-field{border:1px dashed #16a34a77;border-radius:12px;background:#16a34a0a;padding:15px 17px}
.jl-clients .jl-upload-field input[type=file]{padding:9px;margin-top:5px;max-width:100%;cursor:pointer}
.jl-clients .jl-upload-field span{font-size:12px;font-weight:400;opacity:.78;line-height:1.5}
.jl-clients .jl-document-list{padding:14px 17px;border:1px solid #94a3b84d;border-radius:12px;min-width:0}
.jl-clients .jl-document-list h3{margin:0 0 10px;font-size:15px}
.jl-clients .jl-document-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:11px 0;border-bottom:1px solid #94a3b833;font-size:13px;overflow-wrap:anywhere}
.jl-clients .jl-document-row:last-child{border-bottom:0}
.jl-clients .jl-document-row>span{min-width:0;flex:1}
.jl-clients .jl-document-row i{color:#16a34a}

/* Fase 3: administração das permissões no vínculo */
.jl-access-panel .jl-access-member{border:1px solid #dfe8e1;border-radius:14px;padding:18px;margin:18px 0;display:grid;gap:12px;max-width:760px}
.jl-access-panel .jl-access-member legend{font-weight:700;padding:0 6px}
.jl-access-panel .jl-access-member legend small{font-weight:400;color:#646e68;margin-left:10px}
.jl-access-panel .jl-access-member label{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.jl-access-panel .jl-access-member select{border:1px solid #dfe8e1;border-radius:8px;padding:6px}
.jl-access-panel .jl-access-check input{width:18px;height:18px}
.jl-access-panel .jl-access-member button{justify-self:start}

/* Fase 8.1 — cartoes de acesso: modalidade != receita */
.jl-clients .jl-grant-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.jl-clients .jl-grant-card{min-width:0;display:grid;gap:13px;border:1px solid #a4cdb854;border-radius:14px;padding:17px;background:rgba(29, 89, 51,.035)}
.jl-clients .jl-grant-title{display:flex;align-items:center;gap:10px;font-weight:700;min-width:0;flex-wrap:wrap}
.jl-clients .jl-grant-title input{width:18px;height:18px;accent-color:var(--jl-brand-primary)}
.jl-clients .jl-grant-title span:nth-child(2){flex:1;min-width:100px}
.jl-clients .jl-grant-pill{border-radius:999px;padding:4px 9px;background:#16a34a16;color:#16834e;font-size:11px}
.jl-clients .jl-grant-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.jl-clients .jl-grant-fields label{min-width:0;display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650}
.jl-clients .jl-grant-fields input,.jl-clients .jl-grant-fields select{min-width:0;max-width:100%;width:100%;padding:9px 10px;border:1px solid #9ca3af66;border-radius:9px;background:transparent;color:inherit;font:inherit}
.jl-clients .jl-grant-fields select option{background:white;color:#111}
.jl-clients .jl-grant-reason{grid-column:1/-1}
.jl-clients .jl-grant-note{font-size:12px;line-height:1.5;opacity:.8;margin:0}
.jl-clients .jl-grant-warning{grid-column:1/-1;padding:12px 15px;border:1px solid #dca74b55;background:#dca74b0d;border-radius:10px;font-size:12px;line-height:1.5}
/* 8.4.2: produto desmarcado ocupa apenas a linha de seleção, inclusive em
   grid lado a lado com outro produto expandido. Conteúdo permanece no DOM
   (sem reset de modalidade, preço, datas ou observações ao alternar). */
.jl-clients .jl-grant-card.is-unselected{align-self:start;gap:0;padding:14px 17px}
.jl-clients .jl-grant-card.is-unselected > .jl-grant-fields,
.jl-clients .jl-grant-card.is-unselected > .jl-grant-note,
.jl-clients .jl-grant-card.is-unselected > .jl-grant-paid-note,
.jl-clients .jl-grant-card.is-unselected > .jl-grant-warning,
.jl-clients .jl-grant-card.is-unselected .jl-grant-catalog-cycle,
.jl-clients .jl-grant-card.is-unselected .jl-grant-pill{display:none!important}
.jl-clients .jl-grant-card.is-included .jl-grant-paid{display:none}
@media(max-width:860px){.jl-clients .jl-grant-list{grid-template-columns:1fr}}
@media(max-width:480px){.jl-clients .jl-grant-fields{grid-template-columns:1fr}}

.jl-clients .jl-grant-paid-note{font-size:12px;line-height:1.5;margin:0;opacity:.8}
.jl-clients .jl-grant-card.is-included .jl-grant-paid-note{display:none}
.jl-clients .jl-grant-card:not(.is-included) .jl-grant-note{display:none}

/* Fase 8.2 — referencia do plano comercial do produto. */
.jl-clients .jl-grant-catalog-cycle{font-size:11px;font-weight:500;color:#687c73;margin-left:auto}

/* Fase 8.3 — renovação explícita, sem confundir acesso e lançamento financeiro. */
.jl-clients .jl-grant-monthly{grid-column:1/-1}
.jl-clients .jl-grant-card.is-one-time .jl-grant-monthly{display:none}
.jl-clients .jl-grant-recurring-control{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;line-height:1.4}
.jl-clients .jl-grant-recurring-control input[type=checkbox]{width:17px;height:17px;flex:0 0 auto;accent-color:var(--jl-brand-primary)}
.jl-clients .jl-grant-recurring-status{font-size:12px;line-height:1.5;color:#4b8262;margin:0}
.jl-clients .jl-grant-card.is-included .jl-grant-recurring-control,.jl-clients .jl-grant-card.is-included .jl-grant-recurring-status{display:none!important}
.jl-clients .jl-grant-card.is-one-time .jl-grant-recurring-control{display:none!important}

/* 8.4 courtesy term + history */
.jl-clients .jl-gift-fields{grid-column:1/-1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid #a4cdb854;border-radius:10px;padding:12px}
.jl-clients .jl-gift-fields legend{font-weight:700;font-size:13px;padding:0 5px}
.jl-clients .jl-gift-help{grid-column:1/-1;line-height:1.55;color:#687c73}
.jl-clients .jl-grant-card:not(.is-included) .jl-gift-fields{display:none}
.jl-clients .jl-gift-fields:not(.is-offer-paid) .jl-gift-offer{display:none}
.jl-clients .jl-grant-history{grid-column:1/-1;border:1px solid #a4cdb854;border-radius:12px;padding:14px}
.jl-clients .jl-grant-history summary{font-weight:700;cursor:pointer}
.jl-clients .jl-grant-history article{display:grid;gap:4px;border-top:1px solid #a4cdb830;margin-top:10px;padding-top:10px;font-size:12px}
.jl-clients .jl-grant-history article small{color:#687c73}
@media(max-width:480px){.jl-clients .jl-gift-fields{grid-template-columns:1fr}}

/* Listas de vínculo de usuários — admin, drag & drop + operação acessível por botão. */
.jl-users-transfer{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:13px;align-items:stretch;margin-top:13px}.jl-transfer-panel{min-width:0;background:#fff;border:1px solid #dbe9e0;border-radius:13px;padding:14px;box-shadow:0 6px 24px #163a2810}.jl-transfer-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px}.jl-transfer-head h3{margin:0;font-size:14px;color:#274b38}.jl-transfer-count{display:grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border-radius:15px;background:#e9f4ed;color:#236b46;font-size:11px;font-weight:800}.jl-transfer-search{width:100%;box-sizing:border-box;border:1px solid #dbe6df;border-radius:9px;background:#fbfdfb;padding:10px 12px;font:inherit;font-size:12px;margin-bottom:10px}.jl-transfer-list{padding:5px;margin:0;list-style:none;min-height:150px;max-height:355px;overflow-y:auto;border:1px dashed #d3e4d8;border-radius:10px;background:#f9fcfa;transition:background .2s,border-color .2s}.jl-transfer-list.is-drop-target{background:#e9f9ee;border-color:#268451}.jl-transfer-user{display:flex;align-items:center;gap:9px;min-width:0;margin:4px 2px;padding:10px 9px;border:1px solid #e3ece6;border-radius:9px;background:#fff;cursor:grab}.jl-transfer-user:active{cursor:grabbing}.jl-transfer-user.is-dragging{opacity:.45}.jl-transfer-user[hidden]{display:none}.jl-transfer-avatar{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;color:#2b6e4b;background:#eaf5ed}.jl-transfer-identity{min-width:0;display:flex;flex:1;flex-direction:column;gap:3px}.jl-transfer-identity strong{font-size:12px;overflow-wrap:anywhere}.jl-transfer-identity small{font-size:11px;color:#79877e;overflow-wrap:anywhere}.jl-transfer-move{width:29px;height:29px;flex:0 0 29px;border:1px solid #cde2d3;border-radius:8px;background:white;color:#26754b;cursor:pointer}.jl-transfer-move:hover,.jl-transfer-move:focus-visible{background:#e5f5eb;outline:2px solid #d0e9d6}.jl-transfer-arrows{display:grid;place-items:center;color:#87a995}.jl-transfer-empty{display:none;font-size:12px!important;text-align:center;margin:9px 0 0!important;color:#87958a!important}.jl-transfer-list:empty+.jl-transfer-empty{display:block}.jl-transfer-notice{grid-column:1/-1;font-size:12px!important;color:#347551!important;margin:0!important}@media(max-width:780px){.jl-users-transfer{grid-template-columns:minmax(0,1fr)}.jl-transfer-arrows{transform:rotate(90deg)}.jl-transfer-list{max-height:260px}}

/* Descontos comerciais: seguem a mesma grade e as regras de exibição de produtos pagos. */
.jl-clients .jl-discount-fields{grid-column:1/-1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid #1d593343;border-radius:10px;padding:12px}
.jl-clients .jl-discount-fields legend{font-weight:700;font-size:13px;padding:0 6px;color:var(--jl-brand-primary,#1d5933)}
.jl-clients .jl-discount-fields .jl-discount-permanent{flex-direction:row!important;align-items:center;gap:8px;margin-top:17px}
.jl-clients .jl-discount-fields .jl-discount-permanent input{width:17px;flex:0 0 auto;accent-color:var(--jl-brand-primary,#1d5933)}
.jl-clients .jl-discount-preview{grid-column:1/-1;margin:0;padding:9px 12px;border-radius:9px;background:#1d593310;font-size:12px;line-height:1.5}
.jl-clients .jl-discount-progress,.jl-clients .jl-discount-help{grid-column:1/-1;line-height:1.5;color:#687c73}
.jl-clients .jl-discount-fields.is-no-discount .jl-discount-duration,.jl-clients .jl-discount-fields.is-no-discount .jl-discount-permanent{display:none!important}
.jl-clients .jl-grant-card.is-one-time .jl-discount-duration,.jl-clients .jl-grant-card.is-one-time .jl-discount-permanent{display:none!important}
@media(max-width:480px){.jl-clients .jl-discount-fields{grid-template-columns:minmax(0,1fr)}}

/* Fase 9.7.4 — política administrativa de notificações do cliente. */
.jl-clients .jl-client-mail-policy{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:18px;align-items:center;padding:16px 18px;border:1px solid #1d59333d;border-radius:12px;background:#1d593308}
.jl-clients .jl-client-mail-policy>div{display:grid;gap:6px}
.jl-clients .jl-client-mail-policy strong{display:flex;align-items:center;gap:8px;color:var(--jl-brand-primary,#1d5933)}
.jl-clients .jl-client-mail-policy p,.jl-clients .jl-client-mail-policy small{font-size:12px;line-height:1.5;color:#718078}
.jl-clients .jl-client-mail-policy label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700}
.jl-clients .jl-client-mail-policy select{width:100%;padding:10px 12px;border:1px solid #9ca3af66;border-radius:9px;background:transparent;color:inherit;font:inherit}
@media(max-width:720px){.jl-clients .jl-client-mail-policy{grid-template-columns:1fr}}
