:root{--navy:#071a3d;--navy2:#0e2b52;--gold:#d5a321;--cream:#fff8e7;--bg:#f3f5f8;--ink:#18243a;--muted:#758094;--line:#e3e8ef;--green:#15815b;--red:#c94955}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}.hidden{display:none!important}.center-screen{height:100vh;display:grid;place-content:center;text-align:center;color:#6c7789}.spinner{width:36px;height:36px;border:3px solid #dfe5ec;border-top-color:var(--gold);border-radius:50%;animation:s .8s linear infinite;margin:auto}@keyframes s{to{transform:rotate(360deg)}}.login-view{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-art{background:linear-gradient(125deg,#06162fee,#071a3dbb),url('../public/images/hero-campus.jpg') center/cover;color:white;padding:10%;display:flex;align-items:flex-end}.login-art span{font-size:10px;letter-spacing:.2em;color:#edca71;font-weight:800}.login-art h1{font:52px/1.05 Georgia,serif;margin:18px 0}.login-art h1 i{color:#edc75f}.login-art p{max-width:520px;line-height:1.7;color:#c7d1df}.login-panel{background:#fff;display:grid;place-items:center;padding:35px;position:relative}.back{position:absolute;top:30px;left:35px;color:#657186;font-size:11px;text-decoration:none}.login-card{width:min(390px,100%)}.login-card img{width:76px;height:88px;object-fit:cover;margin:auto}.login-card h2{text-align:center;font:31px Georgia,serif;margin:15px 0 5px;color:var(--navy)}.login-card>p{text-align:center;font-size:12px;color:var(--muted);margin-bottom:27px}.login-card label,.modal label{display:block;font-size:10px;font-weight:700;color:#586478;margin:13px 0}.login-card input,.modal input,.modal select{display:block;width:100%;height:42px;border:1px solid var(--line);border-radius:6px;margin-top:6px;padding:0 11px;outline:none}.login-card input:focus,.modal input:focus,.modal select:focus{border-color:#537fab}.login-card button,.save{width:100%;height:44px;border:0;border-radius:6px;background:var(--navy);color:white;font-weight:800;font-size:11px;margin-top:10px}.login-card small{display:block;text-align:center;color:#9aa3b0;font-size:9px;margin-top:20px}.error{color:var(--red);font-size:10px;margin-top:12px;text-align:center}.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.app aside{position:fixed;width:230px;height:100vh;background:var(--navy);color:#fff;padding:20px 13px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;color:#fff;text-decoration:none;gap:11px;padding:0 6px 20px;border-bottom:1px solid #ffffff18}.side-brand img{width:44px;height:51px;object-fit:cover}.side-brand b,.side-brand small{display:block}.side-brand b{font:17px Georgia,serif}.side-brand small{font-size:9px;letter-spacing:.1em;color:#c6a64d;text-transform:uppercase}.app nav{margin-top:14px;overflow-y:auto;scrollbar-width:thin;padding-right:2px}.app nav button,#logout{width:100%;border:0;background:transparent;color:#aebdd0;text-align:left;padding:12px;border-radius:7px;margin:2px 0;cursor:pointer;font-size:12px}.app nav button.active,.app nav button:hover{color:white;background:#ffffff12;box-shadow:inset 3px 0 var(--gold)}.app nav .chevron{margin-left:auto}.submenu{margin:0 0 5px 16px;padding-left:7px;border-left:1px solid #ffffff20}.submenu button{padding:8px 10px!important;font-size:10px!important;margin:0!important}.submenu button span{margin-left:3px}#logout{margin-top:auto;border-top:1px solid #ffffff18;border-radius:0}.app main{grid-column:2}.app header{height:75px;background:white;border-bottom:1px solid var(--line);padding:0 30px;display:flex;align-items:center;position:sticky;top:0;z-index:10}.app header small{font-size:8px;letter-spacing:.15em;color:#9a7a2a}.app header h2{font:20px Georgia,serif;margin:3px 0}.user{margin-left:auto;display:flex;align-items:center;gap:9px}.user>div{width:35px;height:35px;background:#e7eef6;border-radius:50%;display:grid;place-items:center;color:#173b62;font-size:10px;font-weight:800}.user b,.user small{display:block}.user b{font-size:10px}.user small{font-size:8px;color:#8b96a6;margin-top:3px}#menu{display:none}.app main>section{padding:27px 30px}.welcome{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.welcome h1{font:28px Georgia,serif;color:var(--navy);margin:0 0 7px}.welcome p{font-size:11px;color:var(--muted)}.primary{border:0;background:var(--navy);color:white;padding:11px 16px;border-radius:6px;font-size:10px;font-weight:800;cursor:pointer}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat,.card{background:#fff;border:1px solid var(--line);border-radius:9px}.stat{padding:18px}.stat span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800}.stat strong{font:27px Georgia,serif;display:block;margin-top:10px}.grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin-top:17px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.module-grid .card{min-height:150px}.branch-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.branch-metrics b{font:16px Georgia,serif;color:var(--navy)}.branch-metrics small{display:block;font:7px Arial,sans-serif;color:var(--muted);margin-top:3px}.curriculum-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.curriculum-card{border:1px solid var(--line);background:white;border-radius:10px;padding:24px;text-align:left;cursor:pointer;box-shadow:0 3px 8px #10244308;transition:.2s}.curriculum-card:hover{transform:translateY(-3px);box-shadow:0 15px 30px #10244314;border-color:#d5a321}.curriculum-card>span{width:42px;height:42px;border-radius:9px;background:#fff6dc;color:#8f6910;display:grid;place-items:center;font:23px Georgia,serif}.curriculum-card h3{font:24px Georgia,serif;color:var(--navy);margin:16px 0 5px}.curriculum-card b{font-size:9px;color:#9b7416;text-transform:uppercase;letter-spacing:.08em}.curriculum-card p{font-size:11px;color:var(--muted);margin:12px 0 18px}.curriculum-card em{font-style:normal;font-size:10px;font-weight:800;color:#245789}.subject-class-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:12px}.subject-class-tabs button{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:6px;white-space:nowrap;font-size:9px;font-weight:800;color:#637084}.subject-class-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.catalogue-section{border-bottom:1px solid var(--line);padding:12px 0}.catalogue-section:last-child{border-bottom:0}.catalogue-section h3{font:16px Georgia,serif;color:var(--navy);margin:0 0 10px}.catalogue-section>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.catalogue-section label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:7px;padding:10px;background:#fafbfc}.catalogue-section b,.catalogue-section small{display:block}.catalogue-section b{font-size:10px}.catalogue-section small{font-size:8px;color:var(--muted);margin-top:3px}.subject-selection-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#eef3f8;border:1px solid #d7e0ea;border-radius:7px;padding:10px 12px;margin:12px 0}.subject-selection-tools>b{font-size:10px;color:var(--navy)}.subject-selection-tools>b.warning{color:#b23c48}.subject-selection-tools button{border:0;background:var(--navy);color:#fff;border-radius:5px;padding:7px 9px;font-size:8px;font-weight:800;margin-left:4px}.subject-assignment>label{display:block;font-size:10px;font-weight:800;margin-bottom:18px}.subject-assignment>label select{display:block;width:min(420px,100%);height:42px;border:1px solid var(--line);border-radius:6px;margin-top:7px;padding:0 10px;background:white}.subject-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}.subject-check-grid label{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:11px;background:#fafbfc;cursor:pointer}.subject-check-grid input{accent-color:#071a3d}.subject-check-grid b,.subject-check-grid small{display:block}.subject-check-grid b{font-size:10px}.subject-check-grid small{font-size:8px;color:var(--muted);margin-top:3px}.competency-panel>label{display:block;font-size:10px;font-weight:800}.competency-panel>label select{display:block;width:min(450px,100%);height:42px;border:1px solid var(--line);border-radius:6px;margin-top:7px;padding:0 10px}.competency-average{background:var(--navy);color:#fff;border-left:5px solid var(--gold);padding:13px;margin:16px 0;font:18px Georgia,serif}.competency-groups{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:15px 0}.competency-groups section{border:1px solid var(--line);border-radius:8px;overflow:hidden}.competency-groups h3{background:#f1f4f7;color:var(--navy);padding:10px;margin:0;font:15px Georgia,serif}.competency-groups section>div{padding:7px 12px}.competency-groups label{display:grid;grid-template-columns:1fr 70px 12px;align-items:center;gap:4px;border-bottom:1px solid #edf0f3;padding:7px 0;font-size:9px}.competency-groups input{height:31px;border:1px solid var(--line);border-radius:5px;padding:0 7px}.competency-groups em{font-size:9px;font-style:normal}.class-teacher-select{height:35px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:0 8px;font-size:9px;min-width:180px}.percentage-pill{background:#e7f4ee;color:#147352;padding:5px 9px;border-radius:12px;font-weight:800;font-size:9px}.finance-item-list{margin:14px 0;border:1px solid var(--line);border-radius:7px;max-height:330px;overflow:auto}.finance-item-row{display:grid;grid-template-columns:26px 1fr 95px 95px;gap:8px;align-items:center;padding:9px 11px;border-bottom:1px solid #edf0f3;font-size:9px}.finance-item-row:last-child{border-bottom:0}.finance-item-row strong,.finance-item-row small{display:block}.finance-item-row small{color:var(--muted);margin-top:2px}.finance-item-row input[type=number],.finance-item-row input[type=text]{height:32px;border:1px solid var(--line);border-radius:5px;padding:0 6px;width:100%}.invoice-total{background:#071a3d;color:#fff;padding:12px;text-align:right;border-left:5px solid var(--gold);font-size:11px}.invoice-total b{font:20px Georgia,serif;margin-left:8px}.balance-due{font-weight:800;color:#b43d49}.assignment-student{border-top:1px solid var(--line);margin-top:10px;padding-top:8px;display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center}.assignment-student small,.assignment-student button{grid-column:span 2}.course-filter{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.course-filter button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:6px;padding:9px 12px;font-size:9px;font-weight:800}.computer-att{height:34px;border:1px solid var(--line);border-radius:5px;padding:0 8px}.finance-tabs{display:flex;gap:8px;margin-bottom:14px}.finance-tabs button{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:6px;font-size:9px;font-weight:800;cursor:pointer}.card{padding:19px}.card h3{font:17px Georgia,serif;margin:0 0 15px}.empty{text-align:center;padding:35px;color:var(--muted);font-size:11px}.toolbar{display:flex;gap:10px;margin-bottom:15px}.toolbar input{height:39px;border:1px solid var(--line);border-radius:6px;padding:0 11px;min-width:280px}table{width:100%;border-collapse:collapse;background:white;border:1px solid var(--line)}th{text-align:left;background:#f8fafb;font-size:8px;letter-spacing:.08em;color:#929cab;text-transform:uppercase;padding:11px}td{padding:12px 11px;border-top:1px solid #edf0f4;font-size:10px}.student{display:flex;align-items:center;gap:9px}.student img,.photo{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#e7edf5}.student b,.student small{display:block}.student small{font-size:8px;color:var(--muted);margin-top:3px}.pill{font-size:8px;padding:3px 7px;border-radius:10px;background:#e6f5ef;color:var(--green);font-weight:800}.danger-btn{border:0;background:#fdebec;color:var(--red);padding:6px 8px;border-radius:5px;font-size:8px;cursor:pointer}.result-card{border:1px solid var(--line);background:white;padding:16px;border-radius:8px;margin:10px 0;display:flex;justify-content:space-between;align-items:center}.result-card h4{margin:0 0 5px;font:16px Georgia,serif}.result-card p{margin:0;font-size:9px;color:var(--muted)}.score{font:25px Georgia,serif;color:var(--navy)}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}.shade{position:absolute;inset:0;background:#06162faa}.modal-card{position:relative;background:white;border-radius:10px;padding:27px;width:min(650px,100%);max-height:92vh;overflow:auto}.close{position:absolute;right:17px;top:16px;border:0;border-radius:50%;width:31px;height:31px;font-size:20px}.tag{font-size:8px;letter-spacing:.15em;color:#a27916}.modal h2{font:25px Georgia,serif;margin:5px 0 15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.wide{grid-column:span 2}.modal[hidden],.modal.hidden{display:none!important}.modal p{font-size:10px;color:var(--green)}.upload-preview{width:92px;height:110px;object-fit:cover;border:2px solid #d5a321;border-radius:7px;margin-top:10px;background:#eef2f6}.modal label small{display:block;font-size:8px;color:#8993a3;margin-top:5px;font-weight:400}.notice-box{background:#fff8e7;border:1px solid #ead59d;color:#745914;padding:11px;border-radius:6px;font-size:9px;line-height:1.6;margin:12px 0}.modal select.att,select.att{height:34px;border:1px solid var(--line);border-radius:5px;background:white;padding:0 8px}@media(max-width:800px){.login-view{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh}.app{display:block}.app aside{transform:translateX(-100%);transition:.25s;z-index:30}.app aside.open{transform:none;box-shadow:15px 0 30px #0004}.app main{grid-column:auto}.app header{padding:0 14px}.app main>section{padding:20px 13px}#menu{display:block;border:1px solid var(--line);background:white;width:38px;height:38px;margin-right:10px}.stats{grid-template-columns:1fr 1fr}.grid,.module-grid,.curriculum-grid,.subject-check-grid,.competency-groups,.catalogue-section>div{grid-template-columns:1fr}.subject-selection-tools{align-items:flex-start;flex-direction:column}.subject-selection-tools span{display:flex;flex-wrap:wrap;gap:4px}.welcome{gap:10px}.toolbar input{min-width:0;flex:1}.card{overflow:auto}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.user span{display:none}}
/* V40 assigned-class, reversible record and child-progress controls */
.modal-actions,.report-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px}.modal-actions .save{margin-top:0}.secondary,.small-action,.contact-action{border:1px solid #d7dee8;background:#fff;color:#163d69;border-radius:8px;padding:7px 10px;font-size:10px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-block}.secondary:hover,.small-action:hover,.contact-action:hover{background:#eef5fb}.row-actions{min-width:220px}.row-actions>*{margin:2px}.contact-action{display:block;width:max-content;margin:3px 0;color:#08663f}.contact-action.whatsapp{color:#167c49}.student-record-table td{vertical-align:middle}.result-actions{display:flex;align-items:center;gap:7px}.undo-banner{margin:0 0 14px;padding:12px 15px;border:1px solid #e0bd62;background:#fff8df;border-radius:10px;color:#72500b;font-weight:700}.undo-banner button{margin-left:8px;border:0;border-radius:7px;padding:7px 10px;background:#173f6c;color:#fff;font-weight:800}.child-progress-grid{display:grid;gap:16px}.child-progress-card{background:#fff;border:1px solid #e4e9f0;border-radius:15px;padding:18px;box-shadow:0 8px 25px rgba(18,48,82,.05)}.child-progress-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #edf0f4}.progress-metrics{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px;margin:14px 0}.progress-metrics span{background:#f6f8fb;border:1px solid #e7ebf1;border-radius:10px;padding:10px;color:#6a7585;font-size:9px}.progress-metrics b{display:block;color:#173f6c;font-size:13px;margin-bottom:4px}.teacher-summary{border-left:4px solid #c88f17;background:#fffaf0;padding:10px 12px;border-radius:5px;margin:12px 0}.teacher-summary p,.child-update p{font-size:11px;line-height:1.55;color:#5f6d80;margin:5px 0}.update-list h4{margin:15px 0 8px}.child-update{position:relative;border-top:1px solid #edf0f4;padding:11px 0}.child-update>.pill{margin-right:7px}.child-update small{display:block;color:#8190a3;font-size:9px;margin:5px 0}.proprietor-contact{display:flex;align-items:center;gap:9px;background:#eef8f3;border:1px solid #cfe8dc;padding:9px 12px;border-radius:9px;margin-top:12px}.proprietor-contact b{margin-right:auto}.proprietor-contact a{background:#0b6b43;color:#fff;border-radius:7px;padding:7px 10px;text-decoration:none;font-size:10px;font-weight:800}.report-published{background:#e4f5eb!important;color:#147044!important}.report-draft{background:#fff4d9!important;color:#85600c!important}.report-archived{background:#fde9e9!important;color:#a03d3d!important}.att-note{min-width:190px}.danger-action{background:#a73535!important;color:#fff!important}.danger-action:hover{background:#842828!important}
@media(max-width:900px){.progress-metrics{grid-template-columns:repeat(2,1fr)}.proprietor-contact{align-items:flex-start;flex-wrap:wrap}.row-actions{min-width:160px}.modal-actions{flex-direction:column-reverse}.modal-actions>*{width:100%}}

/* V41 finance, timetable, class reports, book register, uniform stock and admin control */
.generated-number-field{display:flex;gap:6px;align-items:center}.generated-number-field input{flex:1}.generated-number-field button{border:0;border-radius:7px;padding:9px;background:#173f6c;color:#fff;font-size:9px;font-weight:800;white-space:nowrap}.debtor-filters>*{min-width:150px}.debtor-class-card{margin-top:14px;overflow:auto}.debtor-class-card>header,.class-report-card>header{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-bottom:12px;border-bottom:1px solid #e8edf3}.debtor-class-card>header h3,.class-report-card>header h3{margin:0}.debtor-class-card>header small,.class-report-card>header p{font-size:9px;color:#738096}.paid-amount{color:#13734a;font-weight:800}.payment-complete-payment{background:#e3f5ea!important;color:#147044!important}.payment-part-payment{background:#fff3d7!important;color:#86610a!important}.payment-unpaid{background:#fde7e7!important;color:#a13a3a!important}.daily-routine{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 14px}.daily-routine span{background:#173f6c;color:#fff;border-radius:10px;padding:10px;text-align:center;font-size:10px}.daily-routine b{display:block;color:#e7ba4d;font-size:8px;letter-spacing:.08em;margin-bottom:4px}.day-tabs{display:flex;flex-wrap:wrap;gap:5px}.day-tabs button{border:1px solid #d7dee8;background:#fff;color:#173f6c;border-radius:7px;padding:8px 11px;font-size:9px;font-weight:800}.day-tabs button.active{background:#173f6c;color:#fff}.timetable-grid-wrap{overflow-x:auto}.standard-timetable{min-width:1200px;table-layout:fixed}.standard-timetable th:first-child{width:90px}.standard-timetable thead th{vertical-align:top}.standard-timetable thead small{display:block;font-weight:500;margin-top:3px}.standard-timetable thead em{display:block;background:#f5dfaa;color:#664b0d;font-style:normal;font-size:7px;margin:6px -7px -7px;padding:4px}.standard-timetable tbody th{background:#f0f5fa;color:#173f6c}.standard-timetable td{height:88px;vertical-align:top;position:relative}.standard-timetable td>b{display:block;color:#173f6c;font-size:10px}.standard-timetable td>small{line-height:1.5}.standard-timetable td>span{display:flex;gap:3px;margin-top:7px}.standard-timetable td>span button,.empty-period{border:1px solid #d7dee8;background:#fff;border-radius:5px;padding:4px 6px;font-size:8px;color:#173f6c}.standard-timetable .delete-tt{color:#a13a3a}.empty-period{width:100%;height:55px;border-style:dashed}.stock-line{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #edf0f4}.stock-line span small{display:block}.stock-grid{display:grid;gap:7px;max-height:620px;overflow:auto}.uniform-stock-row{display:grid;grid-template-columns:1fr 55px 110px;gap:8px;align-items:center;border:1px solid #e6ebf1;border-radius:9px;padding:9px}.uniform-stock-row small{display:block;color:#7e8b9b}.uniform-stock-row>strong{font-size:20px;text-align:center}.uniform-stock-row>em{font-style:normal;font-size:8px;font-weight:800;text-align:right}.uniform-stock-row.good{border-left:5px solid #23835a}.uniform-stock-row.low{border-left:5px solid #d59b1e;background:#fffaf0}.uniform-stock-row.out{border-left:5px solid #b33d3d;background:#fff4f4}.class-report-card{margin-top:15px;overflow:auto}.class-report-card table{min-width:1100px}.class-report-card a{margin-top:4px}.set-branch-admin,.toggle-staff-account{white-space:nowrap}
@media(max-width:900px){.daily-routine{grid-template-columns:repeat(2,1fr)}.debtor-filters>*{min-width:100%}.uniform-stock-row{grid-template-columns:1fr 45px}.uniform-stock-row>em{grid-column:1/-1;text-align:left}.debtor-class-card>header,.class-report-card>header{align-items:flex-start;flex-direction:column}}

/* V42 independent branches, enquiry admissions, expenses and activity monitor */
.branch-office-card{border-top:5px solid #7890a8}.branch-office-card.head-office{border-top-color:#c9951a;background:linear-gradient(180deg,#fffaf0 0,#fff 110px)}.branch-office-card>p{font-size:10px;line-height:1.7;color:#758094}.branch-office-card .branch-metrics{grid-template-columns:repeat(2,1fr);gap:8px}.branch-office-card>h4{margin:15px 0 7px}.branch-office-card>small{display:block;padding:5px 0;border-top:1px solid #edf0f4}.payment-paid{background:#e4f5eb!important;color:#147044!important}.payment-part-paid{background:#fff3d7!important;color:#86610a!important}.payment-unpaid{background:#fde7e7!important;color:#a13a3a!important}#enquiryTable,#expenseTable,#activityTable{overflow:auto}#enquiryTable table,#expenseTable table,#activityTable table{min-width:1050px}#enquiryTable a{color:#0d6944;font-weight:800}.row-actions .primary{white-space:nowrap}.branch-office-card .branch-metrics b{font-size:14px}.branch-office-card .branch-metrics small{font-size:8px}.activity-operation{font-family:monospace}.expense-submitted{color:#89630e}.expense-approved,.expense-paid{color:#147044}.expense-rejected{color:#a13a3a}

/* V43 security desk, attendance and biometric-ready workflow */
.biometric-safety{margin:0 0 16px;padding:13px 15px;border:1px solid #c9dde9;border-left:5px solid #176482;background:#f2f9fc;border-radius:10px}.biometric-safety b{color:#113e60}.biometric-safety p{font-size:10px;line-height:1.55;color:#506a7b;margin:5px 0}.biometric-safety span{display:inline-block;background:#173f6c;color:#fff;border-radius:20px;padding:5px 9px;font-size:8px;font-weight:800}.security-warning{background:#fde6e6!important;color:#a13636!important}.security-action-row{border-bottom:1px solid #edf0f4;padding:11px 0}.security-action-row>b{display:block;margin:6px 0;color:#173f6c}.security-action-row p{font-size:10px;line-height:1.55;color:#5e6b7e;margin:4px 0}.security-action-row small{display:block;color:#8290a2;margin-bottom:7px}.biometric-lookup-card{margin-top:16px;border-top:4px solid #176482}.biometric-result{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #dce7ee;background:#f7fbfd;border-radius:10px}.biometric-result img{width:58px;height:58px;border-radius:50%;object-fit:cover}.biometric-result b{font-size:14px;color:#173f6c}.biometric-result p,.biometric-result small{font-size:10px;color:#68778a;margin:4px 0}.welcome.compact{padding:0;background:transparent;box-shadow:none}.welcome.compact h3{margin:0}.welcome.compact p{margin:4px 0}.security-desk-table{overflow:auto}

/* V44 phone camera QR scanner */
.phone-scan-notice{margin:0 0 16px;padding:13px 15px;border:1px solid #d6e5ed;border-left:5px solid #176482;background:#f5fbfd;border-radius:10px}.phone-scan-notice b{color:#173f6c}.phone-scan-notice p{font-size:10px;line-height:1.55;color:#5e7080;margin:5px 0}.phone-scanner-card{margin:14px 0;border-top:4px solid #176482}.phone-scanner-layout{display:grid;grid-template-columns:minmax(220px,420px) 1fr;gap:15px;align-items:start}.phone-scanner-layout video{width:100%;min-height:230px;background:#071a3d;border-radius:12px;object-fit:cover}.phone-scanner-layout>div{display:grid;gap:8px}.phone-scanner-layout input{height:40px;border:1px solid #d6dee8;border-radius:8px;padding:0 10px}.scan-result{display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px;border:1px solid #cee2d8;background:#f1faf5;border-radius:10px}.scan-result b{color:#173f6c}.scan-result span{margin-right:auto;color:#667587;font-size:10px}.qr-pass-card{text-align:center;max-width:430px}.qr-pass-card #qrPassCode{width:230px;min-height:230px;margin:15px auto;display:grid;place-items:center}.qr-pass-card #qrPassCode img,.qr-pass-card #qrPassCode canvas{max-width:220px!important;max-height:220px!important}.qr-pass-card code{display:block;word-break:break-all;background:#eef2f6;color:#173f6c;padding:9px;border-radius:8px;font-size:9px}.qr-pass-card p{font-size:10px;color:#68778a}.biometric-result .small-action{margin-top:8px}
@media(max-width:800px){.phone-scanner-layout{grid-template-columns:1fr}.phone-scanner-layout video{min-height:200px}.scan-result{align-items:flex-start;flex-wrap:wrap}.scan-result span{width:100%}}
@media print{body.qr-print *{visibility:hidden!important}body.qr-print #qrPassModal,body.qr-print #qrPassModal *{visibility:visible!important}body.qr-print #qrPassModal{position:absolute;inset:0;background:#fff}.qr-pass-card .modal-actions{display:none!important}}
