.obr-jornada { --oj-ink:#163047; --oj-muted:#475b6b; --oj-brand:#17577c; --oj-line:#c9d5dd; --oj-pale:#f2f6f8; color:var(--oj-ink); max-width:1120px; margin:1.5rem auto; font:inherit; line-height:1.55; }
.obr-jornada *, .obr-jornada *::before, .obr-jornada *::after { box-sizing:border-box; }
.obr-jornada [hidden] { display:none!important; }
.obr-jornada h2 { margin:1.75rem 0 .75rem; font-size:clamp(1.35rem,3vw,1.85rem); line-height:1.25; color:var(--oj-ink); }
.obr-jornada h3 { margin:0 0 .75rem; color:var(--oj-ink); font-size:1.12rem; }
.obr-jornada p { margin:.6rem 0 1rem; }
.obr-jornada a { color:#135276; text-decoration:underline; text-underline-offset:.16em; overflow-wrap:anywhere; }
.obr-jornada__eyebrow { font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--oj-brand); }
.obr-jornada__intro { border-left:4px solid #d68124; padding-left:1.1rem; }
.obr-jornada__intro h2 { margin-top:.5rem; }
.obr-jornada__panel { margin-top:1rem; padding:1.15rem; border:1px solid var(--oj-line); border-radius:10px; background:#fff; }
.obr-jornada__panel legend { padding:0 .35rem; font-weight:750; font-size:1.08rem; }
.obr-jornada__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.obr-jornada label { display:block; margin:0; font-size:.91rem; font-weight:650; }
.obr-jornada input, .obr-jornada select, .obr-jornada button { font:inherit; }
.obr-jornada input, .obr-jornada select { width:100%; max-width:100%; min-width:0; min-height:44px; margin:.3rem 0 0; padding:.55rem .65rem; border:1px solid #8296a5; border-radius:5px; color:#163047; background:#fff; font-size:1rem; }
.obr-jornada input[type=checkbox] { width:1.1rem; min-height:1.1rem; margin:0 .4rem 0 0; }
.obr-jornada input:invalid { box-shadow:none; }
.obr-jornada button { min-height:44px; padding:.62rem .95rem; border:1px solid var(--oj-brand); border-radius:6px; color:#fff; background:var(--oj-brand); font-weight:700; line-height:1.25; cursor:pointer; }
.obr-jornada button:hover { background:#103f5a; }
.obr-jornada .obr-jornada__secondary { color:var(--oj-brand); background:white; }
.obr-jornada .obr-jornada__secondary:hover { background:#e8f1f6; }
.obr-jornada button:disabled { opacity:.55; cursor:not-allowed; }
.obr-jornada :focus-visible { outline:3px solid #b66a10; outline-offset:3px; }
.obr-jornada__hint { font-size:.87rem; color:var(--oj-muted); }
.obr-jornada__notice { margin:.8rem 0; padding:.8rem 1rem; border-left:3px solid #976500; background:#fff5dc; color:#5b4210; font-size:.91rem; }
.obr-jornada__notice--blue { border-color:var(--oj-brand); color:var(--oj-ink); background:#eef5fa; }
.obr-jornada__week { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.65rem; }
.obr-jornada__row { padding:1rem 0; border-bottom:1px solid var(--oj-line); }
.obr-jornada__row:last-child { border-bottom:0; }
.obr-jornada__row-fields { display:grid; grid-template-columns:1fr 1fr 1.05fr auto; gap:.65rem; align-items:end; }
.obr-jornada__row-label { margin-bottom:.45rem; font-size:.88rem; font-weight:700; }
.obr-jornada__tag { display:inline-block; margin-right:.4rem; padding:.12rem .45rem; border-radius:4px; background:#eaf1f6; font-size:.74rem; font-weight:700; }
.obr-jornada__tag--user { background:#fdf0d5; color:#6b490d; }
.obr-jornada__actions { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0 0; }
.obr-jornada__error { margin-top:1rem; padding:1rem; border:2px solid #9b2924; color:#7f1e1e; background:#fff1f0; }
.obr-jornada__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; margin:1rem 0; }
.obr-jornada__stat { min-width:0; padding:1.1rem; background:#eef5f8; border:1px solid var(--oj-line); border-radius:8px; }
.obr-jornada__stat-label { display:block; color:var(--oj-muted); font-size:.83rem; font-weight:650; }
.obr-jornada__stat strong { display:block; margin:.25rem 0; font-size:clamp(1.4rem,3vw,2rem); line-height:1.2; overflow-wrap:anywhere; }
.obr-jornada__stat--balance { background:#fff6e6; border-color:#d5ad6b; }
.obr-jornada__audit { margin:1rem 0; padding:1rem; background:#f8fafb; border:1px solid var(--oj-line); border-radius:6px; }
.obr-jornada details { margin-top:1rem; }
.obr-jornada summary { cursor:pointer; font-weight:700; color:var(--oj-ink); min-height:44px; padding:.5rem 0; }
.obr-jornada__scroll { overflow-x:auto; max-width:100%; }
.obr-jornada__monthly { width:100%; border-collapse:collapse; margin:.5rem 0; }
.obr-jornada__monthly th,.obr-jornada__monthly td { text-align:left; padding:.5rem .6rem; border-bottom:1px solid var(--oj-line); }
.obr-jornada__monthly th { color:#fff; background:var(--oj-brand); font-size:.85rem; }
.obr-jornada__legend { display:flex; flex-wrap:wrap; gap:.5rem 1rem; padding:0; margin:1rem 0; list-style:none; font-size:.83rem; }
.obr-jornada__legend li { display:flex; gap:.35rem; align-items:center; }
.obr-jornada__dot { display:inline-block; width:.75rem; height:.75rem; border-radius:50%; background:#e7edf1; border:1px solid #768d9c; }
.obr-jornada__dot--official { background:#cce0ee; }
.obr-jornada__dot--user { background:#f8d68e; }
.obr-jornada__months { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.obr-jornada__month { min-width:0; border:1px solid var(--oj-line); border-radius:7px; padding:.6rem; background:#fff; }
.obr-jornada__month h3 { margin:0 0 .45rem; font-size:1rem; text-transform:capitalize; }
.obr-jornada__month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.obr-jornada__day-label { text-align:center; font-size:.7rem; color:var(--oj-muted); }
.obr-jornada button.obr-jornada__day { width:100%; min-height:43px; padding:.12rem; border:1px solid #dbe4e9; border-radius:4px; font-size:.75rem; font-weight:600; color:var(--oj-ink); background:#f2f5f7; }
.obr-jornada button.obr-jornada__day:hover { border-color:var(--oj-brand); box-shadow:inset 0 0 0 1px var(--oj-brand); }
.obr-jornada__day span { display:block; font-size:.58rem; font-weight:400; }
.obr-jornada button.obr-jornada__day--official { background:#dbeaf4; }
.obr-jornada button.obr-jornada__day--user { background:#ffe4ad; }
.obr-jornada button.obr-jornada__day--rest { color:#657482; background:#fff; border-color:#eee; }
.obr-jornada__day-detail { margin:.8rem 0; padding:.85rem 1rem; border:1px solid var(--oj-line); border-radius:6px; background:#f2f7fa; }
.obr-jornada__guide,.obr-jornada__sources-static { margin-top:2rem; }
.obr-jornada__sources-static { padding-top:.25rem; border-top:1px solid var(--oj-line); font-size:.93rem; }
.obr-jornada__guide li { margin-bottom:.55rem; }
.obr-jornada__print-summary { display:none; }
@media(max-width:760px) { .obr-jornada__grid { grid-template-columns:1fr; } .obr-jornada__row-fields { grid-template-columns:1fr 1fr; } .obr-jornada__stats { grid-template-columns:1fr; } .obr-jornada__stat { padding:.85rem 1rem; } .obr-jornada__stat strong { font-size:1.75rem; } .obr-jornada__months { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px) { .obr-jornada__panel { padding:.8rem; } .obr-jornada__months { grid-template-columns:1fr; } .obr-jornada__week { gap:.35rem; } .obr-jornada__week input { padding:.5rem .3rem; } .obr-jornada__row-fields { gap:.75rem .55rem; } .obr-jornada input[type=date] { font-size:.87rem; padding:.5rem .3rem; } .obr-jornada__actions button { flex:1 1 130px; } .obr-jornada button.obr-jornada__day { min-height:45px; } .obr-jornada__day span { font-size:.64rem; } }
@media print { .obr-jornada { max-width:none; margin:0; font-size:9pt; color:#111; } .obr-jornada__form, .obr-jornada__actions, .obr-jornada__error, .obr-jornada__day-detail, .obr-jornada__loading, .obr-jornada__guide, .obr-jornada__intro { display:none!important; } .obr-jornada__print-summary { display:block; } .obr-jornada h2 { font-size:14pt; margin:.8rem 0 .4rem; } .obr-jornada__stats { grid-template-columns:repeat(3,1fr); } .obr-jornada__stat { padding:.5rem; } .obr-jornada__stat strong { font-size:16pt; } .obr-jornada__months { display:grid!important; grid-template-columns:repeat(3,1fr); gap:.45rem; } .obr-jornada__month { break-inside:avoid; padding:.3rem; } .obr-jornada button.obr-jornada__day { min-height:23px; font-size:7pt; } .obr-jornada__day span { font-size:5.7pt; } .obr-jornada__sources-static { break-before:auto; font-size:8pt; } .obr-jornada__sources-static a { text-decoration:none; } .obr-jornada__monthly { font-size:8pt; } .obr-jornada__audit { padding:.45rem; } .obr-jornada details { display:block; } .obr-jornada__month, .obr-jornada__stat { print-color-adjust:exact; -webkit-print-color-adjust:exact; } }
