:root{color:#202722;font-synthesis:none;background:#f4f4f0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.loading-page{color:#667069;place-content:center;justify-items:center;min-height:100vh;display:grid}.spinner{border:3px solid #d6e3dd;border-top-color:#246b5a;border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:radial-gradient(circle at 50% 0,#e4f0eb 0,#f4f4f0 44%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fffffff0;border:1px solid #dedfd9;border-radius:22px;width:min(100%,390px);padding:34px;box-shadow:0 24px 80px #2340341f}.brand-mark{color:#fff;background:#246b5a;border-radius:13px;place-items:center;width:44px;height:44px;display:grid}.eyebrow{color:#246b5a;letter-spacing:.08em;text-transform:uppercase;margin:22px 0 6px;font-size:12px;font-weight:700}h1{letter-spacing:-.04em;margin:0;font-size:clamp(27px,4vw,36px)}h2{margin:0;font-size:18px}.muted,.section-heading p{color:#727872;line-height:1.55}form{gap:16px;margin-top:28px;display:grid}label{color:#4e554f;gap:7px;font-size:13px;font-weight:650;display:grid}input{color:#202722;background:#fff;border:1px solid #d9dcd6;border-radius:11px;outline:none;width:100%;padding:11px 12px}input:focus{border-color:#4c8a79;box-shadow:0 0 0 3px #246b5a1f}button{color:#fff;background:#246b5a;border:0;border-radius:11px;padding:12px 16px;font-weight:750}button:disabled{cursor:wait;opacity:.62}.form-error{color:#a84b42;background:#fff0ed;border-radius:10px;margin:0;padding:10px 12px;font-size:13px}.topbar{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-bottom:1px solid #e2e4de;justify-content:space-between;align-items:center;min-height:72px;padding:10px max(24px,50vw - 710px);display:flex;position:sticky;top:0}.brand,.topbar-actions,.brand>div{align-items:center;gap:12px;display:flex}.brand>div:last-child{gap:1px;display:grid}.brand small{color:#858b85}.topbar .brand-mark{width:40px;height:40px}.icon-button{color:#505853;background:#fff;border:1px solid #dddeda;place-items:center;width:38px;height:38px;padding:0;display:grid}.page-heading{margin-bottom:22px}.page-heading .eyebrow{margin-top:0}.page-heading p:last-child{color:#747b75}.workspace{width:min(1220px,100%);margin:auto;padding:36px 24px 70px}.workspace header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.workspace header .eyebrow{margin-top:0}.secure-pill{color:#246b5a;background:#edf5f1;border:1px solid #d8e5df;border-radius:999px;align-items:center;gap:7px;padding:8px 11px;font-size:12px;font-weight:700;display:inline-flex}.upload-card{background:#fff;border:1px solid #dedfd9;border-radius:22px;padding:26px;box-shadow:0 12px 38px #28383012}.section-heading{align-items:flex-start;gap:13px;display:flex}.section-heading>svg{color:#246b5a;background:#e9f3ef;border-radius:11px;width:40px;height:40px;padding:9px}.section-heading p{margin:5px 0 0;font-size:13px}.file-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.file-slot{cursor:pointer;background:#fafbf9;border:1px dashed #cfd6d0;border-radius:14px;grid-template:none;align-items:center;gap:12px;min-height:78px;padding:14px;display:flex;position:relative}.file-slot:hover{background:#f4f8f6;border-color:#659685}.file-slot.has-file{background:#eff7f3;border-style:solid;border-color:#92b8ab}.file-slot svg{color:#367663}.file-slot b,.file-slot small{display:block}.file-slot small{color:#888d87;margin-top:4px;font-weight:500}.file-slot input{opacity:0;width:1px;height:1px;position:absolute}.applied-policy{border-top:1px solid #ecece7;margin-top:22px;padding-top:20px}.policy-heading{align-items:center;gap:10px;display:flex}.policy-heading>svg{color:#246b5a}.policy-heading h3{margin:0;font-size:15px}.policy-heading p{color:#7d847e;margin:3px 0 0;font-size:12px}.policy-heading>span{color:#246b5a;background:#edf5f1;border-radius:999px;margin-left:auto;padding:6px 10px;font-size:11px;font-weight:750}.policy-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;display:grid}.policy-group{background:#fafbf9;border:1px solid #e3e5df;border-radius:14px;padding:12px 14px}.policy-label{color:#777f78;letter-spacing:.05em;text-transform:uppercase;margin:0 0 7px;font-size:10px;font-weight:800}.policy-row{align-items:center;gap:10px;min-height:50px;display:flex}.policy-row+.policy-row{border-top:1px solid #e8eae5}.policy-row>span:last-child{gap:3px;display:grid}.policy-row b{font-size:13px}.policy-row small{color:#808781;align-items:center;gap:4px;font-size:11px;font-weight:500;display:flex}.policy-date{color:#246b5a;background:#e9f3ef;border-radius:10px;flex:0 0 40px;place-items:center;height:40px;font-size:15px;font-weight:800;display:grid}.policy-date small{color:inherit;letter-spacing:.06em;font-size:8px;font-weight:800}.policy-icon{color:#62699a;background:#eeeffa;border-radius:10px;flex:0 0 40px;place-items:center;height:40px;display:grid}.vacation-policy{background:#faf9fe}.policy-detail{color:#747b75;margin:7px 0 0;font-size:11px;line-height:1.45}.primary-action{min-width:180px;margin:22px 0 0 auto;display:block}.report-workspace{width:min(1420px,100%);margin:auto;padding:26px 18px 60px}.report-card{background:#fff;border:1px solid #dedfd9;border-radius:18px;overflow:clip;box-shadow:0 10px 36px #2838300f}.report-tools{justify-content:space-between;align-items:center;gap:20px;padding:20px;display:flex}.report-tools .eyebrow{margin:0 0 4px}.report-tools h1{font-size:22px}.report-tools h1 span{color:#6f776f;vertical-align:3px;background:#eef1ed;border-radius:99px;place-items:center;min-width:25px;height:25px;font-size:12px;display:inline-grid}.report-tools p:last-child{color:#858b85;margin:4px 0 0;font-size:12px}.tool-actions{align-items:center;gap:8px;display:flex}.search-box{min-width:230px;display:block;position:relative}.search-box svg{color:#899089;position:absolute;top:12px;left:12px}.search-box input{padding-left:36px}select{color:#313a34;background:#fff;border:1px solid #d9dcd6;border-radius:11px;min-width:150px;height:42px;padding:0 12px}.secondary-button{color:#38453f;white-space:nowrap;background:#fff;border:1px solid #d9dcd6;align-items:center;gap:7px;height:42px;padding:0 13px;display:inline-flex}.warnings-box{color:#79591d;background:#fffaf0;border:1px solid #ead9b9;border-radius:11px;margin:0 20px 16px;font-size:13px}.warnings-box summary{cursor:pointer;align-items:center;gap:8px;padding:11px 13px;font-weight:700;display:flex}.warnings-box ul{border-top:1px solid #efe1c7;max-height:180px;margin:0;padding:10px 32px 12px;overflow:auto}.warnings-box li{margin:4px 0}.table-scroll{border-top:1px solid #ecece8;overflow-x:auto}.summary-grid{grid-template-columns:minmax(330px,2.7fr) .65fr .8fr .6fr .65fr .65fr .85fr .8fr;align-items:center;column-gap:14px;min-width:1120px;display:grid}.table-header{z-index:15;color:#777e77;letter-spacing:.03em;text-transform:uppercase;background:#f8f8f5;border-bottom:1px solid #e6e7e2;height:44px;padding:0 18px;font-size:11px;font-weight:800;position:sticky;top:72px}.table-header span:not(:first-child),.employee-row>span:not(:first-child),.employee-row>strong{text-align:center}.employee-block{background:#fff;border-bottom:1px solid #ebede8;min-width:1120px}.employee-block.is-open{box-shadow:inset 3px 0 #246b5a}.employee-row{color:#232b26;text-align:left;background:#fff;border-radius:0;width:100%;min-height:65px;padding:9px 18px}.employee-row:hover{background:#f8fbf9}.employee-block.is-open .employee-row{z-index:14;background:#edf6f2;position:sticky;top:116px}.employee-name{align-items:center;gap:10px;min-width:0;display:flex}.employee-name>span{gap:3px;min-width:0;display:grid}.employee-name b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.employee-name small{color:#818982;font-weight:500}.area-dot{background:#e5f2ed;border-radius:9px;flex:none;width:30px;height:30px;box-shadow:inset 0 0 0 8px #d1e9e0}.area-administracion{background:#eeeffc;box-shadow:inset 0 0 0 8px #dfe1fa}.area-produccion{background:#fff1d9;box-shadow:inset 0 0 0 8px #fce5bd}.area-por-clasificar{background:#ededed;box-shadow:inset 0 0 0 8px #ddd}.hours-pill{border-radius:99px;justify-self:center;min-width:52px;padding:6px 10px}.extra50{color:#8c5c13;background:#fff0d8}.extra100{color:#a6483e;background:#ffe7e4}.discount{color:#b3483e;font-weight:800}.review,.ready{justify-self:center;font-size:12px;font-weight:800}.review{color:#b34b42}.ready{color:#26725d}.detail-container{background:#fff}.detail-grid{grid-template-columns:minmax(140px,1fr) minmax(180px,1.45fr) .7fr .65fr .65fr .65fr .75fr minmax(200px,1.7fr);align-items:center;column-gap:14px;min-width:1120px;padding:0 28px;display:grid}.detail-header{color:#747b75;letter-spacing:.04em;text-transform:uppercase;background:#f5f6f3;border-top:1px solid #dfe5e0;border-bottom:1px solid #e5e7e3;height:38px;font-size:10px;font-weight:800}.detail-row{border-bottom:1px solid #f0f0ed;min-height:58px;font-size:13px}.detail-row>span:not(:last-child),.detail-row>strong{text-align:center}.detail-row>span:last-child{gap:3px;display:grid}.detail-row small{color:#8b918b;font-size:11px;font-weight:500}.status-vacaciones,.status-vacaciones-grupales{background:#f5f1fd}.status-feriado,.status-feriado-trabajado,.status-feriado-no-laborado{background:#eef7fb}.empty-state{color:#7a827b;text-align:center;padding:40px}@media (width<=720px){.workspace header{flex-direction:column}.file-grid,.policy-grid{grid-template-columns:1fr}.policy-heading{flex-wrap:wrap;align-items:flex-start}.policy-heading>span{margin-left:29px}.secure-pill{display:none}.report-workspace{padding:12px 0 40px}.report-card{border-left:0;border-right:0;border-radius:0}.report-tools{flex-direction:column;align-items:stretch}.tool-actions{flex-wrap:wrap;align-items:stretch}.search-box{flex:1 0 100%}}
