:root{--navy:#0a1a3c;--navy-2:#12285a;--navy-900:#061027;--cyan:#00a6ce;--cyan-700:#0083a8;--cyan-50:#e6f6fb;--bg:#eef2f6;--card:#fff;--text:#1c2430;--muted:#66707e;--border:#dfe3e8;--ok:#0d9d6e;--err:#d64545;--amber:#b7791f;--shadow-sm:0 1px 2px #0a1a3c0f, 0 1px 3px #0a1a3c0d;--shadow-md:0 2px 6px #0a1a3c0f, 0 8px 24px #0a1a3c12;--shadow-lg:0 18px 50px #0a1a3c2e;--ease:cubic-bezier(.4,0,.2,1);--font:"Dubai", "Hanken Grotesk", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--cyan-700);text-decoration:none}a:hover{text-decoration:underline}.material-symbols-rounded{vertical-align:middle}.topbar{background:var(--navy);color:#fff;align-items:center;gap:26px;height:60px;padding:0 28px;display:flex}.topbar .logo{letter-spacing:-.01em;align-items:center;gap:12px;font-size:18px;font-weight:700;display:flex}.topbar .logo img{width:auto;height:30px;display:block}.topbar .logo span{color:#fff;border-left:1px solid #ffffff47;padding-left:12px;font-size:15px;font-weight:500}.topbar nav{align-items:center;gap:4px;margin-left:auto;display:flex}.topbar nav a{color:#b9c6db;transition:background .16s var(--ease), color .16s var(--ease);border-radius:4px;padding:7px 13px;font-size:14px;font-weight:500}.topbar nav a:hover{color:#fff;background:#ffffff14;text-decoration:none}.topbar nav a.active{color:#fff;background:#00a6ce2e}.topbar .search{color:#8fa3c2;background:#ffffff14;border-radius:4px;align-items:center;gap:8px;width:300px;padding:7px 12px;font-size:13.5px;display:flex}.runbar{background:var(--navy-2);color:#fff;align-items:center;gap:16px;padding:10px 28px;font-size:13px;display:flex}.runbar .material-symbols-rounded{color:var(--cyan);font-size:18px;animation:2.6s linear infinite spin}.runbar .progress{background:#ffffff2e;flex:1;max-width:260px;height:4px}.runbar strong{font-weight:600}.runbar .sep{color:#6c81a5}@keyframes spin{to{transform:rotate(360deg)}}.wrap{padding:26px 28px 60px}h1{letter-spacing:-.02em;color:var(--navy);margin:0 0 6px;font-size:27px;font-weight:700;line-height:1.15}h2{color:var(--navy);margin:0 0 12px;font-size:16px;font-weight:700}h3{color:var(--navy);margin:0;font-size:14.5px;font-weight:700}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-700);margin:0 0 8px;font-size:11px;font-weight:700}.muted{color:var(--muted);font-size:13.5px;line-height:1.55}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;margin-bottom:16px;padding:22px 24px}.section-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.section-head h2{margin:0}.group-label{color:var(--navy);text-transform:uppercase;letter-spacing:.14em;margin:0 0 10px;font-size:11px;font-weight:700}.row{flex-wrap:wrap;gap:18px;display:flex}.row>*{flex:1;min-width:240px}.btn{background:var(--cyan);color:#fff;border:1px solid var(--cyan);font-family:var(--font);cursor:pointer;transition:background .16s var(--ease);border-radius:4px;align-items:center;gap:7px;padding:8px 16px;font-size:13.5px;font-weight:600;display:inline-flex}.btn:hover{background:var(--cyan-700);border-color:var(--cyan-700);color:#fff;text-decoration:none}.btn:focus-visible{outline-offset:2px;outline:3px solid #00a6ce73}.btn.secondary{background:var(--navy);border-color:var(--navy)}.btn.secondary:hover{background:var(--navy-2);border-color:var(--navy-2)}.btn.ghost{color:var(--navy);border:1px solid var(--border);background:#fff}.btn.ghost:hover{color:var(--navy);background:#f2f5f8;border-color:#c6ced8}.btn:disabled{opacity:.4;cursor:default}.btn .material-symbols-rounded{font-size:18px}input[type=text],input[type=email],input[type=password],select,textarea{border:1px solid var(--border);width:100%;font-size:14px;font-family:var(--font);color:var(--text);background:#fff;border-radius:4px;padding:10px 13px}input:focus,select:focus,textarea:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px #00a6ce2e}label{color:var(--navy);margin:14px 0 6px;font-size:12px;font-weight:600;display:block}.dropzone{text-align:center;transition:border-color .16s var(--ease), background .16s var(--ease);background:#fafcfe;border:1.5px dashed #b9c6d6;border-radius:10px;padding:22px}.dropzone:hover{border-color:var(--cyan);background:var(--cyan-50)}.dropzone .material-symbols-rounded{color:var(--cyan-700);font-size:30px}.dropzone strong{color:var(--navy);margin:6px 0 4px;font-size:15px;display:block}.dropzone input[type=file]{width:auto;font-size:13px;font-family:var(--font);margin-top:12px}.file-chip{border:1px solid var(--border);color:var(--navy);background:#fff;border-radius:20px;align-items:center;gap:7px;margin:8px 6px 0 0;padding:5px 12px 5px 9px;font-size:12.5px;font-weight:500;display:inline-flex}.file-chip .material-symbols-rounded{color:var(--cyan-700);font-size:16px}table.list{border-collapse:collapse;width:100%;font-size:14px}table.list th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);padding:0 12px 10px;font-size:11px;font-weight:600}table.list td{border-bottom:1px solid #eef1f5;padding:12px}table.list tbody tr:hover{background:#f7fafc}table.list td strong{color:var(--navy);font-weight:600}table.list td:last-child{text-align:right;white-space:nowrap}.pill{border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.pill.pending{color:var(--muted);background:#eef1f5}.pill.running{background:var(--cyan-50);color:var(--cyan-700)}.pill.running .dot{animation:pulse 1.4s var(--ease) infinite}.pill.done{color:#0a7a55;background:#e4f6ee}.pill.error{color:#a92f2f;background:#fdecec}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}.progress{background:#e8edf3;border-radius:6px;height:5px;overflow:hidden}.progress>div{background:var(--cyan);height:100%;transition:width .4s var(--ease);border-radius:6px}.error-box{color:#8f2727;background:#fdecec;border:1px solid #f4c4c4;border-radius:4px;margin:10px 0;padding:10px 13px;font-size:12.5px;line-height:1.5}.ok-box{color:#0a6e4d;background:#e4f6ee;border:1px solid #b3e5cf;border-radius:4px;margin:10px 0;padding:10px 13px;font-size:12.5px}.board{grid-template-columns:repeat(4,1fr);align-items:start;gap:14px;display:grid}.lane{background:#e6ebf1;border-radius:10px;min-height:220px;padding:12px}.lane-head{align-items:center;gap:8px;padding:4px 6px 12px;display:flex}.lane-head .t{text-transform:uppercase;letter-spacing:.14em;color:var(--navy);font-size:11px;font-weight:700}.lane-head .c{color:var(--muted);background:#fff;border-radius:20px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700}.bid-card{border:1px solid var(--border);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .18s var(--ease), transform .18s var(--ease);background:#fff;border-radius:8px;margin-bottom:10px;padding:14px}.bid-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.bid-card .cl{text-transform:uppercase;letter-spacing:.12em;color:var(--cyan-700);font-size:10.5px;font-weight:700}.bid-card .ti{color:var(--navy);letter-spacing:-.01em;margin:5px 0 8px;font-size:14px;font-weight:700;line-height:1.3}.bid-card .me{color:var(--muted);align-items:center;gap:8px;margin-top:9px;font-size:12px;display:flex}.bid-card .me .material-symbols-rounded{font-size:15px}.lane.empty-hint{justify-content:center;align-items:center;display:flex}.split{grid-template-columns:300px 1fr;min-height:calc(100vh - 105px);display:grid}.rail{border-right:1px solid var(--border);background:#fff;padding:18px 14px}.rail .hd{align-items:center;gap:8px;padding:0 8px 14px;display:flex}.rail .hd .t{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:11px;font-weight:700}.rail-item{cursor:pointer;transition:background .16s var(--ease);border:1px solid #0000;border-radius:8px;margin-bottom:4px;padding:13px 12px;display:block}.rail-item:hover{background:#f4f7fa;text-decoration:none}.rail-item.active{background:var(--cyan-50);border-color:#bfe6f2}.rail-item .cl{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:10.5px;font-weight:700}.rail-item.active .cl{color:var(--cyan-700)}.rail-item .ti{color:var(--navy);margin:4px 0 8px;font-size:13.5px;font-weight:600;line-height:1.35}.rail-item .progress{height:4px}.rail-item .st{color:var(--muted);margin-top:6px;font-size:11.5px}.canvas{padding:26px 28px 60px;overflow:auto}.gen-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.gen-card{border:1px solid var(--border);transition:box-shadow .18s var(--ease), transform .18s var(--ease);background:#fff;border-radius:10px;flex-direction:column;gap:9px;padding:16px 18px;display:flex}.gen-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.gen-card h3{justify-content:space-between;align-items:center;gap:10px;display:flex}.gen-card>p.muted{min-height:34px;margin:0;font-size:12.5px}.gen-card .actions{flex-wrap:wrap;gap:7px;margin-top:auto;display:flex}.gen-card .btn{padding:6px 12px;font-size:12.5px}.kpi{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.kpi>div{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:10px;padding:16px 18px}.kpi .n{color:var(--navy);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1}.kpi .n.accent{color:var(--cyan-700)}.kpi .l{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:8px;font-size:11px;font-weight:600}.steps{flex-direction:column;display:flex}.step{border-bottom:1px solid #eef1f5;gap:16px;padding:18px 0;display:flex}.step:last-child{border-bottom:0;padding-bottom:0}.step .num{background:var(--navy);color:#fff;border-radius:50%;flex:0 0 30px;justify-content:center;align-items:center;height:30px;font-size:13px;font-weight:700;display:flex}.step.complete .num{background:var(--ok)}.step .body{flex:1}.login-shell{background:var(--navy);justify-content:center;align-items:center;min-height:calc(100vh - 45px);display:flex;position:relative;overflow:hidden}.login-shell:before{content:"";background:radial-gradient(circle at 78% 22%, #00a6ce47, transparent 46%), linear-gradient(160deg, var(--navy) 0%, #071230 100%);position:absolute;inset:0}.login-card{width:400px;box-shadow:var(--shadow-lg);background:#fff;border-radius:10px;padding:38px;position:relative}.login-card .logo{align-items:center;gap:14px;margin-bottom:14px;display:flex}.login-card .logo img{width:auto;height:42px;display:block}.login-card .logo span{color:var(--navy);border-left:1px solid var(--border);padding-left:14px;font-size:17px;font-weight:600}.appfoot{background:var(--navy);color:#8fa3c2;flex-wrap:wrap;align-items:center;gap:20px;padding:26px 28px;font-size:12.5px;display:flex}.appfoot img{width:auto;height:26px;display:block}.appfoot .tag{color:#fff;border-left:1px solid #fff3;padding-left:16px;font-size:13px;font-weight:600}.appfoot .links{gap:20px;margin-left:auto;display:flex}.appfoot .links a{color:#8fa3c2}.appfoot .links a:hover{color:#fff}.stage{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:20px;padding:18px 20px 14px}.stage.locked{opacity:.55}.stage.declined-stage{background:#fdf9f9;border-color:#f0c9c9}.stage-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.stage-head h2{margin:0;font-size:17px}.stage-head .n{background:var(--navy);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:inline-flex}.stage.locked .n{background:#9aa5b1}.stage-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.stage-actions .btn{padding:6px 13px;font-size:12.5px}.btn.approve{background:var(--ok);border-color:var(--ok)}.btn.approve:hover{background:#0b845d;border-color:#0b845d}.btn.decline{background:var(--err);border-color:var(--err)}.btn.decline:hover{background:#b93b3b;border-color:#b93b3b}.btn.upload{background:#d69e2e;border-color:#d69e2e}.btn.upload:hover{background:#b8861f;border-color:#b8861f}.btn.gold{background:#96731a;border-color:#96731a}.btn.gold:hover{background:#7d5f13;border-color:#7d5f13}.btn.blue{background:#2f5fd0;border-color:#2f5fd0}.btn.blue:hover{background:#2750af;border-color:#2750af}.pill.approved{color:#0a7a55;background:#e4f6ee}.pill.declined{color:#a92f2f;background:#fdecec}.pill.locked{color:var(--muted);background:#eef1f5}.reproduce-panel{border:1px solid var(--border);background:#f4f7fb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:14px;margin:8px 0 12px;padding:10px 14px;font-size:13px;display:flex}.reproduce-panel label{align-items:center;gap:6px;margin:0;font-weight:500;display:inline-flex}.toc-box textarea{min-height:120px;font-size:13.5px;line-height:1.7}.sa-panel{box-shadow:var(--shadow-md);color:#dbe6ff;background:linear-gradient(160deg,#12285a 0%,#1b3a7a 100%);border:1px solid #2f5fd0;border-radius:12px;margin-top:26px;padding:24px 26px}.sa-muted{color:#9db4e4;font-size:13px}.sa-kpi{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0 16px;display:grid}.sa-kpi>div{background:#ffffff12;border:1px solid #78a0ff40;border-radius:10px;padding:14px 16px}.sa-kpi .n{color:#fff;font-size:26px;font-weight:700;line-height:1}.sa-kpi .l{text-transform:uppercase;letter-spacing:.12em;color:#9db4e4;margin-top:8px;font-size:11px;font-weight:600}.sa-card{background:#ffffff0d;border:1px solid #78a0ff38;border-radius:10px;margin-bottom:14px;padding:16px 18px}.sa-table th{color:#9db4e4!important;border-bottom-color:#78a0ff4d!important}.sa-table td{color:#dbe6ff;border-bottom-color:#78a0ff26!important}.sa-table td strong{color:#fff!important}.sa-table tbody tr:hover{background:#ffffff0a!important}.sa-panel select{color:#fff;background:#0e2050;border-color:#2f5fd0}
.topbar nav a{align-items:center;gap:7px;display:inline-flex}.topbar nav a .material-symbols-rounded{opacity:.9}.topbar nav a.active .material-symbols-rounded{opacity:1}.btn-ic:before,table.list a.btn[href*="/api/download"]:before,table.list a.btn[href^="/rfp/"]:before,.login-card button.btn:before{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Symbols Rounded;font-size:16px;font-style:normal;font-weight:400;line-height:1}table.list a.btn[href*="/api/download"]:before{content:"download"}table.list a.btn[href^="/rfp/"]:before{content:"edit_document"}.login-card button.btn:before{content:"login";font-size:18px}.kpi .l{align-items:center;gap:7px;display:flex}.kpi .l .material-symbols-rounded{color:var(--cyan-700);opacity:.85;font-size:15px}
