

:root{--blue:#2e6eb7;--teal:#30d5c8;--navy:#033f63;--navy-lt:#0a5480;--white:#fff;--gray-bg:#f4f7fb;--gray-lt:#e8eef6;--gray:#94a3b8;--gray-dk:#475569;--border:#dde5f0;--green:#10b981;--green-lt:#d1fae5;--amber:#f59e0b;--amber-lt:#fef3c7;--red:#ef4444;--red-lt:#fee2e2;--shadow:0 2px 12px rgba(3,63,99,.10);--shadow-lg:0 8px 32px rgba(3,63,99,.16)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;background:var(--gray-bg);color:#0d1117;min-height:100vh}
nav{background:var(--white);border-bottom:1px solid var(--border);padding:0 28px;height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-logo img{height:40px;width:auto}
.nav-badge{background:var(--navy);color:#fff;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:3px 9px;border-radius:5px}
.nav-tag{font-size:11px;font-weight:600;color:var(--gray-dk);background:var(--gray-lt);padding:4px 10px;border-radius:16px}
.hero{background:linear-gradient(135deg,var(--navy),#1a7bc4);padding:22px 28px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='2' fill='%2330d5c8' fill-opacity='0.07'/%3E%3C/svg%3E")}
.hero-inner{position:relative;max-width:1300px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.hero h1{font-size:21px;font-weight:700;color:#fff;letter-spacing:-.3px}
.hero h1 span{color:var(--teal)}
.hero p{font-size:12px;color:rgba(255,255,255,.7);margin-top:3px}
.hbadge{background:rgba(255,255,255,.12);color:#fff;font-size:11px;font-weight:600;padding:5px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.2)}
.hbadge.t{background:rgba(48,213,200,.2);color:var(--teal);border-color:rgba(48,213,200,.4)}
.wrap{max-width:1300px;margin:0 auto;padding:18px 18px 36px}
.card{background:var(--white);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:14px}
.ch{padding:15px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:linear-gradient(to right,var(--gray-bg),var(--white))}
.chi{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;flex-shrink:0;background:var(--blue)}
.ch h2{font-size:14px;font-weight:700;color:var(--navy)}
.ch p{font-size:12px;color:var(--gray);margin-top:2px}
.cb{padding:20px}
.fg{margin-bottom:14px}
.fg label{display:block;font-size:11px;font-weight:700;color:var(--gray-dk);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
.fg select,.fg input{width:100%;padding:10px 13px;border:1.5px solid var(--border);border-radius:9px;font-family:'DM Sans',sans-serif;font-size:13px;color:#0d1117;background:#fff;appearance:none;transition:border .15s,box-shadow .15s}
.fg select:focus,.fg input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(46,110,183,.1)}
.fg select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.isell input{border-color:#bfdbfe!important;background:#f0f6ff!important;font-family:'DM Mono',monospace!important;font-weight:600!important;color:var(--blue)!important}
.ibuy input{border-color:#a7f3d0!important;background:#f0fdf9!important;font-family:'DM Mono',monospace!important;font-weight:600!important;color:#065f46!important}
.r2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.r3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.stabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.stab{padding:9px 22px;border-radius:9px;font-size:13px;font-weight:700;border:2px solid var(--border);background:#fff;color:var(--gray-dk);cursor:pointer;transition:all .15s;letter-spacing:.2px}
.stab:hover{border-color:var(--blue);color:var(--blue);background:#f0f6ff}
.stab.active{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 3px 10px rgba(3,63,99,.25)}
.stab-soon{opacity:.4;cursor:not-allowed!important;position:relative;font-style:italic;padding:9px 16px!important}
.stab-soon::after{content:'Soon';position:absolute;top:-7px;right:-4px;font-size:8px;font-weight:700;background:var(--amber);color:#fff;padding:1px 4px;border-radius:4px;letter-spacing:.3px}
.tog{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border:1.5px solid var(--border);border-radius:9px;margin-bottom:0;cursor:pointer;background:#fff;transition:border .15s}
.tog:hover{border-color:var(--blue)}
.surch-row{display:grid;grid-template-columns:1fr 62px 32px;align-items:center;gap:6px;margin-bottom:8px}
.surch-override{display:contents}
.ovr-inp{width:100%;padding:8px 6px;border:1.5px solid var(--border);border-radius:8px;font-family:'DM Mono',monospace;font-weight:700;font-size:13px;color:var(--navy);text-align:center;background:#fff;transition:border .15s}
.ovr-inp:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(46,110,183,.1)}
.ovr-inp.overridden{border-color:#f59e0b!important;background:#fef3c7!important;color:#92400e!important}
.ovr-unit{font-size:11px;font-weight:600;color:var(--gray-dk);white-space:nowrap;text-align:left;padding-left:2px}
.tog.on{border-color:var(--teal);background:#f0fdf9}
.surch-row .tog{margin-bottom:0}
.tl{font-size:13px;font-weight:600;color:var(--navy)}
.ts{font-size:11px;color:var(--gray);margin-top:2px}
.tsw{width:42px;height:24px;background:var(--border);border-radius:12px;position:relative;transition:background .2s;flex-shrink:0}
.tsw::after{content:'';position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.tog.on .tsw{background:var(--teal)}
.tog.on .tsw::after{transform:translateX(18px)}
.sdiv{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--gray-dk);margin:16px 0 10px;display:flex;align-items:center;gap:8px}
.sdiv::after{content:'';flex:1;height:1px;background:var(--border)}
/* 3-col layout */
.mg{display:grid;grid-template-columns:270px auto 1fr 320px;gap:16px;align-items:start}
/* result */
.rc{background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-lg);position:sticky;top:70px;overflow:hidden}
.rh{background:linear-gradient(135deg,var(--navy),var(--navy-lt));padding:14px 18px;color:#fff}
.rh h3{font-size:11px;font-weight:600;opacity:.7;margin-bottom:2px}
.rt{font-size:11px;font-weight:700;color:var(--teal)}
.mets{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px;border-bottom:1px solid var(--border)}
.met{background:var(--gray-bg);border-radius:8px;padding:9px 11px;border:1px solid var(--border)}
.met.sm{background:#e8f1fc;border-color:#bfdbfe}
.met.bm{background:#d1fae5;border-color:#6ee7b7}
.met.pm{background:var(--amber-lt);border-color:#fcd34d}
.met.fl{grid-column:1/-1}
.ml{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--gray);margin-bottom:2px}
.mv{font-size:18px;font-weight:700;color:var(--navy);font-family:'DM Mono',monospace;line-height:1}
.mv.big{font-size:22px}
.mv.blue{color:var(--blue)}.mv.green{color:var(--green)}.mv.amber{color:#d97706}.mv.red{color:var(--red)}
.ms{font-size:9px;color:var(--gray);margin-top:2px}
.mbw{padding:0 12px 12px}
.mbt{height:7px;background:var(--gray-lt);border-radius:7px;overflow:hidden;margin:5px 0 3px}
.mbf{height:100%;border-radius:7px;transition:width .5s cubic-bezier(.25,.8,.25,1);background:linear-gradient(90deg,var(--red),var(--amber),var(--green))}
.bd{padding:10px 12px}
.bd h4{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--gray-dk);margin-bottom:8px}
.bdr{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid var(--gray-lt);font-size:11px}
.bdr:last-child{border-bottom:none}
.bdr.sub{background:var(--gray-bg);margin:2px -3px;padding:6px 3px;border-radius:5px;border:none;font-weight:600}
.bdr.tot{border-top:2px solid var(--border);border-bottom:none;font-weight:700;margin-top:3px;padding-top:8px;font-size:12px}
.bdr.shdr{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--gray);padding:7px 0 2px;border:none}
.bl{color:var(--gray-dk)}.bv{font-family:'DM Mono',monospace;font-weight:600;color:var(--navy)}
.bv.blue{color:var(--blue)}.bv.green{color:var(--green)}.bv.red{color:var(--red)}.bv.amber{color:#d97706}
.bcalc{display:block;width:calc(100% - 24px);margin:0 12px 8px;padding:12px;background:linear-gradient(135deg,var(--blue),var(--navy-lt));color:#fff;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s}
.bcalc:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(46,110,183,.35)}
.breset{display:block;width:calc(100% - 24px);margin:0 12px 10px;padding:8px;background:none;border:1.5px solid var(--border);border-radius:8px;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;color:var(--gray-dk);cursor:pointer;transition:all .15s}
.breset:hover{border-color:var(--red);color:var(--red)}
.ib{background:var(--amber-lt);border:1px solid #fcd34d;border-radius:8px;padding:9px 11px;font-size:11px;color:#92400e;margin:0 12px 7px}
.ib.g{background:var(--green-lt);border-color:#6ee7b7;color:#064e3b}
.ib.r{background:var(--red-lt);border-color:#fca5a5;color:#7f1d1d}
/* neg engine */
.ntabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}
.ntab{padding:6px 12px;border-radius:7px;font-size:12px;font-weight:600;border:1.5px solid var(--border);background:#fff;color:var(--gray-dk);cursor:pointer;transition:all .15s}
.ntab:hover{border-color:var(--blue);color:var(--blue)}
.ntab.active{background:var(--navy);border-color:var(--navy);color:#fff}
.nsr{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}
.nsl{font-size:10px;font-weight:700;color:var(--gray-dk);text-transform:uppercase;letter-spacing:.6px}
.nsv{font-size:19px;font-weight:700;font-family:'DM Mono',monospace;color:var(--navy)}
.nsv.blue{color:var(--blue)}.nsv.green{color:var(--green)}
input[type=range].ns{width:100%;height:5px;border-radius:5px;appearance:none;outline:none;cursor:pointer;margin-bottom:3px;background:linear-gradient(90deg,var(--red),var(--amber),var(--green))}
input[type=range].ns::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--navy);border:3px solid #fff;box-shadow:0 2px 6px rgba(3,63,99,.3);cursor:pointer}
input[type=range].ns.nb{background:linear-gradient(90deg,#bfdbfe,var(--blue))}
input[type=range].ns.nb::-webkit-slider-thumb{background:var(--blue)}
input[type=range].ns.ng{background:linear-gradient(90deg,#d1fae5,var(--green))}
input[type=range].ns.ng::-webkit-slider-thumb{background:var(--green)}
.ntk{display:flex;justify-content:space-between;font-size:9px;color:var(--gray);margin-bottom:11px}
.nrg{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px}
.nrb{border-radius:8px;padding:9px;border:1px solid var(--border);background:var(--gray-bg);text-align:center}
.nrb.nb{background:#e8f1fc;border-color:#bfdbfe}
.nrb.ng{background:#d1fae5;border-color:#6ee7b7}
.nrb.np{background:var(--amber-lt);border-color:#fcd34d}
.nrl{font-size:9px;font-weight:600;color:var(--gray-dk);margin-bottom:2px}
.nrv{font-size:13px;font-weight:700;font-family:'DM Mono',monospace;color:var(--navy)}
.nrv.blue{color:var(--blue)}.nrv.green{color:var(--green)}.nrv.red{color:var(--red)}.nrv.amber{color:#d97706}
.nrs{font-size:9px;color:var(--gray);margin-top:1px}
.napp{width:100%;padding:10px;background:linear-gradient(135deg,var(--teal),#1aad9e);color:#fff;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:transform .15s;margin-bottom:11px}
.napp:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(48,213,200,.4)}
.scg{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.sce{grid-column:1/-1;font-size:11px;color:var(--gray);text-align:center;padding:12px;background:var(--gray-bg);border-radius:8px;border:1px dashed var(--border)}
.scc{border:1.5px solid var(--border);border-radius:8px;padding:9px;background:#fff;position:relative}
.scc.best{border-color:var(--green);background:var(--green-lt)}
.scc.warn{border-color:#fcd34d;background:var(--amber-lt)}
.scc.bad{border-color:#fca5a5;background:var(--red-lt)}
.scb{position:absolute;top:5px;right:5px;font-size:9px;font-weight:700;padding:2px 5px;border-radius:14px;background:var(--green);color:#fff}
.scb.w{background:var(--amber)}.scb.b{background:var(--red)}
.scl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-dk);margin-bottom:4px}
/* fleet */
.fctrl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--gray-bg)}
.clbl{font-size:12px;font-weight:600;color:var(--gray-dk);white-space:nowrap}
.cinp{padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;font-family:'DM Mono',monospace;font-weight:700;font-size:14px;color:var(--navy);width:72px;text-align:center}
.cinp.tg{border-color:#fcd34d;background:var(--amber-lt);color:#92400e}
.cbtn{padding:7px 14px;border:none;border-radius:7px;font-family:'DM Sans',sans-serif;font-weight:700;font-size:12px;cursor:pointer;transition:all .15s}
.cbtn.nv{background:var(--navy);color:#fff}
.cbtn.gh{background:none;border:1.5px solid var(--border);color:var(--gray-dk)}
.cbtn.gh:hover{border-color:var(--red);color:var(--red)}
.cbtn.bl{background:linear-gradient(135deg,var(--blue),var(--navy-lt));color:#fff}
.fpdfr{padding:14px 20px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
.pfl label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-dk);margin-bottom:4px}
.pfl input,.pfl select{width:100%;padding:9px 11px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-family:'DM Sans',sans-serif;background:#fff;appearance:none}
table.ft{width:100%;border-collapse:collapse;font-size:12px}
table.ft thead tr{background:var(--navy);color:#fff}
table.ft thead th{padding:11px 10px;font-weight:600;font-size:10px;letter-spacing:.4px;white-space:nowrap;text-align:center}
table.ft thead th.tl{text-align:left;padding-left:14px}
table.ft tbody tr:nth-child(even){background:#f8fafc}
table.ft tbody tr:hover{background:#f0f6ff}
table.ft td{padding:10px 10px;border-bottom:1px solid var(--border);text-align:center}
table.ft td.tl{text-align:left;padding-left:16px;font-weight:700;color:var(--navy);font-size:13px}
table.ft td.gr{color:var(--gray-dk);font-size:12px}
.finp{width:66px;padding:6px 7px;border-radius:7px;font-family:'DM Mono',monospace;font-weight:700;font-size:12px;text-align:center;border:1.5px solid var(--border)}
.ftftr{padding:9px 18px;background:var(--gray-bg);border-top:1px solid var(--border);font-size:10px;color:var(--gray);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px}
.ftab{padding:11px 22px;font-size:13px;font-weight:700;border:none;background:none;color:rgba(255,255,255,.5);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-3px;transition:all .15s;letter-spacing:.3px}
.ftab:hover:not(:disabled){color:#fff;background:rgba(255,255,255,.07)}
.ftab-active{color:#fff!important;border-bottom-color:var(--teal)!important;background:rgba(255,255,255,.1)!important}
.ftab-soon{opacity:.35;cursor:not-allowed!important;font-style:italic;padding:11px 14px!important;font-size:11px!important}
footer{background:var(--navy);color:rgba(255,255,255,.6);text-align:center;padding:14px;font-size:11px;margin-top:16px}
footer strong{color:#fff}
#pdfModal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9999;overflow-y:auto;padding:18px}
.pminner{max-width:860px;margin:0 auto;background:#fff;border-radius:13px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.pmbar{background:var(--navy);padding:14px 20px;display:flex;justify-content:space-between;align-items:center}
@media(max-width:1300px){.mg{grid-template-columns:250px auto 1fr 300px}}
@media(max-width:900px){.mg{grid-template-columns:1fr 1fr}.rc{position:static}.r2,.r3{grid-template-columns:1fr 1fr}.fpdfr{grid-template-columns:1fr 1fr}}
@media(max-width:540px){nav{padding:0 12px}.hero{padding:16px 12px}.wrap{padding:10px 10px 24px}.r2,.r3{grid-template-columns:1fr}.nrg,.scg{grid-template-columns:1fr 1fr}.fpdfr{grid-template-columns:1fr}}
@media print{nav,footer,.bcalc,.breset{display:none}.rc{box-shadow:none;position:static}}
/* Shift calc result panel */
.margin-hidden #marginTile{display:none!important}
.margin-hidden #marginBar{display:none!important}
.margin-hidden #marginAlertWrap{display:none!important}
.margin-hidden .margin-bd-row{display:none!important}
/* Fleet table margin columns */
.margin-hidden .fleet-margin-col{display:none!important}
.margin-hidden .fleet-margin-td{display:none!important}
/* Fleet footer summary profit text */
.margin-hidden #fleetSummary{visibility:hidden}
/* Neg engine profit/margin result boxes */
.margin-hidden #negProfitFromMargin{visibility:hidden}
.margin-hidden #negMarginFromSell{visibility:hidden}
.margin-hidden #negMarginFromBuy{visibility:hidden}
.margin-hidden .nrb.np{opacity:0!important;pointer-events:none}
/* Neg engine Fix Margin mode tab — hide since it reveals margin */
.margin-hidden .ntab[data-mode="margin"]{opacity:0!important;pointer-events:none}

/* Client overrides — always hide margin/profit/internal */
#marginTile,#marginBar,#marginAlertWrap,.margin-bd-row,
#hideMarginBtn,.bdr.shdr,.margin-bd-row{display:none!important}
.mg{grid-template-columns:300px auto 360px!important}
@media(max-width:900px){.mg{grid-template-columns:1fr!important}}
