:root{--navy:#14325c;--navy2:#1f4a85;--gold:#d99a1e;--gold2:#f3c55a;--cap:#1c3f94;--bg:#dcdcdc;--panel:#ececec;--line:#a9a9a9;--calyx:#dbeafe;--calyxb:#5b8def;--ok:#1f8a4c;--warn:#c97a00;--bad:#b42318;--font:Tahoma,"Segoe UI",Verdana,Arial,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:var(--font);font-size:12px;color:#111;background:#6b7a8f}
button{font-family:var(--font);font-size:12px}
.desk{height:100vh;display:flex;align-items:stretch;justify-content:center;padding:10px}
.win{flex:1;max-width:1600px;display:flex;flex-direction:column;background:var(--bg);border:1px solid #3c4a5e;box-shadow:0 8px 30px rgba(0,0,0,.35);min-width:0}
.titlebar{height:28px;display:flex;align-items:center;gap:8px;padding:0 6px 0 8px;background:linear-gradient(#1f4a85,#14325c);color:#fff;font-weight:bold;user-select:none}
.titlebar .logo{width:18px;height:18px;border-radius:3px;background:var(--gold);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900}
.titlebar .t{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.titlebar .wbtn{width:26px;height:20px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;font-size:11px;line-height:16px;text-align:center;margin-left:2px}
.menubar{display:flex;gap:0;background:#f0f0f0;border-bottom:1px solid #c8c8c8;padding:1px 4px;flex-wrap:wrap}
.menubar span{padding:3px 8px;cursor:default}
.menubar span:hover{background:#cfe0f7}
.menubar .ic{margin-left:auto;color:#444;font-size:11px;padding-top:4px}
.toolbar{display:flex;gap:2px;align-items:center;background:#ebebeb;border-bottom:1px solid #b9b9b9;padding:3px 6px}
.tb{width:24px;height:22px;border:1px solid transparent;display:flex;align-items:center;justify-content:center;color:#3b4c66;font-size:13px}
.tb:hover{border-color:#9bb5d9;background:#e3eefc}
.tbsep{width:1px;height:18px;background:#b5b5b5;margin:0 4px}
.tbtxt{margin-left:auto;font-size:11px;color:#333;display:flex;gap:6px;align-items:center}
.pill{display:inline-block;padding:1px 7px;border-radius:9px;font-size:10.5px;font-weight:bold;border:1px solid}
.pill.calyx{background:var(--calyx);border-color:var(--calyxb);color:#1d4ed8}
.pill.demo{background:#fff4d6;border-color:#e0b04a;color:#7a5200}
.pill.ok{background:#e3f5ea;border-color:#7cc59a;color:var(--ok)}
.pill.bad{background:#fde7e7;border-color:#e59a9a;color:var(--bad)}
.pill.warn{background:#fff1dc;border-color:#f0b35a;color:var(--warn)}
.pill.gray{background:#eee;border-color:#bbb;color:#555}
.main{flex:1;display:flex;min-height:0}
/* nav */
.nav{width:212px;min-width:180px;background:#f4f4f4;border-right:1px solid #9d9d9d;display:flex;flex-direction:column}
.navhead{padding:4px 6px;font-weight:bold;background:linear-gradient(#fafafa,#dedede);border-bottom:1px solid #b5b5b5;display:flex;justify-content:space-between}
.acc{padding:4px 8px;font-weight:bold;color:var(--gold);background:linear-gradient(#ffffff,#dcdcdc);border-bottom:1px solid #b9b9b9;border-top:1px solid #fff;display:flex;gap:6px;align-items:center;cursor:default}
.acc.navy{color:var(--navy)}
.acc .sq{width:12px;height:12px;background:var(--gold);border-radius:2px;display:inline-block}
.who{padding:4px 8px;background:#e4e8ef;border-bottom:1px solid #c5ccd8;font-weight:bold;color:#1d2b44}
.folder{padding:3px 8px;font-size:11px;color:#444;background:#eef0f3;border-bottom:1px solid #d3d6dc}
.forms{flex:1;overflow:auto;background:#fff}
.forms .grp{padding:5px 8px 2px;font-size:10.5px;font-weight:bold;color:var(--cap);text-transform:uppercase;letter-spacing:.3px}
.forms a{display:flex;align-items:center;gap:5px;padding:2px 8px 2px 14px;font-size:11.5px;color:#111;text-decoration:none;cursor:pointer;white-space:nowrap}
.forms a:hover{background:#e3eefc}
.forms a.on{background:#3366cc;color:#fff}
.forms a .dot{width:7px;height:7px;border-radius:50%;background:#bbb;flex:none}
.forms a .dot.ok{background:#2ea361}.forms a .dot.warn{background:#e39b1b}.forms a .dot.bad{background:#d43c3c}
.forms a.on .dot{outline:1px solid #fff}
.accs .acc{color:#6b6b6b}
/* center */
.center{flex:1;display:flex;flex-direction:column;min-width:0}
.formhead{display:flex;align-items:center;gap:8px;padding:4px 8px;background:linear-gradient(#fbfbfb,#e2e2e2);border-bottom:1px solid #a9a9a9}
.formhead .p{width:18px;height:18px;background:var(--gold);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:11px;border:1px solid #a86f00}
.formhead b{font-size:12.5px}
.formhead .right{margin-left:auto;display:flex;gap:6px;align-items:center}
.body{flex:1;overflow:auto;padding:8px 10px 14px;background:var(--bg)}
.gb{border:1px solid var(--line);box-shadow:inset 1px 1px 0 #fff;padding:12px 10px 10px;margin:8px 0 12px;position:relative;background:var(--panel)}
.gb>.cap{position:absolute;top:-8px;left:8px;background:var(--panel);padding:0 4px;color:var(--cap);font-weight:bold;font-size:11.5px}
.row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end}
.fld{display:flex;flex-direction:column;gap:2px;min-width:90px}
.fld label{font-size:11px;color:#222;display:flex;gap:4px;align-items:center}
.fld input,.fld select,.fld textarea{font-family:var(--font);font-size:12px;height:21px;padding:1px 4px;border:1px solid #7f9db9;background:#fff;color:#000;border-radius:0}
.fld textarea{height:auto}
.fld input:focus,.fld select:focus{outline:none;background:#fff1d6;border-color:var(--gold)}
.fld.calyx input,.fld.calyx select{background:var(--calyx);border-color:var(--calyxb)}
.fld.calc input{background:#e6e6e6;border-color:#a0a0a0;color:#222;font-weight:bold}
.fld.flag input,.fld.flag select{background:#ffe2c2;border-color:#e08a00}
.c{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:2px;background:var(--calyxb);color:#fff;font-size:9px;font-weight:bold}
.w60{width:60px}.w80{width:80px}.w100{width:100px}.w120{width:120px}.w140{width:140px}.w180{width:180px}.w220{width:220px}.w260{width:260px}
.btn{border:1px solid #707070;background:linear-gradient(#fdfdfd,#dcdcdc);padding:3px 10px;cursor:pointer;color:#111;min-height:23px}
.btn:hover{background:linear-gradient(#f5f9ff,#d3e3f8);border-color:#3c7fb1}
.btn.pri{background:linear-gradient(#2a5ea8,#14325c);color:#fff;border-color:#0f2747;font-weight:bold}
.btn.pri:hover{background:linear-gradient(#3670c2,#1a3f74)}
.btn.gold{background:linear-gradient(#f6c65c,#d99a1e);border-color:#9c6b0c;color:#1d1300;font-weight:bold}
.btn:disabled{opacity:.5;cursor:not-allowed}
.subtabs{display:flex;gap:2px;padding:4px 8px;background:#e4e4e4;border-top:1px solid #a9a9a9;align-items:center;flex-wrap:wrap}
.subtabs .btn{font-size:11px;padding:2px 8px;min-height:20px}
.subtabs .btn.on{background:#fff;border-bottom-color:#fff;font-weight:bold}
.subtabs .keep{margin-left:auto;font-size:11px;display:flex;gap:4px;align-items:center}
table.grid{border-collapse:collapse;width:100%;background:#fff;font-size:11.5px}
table.grid th{background:linear-gradient(#fafafa,#e1e1e1);border:1px solid #a9a9a9;padding:3px 5px;text-align:left;font-weight:normal;white-space:nowrap}
table.grid td{border:1px solid #d0d0d0;padding:3px 5px;vertical-align:top}
table.grid tr.sel td{background:#3366cc;color:#fff}
table.grid tr:hover td{background:#eef4ff}
table.grid tr.sel:hover td{background:#2f5fbf}
table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums}
.mono{font-family:Consolas,"Courier New",monospace;font-size:11px}
.note{font-size:11px;color:#444;margin:4px 0}
.banner{border:1px solid #e0b04a;background:#fff8e6;padding:6px 8px;margin:6px 0;font-size:11.5px;display:flex;gap:8px;align-items:flex-start}
.banner.blue{border-color:#8fb0e8;background:#eef4ff}
.banner.red{border-color:#e59a9a;background:#fdeeee}
.banner.green{border-color:#7cc59a;background:#e9f7ef}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media (max-width:1180px){.cols{grid-template-columns:1fr}}
.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:11.5px}
.kv div:nth-child(odd){color:#444}
.kv div:nth-child(even){text-align:right;font-weight:bold}
.big{font-size:20px;font-weight:bold;color:var(--navy)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.card{background:#fff;border:1px solid #b9b9b9;padding:8px}
.card .l{font-size:10.5px;color:#555;text-transform:uppercase}
.card .v{font-size:17px;font-weight:bold;color:var(--navy);margin-top:2px}
.card .s{font-size:10.5px;color:#666}
/* info bar */
.info{width:220px;min-width:190px;background:#f4f4f4;border-left:1px solid #9d9d9d;display:flex;flex-direction:column;overflow:auto}
.info .h{padding:4px 6px;font-weight:bold;background:linear-gradient(#fafafa,#dedede);border-bottom:1px solid #b5b5b5}
.info .sec{padding:6px 8px;border-bottom:1px solid #d0d0d0}
.info .status{color:var(--gold);font-weight:bold;font-size:12px}
.info .kv{font-size:11px}
.chk{font-size:11px}
.chk div{display:flex;gap:5px;align-items:flex-start;padding:2px 0;border-bottom:1px dotted #ccc}
.chk .b{width:12px;height:12px;border:1px solid #777;background:#fff;flex:none;margin-top:1px;font-size:10px;line-height:10px;text-align:center}
.chk .b.y{background:#2ea361;border-color:#1f7a47;color:#fff}
.statusbar{height:22px;display:flex;align-items:center;gap:0;background:#ececec;border-top:1px solid #a9a9a9;font-size:11px}
.statusbar span{padding:0 10px;border-right:1px solid #c0c0c0;height:100%;display:flex;align-items:center}
.statusbar span:first-child{flex:1}
/* tracker */
.tracker{display:flex;gap:0;margin:10px 0 4px;flex-wrap:wrap}
.step{flex:1;min-width:110px;text-align:center;position:relative;padding-top:26px;font-size:11px}
.step:before{content:"";position:absolute;top:10px;left:0;right:0;height:4px;background:#c6c6c6}
.step:first-child:before{left:50%}.step:last-child:before{right:50%}
.step .o{position:absolute;top:2px;left:50%;margin-left:-10px;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid #9a9a9a;z-index:1;font-size:10px;line-height:16px;font-weight:bold;color:#777}
.step.done:before{background:var(--navy2)}
.step.done .o{background:var(--navy2);border-color:var(--navy2);color:#fff}
.step.cur .o{background:var(--gold);border-color:#9c6b0c;color:#000;box-shadow:0 0 0 4px rgba(217,154,30,.3)}
.step .n{font-weight:bold}
.step .d{color:#666;font-size:10px}
pre.xml{background:#0f1b2d;color:#cfe3ff;padding:8px;font-size:10.8px;overflow:auto;max-height:280px;margin:6px 0;border:1px solid #000;white-space:pre}
/* modal */
.ov{position:fixed;inset:0;background:rgba(10,20,40,.45);display:flex;align-items:center;justify-content:center;z-index:50}
.dlg{width:min(640px,94vw);background:var(--bg);border:1px solid #2c3e5c;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.dlg .titlebar{height:26px}
.dlg .in{padding:14px}
.prog{height:14px;border:1px solid #7f9db9;background:#fff;margin:8px 0}
.prog div{height:100%;background:repeating-linear-gradient(90deg,#2a5ea8 0 10px,#3c78cc 10px 12px);width:0;transition:width .4s}
.log{background:#fff;border:1px solid #a9a9a9;height:190px;overflow:auto;padding:6px;font-family:Consolas,monospace;font-size:11px}
.log div{padding:1px 0}
.log .okk{color:var(--ok)}
.log .warnn{color:var(--warn)}
/* launch */
.ic-head{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fff;border:1px solid #b9b9b9}
.ic-head .t{font-size:16px;font-weight:bold;color:var(--navy)}
.lenders td{vertical-align:middle}
.lmark{width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff;font-size:12px}
.brand{display:flex;align-items:center;gap:10px}
.brand .lmark{background:linear-gradient(135deg,#1f4a85,#14325c);border:2px solid var(--gold)}
.greyrow td{color:#888}
.greyrow .lmark{background:#b9bfc9}
.flt{display:flex;gap:8px;align-items:center;margin:6px 0}
.flt input,.flt select{height:22px;border:1px solid #7f9db9;font-family:var(--font);font-size:12px}
.src{font-size:10.5px;font-weight:bold}
.src.Calyx{color:#1d4ed8}.src.Broker{color:#6b4a00}.src.Calculated{color:#555}.src.Lender{color:#14325c}
.tbd{color:#9a6a00;font-style:italic}
.hide{display:none!important}
@media (max-width:1280px){.info{width:190px}.nav{width:190px}}
@media (max-width:1100px){.info{display:none}}
@media (max-width:820px){.nav{display:none}.desk{padding:0}}
table.grid td.mono{word-break:break-all}
