:root{--blue:#0d4fa3;--blue2:#083b7a;--green:#149447;--green2:#0b7737;--bg:#f4f6f9;--line:#dfe5ec;--text:#172333;--muted:#667386;--danger:#dc3545;--warn:#e9a400;--shadow:0 2px 10px #10284612}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text);background:var(--bg);margin:0;font-family:Inter,system-ui,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--blue);color:#fff;z-index:20;flex-direction:column;width:244px;padding:18px 12px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar-head{border-bottom:1px solid #ffffff29;flex-direction:column;align-items:center;margin-bottom:10px;padding:2px 0 18px;font-size:16px;display:flex}.sidebar-head small{opacity:.8;margin-top:3px;font-size:11px}.seal{color:#0d602b;background:#f5c84c;border:3px double #fff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:inline-grid;box-shadow:0 0 0 1px #315b30}.seal-lg{width:67px;height:67px;margin-bottom:10px}.sidebar nav{gap:3px;display:grid}.sidebar nav a{border-radius:6px;align-items:center;gap:11px;padding:10px 12px;font-size:13px;display:flex}.sidebar nav a:hover,.sidebar nav a.active{background:var(--green)}.sidebar nav i{text-align:center;width:17px}.system-card{background:#ffffff12;border-radius:8px;gap:8px;margin-top:auto;padding:12px;display:grid}.system-card>b{font-size:12px}.system-card small{flex-wrap:wrap;gap:4px;font-size:10px;display:flex}.system-card small strong{width:100%;font-size:10px}.system-card small i{background:#15e569;border-radius:50%;width:7px;height:7px}.system-card button{border:0;border-radius:5px;padding:7px;font-size:10px}.logout{text-align:center;background:#d72f3a;border-radius:6px;margin-top:12px;padding:10px}.workspace{flex-direction:column;width:calc(100% - 244px);min-width:0;min-height:100vh;margin-left:244px;display:flex}.topbar{border-bottom:1px solid var(--line);z-index:15;background:#fff;align-items:center;gap:18px;height:68px;padding:0 24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.brand span b{color:var(--blue);font-size:22px}.brand span b span{color:var(--green)}.brand small{color:var(--muted);font-size:10px;display:block}.top-spacer{flex:1}.live-clock{color:#4e5967;gap:9px;font-size:12px;display:flex}.notify{font-size:18px;position:relative}.notify em{background:var(--green);color:#fff;border-radius:10px;padding:2px 5px;font-size:9px;font-style:normal;position:absolute;top:-7px;right:-7px}.user-menu{align-items:center;gap:8px;display:flex}.user-menu small{color:var(--muted);font-size:10px;display:block}.avatar{width:34px;height:34px;color:var(--blue);background:#e5f0ff;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.avatar-lg{width:86px;height:86px;font-size:24px}.menu-toggle{display:none}.icon-btn{background:0 0;border:0;font-size:22px}.content{flex:1;width:100%;max-width:1700px;margin:auto;padding:26px}.page-head{justify-content:space-between;align-items:start;margin-bottom:20px;display:flex}.page-head h1{margin:0 0 5px;font-size:24px}.page-head p{color:var(--muted);margin:0}.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:7px;padding:9px 13px;display:inline-flex}.btn:hover{filter:brightness(.97)}.btn-primary{background:var(--green);color:#fff;border-color:var(--green)}.btn-blue{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-sm{padding:6px 9px;font-size:12px}.stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px;display:grid}.stat,.card{box-shadow:var(--shadow);background:#fff;border:1px solid #e8edf2;border-radius:8px}.stat{align-items:center;gap:13px;padding:17px;display:flex}.stat-icon{width:44px;height:44px;color:var(--blue);background:#e9f2ff;border-radius:50%;place-items:center;font-size:19px;display:grid}.stat.green .stat-icon{color:var(--green);background:#e9f8ef}.stat.yellow .stat-icon{color:var(--warn);background:#fff6dc}.stat strong{font-size:23px;display:block}.stat small{color:var(--muted)}.grid-2{grid-template-columns:2fr 1fr;gap:18px;display:grid}.card{margin-bottom:18px}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:15px 17px;display:flex}.card-head h2{margin:0;font-size:15px}.card-body{padding:17px}.chart-wrap{height:250px}.quick-grid{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.quick{border:1px solid var(--line);text-align:left;color:var(--text);cursor:pointer;background:#fff;border-radius:6px;padding:15px}.quick i{color:var(--green);margin-bottom:8px;font-size:20px;display:block}.toolbar{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:10px;margin-bottom:14px;padding:13px;display:flex}.toolbar .search{flex:1;min-width:240px}.field,input,select,textarea{background:#fff;border:1px solid #ccd5df;border-radius:5px;outline:none;width:100%;padding:9px 10px}input:focus,select:focus,textarea:focus{border-color:#6ba1df;box-shadow:0 0 0 3px #0d4fa314}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;white-space:nowrap;width:100%}.data-table th{color:#536070;text-transform:uppercase;letter-spacing:.03em;text-align:left;border-bottom:1px solid var(--line);background:#f7f9fb;padding:10px 12px;font-size:10px}.data-table td{border-bottom:1px solid #edf0f3;padding:11px 12px;font-size:12px}.data-table tr:hover td{background:#fafcfe}.actions{gap:5px;display:flex}.action{width:29px;height:29px;color:var(--blue);cursor:pointer;background:#edf3fa;border:0;border-radius:5px;place-items:center;display:grid}.action.edit{color:#b67d00;background:#fff4d7}.action.danger{color:var(--danger);background:#fdebed}.status{color:#536070;background:#edf1f5;border-radius:12px;padding:4px 8px;font-size:10px}.status-active,.status-approved,.status-published,.status-paid,.status-released{color:#087433;background:#e7f7ed}.status-pending,.status-unpaid,.status-scheduled{color:#946600;background:#fff5d8}.status-processing{color:#0754a5;background:#e5f0ff}.status-ready-for-release{color:#087b74;background:#e9f7f6}.status-inactive,.status-rejected,.status-cancelled{color:#b6202e;background:#fdebed}.table-foot{color:var(--muted);justify-content:space-between;padding:13px;font-size:11px;display:flex}.pagination{gap:4px;display:flex}.pagination button{border:1px solid var(--line);background:#fff;border-radius:4px;padding:5px 9px}.pagination .active{background:var(--blue);color:#fff}.form-card{padding:18px}.section-title{color:var(--green2);border-bottom:1px solid var(--line);margin:0 0 14px;padding-bottom:8px;font-size:14px}.form-grid{grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:21px;display:grid}.form-group label{margin-bottom:6px;font-size:11px;font-weight:600;display:block}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.checkbox{align-items:center;gap:7px;display:flex}.checkbox input{width:auto}.profile-hero{align-items:center;gap:20px;display:flex}.profile-hero h2{margin:0}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-top:18px;display:flex}.tab{cursor:pointer;background:0 0;border:0;padding:10px 13px}.tab.active{color:var(--green);border-bottom:2px solid var(--green)}.tab-panel{padding-top:16px;display:none}.tab-panel.active{display:block}.details-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.detail small{color:var(--muted);margin-bottom:4px;display:block}.timeline{border-left:2px solid #d5dee8;margin-left:9px;padding-left:24px}.timeline-item{margin-bottom:22px;position:relative}.timeline-item:before{content:"";background:#b5c0cb;border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:3px;left:-31px;box-shadow:0 0 0 2px #b5c0cb}.timeline-item.done:before{background:var(--green);box-shadow:0 0 0 2px var(--green)}.timeline-item b{display:block}.timeline-item small{color:var(--muted)}.id-card{max-width:560px;box-shadow:var(--shadow);background:#fff;border:1px solid #cbd5df}.id-top{background:var(--blue);color:#fff;justify-content:space-between;padding:12px;display:flex}.id-stripe{background:var(--green);color:#fff;text-align:center;padding:4px;font-size:10px}.id-body{gap:14px;min-height:180px;padding:15px;display:flex}.id-photo{color:#9ba7b3;background:#eef2f6;place-items:center;width:105px;height:125px;font-size:34px;display:grid}.id-info{grid-template-columns:95px 1fr;align-content:start;gap:7px;font-size:11px;display:grid}.id-sign{border-top:1px solid;margin-top:20px;padding-top:3px}.modal{z-index:100;background:#081e377a;place-items:center;padding:20px;display:none;position:fixed;inset:0}.modal.show{display:grid}.modal-dialog{background:#fff;border-radius:8px;width:min(520px,100%);box-shadow:0 20px 60px #0003}.modal-head,.modal-foot{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.modal-head h2{margin:0;font-size:17px}.modal-head button{background:0 0;border:0}.modal-body{padding:18px}.modal-foot{border-bottom:0;border-top:1px solid var(--line);justify-content:flex-end;gap:8px}.toast{color:#fff;opacity:0;z-index:200;background:#153a29;border-radius:7px;gap:9px;padding:13px 18px;transition:all .25s;display:flex;position:fixed;bottom:25px;right:25px;transform:translateY(100px)}.toast.show{opacity:1;transform:none}footer{color:var(--muted);padding:12px 26px 22px;font-size:11px}footer span{float:right}.empty{text-align:center;color:var(--muted);padding:40px}.notice{border-left:3px solid var(--blue);background:#eef5fd;margin-bottom:15px;padding:13px}.certificate{text-align:center;background:#fff;width:210mm;min-height:297mm;margin:20px auto;padding:18mm;box-shadow:0 3px 18px #aeb6c0}.certificate .cert-head{justify-content:center;align-items:center;gap:20px;display:flex}.certificate h1{border-bottom:3px double #222;padding-bottom:10px;font-family:Georgia,serif;font-size:30px}.certificate .cert-body{text-align:justify;margin:45px 20px;font-family:Georgia,serif;font-size:17px;line-height:2}.certificate .signature{border-top:1px solid;width:260px;margin:80px 0 0 auto;padding-top:7px}.public-page{background:#fff}.govbar{background:var(--blue2);color:#fff;justify-content:space-between;align-items:center;height:32px;padding:0 4vw;font-size:10px;display:flex}.public-head{align-items:center;gap:30px;padding:20px 5vw;display:flex}.public-title h1{color:var(--blue);margin:0;font-size:30px}.public-title p{color:var(--green);margin:3px 0;font-weight:700}.public-desc{border-left:1px solid var(--line);max-width:500px;color:var(--muted);padding-left:30px}.login-hero{background:linear-gradient(#08274b7a,#08274b7a),linear-gradient(125deg,#b7d4e5,#f4ccaa);place-items:center;min-height:570px;padding:35px;display:grid}.login-grid{grid-template-columns:repeat(2,350px);gap:22px;display:grid}.login-card{background:#fffffff5;border-radius:10px;padding:28px;box-shadow:0 10px 35px #0000002b}.login-card .login-icon{width:58px;height:58px;color:var(--green);background:#e7f7ed;border-radius:50%;place-items:center;margin:auto;font-size:28px;display:grid}.login-card.staff .login-icon{color:var(--blue);background:#e5f0ff}.login-card h2{text-align:center;color:var(--green)}.login-card.staff h2{color:var(--blue)}.login-card label{margin:11px 0 5px;font-size:11px;font-weight:600;display:block}.password-wrap{position:relative}.password-wrap button{background:0 0;border:0;padding:7px;position:absolute;top:4px;right:4px}.login-row{justify-content:space-between;margin:11px 0;font-size:10px;display:flex}.features{grid-template-columns:repeat(4,1fr);gap:20px;padding:25px 6vw;display:grid}.feature{gap:12px;display:flex}.feature i{color:var(--green);font-size:23px}.public-footer{background:var(--blue);color:#fff;justify-content:space-between;padding:17px 6vw;display:flex}.auth-shell{background:linear-gradient(145deg,#edf4fb,#eef8f2);place-items:center;min-height:100vh;padding:30px;display:grid}.auth-card{width:min(900px,100%);box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:28px}@media (width<=1100px){.stats{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.span-3{grid-column:span 2}.login-grid{grid-template-columns:repeat(2,minmax(280px,350px))}}@media (width<=760px){.sidebar{transition:all .2s;transform:translate(-100%)}.sidebar.open{transform:none}.workspace{width:100%;margin-left:0}.menu-toggle{display:block}.topbar{padding:0 13px}.topbar .brand small,.live-clock span:first-of-type,.user-menu span:last-child{display:none}.content{padding:18px 13px}.page-head{gap:10px}.page-head h1{font-size:20px}.stats{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.toolbar>*{flex:140px}.form-grid,.details-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.quick-grid{grid-template-columns:repeat(2,1fr)}.login-grid{grid-template-columns:1fr;width:100%;max-width:380px}.public-head{align-items:flex-start}.public-title h1{font-size:22px}.public-desc{display:none}.features{grid-template-columns:repeat(2,1fr)}.login-hero{padding:22px 13px}.public-footer{text-align:center;display:block}.certificate{width:100%;min-height:auto;margin:0;padding:25px}.grid-mobile{display:block}}@media print{body{background:#fff}.print-tools{display:none!important}.certificate{box-shadow:none;width:210mm;height:297mm;margin:0}.sidebar,.topbar,footer{display:none}.workspace{width:100%;margin:0}.content{padding:0}}.barangay-logo{object-fit:cover;object-position:center;border-radius:50%;display:block}.seal{color:#0000!important;background-image:url(../images/logo.jpg)!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:cover!important;font-size:0!important}.public-page .login-grid{z-index:1;position:relative}.document-choice-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.document-choice .card-body{flex-direction:column;gap:10px;height:100%;display:flex}.document-choice i{color:var(--green);font-size:30px}.document-choice h2{margin:0;font-size:17px}.document-choice p{color:var(--muted);flex:1;line-height:1.55}.document-choice small{color:var(--muted)}.document-choice .btn{justify-content:center;margin-top:8px}.request-confirm{margin:18px 0}.document-preview-page{background:#dce1e6}.print-tools{z-index:5;background:#fff;justify-content:center;align-items:end;gap:10px;padding:12px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #9995}.preview-admin{gap:8px;display:flex}.preview-admin label{font-size:10px;font-weight:700}.preview-admin input{width:135px;padding:6px;display:block}.official-document{color:#171717;background:#fff;width:210mm;min-height:297mm;margin:18px auto;padding:17mm 19mm;font-family:Georgia,serif;position:relative;overflow:hidden;box-shadow:0 3px 18px #8e969f}.official-document .watermark-seal{object-fit:cover;opacity:.045;border-radius:50%;width:125mm;height:125mm;position:absolute;top:90mm;left:43mm}.official-head,.clearance-head{text-align:center;justify-content:center;align-items:center;gap:18px;font-size:15px;line-height:1.45;display:flex;position:relative}.official-logo{object-fit:cover;border-radius:50%;width:30mm;height:30mm}.official-head strong,.clearance-head b{letter-spacing:3px;font-size:22px}.office-script{text-align:center;margin:15mm 0 6mm;font:italic 28px Georgia,serif}.official-document>h1{text-align:center;letter-spacing:1px;font-size:29px;text-decoration:underline double}.official-copy{text-align:justify;margin-top:18mm;font-size:16px;line-height:2;position:relative}.official-copy h2{margin-bottom:14mm;font-size:16px;font-style:italic}.official-copy p{text-indent:12mm;margin:0 0 10mm}.official-signature{text-align:center;border-top:1px solid;width:70mm;margin:20mm 0 0 auto}.official-signature span,.two-signatures span{display:block}.document-signoff{justify-content:space-between;align-items:end;margin-top:22mm;display:flex}.document-signoff .official-signature{margin:0}.validity{font-weight:700;position:absolute;bottom:12mm;left:19mm}.indigency{border-left:16mm solid #9ac329}.clearance{border:2mm solid #5b8f24}.clearance-head{border-bottom:3px solid #397b38;justify-content:flex-start;padding-bottom:5mm}.clearance-head div{text-align:left;line-height:1.25;display:grid}.clearance-head span{letter-spacing:4px;font-size:18px}.clearance-head small{margin-top:5px;font:12px Inter,sans-serif}.clearance>h1{letter-spacing:8px;font-size:38px}.clearance-footer{justify-content:space-between;align-items:end;display:flex;position:absolute;bottom:15mm;left:17mm;right:17mm}.issuance-box{border:2px solid;width:70mm;display:grid}.issuance-box span{border-bottom:1px solid;padding:4px 8px;font:11px Inter,sans-serif}.issuance-box span:last-child{border:0}.oath{padding:15mm 20mm;font-family:Arial,sans-serif;font-size:13px;line-height:1.35}.oath>h1{margin:0;font-size:20px;text-decoration:underline}.oath>h2{text-align:center;margin:3px 0 9mm;font-size:15px}.oath ol{padding-left:10mm}.oath li{margin-bottom:5mm;padding-left:4mm}.two-signatures{text-align:center;grid-template-columns:1fr 1fr;gap:25mm;margin-top:14mm;display:grid}.two-signatures>div,.two-signatures .official-signature{border-top:1px solid;width:auto;margin:0;padding-top:3px}.minor-oath{margin-top:11mm}.guardian-signature{text-align:center;border-top:1px solid;width:75mm;margin:13mm auto 0;font-weight:700}@media (width<=1000px){.document-choice-grid{grid-template-columns:1fr}.official-document{transform-origin:0 0}.preview-admin{flex-wrap:wrap}}.oath .minor-oath{display:block}.document-editor{flex-wrap:wrap;align-items:end;gap:8px;max-width:980px;display:flex}.document-editor label{font-size:10px;font-weight:700}.document-editor input{width:130px;padding:6px;display:block}.jobseeker-cert>h2{text-align:center;letter-spacing:1px;font-size:17px}.jobseeker-cert .two-signatures{position:absolute;bottom:32mm;left:24mm;right:24mm}.document-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=700px){.document-choice-grid{grid-template-columns:1fr}}.group-check-grid,.bulk-resident-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.group-check,.bulk-resident{border:1px solid var(--line);background:#fff;border-radius:7px;align-items:flex-start;padding:12px}.group-check small,.bulk-resident small{color:var(--muted);margin-top:3px;display:block}.group-tags{flex-wrap:wrap;gap:6px;display:flex}.group-tags a{color:#087433;background:#e7f7ed;border-radius:14px;padding:5px 9px;font-size:11px;font-weight:700}.bulk-beneficiary-card{margin-top:15px}.bulk-resident.existing{color:var(--muted);background:#f4f5f6}@media (width<=760px){.group-check-grid,.bulk-resident-list{grid-template-columns:1fr}}.assistance-modal-dialog{width:min(680px,100%)}.compact-assistance-grid{grid-template-columns:1fr 1fr;gap:13px;display:grid}.compact-assistance-grid .span-2{grid-column:span 2}@media (width<=600px){.compact-assistance-grid{grid-template-columns:1fr}.compact-assistance-grid .span-2{grid-column:auto}}.distribution-counters{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.distribution-status{font-size:16px!important}.distribution-workspace{grid-template-columns:1.25fr 1fr}.scanner-viewport{background:#102333;border-radius:10px;place-items:center;height:330px;display:grid;position:relative;overflow:hidden}.scanner-viewport video{object-fit:cover;width:100%;height:100%}.scanner-frame{color:#fff;text-shadow:0 2px 6px #000;border:4px solid #56d58b;border-radius:16px;place-items:center;display:grid;position:absolute;inset:45px}.scanner-frame i{font-size:80px}.scanner-frame b{position:absolute;bottom:14px}.scanner-actions{gap:8px;margin:13px 0;display:flex}.scan-input-row{grid-template-columns:1fr auto;gap:8px;display:grid}.scan-hint{color:var(--muted);font-size:11px}.scan-result{text-align:center;border-radius:0 0 8px 8px;flex-direction:column;justify-content:center;align-items:center;min-height:420px;display:flex}.scan-result>i{font-size:70px}.scan-result h2{font-size:25px}.scan-result h3{margin:8px;font-size:22px}.state-ready{color:var(--blue);background:#eef5fd}.state-success{color:#087433;background:#e7f7ed}.state-duplicate{color:#8b6500;background:#fff5d8}.state-ineligible,.state-invalid,.state-error{color:#b6202e;background:#fdebed}.manual-beneficiary{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:6px;justify-content:space-between;width:100%;margin-top:7px;padding:11px;display:flex}.manual-beneficiary small{color:var(--muted);display:block}@media (width<=1100px){.distribution-counters{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.distribution-counters{grid-template-columns:1fr}.scanner-viewport{height:270px}.scan-input-row{grid-template-columns:1fr}.distribution-workspace{display:block}}.auth-brand{text-align:center}.auth-brand .barangay-logo{margin:0 auto 10px}.registration-consent{border:1px solid var(--line);background:#f7fafc;border-radius:7px;align-items:flex-start;padding:12px}.registration-consent a{color:var(--blue);font-weight:700;text-decoration:underline}.form-error{color:#b6202e;margin:0;font-size:12px;font-weight:600}.legal-page{color:#17283d;background:#eef2f6;margin:0}.legal-document{border-top:6px solid var(--green);background:#fff;border-radius:9px;width:min(900px,100% - 28px);margin:28px auto;padding:34px 44px;box-shadow:0 5px 22px #10243e1f}.legal-document header{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding-bottom:18px;display:flex}.legal-document header b{color:var(--blue);font-size:25px}.legal-document header b span{color:var(--green)}.legal-document header small{color:var(--muted);margin-top:3px;display:block}.legal-document>h1{color:var(--blue);margin-bottom:4px;font-size:32px}.legal-updated{color:var(--muted);font-size:13px}.legal-document section{margin-top:26px}.legal-document h2{color:var(--blue);font-size:19px}.legal-document h3{color:#24517e;margin:17px 0 5px;font-size:15px}.legal-document section p{line-height:1.75}.legal-document section a{color:var(--blue)}.legal-document nav{border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;margin-top:32px;padding-top:22px;display:flex}@media (width<=600px){.legal-document{padding:24px 20px}.legal-document>h1{font-size:27px}}.document-qr{color:#111;text-align:center;justify-items:center;gap:1mm;font:700 9px/1.2 Inter,Arial,sans-serif;display:grid}.qr-container{background:#fff;justify-content:center;align-items:center;width:29mm;height:29mm;padding:2mm;display:flex}.qr-container img,.qr-container canvas{object-fit:contain;display:block;width:100%!important;height:100%!important}.document-qr .qr-reference{overflow-wrap:anywhere;max-width:38mm}.document-qr .qr-caption{letter-spacing:.08em;font-size:8px}
.sms-status-wrap{position:relative}.sms-status{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 11px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.sms-status i{width:8px;height:8px;border-radius:50%;background:#94a3b8}.sms-status-active{color:#166534;background:#f0fdf4}.sms-status-active i{background:#22c55e}.sms-status-checking,.sms-status-processing{color:#1d4ed8;background:#eff6ff}.sms-status-checking i,.sms-status-processing i{background:#3b82f6}.sms-status-warning,.sms-status-busy{color:#92400e;background:#fffbeb}.sms-status-warning i,.sms-status-busy i{background:#f59e0b}.sms-status-failed,.sms-status-disconnected,.sms-status-session-error{color:#991b1b;background:#fef2f2}.sms-status-failed i,.sms-status-disconnected i,.sms-status-session-error i{background:#ef4444}.sms-status-not-configured{color:#475569;background:#f8fafc}.sms-status-panel{position:absolute;z-index:80;right:0;top:calc(100% + 10px);width:285px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(15,23,42,.18)}.sms-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sms-panel-head button{border:0;background:transparent;cursor:pointer}.sms-status-panel>strong{display:block;font-size:13px;margin-bottom:12px}.sms-status-panel dl{display:grid;grid-template-columns:1fr auto;gap:7px;margin:0 0 12px;font-size:12px}.sms-status-panel dt{color:var(--muted)}.sms-status-panel dd{margin:0;font-weight:700}@media(max-width:768px){.sms-status span{display:none}.sms-status-panel{position:fixed;right:12px;top:68px}}
.status-queued,.status-sending,.status-processed{color:#0754a5;background:#e5f0ff}.status-delayed{color:#946600;background:#fff5d8}.status-sent,.status-delivered{color:#087433;background:#e7f7ed}.status-failed{color:#b6202e;background:#fdebed}
.sms-status-processor-stopped{color:#92400e;background:#fffbeb}.sms-status-processor-stopped i{background:#f59e0b}
.sms-status-ready{color:#166534;background:#f0fdf4}.sms-status-ready i{background:#22c55e}.sms-status-processor-delayed{color:#92400e;background:#fffbeb}.sms-status-processor-delayed i{background:#f59e0b}.sms-status-gateway-disconnected,.sms-status-device-offline,.sms-status-sim-unavailable,.sms-status-auth-error{color:#991b1b;background:#fef2f2}.sms-status-gateway-disconnected i,.sms-status-device-offline i,.sms-status-sim-unavailable i,.sms-status-auth-error i{background:#ef4444}.sms-status-unknown{color:#475569;background:#f8fafc}.sms-status-unknown i{background:#94a3b8}
.sms-modal-badge-ready{color:#087433;background:#e7f7ed}.sms-modal-badge-processor-stopped,.sms-modal-badge-processor-delayed{color:#946600;background:#fff5d8}.sms-modal-badge-gateway-disconnected,.sms-modal-badge-device-offline,.sms-modal-badge-sim-unavailable,.sms-modal-badge-auth-error{color:#b6202e;background:#fdebed}.sms-modal-badge-unknown{color:#536070;background:#edf1f5}
.resident-groups{border:1px solid var(--line);border-radius:8px;padding:13px}.resident-groups legend{padding:0 6px;font-size:12px;font-weight:700}.resident-groups>[data-group-search]{display:block;width:100%}.resident-group-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;max-height:220px;margin-top:10px;overflow:auto}.resident-group-options .group-option{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;min-width:0;margin:0;border:1px solid var(--line);border-radius:6px;padding:9px;font-size:12px;line-height:1.2;cursor:pointer}.resident-group-options .group-option input[type="checkbox"]{display:block;flex:0 0 auto;width:16px;height:16px;margin:0;padding:0}.resident-group-options .group-option span{min-width:0;line-height:1.2}.resident-group-options .group-option:has(input:disabled){cursor:not-allowed;color:var(--muted);background:#f7f9fb}.resident-groups .notice{margin:10px 0 0}.auth-card .verification-title{margin-top:24px}@media(max-width:768px){.resident-group-options{grid-template-columns:1fr;gap:10px}.resident-groups{overflow:hidden}}
.change-conflict td{background:#fff5d8!important}.pending-change-banner{border-left:4px solid var(--warn);background:#fff8e5;margin-bottom:18px;padding:14px}.change-request-list{display:grid;gap:10px}.change-request-item{border:1px solid var(--line);border-radius:7px;padding:12px}.change-request-item p{margin:5px 0;color:var(--muted)}
.sms-status-modal .modal-dialog{width:min(720px,100%);max-height:calc(100vh - 40px);overflow:auto}.sms-status-modal .modal-head>div small{color:var(--muted);display:block;margin-top:4px}.sms-modal-summary{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px}.sms-modal-summary>span{font-weight:700}.sms-modal-badge{font-size:12px;font-weight:700;padding:6px 11px}.sms-modal-badge-active{color:#087433;background:#e7f7ed}.sms-modal-badge-checking,.sms-modal-badge-processing{color:#0754a5;background:#e5f0ff}.sms-modal-badge-warning,.sms-modal-badge-busy{color:#946600;background:#fff5d8}.sms-modal-badge-failed,.sms-modal-badge-disconnected,.sms-modal-badge-session-error{color:#b6202e;background:#fdebed}.sms-modal-badge-not-configured{color:#536070;background:#edf1f5}.sms-modal-message{color:var(--muted);margin:14px 0}.sms-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.sms-status-grid>div{border:1px solid var(--line);background:#f8fafc;border-radius:8px;min-width:0;padding:14px}.sms-status-grid small{color:var(--muted);display:block;margin-bottom:6px}.sms-status-grid strong{overflow-wrap:anywhere;display:block}.sms-status-error{margin:14px 0 0}.modal-open{overflow:hidden}@media(max-width:600px){.sms-status-modal{padding:12px}.sms-status-modal .modal-dialog{max-height:calc(100vh - 24px)}.sms-status-grid{grid-template-columns:1fr}.sms-status-modal .modal-foot{flex-wrap:wrap}.sms-status-modal .modal-foot>*{justify-content:center;flex:1 1 100%}}
.email-status{cursor:default}.email-status[data-email-status-toggle]{cursor:pointer}.email-status-enabled{color:#166534;background:#f0fdf4}.email-status-enabled i{background:#22c55e}.email-status-disabled{color:#991b1b;background:#fef2f2}.email-status-disabled i{background:#ef4444}.email-status-not-configured{color:#92400e;background:#fffbeb}.email-status-not-configured i{background:#f59e0b}#emailTestModal .modal-body label{display:block;margin:12px 0 6px;font-size:11px;font-weight:700}#emailTestModal .notice{margin-top:14px}@media(max-width:900px){.topbar{gap:10px}.sms-status{padding:7px 9px;font-size:11px}}@media(max-width:768px){.email-status span{display:none}.email-status{padding:7px}.email-status i{display:block}}

/* Resident announcement feed */
.resident-announcements-page{width:100%}.announcements-toolbar{border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:14px}.announcement-count{color:var(--muted);font-size:12px;font-weight:600}.announcement-search{position:relative;width:min(340px,100%);flex:0 0 auto}.announcement-search i{position:absolute;top:50%;left:12px;color:var(--muted);pointer-events:none;transform:translateY(-50%)}.announcement-search input{height:38px;padding:8px 12px 8px 36px;background:#fff;border:1px solid #ccd5df;border-radius:6px}.announcement-search input:focus{border-color:#6ba1df;box-shadow:0 0 0 3px #0d4fa314}.announcements-list{display:flex;flex-direction:column;gap:16px;width:100%}.announcement-card{width:100%;overflow-wrap:anywhere;background:#fff;border:1px solid #e2e8f0;border-left:4px solid var(--blue);border-radius:10px;padding:20px 22px;box-shadow:0 2px 8px rgba(15,23,42,.06)}.announcement-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.announcement-heading-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.announcement-type{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.announcement-type i{color:var(--green);font-size:15px}.announcement-new-badge{padding:3px 8px;color:#087433;background:#e7f7ed;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.announcement-date{flex:0 0 auto;color:var(--muted);font-size:11px}.announcement-title{margin:14px 0 8px;color:var(--text);font-size:20px;line-height:1.35;font-weight:700}.announcement-body{margin:0 0 17px;color:#435064;font-size:14px;line-height:1.6;white-space:pre-wrap}.announcement-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding-top:12px;border-top:1px solid #eef2f7;color:var(--muted);font-size:11px}.announcement-author,.announcement-time{display:inline-flex;align-items:center;gap:7px}.announcement-author i,.announcement-time i{color:var(--green)}@media (max-width:768px){body[data-resident-url] .topbar{gap:10px}body[data-resident-url] .topbar .user-menu>span,body[data-resident-url] .topbar .user-menu>.avatar{display:none}.announcements-toolbar{align-items:stretch;flex-direction:column;gap:10px}.announcement-search{width:100%}.announcement-card{padding:16px}.announcement-card-header{align-items:flex-start;flex-wrap:wrap}.announcement-title{font-size:18px}.announcement-footer{align-items:flex-start}.announcement-empty{padding:34px 16px}}
