@font-face{font-family:Noto Sans Thai;src:url(/NotoSansThai.ttf) format("truetype");font-weight:100 900;font-display:swap}:root{font-family:Noto Sans Thai,system-ui,sans-serif;color:#18333a;background:#f3f7f7;font-synthesis:none;--teal:#087781;--teal-dark:#07515a;--teal-pale:#e7f5f4;--navy:#14364a;--line:#dce8e8;--muted:#688087;--shadow:0 12px 32px rgba(25,66,73,.08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--teal);text-decoration:none}h1,h2,h3,p{margin-top:0}button{cursor:pointer}.loading-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted)}.healthplus-logo{display:inline-flex;align-items:center;gap:9px;color:#18333a;line-height:1}.healthplus-logo-mark{width:42px;height:42px;flex:none;display:inline-block;background-image:url(/logo.png);background-size:200%;background-position:center;background-repeat:no-repeat}.healthplus-logo-copy{display:flex;flex-direction:column;align-items:flex-start;white-space:nowrap}.healthplus-logo-copy>span{font-size:18px;font-weight:700;letter-spacing:-.025em}.healthplus-logo-copy b{color:#1aa3c8;font-style:normal}.healthplus-logo-copy em{color:#ed1570;font-style:normal}.healthplus-logo-copy small{margin-top:4px;color:#2994ba;font-size:8.5px;font-weight:700;letter-spacing:.21em}.healthplus-logo-copy i{margin-top:7px;color:#9fc9d1;font-size:11px;font-style:normal;font-weight:500;letter-spacing:.02em}.healthplus-logo.inverse .healthplus-logo-copy small{color:#8fd2e4}.healthplus-logo.compact{gap:7px}.healthplus-logo.compact .healthplus-logo-mark{width:34px;height:34px}.healthplus-logo.compact .healthplus-logo-copy>span{font-size:14px}.healthplus-logo.compact .healthplus-logo-copy small{font-size:6.5px}.sidebar-brand .healthplus-logo-copy{display:flex;color:inherit;font-size:inherit}.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;color:#9fdadc;margin-bottom:12px}.eyebrow.teal{color:var(--teal)}.public-layout{min-height:100vh;display:grid;grid-template-columns:minmax(410px,1.05fr) minmax(430px,.95fr);background:#f7fbfb}.public-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:100vh;padding:46px clamp(42px,6vw,96px);color:#fff;background:linear-gradient(145deg,#053645fa,#06767ff0),radial-gradient(circle at 70% 30%,#1fb3a1,#0a3c50)}.public-brand:before,.public-brand:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.13);border-radius:50%;width:500px;height:500px;right:-210px;top:90px}.public-brand:after{width:350px;height:350px;right:-135px;top:165px;background:#ffffff09}.brand-lockup{position:relative;z-index:1;display:flex;align-items:center;width:max-content;padding:10px 14px;border-radius:14px;background:#fffffff5;box-shadow:0 10px 28px #00233029}.brand-lockup strong{display:block;font-size:18px}.brand-lockup span{display:block;opacity:.65;font-size:12px}.brand-lockup .healthplus-logo{display:inline-flex;opacity:1;font-size:inherit}.brand-lockup .healthplus-logo-mark{display:inline-block;opacity:1;font-size:inherit}.brand-lockup .healthplus-logo-copy{display:flex;opacity:1;font-size:inherit}.brand-lockup .healthplus-logo-copy>span{display:block;opacity:1;font-size:18px}.brand-lockup .healthplus-logo-copy small{display:block;opacity:1;font-size:8.5px}.brand-lockup .healthplus-logo-copy i{display:block;opacity:1;color:#5f7d85}.brand-copy{position:relative;z-index:1;margin:auto 0;max-width:640px}.brand-copy h1{font-size:clamp(38px,4.4vw,64px);line-height:1.18;letter-spacing:-.04em;margin-bottom:25px}.brand-copy p{max-width:580px;line-height:1.85;font-size:17px;color:#c9e5e5}.trust-row{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:23px;font-size:12px;color:#cae5e7}.trust-row span{display:flex;align-items:center;gap:7px}.trust-row svg{width:17px}.auth-panel{display:flex;justify-content:center;align-items:center;padding:45px;overflow:auto}.auth-card{width:min(100%,470px)}.auth-card h2{font-size:34px;margin-bottom:8px;color:var(--navy)}.auth-card>p,.card-head p,.page-header p{color:var(--muted)}.auth-card>p{margin-bottom:30px}.auth-help{display:flex;justify-content:flex-end;margin:-9px 2px 16px;font-size:13px}.auth-help a,.auth-footer a{color:#087f8c;font-weight:700}.auth-footer{text-align:center;margin-top:22px;font-size:14px;color:var(--muted)}.register-card{width:min(100%,720px)}.public-layout.register{grid-template-columns:minmax(340px,.8fr) minmax(600px,1.2fr)}.success-state{text-align:center;padding:30px 0}.success-state>svg{width:64px;height:64px;color:#23936b}.success-state p{color:var(--muted);max-width:500px;margin:0 auto 25px;line-height:1.7}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>span{font-size:12px;font-weight:600;color:#587078}.field input,.field select,.field textarea,.input-icon{width:100%;border:1px solid #cfdddd;border-radius:10px;background:#fff;color:#17343b;padding:11px 12px;outline:none;transition:.18s ease}.field textarea{min-height:78px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.input-icon:focus-within{border-color:#47a8ab;box-shadow:0 0 0 3px #1b8e951a}.auth-card>.field{margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.input-icon{display:flex;align-items:center;padding:0 11px}.input-icon svg{width:17px;color:#81979b}.input-icon input{border:0;box-shadow:none!important;padding:10px 8px}.field>.password-input{position:relative;display:block;width:100%;font-size:inherit;font-weight:inherit;color:inherit}.password-input input{padding-right:46px}.password-input button{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:8px;display:grid;place-items:center;background:transparent;color:#607c82;cursor:pointer}.password-input button:hover,.password-input button:focus-visible{background:#e8f5f5;color:#087b84;outline:none}.password-input svg{width:18px;height:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border-radius:10px;border:1px solid transparent;font-weight:600;font-size:13px;transition:.18s ease}.button svg{width:17px;height:17px}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button.primary{color:#fff;background:linear-gradient(135deg,#09828b,#076a77);box-shadow:0 6px 15px #076f7829}.button.secondary{background:#fff;color:#22545d;border-color:#d1e1e1}.button.ghost{background:transparent;color:#567078}.button.danger{background:#fff0f0;color:#a13b3b;border-color:#f3cccc}.button.full{width:100%;margin-top:24px}.button.small{min-height:34px;padding:5px 11px;font-size:12px}.button.biometric{color:#075f68;border-color:#9bd8d4;background:linear-gradient(135deg,#e9fbf8,#dff5f3);box-shadow:none}.button.biometric:hover{color:#fff;border-color:#0a858b;background:linear-gradient(135deg,#0a8c91,#08747c)}.install-button{margin-top:12px!important}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 0;color:#8aa0a4;font-size:11px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#dbe7e7}.biometric-note{display:block;margin-top:9px;text-align:center;color:#7b9296;font-size:10px;line-height:1.5}.install-guide p{margin:4px 0 18px;color:var(--muted);line-height:1.65}.install-guide strong{color:var(--navy)}.form-error{background:#fff0f0;color:#a33737;border:1px solid #f4d0d0;border-radius:10px;padding:10px 13px;font-size:13px;margin-bottom:15px}.automatic-code-note{display:flex;align-items:center;gap:11px;min-height:65px;padding:11px 13px;border:1px solid #bfe1df;border-radius:10px;color:#126872;background:#effaf8}.automatic-code-note>svg{width:21px;flex:none}.automatic-code-note span,.automatic-code-note b,.automatic-code-note small{display:block}.automatic-code-note b{font-size:12px}.automatic-code-note small{margin-top:3px;color:#688087;font-size:10px;line-height:1.4}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;color:#d9eaeb;background:linear-gradient(180deg,#113e4a,#0b2935);z-index:30}.sidebar-brand{height:82px;display:flex;align-items:center;gap:11px;padding:0 22px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand strong{color:#fff;font-size:15px}.sidebar-brand span{color:#81a7ab;font-size:11px}.sidebar-brand .logo-mark{width:39px;height:39px;font-size:13px}.sidebar nav{display:flex;flex-direction:column;gap:5px;padding:21px 13px}.sidebar nav a{display:flex;gap:12px;align-items:center;height:44px;padding:0 13px;border-radius:9px;color:#aac4c7;font-size:13px;font-weight:500}.sidebar nav a:hover{color:#fff;background:#ffffff0f}.sidebar nav a.active{color:#fff;background:linear-gradient(90deg,#19aeae40,#19aeae17);box-shadow:inset 3px 0 #32c2b6}.sidebar-note{margin:auto 14px 18px;padding:14px;border-radius:11px;display:flex;gap:10px;align-items:flex-start;color:#9dc6c8;background:#ffffff0d;font-size:11px}.sidebar-note svg{width:18px;flex:none}.sidebar-note small{opacity:.6}.sidebar-close{display:none;margin-left:auto;border:0;color:#fff;background:transparent}.app-main{width:calc(100% - 245px);margin-left:245px}.topbar{height:82px;position:sticky;top:0;z-index:20;display:flex;align-items:center;padding:0 clamp(20px,3.2vw,48px);background:#ffffffed;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid #e1ebeb}.topbar-title strong,.topbar-title span,.user-menu strong,.user-menu span{display:block}.topbar-title strong{font-size:14px}.topbar-title span{color:#8aa0a4;font-size:10px}.user-menu{margin-left:auto;display:flex;gap:10px;align-items:center}.user-menu strong{font-size:12px}.user-menu span{font-size:10px;color:#819599}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--teal-pale);color:var(--teal);font-weight:700}.icon-button,.menu-button{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:9px;color:#627b80;background:transparent}.icon-button:hover,.menu-button:hover{background:#eef5f5}.menu-button{display:none;margin-right:8px}.content{padding:35px clamp(20px,3.2vw,48px) 55px;max-width:1700px;margin:auto}.page-header{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:25px}.page-header h1{margin:0 0 7px;color:var(--navy);font-size:29px;letter-spacing:-.025em}.page-header p{margin:0;font-size:13px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.notice{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px;padding:11px 14px;border:1px solid #bee6d7;background:#eaf8f1;color:#247354;border-radius:10px;font-size:13px}.notice.error{border-color:#f1cbcb;background:#fff0f0;color:#9b3636}.notice.warning{border-color:#efdba8;background:#fff9e8;color:#896615}.notice button{border:0;background:transparent;color:inherit}.filter-bar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:17px;box-shadow:0 5px 20px #20515709}.filter-bar .field{flex:1 1 135px}.filter-bar .field:first-child{flex-grow:1.5}.filter-bar .button{margin-bottom:0}.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:17px}.stat{display:flex;gap:13px;align-items:center;padding:18px;min-height:100px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px #2051570b}.stat>span{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:11px}.stat>span svg{width:21px}.stat small,.stat strong{display:block}.stat small{color:var(--muted);font-size:11px}.stat strong{font-size:26px;color:var(--navy);margin-top:2px}.stat.blue>span{background:#e7f1fb;color:#387cb2}.stat.green>span{background:#e7f7ef;color:#24865d}.stat.orange>span{background:#fff0e7;color:#d77234}.stat.purple>span{background:#f0eafa;color:#8053ad}.stat.teal>span{background:#e3f5f4;color:#087b80}.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr);gap:17px}.card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:17px}.card-head.pad{padding:20px}.card-head h3{margin:0 0 4px;font-size:15px}.card-head p{margin:0;font-size:11px}.card-head>svg{color:#7ca0a4;width:20px}.chart-card{padding:21px}.chart{height:320px;font-size:11px}.customer-summary{padding:0 20px 12px}.customer-summary>div{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid #edf2f2}.customer-summary>div:last-child{border-bottom:0}.customer-summary>div>div{flex:1;min-width:0}.customer-summary strong,.customer-summary small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-summary strong{font-size:12px}.customer-summary small{color:var(--muted);font-size:10px}.customer-summary b{font-size:12px}.customer-code{display:inline-grid;place-items:center;width:max-content;min-width:45px;padding:4px 8px;border-radius:7px;background:var(--teal-pale);color:var(--teal);font-size:11px;font-weight:700}.metric-mode{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:-7px 0 15px;color:var(--muted);font-size:10px}.metric-mode span{margin-right:4px}.metric-mode button{min-height:30px;padding:5px 10px;border:1px solid #d5e3e3;border-radius:8px;color:#496a70;background:#fff;font-size:10px}.metric-mode button.active{border-color:#11858c;color:#fff;background:#087b84}.print-only{display:none}.chart-unit-note{margin:-7px 0 10px;color:#637c81;font-size:10px;text-align:right}.recharts-label-list text{font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.demographic-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:17px}.demographic-kpis article{display:flex;align-items:center;gap:13px;padding:15px 17px}.demographic-kpis article>svg{width:35px;height:35px;padding:8px;border-radius:10px;color:#087b80;background:#e3f5f4}.demographic-kpis small,.demographic-kpis strong,.demographic-kpis span{display:block}.demographic-kpis small{color:var(--muted);font-size:10px}.demographic-kpis strong{margin-top:2px;color:var(--navy);font-size:19px}.demographic-kpis span{margin-top:2px;color:#7c9195;font-size:9px}.demographic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:17px}.selection-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:8px 0 12px;font-size:12px;color:var(--muted)}.selection-bar span{margin-right:auto}.table-card{overflow:hidden}.table-scroll{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{position:sticky;top:0;text-align:left;padding:12px 13px;background:#f3f8f8;color:#587279;font-size:10px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}td{padding:13px;border-top:1px solid #e8efef;vertical-align:middle;min-width:95px}td strong,td small{display:block}td small{margin-top:4px;color:#7d9296;font-size:10px;max-width:260px}.lab-no{color:#0a7580;letter-spacing:.02em}.row-actions{display:flex;gap:3px}.row-actions button{width:31px;height:31px;border:1px solid #dbe7e7;border-radius:8px;display:grid;place-items:center;color:#35666d;background:#fff}.row-actions button:hover{color:#fff;border-color:var(--teal);background:var(--teal)}.row-actions button:disabled{opacity:.38;cursor:not-allowed}.row-actions button:disabled:hover{color:#35666d;border-color:#dbe7e7;background:#fff}.row-actions svg{width:15px}.badge{display:inline-flex;padding:4px 8px;border-radius:99px;background:#eef3f3;color:#60767a;font-size:10px;font-weight:600;white-space:nowrap}.badge.not_detected,.badge.released,.badge.approved,.badge.sent,.badge.active,.badge.open{background:#e5f6ed;color:#247553}.badge.detected,.badge.awaiting_approval,.badge.pending,.badge.queued,.badge.completed_with_errors,.badge.draft{background:#fff0e3;color:#a65d28}.badge.invalid,.badge.inactive,.badge.no_call,.badge.qc_failed,.badge.rejected,.badge.failed,.badge.cancelled{background:#ffebeb;color:#9d3b3b}.badge.closed{background:#e9eef3;color:#496170}.badge.reporter{background:#e8f3ff;color:#3873a6}.badge.approver{background:#f0eafb;color:#7750a0}.badge.completed,.badge.created,.badge.matched{background:#e5f6ed;color:#247553}.empty{display:grid;justify-items:center;gap:5px;padding:42px 20px;color:#91a4a7}.empty p{margin:0;font-size:12px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#071d258c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(100%,560px);max-height:92vh;overflow:auto;padding:22px;background:#fff;border-radius:16px;box-shadow:0 30px 80px #03191f4d}.modal.wide{width:min(100%,880px)}.modal>header{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px}.modal>header h2{margin:0;font-size:19px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:23px;margin-top:20px;border-top:1px solid #e8eeee}.genotype-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.genotype-grid label{display:flex;gap:6px;padding:8px;border:1px solid #dce7e7;border-radius:8px;font-size:12px}.modal-tools{display:flex;align-items:center;gap:10px;margin-bottom:17px;padding:12px;border:1px solid #d8e8e8;border-radius:11px;background:#f7fbfb}.modal-tools small{color:#6e868b;font-size:10px;line-height:1.45}.card-reader-panel>.notice{align-items:flex-start;line-height:1.55}.card-reader-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px}.card-reader-input{min-height:180px!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;font-size:12px!important;line-height:1.5}.genotype-grid.with-ct{grid-template-columns:repeat(2,minmax(0,1fr))}.genotype-grid.with-ct label{align-items:center;justify-content:space-between}.genotype-grid.with-ct label span{display:flex;align-items:center;gap:5px;white-space:nowrap}.genotype-grid.with-ct input[type=number]{width:76px;padding:6px 7px;border:1px solid #cfdddd;border-radius:7px}.genotype-grid.with-ct input[type=number]:disabled{background:#f1f5f5;opacity:.55}.genotype-card{margin-top:17px}.chart.compact{height:250px}.modal-help{color:var(--muted);font-size:13px;line-height:1.65}.modal form>.field{margin-bottom:14px}.password-rule{display:block;color:#71878c;line-height:1.5}.role-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px solid #cfdddd;border-radius:10px;background:#f9fcfc}.role-options label{display:flex;align-items:flex-start;gap:8px;padding:9px;border-radius:8px;background:#fff;border:1px solid #e0eaea;cursor:pointer}.role-options input{width:17px!important;margin-top:2px;accent-color:#087f8c}.role-options span{display:flex;flex-direction:column;gap:1px}.role-options b{font-size:12px;color:#17343b}.role-options small{font-size:10px;color:#71878c}.role-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.passkey-enroll{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:18px 0;padding:15px;border:1px solid #d9e8e8;border-radius:12px;background:#f7fbfb}.passkey-list{display:flex;flex-direction:column;border-top:1px solid #e4eded}.passkey-list>div:not(.empty){display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:13px 2px;border-bottom:1px solid #e8efef}.passkey-list strong,.passkey-list small{display:block}.passkey-list strong{font-size:13px}.passkey-list small{margin-top:3px;color:#7c9195;font-size:10px}.passkey-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:#087b84;background:#e3f5f4}.passkey-icon svg{width:21px}.danger-icon{color:#a34a4a!important}.danger-icon:hover{color:#fff!important;background:#b94747!important}.application-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.application{padding:20px}.application-head{display:flex;justify-content:space-between}.application h3{margin:14px 0;font-size:16px}.application dl{margin:0}.application dl>div{padding:9px 0;border-top:1px solid #edf2f2}.application dt{font-size:10px;color:#82969a}.application dd{margin:3px 0 0;font-size:12px;line-height:1.5}.application-actions{display:flex;justify-content:flex-end;gap:7px;padding-top:17px}.signatory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.signatory{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;padding:20px}.signatory h3{margin:8px 0 2px;font-size:15px}.signatory p{margin:0;font-size:12px;color:#547279}.signatory small{color:#819599;font-size:10px}.sign-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:#e8f3ff;color:#3f7dab}.sign-icon.approver{background:#f0eafb;color:#7854a0}.signature-state{display:flex;flex-direction:column;align-items:flex-end;gap:9px;font-size:10px;color:#9a5656}.signature-state span{display:flex;align-items:center;gap:4px}.signature-state svg{width:15px}.signature-state .ready{color:#287655}.lab-prep-note{display:flex;align-items:flex-start;gap:12px;margin-bottom:17px;padding:14px 16px;border:1px solid #b9e4df;border-radius:13px;background:#ecfbf8;color:#0a6870}.lab-prep-note svg{flex:0 0 auto;margin-top:2px}.lab-prep-note div{display:flex;flex-direction:column;gap:3px}.lab-prep-note strong{font-size:14px}.lab-prep-note span{color:#52777b;font-size:12px;line-height:1.5}.import-panel{padding:20px;margin-bottom:17px}.import-panel form{display:grid;grid-template-columns:1fr 1fr;gap:20px}.upload-zone{position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1.5px dashed #a9caca;border-radius:13px;color:#5f8589;background:#f4fbfa}.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-zone strong{font-size:14px}.upload-zone span{font-size:10px}.upload-zone b{max-width:80%;margin-top:8px;font-size:11px;color:#08737b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-settings{display:flex;flex-direction:column;gap:13px;justify-content:center}.replace-import{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid #d5e5e4;border-radius:10px;color:#284f56;background:#f7fbfb;cursor:pointer}.replace-import input,.checkbox-field input{width:17px!important;height:17px;margin:1px 0 0;accent-color:#087f8c}.replace-import span,.replace-import b,.replace-import small{display:block}.replace-import b{font-size:11px}.replace-import small{margin-top:2px;color:#738b90;font-size:9px;line-height:1.45}.checkbox-field>span:last-child{display:flex;align-items:center;gap:8px;min-height:42px;padding:10px 12px;border:1px solid #cfdddd;border-radius:10px;color:#284f56;background:#fff;font-size:12px;font-weight:500}.audit-action{font-family:ui-monospace,monospace;font-size:10px;color:#356a73}.operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.operations-panel{padding:20px}.operations-alerts{display:flex;flex-direction:column;gap:8px}.operations-alert{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border-radius:9px;font-size:11px}.operations-alert b{overflow-wrap:anywhere}.operations-alert.critical{color:#913d3d;background:#fff0f0}.operations-alert.warning{color:#8b611f;background:#fff8e7}.operations-alert.advisory{color:#36657c;background:#edf7fb}.operations-details{margin:0}.operations-details>div{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-top:1px solid #edf2f2}.operations-details dt{color:#6e858a;font-size:11px}.operations-details dd{margin:0;color:#193941;font-size:12px;font-weight:700;text-align:right}.operations-thresholds{margin:15px 2px 0;color:#778e92;font-size:10px}.event-summary-card{margin-top:17px}.event-summary-card>.card-head{padding:20px 20px 0}.stat.red>span{color:#9d3b3b;background:#ffebeb}.operations-stats .stat strong{font-size:20px;white-space:nowrap}.insight-card{margin-top:17px;padding:20px}.tat-grid,.quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tat-grid>div,.quality-grid>div{border:1px solid #e1ebec;border-radius:11px;padding:14px;background:#f9fcfc}.tat-grid small,.quality-grid span{display:block;color:#688186;font-size:11px}.tat-grid strong,.quality-grid strong{display:block;margin-top:6px;color:#153a43;font-size:20px}.quality-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.quality-grid>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.quality-grid strong{margin:0}.quality-grid .needs-action{border-color:#f0cfaa;background:#fff8ee}.quality-grid .needs-action strong{color:#b76624}.quality-grid .clean strong{color:#258464}.email-stat-grid{margin-bottom:17px}.inline-check{display:flex;align-items:center;gap:8px;white-space:nowrap}.inline-check input,.uat-checklist input{width:auto}.uat-form{margin-bottom:17px;padding:20px}.uat-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;padding:14px;border-radius:10px;background:#f5fafa}.uat-checklist label{display:flex;align-items:center;gap:8px;font-size:12px}.wide-panel{grid-column:1/-1}.readiness-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.readiness-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #edf2f2}.readiness-list strong,.readiness-list small{display:block}.readiness-list small{margin-top:3px;color:#71898e;font-size:10px}@media(max-width:1180px){.stat-grid{grid-template-columns:repeat(3,1fr)}.application-grid,.form-grid.three{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.public-layout,.public-layout.register{grid-template-columns:1fr}.public-brand{min-height:330px;padding:32px}.brand-copy{margin:55px 0 35px}.brand-copy h1{font-size:38px}.trust-row{display:none}.auth-panel{padding:38px 22px}.sidebar{transform:translate(-100%);transition:.25s ease;box-shadow:15px 0 35px #00000026}.sidebar.open{transform:none}.sidebar-close,.menu-button{display:grid}.app-main{width:100%;margin:0}.dashboard-grid,.demographic-grid,.operations-grid,.tat-grid,.quality-grid,.readiness-list,.signatory-grid{grid-template-columns:1fr}.uat-checklist{grid-template-columns:1fr 1fr}}@media(max-width:650px){.content{padding:25px 14px 40px}.topbar{padding:0 13px}.topbar-title{display:none}.user-menu strong{max-width:86px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu{gap:4px}.user-menu .icon-button{width:34px;height:34px}.page-header{align-items:flex-start;flex-direction:column}.page-header h1{font-size:24px}.page-actions,.page-actions .button{width:100%}.stat-grid{grid-template-columns:repeat(2,1fr)}.stat{padding:13px;min-height:88px}.stat:last-child{grid-column:1/-1}.demographic-kpis,.form-grid,.form-grid.three,.role-options,.application-grid{grid-template-columns:1fr}.signatory{grid-template-columns:auto 1fr}.signature-state{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.import-panel form{grid-template-columns:1fr}.filter-bar .field{flex-basis:100%}.filter-bar .button{width:100%}.genotype-grid{grid-template-columns:repeat(2,1fr)}.passkey-enroll{grid-template-columns:1fr}.passkey-enroll .button{width:100%}.selection-bar{align-items:stretch;flex-direction:column}.selection-bar span{margin-right:0}.selection-bar .button{width:100%}.modal-tools{align-items:stretch;flex-direction:column}.modal-tools small{text-align:center}.metric-mode{align-items:stretch;flex-wrap:wrap;justify-content:flex-start}.metric-mode span{width:100%}.metric-mode button{flex:1}}@media print{.sidebar,.topbar,.no-print,.page-actions,.filter-bar,.selection-bar{display:none!important}.print-only{display:block!important}.app-main{width:100%;margin:0}.content{padding:10px}.card,.stat{box-shadow:none;break-inside:avoid}.page-header{margin-bottom:15px}}.notification-root,.notification-button{position:relative}.notification-button>b{position:absolute;top:1px;right:0;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border:2px solid white;border-radius:99px;background:#e55151;color:#fff;font-size:8px;line-height:1}.notification-panel{position:absolute;z-index:80;top:47px;right:-6px;width:min(390px,calc(100vw - 24px));overflow:hidden;border:1px solid #d9e6e6;border-radius:15px;background:#fff;box-shadow:0 22px 65px #082b343d}.notification-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px 13px;border-bottom:1px solid #e6eeee}.notification-panel>header h3,.notification-panel>header small{display:block;margin:0}.notification-panel>header h3{font-size:15px;color:var(--navy)}.notification-panel>header small{margin-top:2px;color:#799095;font-size:10px}.notification-panel>header button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--teal);font-size:10px}.notification-panel>header button svg{width:15px}.push-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:#f0f9f8;border-bottom:1px solid #dcebea}.push-control strong,.push-control small{display:block}.push-control strong{font-size:12px;color:#21515a}.push-control small{margin-top:2px;color:#739095;font-size:9px}.push-control .button{flex:none}.push-message{display:block;padding:8px 16px;border-bottom:1px solid #e7eeee;font-size:10px;line-height:1.45}.push-message.success{color:#287455;background:#effaf4}.push-message.warning{color:#946322;background:#fff8e8}.notification-list{max-height:410px;overflow:auto}.notification-list>button{width:100%;display:grid;grid-template-columns:8px 1fr;gap:9px;padding:13px 16px;border:0;border-bottom:1px solid #edf2f2;text-align:left;color:#28444b;background:#fff}.notification-list>button:hover{background:#f6fbfb}.notification-list>button.unread{background:#f0fafa}.notification-list .notification-dot{width:7px;height:7px;margin-top:6px;border-radius:50%;background:#24a29b}.notification-list>button.read .notification-dot{background:#d6e1e1}.notification-list strong,.notification-list p,.notification-list small{display:block;margin:0}.notification-list strong{font-size:12px}.notification-list p{margin-top:3px;color:#5f777d;font-size:10px;line-height:1.45}.notification-list small{margin-top:5px;color:#93a4a7;font-size:9px}.notification-list .empty{padding:30px 15px}.notification-panel>footer{padding:10px 16px;color:#7c9296;background:#fafcfc;font-size:9px;text-align:center}.notification-toast{position:fixed;z-index:120;top:96px;right:24px;width:min(390px,calc(100vw - 28px));display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:14px;border:1px solid #a9dcda;border-radius:13px;color:#17444b;text-align:left;background:#fff;box-shadow:0 18px 55px #082b343d;animation:notification-in .22s ease-out}.notification-toast>svg:first-child{color:#09838a}.notification-toast>svg:last-child{width:17px;color:#7f9598}.notification-toast strong,.notification-toast span{display:block}.notification-toast strong{font-size:12px}.notification-toast span{margin-top:3px;color:#617a7f;font-size:10px}@keyframes notification-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@media(max-width:650px){.user-menu{gap:2px}.user-identity{display:none}.user-menu .icon-button{width:33px;height:33px}.notification-panel{position:fixed;top:72px;left:10px;right:10px;width:auto}.notification-list{max-height:calc(100vh - 270px)}.notification-toast{top:88px;right:14px}}@media print{.notification-root,.notification-toast{display:none!important}}
