:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#193e35;background:#f1f5f2;font-size:16px;line-height:1.5}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header{background:#183d35;color:#fff;padding:18px max(20px,calc((100% - 1100px)/2));display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{font-size:22px;font-weight:800;letter-spacing:2px}.brand small{font-size:12px;letter-spacing:0}header>span{font-size:13px;opacity:.8}main{max-width:1100px;margin:30px auto;padding:0 20px}body:has(#entry) main{max-width:700px}h1{font-size:clamp(25px,4vw,36px);line-height:1.15;margin:10px 0 16px}h2{font-size:22px;margin:8px 0}p{margin:10px 0 18px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:#628278}.card{background:#fff;border:1px solid #dce6df;border-radius:18px;padding:26px;margin:24px 0;box-shadow:0 6px 20px #133b3006}.narrow{max-width:520px;margin:40px auto}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:26px 0}.tile{background:#fff;color:#183d35;border:1px solid #cddbd1;min-height:140px;font-size:19px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;text-align:left;padding:22px;border-radius:16px}.tile b{font-size:33px;line-height:1.2;margin-bottom:10px}.tile:hover,.tile:focus{background:#e3eee7;border-color:#285d49}button,.button{font:inherit;background:#235743;color:#fff;border:0;border-radius:10px;padding:13px 20px;font-weight:700;cursor:pointer;display:inline-block;text-align:center;text-decoration:none;min-height:48px}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c09636;outline-offset:3px}.secondary{background:#eaf0ec;color:#234f40}.text-button{background:transparent;color:#2d644e;padding:8px}.full{width:100%;margin-top:14px}label{display:block;font-weight:650;margin:18px 0 0}input:not([type=checkbox]),select,textarea{font:inherit;width:100%;border:1px solid #bfcec4;background:#fff;border-radius:9px;color:#213c33;min-height:49px;padding:11px;margin-top:6px}textarea{resize:vertical}label small,.muted{font-weight:400;color:#64776c;font-size:13px}.section-heading{display:flex;gap:16px;justify-content:space-between;align-items:center}.section-heading>span{font-size:13px;color:#617469}fieldset{border:1px solid #d5e0d8;border-radius:10px;margin:20px 0;padding:8px 14px 18px}legend{font-weight:650}.checks{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.checks label{font-size:14px;display:flex;align-items:center;gap:9px;margin-top:12px;min-height:36px}.checks input{width:21px;height:21px;accent-color:#235743}.photo-button{padding:18px;border:2px dashed #8aaf99;background:#f1f6f3;border-radius:12px;text-align:center;cursor:pointer}.photo-button input{font-size:13px}#preview{max-width:100%;max-height:300px;object-fit:contain;border-radius:12px;margin-top:12px}.error{background:#fff1ec;color:#9e3023;padding:13px;border-radius:8px}.notice{background:#edf3ef;padding:14px;border-radius:10px;font-size:14px;overflow-wrap:anywhere}pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}.success-icon{width:55px;height:55px;display:grid;place-items:center;border-radius:50%;font-size:30px;background:#dcefe0;color:#216541}#summary{background:#f5f7f4;padding:18px;border-radius:10px;font-size:14px}.filters{display:grid;grid-template-columns:1fr 1fr 1.5fr 2fr;gap:12px;align-items:end}.filters label{margin:0;font-size:13px}.filters button{font-size:14px}.record{padding:22px 0;border-top:1px solid #dae5dd}.record pre{font-size:14px;margin:8px 0}.record p{font-size:14px;margin:6px 0}.record a,a{color:#27634b}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:22px}.pagination button{font-size:13px}details summary{font-weight:750;cursor:pointer}.settings-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}footer{text-align:center;color:#70857a;font-size:12px;padding:20px}.admin-link{text-align:center;font-size:12px;margin:35px 0}.intro>p{color:#60746a}#password{border-top:1px solid #d7e3da;margin-top:30px;padding-top:20px;max-width:500px}.record-body{display:flex;gap:20px;justify-content:space-between;align-items:flex-start}.record-info{flex:1;min-width:0}.record-media{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px}.thumb-container{position:relative;width:180px;height:125px;border-radius:12px;overflow:hidden;background:#e3eee7;border:1px solid #cddbd1;cursor:pointer;box-shadow:0 2px 8px #133b300f;transition:transform .2s ease,box-shadow .2s ease}.thumb-container:hover{transform:scale(1.03);box-shadow:0 6px 16px #133b3024;border-color:#285d49}.record-thumb{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.thumb-overlay{position:absolute;inset:0;background:#183d35a6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;opacity:0;transition:opacity .2s ease}.thumb-container:hover .thumb-overlay{opacity:1}.thumb-link{font-size:12px;color:#27634b;text-decoration:none}.thumb-link:hover{text-decoration:underline}.photo-modal-backdrop{position:fixed;inset:0;background:#0e201ae0;backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.photo-modal-card{background:#fff;border-radius:16px;max-width:95vw;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000073;overflow:hidden;border:1px solid #cddbd1}.photo-modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:#183d35;color:#fff}.photo-modal-title{font-weight:700;font-size:16px}.photo-modal-close{background:transparent;border:0;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:4px 10px;border-radius:8px;min-height:auto}.photo-modal-close:hover{background:#ffffff26}.photo-modal-body{background:#0f1d19;display:flex;align-items:center;justify-content:center;overflow:auto;padding:12px;flex:1}.photo-modal-img{max-width:100%;max-height:72vh;object-fit:contain;border-radius:8px;display:block}.photo-modal-footer{padding:12px 20px;background:#f7faf8;border-top:1px solid #dae5dd;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#496357}@media(max-width:650px){main{padding:0 14px;margin-top:24px}.card{padding:20px}.tile{padding:17px;min-height:125px;font-size:17px}.filters,.settings-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start}.record .section-heading{flex-direction:column;gap:4px}.record-body{flex-direction:column-reverse;align-items:stretch}.thumb-container{width:100%;height:180px}header{padding:15px}.checks{grid-template-columns:1fr 1fr}button,.button{font-size:16px}}
.permanent-link-card{background:#f8faf9;border:1px solid #c7dcd0;border-left:5px solid #235743}
.permanent-link-info h2{margin:4px 0 6px;font-size:20px;color:#183d35}
.link-box{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}
.link-box input{flex:1;min-width:240px;font-family:monospace;font-size:14px;background:#fff;border:1px solid #bfcec4;border-radius:8px;padding:12px;color:#183d35}
.link-box button,.link-box .button{min-height:46px;padding:10px 18px;font-size:14px;white-space:nowrap}
.filters{display:grid;grid-template-columns:1fr 1fr 1.3fr 1.7fr;gap:12px;align-items:end}
.filters-actions{grid-column:1/-1;display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
.filters-actions button{min-height:42px;padding:9px 18px;font-size:14px}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}
.kpi-card{background:#f8faf9;border:1px solid #d9e5dc;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:3px;box-shadow:0 1px 4px #00000008;transition:transform .15s ease}
.kpi-card:hover{transform:translateY(-2px)}
.kpi-num{font-size:26px;font-weight:800;line-height:1.1;color:#183d35}
.kpi-label{font-size:11.5px;font-weight:700;color:#617469;text-transform:uppercase;letter-spacing:.4px}
.kpi-card.total{border-left:4px solid #183d35}
.kpi-card.in-person{border-left:4px solid #16a34a}
.kpi-card.out-person{border-left:4px solid #4338ca}
.kpi-card.out-truck{border-left:4px solid #d97706}
.kpi-card.in-truck{border-left:4px solid #0d9488}
.records-count{font-size:13.5px;color:#617469;margin:12px 0 8px;font-weight:600}
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:9999px;font-size:12px;font-weight:700;border:1px solid transparent;line-height:1.3}
.badge-in-person{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.badge-out-person{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}
.badge-out-truck{background:#fffbeb;color:#92400e;border-color:#fde68a}
.badge-in-truck{background:#f0fdfa;color:#115e59;border-color:#99f6e4}
.record{padding:18px 0;border-top:1px solid #dce6df}
.record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px;flex-wrap:wrap}
.record-title-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.record-id{font-weight:800;font-size:15px;color:#183d35}
.record-time{font-size:13px;color:#617469;display:inline-flex;align-items:center;gap:4px}
.record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px 16px;margin-bottom:6px}
.record-row{display:flex;align-items:baseline;gap:6px;font-size:14px}
.record-label{color:#183d35;font-weight:700;font-size:13px;min-width:90px;flex-shrink:0}
.record-val{color:#2a443b;font-weight:400;word-break:break-word}
.plate-tag{display:inline-block;padding:2px 7px;background:#f5f7f5;border:1.5px solid #b7c9be;border-radius:6px;font-weight:700;font-family:monospace;font-size:13px;letter-spacing:1px;color:#15382b}
.person-tag{display:inline-block;font-size:12px;color:#496357;background:#edf3ef;padding:2px 8px;border-radius:6px;font-weight:400}
.record-notes{margin-top:10px;background:#fffcee;border:1px solid #f6e6aa;border-left:4px solid #e09d17;padding:10px 14px;border-radius:8px;font-size:13.5px;color:#3b2d11;line-height:1.4}
.record-label-header{color:#183d35;font-weight:700;font-size:12.5px;margin-right:2px}
.record-header-item{display:inline-flex;align-items:center;gap:4px}
.record-time-val{color:#496357;font-weight:400}
.record-label-notes{font-weight:700;color:#7a4b08;margin-right:4px}
.record-val-notes{font-weight:400;color:#3b2d11}
.empty-state{text-align:center;padding:44px 20px;background:#f8faf9;border:2px dashed #cddbd1;border-radius:16px;margin:24px 0;display:flex;flex-direction:column;align-items:center;gap:8px}
.empty-icon{font-size:38px;line-height:1}
.empty-title{margin:0;font-size:18px;color:#183d35;font-weight:700}
.empty-state button{min-height:40px;padding:8px 18px;font-size:13.5px;margin-top:6px}
.guard-readonly{background:#f5f8f6!important;color:#2b4d42!important;border-color:#cddbd1!important;cursor:default;font-weight:600}
.guard-setting-box{margin-bottom:16px;max-width:440px}
.period-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 20px;background:#f8faf9;border:1px solid #d9e5dc;border-radius:14px;margin-bottom:18px}
.period-status{display:flex;flex-direction:column;gap:3px}
.period-title{margin:0;font-size:20px;color:#183d35;font-weight:800;letter-spacing:-0.2px}
.period-subtitle{margin:0;font-size:13px;color:#617469}
.period-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.period-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:#235743;margin-bottom:2px}
.period-badge.exact{color:#92400e}
.btn-exact-date{background:#eaf0ec;color:#183d35;border:1.5px solid #b8cebf;font-weight:700}
.btn-exact-date:hover{background:#dfeae2;border-color:#285d49}
.btn-month-view{background:#183d35;color:#fff;border:0;font-weight:700}
.btn-month-view:hover{background:#235743}
.exact-date-panel{background:#fff;border:1.5px solid #285d49;border-radius:14px;padding:18px 22px;margin-bottom:18px;box-shadow:0 4px 14px #183d3512}
.exact-date-box{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.exact-date-label{margin:0;font-size:13.5px;font-weight:700;color:#183d35;flex:1;min-width:220px}
.exact-date-label input{margin-top:6px;min-height:46px;font-size:15px;border-color:#a8c4b2}
.exact-date-actions{display:flex;gap:10px;align-items:center}
.exact-date-actions button{min-height:46px;padding:10px 20px;font-size:14px}
.custom-range-details{grid-column:1/-1;margin-top:12px;font-size:13px;color:#496357}
.custom-range-details summary{cursor:pointer;color:#285d49;font-weight:600;user-select:none;padding:4px 0}
.custom-range-details summary:hover{text-decoration:underline}
.custom-range-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:10px;padding:12px;background:#f8faf9;border-radius:10px;border:1px dashed #cddbd1}
.custom-range-grid label{margin:0;font-size:12.5px}
.custom-range-grid input{min-height:40px;padding:8px}
.custom-range-grid button{min-height:40px;padding:8px 16px;font-size:13px}
@media(max-width:650px){
.period-toolbar{flex-direction:column;align-items:stretch}
.period-buttons{width:100%;justify-content:stretch}
.period-buttons button{flex:1}
.exact-date-box{flex-direction:column;align-items:stretch}
.exact-date-actions{width:100%}
.exact-date-actions button{flex:1}
.custom-range-grid{grid-template-columns:1fr}
}

/* ==========================================================================
   Vista Pública de Bitácoras (view.php) - MARKAS SRL
   Línea visual: Verde oscuro (#183d35, #235743) y blanco
   ========================================================================== */
.public-container{max-width:760px;margin:30px auto;padding:0 20px}
.public-card{background:#fff;border:1px solid #dce6df;border-radius:18px;padding:28px;box-shadow:0 6px 22px rgba(24,61,53,0.06);margin-bottom:24px}
.public-top-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e7efe9}
.public-badge-verified{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#e8f5ed;color:#17653f;border:1px solid #a8dcbe;border-radius:9999px;font-size:12.5px;font-weight:700}
.public-title-area{margin-bottom:22px}
.public-title{font-size:clamp(22px,4vw,28px);font-weight:800;color:#183d35;margin:0 0 8px;line-height:1.2}
.public-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13.5px;color:#536b61}
.public-meta-item{display:inline-flex;align-items:baseline;gap:5px}
.public-meta-label{font-weight:700;color:#183d35}
.public-meta-val{font-weight:400;color:#27443a}
.public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px 22px;margin:22px 0}
.public-row{display:flex;align-items:baseline;gap:8px;font-size:14.5px;padding:9px 0;border-bottom:1px solid #f1f5f2}
.public-label{font-weight:700;color:#183d35;min-width:130px;flex-shrink:0}
.public-val{font-weight:400;color:#27443a;word-break:break-word}
.public-notes-box{margin-top:20px;padding:15px 18px;background:#fffdf2;border:1px solid #f6e5a6;border-left:4px solid #d99a16;border-radius:10px;font-size:14px}
.public-notes-label{font-weight:700;color:#7a4d09;margin-bottom:4px;display:block}
.public-notes-val{font-weight:400;color:#3d3014;margin:0;line-height:1.45}
.public-photo-wrap{margin-top:26px;border-top:1px solid #e7efe9;padding-top:22px}
.public-photo-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.public-photo-title{font-size:15px;font-weight:700;color:#183d35}
.public-photo-zoom-btn{font-size:13px;font-weight:600;color:#235743;text-decoration:none;display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:#eaf0ec;border-radius:8px;border:1px solid #c7dcd0;transition:background .15s}
.public-photo-zoom-btn:hover{background:#dfeae2}
.public-photo-frame{position:relative;width:100%;border-radius:14px;overflow:hidden;background:#0f1d19;cursor:pointer;border:1px solid #cddbd1;box-shadow:0 4px 14px rgba(24,61,53,0.08)}
.public-photo-img{width:100%;max-height:500px;object-fit:contain;display:block;margin:0 auto;transition:transform .2s ease}
.public-photo-frame:hover .public-photo-img{transform:scale(1.01)}
.public-photo-overlay{position:absolute;bottom:0;inset-inline:0;background:linear-gradient(to top,rgba(15,29,25,0.85),transparent);padding:24px 14px 10px;color:#fff;font-size:12px;text-align:center;opacity:0;transition:opacity .2s}
.public-photo-frame:hover .public-photo-overlay{opacity:1}
.public-photo-empty{text-align:center;padding:32px 18px;background:#f8faf9;border:1.5px dashed #cddbd1;border-radius:12px;color:#627b70;font-size:14px;margin-top:18px}
.public-footer{text-align:center;padding:24px 16px 40px;color:#6e847a;font-size:12.5px}
.public-footer p{margin:4px 0}
.public-footer-readonly{display:inline-block;margin-top:8px;padding:4px 12px;background:#e6ede8;border-radius:6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:#3b574c}
@media(max-width:650px){
.public-container{padding:0 14px;margin-top:18px}
.public-card{padding:20px;border-radius:14px}
.public-grid{grid-template-columns:1fr;gap:4px}
.public-row{flex-direction:column;gap:2px;padding:8px 0}
.public-label{min-width:auto;font-size:13.5px}
.public-top-bar{flex-direction:column;align-items:flex-start}
}

/* ==========================================================================
   Sección de Éxito y Compartir Bitácora (index.php) - Fase 3
   ========================================================================== */
.share-box{margin-top:20px;padding-top:16px;border-top:1px solid #e1ece5}
.share-url-label{display:block;font-size:13.5px;font-weight:700;color:#183d35;margin:0 0 6px}
.share-url-row{display:flex;gap:8px;align-items:center;margin-bottom:14px}
.share-url-input{flex:1;font-family:monospace;font-size:13px;background:#f8faf9;border:1.5px solid #c7dcd0;border-radius:9px;padding:10px 12px;color:#183d35;min-height:44px}
.share-url-input:focus{background:#fff;border-color:#235743}
.btn-open-link{white-space:nowrap;font-size:13.5px;padding:9px 16px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 8px}
.btn-whatsapp{flex:1.2;min-width:220px;background:#1e7e48;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:15px;color:#fff;border:0;border-radius:10px;text-decoration:none;font-weight:700;min-height:48px}
.btn-whatsapp:hover{background:#17663a}
.btn-copy{flex:1;min-width:160px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px;border:1.5px solid #c2d6ca}
.copy-feedback{display:block;background:#e8f5ed;color:#155724;border:1px solid #c3e6cb;padding:9px 14px;border-radius:8px;font-size:13.5px;font-weight:600;text-align:center;margin:10px 0}
.warning-notice{background:#fff8e6;border:1.5px solid #f2d184;border-left:4px solid #d99a16;padding:14px 16px;border-radius:10px;font-size:13.5px;color:#5a4109;margin:14px 0}
.warning-notice p{margin:6px 0 10px;color:#5a4109;font-size:13px;line-height:1.4}
@media(max-width:650px){
.share-url-row{flex-direction:column;align-items:stretch}
.share-actions{flex-direction:column}
.btn-whatsapp,.btn-copy{width:100%}
}
#save{background:#1e7e48;font-size:16px;font-weight:700}
#save:hover{background:#17663a}


