:root{--uci-blue:#003263;--uci-dark:#001f3f;--uci-gold:#ffd200;--emergency:#dc2626;--bg:#f0f4f8;--card:#fff;--border:#e2e8f0;--text:#1e293b;--muted:#64748b;--shadow:0 2px 8px #00000014;--shadow-lg:0 4px 20px #0000001f}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit}.header{background:var(--uci-blue);color:#fff;z-index:100;justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000040}.header-left{align-items:center;gap:14px;display:flex}.logo{color:var(--uci-gold);font-size:20px;font-weight:900}.h-title{font-size:15px;font-weight:700}.h-sub{color:#ffffffa6;font-size:11px}.h-right{color:#ffffffbf;align-items:center;gap:10px;font-size:11px;display:flex}.role-pill{text-transform:uppercase;letter-spacing:.4px;color:var(--uci-gold);background:#ffd20029;border-radius:99px;padding:3px 8px;font-weight:800}.btn-logout{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:7px;padding:6px 10px;font-size:11px;font-weight:700}.btn-logout:hover{background:#ffffff1a}.nav{background:var(--uci-dark);border-bottom:2px solid var(--uci-gold);flex-wrap:wrap;gap:2px;padding:0 16px;display:flex}.nt{color:#fff9;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 14px;font-size:12px;font-weight:600}.nt:hover{color:#fff}.nt.active{color:var(--uci-gold);border-bottom-color:var(--uci-gold)}.nt.new-tab{color:#64ff96b3}.nt.new-tab.active{color:#6effaa;border-bottom-color:#6effaa}.main{max-width:1400px;margin:0 auto;padding:18px}.boot,.login-wrap{justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:24px;display:flex}.login-card,.form-card,.card,.chart-card,.table-wrap,.mwrap,.bak-card{background:var(--card);box-shadow:var(--shadow);border-radius:10px}.login-card{border-top:4px solid var(--uci-gold);width:min(440px,100%);padding:28px}.login-card h1{color:var(--uci-blue);margin-bottom:6px;font-size:22px}.login-card p{color:var(--muted);margin-bottom:16px;font-size:13px;line-height:1.5}.login-card .submit-row{margin-top:16px}.login-accounts{flex-direction:column;gap:8px;display:flex}.login-account{text-align:left;width:100%;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.login-account:hover{border-color:var(--uci-blue)}.login-account strong{color:var(--uci-blue);font-size:14px;display:block}.login-account span span{color:var(--muted);font-size:12px}.login-role{color:var(--uci-blue);letter-spacing:.4px;text-transform:uppercase;font-size:11px;font-weight:800}.cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.card{border-top:3px solid var(--uci-gold);padding:16px}.card-label{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin-bottom:5px;font-size:10px;font-weight:700}.card-value{color:var(--uci-blue);font-size:28px;font-weight:900;line-height:1}.card-sub{color:var(--muted);margin-top:3px;font-size:10px}.card.emer .card-value{color:var(--emergency)}.card.act .card-value{color:#059669}.card.stl .card-value{color:#dc2626}.chart-grid,.analytics-grid{gap:14px;margin-bottom:18px;display:grid}.chart-grid{grid-template-columns:1fr 1fr}.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.chart-card{padding:16px}.chart-title{color:var(--uci-blue);margin-bottom:12px;font-size:13px;font-weight:700}.chart-container{height:200px;position:relative}.chart-empty{color:#94a3b8;text-align:center;padding:70px 12px;font-size:12px}.sec-hdr{margin-bottom:14px}.sec-title{color:var(--uci-blue);font-size:17px;font-weight:800}.sec-desc{color:var(--muted);margin-top:2px;font-size:12px}.filters{background:var(--card);box-shadow:var(--shadow);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px;padding:12px;display:flex}.fg{flex-direction:column;gap:3px;display:flex}.fl,.edit-label,.form-label,.sl-label,.sl-label-sm{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.fc,.si,.edit-input,.edit-select,.form-input,.form-select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:7px;width:100%;padding:7px 10px;font-size:12px}.si{min-width:190px}.fc{min-width:120px}.fbtn,.btn-primary,.btn-save,.btn-go{background:var(--uci-blue);color:#fff;cursor:pointer;border:none;border-radius:7px;padding:8px 14px;font-size:12px;font-weight:700}.btn-primary,.btn-save,.btn-go{border-radius:8px;padding:10px 22px;font-size:13px}a.btn-primary{text-decoration:none;display:inline-block}.fbtn:hover,.btn-primary:hover,.btn-save:hover,.btn-go:hover{background:var(--uci-dark)}.btn-secondary,.btn-cancel-edit,.modal-cancel{color:var(--text);border:1px solid var(--border);cursor:pointer;background:#f1f5f9;border-radius:8px;padding:10px 18px;font-size:13px;font-weight:600}.table-wrap{overflow:hidden}.table-hdr{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.table-title{color:var(--uci-blue);font-size:13px;font-weight:700}.table-count{color:var(--muted);font-size:11px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;background:#f8fafc;padding:9px 11px;font-size:10px;font-weight:700}th button{color:inherit;font:inherit;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}th button.sa:after{content:" ↑"}th button.sd:after{content:" ↓"}td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:8px 11px}tr:hover td{background:#f8fafc}.pname{max-width:220px;font-weight:600}.pid{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.badge{white-space:nowrap;border-radius:20px;align-items:center;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}.be{color:#dc2626;background:#fee2e2}.bvi{color:#d97706;background:#fef3c7}.bv{color:#7c3aed;background:#ede9fe}.bs{color:#2563eb;background:#dbeafe}.bl{color:#6b7280;background:#f3f4f6}.bact{color:#059669;background:#d1fae5}.bdev{color:#0891b2;background:#cffafe}.bhold{color:#d97706;background:#fef3c7}.bstall{color:#dc2626;background:#fee2e2}.bdone{color:#6b7280;background:#f3f4f6}.bcanc{color:#374151;background:#e5e7eb}.sdisp{align-items:center;gap:5px;display:flex}.sbw{background:#f1f5f9;border-radius:4px;flex:1;min-width:44px;height:5px;overflow:hidden}.sb{border-radius:4px;height:100%}.sn{min-width:24px;font-size:11px;font-weight:700}.status-select{border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:3px 6px;font-size:11px;font-weight:600}.status-select.st-active{color:#059669;background:#d1fae5;border-color:#6ee7b7}.status-select.st-dev{color:#0891b2;background:#cffafe;border-color:#67e8f9}.status-select.st-hold{color:#d97706;background:#fef3c7;border-color:#fcd34d}.status-select.st-stall{color:#dc2626;background:#fee2e2;border-color:#fca5a5}.status-select.st-done{color:#6b7280;background:#f3f4f6;border-color:#d1d5db}.status-select.st-canc{color:#374151;background:#e5e7eb;border-color:#d1d5db}.action-btns{gap:5px;display:flex}.btn-edit{color:#1e40af;cursor:pointer;background:#dbeafe;border:1px solid #93c5fd;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700}.btn-edit:hover{color:#fff;background:#1e40af}.btn-del{color:#dc2626;cursor:pointer;background:#fee2e2;border:1px solid #fca5a5;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700}.btn-del:hover{color:#fff;background:#dc2626}.empty-state{text-align:center;color:var(--muted);padding:48px 20px}.empty-title{color:var(--uci-blue);margin-bottom:6px;font-size:16px;font-weight:700}.empty-desc{font-size:13px}.modal-overlay{z-index:999;background:#00000080;justify-content:center;align-items:flex-start;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal,.edit-modal{background:#fff;border-radius:14px;margin:auto;box-shadow:0 8px 40px #0003}.modal{width:90%;max-width:420px;padding:28px}.modal-title,.edit-modal-title{text-align:center;margin-bottom:6px;font-size:16px;font-weight:800}.edit-modal-title{color:var(--uci-blue);text-align:left;align-items:center;gap:8px;display:flex}.modal-desc,.edit-modal-sub{color:var(--muted);text-align:center;margin-bottom:20px;font-size:13px;line-height:1.5}.edit-modal-sub{text-align:left;margin-bottom:16px;font-size:11px}.modal-name{color:var(--uci-blue);font-weight:700}.modal-btns,.edit-btns,.submit-row{flex-wrap:wrap;gap:10px;display:flex}.modal-btns{justify-content:center}.edit-btns{justify-content:flex-end;margin-top:16px}.modal-confirm{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:10px 22px;font-size:13px;font-weight:700}.edit-modal{width:95%;max-width:700px;padding:24px}.edit-section{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);border-bottom:1px solid var(--border);margin:16px 0 8px;padding-bottom:4px;font-size:11px;font-weight:800}.edit-grid,.form-grid,.slider-grid,.slider-grid-sm{gap:10px;display:grid}.edit-grid,.form-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.slider-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.slider-grid-sm{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.edit-group,.form-group,.sl-group,.sl-group-sm{flex-direction:column;gap:4px;display:flex}.edit-input:focus,.edit-select:focus,.form-input:focus,.form-select:focus{border-color:var(--uci-blue);outline:none;box-shadow:0 0 0 3px #00326314}.sl-label,.sl-label-sm{justify-content:space-between;align-items:center;display:flex}.sl-val,.sl-val-sm{color:var(--uci-blue);text-align:center;background:#f0f4f8;border-radius:5px;min-width:28px;padding:1px 7px;font-weight:900}.sl-desc,.sl-desc-sm{color:var(--muted);font-size:10px}input[type=range]{width:100%;accent-color:var(--uci-blue)}.edit-preview,.preview-box{border:1px solid var(--border);background:#f8fafc;border-radius:8px;margin-top:12px;padding:12px}.edit-preview-title,.preview-title{color:var(--uci-blue);margin-bottom:8px;font-size:12px;font-weight:700}.edit-preview-scores,.preview-scores{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.eps,.ps{text-align:center;border:1px solid var(--border);background:#fff;border-radius:6px;padding:8px}.eps-label,.ps-label{color:var(--muted);margin-bottom:2px;font-size:9px;font-weight:700}.eps-val,.ps-val{font-size:18px;font-weight:900}.form-card{margin-bottom:14px;padding:22px}.form-title{color:var(--uci-blue);margin-bottom:3px;font-size:15px;font-weight:800}.form-subtitle{color:var(--muted);margin-bottom:18px;font-size:12px}.divider{border:none;border-top:1px solid var(--border);margin:18px 0}.alert{border-radius:8px;padding:10px 14px;font-size:12px;font-weight:600}.alert-success{color:#065f46;background:#d1fae5}.alert-warning{color:#92400e;background:#fef3c7}.weight-formula{color:var(--muted);background:#f8fafc;border-radius:8px;margin-top:14px;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:2}.weight-formula b{color:var(--uci-blue)}.fw-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:14px;display:grid}.fw-card{border-left:3px solid var(--uci-gold);background:#f8fafc;border-radius:8px;padding:12px}.fw-card-title{margin-bottom:5px;font-size:11px;font-weight:700}.fw-card-formula{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.toast{box-shadow:var(--shadow-lg);z-index:1000;border-radius:10px;padding:12px 18px;font-size:13px;font-weight:600;position:fixed;bottom:24px;right:24px}.toast-success{color:#065f46;background:#d1fae5;border:1px solid #6ee7b7}.toast-info{color:#1e40af;background:#dbeafe;border:1px solid #93c5fd}.toast-warn{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.toast-error{color:#7f1d1d;background:#fee2e2;border:1px solid #fca5a5}.mwrap{padding:18px}.mgrid{grid-template-rows:1fr 1fr 30px;grid-template-columns:30px 1fr 1fr;gap:8px;height:480px;display:grid}.ylabel{writing-mode:vertical-rl;color:var(--muted);text-transform:uppercase;letter-spacing:1px;grid-area:1/1/3;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;transform:rotate(180deg)}.xlabel{color:var(--muted);text-transform:uppercase;letter-spacing:1px;grid-area:3/2/auto/4;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.quad{border-radius:8px;padding:12px;overflow:hidden}.ql{text-transform:uppercase;letter-spacing:.7px;margin-bottom:2px;font-size:11px;font-weight:800}.qsl{opacity:.8;margin-bottom:7px;font-size:10px}.q1{background:#fef9c3;border:2px solid #fbbf24}.q1 .ql{color:#92400e}.q2{background:#dcfce7;border:2px solid #4ade80}.q2 .ql{color:#14532d}.q3{background:#fee2e2;border:2px solid #f87171}.q3 .ql{color:#7f1d1d}.q4{background:#f1f5f9;border:2px solid #94a3b8}.q4 .ql{color:#475569}.qscroll{max-height:150px;overflow-y:auto}.qi{background:#fffc;border-radius:5px;align-items:flex-start;gap:4px;margin-bottom:3px;padding:4px 6px;font-size:10px;font-weight:500;display:flex}.qdot{border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:2px}.qempty{color:#94a3b8;padding:6px;font-size:10px}.scoring-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px;display:grid}.sc{background:var(--card);box-shadow:var(--shadow);border-radius:10px;padding:16px}.sc-title{color:var(--uci-blue);margin-bottom:3px;font-size:12px;font-weight:700}.sc-desc{color:var(--muted);margin-bottom:12px;font-size:11px}.sr{align-items:center;gap:7px;margin-bottom:6px;display:flex}.sr-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;overflow:hidden}.sr-bw{background:#f1f5f9;border-radius:4px;width:80px;height:6px;overflow:hidden}.sr-b{border-radius:4px;height:100%}.sr-v{text-align:right;min-width:28px;font-size:11px;font-weight:700}.legend{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.li{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.ld{border-radius:50%;width:8px;height:8px}.tip{color:#1e40af;background:#dbeafe;border-radius:8px;align-items:center;gap:6px;margin-bottom:14px;padding:8px 14px;font-size:11px;font-weight:600;display:inline-flex}.field-error{color:#b45309;font-size:12px;font-weight:600}@media (width<=768px){.chart-grid,.edit-preview-scores,.preview-scores{grid-template-columns:1fr 1fr}.mgrid{height:auto}.main{padding:12px}}
