:root{color-scheme:light;--bg: #dfe6f0;--bg-elevated: #ffffff;--surface: #ffffff;--surface-2: #edf2f8;--surface-3: #e2e8f2;--border: #cbd5e1;--border-strong: #94a3b8;--text: #0f172a;--text-muted: #475569;--text-soft: #64748b;--primary: #b91c1c;--primary-hover: #991b1b;--primary-soft: #fee2e2;--primary-contrast: #ffffff;--income: #047857;--income-soft: #ecfdf5;--expense: #be123c;--expense-soft: #fff1f2;--warning: #b45309;--warning-soft: #fffbeb;--info: #0369a1;--info-soft: #f0f9ff;--hoje: #c2410c;--hoje-soft: #fff7ed;--shadow-1: 0 1px 2px rgba(15, 23, 42, .07), 0 2px 6px rgba(15, 23, 42, .07);--shadow-2: 0 8px 24px rgba(15, 23, 42, .12);--shadow-3: 0 20px 45px rgba(15, 23, 42, .2);--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--radius-full: 999px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--tap: 44px;--tabbar-height: 60px;--content-max: 1180px}[data-theme=dark]{color-scheme:dark;--bg: #0b1020;--bg-elevated: #141a2c;--surface: #161d31;--surface-2: #1b2338;--surface-3: #232c45;--border: #27314c;--border-strong: #3a4463;--text: #edf1fb;--text-muted: #9fabc7;--text-soft: #74809e;--primary: #f87171;--primary-hover: #fca5a5;--primary-soft: #3b1010;--primary-contrast: #0b1020;--income: #34d399;--income-soft: #052e26;--expense: #fb7185;--expense-soft: #3b0a1c;--warning: #fbbf24;--warning-soft: #3a2a06;--info: #38bdf8;--info-soft: #062b3d;--hoje: #fb923c;--hoje-soft: #3a1d0a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 8px 24px rgba(0, 0, 0, .45);--shadow-3: 0 20px 45px rgba(0, 0, 0, .55)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}h1,h2,h3,h4,p{margin:0}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}a{color:var(--primary);text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}hr{border:none;border-top:1px solid var(--border);margin:0}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);border:3px solid transparent;background-clip:content-box}.text-muted{color:var(--text-muted)}.text-soft{color:var(--text-soft)}.text-income{color:var(--income)}.text-expense{color:var(--expense)}.text-center{text-align:center}.mono{font-variant-numeric:tabular-nums}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.app-loading{min-height:100vh;min-height:100dvh;display:grid;place-items:center;gap:14px;padding:32px;text-align:center;color:var(--text-muted)}.titulo-tela,.titulo-tela__sub{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.app-main{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding-top:4px;padding-right:calc(16px + var(--safe-right));padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 28px);padding-left:calc(16px + var(--safe-left))}.app-shell--com-sair .app-main{padding-top:calc(var(--safe-top) + 62px)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:stretch;justify-content:space-around;gap:2px;height:calc(var(--tabbar-height) + var(--safe-bottom));padding:0 6px var(--safe-bottom);background:var(--bg-elevated);border-top:1px solid var(--border)}.tabbar__item{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;min-width:0;min-height:var(--tap);color:var(--text-soft);border-radius:var(--radius-sm);transition:color .15s ease}.tabbar__item:active{background:var(--surface-2)}.tabbar__item--active{color:var(--primary)}.tabbar__label{font-size:10.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tabbar__item--active .tabbar__icon{transform:translateY(-1px)}.aviso-modo{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding-top:8px;padding-right:calc(14px + var(--safe-right));padding-bottom:8px;padding-left:calc(14px + var(--safe-left));background:var(--warning-soft);color:var(--warning);border-top:1px solid var(--warning);border-bottom:1px solid var(--warning);font-size:12.5px;font-weight:650;text-align:center}.sidebar{display:none}.page{display:flex;flex-direction:column;gap:16px;padding-top:8px}.page--narrow{max-width:640px;margin:0 auto;width:100%}.stack{display:flex;flex-direction:column;gap:10px}.stack--tight{gap:6px}.stack--loose{gap:18px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.grid-2{display:grid;gap:12px;grid-template-columns:1fr}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.card--pad{padding:16px}.card--flat{box-shadow:none}.card--danger{border-color:var(--expense)}.card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px}.card__title{font-size:15.5px;font-weight:650}.card__sub{font-size:12.5px;color:var(--text-muted)}.card__body{padding:0 16px 16px}.card__footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:center;justify-content:flex-end}.section{display:flex;flex-direction:column;gap:10px}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 2px}.section__title{font-size:15px;font-weight:700}.section__action{border:0;background:none;color:var(--primary);font-size:13px;font-weight:600;padding:4px 2px;min-height:var(--tap)}.hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:20px;color:#fff;background:linear-gradient(135deg,#b91c1c,#991b1b 55%,#7f1d1d);box-shadow:0 12px 30px #b91c1c52}[data-theme=dark] .hero{background:linear-gradient(135deg,#991b1b,#7f1d1d 55%,#5a1414);box-shadow:0 12px 30px #00000073}.hero__label{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.82}.hero__value{font-size:34px;font-weight:750;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums}.hero__row{display:flex;gap:18px;margin-top:14px;flex-wrap:wrap}.hero__chip{display:flex;flex-direction:column;gap:1px}.hero__chip-label{font-size:11.5px;opacity:.85}.hero__chip-value{font-size:15.5px;font-weight:650;font-variant-numeric:tabular-nums}.hero__note{margin-top:14px;font-size:12px;line-height:1.45;opacity:.86}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:3px;min-width:0}.stat__label{font-size:11.5px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.stat__value{font-size:19px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat__hint{font-size:11.5px;color:var(--text-soft)}.stat--income .stat__value{color:var(--income)}.stat--expense .stat__value{color:var(--expense)}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:3px;min-width:0}.kpi__label{font-size:11.5px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.kpi__value{font-size:20px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi__hint{font-size:11.5px;color:var(--text-soft)}.kpi__trend{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted)}.list{display:flex;flex-direction:column}.list__item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--border);background:none;border-left:0;border-right:0;border-bottom:0;width:100%;min-height:calc(var(--tap) + 8px);text-align:left;color:var(--text)}.list__item:first-child{border-top:0}.list__item--action{cursor:pointer}button.list__item:active,.list__item--action:active{background:var(--surface-2)}.list__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.list__title{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list__sub{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list__side{display:flex;align-items:center;gap:6px;flex-shrink:0}.list__amount{font-size:15px;font-weight:680;font-variant-numeric:tabular-nums;white-space:nowrap}.list__amount--income{color:var(--income)}.list__amount--expense{color:var(--expense)}.list__note{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.list-day{display:flex;flex-direction:column}.list-day__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 6px;background:var(--surface-2);border-top:1px solid var(--border);font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);position:sticky;top:var(--safe-top);z-index:2}.list-day:first-child .list-day__head{border-top:0}.avatar{width:38px;height:38px;flex-shrink:0;border-radius:var(--radius-full);display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff;letter-spacing:.02em}.avatar--sm{width:30px;height:30px;font-size:11.5px}.dot{width:9px;height:9px;border-radius:var(--radius-full);flex-shrink:0;background:var(--text-soft)}.aluno-linha{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;width:100%;min-height:calc(var(--tap) + 12px);padding:12px 14px;border-top:1px solid var(--border);background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer;color:var(--text)}.aluno-linha:first-child{border-top:0}.aluno-linha:active,button.aluno-linha:active{background:var(--surface-2)}.aluno-linha__nome{order:1;flex:1 1 auto;min-width:0;font-size:15px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aluno-linha__status{order:2;flex-shrink:0;display:inline-flex;align-items:center;gap:6px}.aluno-linha__whatsapp{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:var(--radius-full);border:1px solid rgba(37,211,102,.4);background:#25d3661f;color:#15803d;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s}.aluno-linha__whatsapp:hover{background:#25d36638;border-color:#25d366}.aluno-linha__whatsapp:active{transform:scale(.92)}.aluno-linha__whatsapp--disabled{opacity:.45;filter:grayscale(1)}[data-theme=dark] .aluno-linha__whatsapp{border-color:#25d36666;background:#25d36629;color:#25d366}[data-theme=dark] .aluno-linha__whatsapp:hover{background:#25d36647}.aluno-linha__meta{order:3;flex:1 1 100%;min-width:0;font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-top:1px solid var(--border);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;min-height:var(--tap);text-align:left}.row:first-child{border-top:0}button.row:active{background:var(--surface-2)}.row__label{font-size:14.5px;font-weight:550}.row__value{font-size:14px;color:var(--text-muted);display:flex;align-items:center;gap:6px;flex-shrink:1;min-width:0;text-align:right;word-break:break-word}.row--largo{flex-direction:column;align-items:flex-start;gap:6px}.row--largo .row__label{font-size:13.5px;color:var(--text-muted)}.row--largo .row__value{font-size:14px;color:var(--text);display:block;width:100%;flex-shrink:1;text-align:left;white-space:normal;word-break:break-word;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);padding:11px 16px;font-size:14.5px;font-weight:650;background:var(--surface-3);color:var(--text);transition:transform .08s ease,background .15s ease,opacity .15s ease;min-height:var(--tap)}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--primary);color:var(--primary-contrast)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--success{background:var(--income);color:var(--primary-contrast)}.btn--success:hover:not(:disabled){filter:brightness(.92)}.btn--add{background:var(--primary);color:var(--primary-contrast)}.btn--add:hover:not(:disabled){background:var(--primary-hover)}[data-theme=dark] .fab,[data-theme=dark] .btn--add{background:var(--income);color:var(--primary-contrast);box-shadow:0 10px 24px #052e2699,0 4px 12px #34d39959}[data-theme=dark] .fab:hover,[data-theme=dark] .btn--add:hover:not(:disabled){filter:brightness(.92)}.btn--outline{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn--ghost{background:transparent;color:var(--primary)}.btn--danger{background:var(--expense-soft);color:var(--expense)}.btn--sm{padding:7px 12px;font-size:13px;min-height:var(--tap)}.btn--block{width:100%}.btn--icon{padding:0;width:var(--tap);height:var(--tap);min-height:var(--tap);flex-shrink:0}.icon-btn{display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:var(--radius-full);border:1px solid transparent;background:transparent;color:var(--text-muted);flex-shrink:0}.icon-btn:active{background:var(--surface-3)}.icon-btn--solid{background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:var(--shadow-1)}.fab{position:fixed;right:calc(18px + var(--safe-right));bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 18px);z-index:45;width:58px;height:58px;border-radius:var(--radius-full);border:0;background:var(--primary);color:var(--primary-contrast);display:grid;place-items:center;box-shadow:0 10px 24px #b91c1c73}.fab:active{transform:scale(.95)}.sair-flutuante{position:fixed;top:calc(var(--safe-top) + 10px);right:calc(14px + var(--safe-right));z-index:35;width:var(--tap);height:var(--tap);min-height:var(--tap);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;box-shadow:var(--shadow-1)}.sair-flutuante:active{background:var(--surface-3)}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:12.5px;font-weight:650;color:var(--text-muted)}.field__hint{font-size:12px;color:var(--text-soft)}.field__error{font-size:12.5px;color:var(--expense);font-weight:600}.campo-linha{display:grid;grid-template-columns:1fr;gap:14px}.input,.select,.textarea{width:100%;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);padding:11px 12px;font-size:16px;min-height:46px;appearance:none;-webkit-appearance:none}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #b91c1c40}.textarea{min-height:84px;resize:vertical}.select{background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}.input-group{display:flex;align-items:stretch}.input-group .input{border-radius:0}.input-group .input:first-child{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.input-group .input:last-child{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.input-suffix{display:grid;place-items:center;padding:0 12px;border:1px solid var(--border-strong);border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-3);color:var(--text-muted);font-size:14px;font-weight:600}.segmented{display:flex;gap:4px;padding:4px;background:var(--surface-3);border-radius:var(--radius-sm)}.segmented__option{flex:1;border:0;background:none;border-radius:7px;padding:9px 8px;font-size:13.5px;font-weight:650;color:var(--text-muted);min-height:var(--tap);transition:background .15s ease}.segmented__option--active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.segmented__option--expense.segmented__option--active{color:var(--expense)}.segmented__option--income.segmented__option--active{color:var(--income)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-full);padding:8px 13px;font-size:13.5px;font-weight:600;color:var(--text-muted);min-height:var(--tap)}.chip--active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.chip-scroll{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chip-scroll::-webkit-scrollbar{display:none}.chip-scroll .chip{flex-shrink:0}.color-row{display:flex;flex-wrap:wrap;gap:10px}.color-swatch{width:34px;height:34px;border-radius:var(--radius-full);border:2px solid transparent;padding:0;position:relative}.color-swatch:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:var(--radius-full)}.color-swatch--active{border-color:var(--text)}.switch{display:inline-flex;align-items:center;gap:10px;background:none;border:0;padding:0;min-height:var(--tap);text-align:left}.switch__track{width:48px;height:29px;border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--border-strong);position:relative;transition:background .18s ease;flex-shrink:0}.switch--on .switch__track{background:var(--primary);border-color:var(--primary)}.switch__thumb{position:absolute;top:2px;left:2px;width:23px;height:23px;border-radius:var(--radius-full);background:#fff;box-shadow:var(--shadow-1);transition:transform .18s ease}.switch--on .switch__thumb{transform:translate(19px)}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;min-height:var(--tap);color:var(--text-soft)}.search__input{flex:1;border:0;background:none;font-size:16px;min-width:0;padding:10px 0}.search__input:focus{outline:none}.month-picker{display:flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:3px;box-shadow:var(--shadow-1);min-height:var(--tap)}.month-picker__btn{width:34px;height:34px;border:0;background:none;border-radius:var(--radius-full);display:grid;place-items:center;color:var(--text-muted);position:relative}.month-picker__btn:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:var(--radius-full)}.month-picker__btn:active{background:var(--surface-3)}.month-picker__label{border:0;background:none;font-size:13.5px;font-weight:700;padding:0 6px;min-width:116px;text-align:center;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-full);padding:3px 9px;font-size:11.5px;font-weight:700;background:var(--surface-3);color:var(--text-muted);white-space:nowrap}.badge--income{background:var(--income-soft);color:var(--income)}.badge--tap{border:0;font-family:inherit;cursor:pointer;position:relative}.badge--tap:after{content:"";position:absolute;top:-11px;right:-8px;bottom:-11px;left:-8px;border-radius:var(--radius-full)}.badge--tap:active{transform:scale(.96)}.badge--expense{background:var(--expense-soft);color:var(--expense)}.badge--warn{background:var(--warning-soft);color:var(--warning)}.badge--info{background:var(--info-soft);color:var(--info)}.badge--primary{background:var(--primary-soft);color:var(--primary)}.status{display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-full);padding:3px 9px;font-size:11.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;background:var(--surface-3);color:var(--text-muted);border:1px solid transparent}.status--em-dia{background:var(--income-soft);color:var(--income)}.status--a-vencer{background:var(--warning-soft);color:var(--warning)}.status--vence-hoje{background:var(--hoje-soft);color:var(--hoje)}.status--atrasada{background:var(--expense-soft);color:var(--expense);border-color:var(--expense)}.status--inativo{background:var(--surface-3);color:var(--text-muted)}.status--sem-vencimento{background:transparent;color:var(--text-soft);border-style:dashed;border-color:var(--border-strong)}.banner{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius);font-size:13px;line-height:1.4;background:var(--info-soft);color:var(--info);border:1px solid var(--info)}.banner--warn{background:var(--warning-soft);color:var(--warning);border-color:var(--warning)}.banner--danger{background:var(--expense-soft);color:var(--expense);border-color:var(--expense)}.banner--local{background:var(--surface-3);color:var(--text-muted);border-color:var(--border)}.banner--income{background:var(--income-soft, rgba(46, 204, 113, .12));color:var(--income);border-color:var(--income)}.banner__text{flex:1;min-width:0}.banner__title{font-weight:700;margin-bottom:2px}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:34px 20px;color:var(--text-muted)}.empty__icon{width:52px;height:52px;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--surface-3);color:var(--text-soft)}.empty__title{font-size:15px;font-weight:700;color:var(--text)}.empty__text{font-size:13px;max-width:320px}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--primary);animation:spin .8s linear infinite}.spinner--sm{width:16px;height:16px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#090c1880;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}}.modal{width:100%;max-width:520px;max-height:92vh;max-height:92dvh;background:var(--bg-elevated);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-3);display:flex;flex-direction:column;animation:slide-up .2s ease;padding-bottom:var(--safe-bottom)}@keyframes slide-up{0%{transform:translateY(24px)}}.modal__head{display:flex;align-items:center;gap:12px;padding:16px 16px 10px}.modal__title{flex:1;font-size:17px;font-weight:700}.modal__body{padding:4px 16px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:14px}.modal__footer{display:flex;gap:10px;padding:12px 16px calc(14px + var(--safe-bottom));border-top:1px solid var(--border)}.modal__footer .btn{flex:1}.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center}.donut__figure{position:relative;width:168px;height:168px;flex-shrink:0}.donut__svg{width:100%;height:100%;transform:rotate(-90deg)}.donut__center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center;padding:22px}.donut__value{font-size:19px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.donut__label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.legend{flex:1;min-width:190px;display:flex;flex-direction:column;gap:7px}.legend__item{display:flex;align-items:center;gap:8px;font-size:13px}.legend__name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend__value{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.legend__share{font-size:11.5px;color:var(--text-soft);width:44px;text-align:right;font-variant-numeric:tabular-nums}.bars{display:flex;align-items:flex-end;gap:6px;height:160px;padding-top:18px}.bars__col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}.bars__stack{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.bars__bar{width:46%;max-width:18px;border-radius:5px 5px 3px 3px;min-height:2px;transition:height .25s ease}.bars__bar--income{background:var(--income)}.bars__bar--expense{background:var(--expense)}.bars__label{font-size:10.5px;color:var(--text-soft);font-weight:600;white-space:nowrap}.bars__value{font-size:10.5px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:560px){.bars__value{display:none}}.bars__col--current .bars__label{color:var(--text)}.bar-row{display:flex;flex-direction:column;gap:5px}.bar-row__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13.5px}.bar-row__name{font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row__value{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.bar-row__track{height:8px;border-radius:var(--radius-full);background:var(--surface-3);overflow:hidden}.bar-row__fill{height:100%;border-radius:var(--radius-full);transition:width .3s ease}.progress{height:10px;border-radius:var(--radius-full);background:var(--surface-3);overflow:hidden}.progress__fill{height:100%;border-radius:var(--radius-full);background:var(--primary);transition:width .3s ease}.progress__fill--done{background:var(--income)}.toast-stack{position:fixed;left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 16px);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;max-width:480px;width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);box-shadow:var(--shadow-2);padding:12px 14px;font-size:13.5px;font-weight:600;text-align:left;min-height:var(--tap);animation:slide-up .18s ease}.toast-success{border-color:var(--income);color:var(--income)}.toast-error{border-color:var(--expense);color:var(--expense)}.toast-info{border-color:var(--info);color:var(--info)}.login{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:calc(var(--safe-top) + 32px) calc(20px + var(--safe-right)) calc(var(--safe-bottom) + 32px) calc(20px + var(--safe-left))}.login__brand{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.login__logo{width:72px;height:72px;border-radius:20px;box-shadow:var(--shadow-2)}.login__title{font-size:24px;font-weight:750;letter-spacing:-.02em}.login__sub{font-size:13.5px;color:var(--text-muted);max-width:320px}.login__card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}.login__switch{border:0;background:none;color:var(--primary);font-size:13.5px;font-weight:600;padding:6px;min-height:var(--tap)}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px}.brand__logo{width:36px;height:36px;border-radius:10px}.brand__name{font-size:16px;font-weight:750;letter-spacing:-.01em}.brand__sub{font-size:11.5px;color:var(--text-muted)}.campo-foto{display:flex;align-items:center;gap:16px;padding:8px 0}.campo-foto__avatar{width:76px;height:76px;border-radius:var(--radius-full);overflow:hidden;background:var(--surface-2);border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center}.campo-foto__img{width:100%;height:100%;object-fit:cover;display:block}.campo-foto__placeholder{color:var(--text-muted);display:flex;align-items:center;justify-content:center}.campo-foto__acoes{display:flex;flex-direction:column;gap:6px}.campo-foto__botoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.aluno-foto-banner{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:12px}.aluno-foto-banner__avatar{width:54px;height:54px;border-radius:var(--radius-full);overflow:hidden;border:2px solid var(--border-strong);background:var(--surface-2);flex-shrink:0;display:flex;align-items:center;justify-content:center}.aluno-foto-banner__img{width:100%;height:100%;object-fit:cover;display:block}.aluno-foto-banner__info{display:flex;flex-direction:column;gap:2px;min-width:0}.aluno-foto-banner__nome{font-size:14px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aluno-foto-banner__sub{font-size:12px;color:var(--text-muted)}.dre{display:flex;flex-direction:column}.dre__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;padding:11px 0;border-top:1px solid var(--border)}.dre__row:first-child{border-top:0}.dre__label{flex:1;min-width:0;font-size:14px;font-weight:550}.dre__value{font-size:14.5px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.dre__hint{flex-basis:100%;font-size:11.5px;color:var(--text-soft)}.dre--receita .dre__value{color:var(--income)}.dre--custo .dre__value{color:var(--expense)}.dre--lucro,.dre--prejuizo{margin-top:2px;padding-top:13px;border-top:2px solid var(--border-strong)}.dre--lucro .dre__label,.dre--prejuizo .dre__label{font-weight:700}.dre--lucro .dre__value{font-size:17px;font-weight:750;color:var(--income)}.dre--prejuizo .dre__value{font-size:17px;font-weight:750;color:var(--expense)}.tabela{display:flex;flex-direction:column}.tabela__head{display:none}.tabela__linha{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-top:1px solid var(--border)}.tabela__linha:first-child{border-top:0}.tabela__celula{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;font-size:14px}.tabela__celula:before{content:attr(data-rotulo);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.tabela__linha .tabela__celula:first-child{font-weight:650;font-size:14.5px}.tabela__linha .tabela__celula:first-child:before{content:none}.tabela__celula--num{font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.tabela__vazio{padding:28px 16px;text-align:center;font-size:13.5px;color:var(--text-muted)}.pacote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pacote{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:calc(var(--tap) + 14px);padding:10px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);text-align:center}.pacote:active{background:var(--surface-2)}.pacote__meses{font-size:14px;font-weight:700}.pacote__desconto{font-size:11.5px;font-weight:700;color:var(--income)}.pacote__valor{font-size:12.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.pacote--ativo{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.pacote--ativo .pacote__desconto,.pacote--ativo .pacote__valor{color:var(--primary)}.pix{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2)}.pix__titulo{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.pix__code{margin:0;padding:10px 12px;max-height:120px;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;line-height:1.5;word-break:break-all;-webkit-user-select:all;user-select:all}.pix__aviso{font-size:11.5px;color:var(--text-soft)}.resumo{display:flex;flex-direction:column}.resumo__linha{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border);font-size:13.5px}.resumo__linha:first-child{border-top:0}.resumo__rotulo{min-width:0;color:var(--text-muted)}.resumo__valor{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.resumo__total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:2px;padding-top:11px;border-top:2px solid var(--border-strong);font-size:15.5px;font-weight:750;font-variant-numeric:tabular-nums}.resumo__total .resumo__valor{font-size:16.5px;font-weight:750}.vencimento{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.vencimento__dia{flex-shrink:0;font-size:26px;font-weight:750;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.vencimento__texto{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--text-muted)}.vencimento .status{flex-shrink:0}.plano-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.plano-card__nome{font-size:15.5px;font-weight:700}.plano-card__valor{font-size:22px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.plano-card__acoes{display:flex;align-items:center;gap:8px}.plano-card__acoes .btn{flex:1}.row-acoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.carrinho{display:flex;flex-direction:column}.carrinho__linha{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:12px 0;border-top:1px solid var(--border)}.carrinho__linha:first-child{border-top:0}.carrinho__nome{order:1;flex:1 1 auto;min-width:0;font-size:14.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.carrinho__subtotal{order:2;font-size:15px;font-weight:680;font-variant-numeric:tabular-nums;white-space:nowrap}.carrinho__controles{order:3;flex:1 1 100%;display:flex;align-items:center;gap:8px}.carrinho__passo{width:var(--tap);height:var(--tap);min-height:var(--tap);flex-shrink:0;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--surface);color:var(--text);font-size:19px;font-weight:700;line-height:1;display:grid;place-items:center}.carrinho__passo:active:not(:disabled){background:var(--surface-3)}.carrinho__passo:disabled{opacity:.45;cursor:not-allowed}.carrinho__qtd{min-width:28px;text-align:center;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.carrinho__detalhe{flex:1 1 auto;min-width:0;text-align:right;font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kardex{display:flex;flex-direction:column}.kardex__linha{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 0;border-top:1px solid var(--border)}.kardex__linha:first-child{border-top:0}.kardex__tipo{order:1;flex:1 1 auto;min-width:0;font-size:13.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kardex__quantidade{order:2;flex-shrink:0;font-size:14px;font-weight:680;font-variant-numeric:tabular-nums}.kardex__quando{order:3;flex:1 1 auto;min-width:0;font-size:12px;color:var(--text-muted)}.kardex__saldo{order:4;flex-shrink:0;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.kardex__nota{order:5;flex:1 1 100%;font-size:12px;color:var(--text-soft)}@media(min-width:900px){:root{--tabbar-height: 0px}.app-shell{flex-direction:row}.sidebar{display:flex;flex-direction:column;gap:4px;width:244px;flex-shrink:0;padding:18px 14px;border-right:1px solid var(--border);background:var(--bg-elevated);position:sticky;top:0;height:100vh;height:100dvh}.sidebar__nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar__link{display:flex;align-items:center;gap:11px;border:0;background:none;border-radius:var(--radius-sm);padding:10px 12px;font-size:14px;font-weight:600;color:var(--text-muted);text-align:left;min-height:var(--tap)}.sidebar__link:hover{background:var(--surface-2);color:var(--text)}.sidebar__link--active{background:var(--primary-soft);color:var(--primary)}.sidebar__footer{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:4px}.sidebar__sair{display:flex;align-items:center;gap:11px;width:100%;border:none;background:transparent;border-radius:var(--radius-sm);padding:10px 12px;font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;text-align:left;font-family:inherit;min-height:var(--tap)}.sidebar__sair:hover{background:var(--surface-2);color:var(--danger)}.app-content{flex:1;min-width:0;display:flex;flex-direction:column}.app-main{padding:8px 28px 40px}.sair-flutuante{top:calc(var(--safe-top) + 26px);right:calc(32px + var(--safe-right))}.app-shell--com-sair .app-main{padding-top:calc(var(--safe-top) + 78px)}.tabbar{display:none}.fab{right:32px;bottom:32px}.toast-stack{bottom:24px;align-items:flex-end;right:28px;left:auto}.toast{width:auto;min-width:280px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid,.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.campo-linha{grid-template-columns:repeat(2,minmax(0,1fr))}.pacote-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.modal-backdrop{align-items:center}.modal{border-radius:var(--radius-lg);max-height:88vh;max-height:88dvh}.list-day__head{top:0}.tabela__head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.tabela__linha{flex-direction:row;align-items:center;gap:12px;padding:11px 14px;min-height:calc(var(--tap) + 2px)}.tabela__celula{flex:1 1 0;justify-content:flex-start}.tabela__celula:before{content:none}.tabela__linha .tabela__celula:first-child{font-size:14px}.tabela__celula--num{flex:0 0 22%;min-width:72px;justify-content:flex-end;text-align:right;font-weight:650}.aluno-linha{min-height:var(--tap);padding:11px 14px}}@media(min-width:1180px){.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.font-bold{font-weight:700}.btn--lg{padding:14px 20px;font-size:16px;font-weight:700}.input--lg{padding:14px 16px;font-size:16px}.banner__desc{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--text-muted)}.banner--neutral{background:var(--surface-2);border-left:4px solid var(--border)}.badge--neutral{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.text-link{color:var(--primary);text-decoration:underline;font-size:14px}.divider-dot{color:var(--text-muted)}.animate-pop{animation:popIn .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.checkin-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg)}.checkin-card{width:100%;max-width:480px;box-shadow:var(--shadow-lg);border-radius:var(--radius-lg)}.checkin-header{text-align:center;margin-bottom:20px}.checkin-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--primary);background:var(--primary-soft);padding:4px 10px;border-radius:var(--radius-pill);margin-bottom:8px}.checkin-title{font-size:22px;font-weight:800;margin:0;color:var(--text)}.checkin-subtitle{font-size:14px;color:var(--text-muted);margin-top:4px}.checkin-aulas-grid{display:flex;flex-direction:column;gap:8px;margin-top:8px}.checkin-aula-btn{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);cursor:pointer;text-align:left;position:relative;transition:all .15s ease;font-family:inherit}.checkin-aula-btn:hover{border-color:var(--primary);background:var(--surface-2)}.checkin-aula-btn--active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px var(--primary)}.checkin-aula-btn--disabled{opacity:.55;border-style:dashed}.checkin-aula-btn__hora{font-size:16px;font-weight:800;color:var(--text);min-width:52px}.checkin-aula-btn__info{flex:1;display:flex;flex-direction:column}.checkin-aula-btn__modalidade{font-size:14px;font-weight:700;color:var(--text)}.checkin-aula-btn__turma{font-size:12px;color:var(--text-muted)}.checkin-aula-btn__tag{font-size:10px;font-weight:800;text-transform:uppercase;background:var(--income);color:#fff;padding:2px 6px;border-radius:var(--radius-sm)}.checkin-sucesso{text-align:center;padding:10px 0}.checkin-sucesso__icone{width:72px;height:72px;margin:0 auto 16px;background:var(--income-soft);color:var(--income);border-radius:50%;display:flex;align-items:center;justify-content:center}.checkin-sucesso__nome{font-size:22px;font-weight:800;color:var(--text);margin:0}.checkin-sucesso__texto{font-size:15px;color:var(--text-muted);margin:6px 0 16px}.checkin-sucesso__detalhes{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 14px;text-align:left}.checkin-footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border);font-size:13px}.placa-page{background:var(--bg);color:var(--text);min-height:100vh;padding:24px 16px 40px}.no-print{display:block}.placa-acoes-topo{max-width:780px;margin:0 auto 20px}.placa-acoes-topo .btn--outline{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);font-weight:600;box-shadow:var(--shadow-1)}.placa-acoes-topo .btn--outline:hover{background:var(--surface-2);border-color:var(--text);color:var(--text)}.placa-acoes-topo .btn--outline:active{background:var(--surface-3)}.placa-acoes-topo__conteudo{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.placa-acoes-topo__direita{display:flex;align-items:center;gap:12px}.placa-cartaz{max-width:780px;margin:0 auto;background:#fff;color:#000;padding:36px 40px;border-radius:var(--radius-lg);box-shadow:0 4px 24px #00000014;border:1px solid #e4e4e7;text-align:center}.placa-cabecalho{margin-bottom:24px}.placa-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.12em;background:#000;color:#fff;padding:4px 12px;border-radius:4px;margin-bottom:12px}.placa-titulo{font-size:28px;font-weight:900;margin:0 0 6px;letter-spacing:-.02em}.placa-subtitulo{font-size:15px;color:#52525b;margin:0}.placa-qr-box{display:flex;align-items:center;justify-content:center;gap:32px;margin:28px 0;flex-wrap:wrap}.placa-qr-moldura{padding:16px;background:#fff;border:3px solid #000000;border-radius:16px;display:inline-flex}.placa-qr-svg{width:200px;height:200px;display:block}.placa-instrucoes{text-align:left;display:flex;flex-direction:column;gap:12px}.placa-passo{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#18181b}.placa-passo__num{width:28px;height:28px;border-radius:50%;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.placa-grade{margin-top:24px;border-top:2px solid #e4e4e7;padding-top:20px}.placa-grade__titulo{font-size:14px;font-weight:800;letter-spacing:.08em;margin-bottom:16px;color:#27272a}.placa-grade__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;text-align:left}.placa-grade__coluna{background:#f8fafc;padding:14px 18px;border-radius:8px;border:1px solid #e2e8f0}.placa-grade__dia{font-size:12px;font-weight:800;letter-spacing:.04em;color:#0f172a;margin-bottom:8px;border-bottom:1px solid #cbd5e1;padding-bottom:4px}.placa-grade__lista{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.placa-grade__lista li{display:flex;align-items:center;gap:10px;font-size:13px}.placa-hora{font-size:13px;color:#000;min-width:44px}.placa-rodape{margin-top:24px;padding-top:14px;border-top:1px dashed #d4d4d8;display:flex;justify-content:space-between;font-size:11px;color:#71717a;flex-wrap:wrap;gap:8px}.portal-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg)}.portal-card{width:100%;max-width:600px;box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);overflow:hidden}.portal-header{text-align:center;margin-bottom:24px}.portal-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--primary);background:var(--primary-soft);padding:4px 10px;border-radius:var(--radius-pill);margin-bottom:8px}.portal-title{font-size:22px;font-weight:800;margin:0;color:var(--text)}.portal-subtitle{font-size:14px;color:var(--text-muted);margin-top:4px}.portal-perfil{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;background:var(--surface-2);border-bottom:1px solid var(--border)}.portal-perfil__info{display:flex;flex-direction:column}.portal-perfil__nome{font-size:20px;font-weight:800;color:var(--text);margin:4px 0 8px}.portal-perfil__tags{display:flex;gap:6px;flex-wrap:wrap}.portal-nav{display:flex;border-bottom:1px solid var(--border);background:var(--surface)}.portal-nav__item{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 10px;border:none;background:transparent;color:var(--text-muted);font-size:13px;font-weight:700;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s ease;font-family:inherit}.portal-nav__item:hover{color:var(--text)}.portal-nav__item--active{color:var(--primary);border-bottom-color:var(--primary)}.portal-body{padding:20px}.portal-cta{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;gap:16px;flex-wrap:wrap}.portal-cta__titulo{font-size:16px;font-weight:800;margin:0;color:var(--text)}.portal-cta__sub{font-size:13px;color:var(--text-muted);margin:4px 0 0}.portal-grade-dias{display:flex;flex-direction:column;gap:10px;margin-top:10px}.portal-dia-card{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.portal-dia-card__header{background:var(--surface-2);padding:8px 12px;font-size:13px;font-weight:700;color:var(--text);border-bottom:1px solid var(--border)}.portal-dia-card__aulas{padding:8px 12px;display:flex;flex-direction:column;gap:6px}.portal-aula-item{display:flex;align-items:center;gap:12px;font-size:13px}.portal-aula-item__hora{font-weight:800;color:var(--text);min-width:48px}.portal-aula-item__modalidade{color:var(--text-muted)}.portal-resumo-treinos{display:flex;align-items:center;gap:16px;background:var(--income-soft);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.portal-resumo-treinos__num{font-size:36px;font-weight:900;color:var(--income);line-height:1}.portal-resumo-treinos__texto strong{display:block;font-size:15px;color:var(--text)}.portal-resumo-treinos__texto p{margin:2px 0 0;font-size:12px}.portal-lista-presencas{display:flex;flex-direction:column}.portal-pix-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md)}.portal-footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border);font-size:13px}.contrato-preview{display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto;padding:16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;line-height:1.5}.contrato-preview__titulo{font-size:15px;font-weight:700;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:4px}.contrato-preview__partes{display:flex;flex-direction:column;gap:6px;padding:8px 12px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border)}.contrato-preview__clausulas{display:flex;flex-direction:column;gap:10px}.contrato-preview__clausula{display:flex;flex-direction:column;gap:2px}.contrato-preview__clausula-titulo{font-size:13.5px;font-weight:700;color:var(--text);margin:0}.contrato-preview__texto{color:var(--text-soft);text-align:justify;margin:0}.contrato-preview__assinaturas{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.contrato-preview__assinatura{display:flex;flex-direction:column;align-items:center;text-align:center}.contrato-preview__linha{width:80%;height:24px;border-bottom:1px solid var(--border);margin-bottom:6px}.contrato-doc{display:flex;flex-direction:column;gap:10px;font-size:12.5px;line-height:1.45;color:var(--text)}.contrato-doc__titulo{font-size:14.5px;font-weight:700;text-align:center;letter-spacing:.04em;margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid var(--border)}.contrato-doc__partes{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.contrato-doc__contratante-wrapper{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.contrato-doc__contratante-info{flex:1;min-width:0}.contrato-doc__foto-box{width:60px;height:80px;border:1px solid var(--border);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface-2);flex-shrink:0}.contrato-doc__foto{width:100%;height:100%;object-fit:cover;display:block}.contrato-doc__sem-foto{font-size:9px;font-weight:600;color:var(--text-muted);text-align:center;text-transform:uppercase}.contrato-doc__clausulas{display:flex;flex-direction:column;gap:8px}.contrato-doc__clausula{display:flex;flex-direction:column;gap:3px}.contrato-doc__clausula-titulo{font-size:12.5px;font-weight:700;color:var(--text);margin:0}.contrato-doc__texto{color:var(--text-soft);text-align:justify;margin:0}.contrato-doc__destaque{padding:6px 10px;background:var(--surface-2);border-left:3px solid var(--primary);border-radius:var(--radius-xs);margin:4px 0}.contrato-doc__grade-horarios{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:6px 10px;background:var(--surface-2);border-radius:var(--radius-xs);margin:4px 0;font-size:11px}.contrato-doc__horario-coluna{display:flex;flex-direction:column;gap:6px}.contrato-doc__horario-bloco{display:flex;flex-direction:column;gap:2px}.contrato-doc__lista{margin:4px 0 4px 18px;padding:0;color:var(--text-soft)}.contrato-doc__fechamento{margin-top:14px}.contrato-doc__data-cidade{font-size:12px;margin-bottom:12px;color:var(--text)}.contrato-doc__assinaturas{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px}.contrato-doc__assinatura{display:flex;flex-direction:column;align-items:center;text-align:center}.contrato-doc__linha{width:85%;height:28px;border-bottom:1px solid var(--border);margin-bottom:4px}.contrato-doc__nome{font-size:12px;font-weight:700;color:var(--text)}.contrato-doc__rotulo{font-size:10.5px;color:var(--text-muted)}@page{size:A4 portrait;margin:8mm 10mm}@media print{:root,[data-theme=dark]{color-scheme:light;--bg: #ffffff;--bg-elevated: #ffffff;--surface: #ffffff;--surface-2: #ffffff;--surface-3: #ffffff;--border: #d4d4d8;--border-strong: #52525b;--text: #000000;--text-muted: #333333;--text-soft: #444444;--primary-soft: #ffffff;--income-soft: #ffffff;--expense-soft: #ffffff;--warning-soft: #ffffff;--info-soft: #ffffff;--hoje-soft: #ffffff;--shadow-1: none;--shadow-2: none;--shadow-3: none}html,body{background:#fff!important;color:#000!important}.sidebar,.tabbar,.fab,.toast-stack,.modal-backdrop:not(.modal-backdrop--comprovante),.btn,.aviso-modo,.no-print,button,[role=button],[role=switch],[role=radio],[role=radiogroup],[role=tab],.modal-backdrop:not(.modal-backdrop--comprovante) [role=dialog],[aria-pressed]{display:none!important}.titulo-tela,.titulo-tela__sub,.page--comprovante .pacote-grid,.page--comprovante .chip-row,.page--comprovante .switch,.page--comprovante .field,.page--comprovante .field__hint,.page--comprovante .section,.page--comprovante .pix,.page--comprovante .banner,.page--comprovante .row-between{display:none!important}.app-shell,.app-main,.app-content,.page{display:block!important;width:auto!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;background:#fff!important}.card{background:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important}.card--pad{padding:0!important}.page--comprovante>*:not(.comprovante){display:none!important}.modal-backdrop.comprovante{position:static!important;background:transparent!important;display:block!important;padding:0!important}.modal-backdrop.comprovante>.card{box-shadow:none!important;max-width:none!important;max-height:none!important;width:100%!important;margin:0!important;padding:0!important}}.termo,.ficha-cabecalho{display:none}@media print{.page--ficha .termo{display:block!important}.page--ficha .vencimento,.page--ficha .ficha-cabecalho,.page--ficha .section,.page--ficha .section--mensalidades,.page--ficha .section--documentos,.page--ficha .aluno-foto-banner,.page--ficha .row--sem-impressao,.page--ficha .field__hint{display:none!important}.ficha-cabecalho__info{flex:1;min-width:0}.ficha-cabecalho__titulo{font-size:13px;font-weight:750;letter-spacing:.06em}.ficha-cabecalho__nome{margin-top:1px;font-size:18px;font-weight:750;line-height:1.15}.ficha-cabecalho__apoio{margin-top:2px;font-size:11px;color:#333}.ficha-cabecalho__foto-box{width:48px;height:60px;border:1px solid #000000;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff;flex-shrink:0;margin-left:16px}.ficha-cabecalho__foto{width:100%;height:100%;object-fit:cover;display:block}.ficha-cabecalho__sem-foto{font-size:8px;font-weight:600;color:#666;text-align:center;text-transform:uppercase}.page--ficha{break-after:avoid;page-break-after:avoid}.page--ficha .section{margin-bottom:16px}.page--ficha .section__head{margin-bottom:4px}.page--ficha .section__title{font-size:11.5px;font-weight:700;letter-spacing:.02em;color:#000;border-bottom:1px solid #d4d4d8;padding-bottom:2px}.page--ficha .ficha-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:12px;row-gap:2px}.page--ficha .ficha-grid .row{display:flex;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:4px;min-height:0;padding:1.5px 0;border-top:0;break-inside:avoid;page-break-inside:avoid}.page--ficha .ficha-grid .row__label{display:inline;font-size:10.5px;font-weight:700;color:#000;white-space:nowrap}.page--ficha .ficha-grid .row__label:after{content:":"}.page--ficha .ficha-grid .row__value{display:inline;flex-shrink:1;min-width:0;font-size:11px;font-weight:400;color:#111;word-break:break-word;overflow-wrap:break-word}.page--ficha .ficha-grid .row--largo{grid-column:1 / -1}.termo{margin-top:18px;padding-top:8px;border-top:none;break-inside:auto;page-break-inside:auto}.termo__titulo{margin-bottom:4px;font-size:11px;font-weight:700}.termo__texto{margin-bottom:4px;font-size:9.5px;line-height:1.35;text-align:justify}.termo__partes{margin-bottom:6px}.termo__clausulas{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.termo__clausula{break-inside:avoid;page-break-inside:avoid}.termo__clausula-titulo{font-size:9.5px;font-weight:700;margin-bottom:1px;color:#000}.termo__assinaturas{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;margin-top:26px;break-inside:avoid;page-break-inside:avoid}.termo__assinatura{margin-top:0;break-inside:avoid;page-break-inside:avoid}.termo__linha{display:block;height:32px;border-bottom:1px solid #000000}.termo__rotulo{display:block;padding-top:2px;font-size:9.5px;color:#000}.termo__nome{display:block;font-size:10.5px;font-weight:700;color:#000}.termo__rodape{margin-top:6px;font-size:8.5px;color:#555}.contrato-doc{color:#000!important;font-size:9px!important;line-height:1.35!important}.contrato-doc__titulo{font-size:12px!important;color:#000!important;border-bottom:1px solid #000000!important;margin-bottom:6px!important;padding-bottom:4px!important;text-align:center!important}.contrato-doc__partes{background:transparent!important;border:none!important;padding:0!important;margin-bottom:6px!important}.contrato-doc__contratante-wrapper{display:flex!important;gap:12px!important;align-items:flex-start!important;justify-content:space-between!important}.contrato-doc__contratante-info{flex:1!important;min-width:0!important}.contrato-doc__foto-box{width:48px!important;height:60px!important;border:1px solid #000000!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#fff!important;flex-shrink:0!important}.contrato-doc__foto{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}.contrato-doc__sem-foto{font-size:8px!important;color:#333!important;text-align:center!important}.contrato-doc__clausulas{display:flex!important;flex-direction:column!important;gap:4px!important}.contrato-doc__clausula{break-inside:avoid!important;page-break-inside:avoid!important;margin-bottom:4px!important}.contrato-doc__clausula--quebravel{break-inside:auto!important;page-break-inside:auto!important}.contrato-doc__clausula-titulo{font-size:9.5px!important;font-weight:700!important;color:#000!important}.contrato-doc__texto{color:#111!important;font-size:9px!important;text-align:justify!important}.contrato-doc__destaque{background:#f4f4f5!important;border-left:3px solid #000000!important;padding:4px 8px!important;margin:3px 0!important}.contrato-doc__grade-horarios{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:3px 10px!important;background:#f4f4f5!important;border:1px solid #d4d4d8!important;padding:3px 6px!important;font-size:7.8px!important;line-height:1.18!important;margin:2px 0!important}.contrato-doc__horario-coluna{display:flex!important;flex-direction:column!important;gap:2px!important}.contrato-doc__horario-bloco{display:flex!important;flex-direction:column!important;gap:0!important}.contrato-doc__horario-bloco strong{font-size:7.8px!important;line-height:1.2!important}.contrato-doc__horario-bloco p{font-size:7.5px!important;line-height:1.15!important;margin:0!important}.contrato-doc__lista{margin:2px 0 2px 14px!important;color:#111!important}.contrato-doc__fechamento{break-inside:avoid!important;page-break-inside:avoid!important;margin-top:14px!important}.contrato-doc__data-cidade{color:#000!important;font-size:9.5px!important;margin-bottom:12px!important}.contrato-doc__assinaturas{display:grid!important;grid-template-columns:1fr 1fr!important;column-gap:24px!important;break-inside:avoid!important;page-break-inside:avoid!important;margin-top:20px!important}.contrato-doc__assinatura{display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important}.contrato-doc__linha{width:85%!important;height:30px!important;border-bottom:1px solid #000000!important;margin-bottom:4px!important}.contrato-doc__nome{color:#000!important;font-size:10px!important;font-weight:700!important}.contrato-doc__rotulo{color:#000!important;font-size:9px!important}}
