@import "https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&display=swap";@import "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css";:root{--bg-1:#d9e2f0;--bg-2:#b0c7e0;--panel-bg:#ffffff40;--panel-border:#fff6;--panel-shadow:0 30px 60px #00142840;--surface:#ffffff59;--surface-strong:#ffffff8c;--surface-border:#ffffff80;--text-strong:#0d1f3b;--text:#11233e;--text-soft:#1a2e50;--text-muted:#1f3a62;--accent:#4c6ef5;--accent-strong:#4c6ef5;--focus-ring:#1e3c7873;--state-active-bg:#4caf6c40;--state-active-text:#14522b;--state-pending-bg:#e0b05247;--state-pending-text:#5c4110;--state-overdue-bg:#d3606c47;--state-overdue-text:#631824;--state-inactive-bg:#b4b4b440;--state-inactive-text:#333;--present:#2b7a4b;--late:#b68b40;--absent:#b13a4b;--radius-xl:48px;--radius-lg:32px;--radius-md:20px;--radius-pill:60px;font-family:Inter,system-ui,-apple-system,sans-serif}:root[data-theme=dark]{--bg-1:#0d1526;--bg-2:#182a44;--panel-bg:#1e2d4b8c;--panel-border:#ffffff14;--panel-shadow:0 30px 60px #00000080;--surface:#ffffff0f;--surface-strong:#ffffff1f;--surface-border:#ffffff1a;--text-strong:#f5f8ff;--text:#dbe6ff;--text-soft:#f4f7ff;--text-muted:#b8c7e2;--accent:#7ca1dd;--accent-strong:#c4d6f7;--focus-ring:#7ca1dd73;--state-active-bg:#4caf6c38;--state-active-text:#b7f0c1;--state-pending-bg:#e0b0523d;--state-pending-text:#ffd987;--state-overdue-bg:#d3606c3d;--state-overdue-text:#ffbdc4;--state-inactive-bg:#b4b4b42e;--state-inactive-text:#e7e7e7}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100vh}body{background:linear-gradient(145deg, var(--bg-1) 0%, var(--bg-2) 100%);color:var(--text);margin:0}#root{justify-content:center;align-items:center;display:flex}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.page{justify-content:center;align-items:flex-start;width:100%;min-height:100vh;padding:24px;display:flex}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(18px)saturate(180%);border-radius:var(--radius-xl);width:100%;max-width:1400px;box-shadow:var(--panel-shadow), inset 0 1px 4px #fff9;border:1px solid var(--panel-border);padding:32px 36px}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.logo-area h1{letter-spacing:-.4px;color:var(--text-strong);text-shadow:0 2px 4px #ffffff4d;align-items:center;gap:12px;font-size:clamp(1.3rem,2vw,1.9rem);font-weight:700;display:flex}.menu-items{color:var(--text-soft);background:var(--surface);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--surface-border);flex-wrap:wrap;gap:4px;padding:8px 12px;font-weight:500;display:flex;box-shadow:0 4px 12px #0000000d}.menu-tab{color:inherit;cursor:pointer;white-space:nowrap;font:inherit;opacity:.75;border-radius:var(--radius-pill);background:0 0;border:none;align-items:center;gap:7px;padding:7px 14px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.menu-tab:hover{opacity:1;background:#ffffff4d}.menu-tab.active{opacity:1;color:var(--accent-strong);background:#ffffff73;font-weight:600;box-shadow:0 2px 8px #00000014}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:16px;margin-bottom:28px;display:grid}.kpi-card{background:var(--surface);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-lg);border:1px solid var(--surface-border);padding:20px 22px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 6px 20px #000a1e0a}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #000a1e1a}.kpi-card-accent:after{content:"";background:var(--kpi-accent,var(--accent));border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.kpi-label{letter-spacing:.3px;color:var(--text-muted);text-transform:uppercase;align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.kpi-value{color:var(--text-strong);letter-spacing:-1px;margin-top:8px;font-size:2.2rem;font-weight:800;line-height:1.1}.kpi-value-sm{letter-spacing:-.5px;font-size:1.5rem}.kpi-sub{color:var(--text-muted);align-items:center;gap:5px;margin-top:4px;font-size:12px;display:flex}.trend-up{font-weight:700;color:var(--present)!important}.trend-down{color:var(--absent)!important}.filters-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.search-box{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-pill);max-width:360px;color:var(--text-soft);flex:220px;align-items:center;gap:10px;padding:10px 18px;transition:border-color .2s;display:flex}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #4c6ef51f}.search-box input{width:100%;color:var(--text);background:0 0;border:none;outline:none;font-size:14px}.search-box input::placeholder{color:var(--text-muted)}.search-clear,.icon-btn,.theme-toggle,.toast-close{cursor:pointer;background:0 0;border:none}.status-chips,.filter-actions,.chip-group{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--surface-border);background:var(--surface);color:var(--text-soft);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;padding:7px 15px;font-size:13px;font-weight:500;transition:all .15s}.chip:hover{background:var(--surface-strong);transform:translateY(-1px)}.chip-active{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}.btn-primary{border-radius:var(--radius-pill);background:var(--accent-strong);color:#fff;cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:7px;padding:9px 20px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary:hover:not(:disabled){background:#3b5ce0;transform:translateY(-1px);box-shadow:0 6px 20px #4c6ef559}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-secondary{border-radius:var(--radius-pill);background:var(--surface);color:var(--text-soft);border:1px solid var(--surface-border);cursor:pointer;align-items:center;gap:7px;padding:9px 20px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn-secondary:hover{background:var(--surface-strong)}.btn-add-client{animation:2.5s infinite pulse-glow}@keyframes pulse-glow{0%,to{box-shadow:0 0 #4c6ef500}50%{box-shadow:0 0 0 6px #4c6ef52e}}.table-wrapper{background:var(--surface);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--radius-lg);border:1px solid var(--surface-border);margin-bottom:28px;padding:8px 6px 6px;overflow-x:auto;box-shadow:0 8px 20px #00000005}table{border-collapse:collapse;width:100%;color:var(--text);font-size:14px}th{text-align:left;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;border-bottom:1px solid #ffffff59;padding:16px 14px 12px;font-size:11px;font-weight:700}td{vertical-align:middle;border-bottom:1px solid #fff3;padding:13px 14px;font-weight:500}tr:last-child td{border-bottom:none}tr.row-overdue{background:#b13a4b0f}tr:hover td{background:#ffffff26}.client-cell{align-items:center;gap:12px;display:flex}.avatar{object-fit:cover;border:2px solid #ffffffb3;border-radius:50%;flex-shrink:0;width:38px;height:38px}.client-name{color:var(--text-strong);font-size:14px;font-weight:700}.client-email{color:var(--text-muted);margin-top:1px;font-size:12px}.belt-tag{background:var(--surface);border:1px solid var(--surface-border);border-radius:6px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.days-hint{color:var(--text-muted);margin-top:2px;font-size:12px}.status-badge{border-radius:var(--radius-pill);white-space:nowrap;border:1px solid #ffffff80;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-flex}.status-active{background:var(--state-active-bg);color:var(--state-active-text)}.status-pending{background:var(--state-pending-bg);color:var(--state-pending-text)}.status-overdue{background:var(--state-overdue-bg);color:var(--state-overdue-text)}.status-inactive{background:var(--state-inactive-bg);color:var(--state-inactive-text)}.theme-toggle,.icon-btn{width:38px;height:38px;color:var(--text-strong);border-radius:50%;justify-content:center;align-items:center;font-size:15px;transition:all .15s;display:inline-flex}.theme-toggle:hover,.icon-btn:hover,.search-clear:hover{background:#fff6}.icon-btn-danger{color:var(--absent)}.icon-btn-danger:hover{background:#b13a4b1f}.dashboard-charts{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.stats-charts-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px;display:grid}.trend-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--surface-border);padding:20px;box-shadow:0 4px 16px #00000008}.trend-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.trend-title{color:var(--text-strong);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.trend-sub{color:var(--text-muted);margin-top:2px;font-size:13px}.trend-total{color:var(--text-strong);letter-spacing:-.5px;flex-direction:column;align-items:flex-end;font-size:1.4rem;font-weight:800;display:flex}.trend-total span{color:var(--text-muted);font-size:.75rem;font-weight:500}.trend-svg{width:100%;height:110px;margin:12px 0 6px}.trend-legend{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.legend-dot{align-items:center;gap:5px;display:flex}.legend-dot:before{content:"";background:var(--dot);border-radius:50%;flex-shrink:0;width:8px;height:8px}.range-selector{gap:4px;display:flex}.bar-chart-container{align-items:flex-end;gap:4px;height:140px;margin:16px 0 8px;padding:0 4px;display:flex}.bar-col{cursor:default;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:4px 2px;transition:background .15s;display:flex;position:relative}.bar-col-hover{background:#fff3}.bar-stack{border-radius:6px;flex-direction:column;flex:1;justify-content:flex-end;width:100%;min-height:4px;display:flex;overflow:hidden}.bar-segment{width:100%;min-height:0;transition:height .4s}.bar-present{background:var(--present);border-radius:4px 4px 0 0}.bar-late{background:var(--late)}.bar-empty{background:#ffffff26;border-radius:4px;width:100%;height:4px}.bar-label{color:var(--text-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:11px;overflow:hidden}.bar-tooltip{background:var(--accent-strong);color:#fff;white-space:nowrap;z-index:10;pointer-events:none;border-radius:8px;flex-direction:column;gap:2px;padding:6px 10px;font-size:11px;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0003}.bar-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--accent-strong);position:absolute;top:100%;left:50%;transform:translate(-50%)}.donut-layout{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.donut-legend{flex-direction:column;flex:1;gap:10px;min-width:120px;display:flex}.donut-legend-item{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.donut-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.hbar-row{gap:4px;display:grid}.hbar-meta{justify-content:space-between;font-size:13px;display:flex}.hbar-label{color:var(--text);font-weight:500}.hbar-value{font-weight:700}.hbar-track{background:#fff3;border-radius:99px;height:8px;overflow:hidden}.hbar-fill{border-radius:99px;height:100%;transition:width .5s}.revenue-summary{border-top:1px solid #fff3;flex-wrap:wrap;gap:20px;margin-top:20px;padding-top:16px;display:flex}.revenue-item{flex-direction:column;gap:4px;display:flex}.revenue-value{color:var(--text-strong);letter-spacing:-.5px;font-size:1.4rem;font-weight:800}.revenue-lost{color:var(--absent)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#060c188c;place-items:center;padding:20px;animation:.2s backdrop-in;display:grid;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--panel-bg);border:1px solid var(--panel-border);width:min(680px,100%);box-shadow:var(--panel-shadow), 0 0 0 1px #ffffff1a inset;border-radius:28px;max-height:90vh;padding:28px;animation:.25s cubic-bezier(.34,1.56,.64,1) modal-in;overflow-y:auto}.modal-card-wide{width:min(780px,100%)}.modal-attendance{width:min(720px,100%)}@keyframes modal-in{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.modal-title{color:var(--text-strong);align-items:center;gap:10px;font-size:1.2rem;font-weight:700;display:flex}.modal-actions{border-top:1px solid #fff3;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:16px;display:flex}.modal-form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-field{flex-direction:column;gap:6px;display:flex}.form-field-full{grid-column:1/-1}.form-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.form-input{background:var(--surface);border:1px solid var(--surface-border);color:var(--text);border-radius:12px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4c6ef51f}.form-select{cursor:pointer}.input-error{border-color:var(--absent)!important}.form-error{color:var(--absent);font-size:12px}.plan-selector{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.plan-option{border:2px solid var(--surface-border);background:var(--surface);cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;transition:all .2s;display:flex}.plan-option:hover{border-color:var(--plan-color,var(--accent))}.plan-option-active{border-color:var(--plan-color,var(--accent));background:#4c6ef514;box-shadow:0 0 0 3px #4c6ef51f}.plan-option-name{color:var(--text-strong);font-size:14px;font-weight:700}.plan-option-price{color:var(--plan-color,var(--text-muted));font-size:12px;font-weight:600}.plan-summary{color:var(--text-soft);background:#4c6ef514;border:1px solid #4c6ef533;border-radius:12px;align-items:center;gap:8px;margin-top:14px;padding:10px 14px;font-size:13px;display:flex}.class-selector-section{margin-bottom:16px}.class-chips{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.class-chip{border-radius:var(--radius-pill);border:1px solid var(--surface-border);background:var(--surface);color:var(--text-soft);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.class-chip:hover{background:var(--surface-strong)}.class-chip-active{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}.class-filter-row{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.attendance-stats-bar{background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:10px;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.attendance-stat-item{align-items:center;gap:5px;display:flex}.attendance-pct{color:var(--text-strong);margin-left:auto;font-size:1.1rem;font-weight:800}.progress-track{background:#fff3;border-radius:99px;height:6px;margin-bottom:12px;display:flex;overflow:hidden}.progress-fill-present{background:var(--present);height:100%;transition:width .4s}.progress-fill-late{background:var(--late);height:100%;transition:width .4s}.mark-all-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.student-list{flex-direction:column;gap:8px;max-height:340px;margin-top:10px;padding-right:4px;display:flex;overflow-y:auto}.student-row{background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;align-items:center;gap:12px;padding:10px 14px;transition:background .15s;display:flex}.student-row:hover{background:var(--surface-strong)}.student-info{flex:1;min-width:0}.status-btn-group{flex-shrink:0;gap:6px;display:flex}.status-btn{border:2px solid var(--surface-border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.status-btn:hover{border-color:var(--btn-color,var(--accent));color:var(--btn-color,var(--accent))}.status-btn-active{background:var(--btn-color,var(--accent));border-color:var(--btn-color,var(--accent));color:#fff;box-shadow:0 2px 8px #0003}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.cal-weekday{text-align:center;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 0;font-size:11px;font-weight:700}.calendar-cell{background:var(--surface);border:1px solid var(--surface-border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;min-height:80px;padding:8px;transition:all .15s;display:flex;position:relative}.calendar-cell:hover:not(.is-empty):not(:disabled){background:var(--surface-strong);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.calendar-cell.is-today{outline:2px solid var(--accent);outline-offset:1px}.calendar-cell.is-empty{opacity:.25;cursor:default;background:0 0;border-color:#0000}.calendar-cell.has-data{background:#4c6ef50f}.cal-day-num{color:var(--text-strong);font-size:14px;font-weight:700}.cal-day-counts{gap:4px;display:flex}.cal-count{border-radius:99px;padding:2px 6px;font-size:11px;font-weight:700}.present-count{color:var(--present);background:#1b7e3f26}.late-count{color:var(--late);background:#b87d0f26}.cal-dot{border-radius:50%;width:7px;height:7px;margin-top:auto;margin-left:auto}.dot-all-present{background:var(--present)}.dot-partial{background:var(--late)}.dot-absent{background:var(--absent)}.cal-legend{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;font-size:12px;display:flex}.cal-legend span{align-items:center;gap:5px;display:flex}.settings-panel{gap:24px;padding:8px 0;display:grid}.settings-section{gap:12px;display:grid}.settings-title{color:var(--text-strong);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.settings-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-lg);gap:10px;padding:16px 20px;display:grid}.settings-row{justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.settings-code{background:#fff3;border-radius:6px;padding:3px 8px;font-family:Courier New,monospace;font-size:13px}.settings-sql{color:var(--text-soft);white-space:pre;font-family:Courier New,monospace;font-size:12px;line-height:1.6;overflow-x:auto}.text-success{color:var(--present)}.text-error{color:var(--absent)}.empty-state{text-align:center;color:var(--text-soft);opacity:.85;padding:48px 20px}.empty-state.error{color:var(--absent)}.footer-meta{color:var(--text-muted);border-top:1px solid #ffffff26;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:8px;padding-top:16px;font-size:13px;display:flex}.attribution{flex-wrap:wrap;gap:14px;display:flex}.kpi-skeleton{background:linear-gradient(90deg,#fff3,#ffffff6b,#fff3) 0 0/200% 100%;border-radius:12px;min-height:42px;animation:1.3s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-list{gap:12px;display:grid}.skeleton-row{grid-template-columns:48px 1fr 80px 80px 120px;align-items:center;gap:12px;display:grid}.skeleton-avatar,.skeleton-badge,.skeleton-line{background:#ffffff61;border-radius:999px}.skeleton-avatar{border-radius:50%;width:38px;height:38px}.skeleton-lines{gap:8px;display:grid}.skeleton-line{height:10px}.w-60{width:60%}.w-40{width:40%}.w-20{width:20%}.skeleton-badge{width:110px;height:26px}.toast-stack{z-index:200;gap:10px;display:grid;position:fixed;bottom:20px;right:20px}.toast{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172aeb;border-radius:16px;align-items:center;gap:10px;min-width:260px;max-width:380px;padding:14px 16px;animation:.25s cubic-bezier(.34,1.56,.64,1) toast-in;display:flex;box-shadow:0 16px 40px #00000047}@keyframes toast-in{0%{opacity:0;transform:translate(20px)scale(.9)}to{opacity:1;transform:translate(0)scale(1)}}.toast-success{background:#1b7e3ff0}.toast-error{background:#a12d3af0}.toast-info{background:#4c6ef5f0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#ffffff26;border-radius:20px}::-webkit-scrollbar-thumb{background:#0014322e;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:#0014324d}@media (width<=1024px){.dashboard-charts,.stats-charts-grid{grid-template-columns:1fr}}@media (width<=768px){.glass-panel{border-radius:32px;padding:24px}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:12px}.kpi-value{font-size:1.7rem}.modal-form-grid{grid-template-columns:1fr}.plan-selector{grid-template-columns:1fr 1fr 1fr}.attendance-stats-bar{gap:10px}}@media (width<=600px){.page{padding:10px}.glass-panel{border-radius:24px;padding:16px}.menu-items{flex-wrap:nowrap;gap:2px;padding:8px;overflow-x:auto}.menu-tab-label{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}.kpi-value{font-size:1.5rem}.filters-bar{flex-direction:column;align-items:stretch}.search-box{max-width:none}.dashboard-charts,.stats-charts-grid{grid-template-columns:1fr}.modal-card{border-radius:20px;padding:20px}.plan-selector{grid-template-columns:1fr}.calendar-cell{min-height:54px;padding:5px}.cal-day-num{font-size:12px}.status-btn-group{gap:4px}.status-btn{width:30px;height:30px;font-size:12px}.table-wrapper{padding:6px}table,thead,tbody,th,td,tr{width:100%;display:block}thead{display:none}tbody tr{background:#ffffff59;border:1px solid #fff6;border-radius:18px;margin-bottom:10px;padding:10px 14px}tbody tr.row-overdue{background:#b13a4b1a}td{text-align:right;border-bottom:1px dashed #ffffff40;justify-content:space-between;align-items:center;gap:10px;padding:9px 2px;display:flex}td:last-child{border-bottom:none}td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);text-align:left;white-space:nowrap;font-size:11px;font-weight:700}td[data-label=Cliente]{text-align:left}td[data-label=Cliente]:before{display:none}.client-cell{width:100%}}@media (width<=380px){.kpi-grid{grid-template-columns:1fr 1fr}.logo-area h1{font-size:1.2rem}}
