:root{--red:#b42318;--red-dark:#7f1d1d;--orange:#f97316;--ink:#18181b;--muted:#71717a;--line:#e4e4e7;--soft:#f4f4f5;--paper:#fff;--success:#15803d;--radius:.85rem;--shadow:0 8px 24px rgba(24,24,27,.08);--sidebar:17rem}*{box-sizing:border-box}html{font-size:15px}body{margin:0;background:#f7f7f8;color:var(--ink);font-family:Inter,"Segoe UI",system-ui,sans-serif}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:2000;background:#fff;padding:.75rem 1rem;border-radius:.5rem;color:var(--red)}.skip-link:focus{top:1rem}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(165deg,#861919,#b42318 55%,#e86416 140%);color:#fff;padding:1.25rem;display:flex;flex-direction:column;z-index:1040;box-shadow:4px 0 24px rgba(127,29,29,.16)}.brand{display:flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none;padding:.25rem .5rem 1.4rem}.brand-mark{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:.8rem;background:#fff;color:var(--red);font-size:1.2rem;font-weight:800;box-shadow:0 8px 20px rgba(90,10,10,.2)}.brand strong,.brand small{display:block}.brand small{font-size:.75rem;opacity:.72}.main-nav{display:grid;gap:.25rem}.nav-label{text-transform:uppercase;font-size:.67rem;font-weight:700;letter-spacing:.1em;opacity:.58;margin:1rem .75rem .35rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.72rem .8rem;border-radius:.65rem;color:rgba(255,255,255,.8);text-decoration:none;font-weight:550;transition:.15s ease}.nav-item:hover,.nav-item:focus-visible{color:#fff;background:rgba(255,255,255,.1)}.nav-item.active{color:var(--red-dark);background:#fff;box-shadow:0 8px 18px rgba(87,12,12,.16)}.nav-icon{display:grid;place-items:center;width:1.25rem}.sidebar-footer{margin-top:auto;display:flex;align-items:center;gap:.65rem;padding:.9rem .5rem 0;border-top:1px solid rgba(255,255,255,.16)}.avatar{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:50%;background:rgba(255,255,255,.18);font-weight:700}.user-copy{min-width:0;flex:1}.user-copy strong,.user-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-copy strong{font-size:.8rem}.user-copy small{font-size:.7rem;opacity:.7}.logout-form{margin:0}.icon-button{border:0;background:transparent;color:inherit;width:2.5rem;height:2.5rem;border-radius:.6rem;display:grid;place-items:center}.icon-button:hover,.icon-button:focus-visible{background:rgba(255,255,255,.12);outline:2px solid rgba(255,255,255,.65)}.workspace{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-width:0}.topbar{height:4.5rem;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:0 2rem;position:sticky;top:0;z-index:1020}.environment-pill{display:inline-flex;align-items:center;gap:.45rem;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:999px;padding:.32rem .7rem;font-size:.75rem;font-weight:600}.environment-pill i{width:.45rem;height:.45rem;border-radius:50%;background:#22c55e}#local-clock{color:var(--muted);font-size:.8rem}.mobile-menu{display:none}.page-container{max-width:1480px;margin:0 auto;padding:2rem}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.eyebrow{margin:0 0 .4rem;color:var(--red);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:750}.page-title{font-size:2rem;letter-spacing:-.035em;line-height:1.15;margin:0 0 .4rem;font-weight:720}.page-subtitle{color:var(--muted);margin:0;max-width:65ch}.surface{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(24,24,27,.05)}.surface-header{padding:1.2rem 1.35rem;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem}.surface-title{font-size:1rem;margin:0;font-weight:680}.surface-body{padding:1.35rem}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.metric-card{padding:1.25rem;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:7rem;height:7rem;border-radius:50%;background:linear-gradient(135deg,rgba(208,43,32,.09),rgba(249,115,22,.04));right:-2.5rem;top:-2.8rem}.metric-label{display:flex;align-items:center;justify-content:space-between;color:#52525b;font-size:.8rem;font-weight:600}.metric-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.55rem;background:#fff3ed;color:var(--red)}.metric-value{font-size:2rem;line-height:1;font-weight:750;letter-spacing:-.04em;margin-top:1rem}.metric-note{font-size:.75rem;color:var(--muted);margin-top:.5rem}.btn{border-radius:.6rem;font-weight:600;padding:.58rem .9rem}.btn-primary{background:linear-gradient(135deg,var(--red),#dc4b16);border:0;box-shadow:0 4px 12px rgba(180,35,24,.2)}.btn-primary:hover{background:linear-gradient(135deg,#991b1b,#c2410c)}.btn:focus-visible,.form-control:focus-visible,.form-select:focus-visible{outline:3px solid rgba(249,115,22,.24);outline-offset:2px;box-shadow:none}.btn-soft{background:#fff4ed;color:var(--red);border:1px solid #fed7aa}.form-control,.form-select{min-height:2.75rem;border-color:#d4d4d8;border-radius:.6rem}.form-label{font-size:.82rem;font-weight:650;color:#3f3f46}.app-alert{display:flex;gap:.65rem;align-items:center;border-radius:.75rem;padding:.85rem 1rem;margin-bottom:1.25rem;font-weight:550}.app-alert.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.app-alert.danger{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.status-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .58rem;border-radius:999px;font-size:.73rem;font-weight:650;white-space:nowrap}.status-pill:before{content:"";width:.38rem;height:.38rem;border-radius:50%;background:currentColor}.status-in{background:#ecfdf3;color:#067647}.status-out{background:#fff7ed;color:#c2410c}.status-none{background:var(--soft);color:#52525b}table.dataTable{margin:0!important}table.dataTable thead th{background:#fafafa;color:#52525b;font-size:.72rem;text-transform:uppercase;letter-spacing:.045em;border-bottom:1px solid var(--line)!important;padding:.85rem 1rem!important}table.dataTable tbody td{padding:.9rem 1rem!important;border-bottom:1px solid var(--soft)!important;vertical-align:middle}table.dataTable tbody tr:hover{background:#fffaf7}.dt-container{padding:0 1.25rem 1.25rem}.dt-layout-row:first-child{margin:1rem 0}.dt-search input{border:1px solid #d4d4d8!important;border-radius:.55rem!important;padding:.45rem .65rem!important}.action-menu .dropdown-toggle:after{display:none}.action-menu .btn{width:2.35rem;height:2.35rem;padding:0;font-size:1.15rem}.dropdown-menu{border:1px solid var(--line);border-radius:.7rem;box-shadow:var(--shadow);padding:.4rem;z-index:1100}.dropdown-item{border-radius:.45rem;padding:.52rem .65rem;font-size:.85rem}.dropdown-item:hover{background:#fff3ed;color:var(--red-dark)}.modal-content{border:0;border-radius:1rem;box-shadow:0 24px 56px rgba(24,24,27,.22)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.detail-field{background:#fafafa;border:1px solid var(--soft);border-radius:.65rem;padding:.75rem}.detail-field dt{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.055em;margin-bottom:.3rem}.detail-field dd{margin:0;word-break:break-word}.skeleton-block{height:3rem;border-radius:.5rem;background:linear-gradient(90deg,#f4f4f5,#fafafa,#f4f4f5);background-size:200% 100%;animation:shimmer 1.2s infinite}.skeleton-block.short{width:60%;margin-top:.8rem}.empty-state{text-align:center;padding:3.5rem 1.5rem;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,42%) 1fr;background:#fff}.login-panel{display:flex;align-items:center;justify-content:center;padding:3rem}.login-card{width:100%;max-width:27rem}.login-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,#8a1919,#c52b1d 52%,#f97316);color:#fff;padding:5rem;display:flex;align-items:flex-end}.login-visual:before{content:"";position:absolute;width:36rem;height:36rem;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-13rem;top:-12rem}.login-copy{position:relative;z-index:1;max-width:35rem}.login-copy h2{font-size:3rem;line-height:1.04;letter-spacing:-.045em}.login-copy p{font-size:1.05rem;line-height:1.65;color:rgba(255,255,255,.8)}.badge-preview{width:105mm;min-height:148mm;margin:1rem auto;background:#fff;border-radius:.75rem;box-shadow:0 16px 40px rgba(24,24,27,.16);padding:14mm;display:flex;flex-direction:column;justify-content:center;text-align:center}.badge-name{font-size:2rem;font-weight:800;text-transform:uppercase}.badge-company{font-size:1rem;color:#52525b;margin-top:.65rem}.badge-event{margin-top:1.5rem;color:var(--red);font-weight:700}.print-toolbar{display:flex;justify-content:center;gap:.75rem;margin:1rem}.template-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--soft)}.template-icon{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:.75rem;background:#fff3ed;color:var(--red);font-weight:800}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.settings-grid{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-visual{display:none}}@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0;width:100%}.mobile-menu{display:grid;margin-right:auto}.page-container{padding:1.25rem}.topbar{padding:0 1.25rem}.page-header{align-items:flex-start;flex-direction:column}.detail-grid{grid-template-columns:1fr}}@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.page-title{font-size:1.65rem}.login-panel{padding:1.5rem}}@media print{.sidebar,.topbar,.print-toolbar{display:none!important}.workspace{margin:0;width:100%}.page-container{padding:0}.badge-preview{box-shadow:none;margin:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
