@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";
:root{--navy:#0b1d3a;--navy2:#122348;--blue:#1a6fd4;--blue2:#1559aa;--blue-light:#e8f2fd;--teal:#0d8c6e;--teal-light:#e3f5f0;--amber:#c97b10;--amber-light:#fdf3e1;--red:#c0392b;--red-light:#fdebea;--green:#1a7a4a;--green-light:#e4f5ec;--purple:#5b3d8f;--purple-light:#eee8fa;--gold:#b8860b;--gold-light:#fff8e1;--cyan:#00bcd4;--gray1:#f7f8fa;--gray2:#eef0f4;--gray3:#d8dce6;--gray4:#9ba5b7;--gray5:#6b7899;--primary:var(--blue);--primary-hover:var(--blue2);--surface:#fff;--bg:#f7f8fa;--bg-subtle:#eef0f4;--ink:#111827;--text:#111827;--text2:#374151;--text3:#6b7280;--muted:#6b7280;--line:#eef0f4;--border:#d8dce6;--sans:"Outfit", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--serif:"Outfit", sans-serif;--font-outfit:"Outfit", sans-serif;--radius:8px;--radius-lg:12px;--radius-pill:9999px;--shadow:0 1px 3px #00000014, 0 0 0 .5px #0000000f;--shadow-lg:0 10px 30px #00000014}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--bg);color:var(--ink);min-height:100vh;font-size:14px;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);letter-spacing:-.3px;font-weight:700}button{cursor:pointer;border:none;font-family:inherit}a{color:var(--blue);text-decoration:none}input,select,textarea{font-family:inherit;font-size:14px}.shell{min-height:100vh;display:flex}.sidebar{color:#111827;z-index:90;border-right:1px solid var(--gray2);background:#fff;flex-direction:column;width:250px;height:100vh;display:flex;position:fixed;top:0;left:0;box-shadow:2px 0 16px #0000000a}.sidebar .logo{border-bottom:1px solid var(--gray2);padding:22px 20px}.sidebar .logo h2{color:#0f172a;font-size:21px;font-family:var(--serif);align-items:center;gap:8px;font-weight:800;display:flex}.sidebar .logo .tag{color:var(--blue);text-transform:uppercase;letter-spacing:.8px;margin-top:4px;font-size:10.5px;font-weight:800}.nav{flex:1;padding:16px 0;overflow-y:auto}.nav button{text-align:left;color:#4b5563;background:0 0;border-left:3px solid #0000;align-items:center;gap:12px;width:100%;padding:12px 20px;font-size:13.5px;font-weight:600;transition:all .2s;display:flex}.nav button:hover{background:var(--gray1);color:#111827}.nav button.active{background:var(--blue-light);color:var(--blue);border-left-color:var(--blue);font-weight:800}.nav .ico{text-align:center;width:20px;font-size:15px}.sidebar .userbox{border-top:1px solid var(--gray2);background:var(--gray1);padding:18px 20px;font-size:12px}.sidebar .userbox .role{color:var(--blue);text-transform:uppercase;letter-spacing:.8px;font-size:10px;font-weight:800}.sidebar .userbox button{border:1px solid var(--gray3);color:var(--navy);background:#fff;border-radius:6px;width:100%;margin-top:10px;padding:8px 10px;font-size:11.5px;font-weight:700;transition:all .2s}.sidebar .userbox button:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.app-topbar{border-bottom:1px solid var(--gray2);box-shadow:var(--shadow);background:#fff;justify-content:space-between;align-items:center;margin:-28px -34px 28px;padding:16px 32px;display:flex}.app-topbar-brand{color:var(--navy);align-items:center;gap:10px;font-size:16px;font-weight:800;display:flex}.app-topbar-links{align-items:center;gap:12px;display:flex}.main{flex:1;width:calc(100% - 250px);margin-left:250px;padding:28px 34px}.page-head{margin-bottom:24px}.page-head h1{color:var(--navy);font-size:30px;font-weight:800}.page-head p{color:var(--text3);margin-top:4px;font-size:14.5px}.card{background:var(--surface);border:1px solid var(--gray2);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card-pad{padding:22px}.grid{gap:20px;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.toolbar input,.toolbar select{border:1px solid var(--gray3);border-radius:var(--radius);color:var(--ink);background:#fff;padding:9px 14px;font-size:13.5px}.toolbar input[type=text]{min-width:260px}.toolbar input:focus,.toolbar select:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #1a6fd426}.btn{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 18px;font-size:13px;font-weight:700;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--blue) 0%, var(--teal) 100%);color:#fff;box-shadow:0 2px 8px #1a6fd440}.btn-primary:hover{background:linear-gradient(135deg, var(--blue2) 0%, #0b735b 100%);box-shadow:0 4px 12px #1a6fd459}.btn-secondary{background:var(--gray2);border-color:var(--gray3);color:var(--navy)}.btn-secondary:hover{background:var(--gray3)}.btn-ghost{border:1px solid var(--gray3);color:var(--navy);background:#fff}.btn-ghost:hover{background:var(--gray1)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--gray2);padding:13px 16px;font-size:13.5px}th{color:var(--text3);text-transform:uppercase;letter-spacing:.5px;background:var(--gray1);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700}th:hover{color:var(--blue)}tbody tr{cursor:pointer;transition:background .15s}tbody tr:hover{background:var(--gray1)}.badge{border-radius:var(--radius-pill);color:#fff;padding:4px 12px;font-size:11.5px;font-weight:800;display:inline-block}.tier-Platinum{background:var(--navy)}.tier-Gold{background:var(--amber)}.tier-Silver{background:var(--gray5)}.tier-Bronze{background:var(--red)}.tier-AtRisk{background:#991b1b}.trend-up{color:var(--green);font-weight:800}.trend-down{color:var(--red);font-weight:800}.trend-stable{color:var(--text3);font-weight:800}.kpi-grid{grid-template-columns:repeat(4,1fr)}.kpi{padding:20px;position:relative;overflow:hidden}.kpi .label{color:var(--text3);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:800}.kpi .val{font-size:34px;font-family:var(--serif);color:var(--navy);margin-top:6px;font-weight:800}.kpi .sub{color:var(--text3);margin-top:2px;font-size:12px}.gauge-wrap{flex-direction:column;align-items:center;display:flex}.gauge{width:160px;height:160px;position:relative}.gauge .num{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gauge .num .score{font-size:44px;font-family:var(--serif);font-weight:800}.gauge .num .of{color:var(--text3);font-size:11px}.modal-bg{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#0a142873;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:500;background:#0b1d3aa6;justify-content:center;align-items:flex-start;padding:30px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:16px;width:100%;max-width:680px;box-shadow:0 20px 50px #00000026}.modal-sm{max-width:460px}.modal-md{max-width:580px}.modal-lg{max-width:860px}.modal-header{border-bottom:1px solid var(--gray2);justify-content:space-between;align-items:flex-start;padding:1.25rem 1.75rem;display:flex}.modal-header h3{color:var(--navy);font-size:16px;font-weight:700}.modal-close{color:var(--text3);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.modal-close:hover{color:var(--red)}.modal-footer{border-top:1px solid var(--gray2);background:var(--gray1);border-radius:0 0 16px 16px;justify-content:flex-end;gap:10px;padding:1rem 1.75rem;display:flex}.fg{flex-direction:column;gap:6px;display:flex}.fg label{text-transform:uppercase;letter-spacing:.08em;color:var(--text2);font-size:11px;font-weight:700}.fg input{border-radius:var(--radius);border:1px solid var(--gray3);width:100%;padding:9px 12px;font-size:13px}.btn-gold{color:#fff;border-radius:var(--radius);cursor:pointer;background:linear-gradient(135deg,#1a6fd4 0%,#0d8c6e 100%);border:none;padding:8px 16px;font-size:13px;font-weight:700}.modal-head{border-bottom:1px solid var(--gray2);justify-content:space-between;align-items:flex-start;padding:24px 28px;display:flex}.modal-head .x{color:var(--text3);background:0 0;font-size:24px;line-height:1}.modal-body{padding:28px}.section-title{color:var(--navy);font-size:16px;font-family:var(--serif);border-bottom:1px solid var(--gray2);margin:26px 0 14px;padding-bottom:6px;font-weight:800}.two-col{grid-template-columns:1fr 1fr;gap:24px;display:grid}.dim-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.dim-row .dn{width:160px;color:var(--navy);font-size:12.5px;font-weight:700}.dim-bar{background:var(--gray2);border:1px solid var(--gray3);border-radius:999px;flex:1;height:10px;overflow:hidden}.dim-bar span{border-radius:999px;height:100%;transition:width .4s;display:block}.dim-row .ds{text-align:right;width:36px;font-size:12.5px;font-weight:800}.gap-pos{color:var(--green);font-weight:800}.gap-neg{color:var(--red);font-weight:800}.q-cat{margin-bottom:8px}.q-cat h3{color:var(--navy);margin-bottom:8px;font-size:15px}.q-item{border-bottom:1px solid var(--gray2);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.q-item .qt{flex:1;font-size:13.5px}.q-item .qa{flex-shrink:0}.q-item select,.q-item input{border:1px solid var(--gray3);border-radius:7px;padding:7px 12px}.q-item input[type=number]{width:80px}.toggle-yn{border:1px solid var(--gray3);border-radius:7px;display:inline-flex;overflow:hidden}.toggle-yn button{color:var(--text3);background:#fff;padding:7px 16px;font-size:12px;font-weight:700}.toggle-yn button.on-yes{background:var(--green);color:#fff}.toggle-yn button.on-no{background:var(--red);color:#fff}.sig-box{border:1px dashed var(--gray3);background:var(--gray1);border-radius:10px;margin-top:20px;padding:20px}.sig-box input{border:1px solid var(--gray3);width:100%;font-family:var(--serif);border-radius:8px;padding:12px;font-size:18px;font-style:italic}.alert-pill{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 12px;font-size:11.5px;font-weight:800;display:inline-flex}.alert-warn{background:var(--amber-light);color:var(--amber)}.alert-danger{background:var(--red-light);color:var(--red)}.muted{color:var(--text3)}.right{text-align:right}.center{text-align:center}.mono{font-variant-numeric:tabular-nums}.note{color:var(--text2);background:var(--gray1);border:1px solid var(--gray2);border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:13px}.ix-head{justify-content:space-between;align-items:baseline;display:flex}.cbar{background:var(--gray1);border:1px solid var(--gray2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.cbar-q{color:var(--text3);font-size:12px;font-weight:700}.cbar-sat,.cbar-unsat{border:1px solid var(--gray3);color:var(--ink);background:#fff;border-radius:7px;padding:6px 14px;font-size:12.5px;font-weight:700}.cbar-sat.on,.cbar-sat:hover{background:var(--green);color:#fff;border-color:var(--green)}.cbar-unsat.on,.cbar-unsat:hover{background:var(--red);color:#fff;border-color:var(--red)}.cbar-flags{flex-wrap:wrap;gap:6px;display:flex}.cbar-chip{border-radius:var(--radius-pill);border:1px solid var(--gray3);cursor:pointer;background:#fff;padding:5px 12px;font-size:11.5px;font-weight:700}.cbar-chip.chip-pos{color:var(--green);border-color:#a7f3d0}.cbar-chip.chip-iss{color:var(--red);border-color:#fecaca}.cbar-chip.chip-pos.on{background:var(--green);color:#fff;border-color:var(--green)}.cbar-chip.chip-iss.on{background:var(--red);color:#fff;border-color:var(--red)}.cbar-submit{background:var(--blue);color:#fff;border-radius:7px;padding:7px 16px;font-size:12.5px;font-weight:800}.cbar-submit:hover{background:var(--blue2)}.cbar-recip{border:1px solid var(--gray3);border-radius:7px;padding:6px 10px;font-size:12px}.cbar-done{background:#fff}.cbar-state{font-size:12.5px;font-weight:800}.cbar-state.sat{color:var(--green)}.cbar-state.unsat{color:var(--red)}.mode-toggle{border:1px solid var(--gray3);border-radius:8px;margin-left:8px;display:inline-flex;overflow:hidden}.mode-btn{color:var(--text3);background:#fff;padding:7px 14px;font-size:12px;font-weight:700}.mode-btn.on{background:var(--blue);color:#fff}.cad-timeline{padding-left:8px;position:relative}.cad-row{gap:16px;padding-bottom:24px;display:flex;position:relative}.cad-row:not(:last-child):before{content:"";background:var(--gray2);width:2px;position:absolute;top:16px;bottom:0;left:6px}.cad-dot{z-index:1;width:14px;height:14px;box-shadow:0 0 0 2px var(--gray2);border:2px solid #fff;border-radius:50%;flex-shrink:0;margin-top:2px}.cad-when{font-size:14px;font-weight:800}.cad-what{color:var(--ink);margin:2px 0;font-size:14px}.app-footer{border-top:1px solid var(--gray2);text-align:center;color:var(--text3);margin-top:60px;padding:32px 0 20px;font-size:12.5px}#loginScreen{background:#fff;justify-content:center;align-items:center;min-height:100vh;padding:2rem;transition:background .6s cubic-bezier(.4,0,.2,1);display:flex;position:relative}#loginScreen.bg-pi{background:radial-gradient(circle,#eff6ff 0%,#dbeafe 100%)}#loginScreen.bg-cro{background:radial-gradient(circle,#f0fdf4 0%,#dcfce7 100%)}#loginScreen.bg-sponsor{background:radial-gradient(circle,#fef2f2 0%,#fee2e2 100%)}#loginScreen.bg-admin{background:radial-gradient(circle,#0f172a 0%,#020617 100%)}.login-wrap{z-index:1;width:100%;max-width:440px;position:relative}.login-card{transition:all .5s cubic-bezier(.4,0,.2,1)}.login-card.card-light{-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);color:#1f2937;background:#ffffffd9;border:1px solid #fff9;padding:2.5rem 2rem;box-shadow:0 10px 30px #1f268714}.login-card.card-dark{-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);color:#f3f4f6;background:#0f172abf;border:1px solid #ffffff1a;padding:2.5rem 2rem;box-shadow:0 10px 30px #00000080}.role-tabs{border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:1.5rem;padding:4px;transition:all .5s;display:grid}.card-light .role-tabs{background:#0000000d;border:1px solid #00000008}.card-dark .role-tabs{background:#ffffff14;border:1px solid #ffffff0d}.rtab{font-size:11.5px;font-weight:700;font-family:var(--sans);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:6px;padding:8px 2px;transition:all .3s}.card-light .rtab{color:#6b7280}.card-dark .rtab{color:#9ca3af}.card-light .rtab.on{color:#1a6fd4;background:#fff;box-shadow:0 4px 12px #0000000d}.card-dark .rtab.on{color:#60a5fa;background:#ffffff26;box-shadow:0 4px 12px #0000001a}.card-dark .rtab.sa.on{color:#fbbf24;background:#fbbf2433;font-weight:700}.lfield{margin-bottom:1.25rem}.lfield label{text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.card-light .lfield label{color:#4b5563}.card-dark .lfield label{color:#9ca3af}.lfield input,.lfield select{border-radius:var(--radius);width:100%;font-size:13px;font-family:var(--sans);outline:none;padding:10px 12px;transition:all .2s}.card-light .lfield input,.card-light .lfield select{color:#111827;background:#fffc;border:1px solid #0000001a}.card-dark .lfield input,.card-dark .lfield select{color:#fff;background:#0000004d;border:1px solid #ffffff26}.btn-login{border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,#1a6fd4 0%,#0d8c6e 100%);border:none;width:100%;margin-top:8px;padding:12px;font-size:14px;font-weight:700;transition:all .2s;box-shadow:0 4px 12px #1a6fd440}.btn-login:hover{transform:translateY(-1px);box-shadow:0 6px 18px #1a6fd459}
