
:root{--lfl-red:#c91429;--lfl-red-dark:#a90f20;--lfl-yellow:#f4c400;--lfl-ink:#191919;--lfl-muted:#6b6b6b;--lfl-bg:#f6f4f1;--lfl-card:#fff;--lfl-line:#e8e3dd;--lfl-soft:#fff8e1;--lfl-green:#1d7a46}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--lfl-bg);color:var(--lfl-ink);min-height:100vh}
.site-header{background:#fff;border-bottom:1px solid var(--lfl-line);position:sticky;top:0;z-index:20}.header-inner{max-width:1180px;margin:auto;padding:10px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--lfl-ink)}.brand img{width:132px;height:55px;object-fit:contain;object-position:left center}.brand-context{font-size:.72rem;font-weight:900;letter-spacing:.14em;color:var(--lfl-red);border-left:1px solid var(--lfl-line);padding-left:13px}.main-nav{display:flex;align-items:center;gap:7px}.main-nav a{color:var(--lfl-ink);text-decoration:none;font-weight:800;padding:10px 13px;border-radius:10px}.main-nav a:hover{background:#f8eeee;color:var(--lfl-red)}.main-nav .nav-logout{background:var(--lfl-red);color:#fff}.main-nav .nav-logout:hover{background:var(--lfl-red-dark);color:#fff}
main{max-width:1180px;margin:auto;padding:34px 22px 50px}h1{font-size:2.35rem;line-height:1.08;margin:0 0 8px;letter-spacing:-.03em}h2{margin-top:0}.muted{color:var(--lfl-muted)}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:900;color:var(--lfl-red);margin:0 0 8px}.positive{color:var(--lfl-green);font-weight:800}.negative{color:#b42318;font-weight:800}
.login-wrap{min-height:76vh;display:grid;place-items:center}.login-card{width:min(480px,100%);background:#fff;padding:34px;border-radius:24px;border:1px solid var(--lfl-line);box-shadow:0 18px 55px rgba(45,32,25,.09)}.login-logo{display:flex;justify-content:center;margin-bottom:10px}.login-logo img{width:min(330px,85%);height:auto}.login-title{text-align:center}.login-form{display:grid;gap:18px;margin-top:25px}.login-form label{font-weight:800}.login-form input{display:block;width:100%;margin-top:7px;padding:14px;border:1px solid #d8d2cc;border-radius:11px;font-size:1rem;background:#fff}.login-form input:focus,.form input:focus,.filters input:focus,.filters select:focus{outline:3px solid #f7dfe3;border-color:var(--lfl-red)}button{border:0;border-radius:12px;padding:14px 22px;background:var(--lfl-ink);color:#fff;font-size:1rem;font-weight:900;cursor:pointer}.lfl-primary{background:var(--lfl-red)}.lfl-primary:hover{background:var(--lfl-red-dark)}.large{padding:16px 24px}.error{background:#fff0f1;color:#9f1424;padding:12px;border-radius:10px;margin-top:18px;border:1px solid #f3c6cc}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.card,.big,.stat,.panel,.table-card,.toolbar,.schedule-card,.request-card,.notice-card,.vacation-grid>div{background:#fff;border-radius:18px;box-shadow:0 4px 18px rgba(45,32,25,.055);border:1px solid var(--lfl-line)}.card{padding:22px}.head{display:flex;justify-content:space-between;align-items:center;gap:18px}.status{padding:8px 12px;border-radius:999px;font-size:.84rem;font-weight:900;white-space:nowrap}.working{background:#e4f6ea;color:#146c3f}.break{background:#fff3cc;color:#8b6500}.off{background:#ece9e6;color:#514d49}.big{text-align:center;padding:30px;margin:25px 0}.icon{font-size:2.2rem}.actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.secondary{background:#4b4743}.danger{background:#9f1424}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:18px 0}.stat{padding:20px}.stat span,.mini span{display:block;color:var(--lfl-muted);font-size:.9rem}.stat strong{display:block;font-size:1.5rem;margin-top:5px}.timeline{background:#fff;border-radius:18px;padding:8px 20px;border:1px solid var(--lfl-line)}.timeline>div,.row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--lfl-line)}.timeline>div:last-child,.row:last-child{border-bottom:0}.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:15px 0;margin:18px 0;border-top:1px solid var(--lfl-line);border-bottom:1px solid var(--lfl-line)}.mini strong{font-size:1.15rem}.form{display:flex;gap:10px;flex-wrap:wrap;background:#fff;padding:18px;border-radius:18px;border:1px solid var(--lfl-line)}.form input{padding:13px;border:1px solid #d8d2cc;border-radius:10px;min-width:180px}.footnote{font-size:.8rem;color:var(--lfl-muted);margin:12px 0 28px}
.admin-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.button-link,.back,.details{color:var(--lfl-ink);text-decoration:none;font-weight:900}.button-link{background:var(--lfl-red);color:#fff;padding:12px 16px;border-radius:11px}.button-link:hover{background:var(--lfl-red-dark)}.back{display:inline-block;margin-bottom:22px}.toolbar{padding:14px;margin:18px 0}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filters input{flex:1;min-width:240px;padding:12px;border:1px solid #d8d2cc;border-radius:10px}.filters select{padding:12px;border:1px solid #d8d2cc;border-radius:10px;background:#fff}.filters button{padding:12px 16px;background:var(--lfl-red)}.clear{color:var(--lfl-muted);text-decoration:none;font-size:.9rem}
.table-card{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:15px 18px;border-bottom:1px solid var(--lfl-line);text-align:left}th{background:#faf8f5;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:#6b6b6b;position:sticky;top:0}th a{color:inherit;text-decoration:none}tbody tr:hover{background:#fffaf6}.person{display:flex;flex-direction:column;text-decoration:none;color:var(--lfl-ink)}.person small{color:var(--lfl-muted);margin-top:3px}.number{text-align:right;font-variant-numeric:tabular-nums}.details{white-space:nowrap;color:var(--lfl-red)}.empty{text-align:center;padding:35px;color:var(--lfl-muted)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 2px;color:var(--lfl-muted);font-size:.9rem}.pagination a{margin-left:14px;color:var(--lfl-red);text-decoration:none;font-weight:900}
.month-nav{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:15px 18px;border-radius:15px;margin:18px 0;border:1px solid var(--lfl-line)}.month-nav a{color:var(--lfl-red);text-decoration:none;font-weight:900}.month-table{min-width:820px}.month-table th,.month-table td{text-align:left}.month-table .number{text-align:right}.weekend{background:#faf8f5}.schedule-card{padding:20px;margin:18px 0 28px}.schedule-form{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.schedule-form label,.schedule-fields label{font-weight:800;font-size:.85rem;color:#514d49}.schedule-form input,.schedule-fields input{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #d8d2cc;border-radius:9px}.schedule-form button{grid-column:1/-1;justify-self:start;background:var(--lfl-red)}.schedule-fields{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;flex-basis:100%;padding-top:4px}
.absence-form{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.absence-form select,.absence-form input,.request-form select,.request-form input{padding:11px;border:1px solid #d8d2cc;border-radius:9px}.absence-form input[name="note"],.request-form input[name="note"]{min-width:220px}.small-danger{padding:8px 11px;font-size:.8rem;background:#9f1424}.absence-tag{display:inline-block;padding:5px 8px;border-radius:8px;background:#fff3cc;font-size:.8rem;font-weight:900}.section-line{border:0;border-top:1px solid var(--lfl-line);margin:38px 0 28px}.request-form{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.decision{display:flex;gap:6px;flex-wrap:wrap}.decision button{padding:8px 11px;font-size:.8rem}.notice-card{padding:16px 20px;margin:18px 0;border-left:4px solid var(--lfl-red)}.vacation-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:18px 0 24px}.vacation-grid>div{padding:16px}.vacation-grid span{display:block;color:var(--lfl-muted);font-size:.82rem}.vacation-grid strong{display:block;font-size:1.25rem;margin-top:6px}
.report-actions{display:flex;gap:10px;align-items:center}.report-filter{background:#fff;padding:15px;border-radius:15px;margin:18px 0;border:1px solid var(--lfl-line)}
.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin:22px 0}.panel{padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.bar-chart{height:270px;display:flex;gap:14px;align-items:end;padding:10px 8px 0}.bar-col{flex:1;text-align:center;min-width:45px}.bar-value{font-size:.75rem;color:var(--lfl-muted);margin-bottom:5px}.bar-wrap{height:190px;display:flex;align-items:end;justify-content:center}.bar{width:42px;max-width:75%;border-radius:8px 8px 3px 3px;background:var(--lfl-red);min-height:3px}.bar-label{font-size:.75rem;margin-top:8px;color:#514d49}.bar-saldo{font-size:.72rem;margin-top:3px;font-weight:800}.alert-row{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid var(--lfl-line)}.alert-row:last-child{border-bottom:0}.alert-row strong{font-size:1.25rem}.alert-row a{color:var(--lfl-red);font-weight:900;text-decoration:none}.success-box{padding:16px;border-radius:12px;background:#edf8f0;color:#166534}.employment-form{display:flex;gap:12px;flex-wrap:wrap}.employment-form label{min-width:160px}.checkbox-label{display:flex;align-items:center;gap:7px}
.site-footer{border-top:1px solid var(--lfl-line);background:#fff;padding:20px 22px;color:var(--lfl-muted);display:flex;justify-content:space-between;gap:20px;font-size:.82rem}.site-footer strong{color:var(--lfl-ink)}
@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}.bar-chart{gap:7px}.bar{width:28px}}
@media(max-width:700px){.schedule-form,.schedule-fields{grid-template-columns:repeat(2,1fr)}.schedule-form button{grid-column:1/-1}.vacation-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.header-inner{padding:8px 14px}.brand img{width:112px;height:46px}.brand-context{display:none}.main-nav{gap:2px}.main-nav a{padding:8px 8px;font-size:.82rem}.main-nav a:not(.nav-logout){display:none}main{padding:24px 14px 38px}h1{font-size:2rem}.admin-head{align-items:flex-start;flex-direction:column}.filters input{min-width:100%}.filters select,.filters button{flex:1}.report-actions{width:100%;flex-wrap:wrap}.report-actions .button-link{flex:1;text-align:center}.stats{grid-template-columns:1fr}.actions form,.actions button{width:100%}.form input,.form button{width:100%}.site-footer{flex-direction:column}.login-card{padding:26px 20px}.login-logo img{width:280px}}

.site-footer{margin-top:48px;padding:22px 28px;border-top:1px solid #ececec;display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;color:#666;font-size:.88rem}
.site-footer a{color:inherit;text-decoration:none;font-weight:600}.site-footer a:hover{text-decoration:underline}
.footer-meta{opacity:.75}.legal-page{max-width:850px;margin:0 auto;background:#fff;border-radius:18px;padding:32px;box-shadow:0 4px 18px rgba(15,23,42,.05)}
.legal-page h2{margin-top:28px}.legal-page li{margin:7px 0}.legal-note{margin-top:30px;padding:14px;border-left:4px solid #e30613;background:#fafafa;color:#666;font-size:.9rem}

.backup-form{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-top:18px}.backup-form label{display:flex;flex-direction:column;gap:7px;font-weight:600}.backup-form input{padding:10px;border:1px solid #ddd;border-radius:10px;background:#fff}
