@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-v20.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext-v20.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--ink:#101828;--muted:#667085;--field:#d0d5dd;--bg:#f3f5f9;--side:#111a2e;--accent:#4f46e5;--accent-dark:#4338ca;--accent-soft:#eef2ff;--accent-ring:#4f46e52e;--bad:#b42318;--bad-soft:#fef3f2;--line:#e7eaf0;--ok:#067647;--ok-soft:#ecfdf3;--warn:#b54708;--warn-soft:#fffaeb;--shadow:0 1px 2px #1018280a, 0 1px 3px #10182808;--surface:#fff;--surface-2:#fcfcfd;--surface-3:#f9fafb;--soft:#f2f4f7;--faint:#98a2b3;--dim:#c0c6d1;--row-hover:#fafbff;--tint:#f5f8ff;--accent-line:#c7d2fe;--warn-line:#fedf89;--bad-line:#fecdca;--shadow-card:0 1px 2px #1018280a, 0 6px 16px -8px #10182814;--route:#14b8a6;--th-bg:#eef0fb;--th-ink:#3730a3;--danger:#d92d20}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0;font:14px/1.5 Inter,system-ui,sans-serif}svg.lucide{flex:none;width:18px;height:18px}button{font:inherit}.brand{color:#fff;align-items:center;gap:12px;font-size:15px;font-weight:700;display:flex}.brand small{color:#8b95ab;font-size:12px;font-weight:400;display:block}.logo{color:#fff;background:linear-gradient(135deg,#6366f1,#14b8a6);border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.alert{border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:12px;padding:10px 12px;font-size:13px;display:flex}.alert svg.lucide{margin-top:1px}.alert.bad{background:var(--bad-soft);color:var(--bad)}.alert.info{background:var(--accent-soft);color:var(--accent-dark);margin:-8px 0 18px}.login{background:#fff;grid-template-columns:1.15fr 1fr;min-height:100vh;display:grid}.brand-side{background:var(--side);color:#c7cede;flex-direction:column;padding:40px 48px;display:flex;position:relative;overflow:hidden}.brand-side:before{content:"";pointer-events:none;background:radial-gradient(600px 400px at 20% 10%,#6366f159,#0000 60%),radial-gradient(500px 400px at 90% 90%,#14b8a640,#0000 60%);position:absolute;inset:-20%}.brand-side>*{position:relative}.hero{max-width:520px;margin:auto 0}.hero h2{color:#fff;letter-spacing:-.8px;margin:0 0 10px;font-size:34px;line-height:1.15}.hero p{color:#a3acbf;margin:0 0 24px;font-size:15px}.map{width:100%;max-width:480px;height:auto}.map .route{fill:none;stroke:url(#route);stroke-width:1.6px;stroke-dasharray:4 6;animation:1.6s linear infinite flow}.map .dest{fill:#14b8a6}.map text{fill:#a3acbf;stroke:var(--side);stroke-width:4px;paint-order:stroke;stroke-linejoin:round;font:500 11px Inter,sans-serif}.map .origin{fill:#fff;font-weight:700}.map .pulse{fill:none;stroke:#818cf8;transform-origin:252px 80px;animation:2s ease-out infinite pulse}@keyframes flow{to{stroke-dashoffset:-20px}}@keyframes pulse{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(2.4)}}.features{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.features span{color:#dfe3ec;background:#ffffff0f;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:inline-flex}.features svg.lucide{color:#5eead4;width:16px;height:16px}.form-side{place-items:center;padding:40px 24px;display:grid}.form-side form{width:100%;max-width:380px}.form-side h1{letter-spacing:-.5px;margin:0 0 6px;font-size:28px}.sub{color:var(--muted);margin:0 0 28px}.form-side label{margin-bottom:6px;font-size:13px;font-weight:500;display:block}.field{margin-bottom:18px;position:relative}.field>svg.lucide{color:#98a2b3;pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.field input{width:100%;font:inherit;border:1px solid var(--field);border-radius:10px;outline:none;padding:11px 42px 11px 40px;font-size:15px;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}.eye{cursor:pointer;color:#98a2b3;background:0 0;border:0;border-radius:8px;padding:8px;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.eye:hover{color:var(--ink)}.row{justify-content:space-between;align-items:center;margin:-4px 0 22px;font-size:13px;display:flex}.form-side label.check{color:var(--muted);cursor:pointer;align-items:center;gap:8px;margin:0;font-weight:400;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px;margin:0}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.link:hover{text-decoration:underline}.primary{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:15px;font-weight:600;display:flex}.primary:hover{background:var(--accent-dark)}.primary:disabled{opacity:.75;cursor:wait}.spin{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.foot{text-align:center;color:#98a2b3;margin-top:32px;font-size:12px}.app{grid-template-columns:224px minmax(0,1fr);min-height:100vh;font-size:13px;display:grid}.app :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.side{background:radial-gradient(360px 240px at 0 0, #6366f12e, transparent 70%), var(--side);color:#c7cede;flex-direction:column;height:100vh;padding:16px 12px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.side :focus-visible{outline-color:#a5b4fc}.side-head{justify-content:space-between;align-items:center;padding:0 4px 16px;display:flex}.side nav{gap:2px;margin-bottom:12px;display:grid}.side nav a{color:inherit;border-radius:9px;align-items:center;gap:10px;padding:7px 10px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.side nav a svg.lucide{color:#8b95ab;transition:color .15s}.side nav a:hover{color:#fff;background:#ffffff0f}.side nav a[aria-current]{color:#fff;background:#818cf829;box-shadow:inset 0 0 0 1px #818cf838}.side nav a[aria-current]:after{content:"";background:#2dd4bf;border-radius:50%;width:6px;height:6px;margin-left:auto;box-shadow:0 0 0 3px #2dd4bf33}.side nav a:hover svg.lucide,.side nav a[aria-current] svg.lucide{color:#a5b4fc}.side nav hr{border:0;border-top:1px solid #ffffff14;margin:6px 10px}.me{background:#ffffff0a;border:1px solid #ffffff12;border-radius:12px;align-items:center;gap:8px;margin-top:auto;padding:8px 4px 8px 8px;display:flex}.me div{flex:1;min-width:0}.me b{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;display:block;overflow:hidden}.me small{color:#8b95ab;font-size:12px}.me .sign-out{color:#f97066}.me .sign-out:hover{color:#fda29b;background:#f044382e}.me .icon-btn{padding:6px}.me .icon-btn svg.lucide{width:16px;height:16px}.me .switch-co{color:#a5b4fc;margin-right:-8px}.me .switch-co:hover{color:#c7d2fe;background:#818cf82e}.picker{background:radial-gradient(600px 400px at 20% 10%, #6366f159, transparent 60%), radial-gradient(500px 400px at 90% 90%, #14b8a640, transparent 60%), var(--side);color:#c7cede;place-items:center;min-height:100vh;padding:32px 16px;font-size:13px;display:grid}.picker-box{width:100%;max-width:440px;animation:.2s ease-out both rise}.picker h1{color:#fff;letter-spacing:-.5px;margin:28px 0 4px;font-size:26px}.picker p{color:#a3acbf;margin:0 0 18px;font-size:14px}.companies{gap:10px;margin:0;padding:0;list-style:none;display:grid}.companies button{cursor:pointer;text-align:left;width:100%;font:inherit;color:#dfe3ec;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;transition:background .15s,border-color .15s;display:flex}.companies button:hover:not(:disabled){background:#818cf829;border-color:#818cf866}.companies button[aria-current]{border-color:#2dd4bf73}.companies button:disabled{cursor:wait}.companies button>svg.lucide{color:#8b95ab}.co-mark{color:#fff;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-size:18px;font-weight:700;display:grid}.co-0{background:linear-gradient(135deg,#6366f1,#14b8a6)}.co-1{background:linear-gradient(135deg,#f59e0b,#ef4444)}.co-2{background:linear-gradient(135deg,#0ea5e9,#6366f1)}.co-3{background:linear-gradient(135deg,#10b981,#84cc16)}.co-name{flex:1;min-width:0}.co-name b{color:#fff;font-size:15px;font-weight:600;display:block}.co-name small{color:#8b95ab;font-size:12px}.picker-out{color:#f97066;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;margin-top:22px;margin-left:-8px;padding:6px 8px;font-weight:500;display:inline-flex}.picker-out:hover{color:#fda29b;background:#f044382e}.picker-out svg.lucide{width:16px;height:16px}.avatar{color:#fff;background:linear-gradient(135deg,#6366f1,#14b8a6);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:13px;font-weight:600;display:grid}.icon-btn{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px;display:grid}.icon-btn:hover{color:#fff;background:#ffffff14}.side .close,.mobile-bar,.backdrop{display:none}.content{width:100%;padding:20px 24px 32px}.content>:not(.theme-btn){animation:.2s ease-out both rise}@keyframes rise{0%{opacity:0;transform:translateY(4px)}}.num{font-variant-numeric:tabular-nums}.page-head{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.page-head h1{letter-spacing:-.6px;margin:0;font-size:22px;font-weight:650}.page-head p{color:var(--muted);margin:2px 0 0}.actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.btn{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--surface-3);border-color:var(--field)}.btn:active:not(:disabled){transform:translateY(1px)}.btn-accent{background:linear-gradient(180deg, #6366f1, var(--accent));border-color:var(--accent);color:#fff;box-shadow:inset 0 1px #ffffff29,0 1px 2px #4f46e559}.btn-accent:hover{background:linear-gradient(180deg, var(--accent), var(--accent-dark));border-color:var(--accent-dark)}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:14px;min-width:0;padding:14px}.card h2{letter-spacing:-.1px;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 12px;font-size:14px;display:flex}.card h2 small{color:var(--muted);font-size:12px;font-weight:400}.card h2 a{color:var(--accent);border-radius:99px;margin:-2px -8px -2px auto;padding:2px 8px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s}.card h2 a:hover{background:var(--accent-soft)}.chip{box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 16%, transparent);border-radius:99px;padding:2px 9px;font-size:12px;font-weight:500;display:inline-block}.up{color:var(--ok);background:var(--ok-soft)}.down{color:var(--bad);background:var(--bad-soft)}.neutral{color:var(--muted);background:var(--soft)}.retry{margin-left:auto}.journey{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:18px;margin-bottom:12px;padding:16px 16px 14px;display:grid}.stop{min-width:0;color:inherit;padding-right:16px;text-decoration:none;position:relative}a.stop:hover .val,a.stop:focus-visible .val{color:var(--accent)}.stop .sub{color:var(--muted);margin-top:6px;font-size:12px;display:block}.stop .dot{background:var(--surface);border:2.5px solid var(--route);width:11px;height:11px;box-shadow:0 0 0 4px color-mix(in srgb, var(--route) 15%, transparent);border-radius:50%;display:block}.stop.warn .dot{border-color:var(--warn);box-shadow:0 0 0 4px color-mix(in srgb, var(--warn) 15%, transparent)}.stop:nth-child(-n+2):after{content:"";opacity:.6;background:repeating-linear-gradient(90deg, var(--route) 0 6px, transparent 6px 11px);transform-origin:0;height:2px;animation:.6s ease-out both draw;position:absolute;top:4.5px;left:21px;right:10px}.stop:nth-child(2):after{animation-delay:.15s}.stop:nth-child(3):after{animation-delay:.3s}[aria-busy] .stop:after{display:none}@keyframes draw{0%{transform:scaleX(0)}}.stop .label{color:var(--muted);align-items:center;gap:7px;margin-top:12px;font-weight:500;display:flex}.stop .label svg.lucide{width:15px;height:15px;color:var(--faint)}.stop .val{letter-spacing:-.8px;margin:4px 0 6px;font-size:26px;font-weight:650;line-height:1.25}.grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;display:grid}.stack{align-content:start;gap:12px;min-width:0;display:grid}.board{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.tile{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface), var(--surface-2));color:inherit;border-radius:12px;padding:10px 12px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:block}.tile:hover{border-color:var(--accent-line);transform:translateY(-1px);box-shadow:0 6px 16px #4f46e514}.tile b{font-size:15px;display:block}.tile small{color:var(--muted)}.tile .amt{color:var(--accent);margin-top:8px;font-size:16px;font-weight:600}.tile.warn{background:var(--warn-soft);border-color:var(--warn-line)}.tile.warn .amt{color:var(--warn)}.board-foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;font-size:13px;display:flex}.board-foot b{color:var(--ink)}.bars{gap:9px;display:grid}.bar{grid-template-columns:140px 1fr 96px;align-items:center;gap:12px;font-size:13px;display:grid}.bar .track{background:var(--soft);border-radius:99px;height:10px;overflow:hidden}.bar .track i{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--route));height:100%;display:block}.bar .num{text-align:right;color:var(--muted)}.scroll{margin:0 -14px -14px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;white-space:nowrap;border-top:1px solid var(--line);padding:7px 12px}th{color:var(--th-ink);background:var(--th-bg);font-size:12px;font-weight:650}th.r,td.r{text-align:right}td b{font-weight:600}td small{color:var(--muted);display:block}tbody tr:hover{background:var(--row-hover)}.pill{box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 16%, transparent);border-radius:99px;align-items:center;gap:6px;padding:1px 8px;font-size:12px;font-weight:500;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.p-billed{color:var(--muted);background:var(--soft)}.p-unbilled{color:var(--warn);background:var(--warn-soft)}.p-bad{color:var(--bad);background:var(--bad-soft)}.line{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.line:first-of-type{border-top:0;padding-top:0}.line small{color:var(--muted);font-size:12px;display:block}.line .end{text-align:right}.note{border-radius:10px;align-items:flex-start;gap:10px;padding:8px 10px;font-size:13px;display:flex}.note+.note{margin-top:8px}.note svg.lucide{margin-top:1px}.note.bad{background:var(--bad-soft);color:var(--bad)}.note.warn{background:var(--warn-soft);color:var(--warn)}.empty{text-align:center;color:var(--muted);justify-items:center;gap:4px;padding:14px 10px;font-size:13px;display:grid}.empty .ic{background:var(--soft);width:42px;height:42px;color:var(--faint);border-radius:12px;place-items:center;margin-bottom:6px;display:grid}.empty b{color:var(--ink);font-size:14px;font-weight:600}.empty.ok .ic{background:var(--ok-soft);color:var(--ok)}.empty a{color:var(--accent);align-items:center;gap:6px;margin-left:4px;font-weight:500;text-decoration:none;display:inline-flex}.empty a svg.lucide{width:16px;height:16px}.empty a:hover{text-decoration:underline}.skel{background:linear-gradient(90deg, var(--soft) 25%, var(--line) 37%, var(--soft) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.content .icon-btn{color:var(--muted)}.content .icon-btn:hover{background:var(--soft);color:var(--ink)}.content .icon-btn.danger:hover{background:var(--bad-soft);color:var(--bad)}.icon-btn:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert ul{margin:4px 0 0;padding-left:18px}.split{gap:16px;display:grid}.agreements{gap:12px;margin:-4px;padding:4px;display:flex;overflow-x:auto}.agreement{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--line);min-width:260px;box-shadow:var(--shadow-card);border-radius:12px;flex:none;gap:2px;padding:9px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s,background .15s;display:grid}.agreement:hover{border-color:var(--accent-line)}.agreement.on{background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-ring);border-color:#a5b4fc}.agreement:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.agreement .a-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.agreement b{font-size:14px}.agreement small{color:var(--muted);font-size:12px}.card-head{flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.card-head .title{letter-spacing:-.2px;flex-wrap:wrap;align-items:center;gap:10px;margin:0;font-size:16px;display:flex}.card-head .meta{color:var(--muted);margin:2px 0 0;font-size:13px}.card-head .actions{align-items:center}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.search{flex:1;min-width:200px;max-width:360px;position:relative}.search svg.lucide{color:var(--faint);width:16px;height:16px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search input{width:100%;font:inherit;border:1px solid var(--field);background:var(--surface);color:var(--ink);border-radius:8px;outline:none;padding:6px 10px 6px 32px}.search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}.count{color:var(--muted);font-size:13px}.toolbar .btn{margin-left:auto}.toolbar .btn+.btn{margin-left:0}.tablewrap{border-top:1px solid var(--line);max-height:max(320px,100vh - 250px);margin:0 -14px -14px;overflow:auto}.tablewrap,.scroll,.agreements{scrollbar-width:thin;scrollbar-color:var(--dim) transparent}.pagebar{border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 14px 14px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:14px -14px -14px;padding:7px 14px;font-size:12px;display:flex}.pagebar .count{white-space:nowrap;margin-right:auto}.pagebar .pages{align-items:center;gap:2px;display:flex}.pg{font:inherit;min-width:28px;height:28px;color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:7px;place-items:center;padding:0 7px;display:inline-grid}.pg:hover:not(:disabled):not(.on){background:var(--soft)}.pg.on{color:#fff;background:#4f46e5;font-weight:600}.pg:disabled{color:var(--dim);cursor:default}.pg svg.lucide{width:16px;height:16px}.pagebar .gap{color:var(--faint);padding:0 2px}.pagebar .seg button{padding:2px 9px;font-size:12px}th.sr,td.sr{text-align:right;width:1%}td.sr{color:var(--faint);font-variant-numeric:tabular-nums}td.row-x{text-align:right;width:1%;padding-top:0;padding-bottom:0;padding-left:4px}.x-btn{width:26px;height:26px;color:var(--bad);cursor:pointer;vertical-align:middle;background:0 0;border:0;border-radius:7px;place-items:center;transition:background .15s;display:inline-grid}.x-btn:hover,.x-btn:focus-visible{background:var(--bad-soft)}.x-btn svg.lucide{stroke-width:2.6px;width:16px;height:16px}.locked{width:26px;height:26px;color:var(--dim);cursor:help;vertical-align:middle;place-items:center;display:inline-grid}.locked svg.lucide{width:14px;height:14px}.btn.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.btn-danger:hover{background:#b42318;border-color:#b42318}.confirm p{margin:0 0 6px}.confirm .dlg-foot{margin-top:16px}.rates th{z-index:1;box-shadow:inset 0 -1px 0 var(--line);border-top:0;position:sticky;top:0}.rates td{padding-top:6px;padding-bottom:6px}.rates .muted{color:var(--dim);text-align:right}.rates td.none{text-align:center;color:var(--muted);padding:24px}.rates.editing td{padding:4px 6px}.rates.editing td:first-child{padding-left:14px}.cell{font:inherit;font-variant-numeric:tabular-nums;width:100%;min-width:60px;color:var(--ink);text-align:inherit;background:0 0;border:1px solid #0000;border-radius:6px;outline:none;padding:4px 6px}.cell:hover{border-color:var(--line);background:var(--surface)}.cell:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-ring)}.cell.changed{background:var(--warn-soft);border-color:var(--warn-line)}.cell.text{min-width:150px}.rates tr.new td{background:var(--tint)}.savebar{z-index:5;background:var(--side);color:#dfe3ec;border-radius:14px;align-items:center;gap:10px;margin:18px -4px -4px;padding:8px 8px 8px 14px;font-size:13px;display:flex;position:sticky;bottom:16px;box-shadow:0 12px 32px #10182840}.savebar>span{margin-right:auto}.savebar b{color:#fff}.savebar .btn:not(.btn-accent){color:#fff;box-shadow:none;background:0 0;border-color:#fff3}.savebar .btn:not(.btn-accent):hover{background:#ffffff14}.bad-text{color:#fda29b}.empty.big{padding:40px 20px}.empty.big .btn{margin-top:14px}.empty.big .actions{margin:14px 0 0}.empty.big .actions .btn{margin:0}.minis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.minis>div{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:14px;gap:1px;padding:9px 14px;display:grid}.minis small{color:var(--muted);font-weight:500}.minis b{letter-spacing:-.4px;font-size:19px;font-weight:650}.minis span{color:var(--muted);font-size:12px}.seg{background:var(--soft);border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px 10px;font-weight:500;transition:background .15s,color .15s}.seg button:hover:not(.on){color:var(--ink)}.seg button span{color:var(--faint);margin-left:2px;font-size:12px}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.pick{width:34px;padding-right:0!important}.pick input{vertical-align:middle;width:15px;height:15px;accent-color:var(--accent);cursor:pointer;margin:0}tr.clickable{cursor:pointer}tr.cancelled td{color:var(--faint)}tr.cancelled td b{text-decoration:line-through}td.clip{text-overflow:ellipsis;max-width:220px;overflow:hidden}.p-paid{color:var(--ok);background:var(--ok-soft)}.p-part{color:var(--accent);background:var(--accent-soft)}.p-cancel{color:var(--muted);background:var(--soft)}.ok-text{color:var(--ok);font-weight:500}.warn-text{color:var(--warn);font-weight:500}tr.sum td{background:var(--surface-2);font-weight:600}.tablewrap.inset{border:1px solid var(--line);border-radius:10px;max-height:58vh;margin:0}.tablewrap.short{max-height:40vh;margin-top:12px}.grow{flex:1}.btn.danger-btn{color:var(--bad)}.btn.danger-btn:hover{background:var(--bad-soft);border-color:var(--bad-line)}.fields.one{grid-template-columns:1fr}.minis.four{grid-template-columns:repeat(4,minmax(0,1fr))}.minis.two{grid-template-columns:repeat(2,minmax(0,1fr))}.has-tip{-webkit-text-decoration:underline dotted var(--faint);text-decoration:underline dotted var(--faint);text-underline-offset:3px;cursor:help}.rates.ship th,.rates.ship td{padding-left:9px;padding-right:9px}.minis+.card .tablewrap{max-height:max(300px,100vh - 285px)}.alert.info-soft{background:var(--warn-soft);color:var(--warn)}.sub-h{flex-wrap:wrap;align-items:baseline;gap:8px;margin:14px 0 6px;font-size:13px;display:flex}.sub-h small{color:var(--muted);font-size:12px;font-weight:400}.tablewrap.auto{max-height:30vh}.result-line{flex-wrap:wrap;align-items:baseline;gap:8px;margin:14px 0 0;font-size:13px;display:flex}.fields.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:4px}.fields.three label:first-of-type{grid-column:auto}.fields select{font:inherit;border:1px solid var(--field);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;padding:7px 10px;font-weight:400}.app select:not([multiple]){appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:right 15px top 52%,right 10px top 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:30px}.app select:disabled{cursor:default;opacity:.7}.filter,.search input{height:34px}.fields input:not([type=checkbox]),.fields select{height:36px}.fields select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring);outline:none}.fields .check-row{align-self:end;align-items:center;gap:8px;padding-bottom:8px;font-weight:500;display:flex}.fields .check-row input,.rates input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);padding:0}td.order{white-space:nowrap;padding-top:2px!important;padding-bottom:2px!important}td.order .icon-btn{padding:4px;display:inline-grid}td.order .icon-btn svg.lucide{width:15px;height:15px}form>.meta{margin:0 0 10px}.filter{font:inherit;border:1px solid var(--field);background:var(--surface);color:var(--ink);border-radius:8px;max-width:220px;padding:6px 10px}.filter:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring);outline:none}.btn.small{box-shadow:none;gap:5px;padding:3px 9px;font-size:12px}.btn.small svg.lucide{width:14px;height:14px}.btn.push,.card h2 .push{margin-left:auto}.form-summary{background:var(--surface-3);border:1px solid var(--line);border-radius:10px;gap:3px;margin-top:12px;padding:10px 12px;font-size:13px;display:grid}.more{margin-top:10px}.more summary{cursor:pointer;width:max-content;color:var(--accent);padding:2px 0;font-size:13px;font-weight:500}.more[open] summary{margin-bottom:10px}.more .fields label:first-of-type:not(.full){grid-column:auto}.bad-text-strong{color:var(--bad)}td.clip.wide{max-width:520px}.fields input:disabled,.fields select:disabled{background:var(--surface-3);color:var(--muted)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.settings-grid .span-2{grid-column:1/-1}.settings-grid .card h2{align-items:center}.settings-grid .tablewrap.inset{max-height:300px}.kv{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:6px 0;display:flex}.kv:first-of-type{border-top:0;padding-top:0}.kv span{color:var(--muted)}.kv b{text-align:right;font-weight:500}.small-note{margin:10px 0 0;font-size:12px}.pill.tag{margin-left:6px}.pill.tag:before{display:none}.inline-btn{margin-left:8px}td.share{align-items:center;gap:8px;min-width:160px;display:flex}td.share .track{background:var(--soft);border-radius:99px;flex:1;height:8px;overflow:hidden}td.share .track i{border-radius:inherit;background:var(--series-1);height:100%;display:block}td.share .num{text-align:right;width:46px;color:var(--muted)}.new-entry{justify-content:center;margin:0 2px 12px}.fab{display:none}.quick{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.quick-tile{font:inherit;text-align:left;color:var(--ink);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.quick-tile:hover:not(:disabled){border-color:var(--accent-line);background:var(--tint);box-shadow:var(--shadow-card)}.quick-tile:disabled{cursor:default;opacity:.5}.quick-tile .ic{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.quick-tile b{font-weight:600;display:block}.quick-tile small{color:var(--muted);font-size:12px}.toast{z-index:50;width:max-content;max-width:calc(100vw - 32px);margin:0;animation:.16s ease-out pop;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #1018282e}.app{--series-1:#2a78d6;--series-2:#eb6834}.mchart{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:10px 12px 6px}.mchart-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:6px;display:flex}.mchart-head .legend{color:var(--muted);gap:12px;display:flex}.mchart-head .legend span{align-items:center;gap:6px;display:inline-flex}.mchart-head .axis-max{margin-left:auto;font-size:12px}.sw{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.sw.s1{background:var(--series-1)}.sw.s2{background:var(--series-2)}.mchart-plot{border-bottom:1px solid var(--line);grid-template-columns:repeat(12,minmax(0,1fr));height:150px;padding-bottom:20px;display:grid;position:relative}.mchart-plot .grid{border-top:1px dashed var(--line);pointer-events:none;position:absolute;left:0;right:0}.mchart-plot .g50{bottom:calc(10px + 50%)}.mchart-plot .g100{top:0}.mcol{outline:none;flex-direction:column;align-items:center;display:flex;position:relative}.mcol:focus-visible .bars,.mcol:hover .bars{background:var(--tint)}.mcol .bars{border-radius:6px 6px 0 0;flex:1;justify-content:center;align-items:flex-end;gap:2px;width:100%;display:flex}.bar-v{border-radius:4px 4px 0 0;width:min(16px,40%);min-height:0;display:block}.bar-v.s1{background:var(--series-1)}.bar-v.s2{background:var(--series-2)}.mlabel{color:var(--muted);font-size:11px;position:absolute;bottom:-18px}.tip{z-index:3;background:var(--surface);border:1px solid var(--line);white-space:nowrap;pointer-events:none;border-radius:8px;gap:2px;min-width:170px;padding:8px 10px;font-size:12px;display:grid;position:absolute;bottom:70%;left:50%;box-shadow:0 8px 24px #10182824}.tip.left{left:auto;right:50%}.tip span{color:var(--muted);align-items:center;gap:6px;display:flex}.tip span b{color:var(--ink);margin-left:auto}.minis+.card .tablewrap.report{max-height:max(240px,100vh - 510px)}.periodbar{gap:10px;margin-bottom:12px;display:grid}.periodbar>.seg{justify-self:start}.periodbar .toolbar{margin-bottom:0}.date-in{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.chips{flex-wrap:wrap;gap:8px;margin:-2px 0 12px;display:flex}.chips>span{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:99px;align-items:baseline;gap:8px;padding:5px 12px;display:inline-flex}.chips small{color:var(--muted);font-size:12px}.chips b{font-weight:600}.chips+.card .tablewrap.report{max-height:max(240px,100vh - 560px)}.dlg{width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);color:var(--ink);background:var(--surface);border:0;border-radius:16px;padding:0;box-shadow:0 24px 64px #10182840}.dlg.wide{width:min(720px,100vw - 32px)}.dlg.xwide{width:min(1200px,100vw - 32px)}.dlg-head h2{align-items:center;gap:10px;display:flex}.dlg-body .meta{color:var(--muted);margin:0 0 10px}.dlg::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10182880}.dlg[open]{animation:.16s ease-out pop}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.985)}}.dlg form,.dlg-body{padding:0 18px 16px}.dlg-head{background:var(--surface);z-index:1;justify-content:space-between;align-items:center;padding:14px 12px 8px 18px;display:flex;position:sticky;top:0}.dlg-head h2{margin:0;font-size:15px}.dlg .icon-btn{color:var(--muted)}.dlg .icon-btn:hover{background:var(--soft);color:var(--ink)}.dlg-foot{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.file-info{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.file-info>svg.lucide{width:28px;height:28px;color:var(--ok)}.file-info b{word-break:break-all;display:block}.file-info small{color:var(--muted)}.fields{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.fields label{align-content:start;gap:6px;font-size:13px;font-weight:500;display:grid}.fields label:first-of-type,.fields .full{grid-column:1/-1}.fields input{font:inherit;border:1px solid var(--field);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:7px 10px;font-weight:400}.fields input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}.fields small{color:var(--muted);font-size:12px;font-weight:400}.fields .opt{color:var(--muted);font-weight:400}.diff p{margin:0 0 10px}.diff ul{border:1px solid var(--line);border-radius:10px;max-height:280px;margin:0;padding:0;font-size:13px;list-style:none;overflow:auto}.diff li{border-top:1px solid var(--line);font-variant-numeric:tabular-nums;padding:7px 12px}.diff li:first-child{border-top:0}.diff li.add{color:var(--ok);background:var(--ok-soft)}.diff li.del{color:var(--bad);background:var(--bad-soft)}.muted-text{color:var(--muted);font-size:13px}.theme-btn{float:right;margin-left:8px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#ececee;--muted:#a1a1aa;--faint:#71717a;--dim:#52525b;--field:#3f3f46;--line:#27272a;--side:#0e0e10;--bg:#09090b;--surface:#141416;--surface-2:#18181b;--surface-3:#1d1d21;--soft:#242428;--row-hover:#1a1a1e;--tint:#818cf80f;--th-bg:#1d1d2c;--th-ink:#c7d2fe;--accent:#818cf8;--accent-dark:#a5b4fc;--accent-soft:#6366f129;--accent-ring:#818cf84d;--accent-line:#818cf873;--ok:#47cd89;--ok-soft:#17b26a24;--bad:#f97066;--bad-soft:#f0443824;--bad-line:#f9706666;--warn:#fdb022;--warn-soft:#f7900921;--warn-line:#fdb02266;--shadow:0 1px 2px #0000004d;--shadow-card:0 1px 2px #00000059;--route:#2dd4bf}:root[data-theme=dark] .btn-accent{background:linear-gradient(#5b55ef,#4f46e5);border-color:#4f46e5}:root[data-theme=dark] .btn-accent:hover{background:#4338ca;border-color:#4338ca}:root[data-theme=dark] .seg{background:var(--bg)}:root[data-theme=dark] .seg button.on{background:var(--soft)}:root[data-theme=dark] .side{border-right:1px solid var(--line);background:radial-gradient(360px 240px at 0 0, #6366f11a, transparent 70%), var(--side)}:root[data-theme=dark] .savebar,:root[data-theme=dark] .dlg{border:1px solid var(--field)}@media (width<=1440px){.app{grid-template-columns:204px minmax(0,1fr)}.content{padding:16px 18px 28px}th,td,.rates th,.rates td,.rates.ship th,.rates.ship td{padding-left:8px;padding-right:8px}.rates.ship{font-size:12px}.hide-md{display:none}}@media (width>=1800px){.app{grid-template-columns:240px minmax(0,1fr);font-size:14px}.content{padding:24px 32px 36px}.page-head h1{font-size:23px}.stop .val{font-size:28px}.minis b{font-size:21px}.tablewrap{max-height:max(320px,100vh - 275px)}.minis+.card .tablewrap{max-height:max(300px,100vh - 320px)}}@media (width>=2300px){.app{grid-template-columns:260px minmax(0,1fr);font-size:15px}.content{padding:28px 40px 40px}.page-head h1{font-size:26px}svg.lucide{width:19px;height:19px}.stop .val{font-size:31px}.minis b{font-size:23px}.mchart-plot{height:190px}.tablewrap{max-height:max(320px,100vh - 300px)}.minis+.card .tablewrap{max-height:max(300px,100vh - 350px)}}@media (width<=1200px){.journey{grid-template-columns:repeat(3,minmax(0,1fr))}.grid{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.app{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.mobile-bar{z-index:20;background:var(--side);align-items:center;gap:6px;padding:10px 12px;display:flex;position:sticky;top:0}.mobile-bar .icon-btn{color:#fff}.mobile-bar .brand small{display:none}.mobile-bar .logo{width:32px;height:32px}.content .theme-btn,.content .theme-btn:hover{z-index:25;color:#fff;position:fixed;top:10px;right:12px}.content .theme-btn:hover{background:#ffffff14}.side{z-index:40;visibility:hidden;width:280px;max-width:85vw;transition:transform .2s,visibility 0s .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.side.open{visibility:visible;transition:transform .2s;transform:none;box-shadow:0 0 40px #00000059}.side .close{display:grid}.backdrop{z-index:30;background:#10182880;display:block;position:fixed;inset:0}.content{padding:14px 12px 28px}.page-head h1{font-size:19px}.actions{margin-left:0}.stop .val{font-size:21px}.bar{grid-template-columns:96px 1fr 76px}.tablewrap{max-height:65vh}.fields,.fields.three,.settings-grid{grid-template-columns:1fr}.minis.four{grid-template-columns:1fr 1fr}.savebar{flex-wrap:wrap}.fab{z-index:15;color:#fff;cursor:pointer;background:linear-gradient(#6366f1,#4f46e5);border:0;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:fixed;bottom:18px;right:16px;box-shadow:0 8px 20px #4f46e566}.fab svg.lucide{width:24px;height:24px}.toast{bottom:84px}}@media (width<=480px){.journey{grid-template-columns:repeat(2,minmax(0,1fr))}.stop:after,.stop .label svg.lucide{display:none}.minis:not(.four){grid-template-columns:1fr 1fr}.minis:not(.four):not(.two)>div:last-child{grid-column:1/-1}.board{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:12px}.scroll,.tablewrap{margin:0 -12px -12px}.quick{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.skel,.side,.tile,.stop:after,.content>*,.dlg[open],.toast{transition:none;animation:none}}@media (width<=900px){.login{grid-template-rows:auto 1fr;grid-template-columns:1fr}.brand-side{padding:20px 16px}.hero{display:none}.form-side{place-items:start center;padding:32px 16px}}@media (prefers-reduced-motion:reduce){.map .route,.map .pulse,.spin{animation:none}}.print-area{display:none}@page{size:A4 portrait;margin:8mm}@media print{#root,.dlg,.toast{display:none!important}body{background:#fff}.print-area{color:#000;background:#fff;font:11px/1.3 Arial,Helvetica,sans-serif;display:block}.bill-sheet{break-after:page;page-break-after:always}.bill-sheet:last-child{break-after:auto;page-break-after:auto}.bill-sheet header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.bill-sheet header b{font-size:18px}.bill-sheet header span:last-child{border-bottom:1px solid #000}.bill-id{justify-content:space-between;margin-bottom:2px;font-weight:700;display:flex}.bill-sheet table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:7.5px}.bill-sheet th,.bill-sheet td{text-align:center;vertical-align:middle;overflow-wrap:break-word;color:#000;background:#fff;border:1px solid #000;padding:3px 2px}.bill-sheet th{white-space:pre-line;font-weight:700}.bill-sheet td.r{text-align:right}.bill-sheet tr.sum td{font-weight:700}}
