/* Genius Afrika — outils publics (ports/aéroports, calculateur, conteneurs, Incoterms, suivi) */
.tl-hub{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.tl-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--text);transition:border-color .15s,box-shadow .15s,transform .15s}
.tl-card b{font-family:var(--display);font-size:20px;color:var(--ink);line-height:1.2}.tl-card span{color:var(--muted);font-size:15px}
.tl-card .link-arrow{margin-top:auto;font-style:normal;color:var(--red);font-weight:600;display:inline-flex;gap:6px;align-items:center}.tl-card .link-arrow svg{width:14px;height:14px}
.tl-card:hover{border-color:var(--navy-500);box-shadow:0 10px 24px -14px rgba(28,19,80,.45);transform:translateY(-2px)}
.tl-box{display:grid;gap:14px}
.tl-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tl-chips button{border:1px solid var(--line);background:#fff;color:var(--muted);font:inherit;font-size:14px;padding:6px 12px;border-radius:999px;cursor:pointer}
.tl-chips button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.tl-cty{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:14px;color:var(--muted)}.tl-cty select{max-width:220px}
.tl-res{min-width:0}.tl-res td{padding:9px 10px;border-top:1px solid var(--line);vertical-align:middle;font-size:15px}
.tl-res tr:first-child td{border-top:0}.tl-res .nm b{color:var(--ink)}.tl-res .nm small{display:block;color:var(--muted);font-size:13px}
.tl-res .cd{font-family:"IBM Plex Mono",monospace;font-size:14px;white-space:nowrap;color:var(--ink)}
.tl-tag{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:2px 7px;border-radius:999px;margin:1px 3px 1px 0;background:var(--paper-2);color:var(--navy-700);white-space:nowrap}
.tl-tag.p{background:#E6EEFB;color:#1D4C9A}.tl-tag.a{background:#FBEDED;color:var(--red-600)}.tl-tag.m{background:#E9F6EE;color:var(--ok)}
.tl-res .go{white-space:nowrap;text-align:right}.tl-res .go a{font-size:13.5px;font-weight:600;color:var(--red);text-decoration:none;margin-left:10px}
.tl-calc{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:24px;align-items:start}.tl-full{grid-column:1/-1}
.tl-h{font-family:var(--display);font-size:22px;color:var(--ink);margin:0 0 14px}.tl-h2{font-family:var(--display);font-size:18px;color:#fff;margin:20px 0 10px}
.tl-dh,.tl-row{display:grid;grid-template-columns:.7fr 1fr 1fr 1fr 1.1fr 36px;gap:8px;align-items:center}
.tl-dh span{font-size:12.5px;color:var(--muted);font-weight:600}.tl-row{margin:6px 0}.tl-row input{width:100%;min-width:0}
.tl-row button{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer;line-height:1}.tl-row button:hover{color:var(--red)}
.tl-dims .btn{margin-top:8px}
.tl-fit{display:grid;grid-template-columns:72px 1fr 64px;gap:8px;align-items:center;margin:8px 0;font-size:14px}
.tl-bar{height:10px;border-radius:5px;background:rgba(255,255,255,.14);overflow:hidden}.tl-bar i{display:block;height:100%;background:#7DD3A0;border-radius:5px}.tl-bar i.over{background:var(--red-soft)}
.tl-fit b{text-align:right;font-family:"IBM Plex Mono",monospace;font-weight:500}
.tl-fn{color:var(--on-navy-2)!important;margin:10px 0 16px}
.tl-conv{display:grid;grid-template-columns:1fr auto 1fr auto;gap:6px;align-items:center}.tl-conv input{min-width:0}.tl-conv em{font-style:normal;color:var(--muted);font-size:14px;min-width:64px}
.tl-spec td:first-child,.tl-inc td:first-child{white-space:nowrap}.tl-spec td,.tl-spec th,.tl-inc td,.tl-inc th{padding:10px 12px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.tl-spec th,.tl-inc th{background:var(--paper);font-size:13px;color:var(--muted);font-weight:600}
.tl-inc .tl-s{color:var(--navy-700);font-weight:600}.tl-inc .tl-b{color:var(--red-600);font-weight:600}
.tl-tip{margin-top:28px;max-width:820px}
.tl-trk{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.tl-out{border:1px solid var(--line);border-radius:6px;padding:16px;display:grid;gap:8px;background:var(--paper)}
.tl-out b{font-family:var(--display);font-size:18px;color:var(--ink)}.tl-out .ok{color:var(--ok);font-weight:600}.tl-out .err{color:var(--red-600);font-weight:600}
.tl-out .btns{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:900px){.tl-calc{grid-template-columns:1fr}.tl-cty{margin-left:0;width:100%}.tl-cty select{max-width:none;flex:1}}
@media (max-width:600px){.tl-dh{display:none}.tl-row{grid-template-columns:repeat(4,1fr) 1.2fr 30px;gap:5px}.tl-row input{font-size:16px;padding:8px 6px}
  .tl-res .go a{display:block;margin:2px 0}.tl-trk{grid-template-columns:1fr}.tl-conv{grid-template-columns:1fr auto 1fr;}.tl-conv em{grid-column:1/-1}}
.tl-cty select{font:inherit;font-size:15px;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px;min-height:40px}
@media (max-width:900px){.tl-cty{flex-direction:column;align-items:stretch;gap:4px}.tl-cty select{width:100%}}
