:root{--green-dark: #0f766e;--green: #10876b;--green-bg: #ecf5f1;--green-accent: #0d9268;--green-btn: #12a06f;--header-grad-1: #15b886;--header-grad-2: #0c7a64;--drawer-start: #0f766e;--drawer-end: #10876b;--white: #ffffff;--surface: #ffffff;--text: #1f2933;--muted: #6b7a86;--line: #eef2f4;--brand-ring: rgba(13, 146, 104, .14);--orange: #f59e0b;--red: #ef4444;--green-ok: #16a34a;--radius: 20px;--shadow: 0 10px 30px rgba(13, 80, 64, .1);--shadow-sm: 0 4px 14px rgba(13, 80, 64, .07)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--green-bg);color:var(--text);-webkit-font-smoothing:antialiased}.app-shell{min-height:100%;display:flex;flex-direction:column;background:var(--green-bg);max-width:480px;margin:0 auto;position:relative}.app-header{background:linear-gradient(135deg,var(--header-grad-1) 0%,var(--header-grad-2) 100%);color:#fff;padding:18px 18px 22px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;border-bottom-left-radius:22px;border-bottom-right-radius:22px;box-shadow:0 10px 24px var(--brand-shadow)}.app-header .menu-btn,.app-header .bell-btn{background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer;padding:4px;line-height:1}.app-header .title{font-size:1.15rem;font-weight:600;flex:1;margin-left:14px}.app-body{flex:1;padding:16px 14px 90px;overflow-y:auto}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:#fff;display:flex;justify-content:space-around;align-items:center;padding:8px 4px;padding-bottom:calc(8px + env(safe-area-inset-bottom));box-shadow:0 -2px 12px #00000014;z-index:30}.tabbar{border-top-left-radius:22px;border-top-right-radius:22px}.tabbar button{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:.7rem;cursor:pointer;flex:1;padding:6px 0 4px;transition:color .2s}.tabbar button .ico{font-size:1.3rem;line-height:1;width:46px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:16px;transition:background .2s,transform .2s}.tabbar button.active{color:var(--green-accent);font-weight:700}.tabbar button.active .ico{background:linear-gradient(135deg,color-mix(in srgb,var(--green-btn) 18%,transparent),color-mix(in srgb,var(--green-dark) 14%,transparent));transform:translateY(-1px)}.card{background:var(--surface);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow);border:1px solid color-mix(in srgb,var(--green-dark) 10%,transparent)}.card-title{color:var(--green-accent);font-size:1.15rem;font-weight:700;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between}.card-title .ver-mais{font-size:.8rem;color:var(--green-accent);cursor:pointer;font-weight:600}.muted{color:var(--muted)}.relogio-card{text-align:center}.relogio{font-size:3.6rem;font-weight:800;background:linear-gradient(135deg,var(--header-grad-1),var(--header-grad-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:1px}.coord{color:var(--muted);font-size:.9rem;margin-top:6px}.ultimo-registro{display:flex;justify-content:space-between;align-items:center;font-size:.95rem}.ultimo-registro .lbl{color:var(--text);font-weight:600}.ultimo-registro .val{color:var(--muted)}.mapa-box{width:100%;height:280px;border-radius:var(--radius);overflow:hidden;background:#e8eef0;position:relative}.mapa-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:color-mix(in srgb,var(--green-dark) 88%,black);color:#fff;font-size:.8rem;font-weight:600;padding:6px 14px;border-radius:20px;white-space:nowrap;box-shadow:0 4px 12px #0003}.selfie-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0b1f1a;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:14px}.selfie-titulo{color:#fff;font-size:1.15rem;font-weight:700;text-align:center}.selfie-video-wrap{width:260px;height:260px;border-radius:50%;overflow:hidden;border:4px solid var(--green-btn);box-shadow:0 0 0 6px color-mix(in srgb,var(--green-btn) 24%,transparent);background:#000}.selfie-video-wrap video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.selfie-dica{color:#ffffffd9;font-size:.9rem;text-align:center;margin:0;max-width:300px}.selfie-erro{color:#ffd5d5;text-align:center;max-width:300px}.selfie-acoes{display:flex;gap:12px;width:100%;max-width:360px;margin-top:6px}.selfie-btn{flex:1;padding:15px;border:none;border-radius:14px;font-size:1rem;font-weight:700;cursor:pointer}.selfie-btn.cancelar{background:#ffffff26;color:#fff}.selfie-btn.capturar{background:linear-gradient(135deg,var(--header-grad-1),var(--header-grad-2));color:#fff}.selfie-btn:disabled{opacity:.6}.selfie-thumb{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--line);cursor:pointer}.selfie-thumb.sem-foto{display:flex;align-items:center;justify-content:center;background:#eef2f4;font-size:1.2rem;cursor:default}.tag-tipo{display:inline-block;font-size:.68rem;font-weight:700;padding:1px 8px;border-radius:10px;margin-left:8px;vertical-align:middle}.tag-tipo.entrada{background:#16a34a24;color:var(--green-ok)}.tag-tipo.saida{background:#ef444424;color:var(--red)}.foto-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#000000e6;display:flex;align-items:center;justify-content:center;padding:20px}.foto-modal img{max-width:100%;max-height:80vh;border-radius:16px}.foto-fechar{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;border:none;background:#fff3;color:#fff;font-size:1.3rem;cursor:pointer}.doc-modal{width:100%;max-width:480px;margin:0 auto;min-height:100%;background:#fff}.doc-modal-head{position:sticky;top:0;background:linear-gradient(135deg,var(--header-grad-1),var(--header-grad-2));color:#fff;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}.doc-modal-head h2{margin:0;font-size:1.1rem;font-weight:700}.doc-modal-x{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer}.btn-anexar{width:100%;padding:14px;border:2px dashed color-mix(in srgb,var(--green-btn) 82%,white);background:color-mix(in srgb,var(--green-btn) 8%,white);color:var(--green-accent);border-radius:12px;font-size:.98rem;font-weight:700;cursor:pointer}.anexo-preview{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8fafb}.anexo-preview img{width:64px;height:64px;object-fit:cover;border-radius:8px}.anexo-pdf{width:64px;height:64px;display:flex;align-items:center;justify-content:center;font-size:2rem;background:color-mix(in srgb,var(--green-bg) 56%,var(--surface));border-radius:8px}.anexo-nome{font-size:.85rem;color:var(--text);word-break:break-all}.doc-form{display:flex;flex-direction:column;gap:18px;padding:18px 16px 24px}.dform-field{display:flex;flex-direction:column;gap:7px}.dform-label{font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}.dform-field select,.dform-field textarea,.dform-data input{width:100%;padding:13px 12px;font-size:1rem;border:1.5px solid #dbe3e7;border-radius:12px;background:#fff;color:var(--text);font-family:inherit}.dform-field select:focus,.dform-field textarea:focus,.dform-data input:focus{outline:none;border-color:var(--green-accent);box-shadow:0 0 0 3px var(--brand-ring)}.dform-select-wrap select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%230d9268' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px}.dform-periodo{display:flex;align-items:flex-end;gap:8px}.dform-data{flex:1;display:flex;flex-direction:column;gap:4px}.dform-data>span{font-size:.78rem;font-weight:600;color:var(--muted);padding-left:2px}.dform-seta{color:var(--green-accent);font-weight:700;padding-bottom:13px}.dform-dias{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:color-mix(in srgb,var(--green-accent) 12%,transparent);color:var(--green-accent);font-size:.85rem;font-weight:700;padding:6px 12px;border-radius:20px}.dform-dias.erro{background:#ef44441a;color:var(--red)}.dform-hint{font-size:.75rem;color:var(--muted)}.btn-anexar{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:22px 14px;border:2px dashed color-mix(in srgb,var(--green-btn) 82%,white);background:color-mix(in srgb,var(--green-btn) 7%,white);color:var(--green-accent);border-radius:16px;font-size:.98rem;font-weight:700;cursor:pointer;text-align:center}.btn-anexar .anexar-ico{font-size:1.8rem}.btn-anexar small{font-weight:500;color:var(--muted);font-size:.78rem}.anexo-info{display:flex;flex-direction:column;gap:6px;flex:1}.anexo-trocar{align-self:flex-start;background:none;border:none;color:var(--green-accent);font-weight:700;font-size:.82rem;cursor:pointer;padding:0}.dform-erro{background:#ef44441a;color:var(--red);font-weight:600;font-size:.9rem;padding:10px 12px;border-radius:10px}.dform-acoes{display:flex;gap:10px;margin-top:4px}.dform-btn{flex:1;padding:15px;border:none;border-radius:13px;font-size:1rem;font-weight:700;cursor:pointer}.dform-btn.cancelar{background:#eef2f4;color:var(--text)}.dform-btn.enviar{background:linear-gradient(135deg,var(--header-grad-1),var(--header-grad-2));color:#fff;box-shadow:0 6px 16px var(--brand-shadow)}.dform-btn.enviar:disabled{opacity:.6}.mapa-box iframe,.mapa-box img{width:100%;height:100%;border:0;object-fit:cover}.btn-registrar{width:100%;background:linear-gradient(135deg,var(--header-grad-1),var(--header-grad-2));color:#fff;border:none;border-radius:var(--radius);padding:19px;font-size:1.08rem;font-weight:800;letter-spacing:.6px;cursor:pointer;box-shadow:0 10px 24px var(--brand-shadow);transition:transform .15s,box-shadow .15s}.btn-registrar:active{transform:scale(.98);box-shadow:0 5px 14px var(--brand-shadow)}.alerta-card{display:flex;gap:14px;align-items:flex-start}.alerta-card .icone{font-size:2.2rem}.alerta-card .texto{color:var(--orange);font-size:.95rem;line-height:1.4;flex:1}.alerta-acoes{display:flex;gap:22px;justify-content:flex-end;margin-top:10px}.alerta-acoes button{background:none;border:none;color:var(--green-accent);font-weight:600;font-size:.95rem;cursor:pointer}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.timeline li:last-child{border-bottom:none}.timeline .seta{font-size:1.3rem;width:26px;text-align:center}.timeline .seta.entrada{color:var(--green-ok)}.timeline .seta.saida{color:var(--red)}.timeline .info{flex:1}.timeline .info .dt{font-size:.95rem;color:var(--text)}.timeline .info .org{font-size:.8rem;color:var(--muted)}.timeline .download{color:var(--muted);font-size:1.2rem}.badge{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:20px}.badge.rejeitado{color:var(--red);border:1px dashed var(--red)}.badge.aprovado{color:var(--green-ok)}.badge.assinado{color:var(--green-ok);font-weight:600}.badge.pendente{color:var(--red);font-weight:600}.offline-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.offline-row .sync{color:var(--green-accent);font-size:1.2rem;cursor:pointer}.tabela-horas{width:100%;border-collapse:collapse;font-size:.85rem}.tabela-horas th{text-align:right;color:var(--muted);font-weight:600;padding:10px 6px;border-bottom:1px solid var(--line)}.tabela-horas th:first-child{text-align:left}.tabela-horas td{text-align:right;padding:12px 6px;border-bottom:1px solid var(--line)}.tabela-horas td:first-child{text-align:left}.tabela-horas .dia{font-weight:600}.tabela-horas .dia small{display:block;color:var(--muted);font-weight:400}.tabela-horas tr.inconsistente td,.tabela-horas tr.inconsistente .dia small{color:var(--red)}.row-flag{color:var(--orange);margin-right:4px}.row-flag.ok{color:var(--green-ok)}.resumo-legenda{margin-bottom:12px;color:var(--muted);font-size:.82rem;line-height:1.4}.resumo-mensal-card{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--surface) 0%,color-mix(in srgb,var(--green-bg) 76%,var(--surface)) 100%);box-shadow:0 10px 24px color-mix(in srgb,var(--brand-shadow) 50%,transparent)}.resumo-mensal-titulo{font-weight:700;color:var(--text)}.resumo-mensal-subtitulo{margin-top:4px;color:var(--muted);font-size:.82rem}.resumo-mensal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.resumo-pill{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--green-accent) 8%,var(--surface))}.resumo-pill span{display:block;color:var(--muted);font-size:.74rem;margin-bottom:4px}.resumo-pill strong{color:var(--text);font-size:1rem}.resumo-pill.ok{background:#15803d1f}.resumo-pill.ok strong{color:#166534}.resumo-pill.night{background:#5b21b61f}.resumo-pill.night strong{color:#5b21b6}.resumo-pill.danger{background:#dc26261f}.resumo-pill.danger strong{color:#b91c1c}.filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.filtros button{background:#eef1f0;border:none;border-radius:8px;padding:9px 14px;font-size:.85rem;color:var(--text);cursor:pointer}.filtros button.active{background:var(--green-btn);color:#fff;font-weight:600}.pedido-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}.pedido-row:last-child{border-bottom:none}.pedido-row .status-ico{font-size:1.4rem;width:30px;text-align:center}.pedido-row .status-ico.aguardando{color:var(--orange)}.pedido-row .status-ico.aprovado{color:var(--green-ok)}.pedido-row .status-ico.reprovado{color:var(--red)}.pedido-row .pd-info{flex:1}.pedido-row .pd-info .ttl{font-weight:600;color:var(--text)}.pedido-row .pd-info .sub{font-size:.82rem;color:var(--muted)}.pedido-row .chevron{color:var(--muted);font-size:1.2rem}.fab{position:fixed;bottom:96px;right:50%;margin-right:-228px;width:60px;height:60px;border-radius:50%;background:var(--green-btn);color:#fff;border:none;font-size:2rem;line-height:1;cursor:pointer;box-shadow:0 6px 16px #00000040;z-index:25}.contador-batidas{font-size:.8rem;font-weight:700;color:#fff;background:var(--green-accent);padding:2px 10px;border-radius:20px}.batidas-dia{list-style:none;margin:0;padding:0}.batidas-dia li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.batidas-dia li:last-child{border-bottom:none}.batidas-dia .bd-ico{font-size:1.2rem;width:28px;text-align:center}.batidas-dia .bd-rotulo{flex:1;font-weight:600;color:var(--text)}.batidas-dia .bd-hora{font-variant-numeric:tabular-nums;font-weight:700;color:var(--green-accent)}.batidas-dia li.pendente .bd-rotulo{color:var(--muted);font-weight:500}.batidas-dia li.pendente .bd-hora{color:var(--muted);font-weight:400;font-size:.85rem}.perfil-top{text-align:center;padding:10px 0 4px}.perfil-avatar{width:84px;height:84px;border-radius:50%;background:#fff;color:var(--green-accent);display:flex;align-items:center;justify-content:center;font-size:2.2rem;font-weight:700;margin:0 auto 10px;box-shadow:var(--shadow)}.perfil-nome{color:#fff;font-size:1.25rem;font-weight:700}.perfil-cargo{color:#ffffffd9;font-size:.9rem}.menu-lista{list-style:none;margin:0;padding:0}.menu-lista li{display:flex;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line);cursor:pointer;font-size:.98rem}.menu-lista li:last-child{border-bottom:none}.menu-lista li .ico{font-size:1.3rem;width:26px;text-align:center}.menu-lista li .chevron{margin-left:auto;color:var(--muted)}.menu-lista li.sair{color:var(--red)}.btn-add-doc{width:100%;background:var(--green-btn);color:#fff;border:none;border-radius:var(--radius);padding:16px;font-size:.98rem;font-weight:600;cursor:pointer;margin-bottom:14px;display:flex;align-items:center;justify-content:center;gap:10px}.doc-row{display:flex;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.doc-row:last-child{border-bottom:none}.doc-row .dc-info{font-size:.9rem;line-height:1.5}.doc-row .dc-info .dc-tipo{color:var(--text)}.doc-row .dc-acoes{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--green-accent);font-size:1.3rem}.loading,.empty{text-align:center;color:var(--muted);padding:30px 0}.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--green-accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}.login{--green-dark: #1D4ED8;--green-accent: #2563EB;--header-grad-1: #2563EB;--header-grad-2: #1E40AF;--brand-ring: #2563EB29;--brand-shadow: #1E40AF26;--text: #112A53;--muted: #455C7A;min-height:100%;display:flex;align-items:center;justify-content:center;padding:20px;background:repeating-linear-gradient(135deg,#ffffff85 0,#ffffff85 18px,#bed3fa38 18px,#bed3fa38 36px),linear-gradient(150deg,#f4f8ff,#e4eeff)}.login-box{width:100%;max-width:380px;background:#fff;border-radius:28px;padding:30px 24px;box-shadow:0 24px 48px #1e40af1f;border:1px solid color-mix(in srgb,var(--green-dark) 16%,transparent)}.brand-lg{font-size:2rem;margin:0;color:var(--text);letter-spacing:-.03em}.login-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.login-brand-logo{display:block;width:min(100%,242px);height:auto}.login-brand-copy{min-width:0}.login-eyebrow{margin:0 0 4px;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark)}.form{display:flex;flex-direction:column;gap:16px;margin-top:26px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:.8rem;color:#48635d;font-weight:700;letter-spacing:.01em}.field input{padding:14px;font-size:1rem;border-radius:14px;border:1px solid #d8e5e1;background:#fdfefe;color:var(--text);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.field input:focus{outline:none;border-color:var(--green-accent);box-shadow:0 0 0 4px var(--brand-ring);transform:translateY(-1px)}.btn-primary{margin-top:6px;padding:15px;font-size:1rem;font-weight:700;border:none;border-radius:16px;background:linear-gradient(135deg,var(--header-grad-1),var(--header-grad-2));color:#fff;cursor:pointer;box-shadow:0 14px 24px var(--brand-shadow, rgba(15, 118, 110, .24));transition:transform .15s,box-shadow .15s}.btn-primary:hover:not(:disabled){filter:brightness(1.03);box-shadow:0 18px 28px var(--brand-shadow, rgba(15, 118, 110, .24))}.btn-primary:active:not(:disabled){transform:scale(.99)}.btn-primary:disabled{opacity:.6;cursor:default}.error{color:#b91c1c;font-size:.9rem;margin:0;padding:12px 14px;border-radius:14px;background:#fff3f3;border:1px solid #fecaca}.login-footer{margin-top:22px;text-align:center}.login-footer-line{display:block;width:68px;height:1px;margin:0 auto 12px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--green-dark) 45%,transparent),transparent)}.login-footer p{margin:0;color:var(--muted);font-size:.8rem}.login-footer strong{color:var(--text)}.route-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:#fff}.text-center{text-align:center}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;pointer-events:none;transition:opacity .25s;z-index:40}.drawer-overlay.aberto{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;left:0;height:100%;width:78%;max-width:320px;background:linear-gradient(180deg,var(--drawer-start),var(--drawer-end));color:#fff;transform:translate(-100%);transition:transform .25s ease;z-index:41;display:flex;flex-direction:column;padding:20px 0;overflow-y:auto}.drawer.aberto{transform:translate(0)}.drawer-brand{display:flex;align-items:center;gap:12px;padding:0 20px 18px;border-bottom:1px solid rgba(255,255,255,.18);margin-bottom:16px}.drawer-brand-mark{width:54px;height:54px;border-radius:18px;background:#ffffff24;display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:800}.drawer-brand-logo{width:100%;height:100%;object-fit:cover}.drawer-brand-copy{display:flex;flex-direction:column;gap:2px}.drawer-brand-copy span{font-size:.76rem;opacity:.78}.drawer-header{display:flex;align-items:center;gap:14px;padding:10px 20px 20px;border-bottom:1px solid rgba(255,255,255,.25)}.drawer-avatar{width:60px;height:60px;border-radius:50%;background:#fff;color:var(--green-accent);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;flex-shrink:0}.drawer-nome{font-weight:700;font-size:1.05rem}.drawer-email{font-size:.82rem;opacity:.9;word-break:break-all}.drawer-lista{list-style:none;margin:0;padding:10px 0;flex:1}.drawer-lista li{display:flex;align-items:center;gap:16px;padding:15px 22px;cursor:pointer;font-size:.98rem}.drawer-lista li:active{background:#ffffff1f}.drawer-lista li .ico,.drawer-sair .ico{font-size:1.25rem;width:26px;text-align:center}.drawer-sair{display:flex;align-items:center;gap:16px;padding:16px 22px;cursor:pointer;color:#ffd5d5;border-top:1px solid rgba(255,255,255,.25);font-size:1rem}.about-brand-logo{width:72px;height:72px;border-radius:22px;object-fit:cover;box-shadow:0 12px 28px var(--brand-shadow, rgba(15, 118, 110, .24))}.perfil-foto-wrap{position:relative;width:130px;margin:0 auto 20px}.perfil-foto{width:130px;height:130px;border-radius:50%;background:#eef2f0;color:var(--green-accent);display:flex;align-items:center;justify-content:center;font-size:2.6rem;font-weight:700;overflow:hidden}.perfil-foto img{width:100%;height:100%;object-fit:cover}.perfil-cam{position:absolute;right:4px;bottom:4px;width:40px;height:40px;border-radius:50%;background:var(--green-btn);color:#fff;border:3px solid #fff;font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.perfil-form{display:flex;flex-direction:column;gap:18px}.perfil-form .field span{font-size:.95rem;color:var(--text);font-weight:500}.perfil-form .req{color:var(--red)}.perfil-form input,.perfil-form textarea{padding:14px;font-size:1rem;border-radius:10px;border:1px solid #cbd5e0;background:#fafbfc;color:var(--text);width:100%;font-family:inherit}.perfil-form input:focus,.perfil-form textarea:focus{outline:none;border-color:var(--green-accent)}.data-box{padding:16px 14px;border-radius:10px;border:1px solid #cbd5e0;background:#fafbfc;color:var(--green-accent);text-align:center;font-weight:600}.senha-wrap{display:flex;align-items:center;gap:10px}.senha-wrap input{flex:1}.olho{background:none;border:none;font-size:1.3rem;cursor:pointer;padding:6px}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-nav button{background:none;border:none;color:var(--green-accent);font-size:1.1rem;cursor:pointer;padding:4px 10px}.cal-titulo{font-size:1.1rem;font-weight:600;color:var(--text)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-head .cal-dow{text-align:center;color:var(--muted);font-size:.78rem;padding:6px 0}.cal-cell{display:flex;align-items:center;justify-content:center;padding:4px 0}.cal-num{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;color:var(--text)}.cal-cell.fora .cal-num{color:#cbd5e0}.cal-legenda{display:grid;grid-template-columns:1fr 1fr;gap:14px 10px}.leg-item{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--text)}.leg-bola{width:18px;height:18px;border-radius:50%;flex-shrink:0}.pref-acoes{display:flex;gap:14px;margin-bottom:18px}.pref-acoes button{flex:1;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;color:var(--green-accent);font-weight:700;cursor:pointer;box-shadow:var(--shadow)}.pref-lista{list-style:none;margin:0;padding:0}.pref-lista li{display:flex;align-items:center;gap:14px;padding:12px 0}.pref-label{font-size:.95rem;color:var(--text);line-height:1.3}.switch{width:46px;height:26px;border-radius:20px;background:#cbd5e0;border:none;position:relative;cursor:pointer;flex-shrink:0;transition:background .2s;padding:0}.switch .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.switch.on{background:var(--green-btn)}.switch.on .knob{transform:translate(20px);background:#fff}.app-header-logo{width:28px;height:28px;margin-right:8px;object-fit:contain;vertical-align:middle}.login .field span{color:#455c7a}.login .field input{border-color:#d5e2f7}.login .field input:focus{border-color:var(--green-accent)}
