.nav{display:flex;flex-direction:column;height:100%;padding:var(--sp-3) var(--sp-3) var(--sp-4);gap:var(--sp-1);overflow-y:auto}.nav__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-4)}.nav__brand{display:flex;align-items:center;gap:var(--sp-3);color:#fff;font-weight:700;letter-spacing:.02em}.nav__mark{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-weight:700}.nav__brand-text{display:flex;flex-direction:column;line-height:1.15}.nav__logo{display:block;width:176px;max-width:100%;height:auto}.nav__brand-sub{font-size:var(--fs-xs);font-weight:500;color:var(--color-nav-text);opacity:.7}.nav__close{display:none;width:40px;height:40px;align-items:center;justify-content:center;border:none;background:transparent;color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-size:22px;line-height:1}.nav__close:hover{background:var(--color-nav-hover)}.nav__link{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--control-h);padding:0 var(--sp-3);border-radius:var(--radius-sm);color:var(--color-nav-text);font-size:var(--fs-sm);font-weight:500;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.nav__link:hover{background:var(--color-nav-hover);color:#fff}.nav__link--active{background:var(--color-primary);color:var(--color-on-primary)}.nav__link--active:hover{background:var(--color-primary)}.nav__link--pending{opacity:.38;cursor:not-allowed}.nav__link--pending:hover{background:transparent;color:var(--color-nav-text)}.nav__soon{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.8}.nav__spacer{flex:1 1 auto}.nav__foot{padding:var(--sp-3);color:var(--color-nav-text);opacity:.6;font-size:var(--fs-xs)}@media(max-width:1023px){.nav{padding:var(--sp-4);gap:var(--sp-2)}.nav__close{display:inline-flex}.nav__link{min-height:52px;font-size:var(--fs-lg);justify-content:center}.nav__soon{margin-left:var(--sp-2)}}.auth{position:relative}.auth__skeleton{display:inline-block;width:120px;height:32px;border-radius:var(--radius-sm)}.auth__trigger{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h);max-width:220px;padding:0 var(--sp-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:var(--fs-sm);color:var(--color-text);cursor:pointer}.auth__trigger:hover{background:var(--color-surface-alt);border-color:var(--color-border)}.auth__avatar{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);font-size:var(--fs-xs);font-weight:700}.auth__name{min-width:0;font-weight:500}.auth__caret{color:var(--color-text-muted);font-size:10px}.auth__menu{position:absolute;right:0;top:calc(100% + var(--sp-1));min-width:180px;z-index:30;padding:var(--sp-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-raised)}.auth__item{display:block;width:100%;text-align:left;min-height:var(--control-h);padding:0 var(--sp-3);border:none;border-radius:var(--radius-sm);background:transparent;font:inherit;font-size:var(--fs-sm);color:var(--color-text);cursor:pointer}.auth__item:hover{background:var(--color-surface-alt)}@media(max-width:639px){.auth__name{display:none}.auth__trigger{max-width:none}}.shell{display:flex;min-height:100vh}.shell__nav{width:var(--nav-w);flex:0 0 var(--nav-w);background:var(--color-nav-bg);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;align-self:flex-start}.shell__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.shell__header{height:60px;flex:0 0 60px;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.shell__title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--display-weight);text-transform:var(--display-transform);letter-spacing:.01em}.shell__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--sp-5)}.shell__error{display:flex;align-items:center;gap:var(--sp-3);max-width:1440px;margin:0 auto var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);border-left:3px solid var(--color-danger);background:var(--color-danger-soft);color:var(--color-text);font-size:var(--fs-sm)}.shell__content{max-width:1440px;margin:0 auto;display:flex;flex-direction:column;gap:var(--sp-4)}.shell__content--wide{max-width:none}.shell__burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text)}.shell__burger:hover{background:var(--color-surface-alt)}.shell__burger{touch-action:manipulation;position:relative;z-index:1}.shell-drawer{position:fixed;top:0;right:0;bottom:0;left:0;height:100%;height:100dvh;z-index:3000;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--color-nav-bg);animation:shell-drawer-in var(--dur) var(--ease)}.shell__nav{transition:margin-left var(--dur) var(--ease),visibility 0s linear 0s}.shell--nav-hidden .shell__nav{margin-left:calc(var(--nav-w) * -1);visibility:hidden;transition:margin-left var(--dur) var(--ease),visibility 0s linear var(--dur)}.shell__collapse{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:calc(var(--sp-2) * -1);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer}.shell__collapse:hover{background:var(--color-surface-alt);color:var(--color-text)}.shell__collapse:focus-visible{outline:2px solid var(--color-primary-text);outline-offset:1px}@keyframes shell-drawer-in{0%{transform:translate(-100%)}to{transform:none}}@media(min-width:1024px){.shell-drawer{display:none}}@media(max-width:1023px){.shell__burger{display:inline-flex}.shell__collapse,.shell__nav{display:none}.shell__header{padding:0 var(--sp-4)}.shell__body{padding:var(--sp-3)}}@media(min-width:640px)and (max-width:1023px){.shell__body{padding:var(--sp-4)}}@media(max-width:519px){.shell__header{gap:var(--sp-2);padding:0 var(--sp-3)}.shell__title{font-size:var(--fs-base);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell__header .auth__name,.shell__header .auth__caret{display:none}.shell__header .auth__trigger{padding:0}}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-7) var(--sp-4);text-align:center;color:var(--color-text-muted)}.empty__title{font-size:var(--fs-lg);font-weight:600;color:var(--color-text)}.empty__detail{max-width:42ch;font-size:var(--fs-sm)}.empty__action{margin-top:var(--sp-2)}.skeleton-rows,.progress{display:flex;flex-direction:column;gap:var(--sp-2)}.progress__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.progress__track{height:8px;border-radius:999px;background:#e3e8f0;overflow:hidden}.progress__fill{height:100%;border-radius:999px;background:var(--color-secondary);transition:width var(--dur) var(--ease)}.shell__content>form{display:flex;flex-direction:column;gap:var(--sp-4)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:var(--sp-4)}.field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.field--wide{grid-column:1 / -1}.field__label{font-size:var(--fs-sm);font-weight:600;color:var(--color-text)}.field__required{color:var(--color-danger);margin-left:2px}.field__hint,.field__error{font-size:var(--fs-xs);line-height:1.4}.field__hint{color:var(--color-text-muted)}.field__error{color:var(--color-danger);font-weight:500}.field--error .input,.field--error .select{border-color:var(--color-danger)}.textarea{min-height:calc(var(--control-h) * 2);padding:var(--sp-2) var(--sp-3);line-height:1.5;resize:vertical}.num{position:relative;display:flex}.num__input{width:100%}.num--prefixed .num__input{padding-left:26px}.num__prefix{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:var(--fs-sm);pointer-events:none}.num__input::-webkit-outer-spin-button,.num__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num__input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.check-inline{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h);font-size:var(--fs-sm);cursor:pointer}.check-inline__box{width:18px;height:18px;flex:0 0 18px;accent-color:var(--color-primary-text)}.crew-picker{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.crew-chip{min-height:var(--control-h);padding:0 var(--sp-3);border:1px solid var(--color-border-strong);border-radius:999px;background:var(--color-surface);font:inherit;font-size:var(--fs-sm);color:var(--color-text);cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.crew-chip:hover{background:var(--color-surface-alt)}.crew-chip--on{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);font-weight:600}.crew-chip--on:hover{background:var(--color-primary-hover)}.form-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}@media(max-width:639px){.form-actions{position:sticky;bottom:0;z-index:5;margin:0 calc(var(--sp-3) * -1) calc(var(--sp-3) * -1);padding:var(--sp-3);background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -2px 8px #2626260f}.form-actions .btn{flex:1 1 auto}.form-actions .grow{display:none}}.check-group{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4)}.check-group .check-inline{min-height:32px}.field__link{font-size:var(--fs-xs);color:var(--color-link, var(--color-primary-text));text-decoration:underline}.field__link:hover{text-decoration:none}.slot{display:flex;gap:var(--sp-2)}.slot>.slot__date{flex:1 1 auto;width:auto;min-width:9.5rem}.slot>.slot__time{flex:0 0 7.5rem;width:7.5rem;min-width:0}.datalist{width:100%;min-width:0}.datalist__table{display:flex;flex-direction:column}.datalist__head,.datalist__row{display:grid;align-items:center;gap:var(--sp-4);padding:0 var(--sp-4)}.datalist__head{height:40px;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.datalist__row{min-height:64px;padding-top:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--color-border);transition:background var(--dur-fast) var(--ease)}.datalist__row:last-child{border-bottom:none}.datalist__row--clickable{cursor:pointer}.datalist__row--clickable:hover{background:var(--color-surface-alt)}.datalist__row--clickable:focus-visible{outline:2px solid var(--color-primary-text);outline-offset:-2px}.datalist__row--link{position:relative}.datalist__link{color:inherit}.datalist__link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.datalist__link:focus-visible{outline:none}.datalist__row--link:has(.datalist__link:focus-visible){outline:2px solid var(--color-primary-text);outline-offset:-2px}.datalist__row--link :is(button,input,select,label,a:not(.datalist__link)){position:relative;z-index:1}.datalist__cell{min-width:0}.datalist__cell>.truncate{display:block}.datalist__cell--end{text-align:right;justify-self:end}.datalist__sort{padding:0;border:0;background:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.datalist__sort:hover{color:var(--color-text)}.datalist__sort--active{color:var(--color-primary-text)}.datalist__sortby{display:flex;align-items:center;gap:var(--sp-2);justify-content:flex-end}.datalist__sortby .select{width:auto;min-height:36px}.datalist__cards{display:flex;flex-direction:column;gap:var(--sp-2)}.datalist__card{padding:var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.datalist__card--clickable{cursor:pointer}a.datalist__card{display:block;color:inherit}.datalist__card--clickable:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card)}.datalist__card--clickable:focus-visible{outline:2px solid var(--color-primary-text);outline-offset:2px}.list__filters{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}.list__search{flex:1 1 260px;min-width:0}.list__filter{flex:0 1 180px;min-width:140px}.list__body{padding:var(--sp-2) 0 0}.list__count{padding:0 var(--sp-4) var(--sp-2)}.list__primary{font-weight:600}.list__ref{color:var(--color-text);font-weight:600;font-size:var(--fs-sm)}@media(max-width:639px){.list__filters{gap:var(--sp-2)}.list__search{flex-basis:100%}.list__filter{flex:1 1 calc(50% - var(--sp-1))}.list__body{padding:var(--sp-2)}.list__count{padding:0 var(--sp-1) var(--sp-2)}}.quote__setup{border-color:var(--color-warning, #b0853a);background:var(--color-warning-soft, #fdf6e6)}.list__more{display:flex;justify-content:center;padding-top:var(--sp-3);border-top:1px solid var(--color-border);margin-top:var(--sp-2)}.list__error{margin:0 0 var(--sp-2);color:var(--color-danger)}.since-chip{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:36px;padding:0 var(--sp-3);border:1px solid var(--color-primary-text);border-radius:999px;background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.since-chip:hover{background:var(--color-surface-alt)}.seg{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;flex:0 0 auto}.seg__btn{border:0;background:var(--color-surface);color:var(--color-text);padding:0 var(--sp-4);min-height:40px;font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.seg__btn[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary)}@media(max-width:639px){.seg{flex-basis:100%}.seg__btn{flex:1}}.profit__tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}.profit__tile{display:flex;flex-direction:column;gap:var(--sp-1)}.profit__num{font-size:1.5rem;font-variant-numeric:tabular-nums}.profit__num--bad{color:var(--color-danger)}@media(max-width:760px){.profit__tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.bars__readout{min-height:1.5em;margin-bottom:var(--sp-2)}.bars__plot{position:relative;display:flex;gap:2px}.bars__zero{position:absolute;left:0;right:0;border-top:1px solid var(--color-border)}.bars__slot{position:relative;flex:1;min-width:0;border:0;padding:0;background:none;cursor:default}.bars__slot:focus-visible{outline:2px solid var(--color-primary)}.bars__bar{position:absolute;left:15%;right:15%;background:var(--color-secondary);border-radius:4px 4px 0 0;opacity:.75}.bars__bar--loss{background:var(--color-danger);border-radius:0 0 4px 4px}.bars__bar--on{opacity:1}.bars__axis{display:flex;justify-content:space-between;margin-top:var(--sp-1)}.bars__ticks{display:flex;gap:2px;margin-top:var(--sp-1)}.bars__ticks span{flex:1;min-width:0;overflow:hidden;text-align:center;white-space:nowrap}.bars--pick .bars__slot:not(:disabled){cursor:pointer}.bars__bar--dim{opacity:.25}.profit__chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2)}.seg{display:inline-flex;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.seg__btn{border:0;padding:var(--sp-1) var(--sp-3);background:none;color:inherit;font:inherit;font-size:.875rem;cursor:pointer}.seg__btn+.seg__btn{border-left:1px solid var(--color-border)}.seg__btn--on{background:var(--color-primary);color:var(--color-on-primary)}.dash__tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:var(--sp-4)}.dash__tile{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4);transition:box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.dash__tile:hover{box-shadow:var(--shadow-raised);transform:translateY(-1px)}.dash__tile-label{text-transform:uppercase;letter-spacing:.04em;font-weight:600}.dash__tile-value{font-size:var(--fs-2xl);font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.dash__tile-value--bad{color:var(--color-danger)}.dash__tile-hint{min-height:1.2em}.dash__tile-about{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.dash__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:var(--sp-4);margin-top:var(--sp-4);align-items:start}.dash__stack{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.dash__panel-head{display:flex;align-items:center;gap:var(--sp-3)}.dash__panel-head .card__title{margin-bottom:0;flex:1 1 auto}.dash__panel-head .btn{margin-right:calc(var(--sp-3) * -1)}.dash__events,.dash__jobs{list-style:none;margin:var(--sp-3) 0 0;padding:0}.dash__event{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid var(--color-border)}.dash__event:first-child{border-top:0}.dash__event-when{flex:0 0 52px;line-height:1.35;text-align:center}.dash__event-body,.dash__job-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.dash__event-title,.dash__job-customer{font-weight:600}.dash__job{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-2);margin:0 calc(var(--sp-2) * -1);border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm)}.dash__jobs li+li .dash__job{border-top:1px solid var(--color-border);border-radius:0}.dash__job:hover{background:var(--color-surface-alt)}.dash__job-ref{flex:0 0 auto;color:var(--color-text);font-weight:600}@media(max-width:639px){.dash__tiles{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:var(--sp-3)}.dash__tile{padding:var(--sp-3)}.dash__tile-value{font-size:var(--fs-xl)}.dash__grid,.dash__stack{gap:var(--sp-3)}.dash__grid{margin-top:var(--sp-3)}}.login{min-height:100vh;display:grid;place-items:center;padding:var(--sp-4);background:var(--color-bg)}.login__card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-6)}.login__brand{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.login__mark{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:var(--radius);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--fs-xl);font-weight:700}.login__title{font-size:var(--fs-xl);margin:0}.login__sub{margin:0}.login__btn{width:100%}.login__notice{padding:var(--sp-3);border-radius:var(--radius-sm);font-size:var(--fs-sm)}.login__notice--error{background:var(--color-danger-soft);color:var(--color-danger)}.login__notice--warn{background:var(--color-warning-soft);color:var(--color-warning)}.login__foot{margin:var(--sp-2) 0 0;text-align:center}:root{--build-id: "20260911b";--color-primary: #2f5bd3;--color-primary-hover: #284db3;--color-primary-soft: #eaeffb;--color-primary-text: #2f5bd3;--color-danger: #c8242b;--color-danger-hover: #a51d23;--color-danger-soft: #fdeaea;--color-secondary: #1d6b4c;--color-secondary-soft: #e7f4ee;--color-warning: #8a5a0f;--color-warning-soft: #fdf3e2;--color-bg: #edf0f5;--color-surface: #ffffff;--color-surface-alt: #f7f9fc;--color-border: #dde3ec;--color-border-strong: #c4ccd9;--color-text: #262626;--color-text-muted: #667181;--color-on-primary: #ffffff;--color-nav-bg: #262626;--color-nav-hover: #3a3a3a;--color-nav-text: #d8dce3;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--shadow-card: 0 1px 2px rgba(38, 38, 38, .06), 0 2px 8px rgba(38, 38, 38, .08);--shadow-raised: 0 2px 4px rgba(38, 38, 38, .08), 0 8px 20px rgba(38, 38, 38, .12);--font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-display: var(--font-sans);--display-transform: none;--display-weight: 600;--fs-xs: 11px;--fs-sm: 13px;--fs-base: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 26px;--control-h: 38px;--nav-w: 240px;--ease: cubic-bezier(.2, 0, .2, 1);--dur-fast: .12s;--dur: .2s}@media(pointer:coarse){:root{--control-h: 44px}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}a{color:inherit;text-decoration:none}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:var(--sp-4)}.card__title{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--sp-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--control-h);padding:0 var(--sp-4);border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn--secondary:hover{background:var(--color-surface-alt)}.btn--subtle{background:transparent;color:var(--color-text-muted)}.btn--subtle:hover{background:var(--color-surface-alt);color:var(--color-text)}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.select{min-height:var(--control-h);width:100%;padding:0 var(--sp-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--fs-sm);color:var(--color-text)}.input:focus-visible,.select:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--color-primary-text);outline-offset:2px}.badge{display:inline-flex;align-items:center;padding:2px var(--sp-3);border-radius:999px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.badge--neutral{background:#eef1f6;color:#55606f}.badge--info{background:#e8effc;color:#2a5db0}.badge--warn{background:var(--color-warning-soft);color:var(--color-warning)}.badge--good{background:var(--color-secondary-soft);color:var(--color-secondary)}.badge--bad{background:var(--color-danger-soft);color:var(--color-danger)}.money--cost{color:var(--color-danger)}.money--income{color:var(--color-secondary)}.muted{color:var(--color-text-muted)}.small{font-size:var(--fs-sm)}.xsmall{font-size:var(--fs-xs)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.grow{flex:1 1 auto;min-width:0}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fade-in{animation:fade-in var(--dur) var(--ease)}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.skeleton{background:linear-gradient(90deg,#e6eaf1 25%,#eef1f6,#e6eaf1 75%);background-size:400px 100%;animation:shimmer 1.2s linear infinite;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn--small{min-height:30px;padding:0 var(--sp-2);font-size:var(--fs-xs)}.filebtn{position:relative;overflow:hidden}.filebtn>input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;font-size:0}.filebtn>input[type=file]::file-selector-button{width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}.filebtn>input[type=file]:disabled{cursor:default}.filebtn>:not(input){pointer-events:none}.btn[aria-disabled=true],.icon-btn[aria-disabled=true]{opacity:.55}.filebtn:focus-within{outline:2px solid var(--color-primary-text);outline-offset:2px;border-radius:var(--radius-sm)}
