:root{--sidebar-w: 268px;--font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--bg: #f4f6f8;--surface: #ffffff;--surface-2: #f8fafb;--border: #dde3e8;--border-strong: #c3ccd4;--text: #16212b;--text-2: #3d4b57;--muted: #5d6b77;--primary: #0b4f6c;--primary-hover: #093f57;--primary-soft: #e3eff5;--focus: #1f7fb0;--success: #17693f;--success-soft: #e3f3ea;--warning: #8a5a0b;--warning-soft: #fbf0d9;--danger: #a4262c;--danger-soft: #fbe5e6;--info: #155e8a;--info-soft: #e2eff8;--neutral-soft: #eef1f4;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--shadow-lg: 0 10px 30px rgba(16, 24, 40, .16);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:var(--primary)}h1,h2,h3{margin:0;line-height:1.25;color:var(--text)}h1{font-size:22px;font-weight:650}h2{font-size:17px;font-weight:650}h3{font-size:15px;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100%}.brand{display:flex;align-items:center;gap:var(--space-2);color:#fff;font-weight:650;font-size:15px;text-decoration:none;white-space:nowrap}.brand-mark{width:28px;height:28px;border-radius:7px;background:#1b7aa3;display:grid;place-items:center;font-size:15px}.sidebar{background:#0f2533;color:#d5e1e8;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-4);position:sticky;top:0;height:100vh;overflow-y:auto;z-index:40}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2)}.sidebar-close,.topbar-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer}.sidebar-close:hover,.topbar-toggle:hover{background:#ffffff1a}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-2) 0;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#9fb4c0}.sidebar-user{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}.sidebar-user strong{color:#fff;font-size:13px}.sidebar-backdrop{display:none}.acc-nav{display:flex;flex-direction:column;gap:2px}.acc-head{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 var(--space-3);border:none;border-radius:var(--radius-sm);background:none;color:#d5e1e8;font:inherit;font-size:14.5px;font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.acc-head:hover{background:#ffffff12}.acc-head:focus-visible,.acc-item:focus-visible{outline:2px solid #52a8d6;outline-offset:-2px}.acc-title{flex:1;min-width:0}.acc-chevron{display:inline-flex;color:#86a0af;transition:transform .2s ease}.acc-section.open>.acc-head .acc-chevron{transform:rotate(180deg)}.acc-section.current>.acc-head,.acc-link.active{color:#fff}.acc-link.active{background:#1b4d66}.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s ease}.acc-section.open>.acc-panel{grid-template-rows:1fr}.acc-inner{min-height:0;overflow:hidden;list-style:none;margin:0;padding:0;visibility:hidden;transition:visibility 0s linear .22s}.acc-section.open>.acc-panel>.acc-inner{visibility:visible;transition-delay:0s}.acc-item{display:flex;align-items:center;min-height:38px;margin-left:22px;padding:0 var(--space-3) 0 var(--space-4);border-left:1px solid rgba(255,255,255,.14);color:#b6c8d3;font-size:13.5px;text-decoration:none}.acc-item:hover{color:#fff;background:#ffffff0f}.acc-item.active{color:#fff;font-weight:650;background:#1b4d66;border-left-color:#52a8d6}@media(prefers-reduced-motion:reduce){.acc-panel,.acc-chevron{transition:none}}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:none;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:#0f2533;color:#d5e1e8;position:sticky;top:0;z-index:30}.topbar-user{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff}.content{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5);max-width:1400px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-head p{margin:4px 0 0;color:var(--muted)}@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);transform:translate(-100%);transition:transform .2s ease;box-shadow:none;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:0}.sidebar-footer{position:sticky;bottom:0;background:#0f2533;padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));z-index:1}.shell.nav-open .sidebar{transform:none;box-shadow:var(--shadow-lg)}.sidebar-close,.topbar-toggle{display:inline-flex}.topbar{display:flex}.shell.nav-open .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:35;border:none;background:#0f253380}.content{padding:var(--space-4)}}.nav-menu{position:relative;flex:none}.nav-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:max-content;min-width:240px;max-width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 88px);overflow-y:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-1);display:flex;flex-direction:column}.nav-menu-group+.nav-menu-group{border-top:1px solid var(--border);margin-top:var(--space-1);padding-top:var(--space-1)}.nav-menu-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:var(--space-1) var(--space-3)}.nav-menu-item{display:flex;align-items:center;width:100%;min-height:40px;padding:0 var(--space-3);border:none;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.nav-menu-item:hover,.nav-menu-item:focus-visible{background:var(--primary-soft)}.nav-menu-item.active{font-weight:650;color:var(--primary);background:var(--primary-soft)}.hub{display:flex;flex-direction:column;gap:var(--space-5)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}.tab{flex:none;padding:10px var(--space-4);border:none;border-bottom:3px solid transparent;background:none;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.hub-panel{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}@media(max-width:900px){.content{padding:var(--space-4)}.topbar{padding:var(--space-3) var(--space-4);gap:var(--space-3)}}@media(max-width:600px){.topbar-user span{display:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-body{padding:var(--space-4) var(--space-5)}.card-head{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.grid{display:grid;gap:var(--space-4)}.grid-metrics{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.row-between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.muted{color:var(--muted)}.small{font-size:12.5px}.mono{font-family:var(--mono);font-size:12.5px}.right{text-align:right}.metric{padding:var(--space-4)}.metric-label{font-size:12.5px;color:var(--muted)}.metric-value{font-size:26px;font-weight:650;font-variant-numeric:tabular-nums;margin-top:2px}.metric.accent-success .metric-value{color:var(--success)}.metric.accent-danger .metric-value{color:var(--danger)}.metric.accent-warning .metric-value{color:var(--warning)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:550;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-danger{color:var(--danger);border-color:#e3b3b6}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{min-height:30px;padding:0 10px;font-size:13px}.btn-ghost{border-color:transparent;background:transparent}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>span{font-size:12.5px;font-weight:600;color:var(--text-2)}.field small{color:var(--muted)}.input,.select,.textarea{width:100%;min-height:36px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}.textarea{min-height:80px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:3px solid rgba(31,127,176,.35);border-color:var(--focus)}.form-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.checkbox{display:flex;gap:var(--space-2);align-items:flex-start}.checkbox input{margin-top:3px;width:16px;height:16px}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid}.alert-error{background:var(--danger-soft);border-color:#efc2c5;color:var(--danger)}.alert-success{background:var(--success-soft);border-color:#b9dfc9;color:var(--success)}.alert-info{background:var(--info-soft);border-color:#bcd9ec;color:var(--info)}.alert-warning{background:var(--warning-soft);border-color:#ecd49f;color:var(--warning)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:650;letter-spacing:.02em;background:var(--neutral-soft);color:var(--text-2);white-space:nowrap}.badge-success{background:var(--success-soft);color:var(--success)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-info{background:var(--info-soft);color:var(--info)}.empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--text-2);margin-bottom:4px}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:9px var(--space-4);border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:12px;font-weight:650;color:var(--muted);background:var(--surface-2);white-space:nowrap}.table tbody tr:hover{background:#fafcfd}.table .actions{text-align:right;white-space:nowrap}.pager{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);gap:var(--space-3)}.avatar{width:36px;height:44px;border-radius:6px;object-fit:cover;background:var(--neutral-soft);border:1px solid var(--border);flex:none}.avatar-lg{width:120px;height:150px}.avatar-missing{display:grid;place-items:center;font-size:10px;color:var(--muted);text-align:center}dialog.modal{border:none;border-radius:var(--radius-lg);padding:0;width:min(640px,calc(100vw - 32px));box-shadow:var(--shadow-lg)}dialog.modal::backdrop{background:#0f253373}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);max-height:70vh;overflow-y:auto}.modal-foot{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:var(--space-2)}.perm-group{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin:0;display:flex;flex-direction:column;gap:4px}.perm-group legend{font-weight:600;padding:0 4px}.perm-list{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;padding:0;list-style:none}.radio-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.bars{display:flex;flex-direction:column;gap:var(--space-2)}.bar-row{display:grid;grid-template-columns:120px 1fr 56px;gap:var(--space-3);align-items:center;font-size:13px}.bar-track{height:10px;background:var(--neutral-soft);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:var(--primary);border-radius:999px}.progress{height:12px;background:var(--neutral-soft);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--success)}.spark{display:flex;align-items:flex-end;gap:3px;height:90px}.spark>div{flex:1;background:#7fb3cc;border-radius:3px 3px 0 0;min-height:2px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto}.tab{padding:9px 14px;border:none;background:none;font:inherit;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.auth-page{min-height:100%;display:grid;place-items:center;padding:var(--space-5);background:#eaf0f3}.auth-card{width:min(400px,100%)}.desk-result{display:grid;grid-template-columns:120px 1fr;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.desk-result:last-child{border-bottom:none}@media(max-width:600px){.desk-result{grid-template-columns:1fr}}dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:2px var(--space-4);margin:0}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}.student-shell{min-height:100%;display:flex;flex-direction:column}.student-bar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) var(--space-5);background:#0f2533;color:#d5e1e8;position:sticky;top:0;z-index:5}.student-brand{margin-right:auto}.student-user{color:#d5e1e8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.student-content{max-width:1000px;margin:0 auto}.portal-section{scroll-margin-top:72px}.portal-narrow{max-width:460px}.portal-pass{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:var(--space-5);align-items:start}.portal-pass>.alert,.portal-pass>.row,.portal-pass>.card:only-child{grid-column:1 / -1}.portal-pass-card{align-items:center;min-width:0}.portal-pass-card .alert{align-self:stretch}.portal-pass-actions{justify-content:center}.portal-description{margin:0;white-space:pre-wrap}.portal-inline-form{display:flex;gap:var(--space-3);align-items:flex-end}.portal-inline-form .field{flex:1 1 0}.event-list{list-style:none;margin:0;padding:0}.event-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-5);border:none;border-bottom:1px solid var(--border);border-left:3px solid transparent;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.event-list li:last-child .event-row{border-bottom:none}.event-row:hover{background:var(--surface-2)}.event-row.selected{border-left-color:var(--primary);background:var(--primary-soft)}.event-row-main{display:flex;flex-direction:column;min-width:0}.event-row-badges{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.link-button{padding:0;border:none;background:none;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}.break{overflow-wrap:anywhere}dl.kv dd{min-width:0}.photo-pair{display:flex;gap:var(--space-4);flex-wrap:wrap}.photo-pair figure{margin:0;display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start}@media(max-width:760px){.portal-pass{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.student-bar{padding:var(--space-3);gap:var(--space-2)}.student-content{padding:var(--space-3);gap:var(--space-4)}.student-user{display:none}.event-row{padding:var(--space-3) var(--space-4)}.card-body,.card-head{padding-left:var(--space-4);padding-right:var(--space-4)}.modal-body{padding:var(--space-4);max-height:78vh}.page-head .row,.page-head .row>.btn{flex:1 1 auto}}.input-group{display:flex;gap:var(--space-2)}.input-group .input{flex:1 1 auto;min-width:0}.input-addon{flex:none;min-width:58px}.pw-rules{display:flex;flex-direction:column}.pw-rules .ok{color:var(--success)}.pw-rules .bad{color:var(--danger)}@media(pointer:coarse){.btn{min-height:44px}.btn-sm{min-height:38px}.input,.select,.textarea{min-height:44px;font-size:16px}}.guest-fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4) var(--space-4);margin:0;min-width:0}.guest-fieldset legend{padding:0 var(--space-2);font-weight:600;color:var(--text-2)}.portal-side{min-width:0}.guest-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.guest-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.guest-list li:last-child{border-bottom:none}.guest-main{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.guest-badges{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.guest-pass{align-items:center}.report-print-head,.report-total{display:none}@page report{size:A4 portrait;margin:14mm 12mm 16mm}@page report-wide{size:A4 landscape;margin:12mm 10mm 14mm}@media print{body.printing-report{background:#fff!important;color:#000}body.printing-report .sidebar,body.printing-report .sidebar-backdrop,body.printing-report .topbar,body.printing-report .page-head,body.printing-report .alert,body.printing-report .card-head .btn{display:none!important}body.printing-report .shell,body.printing-report .main,body.printing-report .content{display:block!important;margin:0!important;padding:0!important;width:auto!important;max-width:none!important;height:auto!important;overflow:visible!important}.report-print{page:report}.report-print.report-wide{page:report-wide}.report-print .report-print-head{display:block;margin-bottom:8mm;padding-bottom:4mm;border-bottom:2px solid #1f3a5f}.report-print-org{font-size:11pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1f3a5f}.report-print-head h1{margin:2mm 0 3mm;font-size:17pt}.report-print-head dl{display:flex;flex-wrap:wrap;gap:2mm 8mm;margin:0;font-size:9.5pt}.report-print-head dt{display:inline;color:#555}.report-print-head dt:after{content:": "}.report-print-head dd{display:inline;margin:0;font-weight:600}.report-print .card{border:0;box-shadow:none;background:#fff}.report-print .card-head{display:none}.report-print .table-wrap{max-height:none!important;overflow:visible!important;border:0}.report-print .table{width:100%;font-size:9pt;border-collapse:collapse}.report-print .table thead{display:table-header-group}.report-print .table tfoot{display:table-footer-group}.report-print .table th{position:static!important;background:#e8eef6!important;color:#000;border-bottom:1.5px solid #1f3a5f;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-print .table th,.report-print .table td{padding:1.6mm 2mm;border-bottom:.5pt solid #bbb;overflow-wrap:anywhere}.report-print .table tr{break-inside:avoid}.report-print .table tbody tr:nth-child(2n) td{background:#f6f8fb!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-print .badge{border:.5pt solid #555;background:#fff!important;color:#000!important}.report-print .report-total{display:block;margin-top:4mm;padding-top:2mm;border-top:1.5px solid #1f3a5f;font-weight:700;text-align:right}}.portal-identity{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);margin:var(--space-2) 0}.portal-identity dt{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, #5b6b76)}.portal-identity dd{margin:0;font-size:16px;font-weight:600;overflow-wrap:anywhere}.pacs-logo{display:inline-flex;align-items:center;line-height:0}.pacs-logo img{display:block;height:auto;max-width:100%}.pacs-logo-chip{background:#fff;border-radius:10px;padding:6px 12px;box-shadow:0 1px 2px #00000040}.pacs-logo-chip img{width:140px}.pacs-logo-hero{display:flex;justify-content:center;padding:var(--space-2) 0 var(--space-3)}.pacs-logo-hero img{width:min(260px,80%)}.sidebar-logo{display:block;padding:0 var(--space-2)}.student-bar .pacs-logo-chip{margin-right:var(--space-3)}.student-bar .pacs-logo-chip img{width:110px}.topbar .pacs-logo-chip img{width:100px}.topbar .pacs-logo-chip{padding:4px 8px}.pacs-logo.simc-logo img,.student-bar .simc-logo img,.sidebar .simc-logo img,.topbar .simc-logo img{width:auto;height:44px}.pacs-logo-hero.simc-logo img,.auth-page .pacs-logo-hero.simc-logo img{width:auto;height:104px}.topbar .simc-logo img{height:34px}.pacs-logo-chip.simc-logo{padding:4px 8px}.sidebar-brand{display:flex;align-items:center;gap:12px;min-width:0;color:#fff;text-decoration:none;border-radius:var(--radius-sm);transition:opacity .15s ease}.sidebar-brand:hover{opacity:.88}.sidebar-brand:focus-visible,.sidebar-pacs:focus-visible{outline:2px solid #7cc4e4;outline-offset:3px}.sidebar-brand img{display:block;flex:0 0 auto;width:40px;height:auto;background:none}.sidebar-brand-text{font-size:16px;font-weight:650;line-height:1.25;letter-spacing:.005em;color:#fff}.sidebar-pacs{display:block;align-self:flex-start;background:none;padding:0;opacity:.95;transition:opacity .15s ease}.sidebar-pacs:hover{opacity:1}.sidebar-pacs img{display:block;width:130px;height:auto;background:none}.sidebar-top{padding:4px var(--space-2) var(--space-3);border-bottom:1px solid rgba(255,255,255,.1)}.site-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);margin-top:auto}.footer-logo{display:block;height:44px;width:auto;max-width:100%}@media(max-width:600px){.site-footer{padding:var(--space-3);flex-direction:column;gap:var(--space-2);text-align:center}}.auth-page{min-height:100%;display:grid;grid-template-rows:1fr auto;gap:var(--space-4);place-items:center;padding:clamp(16px,5vw,48px);background:radial-gradient(1200px 520px at 50% -10%,rgba(27,122,163,.18),transparent 70%),radial-gradient(900px 480px at 100% 110%,rgba(112,72,150,.12),transparent 70%),linear-gradient(180deg,#f3f7fa,#e6edf2)}.auth-page .auth-card{width:min(440px,100%);border:1px solid rgba(15,37,51,.08);border-radius:18px;background:#fff;box-shadow:0 1px 2px #1018280f,0 12px 24px -8px #10182824,0 32px 64px -24px #10182838;overflow:hidden}.auth-page .auth-card .card-body{padding:clamp(24px,6vw,40px);gap:18px}.auth-page .pacs-logo-hero{padding:4px 0 8px}.auth-page .pacs-logo-hero img{width:min(300px,86%);height:auto;image-rendering:auto;filter:drop-shadow(0 1px 0 rgba(255,255,255,.6))}.auth-heading{text-align:center;padding-bottom:6px;border-bottom:1px solid var(--border)}.auth-heading h1{margin:0;font-size:clamp(22px,5.5vw,26px);font-weight:700;letter-spacing:-.01em;color:#0f2533}.auth-heading p{margin:4px 0 14px;font-size:14px;color:var(--muted)}.auth-page .field{gap:6px}.auth-page .field>span{font-size:13px;color:#35495a}.auth-page .input{min-height:46px;padding:10px 14px;font-size:16px;border-radius:10px;border-color:#c9d6df;background:#fbfcfd;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.auth-page .input:focus{outline:none;background:#fff;border-color:#1b7aa3;box-shadow:0 0 0 4px #1b7aa32e}.auth-page .auth-submit{width:100%;min-height:48px;margin-top:4px;border-radius:10px;font-size:16px;font-weight:650;letter-spacing:.01em;justify-content:center;box-shadow:0 6px 14px -6px #1b7aa3b3}.auth-page .auth-submit:hover:not(:disabled){box-shadow:0 8px 18px -6px #1b7aa3cc}@media(max-width:480px){.auth-page{place-items:start center;padding-top:28px}.auth-page .auth-card{border-radius:16px}}.auth-page{background-color:#0b2a3d;background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1920'%20height='1080'%20viewBox='0%200%201920%201080'%20preserveAspectRatio='xMidYMid%20slice'%3e%3cdefs%3e%3clinearGradient%20id='base'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%230b2a3d'/%3e%3cstop%20offset='0.55'%20stop-color='%2312557a'/%3e%3cstop%20offset='1'%20stop-color='%231b7aa3'/%3e%3c/linearGradient%3e%3cradialGradient%20id='glowA'%20cx='0.18'%20cy='0.2'%20r='0.55'%3e%3cstop%20offset='0'%20stop-color='%234cc3e8'%20stop-opacity='0.55'/%3e%3cstop%20offset='1'%20stop-color='%234cc3e8'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3cradialGradient%20id='glowB'%20cx='0.85'%20cy='0.85'%20r='0.5'%3e%3cstop%20offset='0'%20stop-color='%238a5cc2'%20stop-opacity='0.5'/%3e%3cstop%20offset='1'%20stop-color='%238a5cc2'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3cradialGradient%20id='glowC'%20cx='0.8'%20cy='0.15'%20r='0.4'%3e%3cstop%20offset='0'%20stop-color='%235bb85d'%20stop-opacity='0.4'/%3e%3cstop%20offset='1'%20stop-color='%235bb85d'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3cpattern%20id='dots'%20width='36'%20height='36'%20patternUnits='userSpaceOnUse'%3e%3ccircle%20cx='2'%20cy='2'%20r='1.4'%20fill='%23ffffff'%20fill-opacity='0.12'/%3e%3c/pattern%3e%3c/defs%3e%3crect%20width='1920'%20height='1080'%20fill='url(%23base)'/%3e%3crect%20width='1920'%20height='1080'%20fill='url(%23glowA)'/%3e%3crect%20width='1920'%20height='1080'%20fill='url(%23glowB)'/%3e%3crect%20width='1920'%20height='1080'%20fill='url(%23glowC)'/%3e%3crect%20width='1920'%20height='1080'%20fill='url(%23dots)'/%3e%3c!--%20linked%20rings:%20a%20nod%20to%20the%20PACSLink%20mark%20--%3e%3cg%20fill='none'%20stroke='%23ffffff'%20stroke-width='2'%20stroke-opacity='0.16'%3e%3crect%20x='1180'%20y='120'%20width='360'%20height='360'%20rx='64'%20transform='rotate(45%201360%20300)'/%3e%3crect%20x='1380'%20y='260'%20width='360'%20height='360'%20rx='64'%20transform='rotate(45%201560%20440)'/%3e%3crect%20x='1280'%20y='420'%20width='360'%20height='360'%20rx='64'%20transform='rotate(45%201460%20600)'/%3e%3crect%20x='140'%20y='560'%20width='300'%20height='300'%20rx='56'%20transform='rotate(45%20290%20710)'/%3e%3crect%20x='320'%20y='700'%20width='300'%20height='300'%20rx='56'%20transform='rotate(45%20470%20850)'/%3e%3c/g%3e%3cg%20fill='%23ffffff'%20fill-opacity='0.05'%3e%3ccircle%20cx='260'%20cy='190'%20r='150'/%3e%3ccircle%20cx='1640'%20cy='900'%20r='210'/%3e%3ccircle%20cx='980'%20cy='1010'%20r='120'/%3e%3c/g%3e%3c/svg%3e");background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.auth-page .auth-card{background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.55);box-shadow:0 8px 32px #05142059,inset 0 1px #ffffffb3}.auth-page .pacs-logo-hero img{filter:none;opacity:1}.auth-page .auth-heading{border-bottom-color:#0f25331f}.auth-page .auth-heading h1{color:#0b2233}.auth-page .auth-heading p,.auth-page .field>span{color:#2c4150}.auth-page .field small{color:#4a5f6e}.auth-page .input{background:#fffffff2;border-color:#b9c9d4}@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))){.auth-page .auth-card{background:#fffffff7}}@media(max-width:480px){.auth-page{background-attachment:scroll}}html:has(.auth-page),body:has(.auth-page){overflow:hidden}.auth-page{height:100vh;height:100dvh;min-height:0;overflow:hidden;grid-template-rows:minmax(0,1fr) auto;gap:0;place-items:center;padding:clamp(10px,3vh,32px) clamp(12px,4vw,32px) 0}.auth-page .auth-card{align-self:center;width:min(420px,100%);max-height:100%;overflow-y:auto;border-radius:20px}.auth-page .auth-card .card-body{padding:clamp(16px,3.5vh,36px) clamp(20px,5vw,36px);gap:clamp(10px,1.8vh,18px)}.auth-page .pacs-logo-hero{padding:0}.auth-page .pacs-logo-hero.simc-logo img{height:clamp(56px,12vh,100px)}.auth-page .auth-heading{padding-bottom:0}.auth-page .auth-heading h1{font-size:clamp(20px,3.4vh,26px)}.auth-page .auth-heading p{margin:2px 0 clamp(6px,1.6vh,14px)}.auth-page .input{min-height:clamp(40px,6vh,46px)}.auth-page .site-footer{border:0;margin:0;padding:clamp(6px,1.6vh,14px) 0;gap:10px;flex-direction:row;flex-wrap:nowrap;color:#ffffffd9}.auth-page .site-footer .muted{color:#ffffffbf}.auth-page .footer-logo{height:clamp(26px,5vh,38px);background:#fff;border-radius:8px;padding:3px 6px}@media(max-height:700px){.auth-page .field small{display:none}}.booth{min-height:100%;background:#0d1418;color:#eef3f6;display:flex;flex-direction:column}.booth-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;background:#151f25;border-bottom:1px solid #243139;font-size:14px;flex-wrap:wrap}.booth-bar strong{font-size:16px}.booth-counters{display:flex;gap:20px;font-variant-numeric:tabular-nums}.booth-counters span b{font-size:18px;color:#fff;margin-left:4px}.booth-main{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;padding:20px}@media(max-width:1000px){.booth-main{grid-template-columns:1fr}}.booth-panel{border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:20px;min-height:460px;border:3px solid #2a3740;background:#151f25}.booth-panel.state-idle{justify-content:center;align-items:center;text-align:center}.booth-panel.state-VALID,.booth-panel.state-DONE{background:#0f3322;border-color:#2fae6b}.booth-panel.state-ALREADY_USED,.booth-panel.state-INVALID,.booth-panel.state-WRONG_EVENT,.booth-panel.state-EXPIRED,.booth-panel.state-REVOKED,.booth-panel.state-BLOCKED,.booth-panel.state-OPERATOR_REJECTED,.booth-panel.state-ERROR{background:#3a1215;border-color:#e0474f}.booth-panel.state-MANUAL_REVIEW{background:#3a2b0c;border-color:#e8a82e}.booth-status{font-size:clamp(34px,5vw,58px);font-weight:800;letter-spacing:.02em;line-height:1.05}.booth-message{font-size:20px;color:#d6e0e6}.booth-person{display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:28px;align-items:start}@media(max-width:700px){.booth-person{grid-template-columns:1fr}}.booth-photo{width:100%;aspect-ratio:4 / 5;object-fit:cover;border-radius:12px;background:#0d1418;border:2px solid rgba(255,255,255,.25)}.booth-photo-missing{display:grid;place-items:center;font-size:20px;color:#f3c867;text-align:center;padding:16px}.booth-photo-missing-sub{margin-top:8px;font-size:16px;font-weight:600}.booth-manual{margin-top:10px;padding:8px 12px;border-radius:8px;background:#f3c867;color:#1a1400;font-weight:750;letter-spacing:.02em}.booth-name{font-size:clamp(28px,3.2vw,42px);font-weight:750;line-height:1.15}.booth-roll{font-size:clamp(22px,2.4vw,30px);font-family:var(--mono);margin-top:6px;color:#fff}.booth-meta{font-size:19px;color:#cfd9df;margin-top:14px;display:grid;gap:4px}.booth-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:auto}.booth-btn{min-height:64px;padding:0 28px;border-radius:12px;border:2px solid transparent;font:inherit;font-size:20px;font-weight:750;cursor:pointer;color:#fff}.booth-btn:disabled{opacity:.5;cursor:wait}.booth-btn-confirm{background:#1d8a52;border-color:#3fd08a;flex:1 1 280px}.booth-btn-reject{background:#7d1d22;border-color:#e0474f}.booth-btn-next{background:#26333b;border-color:#3d4d57}.booth-kbd{font-size:13px;font-weight:500;opacity:.85;margin-left:8px}.booth-side{display:flex;flex-direction:column;gap:16px}.booth-card{background:#151f25;border:1px solid #243139;border-radius:14px;padding:16px}.booth-input{width:100%;min-height:52px;font-size:18px;padding:10px 14px;border-radius:10px;border:2px solid #3d4d57;background:#0d1418;color:#fff;font-family:var(--mono)}.booth-input:focus{outline:none;border-color:#52a8d6}.booth-video{width:100%;border-radius:10px;background:#000;aspect-ratio:4 / 3;object-fit:cover;display:block}.booth-btn-scan{background:#1b7aa3;border-color:#52a8d6;min-width:min(320px,100%);font-size:24px;min-height:76px}.booth-hint-small{font-size:15px}.booth-camera{width:min(560px,100%)}.booth-camera-parked{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.scanner{display:flex;flex-direction:column;gap:12px}.scanner-frame{position:relative}.scanner-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:16px;text-align:center;color:#d6e0e6;background:#0d1418bf;border-radius:10px;font-size:16px}.scanner-controls{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.scanner-hint{font-size:16px;color:#cfd9df;flex:1 1 200px;text-align:center}.booth-btn.scanner-btn{min-height:46px;padding:0 18px;font-size:15px}.scanner-problem{display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left;padding:16px;border-radius:12px;border:2px solid #e8a82e;background:#3a2b0c;color:#f6e7c4;font-size:16px;line-height:1.45}.scanner-problem strong{font-size:19px;color:#fff}.booth-panel{position:relative}@media(pointer:coarse){.booth-kbd{display:none}}@media(max-width:700px){.booth-bar{padding:8px 12px;gap:8px;font-size:13px}.booth-counters{gap:12px}.booth-main{padding:12px;gap:12px}.booth-panel{padding:16px;gap:14px;min-height:0;border-radius:14px}.booth-panel.state-idle{min-height:320px}.booth-message,.booth-hint{font-size:17px}.booth-person{gap:14px}.booth-photo{max-width:220px}.booth-meta{font-size:16px;margin-top:8px}.booth-actions{gap:10px}.booth-btn{padding:0 16px;font-size:18px}.booth-actions .booth-btn{flex:1 1 100%}.booth-video{aspect-ratio:1}}.booth-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}.booth-history li{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;background:#0d1418}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.dot-ok{background:#3fd08a}.dot-bad{background:#e0474f}.dot-warn{background:#e8a82e}.booth-setup{max-width:520px;margin:40px auto;width:calc(100% - 32px)}.booth-setup .card{color:var(--text)}.booth-hint{font-size:22px;color:#9fb2bd}.booth-big-icon{font-size:64px;line-height:1}.booth-guest{display:inline-block;margin-top:8px;padding:6px 12px;border-radius:8px;background:#f3c867;color:#1a1400;font-size:18px;font-weight:750;overflow-wrap:anywhere}.booth-details{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;margin:14px 0 0;font-size:19px;color:#cfd9df}.booth-details dt{color:#9fb2bd}.booth-details dd{margin:0;color:#fff}.booth-break{overflow-wrap:anywhere}@media(max-width:700px){.booth-details{font-size:16px;gap:4px 12px}.booth-guest{font-size:16px}}.booth-details .mono{font-size:inherit}.booth-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.booth-badge{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;background:#ffffff29;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:17px;font-weight:750;letter-spacing:.02em}.booth-badge-entered{background:#1d8a52;border-color:#3fd08a}.booth-panel.state-EXIT,.booth-panel.state-PRE_EXIT{background:#0e2a45;border-color:#4aa3e8}.booth-badge-in{background:#1d8a52;border-color:#3fd08a;font-size:20px}.booth-badge-out{background:#1f6fb5;border-color:#7cc0f5;font-size:20px}.pass-page{min-height:100%;padding:24px 16px 48px;background:#e9eef1;display:flex;flex-direction:column;align-items:center;gap:16px}.pass-card{width:min(380px,100%);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 28px #10182824;border:1px solid #d9e1e6;break-inside:avoid;page-break-inside:avoid}.pass-header{background:var(--pass-color, #0b4f6c);color:#fff;padding:16px 20px}.pass-header .org{font-size:12px;opacity:.9;text-transform:uppercase;letter-spacing:.08em}.pass-header .event{font-size:19px;font-weight:700;margin-top:2px}.pass-header .when{font-size:13px;opacity:.92;margin-top:4px}.pass-body{padding:18px 20px;display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:start}.pass-name,.pass-roll,.pass-dept{overflow-wrap:anywhere}.pass-photo{width:96px;height:120px;object-fit:cover;border-radius:8px;border:1px solid #d9e1e6;background:#eef1f4}.pass-name{font-size:18px;font-weight:700;line-height:1.2}.pass-roll{font-family:var(--mono);font-size:15px}.pass-cnic{font-family:var(--mono);font-size:13px;color:#4e5d68;margin-top:2px;overflow-wrap:anywhere}.pass-dept{color:#4e5d68;font-size:13px;margin-top:6px}.pass-qr{padding:4px 20px 16px;display:flex;flex-direction:column;align-items:center;gap:6px}.pass-qr img{width:min(240px,100%);height:auto;aspect-ratio:1;image-rendering:pixelated}.pass-qr-button{padding:0;border:none;background:none;cursor:zoom-in;display:block;max-width:100%;line-height:0}.qr-full{display:block;width:min(100%,62vh);height:auto;aspect-ratio:1;margin:0 auto;background:#fff;image-rendering:pixelated}.qr-full-caption{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.pass-status{text-align:center;padding:10px;font-weight:700;letter-spacing:.04em;border-top:1px solid #e3e9ed}.pass-status.ok{color:#17693f;background:#eaf6ef}.pass-status.bad{color:#a4262c;background:#fbe9ea}.pass-note{max-width:380px;text-align:center;font-size:12.5px;color:#56656f}.pass-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;padding:16px;justify-items:center}@media print{body,.pass-page{background:#fff!important}.no-print,.topbar{display:none!important}.pass-card{box-shadow:none;border:1px solid #999}.pass-page{padding:0}.pass-grid{grid-template-columns:repeat(2,1fr);gap:10mm;padding:0}.pass-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{margin:10mm}}.pass-guest{display:inline-block;margin-top:6px;padding:3px 8px;border-radius:6px;background:#fff4d6;color:#6b4a00;font-size:12.5px;font-weight:700;overflow-wrap:anywhere}.pass-fields{margin:0;display:grid;gap:4px}.pass-fields>div{display:grid;grid-template-columns:44px 1fr;align-items:baseline;gap:8px}.pass-fields dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#5b6b76}.pass-fields dd{margin:0;overflow-wrap:anywhere}
