*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#fff;color:#111}.app-shell{display:flex;min-height:100vh}.sidebar{width:265px;background:linear-gradient(180deg,#b90010 0%,#98000b 55%,#c40012 100%);color:#fff;position:fixed;top:0;left:0;bottom:0;z-index:10;box-shadow:4px 0 18px rgba(0,0,0,.12);overflow:hidden}.logo-box{height:100px;background:#fff;color:#b0000d;display:flex;align-items:center;gap:12px;padding:12px 14px;border-right:1px solid #eee}.seal{width:58px;height:58px;border:3px solid #b0000d;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;background:#fff;color:#b0000d}.logo-title{font-size:42px;line-height:.85;font-weight:900;letter-spacing:1px}.logo-sub{font-size:14px;font-weight:800}.profile-box{display:flex;align-items:center;gap:14px;padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.15)}.avatar{width:50px;height:50px;border-radius:50%;background:#fff;color:#b0000d;display:flex;align-items:center;justify-content:center;font-size:34px}.role-text{font-size:12px;opacity:.9;margin-top:3px}.online{font-size:13px;margin-top:6px}.online span{display:inline-block;width:10px;height:10px;background:#38c65a;border-radius:50%;margin-right:5px}.side-nav{padding:16px 10px}.side-nav a{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none;padding:14px 18px;margin:6px 0;border-radius:7px;font-size:15px;font-weight:600}.side-nav a:hover,.side-nav a.active{background:rgba(80,0,0,.35)}.side-nav span{width:22px;text-align:center}.building-line{position:absolute;left:0;right:0;bottom:0;height:175px;opacity:.23;border-top:1px solid rgba(255,255,255,.3);background:linear-gradient(180deg,transparent,rgba(255,255,255,.1))}.content-shell{margin-left:265px;min-height:100vh;width:calc(100% - 265px);display:flex;flex-direction:column}.topbar{height:78px;border-bottom:1px solid #e6e6e6;background:#fff;display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:7}.menu-btn{background:transparent;color:#b0000d;border:0;font-size:28px;cursor:pointer}.top-spacer{flex:1}.user-menu{position:relative;display:inline-block}.user-chip{border:0;background:transparent;cursor:pointer;display:flex;align-items:center;gap:8px;font-weight:700;color:#111;padding:9px 12px;border-radius:10px}.user-chip:hover{background:#f6f6f6}.mini-avatar{color:#b0000d;font-size:22px}.chev{font-size:13px}.user-dropdown{display:none;position:absolute;right:0;top:44px;min-width:190px;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.14);z-index:99;overflow:hidden}.user-dropdown.show{display:block}.user-dropdown a{display:block;padding:12px 15px;text-decoration:none;color:#333;font-size:14px}.user-dropdown a:hover{background:#fff1f1;color:#a00008}.logout-link{color:#b40009!important;font-weight:700}.main-content{flex:1;padding:26px 36px;background:linear-gradient(180deg,#fff,#fffafa)}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:18px}.title{font-size:29px;color:#a5000c;margin:0 0 5px;font-weight:900}.subtitle{color:#555;margin:0}.card{background:#fff;border:1px solid #e7e7e7;border-radius:12px;padding:20px;box-shadow:0 8px 24px rgba(0,0,0,.045);margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.stat{border-left:5px solid #bd0010}.stat div{color:#555}.stat b{font-size:28px;color:#a5000c}.stat small{display:block;color:#777;margin-top:5px}.btn{border:0;border-radius:7px;padding:12px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:14px}.btn-red{background:linear-gradient(135deg,#c60013,#98000b);color:#fff;box-shadow:0 4px 10px rgba(170,0,10,.15)}.btn-light{background:#0b72bd;color:#fff;padding:8px 11px}.btn-gray{background:#e9e9e9;color:#222}.btn-danger{background:#b80010;color:#fff;padding:8px 11px}.btn-view{background:#e6e6e6;color:#111;padding:8px 11px}.btn-green{background:#0b8a44;color:#fff;padding:8px 11px}.badge{display:inline-block;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:900}.badge.good{background:#e5fff0;color:#08642f}.badge.bad{background:#ffe6e6;color:#a0000b}.badge.warn{background:#fff4d6;color:#8a5a00}.searchbar{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:20px}.search-form{display:flex;gap:0;margin-left:auto}.search-form .input{border-radius:7px 0 0 7px;min-width:240px}.search-form .btn{border-radius:0 7px 7px 0}.filter-btn{border:1px solid #ddd;background:#fff;color:#111}.input,select,textarea{width:100%;padding:13px 14px;border:1px solid #d7d7d7;border-radius:7px;background:#fff;font-size:14px}label{font-size:13px;font-weight:800;color:#a0000b;margin-bottom:7px;display:block}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 20px}.modal{display:none;position:fixed;z-index:30;left:0;top:0;width:100%;height:100%;overflow:auto;background:rgba(0,0,0,.18);backdrop-filter:blur(2px)}.modal-content{background:#fff;margin:5% auto;padding:26px 28px;border-radius:12px;max-width:690px;width:94%;box-shadow:0 10px 34px rgba(0,0,0,.18)}.modal-content.wide{max-width:1020px}.close{float:right;font-size:34px;line-height:24px;cursor:pointer;color:#a0000b;font-weight:300}.table-wrap{overflow:auto;border:1px solid #e1e1e1;border-radius:8px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:14px 20px;border-bottom:1px solid #e8e8e8;text-align:left;font-size:15px}th{background:#fff;color:#111;font-weight:900;white-space:nowrap}tr:hover{background:#fff8f8}.action-group{display:flex;gap:8px;white-space:nowrap}.pager{display:flex;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.pager a,.pager span{display:inline-block;padding:12px 17px;text-decoration:none;border:1px solid #ddd;color:#a5000c;background:#fff}.pager span{background:#bd0010;color:#fff}.showing{margin-top:14px;color:#222}.chart-box{width:100%;min-height:330px}.office-list{list-style:none;margin:0;padding:0}.office-list li{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #eee}.office-list b{color:#a5000c}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff,#ffe5e5)}.login-card{width:390px;background:#fff;border-radius:18px;padding:30px;box-shadow:0 8px 30px rgba(140,0,0,.18)}.login-logo{display:flex;gap:14px;align-items:center;margin-bottom:24px}.login-logo h2{margin:0;color:#a5000c;font-size:44px;line-height:.9}.login-logo p{margin:0;color:#a5000c;font-weight:800}.alert{padding:12px;border-radius:8px;margin-bottom:12px}.err{background:#ffe0e0;color:#8b0000}.ok{background:#e6ffe6;color:#146414}.foot{display:flex;justify-content:space-between;gap:10px;border-top:2px solid #b50010;padding:17px 36px;color:#111;font-size:14px;background:#fff}@media(max-width:1100px){.grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media(max-width:900px){.sidebar{left:-270px;transition:.25s}.sidebar.show{left:0}.content-shell{margin-left:0;width:100%}.topbar{padding:0 16px}.main-content{padding:18px 14px}.grid,.grid-2,.form-grid{grid-template-columns:1fr}.page-head{display:block}.searchbar{display:block}.search-form{margin:12px 0}.search-form .input{min-width:0}.modal-content{margin:12px auto}.foot{display:block;text-align:center}.logo-title{font-size:36px}th,td{font-size:13px;padding:11px}.action-group{gap:5px}.btn{padding:10px 12px}.user-chip{font-size:13px}.chart-box{min-height:280px}}


.ppe-search-wrap{position:relative;}
.ppe-search-results{display:none;position:absolute;left:0;right:0;top:100%;z-index:9999;background:#fff;border:1px solid #ddd;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.14);max-height:230px;overflow:auto;margin-top:4px;}
.ppe-search-item{padding:10px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid #f1f1f1;}
.ppe-search-item:hover{background:#b00012;color:#fff;}
.ppe-search-item:last-child{border-bottom:0;}


/* Official Provincial Seal Branding */
.brand-seal{width:64px;height:64px;border-radius:50%;object-fit:contain;flex:0 0 64px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12));}
.login-logo.official{justify-content:center;text-align:left;border-bottom:1px solid #f1d6d6;padding-bottom:18px;}
.login-logo.official img{width:86px;height:86px;border-radius:50%;object-fit:contain;flex:0 0 86px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.14));}
.login-logo.official small{display:block;color:#555;font-size:12px;font-weight:700;margin-top:4px;}
@media(max-width:900px){.brand-seal{width:58px;height:58px;flex-basis:58px}.login-card{width:92%;max-width:390px}.login-logo.official img{width:76px;height:76px;flex-basis:76px}}
.serial-section{grid-column:1/-1;margin-top:18px;padding:16px;border:1px solid #f1d1d6;border-radius:16px;background:#fff7f8}
.section-title{margin:0 0 4px;color:#8b0010;font-size:18px}
.serial-row{display:grid;grid-template-columns:42px 1fr 1fr 190px;gap:12px;align-items:end;margin-top:12px;padding:12px;border:1px solid #f0d7db;border-radius:14px;background:#fff}
.serial-count{width:34px;height:34px;border-radius:50%;background:#a00012;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:2px}
@media(max-width:760px){.serial-row{grid-template-columns:1fr}.serial-count{margin-bottom:0}}

/* Matched ARE item search results */
.matched-row td{background:#fff8f8!important;padding:12px 16px!important;border-top:0!important}
.matched-box{border:1px solid #f1c6cc;border-left:4px solid #b40016;border-radius:12px;background:#fff;padding:12px}
.matched-box>b{display:block;color:#9b0010;margin-bottom:8px;font-size:14px}
.matched-table-wrap{overflow-x:auto;margin-bottom:10px}
.mini-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
.mini-table th,.mini-table td{padding:8px 10px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}
.mini-table th{color:#7a0010;background:#fff5f6;font-weight:700}
@media(max-width:768px){.matched-row td{padding:8px!important}.mini-table{min-width:760px}}

#pageLoader{position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.85);z-index:999999;display:none;justify-content:center;align-items:center}
.loader-box{text-align:center}
.spinner{width:60px;height:60px;border:6px solid #f1f1f1;border-top:6px solid #b40000;border-radius:50%;animation:spin 1s linear infinite;margin:auto}
.loader-text{margin-top:15px;color:#b40000;font-weight:bold;font-size:16px}
@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
