:root{--yellow:#f7b500;--orange:#ff7a00;--purple:#6e2de2;--cyan:#20a8e0;--ink:#2f1526;--text:#3a2230;--muted:#8d7a86;--bg:#f7f4f8;--card:#fff;--line:#f0e8ef;--shadow:0 14px 35px rgba(76,33,91,.12)}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:'Poppins',sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.mt-24{margin-top:24px}.muted{color:var(--muted)}code{background:#f2edf7;padding:2px 7px;border-radius:8px}.login-body,.app-body,.coffee-body{min-height:100vh;background:linear-gradient(180deg,var(--yellow) 0 52%, var(--purple) 52% 100%)}.login-layout{width:min(1200px,94vw);margin:0 auto;min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:32px 0}.brand-side{color:#fff;padding:16px 8px;position:relative}.brand-copy h1{font-size:64px;line-height:1;margin:14px 0 18px;font-weight:800}.brand-copy p{max-width:600px;font-size:18px;line-height:1.7;color:rgba(255,255,255,.92)}.eyebrow{display:inline-flex;padding:10px 16px;background:rgba(255,255,255,.2);border-radius:999px;font-size:13px;font-weight:600}.mock-phones{display:flex;gap:18px;margin-top:36px;flex-wrap:wrap}.mock-card{width:220px;padding:22px;border-radius:28px;background:rgba(255,255,255,.18);backdrop-filter:blur(12px);box-shadow:var(--shadow)}.mock-card.orange{background:linear-gradient(135deg,#ff8a00,#ffb23d)}.mock-card.purple{background:linear-gradient(135deg,#6e2de2,#8d5eff)}.mock-card.cyan{background:linear-gradient(135deg,#20a8e0,#50c2f1)}.mock-card h3{margin:0 0 12px;color:#fff}.mock-card p{margin:0;color:rgba(255,255,255,.95);font-size:14px}.login-phone{justify-self:end;width:min(420px,100%);background:#fff;border-radius:34px;padding:28px;box-shadow:0 20px 50px rgba(62,24,78,.22);position:relative}.phone-bar{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.phone-bar span{width:54px;height:7px;background:#f0eef3;border-radius:999px}.phone-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.phone-header small{display:block;color:var(--muted)}.phone-header h2{margin:6px 0 0;color:var(--ink)}.avatar-badge,.brand-avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:28px;font-weight:800;background:linear-gradient(135deg,var(--orange),#ffb340)}.auth-form,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.auth-form label,.form-grid label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;color:var(--ink)}.auth-form label{grid-column:1/-1}.input-wrap{display:flex;align-items:center;gap:12px;border:2px solid #efe6f1;border-radius:16px;padding:0 16px;background:#fff}.input-wrap input{border:none;outline:none;width:100%;padding:15px 0;background:transparent}input,select,textarea{border:2px solid #efe6f1;border-radius:16px;padding:14px 16px;outline:none;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus,.input-wrap:focus-within{border-color:#d8b3ff;box-shadow:0 0 0 4px rgba(111,45,226,.08)}textarea{resize:vertical;min-height:92px}.full{grid-column:1/-1}.btn{border:none;border-radius:18px;padding:14px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;transition:.18s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--orange),#ffaf1f);color:#fff;box-shadow:0 12px 22px rgba(255,122,0,.24)}.btn-light{background:#fff;color:var(--ink);border:2px solid #efe6f1}.btn-danger{background:#fff0f0;color:#b43a3a;border:2px solid #ffd2d2}.btn-block{width:100%}.btn-mini{padding:10px 14px;border-radius:14px;font-size:13px}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.demo-box{margin-top:18px;padding:18px;background:#f8f4fa;border-radius:22px}.demo-box h4{margin:0 0 10px;color:var(--ink)}.demo-box ul{margin:0;padding-left:18px;color:var(--muted);font-size:14px;line-height:1.7}.tiny-link{display:inline-block;margin-top:12px;color:var(--purple);font-weight:700}.floating-shape{position:fixed;pointer-events:none;opacity:.22;z-index:0}.circle{border:14px solid rgba(255,255,255,.45);border-radius:50%}.circle.a{width:220px;height:220px;top:20px;right:50px}.circle.b{width:110px;height:110px;bottom:25px;right:30px}.hex{width:74px;height:74px;background:rgba(255,255,255,.25);clip-path:polygon(25% 6.7%,75% 6.7%,100% 50%,75% 93.3%,25% 93.3%,0 50%);top:100px;right:260px}.triangle{width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-top:44px solid rgba(255,255,255,.28);top:120px;right:150px}.app-shell{display:grid;grid-template-columns:310px 1fr;min-height:100vh;background:transparent}.sidebar{padding:24px 20px;color:var(--ink);background:linear-gradient(180deg,#f7b500 0%,#ffd34f 100%);border-right:1px solid rgba(47,21,38,.08)}.sidebar-brand{display:flex;align-items:center;gap:14px;padding:10px 8px 22px}.sidebar-brand h1{font-size:28px;margin:0 0 4px}.sidebar-brand p{margin:0;color:rgba(47,21,38,.72)}.sidebar-nav{display:flex;flex-direction:column;gap:10px}.nav-btn{border:none;background:rgba(255,255,255,.58);color:var(--ink);padding:14px 16px;border-radius:18px;display:flex;align-items:center;gap:12px;text-align:left;font-weight:700;box-shadow:0 8px 20px rgba(47,21,38,.08)}.nav-btn.active,.nav-btn:hover{background:var(--purple);color:#fff}.sidebar-card{margin-top:18px;background:rgba(255,255,255,.58);border-radius:26px;padding:18px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.45)}.sidebar-card h3{margin:0 0 10px;color:var(--ink)}.sidebar-card p{margin:0 0 14px;color:rgba(47,21,38,.78);font-size:14px;line-height:1.6}.main-area{background:#f7f4f8;margin:20px 20px 20px 0;border-radius:34px;padding:24px;overflow:auto;box-shadow:0 18px 42px rgba(73,30,87,.18)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.topbar small{display:block;color:var(--muted)}.topbar h2{margin:6px 0 0;font-size:32px;color:var(--ink)}.topbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:10px;background:#fff;border-radius:18px;padding:0 16px;border:2px solid #efe6f1;min-width:min(340px,100%)}.search-box input{border:none;outline:none;padding:14px 0;width:100%;background:transparent}.alert-box{padding:14px 16px;border-radius:18px;margin-bottom:18px;background:#fff7d5;color:#8a5f00;border:2px solid #ffe085}.alert-box.success{background:#eafff0;color:#1c7a40;border-color:#b6f2c9}.alert-box.error{background:#fff0f0;color:#a53838;border-color:#ffd2d2}.hero-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#fff2d3,#fff,#f7e8ff);border-radius:30px;padding:28px;box-shadow:var(--shadow)}.hero-banner small{color:var(--orange);font-weight:700}.hero-banner h2{font-size:36px;margin:10px 0;color:var(--ink)}.hero-banner p{margin:0;color:var(--muted);max-width:640px}.hero-badge{padding:18px 22px;border-radius:24px;background:linear-gradient(135deg,var(--purple),#915fff);color:#fff;min-width:250px;text-align:center;box-shadow:0 14px 26px rgba(110,45,226,.25)}.hero-badge span{display:block;font-size:13px;opacity:.85;margin-bottom:8px}.hero-badge strong{font-size:18px;line-height:1.4}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-top:20px}.stat-card{background:#fff;border-radius:28px;padding:22px;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:14px}.stat-card h3{margin:8px 0 6px;font-size:30px;color:var(--ink)}.stat-card p,.stat-card small{margin:0;color:var(--muted)}.stat-card i{font-size:28px;padding:18px;border-radius:50%;color:#fff}.stat-card.orange i{background:linear-gradient(135deg,var(--orange),#ffb340)}.stat-card.purple i{background:linear-gradient(135deg,var(--purple),#9c6cff)}.stat-card.cyan i{background:linear-gradient(135deg,var(--cyan),#68cff7)}.stat-card.green i{background:linear-gradient(135deg,#2dbf73,#7be19f)}.stat-card.soft i{background:linear-gradient(135deg,#ffb500,#ffdd78)}.content-grid{display:grid;gap:18px;margin-top:20px}.two-col{grid-template-columns:1fr 1.15fr}.single-col{grid-template-columns:1fr}.panel-card{background:var(--card);border-radius:32px;padding:24px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.panel-head small{display:block;color:var(--orange);font-weight:700}.panel-head h3{margin:6px 0 0;color:var(--ink)}.notice-list,.timeline-list,.stack-list{display:flex;flex-direction:column;gap:14px}.notice-item,.soft-card,.timeline-item{background:#fff;border:2px solid #f1e8f3;border-radius:24px;padding:18px}.notice-item strong,.soft-card strong,.timeline-item strong{display:block;margin-bottom:8px;color:var(--ink)}.notice-item p,.soft-card p,.timeline-item p{margin:0 0 10px;color:var(--muted);line-height:1.6}.notice-item small,.soft-card small,.timeline-item small{color:var(--muted)}.timeline-item{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center}.timeline-date{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,var(--yellow),#ffe586);font-weight:800;color:var(--ink)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.soft-inline{background:#f8f3fb;border-radius:16px;padding:12px 14px;color:var(--ink);border:1px solid #eadcf4}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{color:var(--muted);font-size:13px;font-weight:700}.table td{font-size:14px}.actions{white-space:nowrap}.btn-icon{width:38px;height:38px;border-radius:14px;border:none;background:#f7f0fb;color:#4f18b5}.btn-icon:hover{background:#eedfff}.link-button{border:none;background:none;padding:0;color:var(--purple);font-weight:700}.compact-form{display:grid;gap:10px;margin-top:12px}.compact-form label{display:flex;flex-direction:column;gap:6px}.badge{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700;background:#f7ecff;color:#4f18b5;margin-top:10px}.badge.success{background:#e6fff0;color:#1f8b48}.notice-mini{display:flex;flex-direction:column;gap:6px;margin-top:10px;color:var(--muted);font-size:13px}.whats-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.whats-chip{padding:9px 13px;border-radius:999px;background:#e8fff0;color:#0f8a44;font-weight:700;font-size:12px;border:1px solid #c7f2d4}.whats-chip-secondary{background:#f7f0fb;color:#5b27c7;border-color:#e5d7fb}.modal{position:fixed;inset:0;background:rgba(36,13,49,.55);display:grid;place-items:center;padding:20px;z-index:999}.modal-card{width:min(560px,100%);background:#fff;border-radius:28px;padding:24px;position:relative;box-shadow:0 20px 55px rgba(22,9,31,.4)}.modal-close{position:absolute;top:12px;right:12px;border:none;background:#f5eff8;width:42px;height:42px;border-radius:50%;font-size:24px}.detail-card h3{margin:0 0 8px;color:var(--ink)}.detail-card p{margin:0 0 18px;color:var(--muted)}.detail-row{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-row span{color:var(--muted)}.detail-row strong{text-align:right;color:var(--ink)}.empty-state{padding:24px;border-radius:24px;background:#faf8fc;border:2px dashed #eadcf4;text-align:center;color:var(--muted)}.view-container{padding-bottom:14px}.coffee-wrap,.enroll-wrap{width:min(1200px,94vw);margin:0 auto;padding:30px 0 40px}.coffee-hero{background:#fff;border-radius:34px;padding:28px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);margin-bottom:20px}.coffee-total{width:130px;height:130px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),#a16aff);color:#fff;box-shadow:0 14px 28px rgba(111,45,226,.24)}.coffee-total span{font-size:38px;font-weight:800}.coffee-total small{font-size:13px}.enroll-card{margin-top:40px}@media (max-width:1080px){.login-layout{grid-template-columns:1fr}.login-phone{justify-self:stretch}.app-shell{grid-template-columns:1fr}.sidebar{padding-bottom:0}.main-area{margin:0;border-radius:28px 28px 0 0}.two-col{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.search-box{min-width:100%}}@media (max-width:760px){.brand-copy h1{font-size:44px}.hero-banner{flex-direction:column;align-items:flex-start}.timeline-item{grid-template-columns:56px 1fr}.timeline-item .card-actions{grid-column:1/-1}.auth-form,.form-grid{grid-template-columns:1fr}.sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.nav-btn span{font-size:13px}.stats-grid{grid-template-columns:1fr}.cards-grid{grid-template-columns:1fr}.coffee-hero{flex-direction:column;align-items:flex-start;gap:20px}}
.student-link{display:inline-flex;align-items:center;gap:12px;text-align:left;font-weight:700}.student-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 42px;border:2px solid #f2e7fb;box-shadow:0 6px 16px rgba(110,45,226,.14)}.student-avatar-fallback{display:grid;place-items:center;background:linear-gradient(135deg,var(--orange),#ffb340);color:#fff;font-size:15px;font-weight:800}
.mb-16{margin-bottom:16px}.toolbar-inline{display:flex;gap:12px;flex-wrap:wrap}.toolbar-inline input{width:min(420px,100%)}

.notification-wrap{position:relative}.notification-bell{position:relative;width:54px;height:54px;border:none;border-radius:18px;background:linear-gradient(135deg,var(--purple),#8d5eff);color:#fff;display:grid;place-items:center;box-shadow:0 14px 28px rgba(110,45,226,.22)}.notification-bell i{font-size:20px}.notification-badge{position:absolute;top:-6px;right:-6px;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:linear-gradient(135deg,var(--orange),#ffb340);color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 10px 18px rgba(255,122,0,.24)}.notification-badge.is-zero{background:#d8cfdf;color:#6d6171}.notification-panel{position:absolute;top:64px;right:0;width:min(420px,calc(100vw - 40px));background:#fff;border:2px solid #efe6f1;border-radius:28px;box-shadow:0 24px 60px rgba(57,23,69,.22);padding:18px;z-index:50}.notification-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}.notification-panel-head small{display:block;color:var(--orange);font-weight:700}.notification-panel-head h3{margin:6px 0 0;color:var(--ink);font-size:20px}.notification-panel-count{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:999px;background:#f7ecff;color:#4f18b5;font-size:12px;font-weight:700;white-space:nowrap}.notification-panel-body{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow:auto;padding:14px 2px 6px}.notification-item{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:14px;border-radius:22px;background:#fcf9ff;border:1px solid #eadcf4}.notification-item-icon{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--yellow),#ffe586);color:var(--ink);font-size:18px}.notification-item-content strong{display:block;margin-bottom:6px;color:var(--ink)}.notification-item-content p{margin:0 0 8px;color:var(--muted);line-height:1.5;font-size:14px}.notification-item-content small{color:var(--muted);font-size:12px}.notification-empty{display:grid;justify-items:center;gap:10px;padding:26px 12px;color:var(--muted);text-align:center}.notification-empty i{font-size:30px;color:#18a151}.notification-panel-foot{padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:flex-end}@media (max-width:760px){.notification-panel{right:auto;left:0;width:min(420px,calc(100vw - 32px))}}

.birthday-card{display:flex;flex-direction:column;gap:6px}.birthday-person{display:flex;align-items:center;gap:12px;margin-bottom:2px}.birthday-person strong{margin:0;color:var(--ink)}

.divisas-badges{display:flex;flex-wrap:wrap;gap:8px}.divisa-badge{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:linear-gradient(135deg,#fff2cf,#ffe49b);color:#7a5200;font-weight:700;font-size:12px;border:1px solid #ffd86b;box-shadow:0 6px 14px rgba(247,181,0,.14)}.detail-row-block{align-items:flex-start}.detail-row-block>div:last-child{max-width:70%;text-align:right}.info-inline{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:18px;background:#f8f3fb;border:1px solid #eadcf4;color:var(--muted);font-weight:600}


.count-pill{display:inline-flex;align-items:center;justify-content:center;margin-left:10px;padding:7px 12px;border-radius:999px;background:linear-gradient(135deg,#f7ecff,#eee0ff);color:#5a22c6;font-size:12px;font-weight:800;vertical-align:middle;box-shadow:0 8px 18px rgba(110,45,226,.12)}
.list-pagination{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding:14px 16px;border-radius:20px;background:#faf7fc;border:1px solid #eadcf4}.list-pagination-left,.list-pagination-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.list-pagination-label,.list-pagination-count,.list-page-status{color:var(--muted);font-size:13px;font-weight:600}.list-page-size{min-width:88px;padding:10px 14px;border-radius:14px;border:1px solid #e2d5ed;background:#fff;color:var(--ink);font:inherit}.list-pagination .btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}.list-pagination.is-empty{opacity:.8}
@media (max-width:760px){.list-pagination{align-items:flex-start}.list-pagination-right{width:100%;justify-content:space-between}.count-pill{display:inline-flex;margin-top:8px;margin-left:0}}
.parent-profile-finance{margin-top:20px}
.due-card-parent{overflow:hidden}
.due-card-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.due-meta-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px;padding:12px 14px;border-radius:16px;background:#faf6fc;border:1px solid #efe2f7;color:var(--ink)}
.due-meta-row i{color:var(--orange);margin-right:6px}.due-countdown{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#eefaf0;color:#127a3e;font-weight:700;font-size:12px}.due-countdown.is-overdue{background:#fff0f0;color:#b13a3a}.due-countdown.is-due-today{background:#fff6db;color:#8b6100}.pix-payment-box{margin-top:16px;padding:16px;border-radius:24px;background:linear-gradient(135deg,#f7fbff,#f4efff);border:2px solid #e9def7;display:grid;grid-template-columns:minmax(220px,260px) 1fr;gap:18px;align-items:center}.pix-payment-media img{width:100%;display:block;border-radius:20px;box-shadow:var(--shadow)}.pix-payment-content{display:grid;gap:14px}.pix-payment-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.pix-payment-head small{display:block;color:var(--cyan);font-weight:700;margin-bottom:6px}.pix-payment-head strong{color:var(--ink);font-size:22px}.pix-payment-value{display:inline-flex;align-items:center;padding:10px 14px;border-radius:16px;background:#fff;color:var(--purple);font-weight:800;border:1px solid #eadcf4}.pix-key-box{padding:14px 16px;border-radius:18px;background:#fff;border:2px dashed #d8c4f2;display:grid;gap:6px}.pix-key-box span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pix-key-box strong{font-size:22px;color:var(--ink);word-break:break-word}.pix-help-text{margin:0}@media (max-width:760px){.due-card-top,.pix-payment-head{flex-direction:column}.pix-payment-box{grid-template-columns:1fr}}


.due-chip-stack{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.due-status-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap}.due-status-chip.is-on-time,.due-status-chip.is-paid{background:#eefaf0;color:#127a3e;border-color:#cfead8}.due-status-chip.is-due-today{background:#fff6db;color:#8b6100;border-color:#f0df9b}.due-status-chip.is-overdue{background:#fff0f0;color:#b13a3a;border-color:#f2c9c9}.due-status-chip.is-open{background:#eef4ff;color:#285caa;border-color:#d7e5ff}

.financial-toolbar-grid{display:grid;grid-template-columns:minmax(220px,1.3fr) repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end}.toolbar-field{display:flex;flex-direction:column;gap:6px}.toolbar-field span{font-size:12px;font-weight:700;color:var(--muted)}.toolbar-field input,.toolbar-field select{padding:12px 14px;border-radius:16px;border:1px solid #e5d9f0;background:#fff;font:inherit;color:var(--ink)}.toolbar-actions-group{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.financial-listing td,.financial-listing th{white-space:nowrap}.financial-listing td:nth-child(3){white-space:normal;min-width:220px}@media (max-width:1100px){.financial-toolbar-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.toolbar-actions-group{grid-column:1/-1;justify-content:flex-start}}@media (max-width:720px){.financial-toolbar-grid{grid-template-columns:1fr}.financial-listing td,.financial-listing th{white-space:normal}}

.field-title{display:block;margin-bottom:10px;font-size:13px;font-weight:700;color:var(--ink)}.divisa-picker{position:relative}.divisa-picker-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:20px;border:1px solid #e5d9f0;background:#fff;color:var(--ink);font:inherit;box-shadow:0 8px 18px rgba(110,45,226,.06)}.divisa-picker-trigger i{color:var(--muted);transition:transform .18s ease}.divisa-picker.is-open .divisa-picker-trigger i{transform:rotate(180deg)}.divisa-picker-trigger-copy{display:grid;gap:4px;text-align:left;min-width:0}.divisa-picker-trigger-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.divisa-picker-summary{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.divisa-picker-summary.is-empty{color:#8f7fa0;font-weight:600}.divisa-picker-panel{position:absolute;top:calc(100% + 10px);left:0;right:0;z-index:25;padding:14px;border-radius:24px;background:#fff;border:1px solid #eadcf4;box-shadow:0 24px 50px rgba(57,23,69,.18)}.divisa-picker-search-wrap{display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:16px;border:1px solid #e5d9f0;background:#faf7fc;margin-bottom:12px}.divisa-picker-search-wrap i{color:var(--muted)}.divisa-picker-search{width:100%;border:none;background:transparent;padding:12px 0;font:inherit;color:var(--ink);outline:none}.divisa-picker-options{display:grid;gap:10px;max-height:280px;overflow:auto;padding-right:4px}.divisa-option{display:flex;align-items:stretch;gap:0;cursor:pointer}.divisa-option input{position:absolute;opacity:0;pointer-events:none}.divisa-option-body{width:100%;display:grid;gap:6px;padding:14px 16px;border-radius:20px;border:2px solid #efe6f1;background:#fff;transition:.18s ease;box-shadow:0 8px 18px rgba(110,45,226,.06)}.divisa-option-body strong{color:var(--ink)}.divisa-option-body small{color:var(--muted);line-height:1.4}.divisa-option input:checked + .divisa-option-body{border-color:#f7b500;background:linear-gradient(135deg,#fff8dd,#fff1c2);box-shadow:0 14px 28px rgba(247,181,0,.18)}.divisa-option-compact .divisa-option-body{padding:12px 14px;border-radius:18px}.compact-warning{padding:16px 18px;border-style:dashed}.compact-warning strong{display:inline;color:var(--ink)}@media (max-width:760px){.divisa-picker-panel{position:static;margin-top:10px}}
.presence-page-grid{align-items:start}.teacher-attendance-list{max-height:78vh;overflow:auto;padding-right:4px}.teacher-attendance-row{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #efe6f1;border-radius:22px;padding:10px 14px}.teacher-attendance-row + .teacher-attendance-row{margin-top:10px}.teacher-attendance-row-open{border-color:#d8c4df;box-shadow:0 12px 30px rgba(110,45,226,.08)}.teacher-attendance-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent;border:0;padding:0;width:100%;text-align:left;cursor:pointer}.student-mini{display:flex;align-items:center;gap:12px;min-width:0}.student-mini div{min-width:0}.student-mini strong{display:block}.student-mini small{display:block;margin-top:2px}.student-avatar-thumb,.student-avatar-fallback{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.student-avatar-thumb{object-fit:cover;border:2px solid #efe6f1;background:#fff}.student-avatar-fallback{background:linear-gradient(135deg,var(--orange),#ffb340);color:#fff;font-weight:800}.teacher-attendance-controls{display:flex;flex-direction:column;gap:10px;padding:4px 0 2px 58px}.teacher-attendance-fields{display:grid;grid-template-columns:180px 1fr;gap:10px}.teacher-attendance-fields label{display:flex;flex-direction:column;gap:6px}.teacher-attendance-notes,.teacher-attendance-date{width:100%}.teacher-attendance-actions{display:flex;gap:8px;flex-wrap:wrap}.presence-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;flex-shrink:0}.presence-pill.is-presente{background:#e9fff1;color:#138b46}.presence-pill.is-falta{background:#fff1f1;color:#b43a3a}.presence-pill.is-justificada{background:#fff8df;color:#8b6800}.presence-pill.is-pendente{background:#f5eff8;color:#6e2de2}.teacher-attendance-btn-danger{background:#fff0f0;color:#b43a3a;border:2px solid #ffd2d2}.coffee-refresh-note{margin-top:10px;color:var(--muted)}@media (max-width:760px){.teacher-attendance-trigger{align-items:flex-start}.teacher-attendance-fields{grid-template-columns:1fr}.teacher-attendance-controls{padding-left:0}.teacher-attendance-actions{flex-direction:column}.teacher-attendance-actions .btn{width:100%}}

.user-avatar-preview{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px dashed #e5d7fb;border-radius:18px;background:#faf7ff}
.user-avatar-preview-card{display:flex;align-items:center;gap:12px}
.user-avatar-image{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid #efe6f1;background:#fff;box-shadow:0 10px 24px rgba(110,45,226,.08)}
.birthday-card small{display:block;margin-top:4px}

.brand-copy-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.brand-logo-img{width:60px;height:60px;border-radius:50%;object-fit:cover;box-shadow:0 8px 18px rgba(0,0,0,.18);background:#fff;padding:2px}.sidebar-brand .brand-logo-img{flex:0 0 60px}.brand-copy-head h1{margin:0}.brand-copy .brand-logo-img{background:rgba(255,255,255,.96)}@media (max-width:760px){.brand-copy-head{gap:10px}.brand-logo-img{width:52px;height:52px}}

.divisa-badge-compact{padding:7px 10px;font-size:11px;box-shadow:none}
.divisas-dropdown{position:relative;display:inline-block;min-width:120px}
.divisas-dropdown summary{list-style:none}
.divisas-dropdown summary::-webkit-details-marker{display:none}
.divisas-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid #eadcf4;border-radius:14px;background:#fff;cursor:pointer;color:var(--ink);font-weight:700;box-shadow:0 8px 18px rgba(110,45,226,.06)}
.divisas-dropdown-trigger i{font-size:12px;color:var(--muted);transition:transform .18s ease}
.divisas-dropdown[open] .divisas-dropdown-trigger i{transform:rotate(180deg)}
.divisas-dropdown-label{font-size:12px;line-height:1.2;white-space:nowrap}
.divisas-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:30;min-width:220px;max-width:280px;display:grid;gap:8px;padding:12px;border:1px solid #eadcf4;border-radius:18px;background:#fff;box-shadow:0 22px 50px rgba(57,23,69,.18)}
@media (max-width:760px){.divisas-dropdown{min-width:100px}.divisas-dropdown-menu{left:auto;right:0;min-width:190px;max-width:220px}}


.modal-card{width:min(960px,100%);max-height:calc(100vh - 40px);overflow:auto}
.student-detail-modal{display:flex;flex-direction:column;gap:18px}.student-detail-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:18px;align-items:start}.student-detail-summary{display:flex;flex-direction:column;gap:16px}.student-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 20px;border-radius:26px;background:linear-gradient(135deg,#fff1d2,#fff,#f7ebff);border:1px solid #f0e4f5}.student-detail-identity{display:flex;align-items:center;gap:14px;min-width:0}.student-detail-header small{display:block;color:var(--orange);font-weight:700}.student-detail-header h3{margin:4px 0 6px;color:var(--ink)}.student-detail-header p{margin:0;color:var(--muted)}.student-detail-avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:0 0 88px;border:3px solid #fff;box-shadow:0 10px 24px rgba(110,45,226,.15)}.student-detail-chip{display:inline-flex;align-items:center;padding:9px 14px;border-radius:999px;background:#fff;color:#6e2de2;border:1px solid #eadcf4;font-size:12px;font-weight:800;white-space:nowrap}.student-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-detail-item{padding:14px 16px;border-radius:20px;background:#fff;border:1px solid #efe6f1}.student-detail-item span{display:block;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}.student-detail-item strong{display:block;color:var(--ink);line-height:1.45}.student-detail-item-full{grid-column:1/-1}.student-detail-divisas{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px;text-align:left}.student-qr-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;border-radius:26px;background:linear-gradient(180deg,#fff8e7,#fff);border:1px solid #f7e0a7;text-align:center}.student-qr-card strong{color:var(--ink)}.student-qr-card p{margin:0;color:var(--muted);line-height:1.6}.student-qr-image{width:220px;height:220px;object-fit:contain;background:#fff;border-radius:24px;padding:12px;border:1px solid #f0e8ef;box-shadow:0 14px 30px rgba(47,21,38,.08)}.student-qr-image-print{width:170px;height:170px;padding:10px}.qr-disclaimer{color:var(--muted);font-size:12px;line-height:1.5}.student-print-card-wrap{display:flex;flex-direction:column;gap:14px}.student-card-print-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.student-print-card{border:2px solid #efe6f1;border-radius:30px;padding:22px;background:#fff;display:flex;flex-direction:column;gap:16px}.student-print-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.student-print-brand{display:flex;align-items:center;gap:14px}.student-print-brand small{display:block;color:var(--orange);font-weight:700}.student-print-brand h4{margin:4px 0 6px;color:var(--ink)}.student-print-brand p{margin:0;color:var(--muted)}.student-print-logo{width:60px;height:60px;border-radius:50%;object-fit:cover;box-shadow:0 8px 18px rgba(0,0,0,.12)}.student-print-identity{display:flex;align-items:center;gap:14px}.student-print-avatar{width:76px;height:76px;border-radius:50%;object-fit:cover;flex:0 0 76px;border:2px solid #efe6f1;background:#fff}.student-print-identity strong{display:block;color:var(--ink);font-size:22px}.student-print-identity span{display:block;margin-top:4px;color:var(--muted)}.student-card-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-card-divisas{display:flex;flex-direction:column;gap:8px}.student-card-divisas-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.modal-print-note{color:var(--muted);font-size:12px}.student-card-meta-item{background:#faf7ff}
@media (max-width:860px){.student-detail-hero{grid-template-columns:1fr}.student-detail-grid,.student-card-meta{grid-template-columns:1fr}.student-print-top{flex-direction:column}.student-qr-image-print{width:160px;height:160px}}



.mobile-nav-overlay{display:none}.mobile-menu-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:48px;height:48px;border:none;border-radius:16px;background:#fff;color:var(--ink);box-shadow:var(--shadow);flex-shrink:0}.mobile-menu-toggle span{display:block;width:20px;height:2px;border-radius:999px;background:currentColor;transition:.18s ease}.topbar-leading{display:flex;align-items:center;gap:14px}.sidebar-close{display:none}.app-body.mobile-nav-open{overflow:hidden}@media (max-width:980px){.app-shell{display:block;position:relative}.mobile-menu-toggle{display:inline-flex}.mobile-nav-overlay{position:fixed;inset:0;background:rgba(27,11,36,.45);backdrop-filter:blur(2px);z-index:40}.app-body.mobile-nav-open .mobile-nav-overlay{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(310px,84vw);max-width:310px;overflow:auto;z-index:50;transform:translateX(-110%);transition:transform .22s ease,box-shadow .22s ease;padding-bottom:30px}.app-body.mobile-nav-open .sidebar{transform:translateX(0);box-shadow:0 24px 60px rgba(22,9,31,.34)}.main-area{margin:12px;border-radius:28px;padding:18px;min-height:calc(100vh - 24px)}.topbar{position:sticky;top:0;z-index:20;background:#f7f4f8;padding-bottom:12px}.topbar-actions{gap:10px}.search-box{min-width:0;width:100%;order:5}.topbar-actions .btn{padding:12px 14px}.sidebar-card{margin-top:24px}}@media (max-width:760px){.main-area{padding:16px;border-radius:24px}.topbar{align-items:flex-start;flex-direction:column}.topbar-leading,.topbar-actions{width:100%}.topbar-actions{justify-content:flex-start}.topbar h2{font-size:24px}}

/* Menu amarelo translúcido e fosco */
.sidebar{
  background:linear-gradient(180deg, rgba(247,181,0,.84) 0%, rgba(255,211,79,.78) 100%) !important;
  backdrop-filter:blur(14px) saturate(110%);
  -webkit-backdrop-filter:blur(14px) saturate(110%);
  border-right:1px solid rgba(255,255,255,.24) !important;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.18);
}
.sidebar-card{
  background:rgba(255,255,255,.48) !important;
  border:1px solid rgba(255,255,255,.28) !important;
}
.nav-btn{
  background:rgba(255,255,255,.46) !important;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.nav-btn.active,.nav-btn:hover{
  background:rgba(110,45,226,.96) !important;
}
@media (max-width:980px){
  .sidebar{
    background:linear-gradient(180deg, rgba(247,181,0,.88) 0%, rgba(255,211,79,.82) 100%) !important;
  }
}


/* Menu mobile recolhido por padrão e atalhos extras */
.sidebar-mobile-links{display:none;gap:10px;flex-direction:column;margin-top:18px}
.btn-mobile-link{width:100%;justify-content:flex-start}
.sidebar-close{display:none;align-items:center;justify-content:center;position:absolute;top:14px;right:14px;width:42px;height:42px;border:none;border-radius:14px;background:rgba(255,255,255,.55);color:var(--ink);font-size:28px;line-height:1;box-shadow:0 10px 20px rgba(0,0,0,.08)}
@media (max-width:980px){
  .sidebar{left:0;transform:translateX(-108%);visibility:hidden;pointer-events:none}
  .app-body.mobile-nav-open .sidebar{visibility:visible;pointer-events:auto}
  .sidebar-close{display:inline-flex}
  .sidebar-mobile-links{display:flex}
  .topbar-actions > .btn{display:none}
  .topbar-actions .notification-wrap{display:none}
}

/* ===== Ajuste geral de layout ADAD Brasil ===== */
html,body{max-width:100%;overflow-x:hidden}
body{word-wrap:break-word}
.app-shell,.main-area,.view-container,.panel-card,.hero-banner,.stat-card,.soft-card,.notice-item,.timeline-item,.student-detail-modal{min-width:0}
.main-area{overflow-x:hidden}
.view-container > *{max-width:100%}

/* Topo e área principal */
.topbar{position:sticky;top:0;z-index:25;background:rgba(247,244,248,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:8px 0 14px}
.topbar-leading>div{min-width:0}
.topbar h2{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-actions{width:100%;justify-content:flex-end}
.search-box{flex:1 1 320px;max-width:520px}

/* Cards e grids */
.stats-grid,.cards-grid,.content-grid,.student-detail-grid,.student-card-meta{align-items:stretch}
.stat-card,.panel-card,.hero-banner,.student-print-card,.student-qr-card,.sidebar-card{overflow:hidden}
.hero-banner{flex-wrap:wrap}
.hero-badge{max-width:100%}
.panel-head,.student-detail-header,.student-print-top,.detail-row{min-width:0}
.panel-head h3,.student-detail-header h3,.student-print-brand h4{overflow-wrap:anywhere}

/* Formulários */
.form-grid,.auth-form{align-items:start}
.form-grid > *, .auth-form > *{min-width:0}
.form-actions{align-items:center}
input,select,textarea,.input-wrap{max-width:100%}

/* Tabelas */
.table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table thead,.table tbody,.table tr{width:100%}
.table th,.table td{white-space:nowrap}
.table td p,.table td strong,.table td span,.table td small{white-space:normal}
.students-listing td:first-child,.financial-listing td:first-child,.divisas-listing td:first-child{min-width:230px}
.financial-listing td,.financial-listing th{min-width:120px}
.students-listing td,.students-listing th{min-width:110px}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Modal */
.modal{padding:14px}
.modal-card{width:min(980px,100%);max-width:100%;border-radius:24px}
#globalModalContent,.student-detail-modal,.student-detail-summary,.student-print-card-wrap{min-width:0}

/* Sidebar desktop */
@media (min-width:981px){
  .sidebar{position:sticky;top:0;height:100vh;overflow:auto}
  .main-area{min-height:calc(100vh - 40px)}
}

/* Tablet e mobile */
@media (max-width:980px){
  .main-area{margin:12px;border-radius:26px;padding:16px 16px 20px}
  .topbar{padding-top:4px}
  .topbar-actions{justify-content:flex-start}
  .search-box{max-width:none}
  .sidebar-nav{display:flex !important;flex-direction:column !important;grid-template-columns:none !important}
  .sidebar-brand{padding-right:52px}
  .sidebar-card .btn{width:100%}
}

@media (max-width:760px){
  .login-layout{width:min(100%,94vw);padding:20px 0 28px;gap:22px}
  .login-phone{padding:20px;border-radius:26px}
  .brand-copy h1{font-size:34px;line-height:1.05}
  .brand-copy p{font-size:15px;line-height:1.6}

  .main-area{margin:10px;border-radius:22px;padding:14px}
  .topbar{gap:12px}
  .topbar h2{font-size:22px;white-space:normal}
  .topbar-actions{display:flex;flex-direction:column;align-items:stretch}
  .topbar-actions > *{width:100%}
  .search-box{order:1}

  .hero-banner{padding:18px;border-radius:24px}
  .hero-banner h2{font-size:28px}
  .hero-badge{min-width:0;width:100%}

  .panel-card,.stat-card,.soft-card,.notice-item,.timeline-item,.student-qr-card,.student-print-card{padding:18px;border-radius:24px}
  .timeline-item{grid-template-columns:1fr;gap:10px}
  .timeline-date{width:52px;height:52px}

  .student-detail-header,.student-detail-identity,.student-print-brand,.student-print-identity{flex-direction:column;align-items:flex-start}
  .student-detail-avatar{width:76px;height:76px;flex-basis:76px}
  .student-qr-image{width:min(220px,100%);height:auto;aspect-ratio:1/1}
  .student-qr-image-print{width:150px;height:150px}

  .table th,.table td{font-size:13px;padding:12px 10px}
  .form-actions .btn,.card-actions .btn,.card-actions a,.card-actions button{width:100%}
  .btn{width:100%}
  .btn-icon{width:40px;height:40px}
  .actions .btn,.actions a,.actions button{width:auto}
}


/* ===== Menu mobile corrigido: sanduíche recolhido por padrão ===== */
@media (max-width:980px){
  .app-shell{display:block !important;min-height:100vh;}
  .sidebar{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    bottom:0 !important;
    width:min(320px,86vw) !important;
    max-width:320px !important;
    height:100vh !important;
    overflow-y:auto !important;
    z-index:1200 !important;
    transform:translateX(-115%) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:transform .24s ease, opacity .18s ease, visibility .18s ease !important;
    border-top-right-radius:28px;
    border-bottom-right-radius:28px;
    padding-bottom:34px !important;
  }

  .app-body.mobile-nav-open .sidebar{
    transform:translateX(0) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    box-shadow:0 24px 60px rgba(22,9,31,.34) !important;
  }

  .mobile-nav-overlay{
    position:fixed !important;
    inset:0 !important;
    background:rgba(27,11,36,.42) !important;
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    z-index:1100 !important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease, visibility .2s ease;
    display:block !important;
  }

  .app-body.mobile-nav-open .mobile-nav-overlay{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .main-area{
    position:relative;
    z-index:1;
    margin:12px !important;
    min-height:calc(100vh - 24px);
  }

  .mobile-menu-toggle{
    display:inline-flex !important;
    position:relative;
    z-index:2;
  }

  .sidebar-close{
    display:inline-flex !important;
  }

  .sidebar-nav{
    display:flex !important;
    flex-direction:column !important;
    grid-template-columns:none !important;
    gap:10px !important;
  }

  .sidebar-mobile-links{
    display:flex !important;
  }

  .topbar-actions > .btn,
  .topbar-actions .notification-wrap{
    display:none !important;
  }
}

@media (max-width:760px){
  .sidebar{
    width:min(300px,88vw) !important;
    max-width:300px !important;
    border-top-right-radius:24px;
    border-bottom-right-radius:24px;
  }

  .sidebar-brand{
    padding-right:56px !important;
  }
}

.digital-clock-widget{display:grid;gap:6px}.digital-clock-time{font-weight:800;line-height:1;letter-spacing:.08em;color:#56f2ff;text-shadow:0 0 14px rgba(86,242,255,.18)}.digital-clock-date{font-weight:600;line-height:1.45;color:rgba(86,242,255,.96)}.digital-clock-date--only{font-size:clamp(16px,2.2vw,20px);font-weight:800;letter-spacing:.02em}.hero-badge .digital-clock-widget{align-items:center}.hero-badge .digital-clock-time{font-size:clamp(22px,3vw,34px)}.hero-badge .digital-clock-date{font-size:14px}.hero-badge .digital-clock-date--only{font-size:clamp(16px,2.4vw,22px);text-align:center}.sidebar-card .digital-clock-widget{align-items:flex-start;margin-bottom:14px}.sidebar-card .digital-clock-time{font-size:clamp(20px,2.3vw,28px)}.sidebar-card .digital-clock-date{font-size:13px}
