:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:#172033;background:#f5f7fb}*{box-sizing:border-box}body{margin:0;background:#f5f7fb}button,input,select,textarea{font:inherit}button{border:1px solid #d0d5dd;background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:#2563eb;color:#fff;border-color:#2563eb}.linkBtn{border:0;color:#2563eb;background:transparent;padding:6px}.dangerBtn{color:#b91c1c;border-color:#fecaca;background:#fff}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:11px 12px;background:#fff}textarea{min-height:92px;resize:vertical}label{display:block;margin:12px 0;color:#344054;font-weight:650}h1,h2,h3{margin:0 0 10px}p{color:#667085;line-height:1.55}.centerPage{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:#fff;border:1px solid #e4e8f0;border-radius:18px;box-shadow:0 8px 28px #1118270f;padding:20px}.login,.setup{width:min(460px,100%)}.loginLinks{display:flex;justify-content:space-between;margin-top:12px}.successBox{background:#ecfdf3;color:#027a48;border:1px solid #abefc6;border-radius:12px;padding:10px;margin:10px 0}.errorBox{background:#fff1f2;color:#be123c;border:1px solid #fecdd3;border-radius:12px;padding:10px;margin:10px 0}.offline{background:#fffbeb;color:#92400e;border-bottom:1px solid #fde68a;padding:10px 20px}.toast{position:fixed;right:20px;top:20px;z-index:60;display:flex;gap:10px;align-items:center;border-radius:16px;padding:12px 14px;border:1px solid #e4e8f0;background:#fff;box-shadow:0 14px 40px #00000024}.toast.success{border-color:#abefc6}.toast.error{border-color:#fecdd3}.toast.info{border-color:#bfdbfe}.toast button{padding:4px;border:0}.app{display:flex;min-height:100vh}.sidebar{width:280px;background:#fff;border-right:1px solid #e4e8f0;padding:16px;position:sticky;top:0;height:100vh;overflow:auto;z-index:30}.brand{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.brand h2{font-size:20px}.brand button{display:none;width:auto}.sidebar button{width:100%;justify-content:flex-start;margin:3px 0;border:0;color:#344054}.sidebar button.active{background:#eff6ff;color:#1d4ed8;font-weight:750}main{flex:1;min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid #e4e8f0;display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:20}.topbar div{flex:1;min-width:0}.topbar h2{margin:0;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar span{font-size:13px;color:#667085}.topbar select{max-width:260px}.menu{display:none}.page{padding:24px}.sectionHead{display:flex;justify-content:space-between;align-items:center;gap:12px}.cards{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px;margin:18px 0}.stat{text-align:left;display:block}.stat span{color:#667085;font-size:14px}.stat b{display:block;font-size:26px;margin-top:8px;color:#111827}.stat.danger b{color:#b91c1c}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef2f7;padding:10px 0}.row:last-child{border-bottom:0}.row span{color:#667085;text-align:right}.attention b{font-size:14px}.badge{font-size:12px;border-radius:999px;padding:4px 8px;background:#eef2ff;color:#3730a3;display:inline-block}.badge.critical,.badge.high,.badge.expired,.badge.rejected,.badge.urgent{background:#fee2e2;color:#b91c1c}.badge.medium,.badge.pending,.badge.pending_review,.badge.expiring_soon,.badge.needs_update{background:#fef3c7;color:#92400e}.badge.low,.badge.approved,.badge.paid,.badge.active{background:#dcfce7;color:#166534}.badge.missing,.badge.inactive{background:#f1f5f9;color:#475569}.search{margin:14px 0}.tableWrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;min-width:820px}th,td{text-align:left;padding:13px;border-bottom:1px solid #eef2f7;font-size:14px;vertical-align:middle}th{color:#475467;background:#f8fafc;text-transform:capitalize;font-weight:750}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{padding:7px 9px}.empty{text-align:center;color:#667085;padding:20px}.hint{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:12px;padding:10px}.rules{color:#667085;line-height:1.8}.chart{margin:16px 0}footer{padding:18px 24px;color:#98a2b3;font-size:13px}code{display:block;background:#101828;color:#e5e7eb;border-radius:12px;padding:14px;line-height:1.7}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;z-index:50;display:grid;place-items:center;padding:16px}.modal{width:min(900px,100%);max-height:88vh;overflow:auto}.formGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{display:none;position:fixed}.sidebar.show{display:block;width:86vw}.brand button,.menu{display:inline-flex}.topbar{gap:8px;padding:0 12px}.topbar select{display:none}.topbar button{padding:8px}.cards,.formGrid{grid-template-columns:1fr}.page{padding:16px}.stat b{font-size:22px}.modal{max-height:92vh}.sectionHead{align-items:flex-start;flex-direction:column}.actions{min-width:240px}}
