:root{--coral:#f48977;--coral2:#f7aa99;--cream:#fff9f4;--yellow:#fad896;--ink:#543b3b;--muted:#8e7a78;--line:#f0e4df;--green:#24a866;--red:#d94b58;--shadow:0 14px 40px rgba(92,53,47,.09)}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#fcfaf9;color:var(--ink)}a{color:inherit;text-decoration:none}aside{position:fixed;inset:0 auto 0 0;width:245px;background:#fff;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;z-index:5}.logo{font-size:26px;font-weight:800;display:flex;align-items:center;gap:10px;margin:0 8px 34px}.logo span{font-size:18px}nav{display:grid;gap:7px}nav a{padding:13px 14px;border-radius:13px;color:var(--muted);font-weight:650;display:flex;gap:12px;align-items:center}nav a b{font-size:20px;width:22px;text-align:center}nav a.active,nav a:hover{background:#fff1ed;color:#c95d4d}.userbox{margin-top:auto;padding:15px;background:var(--cream);border-radius:14px;display:grid;gap:4px}.userbox small{color:var(--coral);font-weight:800}.userbox a{font-size:13px;color:var(--muted);margin-top:4px}.app{margin-left:245px;padding:30px 38px 60px;max-width:1500px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}header h1{margin:3px 0 0;font-size:28px}header small{color:var(--muted)}.menu{display:none;border:0;background:#fff;font-size:24px}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:12px 18px;font-weight:750;cursor:pointer}.primary{background:var(--coral);color:#fff;box-shadow:0 7px 18px rgba(244,137,119,.25)}.big{font-size:18px;padding:17px 25px;width:100%}.hero{background:linear-gradient(120deg,var(--coral),var(--coral2));color:#fff;border-radius:22px;padding:30px 34px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.hero span{font-size:12px;font-weight:850;letter-spacing:1.6px}.hero h2{font-size:30px;margin:8px 0}.hero p{margin:0;opacity:.9}.hero-icon{font-size:68px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.metrics article,.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.metrics span{display:block;color:var(--muted);font-size:13px}.metrics strong{font-size:27px;display:block;margin-top:10px}.metrics .warn{background:#fff9e8}.panel{margin-bottom:18px}.panel h2{margin:0 0 7px;font-size:20px}.panel p{color:var(--muted)}.panel-head{display:flex;justify-content:space-between}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;margin-top:12px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;text-transform:uppercase;color:var(--muted)}.pill{padding:6px 10px;border-radius:30px;font-weight:750}.pill.yellow{background:#fff4cc;color:#8d6b13}.pill.red{background:#ffe7e7;color:var(--red)}.wa{color:#159455;font-weight:750}.empty{text-align:center!important;color:var(--muted);padding:30px!important}.alert{padding:14px 17px;border-radius:12px;margin-bottom:18px}.success{background:#e8f8ef;color:#187546}.error{background:#ffe9e9;color:#a92c3a}label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:700;margin:14px 0}input,select{width:100%;border:1px solid #e5d9d4;border-radius:11px;padding:13px 14px;background:#fff;color:var(--ink);font:inherit;outline:none}input:focus,select:focus{border-color:var(--coral);box-shadow:0 0 0 3px #fff0ed}.login-bg{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#ffe8df,#fffaf7 48%,#f7efeb)}.login-card{width:min(430px,calc(100% - 30px));padding:36px;background:#fff;border-radius:24px;box-shadow:0 25px 70px rgba(99,61,54,.14)}.login-card h1{text-align:center;margin:8px 0}.login-card>p{text-align:center;color:var(--muted)}.login-card .btn{width:100%;margin-top:8px}.brand-mark{text-align:center;font-size:60px}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inline-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}.narrow{max-width:620px}.sale-grid{max-width:1050px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:12px;margin-top:16px}.product{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--cream);display:grid;gap:6px;color:var(--ink)!important}.product b{color:#c85c4c;font-size:18px}.product input{margin:4px 0 0}.positive{color:var(--green);font-weight:750}.negative{color:var(--red);font-weight:750}@media(max-width:900px){aside{transform:translateX(-100%);transition:.25s}.open aside{transform:none}.app{margin-left:0;padding:20px 16px}.menu{display:block}.metrics{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr 1fr}.inline-form .btn{align-self:end}header .primary{display:none}}@media(max-width:560px){.hero{padding:24px}.hero h2{font-size:24px}.hero-icon{display:none}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metrics article{padding:17px}.metrics strong{font-size:21px}.inline-form{grid-template-columns:1fr}.product-grid{grid-template-columns:1fr 1fr}.app{padding:16px 12px}.panel{padding:17px}}

/* 0.6.0: preservar campos ocultos no cadastro e na busca. */
[data-student-only][hidden], [data-customer-row][hidden] { display: none !important; }

/* Hotfix visual 0.6.1: extrato administrativo e Portal de Consumo. */
.movements-table td, .family-app .table-wrap table td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  vertical-align: top;
  line-height: 1.45;
}
.movements-table .move-value, .family-app .table-wrap table td:last-child:not(.empty) {
  white-space: nowrap !important;
  overflow-wrap: normal;
}
.movements-table .move-title, .movements-table .financial-detail,
.movements-table .item-list span { white-space: normal !important; }
.family-app .table-wrap table { table-layout: fixed; width: 100%; min-width: 0 !important; }
.family-app .table-wrap table th:nth-child(1) { width: 17%; }
.family-app .table-wrap table th:nth-child(2) { width: 19%; }
.family-app .table-wrap table th:nth-child(3) { width: 19%; }
.family-app .table-wrap table th:nth-child(4) { width: 31%; }
.family-app .table-wrap table th:nth-child(5) { width: 14%; }
.family-app .family-metrics { grid-template-columns: repeat(auto-fit,minmax(min(210px,100%),1fr)); }
.family-app .family-metrics article { min-width: 0; overflow-wrap: anywhere; }

@media screen and (max-width: 1100px) {
  .movements-wrap, .family-app .table-wrap { overflow: visible !important; }
  .movements-table, .movements-table tbody,
  .family-app .table-wrap table, .family-app .table-wrap tbody {
    display: block !important; width: 100%; min-width: 0 !important;
  }
  .movements-table colgroup, .movements-table thead,
  .family-app .table-wrap thead { display: none !important; }
  .movements-table tr, .family-app .table-wrap tbody tr {
    display: grid !important; grid-template-columns: minmax(0,1fr) !important;
    gap: 10px; padding: 16px 0; border-bottom: 1px solid var(--line);
  }
  .movements-table td, .family-app .table-wrap tbody td {
    display: block !important; width: auto !important; min-width: 0;
    grid-column: 1 !important; grid-row: auto !important;
    padding: 0 !important; border: 0 !important; text-align: left !important;
  }
  .movements-table td::before, .family-app .table-wrap tbody td::before {
    display: block; margin-bottom: 3px; color: var(--muted);
    font-size: 11px; font-weight: 700; text-transform: uppercase;
  }
  .movements-table td::before { content: attr(data-label); }
  .family-app .table-wrap tbody td:nth-child(1)::before { content: 'Data'; }
  .family-app .table-wrap tbody td:nth-child(2)::before { content: 'Cliente'; }
  .family-app .table-wrap tbody td:nth-child(3)::before { content: 'Movimentação'; }
  .family-app .table-wrap tbody td:nth-child(4)::before { content: 'Itens / descrição'; }
  .family-app .table-wrap tbody td:nth-child(5)::before { content: 'Valor'; }
  .movements-table td.empty::before, .family-app .table-wrap td.empty::before { content: none; }
  .movements-table .receipt-button { min-height: 44px; min-width: 44px; }
}
@media screen and (max-width: 700px) {
  .family-app .family-period { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
  .family-app .family-period .btn { margin-top: 0; min-width: 0; white-space: normal; }
}

/* Hotfix visual 0.6.2: preservar a composicao em duas colunas no extrato. */
@media screen and (max-width: 1100px) {
  .movements-table tr {
    grid-template-columns: minmax(0, 1fr) auto !important;
    column-gap: 18px;
  }
  .movements-table .move-date {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  .movements-table .move-receipt {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    align-self: start;
    text-align: center !important;
  }
  .movements-table .move-student {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  .movements-table .move-description {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    padding: 11px 0 !important;
    border-top: 1px dashed var(--line) !important;
    border-bottom: 1px dashed var(--line) !important;
  }
  .movements-table .move-operator {
    grid-column: 1 !important;
    grid-row: 4 !important;
  }
  .movements-table .move-value {
    grid-column: 2 !important;
    grid-row: 4 !important;
    align-self: end;
    text-align: right !important;
  }
}

/* Separar visualmente cada pagamento e seu cancelamento. */
section.panel > details {
  padding: 10px 0 18px;
}
section.panel > details > summary {
  line-height: 1.45;
  overflow-wrap: anywhere;
}
section.panel > details + details {
  margin-top: 14px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
section.panel > details form {
  margin-top: 12px;
}
section.panel > details form > p {
  margin: 14px 0;
  line-height: 1.5;
}

@media screen and (max-width: 520px) {
  section.panel > details {
    padding-bottom: 20px;
  }
  section.panel > details + details {
    margin-top: 16px;
    padding-top: 22px;
  }
}
