/* P13 Logistics Back Office — dispatch & handoff */
.page-logi main>section{overflow-x:clip}
.mono{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--p3)}
.crumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:14px;color:var(--mut);margin-bottom:22px}
.crumbs a:hover{color:var(--p3)}.crumbs b{color:var(--p3);font-weight:600}
:root{--nv:#120f2e;--nv2:#1d1848;--ok:#1c9d61;--okb:#e6f7ee;--ex:#c2570c;--exb:#fff4e6;--amb:#f5a524}

/* hero */
.lg-hero{position:relative;background:radial-gradient(900px 520px at 78% 60%,#3a2590 0,transparent 65%),linear-gradient(180deg,var(--nv),#18133d);color:#fff;padding:56px 0 0;overflow:hidden}
.lg-map{position:absolute;inset:0;width:100%;height:100%}
.rt{fill:none;stroke-width:2;stroke-dasharray:8 10;animation:lgDash 30s linear infinite}
.rt1{stroke:rgba(156,103,255,.55)}.rt2{stroke:rgba(79,209,151,.3);animation-duration:40s;animation-direction:reverse}
@keyframes lgDash{to{stroke-dashoffset:-900}}
.pin{fill:var(--p2);transform-box:fill-box;transform-origin:center;animation:pinPulse 2.8s ease-in-out infinite}
.p2{animation-delay:.7s}.p3{fill:#4fd197;animation-delay:1.4s}.p4{fill:#4fd197;animation-delay:2.1s}
@keyframes pinPulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.9);opacity:.35}}
.lg-hin{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:end}
.lg-hin>*{min-width:0}
.lg-copy{padding-bottom:96px}
.lg-hero .crumbs{color:#a9a3cc}.lg-hero .crumbs b{color:#c9b3ff}
.lg-hero .eb{color:#c9b3ff}
.lg-h1{color:#fff;font-size:clamp(32px,3.5vw,50px);margin:18px 0 22px;max-width:640px}
.hl-a,.hl-b{position:relative;white-space:nowrap}
.hl-a{color:#c9b3ff}.hl-b{color:#7ee2b0}
.hl-a:after,.hl-b:after{content:"";position:absolute;left:0;right:0;bottom:-.02em;height:3px;border-radius:3px;background:repeating-linear-gradient(90deg,currentColor 0 10px,transparent 10px 16px);transform:scaleX(0);transform-origin:left;animation:hlDraw .8s var(--ease) 1.1s forwards}
.hl-b:after{animation-delay:1.35s}
@keyframes hlDraw{to{transform:scaleX(1)}}
.lg-hero .lead{color:#e8e4f7}.lg-hero .sub{color:#b5afd3}
.lg-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.lg-o:hover{background:rgba(255,255,255,.08)}
.lg-vis{position:relative;min-height:600px}
.lg-eagle{position:absolute;right:-10px;bottom:0;width:66%;max-width:420px;filter:drop-shadow(0 -10px 40px rgba(127,66,244,.45))}
.manifest{position:absolute;left:0;top:40px;width:min(340px,62%);background:#fff;color:var(--ink);border-radius:18px;padding:16px;box-shadow:0 30px 60px rgba(0,0,0,.35);animation:floaty 7s ease-in-out infinite;z-index:2}
.manifest:before{content:"";position:absolute;left:-1px;top:22px;bottom:22px;width:4px;border-radius:0 4px 4px 0;background:var(--p)}
.mf-top{display:flex;justify-content:space-between;align-items:center}
.mf-top em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--mut);border:1px solid var(--line);border-radius:10px;padding:2px 7px}
.mf-ref{font-family:"JetBrains Mono",monospace;font-size:22px;font-weight:700;margin:6px 0 8px;letter-spacing:.02em}
.mf-row{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-top:1px dashed var(--line);font-size:12.5px;opacity:0;transform:translateY(6px);animation:mfIn .45s var(--ease) forwards}
.mf-row span{color:var(--mut);font-size:11.5px}.mf-row b{font-weight:700}
.mf-row:nth-of-type(3){animation-delay:.9s}.mf-row:nth-of-type(4){animation-delay:1.05s}.mf-row:nth-of-type(5){animation-delay:1.2s}.mf-row:nth-of-type(6){animation-delay:1.35s}.mf-row:nth-of-type(7){animation-delay:1.5s}
@keyframes mfIn{to{opacity:1;transform:none}}
.mf-row.warn{background:var(--exb);margin:0 -8px;padding:8px;border-radius:8px;border-top-color:transparent}
.flipword{position:relative;display:block;height:1.3em;overflow:hidden}
.flipword i{position:absolute;left:0;top:0;font-style:normal;white-space:nowrap;transition:transform .5s var(--ease),opacity .5s}
.fw1{color:var(--ex)}
.fw2{color:var(--p3);transform:translateY(110%);opacity:0}
.manifest.rev .fw1{transform:translateY(-110%);opacity:0}.manifest.rev .fw2{transform:none;opacity:1}
.manifest.rev .mf-row.warn{background:#f4efff}
.avt{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ok);color:#fff;font-style:normal;font-size:9.5px;font-weight:800;margin-right:7px;vertical-align:middle}

/* docks */
.hp-head{max-width:760px;margin-bottom:36px}
.docks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dock{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;padding:70px 22px 24px;box-shadow:var(--sh);min-height:250px}
.dock:before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(135deg,#1c1840 0 12px,var(--amb) 12px 24px)}
.bay{position:absolute;top:24px;left:22px;font-family:"JetBrains Mono",monospace;font-size:28px;font-weight:700;color:#e3d8fb}
.dock h3{font-size:19px;margin-bottom:8px}.dock p{font-size:14.5px;color:var(--mut)}
.door{position:absolute;inset:10px 0 0 0;z-index:2;background:repeating-linear-gradient(180deg,#2a2463 0 22px,#221d55 22px 24px);display:grid;place-items:center;transition:transform 1.1s cubic-bezier(.7,0,.2,1);transition-delay:calc(var(--d,0s) + .35s)}
.door span{font-family:"JetBrains Mono",monospace;font-size:13px;letter-spacing:.2em;color:#b9a8f0;background:rgba(0,0,0,.25);padding:6px 12px;border-radius:6px}
.dock.vis .door{transform:translateY(-102%)}
.docset{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:center;margin-top:24px;padding:22px 24px;border-radius:18px;background:var(--lav2);border:1px dashed #d8cdea}
.docset>*{min-width:0}
.ds-l p{font-size:15px;margin-top:6px}
.ds-chips{display:flex;flex-wrap:wrap;gap:8px}
.ds-chips span{padding:8px 12px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:700}
.ds-chips span:before{content:"◆ ";color:var(--p);font-size:10px}
.ds-chips .na{color:var(--mut);background:transparent;border-style:dashed;text-decoration:line-through;text-decoration-color:rgba(200,50,79,.6)}
.ds-chips .na:before{content:"Not assumed · ";color:var(--ex);font-size:11px;display:inline-block;text-decoration:none}

/* handoff */
.hd-head{max-width:780px;margin-bottom:34px}
.relay{display:grid;grid-template-columns:160px 1fr 160px;align-items:center;gap:0}
.relay>*{min-width:0}
.shift{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;text-align:center;box-shadow:var(--sh)}
.shift b{display:block;font-size:15px;margin-top:4px}
.s-in{border-color:#bfe8d3}.s-in .mono{color:var(--ok)}
.track{position:relative;height:96px}
.tk-line{position:absolute;left:0;right:0;top:50%;height:2px;background:repeating-linear-gradient(90deg,#cdb6fb 0 8px,transparent 8px 14px)}
.baton{position:absolute;top:50%;left:6px;transform:translateY(-50%);display:flex;align-items:center;gap:6px;background:var(--ink);color:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 14px 28px rgba(20,16,50,.3)}
.baton .mono{color:#c9b3ff;margin-right:4px}
.baton i{width:9px;height:9px;border-radius:50%;background:#48426e;transition:background .25s}
.relay.vis .baton{animation:batonRun 5.5s var(--ease) infinite}
.relay.vis .baton i{animation:bdot 5.5s infinite}
.relay.vis .baton i:nth-of-type(2){animation-delay:.25s}.relay.vis .baton i:nth-of-type(3){animation-delay:.5s}.relay.vis .baton i:nth-of-type(4){animation-delay:.75s}.relay.vis .baton i:nth-of-type(5){animation-delay:1s}
@keyframes batonRun{0%,12%{left:6px}62%,88%{left:calc(100% - 196px)}100%{left:6px;opacity:0}}
@keyframes bdot{0%,8%{background:#48426e}14%,90%{background:#4fd197}100%{background:#48426e}}
.five{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:26px 0 0;padding:0}
.five li{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:14px;opacity:0;transform:translateY(12px);transition:.5s var(--ease)}
.five li span{font-family:"JetBrains Mono",monospace;font-size:11px;color:#fff;background:var(--p);border-radius:7px;padding:4px 6px}
.five.vis li{opacity:1;transform:none}
.five.vis li:nth-child(2){transition-delay:.08s}.five.vis li:nth-child(3){transition-delay:.16s}.five.vis li:nth-child(4){transition-delay:.24s}.five.vis li:nth-child(5){transition-delay:.32s}
.conflict{display:grid;grid-template-columns:auto auto auto 1fr;gap:20px;align-items:center;margin-top:22px;padding:22px 24px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh)}
.conflict>*{min-width:0}
.cf-src{display:flex;gap:8px}
.srcbox{padding:10px 12px;border-radius:12px;border:1px solid #f6d8bb;background:var(--exb)}
.srcbox small{display:block;font-size:11px;color:var(--mut)}.srcbox b{font-size:14px;color:var(--ex)}
.cf-arrow{font-size:22px;color:var(--p)}
.cf-res{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.stamp{font-family:"JetBrains Mono",monospace;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--p3);border:2px solid var(--p3);border-radius:8px;padding:6px 12px;transform:rotate(-6deg) scale(1.8);opacity:0}
.conflict.vis .stamp{animation:stampIn .5s cubic-bezier(.3,1.6,.5,1) .7s forwards}
@keyframes stampIn{to{transform:rotate(-6deg) scale(1);opacity:1}}
.notc{font-size:12.5px;font-weight:600;color:var(--mut);text-decoration:line-through;text-decoration-color:rgba(200,50,79,.7)}
.conflict p{font-size:14.5px;color:var(--mut)}

/* exceptions route */
.ex-head{max-width:800px;margin-bottom:30px}
.route{position:relative;padding-top:10px}
.route-svg{display:block;width:100%;height:120px}
.rbase{fill:none;stroke:#ece5f8;stroke-width:10;stroke-linecap:round;vector-effect:non-scaling-stroke}
.rdraw{fill:none;stroke:var(--p);stroke-width:3;stroke-dasharray:1400;stroke-dashoffset:1400;vector-effect:non-scaling-stroke;transition:stroke-dashoffset 2.2s var(--ease) .2s}
.route.vis .rdraw{stroke-dashoffset:0}
.stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:-68px;position:relative}
.stop{text-align:center;padding:0 10px;opacity:0;transform:translateY(14px);transition:.5s var(--ease);transition-delay:calc(.6s + var(--i)*.45s)}
.route.vis .stop{opacity:1;transform:none}
.spin{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 14px;border-radius:50%;background:var(--ex);color:#fff;font-weight:900;box-shadow:0 0 0 8px rgba(194,87,12,.14)}
.stop b{display:block;font-size:17px}
.stop small{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--p3);background:var(--lav);border-radius:20px;padding:6px 12px}
.ex-note{margin-top:28px;font-size:13px;color:var(--mut);text-align:center}

/* scope */
.lg-scope{background:linear-gradient(160deg,var(--nv),var(--nv2));color:#fff}
.lg-scope .eb{color:#c9b3ff}.lg-scope .svh{color:#fff}.lg-scope p{color:#c4bfdc}
.sc-strong{color:#fff!important;font-weight:700;margin-top:14px}
.sc-in{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.sc-in>*{min-width:0}
.bound{position:relative;display:grid;place-items:center;aspect-ratio:1/.82;max-width:520px;width:100%;margin:0 auto}
.bd-core{position:relative;z-index:2;width:48%;aspect-ratio:1;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 35% 30%,var(--p2),var(--p3));box-shadow:0 0 0 14px rgba(156,103,255,.16),0 0 0 30px rgba(156,103,255,.08);padding:16px}
.bd-core .mono{color:#efe7ff}.bd-core b{font-size:18px;margin-top:6px}
.bd-out span{position:absolute;padding:8px 13px;border-radius:10px;border:1px dashed rgba(255,255,255,.3);color:#dcd7f0;font-size:13.5px;font-weight:700;white-space:nowrap;opacity:0;transition:.6s var(--ease)}
.bd-out span:after{content:"";position:absolute;left:8px;right:8px;top:50%;height:2px;background:#ff6b86;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.bd-out span:nth-child(1){top:4%;left:4%}.bd-out span:nth-child(2){top:4%;right:2%}.bd-out span:nth-child(3){bottom:4%;left:0}.bd-out span:nth-child(4){bottom:4%;right:4%}
.bound.vis .bd-out span{opacity:1}
.bound.vis .bd-out span:after{transform:scaleX(1)}
.bound.vis .bd-out span:nth-child(1):after{transition-delay:.8s}.bound.vis .bd-out span:nth-child(2):after{transition-delay:1s}.bound.vis .bd-out span:nth-child(3):after{transition-delay:1.2s}.bound.vis .bd-out span:nth-child(4):after{transition-delay:1.4s}

/* measure */
.ms-in{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ms-in>*{min-width:0}
.gauges{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
.gg{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;border:1px solid var(--line);background:#fff}
.gg svg{flex:none;width:54px;height:54px;transform:rotate(-90deg)}
.gg circle{fill:none;stroke:#eee8f8;stroke-width:6}
.gg .gv{stroke:var(--p);stroke-linecap:round;stroke-dasharray:151;stroke-dashoffset:151;transition:stroke-dashoffset 1.4s var(--ease) .3s}
.gauges.vis .gv{stroke-dashoffset:calc(151 - 151 * var(--v))}
.gg:nth-child(n+2) .gv{stroke:var(--ex)}
.gg b{font-size:14px;line-height:1.35}
.ms-note{display:block;margin-top:10px;font-size:12px;color:var(--mut)}
.cause{background:var(--lav2);border:1px solid var(--line);border-radius:22px;padding:22px}
.cause img{width:100%;height:auto;display:block}
.cbrk{display:grid;grid-template-columns:1fr 60px 1fr;align-items:center;gap:8px;margin-top:10px}
.cbrk span{font-size:13px;font-weight:700;text-align:center;padding:9px;border-radius:10px;background:#fff;border:1px solid var(--line)}
.cbrk i{position:relative;height:2px}
.cbrk i:before,.cbrk i:after{content:"";position:absolute;top:0;height:2px;width:44%;background:var(--mut);transition:transform .6s var(--ease) .6s}
.cbrk i:before{left:0}.cbrk i:after{right:0}
.cause.vis .cbrk i:before{transform:rotate(-24deg) translateY(-4px);background:#c8324f}
.cause.vis .cbrk i:after{transform:rotate(-24deg) translateY(4px);background:#c8324f}
.cause p{font-size:14px;color:var(--mut);margin-top:14px}

/* faq */
.lfq-head{max-width:720px;margin-bottom:30px}
.lfq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;align-items:start}
.qn{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--p);margin-right:14px;flex:none}
.qa button{justify-content:flex-start}.qa button .pm{margin-left:auto}

@media (max-width:1100px){
 .lg-hin{grid-template-columns:1fr;gap:10px}
 .lg-copy{padding-bottom:0}
 .lg-vis{min-height:520px;max-width:620px}
 .docks{grid-template-columns:1fr 1fr}
 .docset,.sc-in,.ms-in{grid-template-columns:1fr;gap:32px}
 .five{grid-template-columns:repeat(3,minmax(0,1fr))}
 .conflict{grid-template-columns:1fr;gap:14px}
 .cf-arrow{transform:rotate(90deg);width:max-content}
}
@media (max-width:700px){
 .lg-hero{padding-top:34px}
 .lg-vis{min-height:0;padding:10px 0 290px}
 .lg-eagle{width:230px;right:-14px}
 .manifest{position:relative;width:100%;top:0;left:0;animation:none}
 .mf-row{grid-template-columns:96px minmax(0,1fr)}
 .docks,.lfq-grid,.gauges{grid-template-columns:1fr}
 .dock{min-height:0}
 .relay{grid-template-columns:1fr;gap:10px}
 .track{height:70px}
 @keyframes batonRun{0%,12%{left:0}62%,88%{left:calc(100% - 190px)}100%{left:0;opacity:0}}
 .five{grid-template-columns:1fr 1fr}
 .route-svg{display:none}
 .stops{grid-template-columns:1fr;margin-top:0;gap:26px}
 .bound{aspect-ratio:auto;display:flex;flex-direction:column;gap:14px}
 .bd-core{width:62%}
 .bd-out{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
 .bd-out span{position:relative;inset:auto!important}
 .cbrk{grid-template-columns:1fr 40px 1fr}
}
@media (prefers-reduced-motion:reduce){
 .rt,.pin,.manifest,.relay.vis .baton,.relay.vis .baton i{animation:none}
 .mf-row{animation:none;opacity:1;transform:none}
 .hl-a:after,.hl-b:after{animation:none;transform:none}
 .door{transition:none}
}
