.portal-shell,.portal-auth-shell{--portal-font:"Plus Jakarta Sans",var(--font-geist-sans),system-ui,sans-serif;--portal-bg:#f5f4f1;--portal-bg-subtle:#eeede9;--portal-surface:#fdfcfa;--portal-surface-raised:#fff;--portal-surface-muted:#f0efec;--portal-ink:#0c0c0c;--portal-ink-secondary:#3a3a38;--portal-ink-muted:#6b6b67;--portal-ink-faint:#9a9a95;--portal-border:#e4e2dd;--portal-border-strong:#d4d1cb;--portal-border-subtle:#eceae6;--portal-accent:#1e3a4a;--portal-accent-muted:#e8eef1;--portal-sidebar-w:15.5rem;--portal-topbar-h:3.5rem;--portal-radius:.75rem;--portal-radius-lg:1rem;--portal-ease:.16s ease;font-family:var(--portal-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.portal-shell{background:var(--portal-bg);min-height:100dvh;color:var(--portal-ink)}.portal-app{min-height:100dvh;display:flex}.portal-app__backdrop{z-index:40;cursor:pointer;background:#0c0c0c47;border:none;position:fixed;inset:0}@media (min-width:1024px){.portal-app__backdrop{display:none}}.portal-sidebar{z-index:50;width:var(--portal-sidebar-w);border-right:1px solid var(--portal-border);background:var(--portal-surface);flex-direction:column;height:100dvh;transition:transform .22s;display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.portal-sidebar--open{transform:translate(0)}@media (min-width:1024px){.portal-sidebar{flex-shrink:0;position:sticky;transform:none}}.portal-sidebar__brand{border-bottom:1px solid var(--portal-border-subtle);padding:1.375rem 1.25rem 1rem}.portal-sidebar__logo{letter-spacing:.14em;color:var(--portal-ink);transition:color var(--portal-ease);font-size:.9375rem;font-weight:700;text-decoration:none}.portal-sidebar__logo:hover{color:var(--portal-ink-muted)}.portal-sidebar__tagline{letter-spacing:.14em;text-transform:uppercase;color:var(--portal-ink-faint);margin-top:.25rem;font-size:.625rem;font-weight:600}.portal-sidebar__nav{flex:1;padding:.75rem .625rem;overflow-y:auto}.portal-sidebar__link{border-radius:var(--portal-radius);color:var(--portal-ink-muted);transition:background var(--portal-ease),color var(--portal-ease);cursor:pointer;align-items:center;gap:.625rem;margin-bottom:.125rem;padding:.5625rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.portal-sidebar__link:hover{background:var(--portal-surface-muted);color:var(--portal-ink)}.portal-sidebar__link--active{background:var(--portal-ink);color:#fff}.portal-sidebar__link--active:hover{background:var(--portal-ink-secondary);color:#fff}.portal-sidebar__icon{flex-shrink:0;width:1.125rem;height:1.125rem}.portal-sidebar__footer{border-top:1px solid var(--portal-border-subtle);padding:.875rem .75rem 1rem}.portal-sidebar__company{border-radius:var(--portal-radius);background:var(--portal-surface-muted);margin-bottom:.625rem;padding:.625rem .75rem}.portal-sidebar__company-label{letter-spacing:.1em;text-transform:uppercase;color:var(--portal-ink-faint);font-size:.625rem;font-weight:600}.portal-sidebar__company-name{text-overflow:ellipsis;white-space:nowrap;color:var(--portal-ink);margin-top:.125rem;font-size:.8125rem;font-weight:600;overflow:hidden}.portal-sidebar__logout{border-radius:var(--portal-radius);width:100%;color:var(--portal-ink-muted);cursor:pointer;transition:background var(--portal-ease),color var(--portal-ease);background:0 0;border:none;align-items:center;gap:.625rem;padding:.5rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:500;display:flex}.portal-sidebar__logout:hover{background:var(--portal-surface-muted);color:var(--portal-ink)}.portal-app__body{flex-direction:column;flex:1;min-width:0;display:flex}.portal-topbar{z-index:30;height:var(--portal-topbar-h);border-bottom:1px solid var(--portal-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fdfcfaeb;justify-content:space-between;align-items:center;gap:1rem;padding:0 1rem;display:flex;position:sticky;top:0}@media (min-width:768px){.portal-topbar{padding:0 1.5rem}}.portal-topbar__start{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.portal-topbar__menu-btn{border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:var(--portal-surface-raised);width:2.25rem;height:2.25rem;color:var(--portal-ink);cursor:pointer;transition:background var(--portal-ease);justify-content:center;align-items:center;display:flex}.portal-topbar__menu-btn:hover{background:var(--portal-surface-muted)}@media (min-width:1024px){.portal-topbar__menu-btn{display:none}}.portal-topbar__search{flex:1;max-width:22rem;display:none;position:relative}@media (min-width:640px){.portal-topbar__search{align-items:center;display:flex}}.portal-topbar__search-icon{width:1rem;height:1rem;color:var(--portal-ink-faint);pointer-events:none;position:absolute;left:.75rem}.portal-topbar__search-input{border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:var(--portal-surface-muted);width:100%;height:2.25rem;color:var(--portal-ink);transition:background var(--portal-ease),border-color var(--portal-ease);padding:0 .875rem 0 2.25rem;font-family:inherit;font-size:.8125rem;font-weight:400}.portal-topbar__search-input::placeholder{color:var(--portal-ink-faint)}.portal-topbar__search-input:focus{border-color:var(--portal-border-strong);background:var(--portal-surface-raised);outline:none}.portal-topbar__search-input:disabled{cursor:not-allowed;opacity:.7}.portal-topbar__end{align-items:center;gap:.5rem;display:flex}.portal-topbar__workspace{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;color:var(--portal-ink-muted);font-size:.8125rem;font-weight:500;display:none;overflow:hidden}@media (min-width:768px){.portal-topbar__workspace{display:block}}.portal-topbar__icon-btn{border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:var(--portal-surface-raised);width:2.25rem;height:2.25rem;color:var(--portal-ink-muted);cursor:pointer;transition:background var(--portal-ease);justify-content:center;align-items:center;display:flex}.portal-topbar__icon-btn:hover:not(:disabled){background:var(--portal-surface-muted)}.portal-topbar__icon-btn:disabled{cursor:not-allowed;opacity:.55}.portal-topbar__signout{border-radius:var(--portal-radius);color:var(--portal-ink-muted);cursor:pointer;transition:color var(--portal-ease);background:0 0;border:none;padding:.375rem .625rem;font-family:inherit;font-size:.8125rem;font-weight:500;display:none}.portal-topbar__signout:hover{color:var(--portal-ink)}@media (min-width:1024px){.portal-topbar__signout{display:block}.portal-sidebar__logout{display:none}}.portal-app__content{flex:1}.portal-app__content--with-aside{gap:0;display:grid}@media (min-width:1280px){.portal-app__content--with-aside{grid-template-columns:1fr 20rem}}.portal-aside{border-left:1px solid var(--portal-border);background:var(--portal-surface);padding:1.5rem;display:none}@media (min-width:1280px){.portal-aside{display:block}}.portal-main{width:100%;margin-left:auto;margin-right:auto;padding:1.75rem 1rem 3rem}@media (min-width:768px){.portal-main{padding:2rem 1.5rem 4rem}}.portal-main--narrow{max-width:42rem}.portal-main--wide{max-width:72rem}.portal-main--full{max-width:none}.portal-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;display:grid}@media (min-width:768px){.portal-grid{gap:1.25rem}}.portal-col-4,.portal-col-6,.portal-col-8,.portal-col-12{grid-column:span 12}@media (min-width:640px){.portal-col-4{grid-column:span 4}.portal-col-6{grid-column:span 6}.portal-col-8{grid-column:span 8}}.portal-page-title{letter-spacing:-.025em;color:var(--portal-ink);font-size:1.625rem;font-weight:600;line-height:1.2}@media (min-width:768px){.portal-page-title{font-size:1.875rem}}.portal-page-lead{max-width:40rem;color:var(--portal-ink-muted);margin-top:.5rem;font-size:.9375rem;font-weight:400;line-height:1.65}.portal-overline{letter-spacing:.1em;text-transform:uppercase;color:var(--portal-ink-faint);font-size:.6875rem;font-weight:600}.portal-card{border-radius:var(--portal-radius-lg);border:1px solid var(--portal-border);background:var(--portal-surface-raised);padding:1.25rem}@media (min-width:768px){.portal-card{padding:1.5rem}}.portal-card-title{letter-spacing:-.01em;color:var(--portal-ink);font-size:.9375rem;font-weight:600}.portal-card-lead{color:var(--portal-ink-muted);margin-top:.25rem;font-size:.875rem;font-weight:400;line-height:1.55}.portal-kpi{border-radius:var(--portal-radius-lg);border:1px solid var(--portal-border);background:var(--portal-surface-raised);transition:border-color var(--portal-ease);padding:1.125rem 1.25rem}.portal-kpi:hover{border-color:var(--portal-border-strong)}.portal-kpi__label{letter-spacing:.08em;text-transform:uppercase;color:var(--portal-ink-faint);font-size:.6875rem;font-weight:600}.portal-kpi__value{letter-spacing:-.03em;color:var(--portal-ink);margin-top:.375rem;font-size:1.75rem;font-weight:600;line-height:1}.portal-kpi__hint{color:var(--portal-ink-muted);margin-top:.375rem;font-size:.8125rem;font-weight:400}.portal-insight{border-radius:var(--portal-radius-lg);border:1px solid var(--portal-border);background:var(--portal-accent-muted);padding:1rem 1.25rem}.portal-insight__title{color:var(--portal-accent);font-size:.8125rem;font-weight:600}.portal-insight__body{color:var(--portal-ink-secondary);margin-top:.25rem;font-size:.8125rem;line-height:1.55}.portal-field{border-radius:var(--portal-radius);background:var(--portal-surface-muted);width:100%;min-height:44px;color:var(--portal-ink);transition:background var(--portal-ease),border-color var(--portal-ease);border:1px solid #0000;padding:.625rem .875rem;font-family:inherit;font-size:.9375rem;font-weight:400;line-height:1.35}.portal-field::placeholder{color:var(--portal-ink-faint)}.portal-field:focus{border-color:var(--portal-border-strong);background:var(--portal-surface-raised);outline:none}.portal-field:disabled{cursor:not-allowed;opacity:.65}.portal-checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:.75rem;display:flex}.portal-checkbox__input{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portal-checkbox__box{border:1.5px solid var(--portal-border-strong);background:var(--portal-surface-raised);width:1.125rem;height:1.125rem;transition:background var(--portal-ease),border-color var(--portal-ease),box-shadow var(--portal-ease);border-radius:.375rem;flex-shrink:0;place-items:center;margin-top:.125rem;display:grid;position:relative}.portal-checkbox__box:after{content:"";width:.3rem;height:.55rem;transition:transform var(--portal-ease);border:2px solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)translate(-.5px,-.5px)scale(0)}.portal-checkbox__input:checked+.portal-checkbox__box{background:var(--portal-ink);border-color:var(--portal-ink)}.portal-checkbox__input:checked+.portal-checkbox__box:after{transform:rotate(45deg)translate(-.5px,-.5px)scale(1)}.portal-checkbox__input:focus-visible+.portal-checkbox__box{box-shadow:0 0 0 3px #0c0c0c1f}.portal-checkbox__input:disabled+.portal-checkbox__box{opacity:.55;cursor:not-allowed}.portal-checkbox__input:disabled~.portal-checkbox__label{opacity:.65;cursor:not-allowed}.portal-checkbox__label{color:var(--portal-ink-secondary);font-size:.875rem;line-height:1.5}@media (min-width:640px){.portal-field{font-size:.875rem}}textarea.portal-field{resize:vertical;min-height:6rem}.portal-label{color:var(--portal-ink-secondary);margin-bottom:.375rem;font-size:.8125rem;font-weight:500;display:block}.portal-btn-primary{border-radius:var(--portal-radius);background:var(--portal-ink);color:#fff;cursor:pointer;min-height:44px;transition:background var(--portal-ease),opacity var(--portal-ease);border:none;justify-content:center;align-items:center;gap:.375rem;padding:.625rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.portal-btn-primary:hover:not(:disabled){background:var(--portal-ink-secondary)}.portal-btn-primary:disabled{cursor:not-allowed;opacity:.55}.portal-btn-primary--lg{padding:.875rem 1.5rem;font-size:.9375rem}.portal-btn-primary--block{width:100%}.portal-btn-secondary{border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:var(--portal-surface-raised);min-height:44px;color:var(--portal-ink);cursor:pointer;transition:background var(--portal-ease),border-color var(--portal-ease);justify-content:center;align-items:center;gap:.375rem;padding:.625rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.portal-btn-secondary:hover:not(:disabled){background:var(--portal-surface-muted);border-color:var(--portal-border-strong)}.portal-btn-secondary:disabled{cursor:not-allowed;opacity:.55}.portal-btn-tertiary{border-radius:var(--portal-radius);color:var(--portal-ink-muted);cursor:pointer;transition:color var(--portal-ease);background:0 0;border:none;align-items:center;gap:.25rem;padding:.375rem .625rem;font-family:inherit;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.portal-btn-tertiary:hover{color:var(--portal-ink)}.portal-link{color:var(--portal-ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--portal-border-strong);text-decoration-color:var(--portal-border-strong);transition:color var(--portal-ease),text-decoration-color var(--portal-ease);cursor:pointer;font-size:.875rem;font-weight:500}.portal-link:hover{color:var(--portal-ink-muted);-webkit-text-decoration-color:var(--portal-ink-muted);text-decoration-color:var(--portal-ink-muted)}.portal-segmented{border-radius:var(--portal-radius);border:1px solid var(--portal-border);background:var(--portal-surface-muted);padding:.1875rem;display:inline-flex}.portal-segmented__item{border-radius:calc(var(--portal-radius) - 2px);color:var(--portal-ink-muted);cursor:pointer;transition:background var(--portal-ease),color var(--portal-ease);background:0 0;border:none;padding:.4375rem .875rem;font-family:inherit;font-size:.8125rem;font-weight:500}.portal-segmented__item:hover:not(.portal-segmented__item--active){color:var(--portal-ink)}.portal-segmented__item--active{background:var(--portal-surface-raised);color:var(--portal-ink);box-shadow:0 1px 2px #0c0c0c0a}.portal-filter-pill{transition:background var(--portal-ease),color var(--portal-ease);cursor:pointer;border-radius:9999px;padding:.375rem .875rem;font-size:.8125rem;font-weight:500}.portal-filter-pill--active{background:var(--portal-ink);color:#fff}.portal-filter-pill--inactive{background:var(--portal-surface-muted);color:var(--portal-ink-secondary)}.portal-filter-pill--inactive:hover{background:var(--portal-bg-subtle)}.portal-badge{letter-spacing:.02em;text-transform:capitalize;border-radius:9999px;align-items:center;padding:.2rem .5625rem;font-size:.6875rem;font-weight:600;display:inline-flex}.portal-badge--upcoming{background:var(--portal-surface-muted);color:var(--portal-ink-secondary)}.portal-badge--confirmed{color:#1e4a63;background:#e0ecf4}.portal-badge--completed{color:#2d4a36;background:#e4ede6}.portal-badge--pending{color:#6b4e1f;background:#f5efe4}.portal-badge--default{background:var(--portal-surface-muted);color:var(--portal-ink-muted)}.portal-empty{border-radius:var(--portal-radius-lg);border:1px dashed var(--portal-border-strong);background:var(--portal-surface-raised);text-align:center;margin-top:2rem;padding:3rem 1.5rem}.portal-empty-title{color:var(--portal-ink);font-size:.9375rem;font-weight:600}.portal-empty-text{color:var(--portal-ink-muted);margin-top:.375rem;font-size:.875rem;line-height:1.55}.portal-skeleton{border-radius:var(--portal-radius);background:var(--portal-border);animation:1.4s ease-in-out infinite portal-pulse}@keyframes portal-pulse{0%,to{opacity:1}50%{opacity:.5}}.portal-alert-success{border-radius:var(--portal-radius);color:#2d4a36;background:#f0f8f3;border:1px solid #b8dcc8;padding:.875rem 1rem;font-size:.875rem;line-height:1.5}.portal-alert-error{color:#b42318;font-size:.875rem}.portal-alert-warning{border-radius:var(--portal-radius);color:#6b4e1f;background:#faf6ed;border:1px solid #e8d4a0;padding:.875rem 1rem;font-size:.875rem;line-height:1.6}.portal-alert-muted{border-radius:var(--portal-radius);border:1px solid var(--portal-border);background:var(--portal-surface-muted);color:var(--portal-ink-secondary);padding:.875rem 1rem;font-size:.875rem;line-height:1.6}.portal-table-wrap{border-radius:var(--portal-radius-lg);border:1px solid var(--portal-border);background:var(--portal-surface-raised);overflow-x:auto}.portal-table{border-collapse:collapse;text-align:left;width:100%;min-width:640px;font-size:.875rem}.portal-table thead{border-bottom:1px solid var(--portal-border);background:var(--portal-surface-muted);letter-spacing:.06em;text-transform:uppercase;color:var(--portal-ink-faint);font-size:.6875rem;font-weight:600}.portal-table th,.portal-table td{padding:.8125rem 1rem}.portal-table tbody tr{border-bottom:1px solid var(--portal-border-subtle);transition:background var(--portal-ease)}.portal-table tbody tr:hover{background:var(--portal-surface-muted)}.portal-table tbody tr:last-child{border-bottom:none}.portal-journey-card{border-radius:var(--portal-radius-lg);border:1px solid var(--portal-border);background:var(--portal-surface-raised);transition:border-color var(--portal-ease);cursor:default;padding:1.25rem}.portal-journey-card:hover{border-color:var(--portal-border-strong)}.portal-journey-ref{letter-spacing:.08em;text-transform:uppercase;color:var(--portal-ink-faint);font-size:.6875rem;font-weight:600}.portal-detail-grid{gap:1rem;display:grid}@media (min-width:640px){.portal-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.portal-detail-label{letter-spacing:.08em;text-transform:uppercase;color:var(--portal-ink-faint);font-size:.6875rem;font-weight:600}.portal-detail-value{color:var(--portal-ink);margin-top:.25rem;font-size:.875rem;font-weight:600}.portal-detail-value--body{color:var(--portal-ink-secondary);white-space:pre-wrap;font-weight:400;line-height:1.6}.portal-auth-shell{background:var(--portal-bg);flex-direction:column;min-height:100dvh;display:flex}.portal-auth-brand{border-bottom:1px solid var(--portal-border);background:var(--portal-surface)}.portal-auth-brand-inner{justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:72rem;margin:0 auto;padding:1rem;display:flex}@media (min-width:768px){.portal-auth-brand-inner{padding:1rem 1.5rem}}.portal-auth-logo{letter-spacing:.12em;color:var(--portal-ink);font-size:1rem;font-weight:700}.portal-auth-tagline{letter-spacing:.14em;text-transform:uppercase;color:var(--portal-ink-faint);font-size:.6875rem;font-weight:600}.portal-auth-main{flex:1;justify-content:center;align-items:center;padding:2rem 1rem 3rem;display:flex}.portal-auth-card{border-radius:var(--portal-radius-lg);border:1px solid var(--portal-border);background:var(--portal-surface-raised);width:100%;max-width:28rem;padding:1.75rem}.portal-auth-card--wide{max-width:42rem}.portal-auth-footer{text-align:center;color:var(--portal-ink-muted);margin-top:1.5rem;font-size:.8125rem}.portal-map-frame{border-radius:var(--portal-radius-lg);border:1px solid var(--portal-border);background:var(--portal-surface-raised);position:relative;overflow:hidden}.portal-map-frame--overlay img{opacity:.92}.portal-map-overlay{pointer-events:none;background:linear-gradient(#fdfcfa14 0%,#fdfcfa6b 45%,#fdfcfab8 100%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.portal-map-overlay__title{border:1px solid var(--portal-border);text-align:center;max-width:18rem;color:var(--portal-ink);background:#fffffff0;border-radius:9999px;padding:.625rem 1rem;font-size:.875rem;font-weight:600}.portal-map-placeholder{border-radius:var(--portal-radius-lg);border:1px dashed var(--portal-border-strong);background:var(--portal-surface-raised);height:12rem;color:var(--portal-ink-muted);justify-content:center;align-items:center;font-size:.875rem;display:flex}.portal-timeline-dot--pickup{background:var(--portal-ink)}.portal-timeline-dot--stop{background:var(--portal-ink-faint)}.portal-timeline-dot--dropoff{background:var(--portal-ink-secondary)}.portal-timeline-line{background:var(--portal-border);flex:1;width:1px;margin:.25rem 0}.portal-quote-footer{border-top:1px solid var(--portal-border);text-align:center;color:var(--portal-ink-muted);margin-top:2.5rem;padding-top:1.5rem;font-size:.875rem}@media (prefers-reduced-motion:reduce){.portal-skeleton{animation:none}.portal-sidebar,.portal-sidebar__link,.portal-btn-primary,.portal-btn-secondary,.portal-journey-card,.portal-table tbody tr{transition:none}}
