@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

:root{--navy:#101d35;--navy-2:#192b4b;--gold:#c99c4b;--gold-soft:#f4ead7;--ink:#172033;--muted:#6e7685;--paper:#f3f5f8;--card:#fff;--line:#e1e5eb;--green:#24755e;--red:#a84444}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;min-height:100vh}
body:before{content:'';position:absolute;z-index:-1;inset:0 0 auto;height:460px;background:linear-gradient(125deg,var(--navy) 0%,#172b4e 70%,#213a63 100%);clip-path:polygon(0 0,100% 0,100% 76%,70% 92%,0 72%)}
body:after{content:'';position:absolute;z-index:-1;right:4%;top:92px;width:270px;height:270px;border:1px solid #ffffff13;border-radius:50%;box-shadow:0 0 0 48px #ffffff08,0 0 0 96px #ffffff05}
.shell{max-width:1180px;margin:auto;padding:0 28px 64px}
header{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff20;color:#fff}
.brand{display:flex;gap:13px;align-items:center}.brand>span:last-child{display:flex;flex-direction:column}.brand strong{font-size:20px;letter-spacing:.01em}.brand small{margin-top:1px;color:#b9c2d1;font-size:10px;text-transform:uppercase;letter-spacing:.14em}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d8b66f;background:linear-gradient(145deg,#d8b66f,var(--gold));color:var(--navy);border-radius:4px;font:700 13px 'DM Sans';box-shadow:0 7px 18px #0003}
.clock{font-size:13px;color:#d7dce5;text-transform:capitalize;letter-spacing:.03em}
.hero{padding:62px 0 48px;color:#fff}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--gold);margin:0 0 14px}.hero h1{font:600 clamp(42px,6vw,68px)/1.04 'Playfair Display',serif;margin:0;letter-spacing:-.025em}.hero h1 span{color:#e0bf7d}.hero>p:last-child{color:#c5ccd8;font-size:16px;line-height:1.65;max-width:560px;margin:20px 0 0}
.grid{display:grid;grid-template-columns:1.12fr .88fr;gap:24px;align-items:stretch}
.camera-card,.panel,.recent{background:var(--card);border:1px solid #dce1e8;border-radius:9px;overflow:hidden;box-shadow:0 18px 50px #14213d16}
.camera-card{border-top:3px solid var(--gold)}
.camera-wrap{aspect-ratio:4/3;background:#0b1527;position:relative;overflow:hidden}
.camera-wrap:after{content:'';position:absolute;inset:17px;border:1px solid #ffffff2b;pointer-events:none;z-index:4}
.camera-wrap video,.camera-wrap canvas{position:absolute;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-wrap canvas{z-index:2}
.camera-wrap.camera-active .placeholder,.placeholder[hidden]{display:none!important}
.placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#c8d0dd;background:radial-gradient(circle at center,#172944,#0b1527 70%)}.placeholder span{font-size:58px;color:var(--gold);font-weight:300}.placeholder p{margin:10px 0 3px;font-weight:600}.placeholder small{color:#8290a5;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.scan-line{position:absolute;z-index:3;left:7%;right:7%;height:1px;background:var(--gold);box-shadow:0 0 14px var(--gold);opacity:0}.busy .scan-line{opacity:.8;animation:scan 2s infinite ease-in-out}@keyframes scan{0%,100%{top:12%}50%{top:88%}}
.status{margin:0;padding:17px 21px;font-size:13px;border-top:1px solid var(--line);background:#fbfcfd}.status:before{content:'●';color:#a7adb7;margin-right:10px}.status[data-kind=ready]:before,.status[data-kind=success]:before{color:var(--green)}.status[data-kind=error]:before{color:var(--red)}
.panel{padding:27px;border-top:3px solid var(--navy)}
.tabs{display:flex;border-bottom:1px solid var(--line);margin:-4px 0 25px}.tab{flex:1;border:0;border-bottom:2px solid transparent;padding:13px 8px;background:transparent;color:var(--muted);font:600 12px inherit;cursor:pointer;text-transform:uppercase;letter-spacing:.06em}.tab.active{color:var(--navy);border-color:var(--gold)}
.form{display:none}.form.active{display:block}.form label{display:block;font-weight:600;font-size:12px;margin:17px 0 8px;color:#394255;text-transform:uppercase;letter-spacing:.05em}.form input{width:100%;border:1px solid #d8dde5;border-radius:5px;padding:14px 15px;font:14px inherit;outline:none;background:#fbfcfd;transition:.2s}.form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c99c4b18;background:#fff}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:22px}.btn{border:0;border-radius:5px;padding:14px 12px;font:700 12px inherit;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #16233d20}.btn.entry,.btn.primary{background:var(--gold);color:var(--navy)}.btn.exit{background:var(--navy);color:#fff}.btn.primary{width:100%;margin-top:23px}.busy .btn{pointer-events:none;opacity:.6}.hint{font-size:11px;line-height:1.6;color:var(--muted);margin:18px 0 0;padding:13px 14px;border-left:2px solid var(--gold);background:#faf8f4}
.recent{margin-top:25px;padding:27px 30px}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h2{font:600 25px 'Playfair Display',serif;margin:0;color:var(--navy)}.section-title .eyebrow{margin-bottom:5px}.link-btn{background:none;border:1px solid var(--line);border-radius:4px;padding:8px 12px;color:var(--navy);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.records{margin-top:21px}.record{display:grid;grid-template-columns:42px 1fr auto 55px;gap:13px;align-items:center;padding:13px 0;border-top:1px solid #e9ecf0}.avatar{width:39px;height:39px;border-radius:4px;display:grid;place-items:center;background:var(--navy);color:#e0bf7d;font-weight:700}.record strong,.record small{display:block}.record strong{font-size:14px}.record small{color:var(--muted);font-size:11px;margin-top:3px}.record time{font-weight:600;color:var(--navy)}.badge{padding:5px 9px;border-radius:3px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.badge.entrada{background:#e7f2ed;color:var(--green)}.badge.salida{background:#f4e8e8;color:var(--red)}.empty{text-align:center;color:var(--muted);padding:22px}.error-text{color:var(--red)}
.toast{position:fixed;right:24px;bottom:24px;max-width:360px;padding:15px 19px;background:var(--navy);color:#fff;border-left:4px solid var(--gold);border-radius:5px;box-shadow:0 15px 40px #0003;transform:translateY(100px);opacity:0;transition:.25s;z-index:10}.toast.show{transform:none;opacity:1}.toast.success{background:var(--green)}.toast.error{background:var(--red)}
@media(max-width:760px){body:before{height:500px;clip-path:polygon(0 0,100% 0,100% 88%,0 78%)}body:after{display:none}.shell{padding:0 15px 42px}header{height:76px}.clock{font-size:10px;max-width:120px;text-align:right}.brand small{display:none}.hero{padding:45px 0 38px}.hero h1{font-size:42px}.hero>p:last-child{font-size:14px}.grid{grid-template-columns:1fr}.panel{padding:21px 17px}.actions{grid-template-columns:1fr}.recent{padding:22px 17px}.record{grid-template-columns:40px 1fr auto}.record time{grid-column:3;grid-row:1;margin-top:34px}.badge{grid-column:3;grid-row:1}}

/* Variante moderna y cercana, conservando la paleta azul marino y dorado */
body:before{height:475px;background:linear-gradient(135deg,var(--navy),#172b4e 68%,#213a63);clip-path:none;border-radius:0 0 8% 8%/0 0 14% 14%}
body:after{right:5%;top:110px;width:190px;height:190px;border:0;background:#c99c4b18;border-radius:42% 58% 62% 38%/45% 38% 62% 55%;transform:rotate(18deg);box-shadow:-180px 100px 0 35px #ffffff08}
.brand-mark{border:0;border-radius:14px;font-size:18px;transform:rotate(-5deg)}
.hero{padding:58px 0 48px}.hero h1{font:700 clamp(44px,6vw,70px)/1.02 'DM Sans',sans-serif;letter-spacing:-.055em}.hero>p:last-child{max-width:500px}
.camera-card,.panel,.recent{border-radius:24px}.camera-card,.panel{border-top:0}
.camera-wrap:after{inset:18px;border:2px dashed #ffffff2b;border-radius:18px}
.placeholder{background:radial-gradient(circle at center,#1e3455,#0b1527 70%)}.placeholder span{display:grid;place-items:center;margin:auto;width:76px;height:76px;border-radius:25px;background:#c99c4b1c;font-size:40px}.placeholder p{margin:14px 0 4px}.placeholder small{text-transform:none;letter-spacing:0}
.tabs{border:0;background:#f1f3f6;padding:5px;border-radius:15px;margin:-3px 0 25px}.tab{border:0;padding:11px 8px;border-radius:11px;text-transform:none;letter-spacing:0}.tab.active{border:0;background:#fff;box-shadow:0 4px 12px #17233b12}
.form label{text-transform:none;letter-spacing:0}.form input{border-radius:13px}.form input:focus{box-shadow:0 0 0 4px #c99c4b18}
.btn{border-radius:13px;font-size:13px;text-transform:none;letter-spacing:0}.btn:hover{transform:translateY(-2px);box-shadow:0 9px 20px #16233d20}.hint{border:0;border-radius:12px;background:#faf7f0}
.section-title h2{font:700 24px 'DM Sans',sans-serif;letter-spacing:-.025em}.avatar{border-radius:13px}.badge{border-radius:20px;text-transform:capitalize;letter-spacing:0}.link-btn{border-radius:10px;text-transform:none;letter-spacing:0}.toast{border-radius:13px}
@media(max-width:760px){body:before{height:500px;clip-path:none;border-radius:0 0 10% 10%/0 0 5% 5%}.hero h1{font-size:44px}}
