:root{--gdec-teal:#01708b;--gdec-teal-d:#005e76;--gdec-navy:#0d2b35;--gdec-navy-2:#164052;--gdec-gold:#f8c246;--gdec-gold-d:#d4a020;--gdec-gold-bg:#f8c2461f;--green:#1a9e5c;--green-bg:#dcfce7;--green-t:#15803d;--yellow:#d97706;--yellow-bg:#fef9c3;--yellow-t:#92400e;--red:#e63946;--red-bg:#fee2e2;--red-t:#991b1b;--blue:#1565c0;--purple:#7b1fa2;--bg:#f0f4f8;--surface:#fff;--surface-2:#f7f9fc;--border:#cbd5e0;--text:#0a1628;--text-2:#4a5568;--text-3:#718096;--nav-bg:#0a1628;--nav-text:#abbcce;--nav-active:#fff;--card-sh:0 2px 8px #00000012;--card-sh-h:0 6px 20px #00000021;--input-bg:#f0f4f8;--tag-bg:#e2e8f0;--upload-border:#00a896;--insight-bg:#e6f7f6;--insight-border:#00a896}:root[data-theme=dark]{--bg:#0d1117;--surface:#161b22;--surface-2:#1c2333;--border:#2d3748;--text:#e2e8f0;--text-2:#a0aec0;--text-3:#718096;--nav-bg:#090e18;--nav-text:#6b8599;--nav-active:#fff;--card-sh:0 2px 8px #0006;--card-sh-h:0 6px 20px #00000080;--input-bg:#1c2333;--tag-bg:#2d3748;--upload-border:#00a896;--insight-bg:#0d2926;--insight-border:#00a896}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5;transition:background .25s,color .25s}button,input,select,textarea{font-family:inherit}.topbar{background:var(--nav-bg);z-index:200;border-bottom:3px solid var(--gdec-gold);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.tb-brand{flex-shrink:0;align-items:center;gap:14px;display:flex}.tb-logo{background:linear-gradient(135deg, var(--gdec-teal), var(--gdec-teal-d));color:#fff;letter-spacing:.5px;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:11px;font-weight:800;display:flex}.tb-divider{background:#ffffff26;width:1px;height:28px}.tb-titles{line-height:1.2}.tb-title{color:#fff;white-space:nowrap;font-size:14px;font-weight:700}.tb-sub{color:#6b8599;margin-top:1px;font-size:10px}.tb-nav{flex-wrap:wrap;flex:1;justify-content:center;gap:2px;display:flex}.nav-btn{color:var(--nav-text);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:7px 13px;font-size:11px;font-weight:500;transition:all .2s}.nav-btn:hover{color:var(--gdec-teal);background:#01708b2e}.nav-btn.active{color:var(--gdec-gold);background:#f8c2462e;font-weight:700}.tb-controls{flex-shrink:0;align-items:center;gap:10px;display:flex}.theme-btn{color:#aaa;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;transition:all .2s;display:flex}.theme-btn:hover{border-color:var(--gdec-teal);color:var(--gdec-teal);background:#01708b40}.tb-date{color:#6b8599;text-align:right;font-size:10px;line-height:1.4}.user-chip{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:20px;align-items:center;gap:8px;padding:5px 10px;display:flex}.user-chip-name{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:11px;font-weight:600;overflow:hidden}.role-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:10px;padding:2px 7px;font-size:9px;font-weight:800}.role-badge.admin{background:var(--gdec-gold-bg);color:var(--gdec-gold)}.role-badge.viewer{color:var(--nav-text);background:#ffffff1a}.signout-btn{color:var(--nav-text);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:11px}.signout-btn:hover{color:#fff}.main{max-width:1440px;margin:0 auto;padding:24px 20px 80px}.section{margin-bottom:40px;scroll-margin-top:80px}.s-header{align-items:center;gap:12px;margin-bottom:18px;display:flex}.s-tag{background:var(--gdec-navy);color:#fff;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap;border-radius:20px;flex-shrink:0;padding:4px 11px;font-size:9px;font-weight:700}.s-title{color:var(--text);font-size:19px;font-weight:800}.s-sub{color:var(--text-3);margin-top:1px;font-size:11px}.card{background:var(--surface);box-shadow:var(--card-sh);border-radius:12px;transition:box-shadow .2s,transform .2s,background .25s;overflow:hidden}.card:hover{box-shadow:var(--card-sh-h);transform:translateY(-1px)}.card-body{padding:18px 20px}.card-top{height:5px}.g2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.g3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.g4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.g5{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.g-otif{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media (max-width:1200px){.g-otif{grid-template-columns:repeat(2,1fr)}.g5{grid-template-columns:repeat(3,1fr)}}@media (max-width:800px){.g2,.g3,.g4,.g5,.g-otif{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.g2,.g3,.g4,.g5,.g-otif{grid-template-columns:1fr}}.pill{text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:10px;font-weight:700;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.p-green{background:var(--green-bg);color:var(--green-t)}.p-yellow{background:var(--yellow-bg);color:var(--yellow-t)}.p-red{background:var(--red-bg);color:var(--red-t)}.p-gray{background:var(--tag-bg);color:var(--text-3)}.health-banner{background:linear-gradient(135deg, var(--gdec-navy) 0%, #12294a 100%);border-radius:14px;flex-wrap:wrap;align-items:center;gap:0;margin-bottom:28px;padding:28px 32px;display:flex;position:relative;overflow:hidden}.health-banner:before{content:"";background:var(--gdec-teal);width:5px;height:100%;position:absolute;top:0;left:0}.h-intro{color:#fff;flex:1;min-width:260px}.h-intro h2{margin-bottom:4px;font-size:24px;font-weight:800}.h-intro p{color:#7b95b0;font-size:12px}.h-badges{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.h-stats{flex-wrap:wrap;align-items:stretch;gap:0;display:flex}.hstat{text-align:center;border-left:1px solid #ffffff1a;padding:0 22px}.hstat-val{color:#fff;font-size:26px;font-weight:800}.hstat-lbl{color:#7b95b0;text-transform:uppercase;letter-spacing:.4px;margin-top:2px;font-size:10px}.hstat-sub{color:var(--gdec-teal);margin-top:2px;font-size:10px}.otif-card{flex-direction:column;min-height:340px;display:flex}.otif-card .card-body{flex-direction:column;flex:1;padding:14px 16px;display:flex}.otif-name{color:var(--text);justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:10px;font-size:12px;font-weight:700;display:flex}.otif-big{margin-bottom:4px;font-size:36px;font-weight:800;line-height:1}.otif-lbl{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:9px}.prog-wrap{margin:4px 0}.prog-label{color:var(--text-3);justify-content:space-between;margin-bottom:3px;font-size:10px;display:flex}.prog-bar{background:var(--border);border-radius:4px;height:7px;overflow:hidden}.prog-fill{border-radius:4px;height:100%;transition:width 1s}.otif-meta{flex:1;margin-top:8px}.otif-meta-row{gap:5px;margin-bottom:3px;font-size:10px;display:flex}.otif-meta-row strong{color:var(--text);min-width:50px}.otif-meta-row span{color:var(--text-2)}.otif-divider{border:none;border-top:1px solid var(--border);margin:10px 0}.otif-note{color:var(--text-3);margin-top:auto;padding-top:8px;font-size:10px}.upload-zone{border:1.5px dashed var(--gdec-teal);cursor:pointer;background:#01708b0a;border-radius:8px;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;transition:background .2s;display:flex}.upload-zone:hover{background:#01708b1a}.upload-zone input{display:none}.upload-zone-icon{flex-shrink:0;font-size:16px}.upload-zone-text{color:var(--gdec-teal);font-size:10px;font-weight:600;line-height:1.3}.upload-zone-sub{color:var(--text-3);margin-top:1px;font-size:9px}.upload-status{color:var(--text-2);background:var(--surface-2);border-radius:6px;margin-top:6px;padding:6px 10px;font-size:10px}.insight-box{background:var(--insight-bg);border-left:3px solid var(--insight-border);color:var(--text-2);border-radius:0 8px 8px 0;margin-bottom:12px;padding:10px 14px;font-size:11px}.insight-box strong{color:var(--gdec-teal)}.wh-card .card-body{padding:16px 18px}.wh-name{margin-bottom:6px;font-size:13px;font-weight:700}.wh-current{color:var(--text);font-size:26px;font-weight:800}.wh-current-lbl{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:9px}.wh-growth{align-items:baseline;gap:8px;margin-top:5px;display:flex}.wh-pct{font-size:15px;font-weight:700}.wh-soy{color:var(--text-3);font-size:10px}.exec-table{border-collapse:collapse;width:100%;font-size:12px}.exec-table thead tr{background:var(--gdec-navy);color:#fff}.exec-table th{text-align:left;padding:9px 13px;font-size:11px;font-weight:600}.exec-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:9px 13px}.exec-table tbody tr:hover,.exec-table tbody tr:nth-child(2n){background:var(--surface-2)}.action-row{border-bottom:1px solid var(--border);grid-template-columns:32px 72px 1fr 110px 76px 140px;align-items:center;gap:10px;padding:10px 16px;transition:background .15s;display:grid}.action-row:hover{background:var(--surface-2)}.action-pri{color:#fff;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:24px;font-size:10px;font-weight:800;display:flex}.action-text{color:var(--text-2);font-size:12px}.action-area{color:var(--text-3);font-size:10px;font-weight:600}.action-owner{color:var(--text-3);font-size:11px}.action-due{color:var(--text-3);text-align:right;font-size:11px}.decision{border-left:4px solid;border-radius:10px;margin-bottom:10px;padding:16px 18px}.decision.red{background:var(--red-bg);border-color:var(--red)}.decision.yellow{background:var(--yellow-bg);border-color:var(--yellow)}.decision-title{margin-bottom:4px;font-size:12px;font-weight:700}.decision.red .decision-title{color:var(--red)}.decision.yellow .decision-title{color:var(--yellow-t)}.decision-body{color:var(--text-2);white-space:pre-wrap;font-size:11px}.decision-meta{margin-top:6px;font-size:10px;font-weight:600}.decision.red .decision-meta{color:var(--red)}.decision.yellow .decision-meta{color:var(--yellow-t)}.milestone{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding:18px 0;display:flex}.milestone:last-child{border-bottom:none}.m-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:3px}.m-info{flex:1}.m-label{color:var(--text);margin-bottom:3px;font-size:13px;font-weight:600}.m-desc{color:var(--text-3);font-size:11px}.m-date{color:var(--text-3);text-align:right;flex-shrink:0;min-width:70px;font-size:10px;font-weight:600}.repo-folder{margin-bottom:6px}.repo-folder-name{color:var(--text);align-items:center;gap:6px;padding:6px 0;font-size:11px;font-weight:700;display:flex}.repo-files{padding-left:18px}.repo-file{background:var(--surface-2);border-radius:6px;grid-template-columns:1fr 90px 90px 70px 70px auto auto;align-items:center;gap:8px;margin-bottom:4px;padding:7px 8px;font-size:11px;display:grid}.repo-file:hover{background:var(--border)}.repo-file-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.repo-file-meta{color:var(--text-3);font-size:10px}.repo-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:5px;padding:3px 8px;font-size:10px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-block}.repo-btn:hover{background:var(--gdec-teal);color:#fff;border-color:var(--gdec-teal)}.repo-empty{color:var(--text-3);padding:10px 0;font-size:11px}.chart-wrap{height:230px;position:relative}.gauge-val{text-align:center;font-size:28px;font-weight:800}.gauge-lbl{color:var(--text-3);text-align:center;text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:10px}.gauge-sub{color:var(--text-3);text-align:center;margin-top:3px;font-size:10px}.tag{background:var(--tag-bg);color:var(--text-3);text-transform:uppercase;letter-spacing:.4px;border-radius:4px;padding:2px 7px;font-size:9px;font-weight:700;display:inline-block}.tag.teal{color:var(--gdec-teal);background:#01708b26}.status-select-wrap{display:inline-block;position:relative}.status-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;background-size:8px;border:1.5px solid #0000;border-radius:20px;outline:none;padding:3px 24px 3px 10px;font-size:10px;font-weight:700;transition:all .2s}.status-select:hover{border-color:var(--gdec-teal)}.status-select:focus{box-shadow:0 0 0 2px #01708b40}.status-select:disabled{cursor:default;opacity:.85}.ss-ontrack{color:#14532d;background:#dcfce7;border-color:#86efac}.ss-inprogress{color:#1e3a5f;background:#dbeafe;border-color:#93c5fd}.ss-atrisk{color:#713f12;background:#fef9c3;border-color:#fde047}.ss-delayed{color:#7f1d1d;background:#fee2e2;border-color:#fca5a5}.ss-completed{color:#2e1065;background:#ede9fe;border-color:#a78bfa}.ss-notstarted{color:#475569;background:#f1f5f9;border-color:#cbd5e1}.ss-onhold{color:#1c1917;background:#f1f5f9;border-color:#a1a1aa}.status-updated{color:var(--text-3);margin-top:3px;font-size:9px;font-style:italic;display:block}.action-pri[data-p=P1]{background:var(--red)}.action-pri[data-p=P2]{background:var(--gdec-gold-d)}.action-pri[data-p=P3]{background:var(--gdec-teal)}.edit-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:6px;padding:3px 9px;font-size:10px;font-weight:600;transition:all .15s}.edit-btn:hover{background:var(--gdec-teal);color:#fff;border-color:var(--gdec-teal)}.edit-btn.danger:hover{background:var(--red);border-color:var(--red)}.edit-form{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.edit-form label{color:var(--text-3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;font-size:10px;font-weight:700;display:block}.edit-form input,.edit-form select,.edit-form textarea{background:var(--input-bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;padding:6px 9px;font-size:12px}.edit-form textarea{resize:vertical;min-height:50px}.edit-form-row{gap:8px;display:flex}.edit-form-row>div{flex:1}.edit-form-actions{justify-content:flex-end;gap:6px;display:flex}.btn{cursor:pointer;border:none;border-radius:6px;padding:6px 14px;font-size:11px;font-weight:700;transition:all .15s}.btn-primary{background:var(--gdec-teal);color:#fff}.btn-primary:hover{background:var(--gdec-teal-d)}.btn-secondary{background:var(--tag-bg);color:var(--text-2)}.btn-secondary:hover{background:var(--border)}.form-error{color:var(--red-t);background:var(--red-bg);border-radius:6px;padding:6px 9px;font-size:11px}.form-ok{color:var(--green-t);background:var(--green-bg);border-radius:6px;padding:6px 9px;font-size:11px}.admin-toolbar{justify-content:flex-end;margin-bottom:10px;display:flex}.signin-wrap{background:linear-gradient(135deg, var(--gdec-navy) 0%, #12294a 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.signin-card{background:var(--surface);text-align:center;border-radius:16px;width:100%;max-width:400px;padding:40px 36px;box-shadow:0 20px 60px #0000004d}.signin-brand{margin-bottom:18px}.signin-logo{background:linear-gradient(135deg, var(--gdec-teal), var(--gdec-teal-d));color:#fff;letter-spacing:.5px;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:12px;font-size:15px;font-weight:800;display:inline-flex}.signin-title{color:var(--text);font-size:16px;font-weight:800}.signin-sub{color:var(--text-3);margin-bottom:20px;font-size:12px}.signin-error{color:var(--red-t);background:var(--red-bg);text-align:left;border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:11px}.signin-pending{color:var(--yellow-t);background:var(--yellow-bg);text-align:left;border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:11px}.signin-btn{background:var(--surface);border:1.5px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:11px 16px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.signin-btn:hover{border-color:var(--gdec-teal);box-shadow:0 2px 10px #01708b26}.signin-note{color:var(--text-3);margin-top:20px;font-size:10px;line-height:1.5}.users-table{border-collapse:collapse;width:100%;font-size:12px}.users-table th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3);border-bottom:2px solid var(--border);padding:8px 12px;font-size:10px}.users-table td{border-bottom:1px solid var(--border);padding:10px 12px}@media print{.topbar{position:relative}.card:hover{box-shadow:var(--card-sh);transform:none}}
