:root{font-family:Inter,system-ui,-apple-system,Arial,sans-serif;color:#eaf1fa;background:#0b1422;font-synthesis:none}*{box-sizing:border-box}body{margin:0;line-height:1.52}.wrap{max-width:1190px;margin:auto;padding:0 22px 40px}header{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #263950;padding:21px 0;flex-wrap:wrap}.brand{font-size:1.2rem;font-weight:850;letter-spacing:-.5px;color:#f3f6fc;text-decoration:none}nav{display:flex;flex-wrap:wrap;align-items:center;gap:17px}nav a{font-weight:600;font-size:.91rem;text-decoration:none;color:#a8c5e8}a{color:#9ed2ff}h1{font-size:clamp(1.8rem,4vw,2.65rem);line-height:1.2;letter-spacing:-1px;margin:.3em 0}h2{font-size:1.16rem;margin-top:0}p{color:#b7c7da}.hero{background:linear-gradient(125deg,#14283d,#103747);border:1px solid #31506c;padding:35px;margin:26px 0 20px;border-radius:20px}.hero.compact{padding:22px 28px}.eyebrow{color:#7addcf;text-transform:uppercase;font-weight:800;letter-spacing:1.5px;font-size:.72rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:13px;margin:20px 0}.stat{padding:20px;background:#15263a;border:1px solid #29425d;border-radius:15px}.stat b{font-size:1.75rem;color:#7ad8ce;display:block}.stat span{font-size:.83rem;color:#b7c7da}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,365px),1fr));gap:18px}.panel{background:#152235;border:1px solid #2c405a;border-radius:16px;padding:24px;margin:15px 0}.panel p{margin-top:6px}label{display:block;font-size:.88rem;font-weight:700;margin:12px 0 5px}input:not([type=checkbox]),select,textarea{display:block;width:100%;padding:10px 12px;background:#0b1624;color:#eaf1fa;border:1px solid #3f556d;border-radius:8px;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid #37a7ce}textarea{min-height:90px}button,.button{background:#58bfe2;color:#071522;font:inherit;font-size:.86rem;padding:10px 14px;border:0;border-radius:8px;cursor:pointer;font-weight:800;display:inline-block;margin-top:10px;text-decoration:none}.button.outline,.quiet{background:#2d4057;color:#d8eafa}.inline{display:inline}.inline button{margin:0}.alert{margin:16px 0;padding:13px 17px;border-radius:10px}.success{background:#123f38;color:#a4f6da}.error{background:#562c2e;color:#ffe6e6}.tag{display:inline-block;padding:6px 11px;border-radius:999px;font-weight:700;font-size:.85rem}.tag.good{background:#15483a;color:#a8f3da}.tag.bad{background:#60252e;color:#ffd4d4}.muted,small{color:#91aac4;font-size:.85rem}.table{overflow-x:auto}table{border-collapse:collapse;min-width:620px;width:100%}td,th{padding:11px 13px;text-align:left;border-bottom:1px solid #2b3c51}th{color:#b0e0ff;font-size:.86rem}tr[hidden]{display:none}dl{display:grid;grid-template-columns:1fr 1.5fr;gap:12px}dt{color:#8da2b6}dd{margin:0;font-weight:700}footer{border-top:1px solid #27394f;margin:38px 0;padding-top:15px;color:#8da2b6;font-size:.79rem}@media(max-width:600px){.wrap{padding:0 12px}.hero{padding:24px}.panel{padding:18px}nav{gap:10px}}

/* Casa Bombero 0.2 visual refresh */
:root{color:#1a2635;background:#f3f5f8}body{background:#f3f5f8;color:#192533}header{border-bottom:1px solid #e4e8ef}.brand{color:#b81926}nav a{color:#435269}a{color:#c41d2c}.hero{background:linear-gradient(115deg,#151e2a,#283443);border:0;color:white;box-shadow:0 12px 28px #1d29351a}.hero p{color:#e2e7ee}.eyebrow{color:#ff6970}.panel,.stat{background:white;border:1px solid #e1e6ec;box-shadow:0 4px 17px #253b5410;color:#1c2937}.panel p{color:#536275}.stat b{color:#d22635}.stat span{color:#596677}input:not([type=checkbox]),select,textarea{background:#fff;color:#1a2635;border:1px solid #cdd5df}button,.button{background:#d32634;color:white}button:hover,.button:hover{background:#b21e2b}.button.outline,.quiet{background:#e9edf2;color:#26374a}.muted,small,dt{color:#65758a}th{color:#b21e2b}td,th{border-bottom:1px solid #e4e8ed}.tag.good{background:#d9f7e9;color:#116442}.tag.bad{background:#ffe5e8;color:#b21e2b}.auth-grid{max-width:920px;margin:auto}footer{color:#68778b;border-top:1px solid #dbe2e9}

.password-holder{position:relative;display:block;width:100%}.password-holder input{padding-right:52px!important;width:100%;box-sizing:border-box}.password-eye{position:absolute;right:5px;top:50%;transform:translateY(-50%);background:transparent!important;border:0!important;color:#334155!important;min-width:44px;min-height:44px;padding:5px!important;cursor:pointer;box-shadow:none!important}.inline{display:inline-flex;align-items:center}nav{flex-wrap:wrap}nav form{margin:0}

/* v0.3.1 - Diseño de registro y seguimiento */
.wrap{max-width:1440px}.registration-panel{max-width:690px}.condition-options{display:flex;gap:14px;margin:8px 0 22px}.condition-options label{flex:1;border:1px solid #d5dce6;border-radius:12px;padding:14px 18px;margin:0;display:flex;gap:10px;align-items:center}.condition-options input{accent-color:#e51b2c}.auto-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0 8px}.auto-date-grid>div{border:1px solid #e1e5eb;border-radius:12px;padding:18px 14px;background:#fafbfd}.auto-date-grid small{display:block;color:#68788d;font-size:.72rem;font-weight:800;letter-spacing:.04em}.auto-date-grid strong{display:block;font-size:clamp(1.15rem,2vw,1.6rem);margin-top:9px;color:#101827}.primary-wide{width:100%;padding:15px;font-size:1rem;background:#ec172b}.client-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,410px),1fr));gap:20px}.client-ext-card{max-width:720px}.client-status{padding:14px 16px;border-radius:12px;font-weight:800;margin-bottom:20px}.client-status.valid{background:#e6f7eb;color:#13692d}.client-status.expired{background:#ffe5e8;color:#b21e2b}.client-ext-card h2,.client-ext-card h1{font-size:clamp(1.4rem,2.8vw,2rem)}.days-counter{background:#e6f7eb;color:#11632c;text-align:center;padding:25px;border-radius:15px;margin:20px 0}.days-counter strong{display:block;font-size:clamp(3rem,6vw,4.3rem);line-height:1}.days-counter span{display:block;font-size:1.1rem;margin-top:8px;font-weight:700}.days-counter.days-expired{background:#ffe5e8;color:#b21e2b}.qr-public{max-width:720px}.created-qr{margin-top:20px;border-top:1px solid #ddd;padding-top:16px}.created-qr #created-qr-image{width:210px;height:210px;max-width:100%}.created-qr svg{width:100%;height:100%}@media(max-width:620px){.auto-date-grid{gap:8px}.auto-date-grid>div{padding:12px 8px}.auto-date-grid strong{font-size:1.05rem}.condition-options label{padding:12px}.client-ext-card{padding:18px}}

/* v0.3.2 · Vista pública y lector QR del cliente */
.public-qr-body{background:#f5f7fa;color:#192333}.public-qr-shell{width:min(100% - 28px,560px);margin:25px auto 45px}.public-qr-brand{display:flex;align-items:center;gap:12px;font-size:1.13rem;line-height:1.05;margin:0 0 26px;font-weight:900}.public-qr-logo{width:58px;height:58px;background:#e60012;border-radius:13px;color:white;font-size:2.1rem;display:grid;place-items:center}.public-qr-status{display:flex;align-items:center;gap:15px;padding:17px;border:1px solid #a7dfb5;background:#eaf8ed;color:#14612c;border-radius:16px;margin-bottom:18px}.public-qr-status strong{display:block;font-size:1.2rem}.public-qr-status small{display:block;color:inherit;margin-top:3px}.public-qr-check{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-size:1.6rem;font-weight:800;flex-shrink:0}.public-qr-card{background:#fff;border:1px solid #e3e8ef;border-radius:20px;padding:22px;box-shadow:0 5px 24px #1a29400b}.public-qr-heading{display:flex;align-items:center;gap:17px;margin-bottom:24px}.public-qr-heading h1{font-size:clamp(1.3rem,4vw,1.8rem);margin:0}.public-qr-heading p{margin:4px 0 8px;color:#63748a}.public-qr-emoji{font-size:4.2rem}.public-qr-pill{display:inline-block;border-radius:30px;background:#ffe6e8;color:#d3192b;padding:4px 13px;font-size:.8rem}.public-qr-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.public-qr-dates>div{border:1px solid #e1e6ee;border-radius:13px;padding:15px 11px}.public-qr-dates small{display:block;font-size:.72rem;font-weight:800;letter-spacing:.02em;color:#62738a}.public-qr-dates strong{display:block;font-size:clamp(.99rem,3.5vw,1.4rem);color:#162233;margin-top:9px;white-space:nowrap}.public-qr-counter{border-radius:16px;background:#e8f8eb;color:#10652d;padding:25px 10px;text-align:center;margin:23px 0}.public-qr-counter strong{font-size:clamp(2.8rem,10vw,4.3rem);line-height:1.1}.public-qr-counter strong span{font-size:.8em}.public-qr-counter p{margin:6px 0 0;color:inherit}.public-qr-detail{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e9edf2;padding:16px 0}.public-qr-detail span{color:#65758a}.public-qr-detail strong{text-align:right;overflow-wrap:anywhere}.public-qr-foot{text-align:center;color:#65758a;font-size:.82rem;padding:4px 12px}.public-qr-status.is-warning,.public-qr-counter.is-warning{background:#fff4d9;border-color:#f4d78b;color:#885900}.public-qr-status.is-warning .public-qr-check{background:#d58c00}.public-qr-status.is-expired,.public-qr-counter.is-expired{background:#ffe7e9;border-color:#f4b7bf;color:#a91727}.public-qr-status.is-expired .public-qr-check{background:#d52235}.client-scan-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.client-file-button{display:inline-block;margin-top:10px;background:#e9edf2;color:#26374a;padding:10px 14px;border-radius:8px;cursor:pointer;font-size:.86rem}.client-scan-actions button{margin-top:10px}#client-camera{width:100%;max-width:480px;border-radius:14px;margin:14px 0;background:#101827}#client-camera[hidden]{display:none}@media(max-width:410px){.public-qr-card{padding:14px}.public-qr-dates{gap:7px}.public-qr-dates>div{padding:11px 7px}.public-qr-dates strong{font-size:.98rem}.public-qr-detail{font-size:.88rem}}

/* v0.3.6 — accesibilidad táctil y lectura móvil del QR */
@media (max-width: 600px) {
  .client-scan-actions button, .client-file-button { min-height: 44px; }
  .public-qr-detail { align-items: flex-start; }
  .public-qr-detail strong { max-width: 62%; }
}
@media (prefers-reduced-motion: reduce) {
  .public-qr-card *, .client-scan-actions * { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
