:root{--ink:#302720;--muted:#766a61;--line:#e4dcd3;--surface:#fff;--bg:#f6f1ea;--brand:#b97824;--brand-dark:#8f5818;--brand-soft:#f4e8d7;--sidebar:#211914;--sidebar-hover:#342820;--success:#557044;--danger:#a63f32;--warning:#8f5818}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--brand);text-decoration:none}button,.button{font:inherit;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:.7rem 1rem;cursor:pointer}.primary{width:100%;border:0;background:var(--brand);color:#fff;font-weight:700}.primary:hover{background:var(--brand-dark)}input{width:100%;margin-top:.35rem;border:1px solid #b9c1ce;border-radius:8px;padding:.75rem;background:#fff;font:inherit}label{display:block;margin:1rem 0;color:#344054;font-weight:600}.muted{color:var(--muted)}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(100%,390px);background:#fff;padding:2rem;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px #10182814}.login-card h1{margin:.75rem 0 0}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:var(--brand);color:#fff;font-weight:800}.alert{padding:.8rem 1rem;border-radius:8px;margin:1rem 0;background:#eef4ff}.alert.success{background:#ecfdf3;color:var(--success)}.alert.danger{background:#fef3f2;color:var(--danger)}.alert.warning{background:#fffaeb;color:var(--warning)}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(1rem,calc((100% - 980px)/2))}.topbar small{display:block;color:var(--muted)}.link-button{border:0;color:var(--brand);padding:.4rem}.container{width:min(980px,calc(100% - 2rem));margin:2rem auto}.punch-card,.card,.paper{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.5rem}.punch-card{text-align:center;margin-bottom:1.25rem}.punch-card h1{font-size:clamp(2.8rem,8vw,4.5rem);letter-spacing:-.06em;margin:.25rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--brand)}.punch{max-width:420px;font-size:1.05rem;margin-top:1rem;padding:1rem}.notice,.legal-note{font-size:.8rem;color:var(--muted);margin:1rem auto 0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.section-head h2{font-size:1.2rem}.mark-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.75rem}.mark{padding:1rem;border:1px solid var(--line);border-radius:10px;color:var(--ink)}.mark span,.mark small{display:block;color:var(--muted);font-size:.75rem}.mark strong{font-size:1.35rem}.day-total{border-top:1px solid var(--line);padding-top:1rem}.tag{background:#fffaeb;color:var(--warning);border-radius:20px;padding:.2rem .5rem;margin-left:.5rem}.actions{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}.actions form{display:flex;align-items:end;gap:.6rem}.actions label{margin:0}.actions input{width:100px}.report .paper h1{margin-top:0}.meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 2rem}.meta-grid p{margin:0;padding:.7rem 0;border-bottom:1px solid var(--line)}.meta-grid span,.hash span{display:block;color:var(--muted);font-size:.75rem;text-transform:uppercase}table{width:100%;border-collapse:collapse;margin-top:1.5rem}th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--line)}tfoot th{border-top:2px solid var(--ink)}.receipt{width:min(720px,calc(100% - 2rem));margin:2rem auto}.receipt-head{display:flex;gap:1rem;align-items:center}.receipt h1{font-size:1.3rem;margin:0}.receipt-head p{margin:0}.hash{overflow-wrap:anywhere;margin-top:1.5rem;padding:1rem;background:var(--bg);border-radius:8px;font-family:ui-monospace,monospace;font-size:.8rem}.empty{text-align:center;color:var(--muted);padding:2rem}
@media(max-width:640px){.meta-grid{grid-template-columns:1fr}.section-head,.actions,.actions form{align-items:stretch;flex-direction:column}.actions input{width:100%}th,td{padding:.55rem;font-size:.85rem}.container{margin:1rem auto}}
@media print{body{background:#fff}.no-print{display:none!important}.container,.receipt{width:100%;margin:0}.paper{border:0;padding:0}.legal-note{margin-top:2rem}@page{margin:15mm}}
.login-help{text-align:right;margin:-.5rem 0 1rem}.login-help a,.login-back a{font-size:.82rem}.login-back{text-align:center;margin:1.25rem 0 0}.recovery-link{display:block;text-align:center}
select,textarea{width:100%;margin-top:.35rem;border:1px solid #b9c1ce;border-radius:8px;padding:.75rem;background:#fff;font:inherit}textarea{min-height:110px;resize:vertical}
.admin-topbar{height:auto;min-height:70px;gap:1rem;flex-wrap:wrap;padding-top:.75rem;padding-bottom:.75rem}.admin-topbar nav{display:flex;gap:1rem;flex-wrap:wrap}.admin-topbar form{margin:0}.admin-topbar form input{display:none}.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:1.5rem}.page-head h1{margin:.2rem 0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.25rem}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.25rem;color:var(--ink)}.stat-card span,.list-item small{display:block;color:var(--muted)}.stat-card strong{display:block;font-size:2rem;margin-top:.4rem}.admin-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(360px,1.2fr);gap:1.25rem;align-items:start}.wide-form{grid-template-columns:minmax(480px,1.2fr) minmax(320px,.8fr)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1rem}.list-item{border-bottom:1px solid var(--line);padding:1rem 0}.list-item>div{display:flex;justify-content:space-between;gap:1rem}.list-item p{margin:.4rem 0 0;color:var(--muted)}.admin-callout{margin-top:1rem}hr{border:0;border-top:1px solid var(--line);margin:1.5rem 0}
@media(max-width:800px){.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-grid,.wide-form{grid-template-columns:1fr}.admin-topbar nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap}.admin-container{margin-top:1rem}}

/* Estrutura administrativa */
.admin-body{background:#f5f7fb}.sidebar-toggle{position:fixed;opacity:0;pointer-events:none}.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#101828;color:#fff;padding:1.25rem 1rem;display:flex;flex-direction:column;z-index:30}.sidebar-brand{display:flex;align-items:center;gap:.8rem;padding:.25rem .4rem 1.5rem}.sidebar-brand .brand-mark{width:40px;height:40px;flex:0 0 40px;background:#2e6ee6}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand small{color:#98a2b3;font-size:.75rem}.sidebar-nav{display:flex;flex-direction:column;gap:.3rem}.sidebar-nav>p{margin:.25rem .7rem .55rem;color:#667085;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.72rem;border-radius:9px;color:#d0d5dd;font-weight:600}.sidebar-nav a>span{width:29px;height:29px;display:grid;place-items:center;border-radius:7px;background:#ffffff0d;color:#98a2b3;font-size:.65rem;font-weight:800}.sidebar-nav a:hover{background:#1d2939;color:#fff}.sidebar-nav a.active{background:#175cd3;color:#fff;box-shadow:0 6px 18px #0003}.sidebar-nav a.active>span{background:#ffffff24;color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid #344054;padding:1rem .4rem 0;display:flex;align-items:center;gap:.7rem}.sidebar-user>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#344054;font-size:.7rem;font-weight:800}.sidebar-user strong,.sidebar-user small{display:block;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user small{color:#98a2b3;text-transform:capitalize}.admin-content{min-width:0}.admin-header{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:1rem;padding:0 2rem;position:sticky;top:0;z-index:20}.admin-header>div{display:flex;flex-direction:column}.admin-header>div small{color:var(--muted);font-size:.72rem}.admin-header>div strong{font-size:1.05rem}.admin-header form{margin-left:auto}.admin-header form input{display:none}.logout-button{color:var(--danger);padding:.5rem .8rem}.admin-main{width:min(1180px,calc(100% - 3rem));margin:2rem auto}.menu-toggle{display:none;width:40px;height:40px;margin:0;border:1px solid var(--line);border-radius:9px;align-items:center;justify-content:center;flex-direction:column;gap:4px;cursor:pointer}.menu-toggle i{display:block;width:17px;height:2px;background:var(--ink)}.sidebar-backdrop{display:none}.admin-main>.admin-grid{grid-template-columns:minmax(340px,.85fr) minmax(420px,1.15fr)}.admin-main>.wide-form{grid-template-columns:minmax(520px,1.2fr) minmax(340px,.8fr)}

@media(max-width:960px){.admin-shell{display:block}.sidebar{position:fixed;left:0;transform:translateX(-100%);width:270px;transition:transform .2s ease}.menu-toggle{display:flex}.sidebar-backdrop{position:fixed;inset:0;background:#10182899;z-index:25}.sidebar-toggle:checked~.admin-shell .sidebar{transform:translateX(0)}.sidebar-toggle:checked~.admin-shell .sidebar-backdrop{display:block}.admin-main>.admin-grid,.admin-main>.wide-form{grid-template-columns:1fr}}
@media(max-width:600px){.admin-header{padding:0 1rem}.admin-header>div small{display:none}.admin-main{width:min(100% - 1.25rem,1180px);margin:1rem auto}.stats-grid{grid-template-columns:1fr 1fr;gap:.65rem}.stat-card{padding:1rem}.stat-card strong{font-size:1.6rem}.form-grid{grid-template-columns:1fr}.card{padding:1.1rem}.logout-button{border:0;padding:.4rem}.page-head{align-items:start}}
@media print{.sidebar,.admin-header,.sidebar-backdrop{display:none!important}.admin-shell{display:block}.admin-main{width:100%;margin:0}}

/* Cadastro estruturado de jornadas */
.schedule-admin-grid{grid-template-columns:minmax(620px,1.4fr) minmax(300px,.6fr)!important}.schedule-form-card>p{margin-top:-.5rem}.schedule-basics{display:grid;grid-template-columns:1fr 180px;gap:1rem}.schedule-table{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:1.25rem 0}.schedule-head,.schedule-row{display:grid;grid-template-columns:120px repeat(4,minmax(105px,1fr));gap:.65rem;align-items:center}.schedule-head{background:#f8fafc;padding:.65rem .8rem;color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase}.schedule-row{border:0;border-top:1px solid var(--line);padding:.65rem .8rem;margin:0;min-width:0}.schedule-row legend{display:contents;font-weight:700}.schedule-row label{margin:0;min-width:0}.schedule-row label span{display:none}.schedule-row input{margin:0;padding:.65rem}.schedule-form-card .primary{margin-top:.25rem}
@media(max-width:1100px){.schedule-admin-grid{grid-template-columns:1fr!important}}
@media(max-width:700px){.schedule-basics{grid-template-columns:1fr}.schedule-head{display:none}.schedule-row{grid-template-columns:1fr 1fr;padding:1rem}.schedule-row legend{display:block;grid-column:1/-1;width:100%;margin-bottom:.15rem}.schedule-row label span{display:block;color:var(--muted);font-size:.7rem;margin-bottom:.25rem}.schedule-row input{width:100%}}

/* Identidade visual Levain Ponto */
.brand-logo{display:block;object-fit:contain}
.brand-logo-login{width:min(100%,260px);height:auto;max-height:96px;margin:0 auto 1rem}
.topbar-brand{display:flex;align-items:center;gap:.85rem;min-width:0}
.topbar-brand>span{display:block;min-width:0}
.brand-logo-topbar{width:170px;height:48px;object-position:left center}
.brand-logo-receipt{width:165px;height:74px;object-position:left center;flex:0 0 auto}
.brand-logo-header{width:132px;height:38px;object-position:left center}
@media(max-width:600px){.brand-logo-topbar{width:126px;height:40px}.brand-logo-receipt{width:120px;height:58px}.receipt-head{align-items:flex-start;flex-wrap:wrap}}
@media print{.brand-logo-receipt{width:145px;height:60px}}

/* Módulo de ponto facial */
.facial-capture{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fff}.camera-frame{position:relative;width:min(100%,480px);aspect-ratio:4/3;margin:0 auto;overflow:hidden;border-radius:12px;background:#1d1713}.camera-frame video,.camera-frame canvas{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-placeholder{position:absolute;inset:0;display:grid;place-content:center;gap:.35rem;padding:1rem;text-align:center;color:#fff}.camera-placeholder[hidden]{display:none}.camera-placeholder span{font-size:2rem;color:#d19a62}.camera-placeholder small{color:#d7cdc5}.camera-actions{display:flex;justify-content:center;gap:.6rem;margin-top:.8rem}.facial-capture .muted{text-align:center;margin:.7rem 0 0}.company-module-item{align-items:end;gap:1rem}.company-module-item>form{display:flex;align-items:end;gap:.5rem}.company-module-item label{margin:0;min-width:145px}.company-module-item select{margin-top:.2rem}.company-module-item .button{width:auto;white-space:nowrap}@media(max-width:650px){.company-module-item,.company-module-item>form{align-items:stretch;flex-direction:column}.camera-actions{flex-direction:column}}
