/* JFX Logistics: the logo's blue (#1f6ff2 -> #18a7f0) and deep navy. Shippers keep their green. */
:root{--bg:#f4f6f9;--card:#fff;--ink:#1b2430;--muted:#5b6675;--line:#dfe3e8;--navy:#15213b;--navy2:#1f2f52;--brand:#1f6ff2;--brand2:#18a7f0;--brand-soft:#e6f0fe;
  --blue:#2463b5;--green:#2f8a4c;--ok:#2f8a4c;--ok-soft:#e5f3ea;--bad:#c0392b;--bad-soft:#fbe9e7;--warn:#9a6b06;--warn-soft:#fdf3dc;--input:#fff}
@media (prefers-color-scheme:dark){:root{--bg:#0f1622;--card:#172133;--ink:#e6ebf2;--muted:#9aa6b6;--line:#2a3850;--brand-soft:#16294a;--ok-soft:#173826;--bad-soft:#3d1c18;--warn-soft:#3a2f14;--input:#0f1622;--warn:#e9c46a;--blue:#6aa2ee;--green:#5cc27f}}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--blue)}
h1{font-size:1.5rem;margin:.1rem 0 .3rem}h2{font-size:1.05rem;margin:0 0 .6rem}h3{font-size:.95rem;margin:1rem 0 .4rem}
.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.num{text-align:right}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.8rem;word-break:break-all}
.ok{color:var(--ok)}.bad{color:var(--bad)}
/* layout */
.side{position:fixed;inset:0 auto 0 0;width:236px;background:var(--navy);color:#cfd8e6;overflow-y:auto;padding:14px 10px 30px;z-index:20}
.side a.brand{justify-content:flex-start}.brand{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-size:1.25rem;padding:4px 8px 14px}.mark{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-weight:800;letter-spacing:.04em;border-radius:7px;padding:3px 7px;font-size:.95rem;line-height:1}
.mark.sm{font-size:.75rem;padding:3px 5px}.mark.lg{font-size:1.3rem;padding:6px 10px;border-radius:9px}.bname{font-weight:800;font-size:1.15rem;letter-spacing:-.01em}.bname .j{background:linear-gradient(90deg,var(--brand),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}
.side .bname{font-size:1.45rem}.logo-preview{display:inline-block;width:240px;background:#fff;border:1px solid var(--line)}.side .bname .l{color:#fff}.authbrand .bname{font-size:2.2rem}.authbrand .bname .l{color:#fff}.logo-img{max-height:90px;max-width:240px;display:block;margin:0 auto}
.sidelogo{display:block;background:#fff;border-radius:10px;padding:8px 12px;width:100%}.sidelogo img{display:block;max-width:100%;max-height:58px;margin:0 auto}
.authlogo{background:#fff;border-radius:12px;padding:14px 18px;margin:0 auto 16px;max-width:280px}
.sec{margin:6px 0 10px}.sec-h{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#8ea0bb;padding:4px 10px;border-left:3px solid transparent}
.accent-blue .sec-h{border-color:var(--blue)}.accent-green .sec-h{border-color:var(--green)}.accent-brand .sec-h{border-color:var(--brand)}.accent-navy .sec-h{border-color:#8ea0bb}
.side a{display:flex;justify-content:space-between;align-items:center;color:#e6ebf2;text-decoration:none;padding:5px 10px;border-radius:6px;font-size:.9rem}
.side a:hover{background:var(--navy2)}.side a.on{background:var(--brand);color:#fff;font-weight:600}
.side a.soon{color:#8ea0bb}.side a small{font-size:.65rem;border:1px solid #3a4d6b;border-radius:4px;padding:0 4px;color:#8ea0bb}
.top{position:sticky;top:0;margin-left:236px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 22px;background:var(--card);border-bottom:1px solid var(--line);z-index:10}
.co{font-weight:600}.kind{font-weight:400;font-size:.75rem;color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:1px 7px;margin-left:4px}
.who{display:flex;align-items:center;gap:10px}.who form{margin:0}
.dog{font-size:.72rem;font-weight:700;border-radius:10px;padding:2px 8px}.dog-top{background:var(--navy);color:#fff}.dog-little{background:var(--brand);color:#fff}.dog-puppy{background:var(--brand-soft);color:var(--brand);border:1px solid var(--brand)}
.main{margin-left:236px;padding:20px 22px 60px;max-width:1240px}
.burger,.navtoggle{display:none}
@media (max-width:860px){.side{transform:translateX(-100%);transition:transform .2s}.navtoggle:checked~.side{transform:none}
  .top,.main{margin-left:0}.burger{display:block;font-size:1.4rem;cursor:pointer;padding:0 6px}.main{padding:16px}.who .name{display:none}}
.pagehead{border-left:4px solid var(--brand);padding-left:12px;margin-bottom:16px}.pagehead.accent-blue{border-color:var(--blue)}.pagehead.accent-green{border-color:var(--green)}.pagehead.accent-navy{border-color:var(--navy)}
.crumb{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.crumb a{color:inherit}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.narrow{max-width:640px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.grid .card{margin:0}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-bottom:16px}
.panel.planned{border-style:dashed}.panel .big{font-size:1.7rem;font-weight:700;margin:.2rem 0}
.list{list-style:none;margin:0;padding:0}.list li{padding:6px 0;border-bottom:1px solid var(--line)}.list li:last-child{border:0}
.panel.planned .list li{border:0;padding:2px 0 2px 14px;position:relative;color:var(--muted)}.panel.planned .list li:before{content:"•";position:absolute;left:0;color:var(--brand)}
.phase{color:var(--warn);font-weight:600}
.banner{background:var(--warn-soft);border:1px solid #e0a526;border-radius:8px;padding:10px 14px;margin-bottom:16px}.banner.bad{background:var(--bad-soft);border-color:var(--bad)}
.note{background:var(--ok-soft);border-radius:8px;padding:8px 12px}.err{background:var(--bad-soft);color:var(--bad);border-radius:8px;padding:8px 12px}
/* forms */
label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:10px}
input,select,textarea{display:block;width:100%;margin-top:3px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--input);color:var(--ink);font:inherit}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 12px}
.chks,.roles{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}.chk{display:flex;align-items:center;gap:5px;margin:0;color:var(--ink)}.chk input{width:auto;margin:0}
.btn{display:inline-block;background:var(--navy);color:#fff;border:0;border-radius:7px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}
.btn:hover{background:var(--navy2)}.btn.small{padding:5px 10px;font-size:.82rem}.btn.ghost{background:transparent;color:var(--blue);border:1px solid var(--line)}.btn.danger{background:var(--bad)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
@media (prefers-color-scheme:dark){.btn{background:var(--brand)}.btn:hover{background:var(--brand2)}}
.link{background:none;border:0;color:var(--blue);cursor:pointer;font:inherit;padding:0}
/* tables */
.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:2px solid var(--line);padding:6px 8px}
.tbl td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.tbl .actions form{display:inline-block;margin:0 4px 4px 0}
.card{overflow-x:auto}.mini td{padding:2px 8px 2px 0}.kv th{text-align:left;color:var(--muted);font-weight:400;padding:4px 16px 4px 0}
.pill{display:inline-block;font-size:.75rem;border-radius:10px;padding:2px 8px;background:var(--bg);border:1px solid var(--line);color:var(--muted);text-decoration:none;white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.pill.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.tabs a{margin-right:12px;text-decoration:none;color:var(--muted)}.tabs a.on{color:var(--ink);font-weight:700;border-bottom:2px solid var(--brand)}
.signrow{display:flex;justify-content:space-between;align-items:center;gap:10px}.signrow form{margin:0}
/* sign-in pages */
body.auth{display:flex;min-height:100vh;align-items:flex-start;justify-content:center;background:var(--navy)}
.plain{width:100%}.authbox{max-width:400px;margin:8vh auto 0;padding:0 16px}.authbox.wide{max-width:640px}
.authbrand{display:flex;align-items:center;gap:12px;color:#fff;font-size:1.6rem;justify-content:center;margin-bottom:16px}
body:not(.auth) .authbox{margin-top:0}
/* chain + verdict */
.chain{list-style:none;padding:0;margin:0}.chain li{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}.chain li:last-child{border:0}
.chain .mark{font-weight:800;width:18px;flex:none}.chain .ok .mark{color:var(--ok)}.chain .bad .mark{color:var(--bad)}.chain .bad{color:var(--bad)}
.verdict{display:flex;gap:16px;align-items:center;border-radius:12px;padding:18px;margin-bottom:16px;color:#fff}.verdict.ok{background:var(--ok)}.verdict.bad{background:var(--bad)}
.vmark{font-size:2.6rem;font-weight:800;line-height:1}.vtitle{font-weight:800;letter-spacing:.06em}.vwho{font-size:1.3rem;font-weight:700}.vco,.vwhy{opacity:.95}
/* ID card */
.idcard{max-width:340px;margin:0 auto 16px;background:var(--card);border:3px solid var(--navy);border-radius:18px;padding:14px;text-align:center}
@media (prefers-color-scheme:dark){.idcard{border-color:var(--brand)}}
.idtop{display:flex;align-items:center;justify-content:center;gap:6px;font-weight:700}.qr{min-height:230px;display:flex;align-items:center;justify-content:center}
.qr img{width:230px;height:230px;background:#fff;border-radius:8px}.idname{font-size:1.25rem;font-weight:800}.idrole,.idco{color:var(--muted)}
.idok{background:var(--ok);color:#fff;font-weight:800;border-radius:8px;padding:6px;margin:10px 0 6px;letter-spacing:.06em}
/* ---------------- TMS */
.row-between{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.actions-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions-top input{width:260px;margin:0}
form.inline{display:inline-flex;gap:6px;align-items:center;margin:0}form.inline input,form.inline select{width:auto;margin:0}form.inline.wrap{flex-wrap:wrap}
.btn.disabled{opacity:.45;cursor:not-allowed}
.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}
.kcol{flex:0 0 250px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px}
.kcol header{font-weight:700;font-size:.85rem;padding:4px 6px 8px;display:flex;justify-content:space-between}
.kcol .count{background:var(--bg);border-radius:10px;padding:0 8px;color:var(--muted);font-weight:600}
.col-completed header{color:var(--ok)}.col-paperwork header{color:var(--bad)}
.kcard{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:8px;padding:8px 10px;margin-bottom:8px;font-size:.85rem}
.kc-top{display:flex;gap:6px;align-items:center}.kc-num{font-weight:800;text-decoration:none}.kc-cust{font-weight:600}.kc-lane,.kc-meta{color:var(--muted)}
.kc-drops .dot{color:var(--line)}.kc-drops .dot.on{color:var(--ok)}.kc-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;align-items:flex-start}
.empty{padding:4px 6px}
.stepbox summary{list-style:none;cursor:pointer}.stepbox summary::-webkit-details-marker{display:none}.stepbox form{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}
.statusbar{display:flex;flex-wrap:wrap;gap:0;margin:0 0 12px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.statusbar span{padding:6px 10px;font-size:.78rem;color:var(--muted);border-right:1px solid var(--line)}
.statusbar span.past{color:var(--ink)}.statusbar span.on{background:var(--brand);color:#fff;font-weight:700}.statusbar span.on.bad{background:var(--bad)}
.buttons{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;align-items:flex-start}
details.pop{position:relative}details.pop>summary{list-style:none;cursor:pointer}details.pop>summary::-webkit-details-marker{display:none}
details.pop[open]>form,details.pop[open]>form+form{position:absolute;z-index:30;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;min-width:280px;box-shadow:0 8px 24px rgba(0,0,0,.15);margin-top:6px}
details.pop.right[open]>form{right:0;min-width:520px}details.pop.right[open]>form+form{right:0;top:100%;margin-top:0;min-width:auto;box-shadow:none;border:0;position:static}
.loadgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;margin-bottom:16px}.loadgrid .card{margin:0}
.savebar{grid-column:1/-1;position:sticky;bottom:0;background:var(--bg);padding:8px 0;border-top:1px solid var(--line)}
.row.dense{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.fin .money th{font-size:.82rem}.fin .money td{padding:3px 14px 3px 0}
.st{font-size:.75rem;border-radius:10px;padding:2px 8px;background:var(--brand-soft);color:var(--brand);white-space:nowrap}.st-cancelled{background:var(--bad-soft);color:var(--bad)}
.st-delivered,.st-pod_received,.st-ready_to_invoice,.st-closed{background:var(--ok-soft);color:var(--ok)}
/* ---- Load form, laid out like the Odoo form: status arrows, button row, tabs, log panel on the right ---- */
body.wide .main{max-width:none}
.obar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-6px 0 10px}.obread{font-size:.95rem;color:var(--muted)}.obread a{text-decoration:none}
.oform{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
@media (max-width:1150px){.oform{grid-template-columns:minmax(0,1fr)}}
.ostatus{display:flex;justify-content:flex-end;flex-wrap:wrap;margin:0 0 8px}
.ostatus span{position:relative;padding:5px 14px 5px 20px;font-size:.76rem;color:var(--muted);background:var(--card);border:1px solid var(--line);border-left:0;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%,9px 50%);margin-left:-6px}
.ostatus span:first-child{clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%);border-left:1px solid var(--line);margin-left:0;padding-left:12px}
.ostatus span.past{color:var(--ink)}.ostatus span.on{background:var(--brand-soft);color:var(--brand);font-weight:700}.ostatus span.on.bad{background:var(--bad-soft);color:var(--bad)}
.osheet{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:18px 24px 26px}
.otitle{font-size:1.9rem;font-weight:700;margin:0}
.obadges{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 10px}.obadge{font-size:.7rem;font-weight:700;border-radius:10px;padding:1px 9px;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.obadge.bad{background:var(--bad);color:#fff;border-color:var(--bad)}.obadge.ok{background:var(--ok);color:#fff;border-color:var(--ok)}.obadge.info{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.obtns{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 6px;align-items:center}.obtns form{margin:0}.obtns.more{margin-bottom:14px}
.obtn,.btn.obtn{display:inline-block;background:#e7e9ed;color:#1b2430;border:1px solid #e7e9ed;border-radius:4px;padding:5px 10px;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.3}
.obtn:hover,.btn.obtn:hover{background:#d9dce2}.obtn.primary,.btn.obtn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.obtn.danger,.btn.obtn.danger{background:var(--card);color:var(--bad);border-color:var(--bad)}.obtn.disabled{opacity:.45;cursor:not-allowed}.obtn.sm{padding:2px 8px}
.olink{background:none;border:0;color:var(--blue);cursor:pointer;font:inherit;padding:0}
.ogroup{display:grid;gap:2px 36px;margin:6px 0 14px}.ogroup.two{grid-template-columns:1fr 1fr}.ogroup.three{grid-template-columns:1fr 1fr 1fr}
@media (max-width:760px){.ogroup.two,.ogroup.three{grid-template-columns:1fr}}
.ofield{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:8px;min-height:30px}
.olabel{font-weight:700;font-size:.84rem}.olabel sup{color:var(--brand);font-weight:400;margin-left:2px;cursor:help}
.oval{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.88rem}
.oval input:not([type=checkbox]):not([type=radio]),.oval select,.oval textarea{flex:1;min-width:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:4px 2px;font:inherit;font-size:.88rem;color:var(--ink)}
.oval input:focus,.oval select:focus,.oval textarea:focus{outline:0;border-bottom-color:var(--brand)}
.oval input[size]{flex:0 0 auto}.oval .radio{display:inline-flex;align-items:center;gap:4px;margin-right:10px;font-weight:400}.oval .radios{display:flex;flex-direction:column}
.omoney .ofield{grid-template-columns:110px auto}.prefix,.suffix{color:var(--muted)}
.otab-r{position:absolute;opacity:0;pointer-events:none}
.otab-h{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:8px 0 14px}
.otab-l{padding:7px 12px;font-size:.84rem;color:var(--muted);cursor:pointer;border:1px solid transparent;border-bottom:0;border-radius:5px 5px 0 0;margin-bottom:-1px}
.otab-l:hover{color:var(--ink)}.otab-l .cnt{font-size:.7rem;background:var(--brand-soft);color:var(--brand);border-radius:8px;padding:0 6px}
.otab{display:none}
#tab-basics:checked~.p-basics,#tab-quoted:checked~.p-quoted,#tab-quote:checked~.p-quote,#tab-fin:checked~.p-fin,#tab-carrier:checked~.p-carrier,
#tab-qmmargin:checked~.p-qmmargin,#tab-qmblend:checked~.p-qmblend,#tab-qmtrailers:checked~.p-qmtrailers,#tab-qmfuel:checked~.p-qmfuel,#tab-qmmatrix:checked~.p-qmmatrix,#tab-qmlater:checked~.p-qmlater,#tab-qmusda:checked~.p-qmusda,#tab-offers:checked~.p-offers,#tab-calls:checked~.p-calls,#tab-refs:checked~.p-refs,#tab-docs:checked~.p-docs{display:block}
#tab-basics:checked~.otab-h .l-basics,#tab-quoted:checked~.otab-h .l-quoted,#tab-quote:checked~.otab-h .l-quote,#tab-fin:checked~.otab-h .l-fin,#tab-carrier:checked~.otab-h .l-carrier,
#tab-qmmargin:checked~.otab-h .l-qmmargin,#tab-qmblend:checked~.otab-h .l-qmblend,#tab-qmtrailers:checked~.otab-h .l-qmtrailers,#tab-qmfuel:checked~.otab-h .l-qmfuel,#tab-qmmatrix:checked~.otab-h .l-qmmatrix,#tab-qmlater:checked~.otab-h .l-qmlater,#tab-qmusda:checked~.otab-h .l-qmusda,#tab-offers:checked~.otab-h .l-offers,#tab-calls:checked~.otab-h .l-calls,#tab-refs:checked~.otab-h .l-refs,#tab-docs:checked~.otab-h .l-docs{color:var(--ink);background:var(--card);border-color:var(--line);font-weight:600}
.osep{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:4px;margin:18px 0 6px}
.otable-wrap{overflow-x:auto}.otable{width:100%;border-collapse:collapse;font-size:.85rem}
.otable th{text-align:left;font-weight:700;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.otable td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.otable tr.addline td{border-bottom:0}.otable tr.addline .osearch{margin-left:18px}.otable tr.addline .osearch input{min-width:280px}
.otable tr.found td{background:var(--brand-soft)}.otable tr.found form{margin-left:6px}.otable tr.issue td{background:var(--bad-soft)}
.onotes{margin-top:16px}.onotes .ofield{align-items:start;padding-top:4px}
.oempty{color:var(--muted);padding:24px 6px}
.ochatter{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px;position:sticky;top:64px;max-height:calc(100vh - 80px);overflow-y:auto}
@media (max-width:1150px){.ochatter{position:static;max-height:none}}
.ochat-btns{display:flex;gap:6px;margin-bottom:8px}.chat-t{display:none}.chat-form{display:none;margin-bottom:10px}.chat-t:checked+.chat-form{display:block}
.chat-form textarea{width:100%;margin-bottom:6px}
.oday{text-align:center;border-bottom:1px solid var(--line);line-height:0;margin:16px 0 14px}.oday span{background:var(--card);padding:0 8px;font-size:.75rem;color:var(--muted)}
.omsg{display:flex;gap:9px;margin:0 0 12px;font-size:.86rem}.oavatar{flex:0 0 28px;height:28px;border-radius:6px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.onote{background:var(--bg);border-radius:6px;padding:6px 9px;margin-top:3px;white-space:pre-wrap}
.oval input[type=checkbox],.oval input[type=radio]{width:auto;flex:0 0 auto;margin:0;display:inline-block}
.oval input:not([type=checkbox]):not([type=radio]),.oval select,.oval textarea{width:auto;margin-top:0;display:block}
.oval>select[name=customer_id]{min-width:60%}.oval>a.small{white-space:nowrap}
.ostatus span{padding:4px 10px 4px 17px;font-size:.72rem}.ostatus span:first-child{padding-left:10px}
.otab-r,.chat-t{width:0;height:0;margin:0;padding:0}
/* as in Odoo: the form uses the full width; the log panel sits beside it only on very wide screens, else below */
.oform{grid-template-columns:minmax(0,1fr)}.ochatter{position:static;max-height:none}
@media (min-width:1800px){.oform{grid-template-columns:minmax(0,1fr) 380px}.ochatter{position:sticky;max-height:calc(100vh - 80px)}}
/* the nine tabs on one line, link blue like Odoo; the open one white with a border */
.otab-h{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.otab-l{white-space:nowrap;color:var(--blue);padding:8px 14px}
/* fields: no line until you point at or click into them */
.oval input:not([type=checkbox]):not([type=radio]),.oval select,.oval textarea{border-bottom-color:transparent}
.oval input:hover,.oval select:hover,.oval textarea:hover{border-bottom-color:var(--line)}
/* buttons Odoo shows that aren't usable yet look the same; clicking says why */
.obtn.disabled{opacity:1;cursor:pointer}
/* ⚙ more actions, next to the load number */
.obread{display:flex;align-items:center;gap:8px}.gear{position:relative}.gear>summary{list-style:none;padding:2px 8px}.gear>summary::-webkit-details-marker{display:none}
.gearmenu{position:absolute;z-index:40;left:0;top:100%;margin-top:6px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);display:flex;flex-direction:column;gap:6px;min-width:200px}
.gearmenu .obtn,.gearmenu form,.gearmenu details{width:100%;text-align:left}
.obtns details.pop:last-of-type[open]>form{right:0}
.olockbar{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin-bottom:6px;font-weight:600;flex-wrap:wrap}
.ico{font-size:.85rem;opacity:.75;cursor:help}.ro{background:var(--bg);border-radius:4px;padding:3px 8px;min-width:90px}
.ofin{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;margin-top:18px}@media (max-width:900px){.ofin{grid-template-columns:1fr}}
.obreak{width:100%;border-collapse:collapse;font-size:.88rem}.obreak td{padding:7px 6px}.obreak td.ind{padding-left:22px}.obreak tr.tot td{font-weight:700;border-top:1px solid var(--line)}
.osplit{border:1px solid var(--line);border-radius:6px;padding:10px 14px;margin-top:10px}.osplit-h{font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.05em;margin-bottom:6px}
.osplit table{width:100%;font-size:.88rem}.osplit td{padding:6px 4px}.pill.info{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.odocflags{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:8px;font-size:.88rem}.odocflags .flag{display:inline-flex;align-items:center;gap:5px}.odocflags input{width:auto;margin:0;display:inline}
.p-fin .oval input:not([type=checkbox]):not([type=radio]){flex:0 0 170px;border-bottom-color:var(--line)}.p-fin .oval input[size]{flex:0 0 80px}.p-fin .ofield{grid-template-columns:150px auto;justify-content:start}
.otable tr.booked td{background:var(--ok-soft)}.nowrap{white-space:nowrap}.otable td.nowrap form,.otable td.nowrap details{display:inline-block;vertical-align:middle}
/* Load Board, laid out like Odoo's: New + title, search in the middle, Pickup and Trailers filter rows, full-width columns */
.kbar{display:grid;grid-template-columns:1fr minmax(260px,560px) 1fr;align-items:center;gap:12px;margin:-4px 0 10px}
.kbar-l{display:flex;align-items:center;gap:10px}.ktitle{font-size:1.25rem;margin:0;font-weight:600}.kbar-r{display:flex;gap:6px;justify-content:flex-end}
.ksearch input{margin:0;padding:8px 12px;border-radius:6px}
.kfilters{border-bottom:1px solid var(--line);padding:0 0 8px;margin-bottom:12px}
.krow{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:4px 0}.klabel{font-size:.74rem;font-weight:700;color:var(--muted);letter-spacing:.04em;margin-right:6px;min-width:84px}
.kchip,.kdates>summary{display:inline-block;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:5px;padding:3px 9px;font-size:.82rem;text-decoration:none;cursor:pointer;list-style:none;white-space:nowrap}
.kchip:hover{border-color:var(--brand)}.kchip.on{background:var(--brand);border-color:var(--brand);color:#fff}.kmuted{color:var(--muted);font-size:.82rem;margin:0 4px 0 8px;text-decoration:none}
.kdates>summary::-webkit-details-marker{display:none}
.kanban{gap:14px;min-height:calc(100vh - 230px)}
.kcol{flex:1 0 290px;background:transparent;border:0;padding:0}
.kcol header{font-size:1rem;font-weight:600;padding:2px 2px 10px;justify-content:flex-start;gap:6px}.kcol .count{background:none;padding:0;color:var(--ink);font-weight:600}
@media (max-width:860px){.kbar{grid-template-columns:1fr}.kbar-r{justify-content:flex-start}}
/* Folding left menu: click a section's name to open or close it */
details.fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::after{content:"▸";font-size:.7rem;opacity:.7;transition:transform .15s;margin-right:6px}
details.fold[open]>summary::after{transform:rotate(90deg)}
details.fold>summary:hover{color:#fff}.side .sec.fold{margin:2px 0 6px}
/* lock and calculator marks beside the three Financials boxes (as in Odoo: fa-lock / blue fa-calculator); drawn, not emoji */
.ic{display:inline-block;width:15px;height:15px;vertical-align:-2px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.ic-lock{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h1zm2 0h6V7a3 3 0 0 0-6 0v3z'/%3E%3C/svg%3E")}
.ic-calc{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm1 3v4h10V5H7zm0 7v2h2v-2H7zm4 0v2h2v-2h-2zm4 0v2h2v-2h-2zm-8 4v2h2v-2H7zm4 0v2h2v-2h-2zm4 0v2h2v-2h-2z'/%3E%3C/svg%3E");color:var(--brand)}
.calclock{background:none;border:0;padding:2px 4px;cursor:pointer;color:var(--ink);line-height:1}.calclock:disabled{cursor:not-allowed;opacity:.5}
.calclock:hover .ic-lock{color:var(--brand)}.olockbar .ic{width:13px;height:13px}
.oval input[readonly]{background:var(--bg)!important;color:var(--muted)}
/* Quotes (Odoo layout): header buttons left, status arrows right; bulk controls + formula box; lanes with Odoo's colours */
.qtop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.qtop .obtns{margin:0}.qtop .ostatus{margin:0}
.ostat{float:right}.qpaste textarea{min-height:110px}.qpaste .ofield{align-items:start}
.qbulk{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;margin:10px 0}.qctl td{padding:4px 8px;font-size:.86rem;vertical-align:middle}
.qctl td:first-child{font-weight:700;white-space:nowrap}.qctl input,.qctl select{width:auto;display:inline-block;margin:0;padding:4px 6px}
.qformula{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:10px 14px;font-size:.88rem;max-width:360px}
.qlanes th.cd,.qlanes td.cd{background:rgba(13,110,253,.07)}.qlanes th.cy,.qlanes td.cy{background:rgba(255,193,7,.10)}
.qlanes tr.lost td{opacity:.55}.qlanes tr.booked td{background:var(--ok-soft)}.qlanes tr.a-loss td{background:var(--bad-soft)}.qlanes tr.a-low td{background:var(--warn-soft)}
.obtn.ok,.btn.obtn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.olink.bad{color:var(--bad)}.b{font-weight:700}
.ic-w{color:#fff!important}.qpre{white-space:pre-wrap;background:var(--bg);padding:6px;border-radius:5px;max-height:160px;overflow:auto}
.qlist tr.won td{background:var(--ok-soft)}.qlist tr.lost td{opacity:.55}.oempty.center{text-align:center;max-width:640px;margin:60px auto}
.qlane .qdat{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:.82rem}
.qdatbox{background:var(--brand-soft);border-radius:6px;padding:10px 14px;margin:8px 0}.qfigs{display:flex;gap:26px;flex-wrap:wrap}.qfigs>div{display:flex;flex-direction:column}
.qprice{border:3px solid #475569;border-radius:10px;padding:6px 16px 14px;margin-top:16px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.qoverride{background:#f4f1fb;border-radius:6px;padding:8px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.qoverride input{width:9em;margin:0;display:inline-block}.right{text-align:right}.qhist{white-space:pre-wrap;margin:0;font-family:inherit}
.qfoot{display:flex;gap:8px;margin-top:16px;align-items:center}
@media (prefers-color-scheme:dark){.qoverride{background:#2a2540}}
.qpreview{width:100%;max-width:860px;height:820px;border:1px solid var(--line);border-radius:8px;background:#fff;margin-top:14px}
[hidden]{display:none!important}
.oval input[size]:not([type=checkbox]):not([type=radio]){flex:0 0 auto}
.side .sub-h{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#8ea0bb;padding:8px 10px 2px 14px}
/* Moved Loads Lead Board (same idea as the Cold Calls Lead Board) */
.lbrow{display:grid;grid-template-columns:200px 1fr;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px solid var(--line)}
.lbrow .who{font-weight:600}.lbrow.lead .who{color:var(--brand)}.lbrow.mine{background:var(--brand-soft);border-radius:8px}
.lbrow .sq{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.lbrow .sq i{width:18px;height:18px;border-radius:4px;background:linear-gradient(135deg,var(--brand),var(--brand2))}
.lbrow .sq b{margin-left:8px}.lbrow .sq .small{margin-left:10px}
.qstops input,.qstops select{margin:0;padding:4px 6px}
/* ---- Menu style C (Gary's pick): section icons, normal-size names, the open section on its own shaded panel ---- */
.side{background:#101a2e}
.side .sec.fold{margin:2px 0;border-radius:10px}
.side .sec.fold>summary.sec-h{font-size:.92rem;letter-spacing:0;text-transform:none;font-weight:600;color:#dfe6f1;border-left:0;
  padding:8px 10px;border-radius:8px;gap:8px;justify-content:flex-start}
.side .sec.fold>summary.sec-h:hover{background:#1a2742;color:#fff}
.side .sec.fold>summary.sec-h::after{margin-left:auto}
.side .sec.fold .sic{width:22px;text-align:center;flex:0 0 22px;font-size:.95rem}
.side .sec.fold[open]{background:#17233c;padding-bottom:6px;margin:4px 0}
.side .sec.fold[open]>summary.sec-h{color:#fff}
.side .sec.fold a{color:#b9c5d8;padding:5px 10px 5px 40px;font-size:.88rem}.side .sec.fold a:hover{color:#fff;background:transparent}
.side .sec.fold a.on{background:var(--brand);color:#fff;font-weight:600;margin:0 6px;padding-left:34px}
.side .sec.fold a.soon{color:#6f7f98}.side .sub-h{padding:8px 10px 2px 40px}
/* ---- Bulk Load 2 ---- */
.bstep{border:1px solid var(--line);border-radius:8px;padding:12px 16px 14px;margin:14px 0}.bstep.soft{background:var(--bg)}
.bstep h2{font-size:1.3rem;font-weight:800;margin:0 0 6px}.bhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}
.bnav{margin-left:auto;display:flex;gap:6px}.bpanels{display:grid;gap:12px}.bpanels.three{grid-template-columns:4fr 5fr 3fr}.bpanels.two{grid-template-columns:4fr 8fr}
@media (max-width:1000px){.bpanels.three,.bpanels.two{grid-template-columns:1fr}}
.bpanel{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.bpanel h4{font-size:.74rem;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}
.bpaste{width:100%;height:11rem;resize:none;border:1px dashed var(--line);background:var(--bg);font-family:ui-monospace,Menlo,monospace;font-size:.8rem}
.bbig{font-size:1.6rem;font-weight:800}.cpy{margin-bottom:6px}.cpyrow{display:flex;gap:4px}.cpyrow input{margin:0;padding:5px 8px}
.cpy.wide{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:8px}
.bsheet input,.bsheet select{margin:0;padding:3px 5px;font-size:.82rem;width:auto;display:inline-block}.bsheet td{padding:4px 5px}
.bsheet tr.built td{opacity:.6}.bsheet tr.picked td{box-shadow:inset 0 2px 0 var(--brand),inset 0 -2px 0 var(--brand)}
.asheet input[type=date]{width:8.6em}.asheet select{max-width:8em}.asheet th{font-size:.78rem;white-space:nowrap}.asheet td.bad{min-width:8em}
.browform{border:2px solid var(--brand);border-radius:10px;padding:12px 16px;margin:16px 0}.browform h2{font-size:1.25rem;font-weight:800;margin:0}
.bthen .obtn{font-size:.95rem;padding:8px 14px}.bshow{margin:6px 0}.obtn.link,.btn.obtn.link{background:none;border:0;color:var(--blue);padding:0}
select.big{font-size:1.25rem!important;font-weight:600}.banner.info{background:var(--brand-soft);border-color:var(--brand)}.err.pre{white-space:pre-wrap}
.bdat{max-width:760px}
label.radio{display:inline-flex;align-items:center;gap:5px;margin:0 10px 0 0;font-weight:400;color:var(--ink)}
label.radio input{width:auto;display:inline-block;margin:0}
details.pop.eqpick[open]>div{position:absolute;z-index:30;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:220px;box-shadow:0 8px 24px rgba(0,0,0,.15);margin-top:6px;display:grid;gap:4px}.eqpick summary{max-width:16em;white-space:normal;font-size:.8rem}input.w-auto{width:auto;display:inline-block}
/* Quote Model (Price page section 5, quote sheet green columns) */
.qmhead{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 10px}
.qmbadge,.qmcheck{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:600;cursor:help;white-space:nowrap}
.qmbadge.s-ok{background:#dcfce7;color:#166534}.qmbadge.s-flag{background:#ffedd5;color:#9a3412}.qmbadge.s-fallback,.qmbadge.s-no_dat,.qmbadge.s-far{background:#fee2e2;color:#991b1b}
.qmcheck.c-exact{background:var(--brand-soft);color:var(--brand)}.qmcheck.c-above{background:#dcfce7;color:#166534}.qmcheck.c-below,.qmcheck.c-far_below,.qmcheck.c-fallback,.qmcheck.c-no_dat{background:#fee2e2;color:#991b1b}
.qmtable tr.picked td{background:var(--brand-soft);font-weight:600}.qmstack tr.tot td,.qmlines tr.tot td{border-top:2px solid var(--ink);font-weight:700}
.qmtable,.qmstack,.qmlines{width:auto;min-width:320px}
details.qmmath{margin:10px 0;border:1px solid var(--line);border-radius:8px;padding:8px 12px}details.qmmath>summary{cursor:pointer;font-weight:600;color:var(--brand)}
.otable th.cg,.otable td.cg{background:#f0fdf4}
.qmcols-t{margin-right:6px}#qm-cols:not(:checked)~.otable-wrap .cg{display:none}
.qmflow{display:flex;flex-wrap:wrap;align-items:center;gap:14px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:8px 0}.qmflow>div{display:flex;flex-direction:column}.qmflow b{font-size:1.05rem}
.qcity{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:8px 0}.qcity textarea{width:100%;max-height:8rem;overflow-y:auto}
.qmcity{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;margin:6px 0}.qmcity>div{border:1px solid var(--line);border-radius:8px;padding:8px}.qmcity .badge{display:inline-block;background:var(--brand);color:#fff;border-radius:999px;padding:0 8px;font-size:.72rem;margin-left:6px}
.qmcity-one{border:1px solid var(--line);border-radius:8px;padding:8px;width:fit-content;min-width:50%;max-width:100%;margin:6px 0}
.qmcity pre,.qmcity-one pre{font-family:ui-monospace,Menlo,monospace;font-size:.8rem}
.esign{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px}
/* Contract template editor */
.kbar2{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin:6px 0 10px}.kbar2 label{font-size:.82rem}
.kedit{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media (max-width:1000px){.kedit{grid-template-columns:1fr}}
.kpages{background:#eef2f6;border-radius:8px;padding:10px;max-height:calc(100vh - 170px);overflow:auto}.kpages.adding canvas{cursor:crosshair}
.knum{font-size:.75rem;color:var(--muted);margin:6px auto 3px;max-width:900px}
.kpage{position:relative;margin:0 auto 10px;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.15)}.kpage canvas{display:block;width:100%;height:auto}
.kbox{position:absolute;background:rgba(0,128,128,.22);outline:1px solid rgba(0,128,128,.8);cursor:move;overflow:visible;touch-action:none}
.kbox.req{background:rgba(255,113,113,.3);outline-color:rgba(214,40,40,.85)}.kbox.db{background:rgba(76,175,80,.25);outline:1px dashed rgba(46,125,50,.9)}
.kbox.sel{outline:2px solid #ff9800;z-index:5}.kbox .kl{position:absolute;left:0;bottom:100%;font-size:10px;white-space:nowrap;background:rgba(255,255,255,.85);padding:0 3px;color:#1d2733;pointer-events:none}
.kbox .kr{position:absolute;right:-5px;bottom:-5px;width:10px;height:10px;background:#ff9800;border-radius:2px;cursor:se-resize}
.kside{position:sticky;top:70px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--card)}.kside h3{font-size:.9rem;margin:8px 0 4px}
.kadd{display:flex;flex-wrap:wrap;gap:4px}.kboxform label{display:block;margin:6px 0;font-size:.82rem}
.kboxform label.chk{display:flex;gap:6px;align-items:flex-start}.kboxform label.chk input{margin-top:3px}
/* Training */
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:10px}
.tcard{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--card);color:inherit;text-decoration:none}
.tcard:hover{border-color:var(--brand);box-shadow:0 2px 10px rgba(31,122,224,.12)}.tcard.done{border-left:4px solid #2e7d32}
.ticon{font-size:1.8rem;line-height:1}.tbody{display:flex;flex-direction:column;gap:3px}.ttags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.tpage .tinstr{max-width:820px;line-height:1.55}.tpage .tinstr img{max-width:100%}
.vcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:8px 0 18px}
.vcard{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--card);color:inherit;text-decoration:none}
.vcard:hover{border-color:#c62828;box-shadow:0 2px 10px rgba(198,40,40,.12)}.vcard img,.vcard .vimg{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.vcard .vimg{display:flex;align-items:center;justify-content:center;background:#c62828;color:#fff;font-size:1.4rem}.vcard>span{display:flex;flex-direction:column;gap:2px}
.vlink{color:#c62828;font-weight:600}.vthumb{width:28px;height:28px;border-radius:50%;object-fit:cover;vertical-align:middle}
.vcard .pill{align-self:flex-start}
/* Training: step-by-step topics and their editor */
.tsteps-toc{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:12px 16px;margin:14px 0;max-width:820px}
.tsteps-toc ol{margin:6px 0 0;padding-left:22px;columns:2;column-gap:28px}.tsteps-toc li{margin:2px 0;break-inside:avoid}
.tstep{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:14px 18px;margin:14px 0;max-width:820px;scroll-margin-top:70px}
.tstep h2{display:flex;align-items:center;gap:10px;font-size:1.15rem;margin:0 0 8px}
.tnum{flex:none;display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;font-size:.95rem}
.tstep-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
.tinstr blockquote{margin:10px 0;padding:8px 12px;border-left:4px solid #8aa4c8;background:rgba(31,122,224,.06);border-radius:6px}
.tinstr blockquote.tip{border-color:#2e7d32;background:rgba(46,125,50,.08)}
.tinstr blockquote.warn{border-color:#c62828;background:rgba(198,40,40,.07)}
.tinstr blockquote.example{border-color:#78909c;background:rgba(120,144,156,.10)}
.tinstr blockquote.say{border-color:var(--brand);background:rgba(31,122,224,.08);font-style:italic}
.tinstr blockquote.say b{font-style:normal}
.tinstr h4{margin:12px 0 4px}.tinstr li{margin:3px 0}
.tdone{margin:18px 0}
.tedit .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.tedit .row .grow{flex:1;min-width:200px}
.tedit label{display:block;margin:6px 0}.tedit input[name=title],.tedit input[name=name]{width:100%}
.tedit-step .tnum{margin-bottom:6px}.tedit-bar{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.tedit-new{border:1px dashed var(--line);border-radius:10px;padding:12px 16px;max-width:820px;margin:14px 0}
.rich{border:1px solid var(--line);border-radius:8px;background:var(--card);margin-top:4px}
.rbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border-bottom:1px solid var(--line);background:rgba(31,122,224,.04)}
.rbtn{border:1px solid var(--line);background:var(--card);border-radius:6px;padding:3px 8px;font-size:.85rem;cursor:pointer;color:inherit}
.rbtn:hover,.rbtn.on{border-color:var(--brand);color:var(--brand)}
.redit{min-height:120px;padding:10px 12px;outline:none;font-weight:normal}.redit:focus{box-shadow:inset 0 0 0 2px rgba(31,122,224,.25)}
.rich textarea{width:100%;min-height:160px;font-family:monospace;font-size:.85rem;border:0;border-top:1px solid var(--line)}
@media (max-width:700px){.tsteps-toc ol{columns:1}}
.otable tr.osubrow td{background:rgba(31,122,224,.06);padding-top:10px}
.tedit label.chk{display:flex;gap:8px;align-items:center;margin:10px 0}.tedit label.chk input{width:auto}
/* Training: covers, progress, quiz, pictures, PDFs */
.tprog{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:12px 16px;margin:6px 0 4px}
.tprog-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:240px}
progress.tbar{appearance:none;-webkit-appearance:none;width:260px;max-width:100%;height:12px;border:0;border-radius:99px;background:#e3ecf8;overflow:hidden;vertical-align:middle}
progress.tbar::-webkit-progress-bar{background:#e3ecf8;border-radius:99px}
progress.tbar::-webkit-progress-value{background:linear-gradient(90deg,#1f7ae0,#2e7d32);border-radius:99px}
progress.tbar::-moz-progress-bar{background:linear-gradient(90deg,#1f7ae0,#2e7d32);border-radius:99px}
progress.tbar.small{width:140px;height:8px}
.tpart-n{float:right;font-weight:600;color:var(--muted)}
.tcard.pic{flex-direction:column;padding:0;overflow:hidden;gap:0}
.tcard-in{display:flex;gap:12px;align-items:flex-start;padding:12px 14px}
.tcover{position:relative;display:block;height:150px;background:#eef4fc;border-bottom:1px solid var(--line)}
.tcover img{width:100%;height:100%;object-fit:cover;display:block}
.tcard.done .tcover img{filter:saturate(.75)}
.tcheck{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:#2e7d32;color:#fff;display:grid;place-items:center;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.thero{position:relative;border-radius:14px;overflow:hidden;margin:0 0 14px;max-width:820px;background:#0f1b33}
.thero img{display:block;width:100%;max-height:300px;object-fit:cover;opacity:.55}
.thero-txt{position:absolute;inset:auto 0 0 0;padding:18px 22px;color:#fff;background:linear-gradient(transparent,rgba(10,20,40,.85))}
.thero-txt h1{margin:4px 0;font-size:1.7rem;color:#fff}.thero-txt p{margin:0;opacity:.92}.thero .ticon{font-size:1.6rem}
.tdone-banner{max-width:820px;border:1px solid #2e7d32;background:rgba(46,125,50,.08);border-radius:10px;padding:10px 14px;margin:0 0 12px}
.tinstr figure{margin:14px 0;max-width:760px}
.tinstr figure img{display:block;width:100%;max-height:440px;object-fit:contain;border-radius:10px;border:1px solid var(--line);background:#fff}
.tinstr figcaption{font-size:.9rem;color:var(--muted);margin-top:6px;line-height:1.4}
.tinstr figcaption small{display:block;font-size:.75rem;opacity:.8;margin-top:2px}
.tquiz{border:2px solid var(--brand);border-radius:12px;background:var(--card);padding:16px 20px;margin:18px 0;max-width:820px;scroll-margin-top:70px}
.tquiz h2{margin:0 0 6px}
.tq{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:10px 0}.tq legend{font-weight:600;padding:0 4px}
.tq.right{border-color:#2e7d32;background:rgba(46,125,50,.05)}.tq.wrong{border-color:#c62828;background:rgba(198,40,40,.05)}
.tq-choice{display:flex;gap:8px;align-items:flex-start;padding:5px 2px;cursor:pointer}.tq-choice input{margin-top:4px}
.tq-why{margin:6px 0 0;color:#c62828}.tq-why.ok{color:#2e7d32}
.tquiz-ok{font-weight:600;color:#2e7d32}.tquiz-try{font-weight:600;color:#c62828}
.tnext{max-width:820px;text-align:right;margin:16px 0}
.tpdf{max-width:820px;margin:18px 0}.tpdf-pages{display:flex;flex-direction:column;gap:10px}
.tpdf-page{border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 6px rgba(0,0,0,.08);max-width:100%;height:auto}
.tedit-q{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:10px 14px;margin:10px 0;max-width:820px}
.tq-edit{display:flex;gap:8px;align-items:center;margin:4px 0}.tq-edit input[name=choice]{flex:1}
.tedit-cover{height:64px;border-radius:8px;border:1px solid var(--line)}
.tedit input[name=image_url],.tedit input[name=question],.tedit input[name=why]{width:100%}
.sitenote{margin:28px 0 6px;padding-top:10px;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}
.tnotice{color:var(--muted);margin:2px 0 10px}
.olink.danger{color:var(--bad);background:none;border:0;cursor:pointer;padding:0;margin-left:8px}
.otable tr.warnrow td{background:rgba(198,40,40,.05)}
.rpic{position:absolute;display:flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 4px 14px rgba(0,0,0,.15);z-index:5}
.rich{position:relative}.redit img{cursor:pointer;max-width:100%}.redit img.rsel{outline:3px solid var(--brand);outline-offset:2px}
.tcard.pic{align-items:stretch}.tcard.pic .tcover{width:100%}
.tq-choice{justify-content:flex-start;text-align:left;font-weight:normal;margin:0}.tq-choice input[type=radio]{width:auto;flex:none;margin:4px 0 0;min-height:0;padding:0}
.tq-edit input[type=radio]{width:auto;flex:none}
.tcover img{object-position:center top}
.tchapnav{display:flex;justify-content:space-between;gap:12px;max-width:820px;margin:0 0 14px}
.tchapnav.bottom{margin:20px 0 6px}
.tchapnav .obtn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:48%;text-align:left;line-height:1.25}
.tchapnav .obtn:last-child{align-items:flex-end;text-align:right}
.tchapnav .obtn small{font-weight:400;font-size:.8rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* Configuration: agents, Finish your settings */
.agentform{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.agentform label.chk{display:flex;gap:6px;align-items:center;margin:0}
.agentform input[type=radio]{width:auto}.agentform input[name=percent]{width:80px}.agentrate{min-width:70px}
.setuplist{display:flex;flex-direction:column;gap:8px;max-width:760px;margin-top:12px}
.setupitem{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:12px 16px;color:inherit;text-decoration:none}
.setupitem:hover{border-color:var(--brand)}.setupitem>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:2px}
.setupmark{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e3ecf8;color:var(--brand);font-weight:700}
.setupitem.done .setupmark{background:#2e7d32;color:#fff}.setupgo{color:var(--brand);font-weight:600;font-size:.9rem}
.setupnag{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--brand);background:rgba(31,122,224,.06);border-radius:10px;padding:10px 14px;margin:0 0 14px}
.setupnag{color:inherit;text-decoration:none}.setupnag>span:first-child{display:flex;flex-direction:column;gap:2px}
.tcover img{object-position:center 60%}
/* Dashboard tiles (Overview) */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0 0 16px}
.tile{position:relative;display:flex;flex-direction:column;gap:6px;min-height:150px;border-radius:12px;padding:14px 16px;color:#fff;text-decoration:none;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.tile b{font-size:1.1rem}.tile span{opacity:.9;font-size:.88rem}.tile .tilego{margin-top:auto;font-weight:600}
.tile ol{margin:4px 0 0;padding-left:20px;font-size:.88rem}.tile li.me{font-weight:700}
.tile .big{font-size:1.6rem;font-weight:700}.tile progress.tbar{width:100%}
.tileswatch{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:middle}

/* Search Loads and Load Templates */
.lsearch{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:10px 14px;margin:0 0 10px}
.lsearch .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin:4px 0}.lsearch .row .grow{flex:1;min-width:260px}.lsearch .row .grow input{width:100%}
.lfilters{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0}.lfilters label.chk{display:flex;gap:5px;align-items:center;margin:0}.lfilters input{width:auto}
.sorth{color:inherit;text-decoration:none;white-space:nowrap}.sorth.on{color:var(--brand)}
.lresults tr.grouprow td{background:rgba(31,122,224,.06);padding-top:10px}.lresults tr.sumrow td{font-weight:700;border-top:2px solid var(--line)}
.tplacts{white-space:nowrap}.tplacts .inline{display:inline-block;margin-right:6px}
/* Locations and Dispatchers */
.locform .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.locform .row .grow{flex:1;min-width:200px}
.locform label{display:block;margin:6px 0}.locform textarea,.locform input[name=detention_policy]{width:100%}
.chkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 12px;margin:6px 0 10px}
.chkgrid label.chk{display:flex;gap:6px;align-items:center;margin:0}.chkgrid input{width:auto}
.locfound{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid var(--line);padding:6px 0}
/* Reports */
.rfilters{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:flex-end;margin:0 0 6px}.rfilters label{display:flex;flex-direction:column;font-size:.8rem;margin:0}
.rfilters label.chk{flex-direction:row}.rfilters select,.rfilters input[type=date]{width:auto;min-width:8em}
.rtotals{display:flex;flex-wrap:wrap;gap:6px 22px;background:var(--brand-soft);border-radius:8px;padding:8px 12px;margin:8px 0}
.sortlink{color:inherit;text-decoration:none;white-space:nowrap}.sortlink.on{color:var(--brand);font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.kpi span{font-size:.8rem;color:var(--muted)}.kpi b{font-size:1.4rem}.kpi small{color:var(--muted)}
.kpigrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.kpibars{width:100%;height:auto}.kpibars rect.rev{fill:var(--brand)}.kpibars rect.mar{fill:var(--ok)}.kpibars text{font-size:11px;fill:var(--muted)}
.key{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:middle}.key.rev{background:var(--brand)}.key.mar{background:var(--ok)}
tr.warnrow td{background:var(--warn-soft)}tr.subtotal td{border-top:2px solid var(--line);background:var(--brand-soft)}
.qreason{margin:6px 0}.qreason input{width:100%}
.rateform .row{display:flex;flex-wrap:wrap;gap:8px}.rateform label{font-size:.8rem}
/* Trucks: Truck Board, maps, Find Trucks */
.tk-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px;background:#7a8594}
.ts-unknown{--ts:#e39b1b}.ts-available{--ts:#2e9e5b}.ts-assigned{--ts:#5fa8e8}.ts-to_pickup{--ts:#1f7ae0}.ts-at_shipper{--ts:#b7791f}
.ts-on_load{--ts:#7b4bd6}.ts-at_receiver{--ts:#c2410c}.ts-busy{--ts:#7a8594}.ts-out_of_service{--ts:#d64545}
.tk-dot[class*="ts-"]{background:var(--ts)}.kcard.tk-card{border-left-color:var(--ts,var(--brand))}
.pill.tk-pill{background:var(--ts);color:#fff;border-color:transparent;font-size:.8rem;vertical-align:middle}
.sg-waiting{--sg:#5fa8e8}.sg-to_pickup{--sg:#1f7ae0}.sg-loading{--sg:#b7791f}.sg-to_delivery{--sg:#7b4bd6}.sg-unloading{--sg:#c2410c}.sg-finished{--sg:#2e9e5b}
.tk-dot[class*="sg-"]{background:var(--sg)}
.tk-add .tk-addbox{position:absolute;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;width:min(520px,92vw);box-shadow:0 6px 20px rgba(0,0,0,.12)}
.tk-add .tk-addbox form+form{border-top:1px solid var(--line);margin-top:10px;padding-top:6px}.tk-add h3{font-size:.9rem;margin:4px 0 6px}
.tmap-wrap{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px;margin-bottom:14px}
.tmap{display:block;width:100%;height:auto;max-height:72vh}.tmap a:hover circle,.tmap a:hover rect{stroke:#1b2430;stroke-width:2.5}
.tm-legend{display:flex;flex-wrap:wrap;gap:14px;padding:6px 4px 2px;align-items:center}
.tm-sq{display:inline-block;width:10px;height:10px;border-radius:2px;background:#1b2430;margin-right:5px;vertical-align:-1px}.tm-sq.late{background:#d64545}
.tm-ring{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px dashed #1f7ae0;background:rgba(31,122,224,.07);margin-right:5px;vertical-align:-2px}
.tk-eqs{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:4px 0 10px}
.otable tr.tk-m-perfect td{background:var(--ok-soft)}
.tk-mkts>summary{list-style:none}.tk-mkts>summary::-webkit-details-marker{display:none}.tk-mkts[open]{flex-basis:100%}
.tk-mktlist{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
/* Carrier side: My Fleet, My Trip (phone first, big buttons) */
.fleetform .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.fleetform label{display:block;margin:6px 0}
.fleetfacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:12px 0}
.fleetfacts>div{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:10px 12px}
.tripstops{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:10px;max-width:760px}
.tripstop{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:12px 14px}
.tripstop.next{border:2px solid var(--brand);box-shadow:0 2px 10px rgba(31,122,224,.15)}.tripstop.done{opacity:.7}
.tripstop-h{display:flex;gap:8px;align-items:center;margin-bottom:4px;font-size:1.05rem}
.tripnote{background:rgba(255,193,7,.12);border-left:4px solid #e0a800;border-radius:6px;padding:8px 10px;margin:8px 0}
.tripgo{margin-top:10px}
.bigbtn{display:block;width:100%;box-sizing:border-box;text-align:center;font-size:1.25rem;font-weight:700;padding:18px 16px;border-radius:12px;border:0;background:var(--brand);color:#fff;cursor:pointer;text-decoration:none;margin:10px 0}
.bigbtn.go{background:#2e7d32}
.trippage .main{max-width:720px}
.tripcard{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:14px 16px;margin:6px 0 12px}
.tripcard h1{margin:2px 0 6px;font-size:1.8rem}.tripstatus{display:flex;gap:6px;flex-wrap:wrap}
.triprefs{display:flex;gap:14px;flex-wrap:wrap;font-size:1.05rem}
.bigfile{display:block;text-align:center;border:2px dashed var(--brand);border-radius:12px;padding:26px 14px;font-size:1.15rem;font-weight:600;color:var(--brand);cursor:pointer}
.bigfile input{display:block;margin:12px auto 0;max-width:100%}
/* Shipments (shipper side) */
.shipmap{padding:8px;margin:10px 0}.usmap{width:100%;height:auto;display:block;max-height:460px}
.usmap path.st{fill:#e9edf3;stroke:#fff;stroke-width:1}.usmap a:hover circle{stroke:#111;stroke-width:2}
.shiplegend .lg{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle;margin:0 2px 0 8px}
.shiplegend .lg.moving{background:#1f5fbf}.shiplegend .lg.waiting{background:#8a94a6}.shiplegend .lg.done{background:#2e7d32}
.shipfacts{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.shipfacts>div{display:flex;flex-direction:column;gap:2px;min-width:160px;padding:10px 12px;border:1px solid var(--line,#dde3ea);border-radius:10px}
.shipform .row{display:flex;flex-wrap:wrap;gap:10px}.shipform .row label{flex:1 1 160px}
/* Reviews */
.revsumm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.stars{color:#d49a00;letter-spacing:1px;white-space:nowrap}.stars.big{font-size:1.3rem}
.revcard{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:10px 0 4px;background:var(--card,#fff)}
.revhead{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.revscores{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.revcard p{margin:6px 0;white-space:pre-wrap}.revreply{border-left:3px solid var(--brand);padding:4px 10px;margin-top:6px;background:var(--bg)}
.revform label{display:block;margin:8px 0}.revform textarea,.revform select{width:100%;max-width:640px}
.revform .tq-choice{display:inline-flex;gap:4px;margin-right:14px}
/* Messages */
.msglist tr.unread td{font-weight:600}
.msgthread{display:flex;flex-direction:column;gap:8px;margin:10px 0;max-width:820px}
.msgpost{border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:var(--bg);margin-right:15%}
.msgpost.mine{background:var(--brand-soft);margin-right:0;margin-left:15%}
.msgbody{white-space:pre-wrap;margin-top:4px}
.msgform{max-width:820px}.msgform label{display:block;margin:8px 0}.msgform textarea,.msgform input[name=subject]{width:100%}
/* Factoring and Authority & insurance */
.factorform label{display:block;margin:6px 0}.factorform input,.factorform textarea,.factorform select{width:100%}
.factorform .row{display:flex;gap:10px;flex-wrap:wrap}.factorform .row label{flex:1;min-width:140px}
.factorform input[type=checkbox]{width:auto}
.factorresult{margin-top:12px;border-radius:10px;padding:10px 14px;border:1px solid var(--line)}
.factorresult.ok{border-color:#2e7d32;background:rgba(46,125,50,.07)}.factorresult.bad{border-color:#c62828;background:rgba(198,40,40,.06)}
.factorrelease{display:flex;gap:6px;margin-top:6px}.factorrelease input{min-width:120px}
.factorpay{display:flex;gap:6px;flex-wrap:wrap}.factorpay input{width:110px}
.agingrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 16px}
.agingbox{display:flex;flex-direction:column;gap:4px;margin:0}.agingbox b{font-size:1.2rem}.agingbox.late b{color:#c62828}
.noabox{border-top:1px solid var(--line);padding:8px 0}.noabox:first-of-type{border-top:0}
/* Fetch (the Load Exchange, app/fetch): posting rows, filters, bids */
.fx-filters .row.dense label{margin-bottom:6px}.fx-checks{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:4px 0 6px}
.fx-checks label.check,.fx-save label.check,label.check{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--ink)}label.check input{width:auto;margin:0}
.fx-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.fx-load{display:flex;gap:14px;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:10px;padding:12px 16px}
.fx-load:hover{border-color:var(--brand)}.fx-main{min-width:0;flex:1}
.fx-lane{font-size:1.08rem;font-weight:700}.fx-lane a{color:var(--ink);text-decoration:none}.fx-lane a:hover{color:var(--blue)}.fx-lane.big{font-size:1.5rem}
.fx-arrow{color:var(--brand);margin:0 .45em;font-weight:400}.fx-city{white-space:nowrap}
.fx-dates{font-size:.88rem;margin:2px 0 4px}.fx-facts{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.84rem;color:var(--muted)}.fx-facts.big{font-size:.95rem;margin-bottom:10px}
.fx-broker{font-size:.86rem;margin-top:6px}.fx-stars{color:#d49b06;font-weight:700}
.fx-price{text-align:right;min-width:120px;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.fx-price .btn{margin-top:6px}.fx-price.inline{align-items:flex-start;text-align:left;margin-bottom:8px}
.fx-rate{font-size:1.3rem;font-weight:800;color:var(--ok)}.fx-rate.offer{font-size:1rem;color:var(--blue)}
.fx-box{border:1px dashed var(--line);border-radius:6px;padding:3px 7px;margin-top:4px;background:var(--brand-soft)}
.fx-review{margin:8px 0;padding:6px 10px;border-left:3px solid var(--line)}
.fx-steps{padding-left:20px}.fx-steps li{margin:4px 0}.fx-steps li.done{color:var(--ok)}.fx-steps li.bad{color:var(--bad)}
.fx-legs{padding-left:20px;margin:6px 0 0}.fx-legs li{margin:3px 0}
.fx-barcell{width:30%}.fx-bar{display:block;height:10px;border-radius:5px;background:var(--brand);width:0}
.fx-bar.w1{width:10%}.fx-bar.w2{width:20%}.fx-bar.w3{width:30%}.fx-bar.w4{width:40%}.fx-bar.w5{width:50%}.fx-bar.w6{width:60%}.fx-bar.w7{width:70%}.fx-bar.w8{width:80%}.fx-bar.w9{width:90%}.fx-bar.w10{width:100%}
input.wide{min-width:340px}
@media (max-width:640px){.fx-load{flex-direction:column;align-items:stretch}.fx-price{align-items:flex-start;text-align:left}input.wide{min-width:0;width:100%}}
.fx-price a.btn,.fx-filters a.btn,.fx-list a.btn{text-decoration:none}
/* Accounting (app/accounting) */
.acctnav{margin:0 0 14px}
.acctstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:0 0 14px}
.acctstats>div,.acctstats>a{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
.acctstats>a.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.acctstats span{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.acctstats b{font-size:1.3rem}.acctstats small{color:var(--muted)}
.acctstats .late b,.late{color:var(--bad)}
.acctbtns{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;margin:0 0 14px}
.acctcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px;align-items:start}
.tbl tr.acctgroup td{font-weight:700;background:var(--bg);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.tbl tr.off td{color:var(--muted);text-decoration:line-through}
.acctreport .tbl tr.sub td{font-weight:600;border-top:1px solid var(--muted)}
.acctreport .tbl tr.big td{font-weight:700;font-size:1.05rem;border-top:2px solid var(--ink);background:var(--brand-soft)}
@media (max-width:600px){.acctcols{grid-template-columns:1fr}}
/* Overview dashboard: live panels (app/dashboards.py) */
.grid.dash{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-auto-flow:row dense}
.panel.live h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.9rem 0 .4rem}
.dash-block:first-of-type h3{margin-top:0}
.dash-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.dash-stat{display:flex;flex-direction:column;gap:1px;padding:7px 9px;border-radius:8px;background:var(--bg);border:1px solid var(--line);color:var(--ink);text-decoration:none;min-width:0}
a.dash-stat:hover{border-color:var(--brand)}
.dash-stat b{font-size:1.15rem;line-height:1.2;overflow-wrap:anywhere}.dash-stat.words b{font-size:.95rem}.dash-stat span{font-size:.74rem;color:var(--muted);line-height:1.25}
.dash-stat.ok b{color:var(--ok)}.dash-stat.warn{background:var(--warn-soft);border-color:transparent}.dash-stat.warn b{color:var(--warn)}
.dash-stat.bad{background:var(--bad-soft);border-color:transparent}.dash-stat.bad b{color:var(--bad)}
.dash-rows{margin-top:8px}.dash-rows li{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.dash-rows li.bad{box-shadow:inset 3px 0 0 var(--bad);padding-left:8px}.dash-rows li.warn{box-shadow:inset 3px 0 0 var(--warn);padding-left:8px}
.dash-main{min-width:0;overflow-wrap:anywhere}.dash-sub{display:block}
.dash-links{display:flex;flex-wrap:wrap;gap:4px 14px;margin:12px 0 0;padding-top:8px;border-top:1px solid var(--line)}
.dash-cta{display:block;background:var(--brand);color:#fff;text-decoration:none;border-radius:10px;padding:14px 16px;margin-bottom:12px;font-size:1.15rem}
.dash-cta span{display:block;font-size:.85rem;opacity:.9}.dash-cta:hover{background:var(--navy2)}
.dash-off{margin:0}
@media (min-width:1100px){.panel-loads_status,.panel-money,.panel-attention,.panel-factor_collections{grid-column:span 2}}
@media (max-width:420px){.grid.dash{grid-template-columns:minmax(0,1fr)}.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
