:root{--color-primary-50:#f0f5f4;--color-primary-100:#dde8e6;--color-primary-200:#bbd2cc;--color-primary-300:#8fb4ac;--color-primary-400:#599184;--color-primary-500:#0b5d4a;--color-primary-600:#094e3e;--color-primary-700:#073f32;--color-primary-800:#063026;--color-primary-900:#04211b;--color-secondary-50:#f7f4f0;--color-secondary-100:#ece6db;--color-secondary-200:#daccb8;--color-secondary-300:#c2ac8a;--color-secondary-400:#a58452;--color-secondary-500:#7a4a00;--color-secondary-600:#663e00;--color-secondary-700:#533200;--color-secondary-800:#3f2600;--color-secondary-900:#2c1b00;--color-neutral-50:#f5f6f6;--color-neutral-100:#e8eae9;--color-neutral-200:#d2d6d4;--color-neutral-300:#b4bbb8;--color-neutral-400:#919a96;--color-neutral-500:#5d6b64;--color-neutral-600:#4e5a54;--color-neutral-700:#3f4944;--color-neutral-800:#303834;--color-neutral-900:#212724;--color-error-50:#faf2f2;--color-error-100:#f4e1e0;--color-error-500:#b3261e;--color-error-600:#962019;--color-error-900:#400e0b;--color-info-50:#f3f7fb;--color-info-100:#e3ebf7;--color-info-500:#3672c4;--color-info-600:#2d60a5;--color-info-900:#132947;--bg:#f4f6f5;--surface:#fff;--border:#d9e0dc;--text:#17201c;--muted:var(--color-neutral-500);--primary:var(--color-primary-500);--primary-hover:#063d31;--primary-text:#fff;--primary-tint:#e6f5f0;--accent-text:var(--color-secondary-500);--accent-bg:#fff4e0;--error:var(--color-error-500);--error-bg:#fdecea;--warning-bg:#fff4d6;--success:var(--color-primary-500);--success-bg:#e3f3eb;--info-text:var(--color-info-600);--info-bg:#e9f1fb;--status-ok-bg:#0b6e4c;--status-ok-text:#fff;--status-warning-bg:#f2a93b;--status-warning-text:#241900;--status-danger-bg:#c0392b;--status-danger-text:#fff;--chart-line:#0e7a57;--chart-area:#0b6e4c;--chart-grid:#c7d2cb;--uncertain-text:#8a5a00;--plate-bg:#fff;--plate-ink:#10201a;--danger-outline:#c0392b;--role-admin-bg:#0b6e4c;--role-admin-text:#fff;--role-supervisor-bg:#2d74b5;--role-supervisor-text:#fff;--role-planejador-bg:#f2a93b;--role-planejador-text:#241900;--role-analista-bg:#7c4fc9;--role-analista-text:#fff;--role-fiscal-bg:#5b6d62;--role-fiscal-text:#fff;--role-custom-bg:#3f4944;--role-custom-text:#fff;--font-brand:"Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.5rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #17201c0f, 0 1px 3px #17201c14;--shadow-md:0 4px 10px #17201c14, 0 2px 4px #17201c0f;--bp-mobile-max:640px;font-family:var(--font-body);font-size:var(--text-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5}:root[data-theme=dark]{--bg:#101513;--surface:#1a211e;--border:#2e3733;--text:#eaf1ee;--muted:#9fb0a8;--primary:#4fbe95;--primary-hover:#6ecfab;--primary-text:#06251c;--primary-tint:#16241f;--accent-text:#e3a548;--accent-bg:#3a2d16;--error:#f2b8b5;--error-bg:#3a1f1d;--warning-bg:#3a331d;--success:#8fd4b4;--success-bg:#1c3329;--status-ok-bg:#16352a;--status-ok-text:#3fd39a;--status-warning-bg:#3a2f14;--status-warning-text:#f2a93b;--status-danger-bg:#3a1c19;--status-danger-text:#f0736a;--chart-line:#2fd39a;--chart-area:#2fd39a;--chart-grid:#26312c;--uncertain-text:#f2a93b;--plate-bg:#fff;--plate-ink:#10201a;--danger-outline:#f0736a;--role-admin-bg:#16352a;--role-admin-text:#3fd39a;--role-supervisor-bg:#17304a;--role-supervisor-text:#6ab0f0;--role-planejador-bg:#3a2f14;--role-planejador-text:#f2a93b;--role-analista-bg:#2a2340;--role-analista-text:#b58ae8;--role-fiscal-bg:#26312c;--role-fiscal-text:#a9b8b0;--role-custom-bg:#2b3a34;--role-custom-text:#c8d3cc;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #00000059;--shadow-md:0 4px 10px #00000059, 0 2px 4px #0000004d}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{font-family:var(--font-brand);letter-spacing:-.01em;color:var(--text)}h1{font-size:var(--text-3xl);margin:0 0 var(--space-2)}h2{font-size:var(--text-xl);margin:var(--space-5) 0 var(--space-3)}h3{font-size:var(--text-lg);margin:var(--space-4) 0 var(--space-2)}button{font:inherit;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;min-height:44px;padding:.7rem 1.1rem;transition:filter .15s,transform 50ms}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:600}button:hover:not(:disabled){filter:brightness(.96)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.primary:hover:not(:disabled){filter:none;background:var(--primary-hover);border-color:var(--primary-hover)}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.brand{font-family:var(--font-brand);flex-direction:column;display:flex}.brand span{font-size:var(--text-sm);color:var(--muted);font-family:var(--font-body)}.app-nav{gap:var(--space-1);flex-wrap:wrap;display:flex}.app-nav a{border-radius:var(--radius-sm);color:var(--muted);font-size:var(--text-sm);padding:.45rem .8rem;text-decoration:none}.app-nav a.active{background:var(--bg);color:var(--text);font-weight:600}.session{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);flex-wrap:wrap;display:flex}.theme-toggle{background:var(--bg);border:1px solid var(--border);border-radius:999px;width:50px;height:26px;min-height:0;padding:0;transition:border-color .15s;position:relative}.theme-toggle:hover{border-color:var(--primary)}.theme-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-toggle-thumb{background:var(--surface);width:20px;height:20px;box-shadow:var(--shadow-sm);color:var(--primary);border-radius:999px;justify-content:center;align-items:center;transition:left .2s;display:flex;position:absolute;top:2px;left:2px}.theme-toggle[aria-checked=true] .theme-toggle-thumb{left:26px}.login-page .theme-toggle{top:var(--space-4);right:var(--space-4);z-index:10;position:fixed}.tab-bar{z-index:20;background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow-md);padding-bottom:env(safe-area-inset-bottom,0);position:fixed;bottom:0;left:0;right:0}.tab-bar-list{margin:0;padding:0;list-style:none;display:flex}.tab-bar-item{flex:1 1 0}.tab-bar-link{min-height:56px;padding:var(--space-1) var(--space-1);color:var(--muted);font-size:var(--text-xs);flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.tab-bar-link.active{color:var(--primary);font-weight:600}.tab-bar-link svg{width:22px;height:22px}.app-main{width:100%;max-width:720px;padding:var(--space-4) var(--space-4) var(--space-5);margin:0 auto}@media (width<=640px){.app-main{padding-bottom:calc(56px + var(--space-5))}}@media (width>=641px){.app{flex-direction:row}.app-header{justify-content:flex-start;align-self:flex-start;align-items:stretch;gap:var(--space-5);width:260px;height:100vh;padding:var(--space-5) var(--space-4);border-bottom:none;border-right:1px solid var(--border);flex-flow:column;flex-shrink:0;position:sticky;top:0}.app-nav{gap:var(--space-2);flex-direction:column}.app-nav a{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text);display:flex}.app-nav a:hover{background:var(--primary-tint)}.app-nav a.active{background:var(--primary-tint);color:var(--primary)}.session{flex-wrap:wrap;margin-top:auto}.app-main{min-width:0;max-width:none;padding:var(--space-5) var(--space-6);flex:1;margin:0}.app-main>.page:not(.page-wide){max-width:720px;margin:0 auto}}.login-page{flex-direction:column;max-width:360px;margin:3rem auto 0;display:flex}.login-shell{background:var(--bg);min-height:100dvh;display:flex;position:relative;overflow:hidden}.login-brand-panel{display:none}:root[data-theme=light] .login-shell,:root[data-theme=light] .field-shell{--bg:#f3f6f2;--border:#6b7d70;--text:#0f1b15;--muted:#3e4f45;--primary:#0b6e4c;--primary-hover:#085a3e}.login-shell .login-page{width:100%;max-width:420px;min-height:100dvh;padding:var(--space-6) var(--space-4);z-index:1;flex:1;justify-content:center;align-items:center;margin:0 auto;position:relative}.login-shell .form{box-shadow:none;background:0 0;border:none;width:100%;padding:0}.login-shell .form input:not([type=file]):not([type=checkbox]){border-width:2px;min-height:52px}.login-shell .form input:focus{outline-width:3px}.login-shell .form button.primary{min-height:52px;font-size:var(--text-lg)}.login-shell .password-field .toggle-password{border-width:2px}.login-shell .manual-entry-link{margin-top:var(--space-4);font-size:var(--text-base)}.login-waves-inline,.login-waves-panel{width:100%;height:220px;color:var(--border);opacity:.35;pointer-events:none;z-index:0;position:absolute;inset:0}.login-brand-inline{align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);z-index:1;flex-direction:column;display:flex;position:relative}.login-logo{border-radius:var(--radius-lg);background:var(--primary-tint);width:52px;height:52px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-brand-title{font-family:var(--font-brand);font-size:var(--text-xl);color:var(--text);margin:0;font-weight:700}.login-brand-subtitle{color:var(--muted);font-size:var(--text-sm);margin:0}.login-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-md);padding:var(--space-5);z-index:1;position:relative}.login-card h1{font-size:var(--text-2xl)}.login-footer{text-align:center;color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-5);z-index:1;position:relative}@media (width>=960px){.login-brand-panel{padding:var(--space-6);color:#eaf1ee;background:#0d1a16;flex-direction:column;flex:0 0 560px;justify-content:space-between;display:flex;position:relative;overflow:hidden}.login-brand-lockup{align-items:center;gap:var(--space-3);z-index:1;display:flex;position:relative}.login-brand-panel .login-logo{color:#7fd1ae;background:#7fd1ae29}.login-brand-name{font-family:var(--font-brand);font-size:var(--text-lg);letter-spacing:.02em;color:#eaf1ee;margin:0;font-weight:600}.login-brand-tagline{font-size:var(--text-sm);color:#a9bbb2;margin:0}.login-brand-copy{z-index:1;position:relative}.login-brand-headline{margin:0 0 var(--space-3);font-family:var(--font-brand);font-size:var(--text-3xl);letter-spacing:-.01em;color:#eaf1ee;font-weight:700;line-height:1.15}.login-brand-caption{margin:0 0 var(--space-5);color:#a9bbb2;max-width:420px}.login-roles{gap:var(--space-2);color:#cddcd4;font-size:var(--text-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.login-roles li{align-items:center;gap:var(--space-2);display:flex}.login-role-dot{border-radius:999px;flex-shrink:0;width:8px;height:8px}.login-role-dot.role-fiscal{background:#8a9c92}.login-role-dot.role-planejador{background:#e3a548}.login-role-dot.role-analista{background:#a78bfa}.login-role-dot.role-supervisor{background:#60a5fa}.login-role-dot.role-admin{background:#7fd1ae}.login-brand-footer{font-size:var(--text-sm);color:#7c8f85;z-index:1;margin:0;position:relative}.login-brand-panel .login-waves-panel{opacity:.5;color:#1c2b25;height:100%}.login-shell .login-brand-inline,.login-shell .login-footer,.login-shell .login-waves-inline{display:none}.login-brand-panel{background-image:radial-gradient(at 0 0,#146e4e66 0%,#0000 60%)}}.page-header{gap:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.subtitle{margin:0 0 var(--space-4);color:var(--muted)}.camera,.capture-review{gap:var(--space-4);flex-direction:column;display:flex}.camera-viewport{aspect-ratio:4/3;border-radius:var(--radius-lg);border:2px solid var(--border);background:#0d1110;place-items:center;display:grid;position:relative;overflow:hidden}.camera-viewport video{object-fit:cover;width:100%;height:100%;display:none;position:absolute;inset:0}.camera-viewport.is-on video{display:block}.camera-placeholder{bottom:var(--space-5);color:#fff;padding:0 var(--space-6);text-align:center;margin:0;font-weight:600;position:absolute;left:0;right:0}.camera-corner{border:4px solid #fff;width:28px;height:28px;position:absolute}.camera-corner-tl{top:var(--space-4);left:var(--space-4);border-bottom:none;border-right:none}.camera-corner-tr{top:var(--space-4);right:var(--space-4);border-bottom:none;border-left:none}.camera-corner-bl{bottom:var(--space-4);left:var(--space-4);border-top:none;border-right:none}.camera-corner-br{bottom:var(--space-4);right:var(--space-4);border-top:none;border-left:none}.camera-guide{aspect-ratio:3;border-radius:var(--radius-sm);border:4px solid #ffd23f;width:70%;position:absolute}.camera-guide.is-on{box-shadow:0 0 0 2000px #00000059,0 0 12px #0009}.capture-photo{position:relative}.photo-tag{top:var(--space-3);left:var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:#fff;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;background:#0d1110;font-weight:700;position:absolute}button.danger-outline{background:var(--surface);color:var(--danger-outline);border:2px solid var(--danger-outline);font-weight:600}@media (width>=1100px){.capture-review{column-gap:var(--space-5);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;max-width:1280px;display:grid}.capture-review>*{grid-column:2}.capture-review>.capture-photo{grid-area:1/1/span 12}}.camera-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.camera-actions button{justify-content:center;align-items:center;gap:var(--space-2);flex:10rem;display:inline-flex}.capture-review img{border-radius:var(--radius-lg);object-fit:contain;background:#0d1110;width:100%;max-height:60vh;display:block}@media (width<=640px){.capture-review img{max-height:30vh}.app:has(.tab-bar) .camera .camera-actions{bottom:calc(56px + var(--space-3));background:var(--bg);padding-top:var(--space-2);margin-bottom:0;position:sticky}.app:has(.tab-bar) .capture-review>.camera-actions:not(.camera-actions-static){bottom:calc(56px + var(--space-3));background:var(--bg);padding-top:var(--space-2);margin-bottom:0;position:sticky}.camera .camera-actions .primary,.capture-review>.camera-actions .primary{font-size:var(--text-lg);flex-basis:100%;padding:1rem}h1{font-size:var(--text-2xl);line-height:1.2}}.message{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);margin:0;padding:.75rem 1rem}.message.error{background:var(--error-bg);color:var(--error);border-color:#0000}.message.warning{background:var(--warning-bg);border-color:#0000}.message.review{background:var(--accent-bg);color:var(--accent-text);border-color:#0000}.message strong{letter-spacing:.04em;color:var(--primary);margin-bottom:.15rem;display:inline-block}.ocr-result{gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.ocr-result .label,.ocr-result .meta{color:var(--muted);font-size:var(--text-sm)}.ocr-result .message{margin-top:var(--space-2)}.ocr-result .plate{font-size:var(--text-3xl);color:var(--plate-ink);background:var(--plate-bg);border:3px solid var(--plate-ink);border-radius:var(--radius-md);margin:var(--space-2) 0;align-self:flex-start;padding:.1em .5em;font-weight:700}.ocr-result details{margin-top:var(--space-2);color:var(--muted);overflow-wrap:anywhere}.verification{margin-top:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:.15rem;padding:.75rem 1rem;display:flex}.verification span{font-size:var(--text-sm)}.verification .source{color:var(--muted)}.verification .hint{font-size:var(--text-xs);color:var(--muted);font-style:italic}.verification.tone-ok{background:var(--status-ok-bg);color:var(--status-ok-text);border-color:#0000}.verification.tone-ok .meta,.verification.tone-ok .source,.verification.tone-ok .hint,.verification.tone-warning .meta,.verification.tone-warning .source,.verification.tone-warning .hint,.verification.tone-danger .meta,.verification.tone-danger .source,.verification.tone-danger .hint{color:inherit}.verification button.link{align-self:flex-start}.verification.tone-ok button.link{color:inherit}.verification.tone-warning{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:#0000}.verification.tone-warning button.link{color:inherit}.verification.tone-danger{background:var(--status-danger-bg);color:var(--status-danger-text);border-color:#0000}.verification.tone-review{background:var(--accent-bg);color:var(--accent-text);border-color:#0000}.plate{font-family:var(--font-mono);letter-spacing:.08em}button.link{min-height:0;color:var(--primary);background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.manual-entry-link{text-align:center;color:var(--muted);font-size:var(--text-sm);margin:0}.manual-entry-link a{color:var(--primary);font-weight:600;text-decoration:underline}.form,.manual-entry{padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-direction:column;gap:.65rem;display:flex}.form label,.manual-entry label{font-weight:600}.form input:not([type=file]):not([type=checkbox]),.form select,.manual-entry input,.new-role-form input,.employees select,.override-row select{font:inherit;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:var(--text);min-height:44px;padding:.75rem 1rem}.form input[type=file]{font:inherit;color:var(--muted);padding:.35rem 0}.manual-entry input{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.form input:focus,.form select:focus,.manual-entry input:focus{outline:2px solid var(--primary);outline-offset:1px}.password-field{display:flex;position:relative}.password-field input{flex:1;padding-right:5.5rem}.password-field .toggle-password{background:var(--surface);border:1px solid var(--border);color:var(--muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);border-radius:999px;align-items:center;gap:4px;min-height:0;padding:.3rem .6rem .3rem .5rem;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-field .toggle-password:hover{color:var(--primary);border-color:var(--primary)}.password-field .toggle-password:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.form .hint,.manual-entry .hint{color:var(--muted);font-size:var(--text-sm);margin:0}.form .camera-actions,.manual-entry .camera-actions{margin-top:var(--space-2)}.form label:has(input[type=checkbox]){align-items:center;gap:var(--space-2);font-weight:400;display:flex}.schedule-form{font-size:var(--text-base);gap:.85rem}.schedule-form .label{margin:var(--space-2) 0 -.15rem;font-weight:600;display:block}.form-section{margin:var(--space-2) 0 -.25rem;border-top:1px solid var(--border);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:1.1rem}.form-section:first-of-type{border-top:none;padding-top:0}.field-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.field-row-item{flex-direction:column;flex:10rem;gap:.35rem;display:flex}.field-row-item-narrow{flex:0 6rem}.cargo-item-row{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);flex-wrap:wrap;align-items:flex-end;gap:.6rem;padding:.85rem;display:flex}.cargo-item-row>label{flex-basis:100%}.cargo-item-row>input,.cargo-item-row>select{flex:10rem}.demo-samples{gap:var(--space-3);margin:0 0 var(--space-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.demo-sample{align-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:44px;display:flex}.demo-sample:hover:not(:disabled){border-color:var(--primary)}.demo-plate-mock{border-radius:var(--radius-sm);border:2px solid var(--text);color:#17201c;width:100%;font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:.08em;background:#fff;justify-content:center;align-items:center;padding:.6em .4em;font-weight:700;display:flex}.demo-sample span{font-size:var(--text-sm);color:var(--muted)}.demo-banner{border-width:2px}:root[data-theme=light] .demo-banner{color:#0f1b15;background:#dcefe6;border-color:#0e7a57}.table-scroll{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);overflow-x:auto}.checkins{border-collapse:collapse;width:100%;min-width:480px}.checkins th,.checkins td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border)}.checkins th{font-size:var(--text-sm);color:var(--muted);font-weight:600}.checkins tr:last-child td{border-bottom:none}.checkins .plate{font-family:var(--font-mono);letter-spacing:.04em;font-weight:700}.status-badge{white-space:nowrap;padding:var(--space-1) var(--space-3);font-size:var(--text-sm);border-radius:999px;font-weight:600;line-height:1.3;display:inline-block}.status-badge-ok{background:var(--status-ok-bg);color:var(--status-ok-text)}.status-badge-warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.status-badge-danger{background:var(--status-danger-bg);color:var(--status-danger-text)}.checkins .mono{font-family:var(--font-mono);color:var(--muted)}.checkins .plate-line{align-items:baseline;gap:var(--space-2);display:flex}.uncertain-mark{color:var(--uncertain-text);font-size:var(--text-sm);font-weight:700}.photo-link{align-items:center;gap:var(--space-1);display:inline-flex}.readonly-badge,.role-tab{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:999px;display:inline-flex}.readonly-badge{background:var(--primary);color:var(--primary-text);font-weight:600;font-size:var(--text-sm);white-space:nowrap}.kpi-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.kpi-card,.report-card,.checkins-trend-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5)}.kpi-value{font-family:var(--font-brand);font-size:var(--text-3xl);margin:0;font-weight:700;line-height:1.2}.kpi-note{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--muted)}.kpi-note-ok{color:var(--success);font-weight:600}.kpi-note-warning{color:var(--uncertain-text);font-weight:600}.reports-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.hour-chart{align-items:flex-end;gap:var(--space-2);height:200px;margin-top:var(--space-4);border-bottom:1px solid var(--chart-grid);display:flex}.hour-chart-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.hour-chart-count{margin-bottom:var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text);font-weight:700}.hour-chart-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--chart-line);width:100%;max-width:56px}.hour-chart-label{padding-top:var(--space-2);font-size:var(--text-xs);color:var(--muted);white-space:nowrap;position:absolute;top:100%;left:50%;transform:translate(-50%)}.report-card:has(.hour-chart){padding-bottom:var(--space-6)}.reports-layout .checkins{min-width:0}.count-ok{color:var(--success);font-weight:700}.count-warning{color:var(--uncertain-text);font-weight:700}.count-danger{color:var(--error);font-weight:700}@media (width<=640px){.page-header:has(.readonly-badge){align-items:flex-start;gap:var(--space-3);flex-direction:column-reverse}}@media (width>=900px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.reports-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}.role-badge,.role-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);white-space:nowrap;background:var(--role-custom-bg);color:var(--role-custom-text);border-radius:999px;font-weight:600;display:inline-flex}.role-chip{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.role-chip i{background:currentColor;border-radius:50%;width:8px;height:8px}.role-badge-custom,.role-chip-custom{background:var(--role-custom-bg);color:var(--role-custom-text)}.role-badge-admin,.role-chip-admin{background:var(--role-admin-bg);color:var(--role-admin-text)}.role-badge-supervisor,.role-chip-supervisor{background:var(--role-supervisor-bg);color:var(--role-supervisor-text)}.role-badge-planejador,.role-chip-planejador{background:var(--role-planejador-bg);color:var(--role-planejador-text)}.role-badge-analista,.role-chip-analista{background:var(--role-analista-bg);color:var(--role-analista-text)}.role-badge-fiscal,.role-chip-fiscal{background:var(--role-fiscal-bg);color:var(--role-fiscal-text)}.nav-locked{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--muted);opacity:.6;cursor:not-allowed;display:flex}.nav-lock-icon{margin-left:auto}.hint a{color:var(--primary);font-weight:600}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.role-tabs-row{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.role-tabs{display:contents}.role-tab{background:var(--surface);border:1px solid var(--border);color:var(--text);font-weight:600;font-size:var(--text-sm)}.role-tab.is-selected{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.role-tab-new{color:var(--primary);border-style:dashed}.role-tab-dirty{background:var(--uncertain-text);border-radius:50%;width:8px;height:8px}.role-tab.is-selected .role-tab-dirty{background:var(--primary-text)}.new-role-form{align-items:flex-end;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;flex-basis:100%;display:flex}.new-role-form label{width:100%;font-weight:600}.toast{top:var(--space-5);right:var(--space-5);z-index:20;align-items:center;gap:var(--space-3);max-width:min(26rem, calc(100vw - 2 * var(--space-4)));padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--status-ok-bg);color:var(--status-ok-text);box-shadow:var(--shadow-md);font-weight:600;animation:.2s ease-out toast-in;display:flex;position:fixed}.toast-close{color:inherit;flex-shrink:0}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.page>.message{margin-bottom:var(--space-4)}.role-panel{padding-bottom:var(--space-6)}.role-panel-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.role-panel-header h2{margin:0 0 var(--space-1)}.role-panel-header .hint{margin:0}.delete-confirm{align-items:center;gap:var(--space-2);flex-wrap:wrap;font-weight:600;display:inline-flex}.perm-cards{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));display:grid}.perm-card{padding:var(--space-4) var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.perm-card h3{margin:0 0 var(--space-2);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.perm-row{align-items:center;gap:var(--space-2);padding:var(--space-3) 0;border-top:1px solid var(--border);display:flex}.perm-label{cursor:pointer}.perm-row .switch{margin-left:auto}.perm-row:first-of-type{border-top:none}.info-tip{align-items:center;display:inline-flex;position:relative}.icon-button{background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;min-height:0;padding:0;display:inline-flex}.info-tip-button{color:var(--muted);cursor:help}.info-tip-button:hover,.info-tip-button:focus-visible{color:var(--primary)}.info-tip-text{top:calc(100% + var(--space-1));z-index:5;width:18rem;max-width:70vw;padding:var(--space-3);border-radius:var(--radius-md);background:var(--text);color:var(--bg);box-shadow:var(--shadow-md);font-size:var(--text-sm);text-align:left;visibility:hidden;opacity:0;pointer-events:none;font-weight:400;line-height:1.4;transition:opacity .12s;position:absolute;left:50%;transform:translate(-50%)}.info-tip:hover .info-tip-text,.info-tip-button:focus-visible+.info-tip-text{visibility:visible;opacity:1}.override-label{align-items:center;gap:var(--space-1);display:inline-flex}.switch{appearance:none;border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:999px;flex-shrink:0;width:46px;height:26px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch:checked{background:var(--primary);border-color:var(--primary)}.switch:checked:after{background:var(--primary-text);transform:translate(20px)}.switch:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.save-bar{z-index:2;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.save-bar-pending{color:var(--uncertain-text);font-weight:600}.save-bar-idle{color:var(--muted)}.save-bar-actions{gap:var(--space-2);display:flex}@media (width<=640px){.save-bar{bottom:calc(56px + var(--space-2))}}.permission-log{margin-top:var(--space-6)}.permission-log h2{margin-top:0}.row-actions{white-space:nowrap}.row-actions button+button{margin-left:var(--space-3)}.overrides-editor{margin-top:var(--space-5);padding:var(--space-4) var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.overrides-editor h2{margin-top:0}.overrides-editor fieldset{margin:0 0 var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md)}.overrides-editor legend{padding:0 var(--space-2);font-weight:700}.override-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.override-row select{min-width:14rem}.new-role-form input{flex:16rem;max-width:24rem}.refresh-button{align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.checkins-trend-card{margin-bottom:var(--space-4)}.card-title{margin:0 0 var(--space-3);font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}.schedules-layout{gap:var(--space-5);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.schedules-form-panel h2{margin-top:0}@media (width>=1200px){.schedules-layout{grid-template-columns:minmax(0,1fr) 400px}.checkins.schedules th,.checkins.schedules td{padding:var(--space-3) var(--space-2);font-size:var(--text-sm)}.checkins.schedules{min-width:0}.checkins.schedules .status-badge{padding:2px var(--space-2);font-size:var(--text-xs)}.schedules-form-panel{top:var(--space-5);max-height:calc(100vh - 2 * var(--space-5));position:sticky;overflow-y:auto}}@media (width<=640px){.table-scroll{background:0 0;border:none;overflow-x:visible}.checkins{min-width:0;display:block}.checkins thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.checkins tbody{gap:var(--space-3);display:grid}.checkins tr{row-gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);grid-template-columns:1fr auto;align-items:center;display:grid}.checkins td{overflow-wrap:anywhere;border-bottom:none;padding:0;display:block}.checkins tr:last-child td{border-bottom:none}.checkins td.plate{font-size:var(--text-lg)}.checkins td[data-label=Decisão]{grid-area:1/2;justify-self:end}.checkins td[data-label=Entrada]:before{content:"Entrada: "}.checkins td[data-label=Espera\ estimada]{text-align:right}.checkins td[data-label=Espera\ estimada]:before{content:"Espera est.: "}.checkins td:empty:before{content:none}.checkins.schedules td[data-label=Placa]{font-size:var(--text-lg);grid-area:1/1}.checkins.schedules td[data-label=Documento]{grid-area:1/2;justify-self:end}.checkins.schedules td[data-label=Motorista]{grid-area:2/1/auto/3;font-weight:700}.checkins.schedules td[data-label=Carga]{color:var(--muted);grid-area:3/1/auto/3}.checkins.schedules td[data-label="Origem → Destino"]{color:var(--muted);font-size:var(--text-sm);grid-area:4/1}.checkins.schedules td[data-label=Data\ prevista]{font-weight:700;font-size:var(--text-sm);white-space:nowrap;grid-area:4/2;justify-self:end}.checkins.employees tr{grid-template-columns:minmax(0,1fr) auto}.checkins.employees td[data-label=Nome]{grid-area:1/1;font-weight:700}.checkins.employees td[data-label=Usuário]{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--muted);grid-area:2/1}.checkins.employees td[data-label=Cargo]{grid-area:1/2;justify-self:end}.checkins.employees td[data-label=Situação]{font-size:var(--text-sm);color:var(--muted);grid-area:3/1}.checkins.employees td[data-label=""]{grid-area:2/2/span 2;place-self:end}.checkins.logs tr{column-gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto auto}.checkins.logs td[data-label=Funcionário],.checkins.logs td[data-label=IP],.checkins.logs td[data-label=Foto]{font-size:var(--text-sm)}.checkins.logs td[data-label=IP],.checkins.logs td[data-label=Foto]{white-space:nowrap}.checkins.logs td[data-label=Quando]{grid-area:1/1/auto/3}.checkins.logs td[data-label=Origem]{grid-area:1/3;justify-self:end}.checkins.logs td[data-label=Placa]{grid-area:2/1/auto/4}.checkins.logs .plate-line{justify-content:space-between}.checkins.logs td[data-label=Funcionário]{grid-area:3/1}.checkins.logs td[data-label=IP]{grid-area:3/2}.checkins.logs td[data-label=IP]:before{content:"· "}.checkins.logs td[data-label=Foto]{text-align:right;grid-area:3/3;justify-self:end}}.checkins-trend{margin:0 0 var(--space-4);position:relative}.checkins-trend-svg{touch-action:none;width:100%;height:auto;display:block}.checkins-trend-grid{stroke:var(--chart-grid);stroke-width:1px}.checkins-trend-axis-label{fill:var(--muted);font-size:10px}.checkins-trend-area{stroke:none}.checkins-trend-gradient-start{stop-color:var(--chart-area);stop-opacity:.28}.checkins-trend-gradient-end{stop-color:var(--chart-area);stop-opacity:0}.checkins-trend-peak-label{font-family:var(--font-mono);fill:var(--text);font-size:11px}.checkins-trend-line{fill:none;stroke:var(--chart-line);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.checkins-trend-point{fill:var(--chart-line);stroke:var(--surface);stroke-width:2px}.checkins-trend-crosshair{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.checkins-trend-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);pointer-events:none;white-space:nowrap;z-index:1;flex-direction:column;gap:2px;display:flex;position:absolute;transform:translate(-50%,-125%)}
