:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f4f7;--surface:#fff;--surface-2:#f7f8fa;--text:#14171f;--text-muted:#5f6675;--border:#e4e7ec;--primary:#2457e6;--primary-strong:#1a46c4;--primary-contrast:#fff;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--overtime:#7c3aed;--radius:16px;--radius-sm:10px;--tap-min:48px;--shadow-card:0 1px 2px #14171f0a, 0 6px 20px -8px #14171f1f;--shadow-pop:0 12px 40px -12px #14171f59;--shadow-primary:0 8px 20px -8px color-mix(in srgb, var(--primary) 70%, transparent);--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--dur-fast:.14s;--dur:.22s;--dur-slow:.32s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1015;--surface:#171a21;--surface-2:#1e222b;--text:#f2f3f5;--text-muted:#9aa1ad;--border:#272c37;--primary:#5b86ff;--primary-strong:#4a74ec;--primary-contrast:#0b0f1a;--success:#34d16a;--danger:#f0554f;--warning:#f2a93c;--overtime:#a78bfa;--shadow-card:0 1px 0 #ffffff08, 0 8px 24px -12px #0009;--shadow-pop:0 20px 60px -16px #000c}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}button,input,select,textarea{font-family:inherit}button{color:inherit}h1,h2,h3{letter-spacing:-.01em}.loading{color:var(--text-muted);text-align:center;padding:24px}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes sheet-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(24px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.96)}}@keyframes cell-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes nav-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.page{animation:page-in var(--dur-slow) var(--ease-out) backwards}.app-shell{flex-direction:column;max-width:720px;min-height:100vh;margin:0 auto;display:flex}.app-header{z-index:10;padding:calc(12px + env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.app-title{margin:0;font-size:1.15rem;font-weight:700}.app-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:.8rem}.app-main{padding:4px 16px calc(92px + env(safe-area-inset-bottom));flex:1}.app-nav{background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);max-width:720px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:10;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.app-nav button{min-height:var(--tap-min);color:var(--text-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 4px 4px;font-size:.7rem;font-weight:500;display:flex}.app-nav button:active{transform:scale(.92)}.app-nav-icon{width:44px;height:28px;transition:background var(--dur) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.app-nav button[aria-current=page]{color:var(--primary)}.app-nav button[aria-current=page] .app-nav-icon{background:color-mix(in srgb, var(--primary) 14%, transparent);animation:nav-pop var(--dur-slow) var(--ease-spring)}.app-nav button[aria-current=page] .app-nav-label{font-weight:700}.sync-status{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;min-height:20px;margin:6px 0 12px;font-size:.75rem;display:flex}.sync-dot{background:var(--border);width:7px;height:7px;transition:background var(--dur) var(--ease-out);border-radius:999px}.sync-status[data-status=success] .sync-dot{background:var(--success)}.sync-status[data-status=syncing] .sync-dot{background:var(--primary);animation:1s ease-in-out infinite pulse}.sync-status[data-status=error] .sync-dot{background:var(--danger)}.sync-status[data-status=offline] .sync-dot{background:var(--warning)}.link-button{color:var(--primary);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:.85rem;font-weight:600}.link-button:hover{background:color-mix(in srgb, var(--primary) 8%, transparent)}.link-button:active{transform:scale(.95)}.link-button.muted{color:var(--text-muted)}.link-button.danger{color:var(--danger)}.link-button.danger:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.icon-button{border:1px solid var(--border);background:var(--surface);min-width:44px;min-height:44px;color:var(--text);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);border-radius:12px;font-size:1.3rem;line-height:1}.icon-button:hover{background:var(--surface-2)}.icon-button:active{transform:scale(.9)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-bottom:14px;padding:16px}.card h2{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px;font-size:.95rem;font-weight:700}.action-button{border-radius:var(--radius-sm);background:linear-gradient(180deg, var(--primary), var(--primary-strong));width:100%;min-height:54px;color:var(--primary-contrast);cursor:pointer;box-shadow:var(--shadow-primary);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), filter var(--dur-fast) var(--ease-out);border:none;font-size:1rem;font-weight:700}.action-button:hover{filter:brightness(1.05)}.action-button:active{box-shadow:none;transform:scale(.97)}.action-button:disabled{opacity:.55;cursor:default;box-shadow:none;transform:none}.action-button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:none}.action-button.secondary:hover{background:var(--surface-2);filter:none}.action-button.danger{background:linear-gradient(180deg, var(--danger), color-mix(in srgb, var(--danger) 85%, black));box-shadow:none}.status-badge{background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--primary);animation:pop-in var(--dur) var(--ease-out);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.status-badge[data-status=incompleto]{background:color-mix(in srgb, var(--warning) 18%, transparent);color:var(--warning)}.status-badge[data-status=finalizado]{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat{background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px}.stat .value{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.stat .label{color:var(--text-muted);font-size:.72rem}.timeline{counter-reset:none;grid-template-columns:repeat(4,1fr);gap:6px;margin:16px 0 0;padding:0;list-style:none;display:grid}.timeline-point{border-radius:var(--radius-sm);background:var(--surface-2);border:1px dashed var(--border);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;display:flex}.timeline-point[data-filled=true]{border-style:solid;border-color:color-mix(in srgb, var(--primary) 35%, transparent);background:color-mix(in srgb, var(--primary) 8%, transparent)}.timeline-label{color:var(--text-muted);font-size:.66rem;line-height:1.1}.timeline-time{font-variant-numeric:tabular-nums;font-size:.98rem;font-weight:700}.timeline-point:not([data-filled=true]) .timeline-time{color:var(--text-muted);font-weight:500}.chip-list{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.chip{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);font-variant-numeric:tabular-nums;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:600}.progress{background:var(--surface-2);border-radius:999px;height:8px;margin-top:12px;overflow:hidden}.progress-bar{border-radius:inherit;background:linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 60%, var(--success)));height:100%;transition:width var(--dur-slow) var(--ease-out)}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--text-muted);font-size:.8rem;font-weight:500}.field input,.field select,.field textarea{min-height:var(--tap-min);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:8px 12px;font-size:1rem}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent);outline:none}.empty-state{text-align:center;color:var(--text-muted);padding:32px 16px}.error-banner{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);border-radius:var(--radius-sm);animation:pop-in var(--dur) var(--ease-out);margin-bottom:12px;padding:10px 12px;font-size:.85rem}.list-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.list-item:last-child{border-bottom:none}[data-sign=pos]{color:var(--success)}[data-sign=neg]{color:var(--danger)}[data-overtime=true]{color:var(--overtime)}.stat[data-overtime=true]{background:color-mix(in srgb, var(--overtime) 12%, transparent)}.edit-summary>div:nth-child(3){grid-column:1/-1}.edit-summary>div[data-overtime=true]{background:color-mix(in srgb, var(--overtime) 12%, transparent)}.overtime-tag{color:var(--overtime);font-weight:600}.toggle-row{border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;align-items:flex-start;gap:10px;margin-bottom:12px;padding:10px 12px;font-size:.9rem;display:flex}.toggle-row input{width:20px;height:20px;accent-color:var(--primary);flex:none;margin:1px 0 0}.month-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.month-nav-label{font-size:1.05rem}.month-strip{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;display:grid}@media (width>=480px){.month-strip{grid-template-columns:repeat(4,1fr)}}.month-strip>div{border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;align-items:center;padding:8px 4px;display:flex}.month-strip-value{font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.month-strip-label{color:var(--text-muted);font-size:.68rem}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-weekday{text-align:center;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:4px 0 6px;font-size:.72rem;font-weight:700}.calendar-day{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;min-width:0;animation:cell-in var(--dur) var(--ease-out) both;animation-delay:calc(var(--i,0) * 9ms);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-size:.9rem;display:flex}.calendar-day:not(:disabled):hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}.calendar-day:not(:disabled):active{box-shadow:none;transform:scale(.9)}.calendar-day-number{font-variant-numeric:tabular-nums}.calendar-day-hours{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.6rem;line-height:1}.calendar-day-hours.extra{color:var(--overtime);font-weight:700}.calendar-day{gap:1px}.calendar-day[data-today=true],.calendar-legend-swatch[data-today=true]{outline:2px solid var(--primary);outline-offset:-2px;font-weight:700}.calendar-day[data-state=completo],.calendar-legend-swatch[data-state=completo]{background:color-mix(in srgb, var(--success) 18%, transparent);border-color:color-mix(in srgb, var(--success) 35%, transparent)}.calendar-day[data-state=abaixo],.calendar-legend-swatch[data-state=abaixo]{background:color-mix(in srgb, var(--warning) 18%, transparent);border-color:color-mix(in srgb, var(--warning) 35%, transparent)}.calendar-day[data-state=acima],.calendar-legend-swatch[data-state=acima]{background:color-mix(in srgb, var(--primary) 16%, transparent);border-color:color-mix(in srgb, var(--primary) 35%, transparent)}.calendar-day[data-state=extra],.calendar-legend-swatch[data-state=extra]{background:color-mix(in srgb, var(--overtime) 18%, transparent);border-color:color-mix(in srgb, var(--overtime) 40%, transparent);color:var(--overtime)}.calendar-day[data-holiday=true],.calendar-legend-swatch[data-holiday=true]{position:relative}.calendar-day[data-holiday=true]:after,.calendar-legend-swatch[data-holiday=true]:after{content:"";background:var(--warning);border-radius:999px;width:6px;height:6px;position:absolute;top:4px;right:4px}.calendar-day[data-state=incompleto],.calendar-legend-swatch[data-state=incompleto]{background:color-mix(in srgb, var(--danger) 18%, transparent);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.calendar-day[data-state=pendente],.calendar-legend-swatch[data-state=pendente]{background:var(--surface);border:2px dashed var(--danger);color:var(--danger);font-weight:700}.calendar-day[data-state=folga],.calendar-legend-swatch[data-state=folga]{color:var(--text-muted);background:0 0;border-style:dotted}.calendar-day[data-state=futuro]{opacity:.35;cursor:default}.calendar-pending{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);animation:pop-in var(--dur) var(--ease-out);margin-bottom:12px;padding:10px 12px;font-size:.85rem}.calendar-legend{color:var(--text-muted);margin-top:14px;font-size:.8rem}.calendar-legend summary{cursor:pointer;color:var(--primary);padding:6px 0;font-weight:600;list-style:none}.calendar-legend summary::-webkit-details-marker{display:none}.calendar-legend summary:before{content:"▸";transition:transform var(--dur-fast) var(--ease-out);margin-right:6px;display:inline-block}.calendar-legend[open] summary:before{transform:rotate(90deg)}.calendar-legend ul{animation:fade-in var(--dur) var(--ease-out);gap:8px;margin:6px 0 0;padding:0;list-style:none;display:grid}.calendar-legend li{align-items:flex-start;gap:10px;display:flex}.calendar-legend li strong{color:var(--text);display:block}.calendar-legend-desc{display:block}.calendar-legend-swatch{border:1px solid var(--border);background:var(--surface-2);border-radius:7px;flex:none;width:22px;height:22px;margin-top:1px;display:inline-block}.dialog-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;animation:fade-in var(--dur) var(--ease-out) both;background:#080a108c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;padding:12px 16px calc(20px + env(safe-area-inset-bottom));width:100%;max-width:720px;max-height:calc(100vh - 32px);box-shadow:var(--shadow-pop);animation:sheet-in var(--dur-slow) var(--ease-out) both;overflow-y:auto}.dialog:before{content:"";background:var(--border);border-radius:999px;width:40px;height:4px;margin:0 auto 12px;display:block}.dialog-backdrop.is-closing{animation:fade-out var(--dur) var(--ease-out) both}.dialog-backdrop.is-closing .dialog{animation:sheet-out var(--dur) var(--ease-out) both}.dialog-title{margin:0 0 12px;font-size:1.1rem}.dialog-actions{background:var(--surface);flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:8px;display:flex;position:sticky;bottom:0}.dialog-actions .action-button{flex:1;min-width:120px}@media (width>=640px){.dialog-backdrop{align-items:center}.dialog{border-radius:var(--radius);max-width:480px;padding-top:20px;animation-name:pop-in}.dialog:before{display:none}.dialog-backdrop.is-closing .dialog{animation-name:pop-out}}.edit-summary{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.edit-summary>div{border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;padding:10px 12px;display:flex}.edit-summary-value{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.edit-summary-label{color:var(--text-muted);font-size:.7rem}.edit-section{border:none;min-width:0;margin:0 0 14px;padding:0}.edit-section legend,.edit-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;padding:0;font-size:.75rem;font-weight:700}.edit-section-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.edit-section-header .edit-section-title{margin-bottom:0}.edit-hint{color:var(--text-muted);margin:4px 0 0;font-size:.8rem}.time-grid{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.interval-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);animation:pop-in var(--dur) var(--ease-out);margin:8px 0 0;padding:10px 12px 0}.interval-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.85rem;font-weight:600;display:flex}.interval-card .field input{background:var(--surface)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
