:root{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--bg-card:#ffffffbf;--bg-card-hover:#fffffff2;--border-color:#0f172a14;--border-color-hover:#0f172a26;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--color-primary:#10b981;--color-primary-glow:#10b98114;--color-primary-dark:#047857;--color-accent:#06b6d4;--color-accent-glow:#06b6d414;--status-success:#10b981;--status-success-bg:#10b98114;--status-warning:#d97706;--status-warning-bg:#d9770614;--status-danger:#dc2626;--status-danger-bg:#dc262614;--status-info:#2563eb;--status-info-bg:#2563eb14;--font-display:"Outfit", "Inter", sans-serif;--font-body:"Inter", sans-serif;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 12px #0f172a08, 0 1px 2px #0f172a0f;--shadow-lg:0 12px 24px #0f172a0f, 0 4px 8px #0f172a0a;--shadow-glow:0 0 12px #10b98126;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 0 0,#10b9810d 0,#0000 50%),radial-gradient(at 50% 0,#06b6d408 0,#0000 50%),radial-gradient(at 100% 100%,#3b82f608 0,#0000 50%);min-height:100vh;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-header{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);z-index:100;background:#fffc;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.75rem;display:flex}.brand-logo{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#fff;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:4px;display:flex;box-shadow:0 4px 12px #00000014}.brand-name{background:linear-gradient(90deg,#0f172a,#475569);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.nav-links{gap:.75rem;display:flex}.nav-button{color:var(--text-secondary);font-family:var(--font-display);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.nav-button:hover{color:var(--text-primary);background:#00000008}.nav-button.active{color:var(--color-primary-dark);background:var(--color-primary-glow);border-color:#10b98133;box-shadow:0 0 10px #10b9810d}.app-main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.card:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);box-shadow:var(--shadow-lg)}.grid-cols-1-3{grid-template-columns:1fr 3fr;gap:1.5rem;display:grid}@media (width<=1024px){.grid-cols-1-3{grid-template-columns:1fr}}.grid-metrics{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:1.5rem;display:grid}.metric-ring-container{flex-direction:column;justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.metric-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.metric-ring-bg{fill:none;stroke:#00000008;stroke-width:10px}.metric-ring-fill{fill:none;stroke-width:10px;stroke-linecap:round;transition:stroke-dashoffset .6s}.metric-ring-text{font-family:var(--font-display);color:var(--text-primary);flex-direction:column;align-items:center;font-size:1.5rem;font-weight:700;display:flex;position:absolute}.metric-ring-text span{color:var(--text-secondary);font-size:.75rem;font-weight:400}.table-container{margin-top:1rem;overflow-x:auto}.kpi-table{border-collapse:collapse;text-align:left;width:100%}.kpi-table th{font-family:var(--font-display);text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-color);letter-spacing:.05em;padding:1rem;font-size:.85rem;font-weight:600}.kpi-table td{vertical-align:middle;border-bottom:1px solid #0000000a;padding:1.1rem 1rem;font-size:.9rem}.kpi-table tbody tr:hover{background:#00000003}.category-row{background:#10b9810a}.category-row td{font-family:var(--font-display);color:var(--color-primary);border-bottom:1px solid #10b98126;font-weight:700}.badge{letter-spacing:.02em;border-radius:50px;align-items:center;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{background:var(--status-success-bg);color:var(--status-success);border:1px solid #10b98133}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning);border:1px solid #f59e0b33}.badge-danger{background:var(--status-danger-bg);color:var(--status-danger);border:1px solid #ef444433}.badge-info{background:var(--status-info-bg);color:var(--status-info);border:1px solid #3b82f633}.form-input,.form-textarea,.form-select{border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-md);font-family:var(--font-body);background:#ffffffe6;width:100%;padding:.6rem .85rem;font-size:.9rem;transition:all .2s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);background:#fff;outline:none;box-shadow:0 0 8px #10b9811f}.btn{font-family:var(--font-display);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:var(--color-primary);color:#0b0f19}.btn-primary:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-glow)}.btn-secondary{border-color:var(--border-color);color:var(--text-primary);background:#00000008}.btn-secondary:hover{border-color:var(--border-color-hover);background:#0000000f}.btn-accent{background:var(--color-accent);color:#0b0f19}.btn-accent:hover{background:#0891b2;box-shadow:0 0 15px #06b6d440}.dropzone{border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:#ffffff80;border:2px dashed #0000001a;flex-direction:column;align-items:center;gap:1rem;padding:2.5rem 2rem;transition:all .2s;display:flex}.dropzone:hover,.dropzone.active{border-color:var(--color-primary);background:#10b98108}.dropzone-icon{width:3.5rem;height:3.5rem;color:var(--text-secondary);background:#00000005;border-radius:50%;justify-content:center;align-items:center;display:flex}.dropzone:hover .dropzone-icon{background:var(--color-primary-glow);color:var(--color-primary)}.pipeline-card{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#ffffff80;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:1rem;display:flex}.pipeline-info{align-items:center;gap:.75rem;display:flex}.pipeline-icon{border-radius:8px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#00000014;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000026}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.3s cubic-bezier(.4,0,.2,1) forwards fadeIn}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.kpi-row-weight{font-family:var(--font-display);color:var(--text-secondary);font-weight:500}.kpi-row-score-value{font-family:var(--font-display);font-size:1.05rem;font-weight:700}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-color);margin-top:3rem;padding:2rem;font-size:.8rem}.ess-phone-frame{background:var(--bg-primary);border:12px solid #0f172a;border-radius:40px;flex-direction:column;width:100%;max-width:420px;height:840px;margin:1.5rem auto;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000040,0 0 0 4px #0f172a1a}@media (width<=500px){.ess-phone-frame{border:none;border-radius:0;max-width:100%;height:100vh;margin:0}}.ess-phone-status-bar{background:var(--bg-secondary);height:26px;color:var(--text-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:0 1.25rem;font-size:.7rem;font-weight:600;display:flex}.ess-phone-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1rem;display:flex}.ess-phone-profile{align-items:center;gap:.75rem;display:flex}.ess-phone-avatar{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;width:2.5rem;height:2.5rem;box-shadow:var(--shadow-glow);border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.ess-phone-content{flex-direction:column;flex:1;gap:1rem;padding:1rem 1rem 74px;display:flex;overflow-y:auto}.ess-phone-nav-bar{background:var(--bg-secondary);border-top:1px solid var(--border-color);z-index:10;height:60px;padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.ess-phone-nav-item{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:.2rem;width:60px;font-size:.65rem;font-weight:600;transition:all .2s;display:flex}.ess-phone-nav-item.active{color:var(--color-primary-dark)}.mobile-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1rem}.mobile-stat-row{border-bottom:1px solid #00000008;justify-content:space-between;padding:.5rem 0;font-size:.8rem;display:flex}@media print{body{color:#000!important;background:#fff!important;margin:0!important;padding:0!important;font-size:11pt!important}.app-container,.ess-phone-frame{max-width:100%!important;height:auto!important;box-shadow:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important;display:block!important}header.app-header,.nav-links,.global-selectors,.btn,.dropzone,.pipeline-card,.footer,.ess-phone-status-bar,.ess-phone-nav-bar,.ess-phone-header select,.card h2+p,.card select,.card button,textarea::placeholder{display:none!important}.table-container{border:none!important;margin:0!important;padding:0!important;overflow:visible!important}.kpi-table{page-break-inside:auto!important;border:1px solid #000!important;width:100%!important}.kpi-table tr{page-break-inside:avoid!important;page-break-after:auto!important}.kpi-table th,.kpi-table td{color:#000!important;background:0 0!important;border:1px solid #333!important;padding:6px!important;font-size:9pt!important}textarea{resize:none!important;color:#000!important;background:0 0!important;border:none!important;width:100%!important;height:auto!important;font-family:inherit!important;font-size:9pt!important;overflow:visible!important}.print-signatures{justify-content:space-between!important;margin-top:4rem!important;display:flex!important}}.login-container{background-color:#fff;background-image:url(/KIJANI_HOLDINGS_LTD.png);background-position:5%;background-repeat:no-repeat;background-size:54%;justify-content:flex-end;align-items:center;width:100%;min-height:100vh;padding:2rem 18% 4.5rem 2rem;display:flex;position:relative}.login-subsidiaries-footer{justify-content:space-between;align-items:center;width:50%;display:flex;position:absolute;bottom:3.5rem;left:4%}.login-portal-footer{color:#fff;z-index:10;background-color:#113f28;justify-content:space-between;align-items:center;height:44px;padding:0 4%;font-size:.78rem;font-weight:500;display:flex;position:absolute;bottom:0;left:0;right:0}.login-portal-footer a{color:#6ee7b7;font-weight:600;text-decoration:underline;transition:color .2s}.login-portal-footer a:hover{color:#fff}@media (width<=1100px){.login-container{background-size:48%;padding-right:8%}.login-subsidiaries-footer{width:48%;left:3%}}@media (width<=992px){.login-container{background-position:50% 1.5rem;background-size:320px;justify-content:flex-start;align-items:center;padding:1.5rem 1rem 70px}.login-card-wrapper{width:100%!important;max-width:400px!important;margin-top:130px!important}.login-subsidiaries-footer{flex-wrap:wrap;justify-content:space-around;align-items:center;gap:.75rem;width:100%;max-width:400px;margin:1.5rem auto 1rem;display:flex;position:relative;bottom:auto;left:auto}.login-subsidiaries-footer img{object-fit:contain;height:52px!important;max-height:52px!important}.login-portal-footer{z-index:100;height:auto;padding:.5rem 1rem;font-size:.72rem;position:fixed;bottom:0;left:0;right:0}}@media (width<=768px){.login-container{background-position:50% 1rem;background-size:260px;padding-top:1rem}.login-card-wrapper{margin-top:115px!important}.login-card-wrapper .card{padding:1.5rem 1.25rem!important}.login-subsidiaries-footer{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.login-subsidiaries-footer img{height:44px!important;max-height:44px!important}.ess-phone-frame{max-width:100%!important;height:auto!important;min-height:100vh!important;box-shadow:none!important;border:none!important;border-radius:0!important;margin:0!important}.app-header{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.85rem 1rem}.nav-links{flex-wrap:wrap;gap:.35rem;width:100%}.nav-button{padding:.35rem .5rem;font-size:.75rem}}@media (width<=480px){.login-container{background-size:210px}.login-card-wrapper{margin-top:95px!important}.login-subsidiaries-footer{grid-template-columns:repeat(2,1fr);gap:.75rem}.login-subsidiaries-footer img{height:40px!important;max-height:40px!important}.login-portal-footer{text-align:center;flex-direction:column;gap:.15rem;font-size:.65rem}}
