/* V19 · Control diario y seguimiento de obras. Sin dependencias externas. */
:root{--bg:#f3f5f8;--text:#25364a;--muted:#6b7b8e;--line:#e2e8f0;--shadow:0 4px 20px rgba(18,42,67,.045);--orange:#ef7a2e}
html{scroll-behavior:smooth}body{line-height:1.5;letter-spacing:-.12px}button,input,select,textarea{font-family:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3288cb;outline-offset:3px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}
.main-content{padding:28px 30px 45px}.topbar{gap:18px;min-height:65px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:26px}.topbar h1{font-size:25px;letter-spacing:-.8px}.topbar p{font-size:12px}.topbar-user{margin-left:auto}.topbar-user strong{font-size:13px}.sidebar{padding:24px 15px 16px;background:#082b4b;border-right:1px solid #193b59}.sidebar nav{gap:3px;margin-top:22px}.sidebar nav a{font-size:13px;min-height:44px;padding:11px 13px;border:1px solid transparent;border-radius:9px;color:#c9d8e6}.sidebar nav a:hover{background:#133c5e;color:white}.sidebar nav a[aria-current=page]{background:#194466;color:#fff;border-color:#285272;box-shadow:inset 3px 0 0 var(--orange)}.sidebar-status{font-size:11px;color:#b7cada}.sidebar-user{border-top:1px solid #234662}.menu-button{background:white;color:var(--navy);border:1px solid var(--line);box-shadow:none}.card{border-color:var(--line);border-radius:15px;box-shadow:var(--shadow)}.card-header{background:#fff;color:var(--navy);border-bottom:1px solid var(--line);padding:17px 20px;min-height:58px;gap:12px}.card-header strong{font-size:14px}.card-header span{color:var(--muted);font-size:11px}.card-header .header-badge{color:white}.card-header a{font-size:11px;color:var(--blue);text-decoration:none;font-weight:700}.card-body{padding:22px}.button{border-radius:9px;font-size:13px;min-height:42px;transition:background .15s,box-shadow .15s}.button:hover{box-shadow:0 3px 10px #15365720}.button.orange{background:#ef7a2e;color:#fff}.button.light{background:#eef3f8;border:1px solid #e0e8f0;color:#244966}.button.small{min-height:34px}.field label{font-weight:650;font-size:12px}.field input,.field textarea,.field select{border-color:#d6e0ea;border-radius:9px;font-size:14px;line-height:1.5;min-width:0}.field input:focus,.field textarea:focus,.field select:focus{border-color:#4386bb;box-shadow:0 0 0 3px #4386bb12}.field input[readonly]{background:#f0f4f8;color:#51677a}.field small{font-size:11px;line-height:1.5}.field textarea{min-height:90px}.form-grid{gap:18px}.form-card{max-width:1200px}.field-entry-card>.card-body{padding:27px}.section-title{gap:12px;flex-wrap:wrap}.section-title h2{font-size:19px;letter-spacing:-.4px}.section-title>span{font-size:11px;color:var(--muted)}.role-focus-banner,.partidas-guide{border-radius:15px;background:#0a3456;box-shadow:none;padding:25px}.role-focus-banner h2{font-size:27px;letter-spacing:-.6px}.role-focus-banner p{max-width:700px;font-size:13px}.role-focus-banner .button.light{background:#fff}.my-updates-shortcut{box-shadow:none;padding:17px 22px;margin-bottom:18px}.my-updates-shortcut h2{font-size:17px;margin:3px 0}.my-updates-shortcut p{font-size:12px}.table th{font-size:11px;text-transform:none;background:#f5f8fb;padding:14px 12px}.table td{padding:14px 12px;font-size:12px}.table tbody tr:hover{background:#fafcfe}.table-wrap{max-width:100%}.partidas-sheet td,.partidas-sheet th{padding:10px}.sheet-input{border-radius:6px}.photo-card,.existing-media-card{box-shadow:none}.photo-info h3{font-size:15px}.photo-info p{font-size:12px;line-height:1.5}.photo-card video,.photo-card img{aspect-ratio:4/3;object-fit:cover;background:#112b42}.executive-kpi{min-height:108px;box-shadow:var(--shadow)}.executive-kpi .kpi-icon{width:42px;height:42px;box-shadow:none;border-radius:12px;font-size:18px}.executive-kpi .kpi-value{font-size:29px;letter-spacing:-1px}.executive-kpi .kpi-label{font-size:11px}.executive-kpi small{font-size:10px}.dashboard-toolbar h2{font-size:25px}.executive-hero{background:#eaf0f5;color:var(--navy)}.executive-hero .photo-placeholder span{color:var(--muted)}.activity-row{background:#f8fafc;border-color:#e2e9f0}.alert{font-size:13px;line-height:1.6}.publish-note{font-size:12px;line-height:1.7;border-radius:10px}.record-text{white-space:pre-wrap;overflow-wrap:anywhere}.positive-value{color:#198559!important}.negative-value{color:#c64444!important}
.batch-section{margin-top:30px;padding-top:27px;border-top:1px solid var(--line)}.section-intro{font-size:13px;color:var(--muted);margin:0 0 20px}.batch-builder{background:#f7f9fc;border:1px solid #dbe5ef;border-radius:13px;padding:22px}.batch-builder-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}.batch-builder-heading h3{font-size:16px;color:var(--navy);margin:0 0 3px}.batch-builder-heading small{font-size:11px;color:var(--muted)}.step-chip{background:#e6eef7;color:#245b85;border-radius:10px;width:38px;height:38px;display:grid;place-items:center;font-size:24px;flex-shrink:0}.batch-builder-footer{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid #dfe7ef}.batch-builder-footer>small{font-size:11px;color:var(--muted)}.batch-photo-actions{display:flex;gap:10px;flex-wrap:wrap}.batch-photo-actions label{cursor:pointer}.batch-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:12px;margin-top:10px}.batch-preview{position:relative;min-width:0;max-width:180px}.batch-preview img,.batch-preview video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;background:#e3eaf1}.batch-preview button{position:absolute;right:5px;top:5px;border:0;border-radius:50%;background:#112e48ed;color:white;width:30px;height:30px;font-size:20px;cursor:pointer}.batch-preview small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--muted)}.batch-list-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:26px;margin-bottom:12px}.batch-list-heading h3{font-size:15px;color:var(--navy);margin:0}.batch-list-heading span{font-size:11px;color:var(--muted)}.batch-list{display:grid;gap:12px}.batch-empty{border:1px dashed #cbd9e7;border-radius:12px;text-align:center;padding:26px;color:var(--muted);background:#fcfdfe}.batch-empty>span{display:block;font-size:25px;color:#7293b0}.batch-empty strong{font-size:13px;display:block;color:#355571;margin:7px}.batch-empty p{font-size:12px;margin:0}.batch-saved-card{border:1px solid #dce6ef;border-radius:12px;padding:18px;background:white;box-shadow:0 2px 5px #152b4004}.batch-saved-top{display:flex;align-items:center;gap:12px}.batch-saved-top>div{flex:1;min-width:0}.batch-saved-top h3{font-size:14px;line-height:1.5;margin:0;color:var(--navy);overflow-wrap:anywhere}.batch-saved-top small{font-size:10px;color:var(--muted);font-weight:700}.batch-index{display:grid;place-items:center;width:34px;height:34px;background:#edf4fa;color:#3d6c91;border-radius:9px;font-size:12px;flex-shrink:0}.batch-saved-card>p{font-size:13px;color:#52687c}.batch-saved-metrics{display:flex;gap:10px 20px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.batch-saved-metrics strong{font-size:14px;color:#17476a}.batch-saved-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px}.batch-saved-actions small{font-size:11px;color:var(--muted)}.batch-card-thumbs{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.batch-card-thumbs img,.batch-card-thumbs video{width:72px;height:54px;object-fit:cover;border-radius:7px;background:#edf2f7}
.work-dashboard{max-width:1500px;margin:auto}.work-hero{background:#0a3456;border:1px solid #164262;border-radius:17px;padding:30px;display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:24px;color:#fff}.work-hero .eyebrow{color:#ffb37e}.work-hero h2{font-size:34px;letter-spacing:-1px;margin:4px 0}.work-hero p{font-size:13px;color:#bfd1e1;margin:0 0 14px}.work-hero .status{font-size:10px}.work-hero-actions{display:grid;gap:9px;min-width:225px}.work-hero-actions small{color:#b3c7d9;font-size:10px;text-align:center}.hero-refresh{border:1px solid #436480;background:transparent;color:#d8e6f2}.work-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.work-kpi{padding:22px;min-width:0}.work-kpi .eyebrow{color:#6f8295;letter-spacing:1px;font-size:9px}.work-kpi>strong{display:block;color:var(--navy);font-size:36px;font-weight:750;letter-spacing:-1.4px;margin-top:9px;line-height:1.2}.work-kpi>strong small{font-size:16px;font-weight:500;margin-left:3px;letter-spacing:0}.work-kpi p{font-size:12px;margin:8px 0 4px;color:#3b5269}.work-kpi>small{font-size:10px;color:var(--muted)}.work-kpi .progress{height:5px;margin-top:13px}.work-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:22px;align-items:start}.work-dashboard-grid>.card{min-width:0;overflow:hidden}.last-update-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.last-update-top>small{font-size:11px;color:var(--muted)}.work-dashboard .record-text{font-size:13px;line-height:1.7}.work-part-line{display:flex;align-items:start;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:15px 0}.work-part-line>div{min-width:0}.work-part-line small{font-size:10px;color:var(--muted)}.work-part-line strong{display:block;font-size:13px;color:var(--navy)}.work-part-line p{margin:6px 0 0;color:var(--muted)}.work-part-line>.progress-pill{white-space:nowrap;flex-shrink:0}.update-footnote{display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.update-footnote>span{font-size:11px;color:var(--muted)}.next-day-note{margin-top:18px;background:#f3f7fb;border-radius:10px;padding:15px}.next-day-note>strong{font-size:11px;color:var(--navy)}.next-day-note p{margin:5px 0 0}.work-comparison>div:not(.progress){display:flex;justify-content:space-between;font-size:12px}.work-comparison .progress{margin-bottom:18px}.plan-progress span{background:#93a9bc}.dashboard-scope-note{font-size:11px;color:var(--muted);background:#f4f7fa;border-radius:10px;padding:12px;line-height:1.6}.work-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.work-media-item{min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.work-media-item img,.work-media-item video{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#102d45}.work-media-item>div{padding:10px}.work-media-item small{color:var(--muted);font-size:9px}.work-media-item strong{font-size:11px;display:block;line-height:1.5;overflow-wrap:anywhere;color:var(--navy)}.work-media-item p{font-size:10px;color:var(--muted);margin:4px 0 0}.work-alert{padding:15px 0;border-bottom:1px solid var(--line)}.work-alert:first-child{padding-top:0}.work-alert:last-child{border-bottom:0;padding-bottom:0}.work-alert>strong{display:block;font-size:12px;margin-top:8px;color:var(--navy)}.work-alert small{font-size:10px;color:var(--muted)}.work-alert p{margin:6px 0 8px}.published-part-card{border:1px solid var(--line);border-radius:11px;padding:18px;margin:12px 0}.published-part-card h4{font-size:14px;margin:0;color:var(--navy)}.published-part-card small{font-size:11px;color:var(--muted)}.published-part-card .existing-media-grid{margin-top:12px}.published-part-card .existing-media-card{max-width:260px}
@media(min-width:801px){.sidebar nav{overflow-y:auto;min-height:0}.sidebar .company-brand{flex-shrink:0}.sidebar-status,.sidebar-user{flex-shrink:0}}
@media(max-width:1200px){.work-dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr)}.work-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.work-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-hero{padding:24px}.main-content{padding:22px}}
@media(max-width:800px){.main-content{padding:15px 13px 35px}.topbar{background:white;padding:13px;border:1px solid var(--line);border-radius:12px;gap:11px;margin-bottom:18px;min-height:auto}.topbar h1{font-size:19px;letter-spacing:-.4px}.topbar p{font-size:10px}.menu-button{flex-shrink:0}.card-header{padding:15px 16px}.card-body{padding:17px}.field-entry-card>.card-body{padding:17px}.role-focus-banner,.partidas-guide{padding:20px;gap:15px}.role-focus-banner h2{font-size:23px}.role-focus-banner p{font-size:12px}.work-dashboard-grid{grid-template-columns:1fr}.work-hero{align-items:start}.work-hero h2{font-size:29px}.work-hero-actions{min-width:185px}.work-kpis{gap:11px}.work-kpi{padding:17px}.work-kpi>strong{font-size:31px}.work-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.batch-builder{padding:17px}.batch-saved-card{padding:15px}.my-updates-shortcut{padding:16px}.batch-builder-footer .button{flex:1 1 auto}.batch-builder-footer>small{flex-basis:100%}.batch-list-heading{align-items:start;flex-direction:column;gap:4px}}
@media(max-width:520px){.work-hero{padding:22px;flex-direction:column;gap:20px}.work-hero-actions{width:100%}.work-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.work-kpi .eyebrow{font-size:8px;letter-spacing:.5px}.work-kpi>strong{font-size:29px}.work-kpi p{font-size:11px}.work-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-dashboard-grid{gap:16px}.batch-saved-top{align-items:start;flex-wrap:wrap;gap:9px}.batch-saved-top>.tag{margin-left:43px}.batch-previews{grid-template-columns:repeat(3,minmax(0,1fr))}.batch-preview small{max-width:85px}.batch-photo-actions .button{flex:1}.update-footnote{align-items:start;flex-direction:column}.form-grid{grid-template-columns:1fr}.role-focus-banner{align-items:start;flex-direction:column}.card-header a{font-size:10px}.section-title h2{font-size:17px}.photo-grid{grid-template-columns:1fr}.batch-builder-heading{align-items:start}.batch-builder-heading small{display:block}.batch-builder-footer{flex-direction:column;align-items:stretch}.batch-builder-footer>small{flex-basis:auto}.batch-saved-actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

.optional-block{border:1px solid var(--line);border-radius:12px;padding:17px 20px}.optional-block>summary{cursor:pointer;font-size:14px;color:var(--navy);font-weight:700}.optional-block>summary small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:4px}.optional-block[open]>summary{margin-bottom:20px}.batch-builder .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.batch-builder .form-grid{grid-template-columns:1fr}.optional-block{padding:16px}}

@media(max-width:800px){body:not(.menu-open) .sidebar{visibility:hidden;box-shadow:none}.menu-open .sidebar{visibility:visible}}
