.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-5);border-radius:var(--radius-pill);font:500 var(--fs-body-sm) / 1 var(--font-ui);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-press) ease-out, border-color var(--dur-press) ease-out, color var(--dur-press) ease-out;border:1px solid #0000;display:inline-flex;position:relative}.btn--sm{min-height:32px;padding:0 var(--space-4)}.btn--sm:after{content:"";position:absolute;inset:-4px 0}.btn--primary{background:var(--navy);color:var(--surface)}.btn--primary:hover:not(:disabled),.btn--primary[data-force=hover]{background:color-mix(in srgb, var(--navy) 85%, var(--text-strong))}.btn--secondary{background:var(--surface);border-color:var(--sky-line);color:var(--navy)}.btn--secondary:hover:not(:disabled),.btn--secondary[data-force=hover]{background:color-mix(in srgb, var(--sky) 8%, var(--surface))}.on-sky .btn--secondary{border-color:var(--surface);color:var(--surface);background:0 0}.btn--ghost{color:var(--navy);background:0 0}.btn--ghost:hover:not(:disabled),.btn--ghost[data-force=hover]{background:var(--surface-2)}.btn--destructive{background:var(--surface);border-color:var(--alert);color:var(--alert)}.btn--destructive:hover:not(:disabled),.btn--destructive[data-force=hover]{background:color-mix(in srgb, var(--alert) 8%, var(--surface))}.btn--destructive.btn--fill{background:var(--alert);color:var(--surface)}.btn--destructive.btn--fill:hover:not(:disabled){background:color-mix(in srgb, var(--alert) 85%, var(--text-strong))}.btn[data-force=focus]{outline:2px solid var(--sky);outline-offset:2px}.btn:disabled,.btn[aria-disabled=true]{background:var(--surface-2);color:var(--placeholder);cursor:not-allowed;border-color:#0000}.btn[data-loading=true]{cursor:progress}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{border-radius:var(--radius-pill);width:40px;height:40px;color:var(--text);cursor:pointer;transition:background-color var(--dur-press) ease-out;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover:not(:disabled),.icon-btn[data-force=hover]{background:var(--surface-2)}.icon-btn[data-force=focus]{outline:2px solid var(--sky);outline-offset:2px}.icon-btn:disabled{color:var(--placeholder);cursor:not-allowed}.on-sky .icon-btn{color:var(--surface)}.on-sky .icon-btn:hover:not(:disabled){background:color-mix(in srgb, var(--surface) 16%, transparent)}.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--text-strong);font-weight:500}.field__hint{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-muted)}.field__error{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--alert)}.input,.select-trigger{box-sizing:border-box;width:100%;min-height:40px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-input);background:var(--surface);color:var(--text);font:400 var(--fs-body-sm) / var(--lh-body-sm) var(--font-ui);transition:border-color var(--dur-press) ease-out}.input:hover:not(:disabled),.select-trigger:hover:not(:disabled){border-color:var(--sky-line)}.input[aria-invalid=true],.select-trigger[aria-invalid=true]{border-color:var(--alert)}.input:disabled,.select-trigger:disabled{background:var(--surface-2);color:var(--placeholder);cursor:not-allowed}.select-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer;text-align:left;display:inline-flex}.select-trigger [data-placeholder]{color:var(--placeholder-text)}.select-trigger svg{color:var(--icon);flex:none}.float{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-input);box-shadow:var(--shadow-float);padding:var(--space-1);z-index:60}.select-content{min-width:var(--radix-select-trigger-width);max-height:280px;overflow:auto}.combo-content{width:var(--radix-popover-trigger-width);max-height:280px;overflow:auto}.menu-item,.option{align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-input);font-size:var(--fs-body-sm);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex}.menu-item[data-highlighted],.option[data-highlighted],.option[aria-selected=true]{background:color-mix(in srgb, var(--sky) 12%, var(--surface));color:var(--navy)}.menu-item[data-disabled]{color:var(--placeholder);cursor:not-allowed}.menu-item--danger{color:var(--alert)}.menu-item--danger[data-highlighted]{background:color-mix(in srgb, var(--alert) 8%, var(--surface));color:var(--alert)}.menu-sep{height:1px;margin:var(--space-1) 0;background:var(--line)}.menu-item:focus-visible,.option:focus-visible{outline-offset:-2px}.tooltip{max-width:260px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-input);background:var(--text-strong);color:var(--surface);font-size:var(--fs-caption);line-height:var(--lh-caption);z-index:80}.check-row{align-items:center;gap:var(--space-2);min-height:40px;font-size:var(--fs-body-sm);color:var(--text);cursor:pointer;display:inline-flex}.checkbox{border:1px solid var(--icon);border-radius:var(--radius-input);background:var(--surface);width:20px;height:20px;color:var(--surface);cursor:pointer;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.checkbox[data-state=checked],.checkbox[data-state=indeterminate]{background:var(--navy);border-color:var(--navy)}.checkbox:disabled{background:var(--surface-2);border-color:var(--line);cursor:not-allowed}.switch{border-radius:var(--radius-pill);background:var(--icon);cursor:pointer;width:40px;height:24px;transition:background-color var(--dur-tab) ease-out;border:0;flex:none;padding:2px}.switch[data-state=checked]{background:var(--navy)}.switch:disabled{background:var(--surface-2);cursor:not-allowed}.switch__thumb{border-radius:var(--radius-pill);background:var(--surface);width:20px;height:20px;transition:transform var(--dur-tab) ease-out;display:block}.switch__thumb[data-state=checked]{transform:translate(16px)}.tabs__list{gap:var(--space-4);border-bottom:1px solid var(--line);display:flex;overflow-x:auto}.tabs__trigger{min-height:40px;padding:0 var(--space-1);color:var(--text-muted);font:500 var(--fs-body-sm) / 1 var(--font-ui);cursor:pointer;white-space:nowrap;transition:color var(--dur-tab) ease-out, border-color var(--dur-tab) ease-out;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px}.tabs__trigger:hover{color:var(--navy)}.tabs__trigger[data-state=active]{color:var(--navy);border-bottom-color:var(--navy)}.tabs__content{padding-top:var(--space-4)}.overlay{z-index:50;background:#1d1b2066;position:fixed;inset:0}.overlay[data-state=open]{animation:fade-in var(--dur-in) ease-out}.overlay[data-state=closed]{animation:fade-out var(--dur-out) ease-in}.dialog{z-index:51;box-sizing:border-box;width:min(480px,100vw - 32px);max-height:calc(100dvh - 32px);padding:var(--card-padding);border-radius:var(--radius-modal);background:var(--surface);box-shadow:var(--shadow-float);position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.dialog[data-state=open]{animation:dialog-in var(--dur-in) ease-out}.dialog[data-state=closed]{animation:dialog-out var(--dur-out) ease-in}.drawer{z-index:51;box-sizing:border-box;gap:var(--element-gap);width:min(480px,100vw);padding:var(--card-padding);border-radius:var(--radius-modal) 0 0 var(--radius-modal);background:var(--surface);box-shadow:var(--shadow-float);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto}.drawer[data-state=open]{animation:drawer-in var(--dur-in) ease-out}.drawer[data-state=closed]{animation:drawer-out var(--dur-out) ease-in}.dialog__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.dialog__title{font:500 var(--fs-subheading) / var(--lh-subheading) var(--font-ui);color:var(--text-strong);margin:0}.dialog__desc{margin:var(--space-2) 0 0;font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}.dialog__body{gap:var(--element-gap);margin-top:var(--space-4);flex-direction:column;display:flex}.dialog__footer{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6);flex-wrap:wrap;display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,calc(8px - 50%))}}@keyframes dialog-out{to{opacity:0;transform:translate(-50%,calc(8px - 50%))}}@keyframes drawer-in{0%{transform:translate(100%)}}@keyframes drawer-out{to{transform:translate(100%)}}.toast-viewport{right:var(--space-4);bottom:var(--space-4);z-index:90;gap:var(--space-2);flex-direction:column;width:min(380px,100vw - 32px);margin:0;padding:0;list-style:none;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-float);font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--text);display:flex}.toast--error{border-color:var(--alert)}.toast--error .toast__icon{color:var(--alert)}.toast--info .toast__icon{color:var(--sky)}.toast__msg{flex:1;min-width:0}.toast[data-state=open]{animation:fade-in var(--dur-in) ease-out}.toast[data-state=closed]{animation:fade-out var(--dur-out) ease-in}.pill{box-sizing:border-box;border-radius:var(--radius-pill);min-height:24px;font:500 var(--fs-caption) / 1 var(--font-ui);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.pill--draft{background:var(--surface-2);color:var(--text)}.pill--queued{background:var(--surface);border-color:var(--line);color:var(--text)}.pill--running{background:var(--surface);border-color:var(--sky-line);color:var(--navy)}.pill--approved{background:color-mix(in srgb, var(--sky) 12%, var(--surface));color:var(--navy)}.pill--sent{background:var(--navy);color:var(--surface)}.pill--received{background:var(--surface);border-color:var(--text);color:var(--text)}.pill--cancelled,.pill--failed{background:color-mix(in srgb, var(--alert) 8%, var(--surface));color:var(--alert)}.pill--succeeded{background:var(--sky);color:var(--surface)}.pill--partially_received{background:var(--surface);border-color:var(--sky);color:var(--navy)}.pill--closed_short{background:var(--surface);border-color:var(--text);color:var(--text)}.pill--shipped{background:var(--navy);color:var(--surface)}.pill--stockout,.pill--alert{background:color-mix(in srgb, var(--alert) 8%, var(--surface));color:var(--alert)}.pill--low,.pill--warning{background:var(--surface);border-color:var(--alert);color:var(--alert)}.pill--healthy,.pill--info{background:color-mix(in srgb, var(--sky) 12%, var(--surface));color:var(--navy)}.pill--excess{background:var(--surface-2);color:var(--text)}.pill--dead{background:var(--surface);border-color:var(--line);color:var(--text-muted)}.badge--neutral{background:var(--surface-2);color:var(--text)}.badge--sky{background:color-mix(in srgb, var(--sky) 12%, var(--surface));color:var(--navy)}.badge--alert{background:color-mix(in srgb, var(--alert) 8%, var(--surface));color:var(--alert)}.dot{border-radius:var(--radius-pill);background:var(--sky);flex:none;width:8px;height:8px}.dot--pulse{animation:pulse var(--dur-pulse) ease-in-out infinite}@keyframes pulse{50%{opacity:.3;transform:scale(.7)}}.stepper{gap:var(--space-4);margin:0;padding:0;list-style:none;display:flex}.stepper__step{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--fs-body-sm);color:var(--text-muted);flex:1;display:flex}.stepper__num{border:1px solid var(--sky-line);border-radius:var(--radius-pill);background:var(--surface);width:28px;height:28px;color:var(--navy);font-variant-numeric:tabular-nums;flex:none;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.stepper__step[aria-current=step]{color:var(--text-strong);font-weight:500}.stepper__step[aria-current=step] .stepper__num{background:var(--navy);border-color:var(--navy);color:var(--surface)}.stepper__step--done .stepper__num{background:color-mix(in srgb, var(--sky) 12%, var(--surface))}@media (width<=767px){.stepper{gap:var(--space-2);flex-direction:column}}.stages{border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stage{align-items:center;column-gap:var(--space-3);row-gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--fs-body-sm);grid-template-columns:24px 1fr auto;display:grid}.stage+.stage{border-top:1px solid var(--line)}.stage__icon{color:var(--icon);justify-content:center;align-items:center;display:inline-flex}.stage--done .stage__icon{color:var(--navy)}.stage--failed .stage__icon,.stage--failed .stage__label{color:var(--alert)}.stage--pending .stage__label,.stage--skipped .stage__label{color:var(--text-muted)}.stage__label{font-weight:500}.stage__time{color:var(--text-muted);font-variant-numeric:tabular-nums}.stage__bar{border-radius:var(--radius-pill);background:var(--surface-2);grid-column:2/4;height:6px;overflow:hidden}.stage__bar>span{border-radius:var(--radius-pill);background:var(--sky);height:100%;display:block}.card{box-sizing:border-box;padding:var(--card-padding);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.card--compact{padding:var(--card-padding-compact)}.empty{align-items:center;gap:var(--space-4);padding:var(--space-7) var(--space-4);text-align:center;flex-direction:column;display:flex}.empty__sky{border-radius:var(--radius-card);background-color:var(--sky);width:160px;height:96px;overflow:hidden}.empty__sky img{object-fit:cover;width:100%;height:100%;display:block}.empty__msg{max-width:36ch;color:var(--text);margin:0;line-height:1.5}.empty__icon{color:var(--icon);flex:none}.skeleton{border-radius:var(--radius-input);background:var(--surface-2);height:16px;animation:1.6s ease-in-out infinite skeleton;display:block}.skeleton--line{height:16px}.skeleton--card{border-radius:var(--radius-card);width:100%;height:120px}.skeleton--row{width:100%;height:var(--row-height,36px);border-radius:0}@keyframes skeleton{50%{opacity:.5}}.kpi{gap:var(--space-1);flex-direction:column;display:flex}.kpi__label{font-size:var(--fs-body-sm);color:var(--text-muted)}.kpi__value{font:500 28px / 1.1 var(--font-ui);font-variant-numeric:tabular-nums;color:var(--text-strong)}.kpi__value--empty{color:var(--text-muted)}.kpi__hint{font-size:var(--fs-caption);color:var(--text-muted)}.chart-tile__head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.chart-tile__title{min-width:0;font:500 var(--fs-body) / var(--lh-body) var(--font-ui);margin:0}.seg{border:1px solid var(--line);border-radius:var(--radius-pill);flex-shrink:0;padding:2px;display:inline-flex}.seg button{min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--text-muted);font:500 var(--fs-caption) / 1 var(--font-ui);white-space:nowrap;cursor:pointer;background:0 0;border:0;position:relative}.seg button:after{content:"";position:absolute;inset:-6px 0}.seg button[aria-pressed=true]{background:color-mix(in srgb, var(--sky) 12%, var(--surface));color:var(--navy)}.credit{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.credit__figures{gap:var(--space-6);display:flex}.credit__fig{flex-direction:column;gap:2px;display:flex}.credit__fig dt{font-size:var(--fs-caption);color:var(--text-muted)}.credit__fig dd{font:500 var(--fs-subheading) / var(--lh-subheading) var(--font-ui);font-variant-numeric:tabular-nums;margin:0}.credit__reason{font-size:var(--fs-body-sm);color:var(--alert);flex-basis:100%;margin:0}.credit--short{border-color:var(--alert)}.sheet{z-index:51;box-sizing:border-box;background:var(--surface);border-radius:0;flex-direction:column;width:100%;height:100dvh;display:flex;position:fixed;inset:0}.sheet[data-state=open]{animation:sheet-in var(--dur-in) ease-out}.sheet[data-state=closed]{animation:sheet-out var(--dur-out) ease-in}.sheet__header{box-sizing:border-box;height:56px;padding:0 var(--space-2) 0 var(--space-4);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;display:flex}.sheet__title{font:500 var(--fs-subheading) / var(--lh-subheading) var(--font-ui);color:var(--text-strong);margin:0}.sheet__body{min-height:0;padding:var(--space-4);flex:1;overflow-y:auto}.sheet__footer{padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);flex-direction:column;flex:none;display:flex;position:sticky;bottom:0}.sheet__footer .btn{width:100%}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@keyframes sheet-out{to{opacity:0;transform:translateY(24px)}}.card-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.card-list__item{align-items:stretch;gap:var(--space-2);display:flex}.card-list__select{flex:none;justify-content:center;align-items:center;width:40px;display:flex}.card-list__select .check-row{position:relative}.card-list__select .checkbox:after{content:"";position:absolute;inset:-10px}.card-list__card{justify-content:space-between;align-items:center;gap:var(--space-3);box-sizing:border-box;min-width:0;min-height:56px;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);color:var(--text);font:inherit;text-align:left;flex:1;text-decoration:none;display:flex}button.card-list__card,a.card-list__card{cursor:pointer;transition:border-color var(--dur-press) ease-out}button.card-list__card:hover,a.card-list__card:hover{border-color:var(--sky-line)}.card-list__text{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.card-list__title{overflow-wrap:anywhere;font-size:var(--fs-body);font-weight:500;line-height:var(--lh-body);color:var(--text-strong)}.card-list__meta{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}.card-list__aside{font-variant-numeric:tabular-nums;flex:none}.sticky-actions{z-index:30;justify-content:flex-end;gap:var(--space-2);box-sizing:border-box;padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.shell .sticky-actions{bottom:0}@media (width<=767px){.shell .sticky-actions{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.sticky-actions .btn{flex:1}}.page-header{gap:var(--space-2);margin:0 0 var(--space-4);flex-direction:column;display:flex}.page-header__back{align-self:flex-start;align-items:center;gap:var(--space-1);min-height:40px;padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-pill);color:var(--navy);font-size:var(--fs-body-sm);font-weight:500;text-decoration:none;display:inline-flex}.page-header__back:hover{background:var(--surface-2)}.page-header__row{justify-content:space-between;align-items:flex-start;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.page-header__text{flex:320px;min-width:0}.page-header .page-title{margin:0}.page-header__desc{max-width:72ch;margin:var(--space-2) 0 0;color:var(--text-muted);font-size:var(--fs-body-sm);line-height:var(--lh-body-sm)}.page-header__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=767px){.page-header__text{flex-basis:100%}}@keyframes enter-rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.route-enter{min-width:0;animation:enter-rise var(--dur-route) ease-out backwards}.list-stagger>*{animation:enter-rise var(--dur-route) ease-out backwards;animation-delay:calc(10 * var(--dur-stagger))}.list-stagger>:first-child{animation-delay:0s}.list-stagger>:nth-child(2){animation-delay:calc(1 * var(--dur-stagger))}.list-stagger>:nth-child(3){animation-delay:calc(2 * var(--dur-stagger))}.list-stagger>:nth-child(4){animation-delay:calc(3 * var(--dur-stagger))}.list-stagger>:nth-child(5){animation-delay:calc(4 * var(--dur-stagger))}.list-stagger>:nth-child(6){animation-delay:calc(5 * var(--dur-stagger))}.list-stagger>:nth-child(7){animation-delay:calc(6 * var(--dur-stagger))}.list-stagger>:nth-child(8){animation-delay:calc(7 * var(--dur-stagger))}.list-stagger>:nth-child(9){animation-delay:calc(8 * var(--dur-stagger))}.list-stagger>:nth-child(10){animation-delay:calc(9 * var(--dur-stagger))}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
