:root{--blue:#0d5cc6;--blue2:#0a4ea9;--ink:#142238;--muted:#64748b;--bg:#f5f8fc;--line:#dde6f1;--white:#fff;--green:#177245;--orange:#9a5a05;--shadow:0 14px 38px rgba(25,52,90,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}button,input{font:inherit}.hidden{display:none!important}.eyebrow{display:inline-flex;color:var(--blue);font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.client-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.client-brand img{width:58px;height:58px;border-radius:18px;object-fit:cover;border:1px solid var(--line)}.client-brand span{display:grid;line-height:1.1}.client-brand strong{font-size:1.05rem}.client-brand small{margin-top:4px;color:var(--blue);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.client-login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 15%,rgba(13,92,198,.14),transparent 30%),var(--bg)}.client-login-card{width:min(100%,520px);display:grid;gap:18px;padding:30px;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.client-login-card h1{font-size:clamp(2rem,7vw,3.25rem);letter-spacing:-.04em;line-height:1.02;margin:8px 0 10px}.client-login-card p{margin:0;color:var(--muted)}.client-login-card label{display:grid;gap:7px;font-weight:800}.client-login-card input{width:100%;padding:14px;border:1px solid #cdd8e7;border-radius:12px;outline:none;background:#fff}.client-login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(13,92,198,.1)}.client-login-card button{border:0;border-radius:12px;background:var(--blue);color:#fff;padding:14px 18px;font-weight:900;cursor:pointer}.client-login-card button:hover{background:var(--blue2)}.status{min-height:22px;color:#b42318!important;font-weight:750}.back-link{color:var(--blue);font-weight:800;text-decoration:none}.client-topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px max(18px,calc((100% - 1180px)/2));background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.client-brand.compact img{width:46px;height:46px;border-radius:14px}.client-top-actions{display:flex;align-items:center;gap:12px}.client-top-actions span{font-weight:800}.client-top-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}.client-main{width:min(1180px,100%);margin:auto;padding:30px 18px 60px}.client-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:end;margin-bottom:22px}.client-hero h1{font-size:clamp(2.1rem,5vw,4rem);line-height:1.02;letter-spacing:-.04em;margin:9px 0}.client-hero p{max-width:680px;color:var(--muted);margin:0}.client-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}.summary-card span{display:block;color:var(--muted);font-size:.78rem;margin-bottom:5px}.summary-card b{font-size:1.35rem}.client-tabs{display:flex;gap:8px;overflow:auto;padding:6px;margin:0 0 18px;background:#eaf0f8;border-radius:14px}.client-tabs button{white-space:nowrap;border:0;background:transparent;border-radius:10px;padding:10px 14px;font-weight:850;color:#52647c;cursor:pointer}.client-tabs button.active{background:#fff;color:var(--blue);box-shadow:0 3px 12px rgba(27,58,98,.08)}.client-tab{display:none}.client-tab.active{display:block}.client-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.client-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.panel-heading h2{margin:2px 0 0;font-size:1.4rem}.empty{padding:18px;border:1px dashed #cdd8e7;border-radius:14px;color:var(--muted);text-align:center}.next-card{padding:16px;border-radius:16px;background:#f2f7ff;border:1px solid #d7e6fb}.next-card b{display:block;font-size:1.2rem}.next-card p{margin:7px 0;color:var(--muted)}.pill{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:#edf4ff;color:#174f94;font-size:.75rem;font-weight:900}.pill.green{background:#e7f7ee;color:#17623e}.pill.orange{background:#fff2df;color:#8b5400}.package-grid,.dog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.package-card,.dog-card{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}.package-card h3,.dog-card h3{margin:7px 0}.package-meta,.dog-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.87rem}.progress{height:9px;background:#e8eef6;border-radius:999px;overflow:hidden;margin:12px 0 7px}.progress>span{display:block;height:100%;background:var(--blue);border-radius:inherit}.money-row{display:flex;justify-content:space-between;gap:12px;padding-top:10px;margin-top:10px;border-top:1px solid var(--line)}.money-row span{color:var(--muted)}.dog-detail{display:grid;gap:9px;margin-top:12px}.dog-detail div{padding:10px 12px;background:#f8fafc;border-radius:12px}.dog-detail strong{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}.timeline{display:grid;gap:12px}.session-card{border:1px solid var(--line);border-left:4px solid #9db2ca;border-radius:15px;padding:16px;background:#fff}.session-card.realizada{border-left-color:#2e9b66}.session-card.agendada{border-left-color:var(--blue)}.session-card.cancelada{border-left-color:#d28b34;background:#fffaf4}.session-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.session-top h3{margin:4px 0 0}.session-card p{margin:8px 0;color:#3f5269}.session-card strong{color:var(--ink)}.score{font-weight:900;color:var(--green)}.homework{margin-top:12px!important;padding:12px;border-radius:12px;background:#f2f8f4;color:#23543a!important}.payments-list{display:grid;gap:10px}.payment-item{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.payment-item:last-child{border-bottom:0}.payment-item small{display:block;color:var(--muted)}.client-footer{display:flex;justify-content:space-between;gap:18px;padding:26px max(18px,calc((100% - 1180px)/2));border-top:1px solid var(--line);color:var(--muted);background:#fff}.client-footer a{color:var(--blue);font-weight:800;text-decoration:none}@media(max-width:860px){.client-hero{grid-template-columns:1fr}.client-grid.two{grid-template-columns:1fr}.package-grid,.dog-grid{grid-template-columns:1fr}.client-top-actions span{display:none}}@media(max-width:560px){.client-login-shell{padding:12px}.client-login-card{padding:22px;border-radius:22px}.client-main{padding:22px 12px 50px}.client-topbar{padding:10px 12px}.client-brand.compact span{display:none}.client-hero h1{font-size:2.35rem}.client-summary{grid-template-columns:1fr 1fr}.client-panel{padding:15px;border-radius:16px}.session-top{display:grid}.client-footer{padding:22px 14px}.client-tabs{border-radius:12px}}

/* V2.2 — avisos leves e confirmação/cancelamento de aulas */
.client-notices:empty{display:none}.client-notices{display:grid;gap:12px;margin-bottom:16px}.portal-notice{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:17px 18px;border:1px solid #cfe0f5;border-radius:18px;background:#f1f7ff;box-shadow:var(--shadow)}.portal-notice-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--blue);color:#fff;font-weight:950}.portal-notice h2{margin:3px 0 5px;font-size:1.12rem}.portal-notice p{margin:0;color:#40536b;white-space:pre-wrap}.portal-notice small{display:block;margin-top:8px;color:var(--muted)}.session-response{display:grid;gap:9px;margin-top:14px;padding:12px;border-radius:13px;background:#f8fafc;border:1px solid var(--line)}.attendance-badge{font-size:.84rem;font-weight:900}.attendance-badge.confirmed{color:var(--green)}.attendance-badge.cancelled{color:var(--orange)}.attendance-badge.pending{color:#5d6d81}.session-response-actions{display:flex;gap:8px;flex-wrap:wrap}.session-response-actions button{border-radius:10px;padding:9px 12px;font:inherit;font-weight:850;cursor:pointer}.session-response-actions button:disabled{opacity:.55;cursor:wait}.confirm-session{border:0;background:var(--blue);color:#fff}.cancel-session{border:1px solid #e2c9c5;background:#fff;color:#9a2f26}.session-response small{color:var(--muted)}@media(max-width:560px){.portal-notice{grid-template-columns:1fr}.portal-notice-icon{width:30px;height:30px}.session-response-actions{display:grid}.session-response-actions button{width:100%}}

/* V2.3 — reagendamento, evolução e termos em texto */
.reschedule-session{border:1px solid #bfd3ee!important;background:#eef5ff!important;color:var(--blue)!important}.reschedule-client-status{display:grid;gap:3px;padding:10px;border-radius:11px;background:#eef5ff;border:1px solid #d4e4f8}.reschedule-client-status b{font-size:.86rem;color:var(--blue)}.reschedule-client-status span{font-size:.82rem;color:var(--muted)}.reschedule-client-status.approved{background:#eaf8f0;border-color:#caead8}.reschedule-client-status.approved b{color:var(--green)}.reschedule-client-status.rejected{background:#fff4e7;border-color:#f0d6b4}.reschedule-client-status.rejected b{color:var(--orange)}.evolution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.evolution-card{border:1px solid var(--line);border-radius:18px;padding:17px;background:#fff}.evolution-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.evolution-card h3{margin:6px 0 0;font-size:1.35rem}.evolution-score{display:grid;text-align:right}.evolution-score b{font-size:1.75rem;color:var(--blue);line-height:1}.evolution-score span{font-size:.75rem;color:var(--muted);margin-top:4px}.evolution-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.evolution-stats>div{padding:10px;background:#f7f9fc;border-radius:12px}.evolution-stats span{display:block;font-size:.74rem;color:var(--muted)}.evolution-stats b{font-size:1.05rem}.score-history>span{font-size:.8rem;color:var(--muted);font-weight:800}.score-history>div{height:105px;display:flex;align-items:end;gap:7px;margin-top:8px;padding:10px;background:#f7f9fc;border-radius:12px}.score-history>div>span{flex:1;height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:4px}.score-history i{display:block;width:100%;max-width:28px;background:var(--blue);border-radius:6px 6px 3px 3px;min-height:10px}.score-history b{font-size:.72rem;color:var(--muted)}.evolution-latest{margin-top:14px;padding:13px;background:#f2f8f4;border-radius:12px}.evolution-latest p{margin:6px 0;color:#3f5269}.empty.compact{padding:12px;margin-top:12px}.terms-list{display:grid;gap:14px}.term-card{border:1px solid var(--line);border-radius:17px;padding:17px;background:#fff}.term-card.accepted{border-color:#cce8d7}.term-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.term-card-head h3{margin:7px 0 0}.term-card-head small{color:var(--muted)}.term-content{white-space:pre-wrap;margin:16px 0;padding:15px;border-radius:12px;background:#f8fafc;color:#33445a;max-height:440px;overflow:auto}.term-confirm{display:flex;gap:9px;align-items:flex-start;padding:12px;background:#fff9ea;border:1px solid #f1dfaa;border-radius:12px;font-weight:750}.term-confirm input{margin-top:4px}.term-accept-btn{margin-top:10px;border:0;border-radius:11px;background:var(--blue);color:#fff;padding:11px 14px;font:inherit;font-weight:900;cursor:pointer}.term-accept-btn:disabled{opacity:.5;cursor:not-allowed}.client-dialog{width:min(94vw,560px);border:0;border-radius:22px;padding:0;box-shadow:0 25px 70px rgba(15,31,55,.28)}.client-dialog::backdrop{background:rgba(9,18,31,.55);backdrop-filter:blur(3px)}.client-dialog-card{display:grid;gap:14px;padding:22px}.client-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.client-dialog-head h2{margin:4px 0}.client-dialog-head p{margin:4px 0 0;color:var(--muted)}.client-dialog-head>button{border:0;background:transparent;font-size:1.7rem;cursor:pointer}.client-dialog-card label{display:grid;gap:6px;font-weight:800}.client-dialog-card input,.client-dialog-card textarea{width:100%;border:1px solid #cdd8e7;border-radius:11px;padding:12px;font:inherit}.client-dialog-card textarea{min-height:90px;resize:vertical}.dialog-note{margin:0;color:var(--muted);font-size:.9rem}.client-dialog-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.client-dialog-actions button{border:0;border-radius:10px;background:var(--blue);color:#fff;padding:11px 14px;font:inherit;font-weight:850;cursor:pointer}.client-dialog-actions .secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}@media(max-width:860px){.evolution-grid{grid-template-columns:1fr}}@media(max-width:560px){.evolution-stats{grid-template-columns:1fr 1fr}.term-card-head{display:grid}.client-dialog-card{padding:18px}.client-dialog-actions{display:grid}.client-dialog-actions button{width:100%}}
