:root{
  --ink:#182033;--muted:#70798d;--line:#e6e9f2;--bg:#f4f6fb;--surface:#fff;
  --blue:#5b5ce2;--teal:#16a6a1;--red:#f06464;--navy:#15182c;
  --shadow-sm:0 2px 8px rgba(25,32,56,.05);--shadow:0 14px 36px rgba(25,32,56,.09);
  --radius:16px;--ease:cubic-bezier(.2,.8,.2,1)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;-webkit-font-smoothing:antialiased}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 78% 0,rgba(91,92,226,.08),transparent 30%),radial-gradient(circle at 40% 100%,rgba(22,166,161,.055),transparent 32%);z-index:-1}
button,input,textarea,select{font:inherit}button{cursor:pointer}button,a,input,select,textarea{transition:border-color .2s,box-shadow .2s,background .2s,color .2s,transform .2s var(--ease)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(91,92,226,.22);outline-offset:2px}
.eyebrow{font-size:.68rem;letter-spacing:.16em;font-weight:800;color:var(--blue);margin:0 0 .45rem}.muted{color:var(--muted)}.hidden{display:none!important}.no-scroll{overflow:hidden}
.primary{border:0;color:#fff;background:linear-gradient(135deg,var(--blue),#7475ee);border-radius:11px;padding:.82rem 1.15rem;font-weight:750;box-shadow:0 8px 20px rgba(91,92,226,.24)}
.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 25px rgba(91,92,226,.3)}.primary:active:not(:disabled){transform:translateY(0)}.primary:disabled{opacity:.5;cursor:not-allowed}.small{padding:.68rem 1rem}
.new-record-btn{display:inline-flex!important;flex-direction:row!important;align-items:center;justify-content:center;gap:.35rem;height:39px;padding:0 .85rem;white-space:nowrap}.new-record-btn svg{display:block;flex:0 0 17px;width:17px!important;height:17px!important;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* Acceso */
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr);background:var(--surface)}
.login-brand{position:relative;overflow:hidden;background:linear-gradient(100deg,rgba(15,18,38,.94) 0%,rgba(27,30,67,.86) 48%,rgba(35,38,83,.68) 100%),url("assets/recinto.jpg") center/cover no-repeat;color:#fff;padding:10vh 12%;display:flex;flex-direction:column;justify-content:center;animation:loginImageReveal 1.1s var(--ease) both}
@keyframes loginImageReveal{from{filter:brightness(.72) saturate(.7)}to{filter:brightness(1) saturate(1)}}
@media(prefers-reduced-motion:reduce){.login-brand{animation:none}}
.login-brand:before,.login-brand:after{content:"";position:absolute;border-radius:50%;filter:blur(2px)}.login-brand:before{width:420px;height:420px;right:-170px;top:-120px;background:rgba(91,92,226,.24)}.login-brand:after{width:260px;height:260px;left:-100px;bottom:-100px;background:rgba(22,166,161,.18)}
.brand-mark,.logo span{width:50px;height:50px;border-radius:15px;background:linear-gradient(145deg,var(--blue),#7c7df1);display:grid;place-items:center;color:#fff;box-shadow:0 10px 25px rgba(91,92,226,.3);position:relative;z-index:1}
.brand-mark svg,.logo span svg{width:60%;height:60%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-brand>*{position:relative;z-index:1}.login-brand .eyebrow{color:#8fded9;margin-top:2rem}.login-brand h1{font-size:clamp(3.4rem,6vw,6rem);letter-spacing:-.055em;line-height:.9;margin:1.2rem 0 1.6rem}.login-brand h1 span{color:#8f90f5}.login-brand>p:last-child{max-width:510px;color:#b9bed3;font-size:1.08rem;line-height:1.75}
.login-card{background:#fff;padding:10vh clamp(3rem,9vw,9rem);display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:2.15rem;letter-spacing:-.035em;margin:.2rem 0}.login-card form{margin-top:2.25rem;display:grid;gap:1.25rem}.login-card label,.field{display:grid;gap:.5rem;font-size:.8rem;font-weight:750;color:#41495c}.login-card input,.field input,.field textarea,.field select{border:1px solid #dfe3ec;border-radius:11px;padding:.82rem .9rem;background:#fff;color:var(--ink);outline:none}.login-card input:hover,.field input:hover,.field textarea:hover,.field select:hover{border-color:#c5cad8}.login-card input:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(91,92,226,.1)}.login-card .primary{margin-top:.5rem;display:flex;justify-content:space-between}.form-error{color:var(--red);min-height:1rem;margin:0}.password-wrap{position:relative;display:block}.login-card .password-wrap input{width:100%;padding-right:3rem}.password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:8px;background:transparent;color:var(--muted);display:grid;place-items:center}.password-toggle:hover,.password-toggle.visible{background:#f0f0ff;color:var(--blue)}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}

/* Estructura */
.app-shell{display:grid;grid-template-columns:276px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .3s var(--ease)}
.sidebar{background:linear-gradient(165deg,#11152b 0%,#171b36 48%,#151a34 100%);color:#bec3d6;padding:1.35rem 1rem 1rem;display:flex;flex-direction:column;position:sticky;top:0;width:276px;height:100vh;overflow:hidden;z-index:15;border-right:1px solid rgba(255,255,255,.045);box-shadow:12px 0 40px rgba(25,29,58,.08);transition:transform .3s var(--ease),opacity .22s}
.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.app-shell.sidebar-collapsed .sidebar{transform:translateX(-105%);opacity:0;pointer-events:none}.app-shell.sidebar-collapsed .menu{display:block}
.sidebar-glow{position:absolute;width:250px;height:250px;left:-110px;top:-120px;border-radius:50%;background:rgba(91,92,226,.22);filter:blur(55px);pointer-events:none}
.logo{position:relative;display:flex;align-items:center;gap:.78rem;color:#fff;text-decoration:none;padding:.25rem .55rem 2.2rem}
.logo span{width:43px;height:43px;border-radius:13px;box-shadow:0 10px 28px rgba(91,92,226,.38),inset 0 1px rgba(255,255,255,.24)}
.logo>div{display:grid;gap:.08rem}.logo strong{font-size:1.1rem;line-height:1;letter-spacing:-.035em}.logo small{color:#8fded9;font-size:.61rem;font-weight:850;letter-spacing:.2em}
.nav-section{position:relative}.nav-section>p{margin:0 .75rem .65rem;color:#656d8b;font-size:.59rem;font-weight:800;letter-spacing:.17em}.sidebar nav{display:grid;gap:.45rem}
.nav-item{width:100%;display:flex;align-items:center;gap:.75rem;border:1px solid transparent;background:transparent;color:#aeb4ca;padding:.72rem .75rem;border-radius:14px;text-align:left}
.nav-item:hover{background:rgba(255,255,255,.055);color:#fff;border-color:rgba(255,255,255,.055)}
.nav-item.active{position:relative;background:linear-gradient(105deg,rgba(91,92,226,.32),rgba(91,92,226,.1));color:#fff;border-color:rgba(141,142,245,.18);box-shadow:0 10px 26px rgba(5,8,28,.18),inset 0 1px rgba(255,255,255,.055)}
.nav-item.active:before{content:"";position:absolute;left:-1px;top:15px;bottom:15px;width:3px;border-radius:0 4px 4px 0;background:linear-gradient(var(--blue),#9899ff);box-shadow:0 0 12px #7a7bf1}
.nav-icon{width:37px;height:37px;flex:0 0 37px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.07);color:#aeb0ff}.nav-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linejoin:round}.nav-copy{min-width:0;display:grid;gap:.14rem;flex:1}.nav-copy strong{font-size:.79rem}.nav-copy small{color:#838ba8;font-size:.63rem}.nav-item>i{color:#777f9c;font-size:1.3rem;font-style:normal}
.side-bottom{position:relative;margin-top:auto;padding:.9rem .25rem 0;border-top:1px solid rgba(255,255,255,.075)}.profile-label{display:flex;align-items:center;gap:.45rem;margin:0 .45rem .65rem;color:#69728f;font-size:.56rem;font-weight:800;letter-spacing:.14em}.profile-label span{width:6px;height:6px;border-radius:50%;background:#4ed0ad;box-shadow:0 0 0 4px rgba(78,208,173,.1)}
.user-card{display:flex;align-items:center;gap:.68rem;min-width:0;padding:.58rem;border:1px solid rgba(255,255,255,.07);border-radius:15px;background:rgba(255,255,255,.035);box-shadow:inset 0 1px rgba(255,255,255,.03)}
.user-card .avatar{width:40px;height:40px;flex:0 0 40px;border-radius:12px;background:linear-gradient(145deg,#159d99,#55c9c2);color:#fff;display:grid;place-items:center;font-weight:850;box-shadow:0 7px 18px rgba(22,166,161,.2)}
.user-info{min-width:0;flex:1}.user-card strong,.user-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card strong{color:#f8f9ff;font-size:.76rem}.user-card small{width:max-content;margin-top:.2rem;padding:.12rem .4rem;border-radius:999px;background:rgba(91,92,226,.18);color:#aaaef9;font-size:.57rem;font-weight:750}
.logout{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:10px;background:rgba(255,255,255,.035);color:#8b93ae}.logout svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.logout:hover{background:rgba(240,100,100,.13);color:#ff9b9b;transform:translateX(2px)}.workspace{min-width:0}
.topbar{min-height:110px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(222,226,237,.8);padding:1.5rem clamp(1.2rem,3vw,2.5rem);display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:8}.main-brand{position:relative;padding:.3rem .9rem .4rem 1rem;isolation:isolate}.main-brand:before{content:"";position:absolute;z-index:-1;inset:-.45rem -.7rem;border-radius:16px;background:linear-gradient(120deg,rgba(91,92,226,.09),rgba(22,166,161,.07),transparent 72%);filter:blur(.2px)}.main-brand:after{content:"";position:absolute;left:1rem;bottom:0;width:42px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--teal));box-shadow:0 3px 12px rgba(91,92,226,.28);animation:titlePulse 3.2s ease-in-out infinite}.main-brand .eyebrow{margin-bottom:.28rem;color:#626bd2}.topbar .brand-title{margin:0;font-size:clamp(1.75rem,2.35vw,2.25rem);line-height:1;letter-spacing:-.055em;font-weight:800;color:#202943;text-shadow:0 1px 0 #fff}.brand-title span{font-weight:720}.brand-title strong{position:relative;display:inline-block;margin-left:.12em;padding:.13em .34em .16em;border-radius:.34em;font-weight:900;line-height:.82;letter-spacing:.015em;color:#fff;background:linear-gradient(115deg,#4e4fd1,#7064e8 48%,#159d99);background-size:200% auto;text-shadow:0 1px 2px rgba(20,25,55,.28);box-shadow:0 5px 15px rgba(76,77,197,.24),inset 0 1px 0 rgba(255,255,255,.3);animation:titleShine 6s linear infinite}.brand-title strong:after{content:"";position:absolute;inset:2px;border:1px solid rgba(255,255,255,.24);border-radius:.27em;pointer-events:none}.top-actions{margin-left:auto;display:flex;align-items:center;gap:.65rem}.live-dot{font-size:.72rem;color:var(--muted);white-space:nowrap}.live-dot i,.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-right:.35rem;box-shadow:0 0 0 4px rgba(22,166,161,.12)}.import-btn,.export-btn{padding:.65rem .85rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:.78rem;font-weight:750;text-decoration:none;cursor:pointer}.import-btn:hover,.export-btn:hover{border-color:#cfd3df;background:#fafaff;transform:translateY(-1px)}.menu{display:none;border:0;background:none;font-size:1.4rem;border-radius:9px}
@keyframes titleShine{to{background-position:220% center}}
@keyframes titlePulse{0%,100%{width:42px;opacity:.72}50%{width:72px;opacity:1}}
.topbar .brand-title>span{color:var(--blue)}
.content{padding:2rem clamp(1.2rem,3vw,2.5rem) 3rem;max-width:1700px;margin:0 auto}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.stats article{position:relative;overflow:hidden;background:rgba(255,255,255,.92);border:1px solid rgba(225,228,238,.9);border-radius:var(--radius);padding:1.15rem;display:flex;align-items:center;gap:.9rem;box-shadow:var(--shadow-sm)}.stats article:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-35px;top:-35px;background:rgba(91,92,226,.06)}.stats article:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stats small,.stats strong{display:block}.stats small{color:var(--muted);font-size:.72rem}.stats strong{font-size:1.4rem;letter-spacing:-.03em;margin-top:.2rem}.stat-icon{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;font-weight:900}.stat-icon.blue{color:var(--blue);background:#eeeeff}.stat-icon.red{color:var(--red);background:#fff0f0}.stat-icon.green{color:var(--teal);background:#e8f8f7}

/* Filtros y tabla */
.toolbar{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.search{background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;padding:0 .9rem;flex:1;max-width:560px;box-shadow:var(--shadow-sm)}.search:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(91,92,226,.09)}.search>span{color:var(--blue);font-size:1.05rem}.search input{border:0;outline:0;padding:.78rem;width:100%;background:transparent}.alert-filter{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.72rem 1rem;font-size:.78rem;font-weight:650;white-space:nowrap}.alert-filter:hover{border-color:#ffcaca}.alert-filter input{accent-color:var(--red)}
.table-card{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th{text-align:left;color:#7a8397;font-size:.64rem;letter-spacing:.1em;padding:.95rem 1rem;background:#fafbfe}td{padding:1rem;border-top:1px solid #edf0f5;font-size:.82rem}tbody tr{transition:background .18s}tbody tr[data-id]:hover{background:#f8f8ff}.person{display:flex;align-items:center;gap:.75rem}.person>span{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#ededff,#dfe0ff);display:grid;place-items:center;font-weight:800;color:var(--blue)}.person strong,.person small{display:block}.person small{color:#8a94a6;margin-top:.15rem}.badge{font-size:.68rem;padding:.34rem .62rem;border-radius:999px}.badge.ok{color:#087f7b;background:#e7f8f7}.badge.alert{color:#c34444;background:#fff0f0}.row-open{border:0;background:transparent;color:var(--blue);font-weight:750;border-radius:8px;padding:.4rem .6rem}.row-open:hover{background:#eeeeff}.pagination{padding:.85rem 1rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem}.pagination button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.38rem .65rem}.pagination button:hover{border-color:var(--blue);color:var(--blue)}.pagination div{display:flex;gap:.7rem;align-items:center}.empty{text-align:center;padding:3rem;color:var(--muted)}

/* Panel de ficha */
.drawer-backdrop{position:fixed;inset:0;background:rgba(19,22,42,.48);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:.25s;z-index:19}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;right:0;top:0;height:100vh;height:100dvh;width:min(720px,94vw);min-width:0;overflow:hidden;background:#fff;z-index:20;box-shadow:-25px 0 70px rgba(21,24,44,.2);transform:translateX(105%);transition:.35s var(--ease);display:flex;flex-direction:column}.drawer.open{transform:none}.drawer>header{padding:1.5rem 1.7rem;border-bottom:1px solid var(--line);display:flex;background:linear-gradient(135deg,#fafaff,#f7fbfb)}.drawer>header>div{min-width:0}.drawer h2{margin:.2rem 0;letter-spacing:-.03em;overflow-wrap:anywhere}.drawer header .muted{margin:.2rem 0;font-size:.78rem}.icon-btn{margin-left:auto;flex:0 0 36px;border:1px solid var(--line);background:#fff;border-radius:10px;width:36px;height:36px;font-size:1.35rem}.icon-btn:hover{background:#fff0f0;color:var(--red);border-color:#ffd0d0;transform:rotate(4deg)}.viewers{padding:.7rem 1.7rem;background:#eef9f8;color:#167c78;font-size:.74rem}.drawer-tabs{padding:0 1.7rem;border-bottom:1px solid var(--line)}.drawer-tabs button{padding:1rem .2rem;margin-right:1.5rem;border:0;background:transparent;color:var(--muted)}.drawer-tabs button.active{color:var(--blue);box-shadow:inset 0 -2px var(--blue);font-weight:750}.record-form,.history{min-width:0;overflow:auto;overflow-x:hidden;flex:1;padding:1.4rem 1.7rem}.record-form fieldset{border:0;padding:0;margin:0 0 1.5rem}.record-form legend{font-weight:800;margin-bottom:1rem}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field.wide{grid-column:1/-1}.field>span{color:#60697c}.field textarea{min-height:90px;resize:vertical}.field input,.field textarea,.field select{color:#30394c;font-weight:600}.field input[readonly],.field textarea[readonly]{background:#f5f6f9;color:#697285}.record-form details{border-top:1px solid var(--line);padding-top:1rem}.record-form summary{font-weight:800;cursor:pointer;margin-bottom:1rem}.record-form summary span{color:var(--muted);font-size:.73rem;font-weight:400}.drawer>footer{padding:1rem 1.7rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:.76rem;background:#fff}.history article{padding:1rem 0;border-bottom:1px solid var(--line)}.history article div{display:flex;justify-content:space-between}.history time{color:var(--muted);font-size:.72rem}.history p{font-size:.78rem;color:var(--muted);line-height:1.5}.record-actions{display:flex;align-items:center;gap:.65rem}.danger-btn{border:1px solid #ffd0d0;background:#fff7f7;color:#d94f4f;border-radius:10px;padding:.76rem .95rem;font-weight:750}.danger-btn:hover{background:#fff0f0;border-color:var(--red)}
.photo-card{display:flex;gap:1.25rem;align-items:center;min-width:0;padding:1rem;margin-bottom:1.5rem;border:1px solid var(--line);border-radius:14px;background:#fafbfe}.photo-card>div:last-child{min-width:0}.photo-preview{width:120px;height:150px;flex:0 0 120px;border-radius:12px;overflow:hidden;background:#e9ecf3;display:grid;place-items:center;color:var(--muted);font-size:.72rem}.photo-preview img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}.photo-preview img:hover{filter:brightness(.94);transform:scale(1.025)}.photo-card strong,.photo-card small{display:block}.photo-card small{color:var(--muted);font-size:.73rem;line-height:1.5;margin-top:.35rem;overflow-wrap:anywhere}.photo-actions{display:flex;gap:.6rem;margin-top:.8rem}.status-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;margin-bottom:1rem;border:1px solid #bce9e6;border-radius:14px;background:#effafa}.status-card.attention{border-color:#ffd0d0;background:#fff4f4}.status-card strong{color:#087f7b}.status-card.attention strong{color:#c34444}.status-card select{min-width:150px;border:1px solid var(--line);border-radius:10px;padding:.68rem .82rem;background:#fff;color:var(--ink);font-weight:700}
.image-viewer{position:fixed;inset:0;z-index:50;padding:1.25rem;background:rgba(10,12,25,.92);backdrop-filter:blur(12px);display:grid;grid-template-rows:auto minmax(0,1fr);opacity:0;visibility:hidden;transform:scale(.985);transition:opacity .22s,visibility .22s,transform .22s var(--ease)}.image-viewer.open{opacity:1;visibility:visible;transform:none}.image-viewer>header{width:min(100%,1400px);margin:0 auto;padding:0 0 1rem;color:#fff;display:flex;align-items:center;justify-content:space-between}.image-viewer>header strong,.image-viewer>header small{display:block}.image-viewer>header small{color:#aeb4ca;font-size:.72rem;margin-top:.2rem}.image-viewer-close{width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.1);color:#fff;font-size:1.5rem}.image-viewer-close:hover{background:var(--red);border-color:var(--red);transform:rotate(4deg)}.image-viewer-stage{width:min(100%,1400px);height:100%;margin:auto;overflow:auto;display:grid;place-items:start center;border-radius:14px;background-image:linear-gradient(45deg,#202338 25%,transparent 25%),linear-gradient(-45deg,#202338 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#202338 75%),linear-gradient(-45deg,transparent 75%,#202338 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.image-viewer-stage img{display:block;width:auto;height:auto;max-width:none;max-height:none;object-fit:none;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.toast{position:fixed;top:1rem;left:50%;transform:translate(-50%,-20px);background:var(--navy);color:#fff;padding:.78rem 1.05rem;border-radius:11px;opacity:0;pointer-events:none;transition:.22s;z-index:99;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#bd4747}
body .workbook-picker{display:none!important}

@media(max-width:1100px){.topbar{height:auto;flex-wrap:wrap}.top-actions{flex-wrap:wrap}.content{padding-top:1.4rem}}
@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:30;transform:translateX(-105%);transition:.28s var(--ease);width:min(276px,88vw);box-shadow:20px 0 50px rgba(21,24,44,.25)}.sidebar.mobile-open{transform:none}.menu{display:block}.topbar{position:relative;padding:1rem;gap:.75rem}.top-actions{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:.2rem}.live-dot{display:none}.content{padding:1rem}.stats{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-card{min-height:100vh;padding:10%}.field-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.toolbar{flex-wrap:wrap}.search{max-width:none;width:100%}.drawer>footer{align-items:flex-end;gap:.75rem}.drawer>footer>#saveState{max-width:170px}.record-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:520px){.topbar>div:nth-child(2){flex:1}.topbar .brand-title{font-size:1.55rem}.main-brand{padding-left:.75rem}.main-brand:after{left:.75rem}.stats{gap:.7rem}.stats article{padding:.9rem}.sheet-controls{width:100%}.sheet-controls select{min-width:0;flex:1}.alert-filter{width:100%}.drawer{width:100vw}.drawer>footer{flex-direction:column}.record-actions{width:100%}.record-actions button{flex:1}.photo-card{align-items:flex-start}.photo-preview{width:90px;height:115px;flex-basis:90px}}
.image-viewer-stage{place-items:center;overflow:auto}.image-viewer-stage img{max-width:min(72vw,900px);max-height:72vh;object-fit:contain}
@media(max-width:600px){.image-viewer-stage img{max-width:86vw;max-height:68vh}}
@media(max-width:520px){
  .drawer>header,.record-form,.history,.drawer>footer{padding-left:1rem;padding-right:1rem}
  .viewers,.drawer-tabs{padding-left:1rem;padding-right:1rem}
  .photo-card{gap:.8rem;padding:.8rem}
  .photo-card .photo-preview{width:82px;height:108px;flex-basis:82px}
  .photo-actions{flex-direction:column;gap:.45rem}
  .photo-actions .import-btn,.photo-actions .danger-btn{width:100%;padding:.65rem .55rem;text-align:center}
  .drawer>footer{padding-bottom:max(1rem,env(safe-area-inset-bottom))}
  .drawer>footer>#saveState{max-width:none;text-align:center}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
