:root { --brand-ink:#123246; --brand-accent:#df751a; }
html,body,#root { width:100%; min-width:0; }
img,svg,video { max-width:100%; }
input,textarea,select { max-width:100%; }
button,a,input,select,textarea { touch-action:manipulation; }
.min-w-0, main, [role=tabpanel] { min-width:0; }
.student-page { padding-bottom:100px; }
.student-page > div { width:100%; }
.student-page header h1 { color:#fff; overflow-wrap:anywhere; }
.student-page header button { color:#fff; border:1px solid #ffffff70; background:transparent; }
.student-page header button:hover { background:#ffffff18; }
.student-stats { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.student-stats > div { min-width:0; }
.student-page [id^=pagamento-] { scroll-margin:24px; }
.student-payment { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:20px; }
.student-payment > * { min-width:0; }
.student-payment details { grid-column:1/-1; }
.student-payment summary { cursor:pointer; min-height:44px; font-weight:700; color:#123246; padding:10px 0; }
.student-payment textarea { overflow-wrap:anywhere; }
.site-home { background:#fafbf9; color:#243f4b; font-size:16px; line-height:1.65; }
.site-home h1,.site-home h2,.site-home h3 { margin:0; color:#123246; line-height:1.12; letter-spacing:-.035em; }
.site-home h1 { font-size:clamp(36px,4.6vw,64px); }
.site-home h2 { font-size:clamp(28px,3.3vw,42px); max-width:700px; }
.site-home h3 { font-size:23px; }
.site-home p { margin:14px 0 0; }
.home-container { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
.home-header { background:#fff; border-bottom:1px solid #e0e6e4; position:relative; z-index:30; }
.home-header-row { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:90px; }
.home-brand { display:flex; align-items:center; gap:12px; }
.home-brand img { object-fit:contain; width:58px; height:58px; }
.home-brand strong { display:block; font-size:20px; color:#123246; letter-spacing:-.04em; }
.home-brand small { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.09em; }
.home-nav { display:flex; align-items:center; gap:24px; font-size:14px; font-weight:600; }
.home-nav a:not(.home-button):hover,.home-footer a:hover { color:#a54c0b; }
.home-menu-toggle { display:none; }
.home-hero { background:#eef3f1; padding:64px 0; }
.home-hero-grid { display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:56px; }
.home-hero h1 span { display:block; color:#28635e; }
.home-eyebrow { margin:0 0 16px!important; color:#a34b10; font-size:12px; text-transform:uppercase; letter-spacing:.14em; font-weight:700; }
.home-lead { font-size:18px; line-height:1.7; max-width:590px; }
.home-brand-art { display:flex; align-items:center; justify-content:center; flex-direction:column; padding:35px; aspect-ratio:1; }
.home-brand-art img { width:100%; max-height:310px; object-fit:contain; }
.home-brand-art span { font-size:12px; letter-spacing:.06em; margin-top:24px; }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:30px; }
.home-button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; background:#123246; color:#fff!important; border-radius:12px; padding:12px 20px; font-size:14px; font-weight:700; text-align:center; }
.home-button-accent { background:#dc721d; color:#1e180e!important; }
.home-button:hover { filter:brightness(1.08); }
.home-button-small { min-height:42px; padding:10px 14px; }
.home-text-link { font-size:14px; font-weight:700; }
.home-section { padding:72px 0; scroll-margin-top:20px; }
.home-cards,.home-schedules { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:32px; }
.home-cards article,.home-schedules article { padding:28px; background:#fff; border:1px solid #dce5e1; border-radius:18px; }
.home-card-number { display:block; color:#ac5b22; font-size:13px; margin-bottom:26px; }
.home-cards p,.home-schedules p { font-size:15px; }
.home-journey { background:#123246; color:#e3eeed; }
.home-journey h2,.home-contact h2 { color:#fff; }
.home-journey .home-eyebrow,.home-contact .home-eyebrow { color:#ffb974; }
.home-two-columns { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.home-journey .home-lead { margin-top:0; }
.home-journey .home-button { margin-top:24px; background:#ffffff14; border:1px solid #ffffff70; }
.home-section-intro { max-width:630px; }
.home-empty { padding:24px; border:1px dashed #b5c6c0; border-radius:16px; }
.home-contact-section { padding-top:0; padding-bottom:48px; }
.home-contact { display:grid; grid-template-columns:1.4fr .6fr; gap:48px; align-items:center; background:#173f43; color:#e6f1ed; padding:48px; border-radius:24px; }
.home-contact h2 { font-size:clamp(27px,3vw,38px); }
.home-contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; font-size:14px; }
.home-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; font-size:13px; border-top:1px solid #dce5e1; }
.home-footer img { width:40px; height:40px; }
.chat-launcher { position:fixed; right:24px; bottom:max(24px,env(safe-area-inset-bottom)); z-index:60; min-height:48px; padding:12px 20px; border-radius:28px; background:#123246; color:#fff; font-size:14px; font-weight:700; box-shadow:0 5px 25px #102d4630; }
.chat-backdrop { position:fixed; inset:0; background:#0b233a55; z-index:100; display:flex; align-items:flex-end; justify-content:flex-end; padding:24px; }
.chat-dialog { width:430px; max-width:100%; height:min(650px,90dvh); background:#fff; border-radius:22px; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 15px 60px #0003; }
.chat-dialog>header { padding:20px; background:#123246; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.chat-dialog>header h2 { color:#fff; font-size:18px; line-height:1.4; }
.chat-dialog>header p { color:#dde9ec; font-size:12px; margin-top:4px; }
.chat-dialog>header button { flex-shrink:0; font-size:26px; width:44px; height:44px; color:#fff; border:1px solid #ffffff70; border-radius:50%; }
.conversation { min-height:0; display:flex; flex-direction:column; flex:1; color:#183746; }
.conversation-log { flex:1; min-height:200px; max-height:450px; padding:16px; overflow:auto; background:#f4f7f6; }
.chat-dialog .conversation-log { max-height:none; min-height:0; }
.conversation-empty { padding:24px 8px; font-size:14px; color:#46606c; text-align:center; }
.message { width:fit-content; max-width:90%; padding:12px 14px; border-radius:14px 14px 14px 3px; border:1px solid #d4e0dc; background:#fff; margin-bottom:12px; overflow-wrap:anywhere; }
.message strong,.message time { display:block; font-size:11px; }
.message p { margin:6px 0; font-size:14px; white-space:pre-wrap; line-height:1.6; }
.message time { opacity:.85; }
.message-own { margin-left:auto; background:#123246; color:#fff; border-color:#123246; border-radius:14px 14px 3px 14px; }
.message-payment { min-height:44px; text-decoration:underline; font-weight:700; font-size:13px; }
.conversation-compose { display:flex; gap:10px; padding:14px; border-top:1px solid #dce5e1; align-items:end; }
.conversation-compose textarea { flex:1; min-width:0; width:100%; background:#fff; color:#123246; border:1px solid #9bafaa; padding:12px; border-radius:12px; resize:vertical; }
.conversation-error { color:#a91c22; background:#fff0ef; padding:10px 14px; font-size:14px; }
.totem-page section { width:100%; }
@media(max-width:1000px) {
 .home-nav { gap:14px; }
 .home-hero-grid { gap:28px; }
 .home-cards,.home-schedules { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .home-contact { padding:32px; gap:28px; }
}
@media(max-width:767px) {
 input,textarea,select { font-size:16px!important; }
 .home-container { width:calc(100% - 36px); }
 .home-header-row { min-height:76px; }
 .home-brand strong { font-size:18px; }
 .home-brand img { width:48px; height:48px; }
 .home-menu-toggle { display:block; min-height:44px; font-size:13px; border:1px solid #b5c6c0; border-radius:10px; padding:8px 12px; }
 .home-nav { display:none; position:absolute; top:76px; left:0; right:0; background:#fff; padding:18px; box-shadow:0 16px 20px #12324615; }
 .home-nav.is-open { display:flex; flex-direction:column; align-items:stretch; }
 .home-nav a { padding:12px; }
 .home-hero { padding:40px 0; }
 .home-hero-grid,.home-two-columns,.home-contact { grid-template-columns:1fr; gap:28px; }
 .home-brand-art { aspect-ratio:auto; padding:20px; flex-direction:row; gap:24px; text-align:center; }
 .home-brand-art img { width:120px; height:120px; }
 .home-brand-art span { margin:0; max-width:120px; }
 .home-section { padding:44px 0; }
 .home-cards,.home-schedules { grid-template-columns:1fr; gap:14px; margin-top:24px; }
 .home-cards article,.home-schedules article { padding:24px; }
 .home-contact-section { padding-top:0; }
 .home-contact { padding:28px; }
 .home-contact-actions { align-items:stretch; }
 .home-footer { flex-wrap:wrap; }
 .home-actions { align-items:stretch; flex-direction:column; }
 .student-page { padding:16px 16px 100px; }
 .student-page header { padding:20px; }
 .student-page header h1 { font-size:24px; }
 .student-stats { gap:8px; }
 .student-stats > div { padding:12px 8px; }
 .student-stats strong { font-size:16px; }
 .student-stats span { font-size:9px; }
 .student-payment { grid-template-columns:1fr; padding:16px; }
 .chat-launcher { right:16px; bottom:max(16px,env(safe-area-inset-bottom)); }
 .chat-backdrop { padding:12px; }
 .chat-dialog { width:100%; height:min(660px,calc(100dvh - 24px)); }
 .conversation-compose { gap:8px; padding:12px; }
 .conversation-compose button { padding:10px 14px; }
 .totem-page { padding:20px 16px!important; }
 .totem-page>section { border-radius:20px!important; }
 .totem-page aside { display:none!important; }
 .totem-page>header img { width:52px!important; height:52px!important; }
 .totem-page>header { gap:12px!important; }
 .totem-page>header strong { font-size:26px!important; }
 .totem-page>section>div { min-height:0!important; }
}
.invoice-create { max-width:800px; margin:auto; min-width:0; }
.invoice-fields { min-width:0; border:0; padding:0; }
.invoice-select { display:block; width:100%; min-height:48px; padding:10px; border:1px solid #b8c9d2; border-radius:10px; color:#143345; background:white; }
.invoice-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.invoice-check { display:flex; align-items:center; gap:12px; min-height:48px; padding:8px; cursor:pointer; }
.invoice-check input { width:20px; height:20px; flex-shrink:0; accent-color:#073952; }
.invoice-students { max-height:300px; overflow:auto; border:1px solid #c9d5dc; border-radius:12px; margin-top:12px; }
.invoice-students .invoice-check:nth-child(even) { background:#f1f5f6; }
.invoice-summary,.invoice-result { background:#eaf3f2; color:#143345; padding:16px; border-radius:12px; margin-top:20px; }
.invoice-result p { margin:12px 0; }
.automation-settings { max-width:820px; color:var(--color-on-surface,#143345); }
.automation-settings>p,.automation-settings section p { margin:12px 0; line-height:1.6; }
.automation-settings h2 { font-size:24px; font-weight:700; }
.automation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.admin-alert-trigger { position:relative; display:grid; place-items:center; min-width:44px; min-height:44px; border-radius:50%; }
.admin-alert-badge,.admin-alert-warning { position:absolute; right:0; top:0; border-radius:20px; padding:1px 5px; background:#b42318; color:white; font-size:11px; }
.admin-alert-warning { left:0; right:auto; background:#996000; }
.admin-alert-backdrop { position:fixed; inset:0; z-index:100; background:#071c2e66; display:flex; justify-content:flex-end; }
.admin-alert-panel { width:min(100%,460px); height:100%; overflow-y:auto; background:#f8fafb; color:#143345; padding:20px; box-shadow:-8px 0 30px #071c2e22; }
.admin-alert-panel header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.admin-alert-panel h2 { color:#143345!important; font-size:22px; font-weight:700; }
.admin-alert-panel>p { margin:12px 0; font-size:14px; }
.admin-alert-item { background:#fff; border:1px solid #b8c9d2; border-left:4px solid #087b83; border-radius:12px; padding:14px; margin:12px 0; overflow-wrap:anywhere; }
.admin-alert-item.is-read { border-left-color:#b8c9d2; }
.admin-alert-item h3 { color:#143345!important; font-weight:700; font-size:16px; margin:6px 0; }
.admin-alert-item p { color:#3d5969!important; line-height:1.5; font-size:14px; }
.admin-alert-type { font-size:11px; text-transform:uppercase; font-weight:700; letter-spacing:.08em; color:#087b83; }
@media(max-width:600px) { .automation-grid { grid-template-columns:1fr; } .admin-alert-panel { padding:16px; } }
