:root{font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#192c23;background:#f3f6f3;--brand:#243c49}*{box-sizing:border-box}body{margin:0}header{background:var(--brand);color:white;padding:22px max(20px,calc((100vw - 1000px)/2));display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}header a{font-size:21px;font-weight:bold;text-decoration:none;color:white}main{max-width:1040px;margin:auto;padding:20px}a{color:var(--brand)}p{line-height:1.6}.links,.tabs,.actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.links a{padding:12px 0;margin-right:10px;font-weight:bold}.links a[aria-current]{border-bottom:3px solid var(--brand)}.panel{background:white;border:1px solid #d7e0d8;border-radius:14px;padding:26px;margin:20px 0}.panel>h1{font-size:clamp(28px,5vw,40px)}h1,h2{line-height:1.2;margin:8px 0 20px}h2{font-size:23px}h3{margin:0 0 8px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-weight:bold;font-size:14px;color:#486a52;margin:8px 0}button,.button{font:700 16px Arial;border:1px solid var(--brand);border-radius:8px;padding:13px 18px;background:var(--brand);color:white;cursor:pointer;display:inline-block;text-decoration:none;min-height:46px}button:disabled{opacity:.55;cursor:wait}.secondary,.tabs button{background:white;color:var(--brand)}.tabs button[aria-pressed=true]{background:var(--brand);color:white}label{display:grid;gap:8px;font-weight:bold;margin:16px 0}input,select{width:100%;font:16px Arial;padding:13px;border:1px solid #9cac9d;border-radius:7px;min-height:46px;background:white;color:#192c23}input[type=file]{font-size:14px}form{max-width:700px}form button{margin-top:5px}.hint{font-size:14px;color:#53675a;line-height:1.6}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.heading h1,.heading h2{margin:10px 0}.heading>button{flex-shrink:0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.fields button{align-self:end;margin-bottom:16px}details{margin:22px 0}summary{font-weight:bold;cursor:pointer;padding:14px 0}.capture-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:22px 0}video,#selfie{width:100%;max-height:360px;object-fit:contain;background:#12231b;border-radius:10px;margin:14px 0}.record{border-top:1px solid #dce4dd;padding:20px 0;display:flex;gap:18px;align-items:start}.record img{width:100px;height:120px;object-fit:cover;border-radius:8px}.record p{margin:4px 0}.record>div{min-width:0;overflow-wrap:anywhere}.record a{font-weight:bold;text-underline-offset:3px;display:inline-block;margin:6px 0}.badge{display:inline-block;background:#e8f0e9;border-radius:5px;padding:5px 8px;font-size:14px}.empty{color:#57695b;padding:14px 0}#message{position:sticky;top:0;z-index:4;background:#fff8df;border:1px solid #c5ad5b;padding:14px;border-radius:8px;font-weight:bold;white-space:pre-wrap}#message:empty{display:none}#code-result{background:#eef4ef;padding:20px;border:1px solid #9eb3a0;border-radius:10px}code{display:block;font-size:19px;overflow-wrap:anywhere;margin:15px 0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c29c27;outline-offset:3px}[hidden]{display:none!important}@media(max-width:600px){main{padding:14px}.panel{padding:18px}.fields,.capture-grid{grid-template-columns:1fr}.tabs button{flex:1}.record img{width:78px;height:100px}header span{font-size:14px}.heading>button{font-size:14px}}

/* Portal laboral: navegación clara, información de jornada y fichas privadas. */
:root{background:#f2f4f7;color:#252d36}main{max-width:1180px}.portal-header{padding:22px max(24px,calc((100vw - 1132px)/2));min-height:80px}.portal-header span{border:1px solid #ffffff66;padding:7px 12px;border-radius:6px;font-size:14px}#login{max-width:570px;margin:38px auto;padding:36px;border-top:5px solid var(--brand);box-shadow:0 12px 40px #1825320c}#login h1{font-size:36px;letter-spacing:-1px;max-width:420px}#login button{width:100%}.panel{border-color:#dfe3e8;box-shadow:0 3px 10px #18253204}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.summary article{background:white;padding:20px;border:1px solid #dfe3e8;border-radius:12px;border-top:3px solid var(--brand)}.summary span{display:block;color:#53606c;font-size:14px}.summary strong{display:block;font-size:24px;line-height:1.3;margin-top:12px}.summary article:first-child strong{font-size:20px}.tabs{border-bottom:1px solid #cbd2da;padding:0 0 14px;position:sticky;top:0;background:#f2f4f7;z-index:2;padding-top:10px}.tabs button{border-color:#cbd2da}.work-record{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #dfe3e8;padding:22px 0}.work-record h3{margin-top:12px}.work-record p{margin:8px 0}.work-record>div{min-width:0;overflow-wrap:anywhere}.work-record label{min-width:180px;align-self:start;font-size:14px}.work-note{white-space:pre-wrap}textarea{font:inherit;width:100%;padding:13px;border:1px solid #9cac9d;border-radius:7px;resize:vertical}.links{margin-bottom:10px;font-size:14px}#task-form,#request-form{padding-bottom:24px}.capture-grid>div{background:#f7f9fa;border-radius:10px;padding:18px}#mark{width:100%}#attendance-panel>label{max-width:350px}.heading .eyebrow{margin-top:18px}#marks>label{max-width:260px}#admin-panel details{border-top:1px solid #dfe3e8}textarea:focus-visible{outline:3px solid #c29c27;outline-offset:3px}@media(max-width:760px){.summary{grid-template-columns:1fr 1fr}.summary strong{font-size:22px}.work-record{display:block}.work-record label{max-width:100%}.tabs{gap:6px}.tabs button{font-size:14px;padding:12px 9px;flex:1}#login{padding:24px}#login h1{font-size:30px}.portal-header{padding:18px}.summary article{padding:15px}}
