@charset "UTF-8";.login-form[data-v-3bd485c0]{display:flex;flex-direction:column;gap:16px}.login-form__field[data-v-3bd485c0]{position:relative;display:flex;flex-direction:column;gap:6px}.login-form__label[data-v-3bd485c0]{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.login-form__field input[data-v-3bd485c0]{box-sizing:border-box;width:100%;padding:12px 14px;font-size:16px;border:1px solid var(--login-border, rgba(127, 127, 127, .35));border-radius:8px;background:var(--login-field-bg, transparent);color:inherit}.login-form__field input[data-v-3bd485c0]:focus{outline:2px solid var(--login-accent, #b1dcc1);outline-offset:1px;border-color:transparent}.login-form__reveal[data-v-3bd485c0]{position:absolute;right:8px;bottom:6px;padding:6px;font-size:16px;line-height:1;background:none;border:0;cursor:pointer}.login-form__error[data-v-3bd485c0]{margin:0;padding:10px 12px;font-size:14px;color:#fff;background:var(--login-error-bg, #c0392b);border:1px solid var(--login-error-border, transparent);border-radius:6px}.login-form__submit[data-v-3bd485c0]{box-sizing:border-box;width:100%;padding:13px 16px;font-size:15px;font-weight:600;color:var(--login-accent-ink, #0a0b0c);background:var(--login-accent, #b1dcc1);border:0;border-radius:8px;cursor:pointer;transition:background .15s ease}.login-form__submit[data-v-3bd485c0]:hover:not(:disabled){background:var(--login-accent-hover, #6e8f7c)}.login-form__submit[data-v-3bd485c0]:disabled{opacity:.55;cursor:not-allowed}:root{--color-primary: #15171A;--color-accent: #C2E4DA;--color-accent-deep: #3E8C73;--color-on-accent: #1c3b32;--color-pastel-mint: #C2E4DA;--color-pastel-blue: #BBCCFF;--color-pastel-lilac: #BCADC8;--color-pastel-cream: #E5E2DD;--color-pastel-mint-deep: #3E8C73;--color-pastel-blue-deep: #4F6BCF;--color-pastel-lilac-deep: #6E5C80;--color-pastel-cream-deep: #7B7468;--color-bg: #F4F2EE;--color-surface: #FFFFFF;--color-surface-2: #FAF8F4;--color-border: #E7E3DC;--color-border-light: #D6D1C7;--color-text: #15171A;--color-text-muted: #6B6F76;--color-text-faint: #9AA0A8;--color-ink: #0E1012;--color-ink-raised: #181B1F;--color-ink-line: #262A2F;--color-ink-text: #F2EFEA;--color-ink-muted: #A6ABB2;--color-ink-faint: #6F757D;--color-danger: #C7553D;--color-success: #3E8C73;--color-warning: #C99A3F;--color-info: #4F6BCF;--sidebar-width: 272px;--header-height: 64px;--content-padding: 24px;--radius: 8px;--radius-lg: 14px;--radius-xl: 18px;--radius-pill: 999px;--font-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--btn-height: 40px;--btn-height-sm: 32px;--btn-height-lg: 48px;--shadow-sm: 0 1px 2px rgba(15,17,20,.04);--shadow-md: 0 4px 16px rgba(15,17,20,.06);--shadow-lg: 0 12px 36px rgba(15,17,20,.08);--transition: .15s cubic-bezier(.16, 1, .3, 1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px}.alkoraos-shell *,.alkoraos-shell *:before,.alkoraos-shell *:after{box-sizing:border-box;margin:0;padding:0}.alkoraos-shell{position:fixed;inset:0;display:flex;z-index:999;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-sm);line-height:1.55;-webkit-font-smoothing:antialiased}.alkoraos-shell a{color:inherit;text-decoration:none}.alkoraos-shell button{font-family:inherit;cursor:pointer}.alkoraos-shell input,.alkoraos-shell select,.alkoraos-shell textarea{font-family:inherit;font-size:inherit}.alkoraos-shell ul,.alkoraos-shell ol{list-style:none}.alkoraos-shell p{margin:0}.alkoraos-central-layout *,.alkoraos-central-layout *:before,.alkoraos-central-layout *:after{box-sizing:border-box;margin:0;padding:0}.alkoraos-central-layout{width:100%;min-height:400px;background:var(--color-bg, #0b0f0e);color:var(--color-text, #f8fafc);font-family:var(--font-sans, "DM Sans", system-ui, sans-serif);font-size:var(--text-sm, .875rem);line-height:1.55;-webkit-font-smoothing:antialiased}.alkoraos-central-layout a{color:inherit;text-decoration:none}.alkoraos-central-layout button{font-family:inherit;cursor:pointer}.alkoraos-central-layout input,.alkoraos-central-layout select,.alkoraos-central-layout textarea{font-family:inherit;font-size:inherit}.alkoraos-central-layout ul,.alkoraos-central-layout ol{list-style:none}.alkoraos-central-layout p{margin:0}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100vh;background:var(--color-ink);border-right:1px solid var(--color-ink-line);display:flex;flex-direction:column;overflow:hidden}.sidebar__brand{padding:16px 20px;border-bottom:1px solid var(--color-ink-line);flex-shrink:0;display:flex;align-items:center}.sidebar__logo{width:150px;height:auto;display:block}.sidebar__nav{flex:1;min-height:0;padding:12px 8px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-gutter:stable}.sidebar__nav::-webkit-scrollbar{width:4px}.sidebar__nav::-webkit-scrollbar-track{background:transparent}.sidebar__nav::-webkit-scrollbar-thumb{background:var(--color-ink-raised);border-radius:2px}.sidebar__nav::-webkit-scrollbar-thumb:hover{background:var(--color-ink-line)}.sidebar__footer{flex-shrink:0;padding:8px 8px 12px;border-top:1px solid var(--color-ink-line)}.sidebar__item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);border:none;background:transparent;color:var(--color-ink-muted);font-size:var(--text-sm);font-weight:500;width:100%;text-align:left;border-left:2px solid transparent;transition:background var(--transition),color var(--transition),border-color var(--transition)}.sidebar__item:hover{background:var(--color-ink-raised);color:var(--color-ink-text)}.sidebar__item.active{background:var(--color-ink-raised);color:var(--color-ink-text);border-left-color:var(--color-accent)}.sidebar__item-icon{width:18px;height:18px;flex-shrink:0;opacity:.9}.sidebar__section-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);opacity:.55;padding:14px 12px 4px;-webkit-user-select:none;user-select:none}.sidebar__section-label:first-child{padding-top:4px}.sidebar__badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--color-danger);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}.sidebar__user{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 4px;margin-top:4px;border-top:1px solid var(--color-ink-line)}.sidebar__user-name{font-size:var(--text-xs);color:var(--color-ink-muted);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sidebar__logout{flex-shrink:0;background:transparent;border:none;color:var(--color-ink-faint);font-size:var(--text-xs);font-weight:600;font-family:var(--font-sans);cursor:pointer;padding:4px 0;letter-spacing:.04em;transition:color var(--transition)}.sidebar__logout:hover:not(:disabled){color:var(--color-danger)}.sidebar__logout:disabled{opacity:.4;cursor:not-allowed}.sidebar__user--clickable{cursor:pointer;border-radius:var(--radius);transition:background var(--transition)}.sidebar__user--clickable:hover{background:var(--color-ink-raised)}.sidebar__user--clickable.active{border-left:2px solid var(--color-accent);padding-left:10px}.sidebar__user-info{display:flex;flex-direction:column;min-width:0;flex:1}.sidebar__user-hint{font-size:10px;color:var(--color-ink-faint);font-weight:400;letter-spacing:.02em}.sidebar__plant-selector{padding:8px 12px;border-bottom:1px solid var(--color-ink-line);flex-shrink:0}.plant-select{width:100%;background:var(--color-ink-raised);border:1px solid var(--color-ink-line);border-radius:var(--radius);color:var(--color-ink-muted);font-size:var(--text-xs);font-family:var(--font-sans);font-weight:500;padding:6px 8px;cursor:pointer;transition:border-color var(--transition),color var(--transition)}.plant-select:hover,.plant-select:focus{border-color:var(--color-accent);color:var(--color-ink-text);outline:none}.plant-select option{background:var(--color-ink)}.sensory-batch-summary{display:flex;gap:32px;align-items:flex-start;margin-bottom:24px;padding:16px;background:var(--color-ink-raised);border-radius:var(--radius);flex-wrap:wrap}.sensory-batch-radar{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:220px}.sensory-avg-pct{font-size:var(--text-xl);font-weight:700;margin-top:4px}.sensory-batch-attrs{flex:1;min-width:200px;display:flex;flex-direction:column;gap:10px;justify-content:center}.sensory-attr-row{display:grid;grid-template-columns:80px 1fr 80px;align-items:center;gap:8px}.sensory-attr-label{font-size:var(--text-sm);color:var(--color-ink-muted);font-weight:500}.sensory-attr-val{font-size:var(--text-sm);text-align:right;font-weight:600;color:var(--color-ink-text)}.sensory-eval-list{margin-top:16px}.sensory-eval-card{padding:10px 12px;border:1px solid var(--color-ink-line);border-radius:var(--radius);margin-bottom:8px;background:var(--color-ink-raised)}.sensory-eval-card__header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sensory-score-grid{display:flex;flex-direction:column;gap:10px}.sensory-score-row{display:grid;grid-template-columns:90px 72px 32px 1fr;align-items:center;gap:8px}.sensory-score-label{font-size:var(--text-sm);color:var(--color-ink-muted);font-weight:500}.sensory-score-input{height:32px;padding:4px 8px;font-size:var(--text-sm)}.sensory-score-max{font-size:var(--text-xs);color:var(--color-ink-faint);text-align:right}.sensory-score-bar{height:6px;background:var(--color-ink);border-radius:3px;overflow:hidden}.sensory-score-fill{height:100%;border-radius:3px;transition:width .2s}.sensory-total{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--color-ink-line);font-size:var(--text-sm);margin-top:4px}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.main-area>div{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.page-header{padding:24px var(--content-padding) 0;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.page-header__eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-deep);margin-bottom:6px}.page-header__title{font-size:var(--text-3xl);font-weight:600;letter-spacing:-.02em;color:var(--color-text);margin-bottom:4px}.page-header__sub{font-size:var(--text-sm);color:var(--color-text-muted);padding-bottom:16px}.page-header__tabs{display:flex;gap:0;margin-top:8px}.page-body{flex:1;overflow-y:auto;padding:var(--content-padding);background:var(--color-bg)}.tab-bar{display:flex;gap:2px}.tab-bar__item{padding:10px 16px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600;cursor:pointer;margin-bottom:-1px;transition:color var(--transition),border-color var(--transition)}.tab-bar__item:hover{color:var(--color-text)}.tab-bar__item.active{color:var(--color-text);border-bottom-color:var(--color-text)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;margin-bottom:16px}.card__title{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:4px}.card__sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:16px}.card--mint{background:var(--color-pastel-mint);border-color:transparent}.card--blue{background:var(--color-pastel-blue);border-color:transparent}.card--lilac{background:var(--color-pastel-lilac);border-color:transparent}.card--cream{background:var(--color-pastel-cream);border-color:transparent}.card--ink{background:var(--color-ink);color:var(--color-ink-text);border-color:transparent}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:24px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px}.stat-card__label{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:10px}.stat-card__value{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.02em;color:var(--color-text);line-height:1}.stat-card__sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:6px}.stat-card__value--accent{color:var(--color-accent-deep)}.stat-card__value--warn{color:var(--color-warning, #d97706)}.stat-card__value--danger{color:var(--color-danger)}.stat-card--mint{background:var(--color-pastel-mint);border-color:transparent}.stat-card--blue{background:var(--color-pastel-blue);border-color:transparent}.stat-card--lilac{background:var(--color-pastel-lilac);border-color:transparent}.stat-card--cream{background:var(--color-pastel-cream);border-color:transparent}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:8px}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:8px}.resource-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px}.resource-card__name{font-weight:600;font-size:var(--text-sm);color:var(--color-text);margin-bottom:2px}.resource-card__type{margin-bottom:8px}.resource-card__content{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.resource-card__vol{margin-top:4px}.btn{display:inline-flex;align-items:center;gap:8px;height:var(--btn-height);padding:0 16px;border-radius:var(--radius);border:1px solid transparent;font-size:var(--text-sm);font-weight:600;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:background var(--transition),border-color var(--transition),color var(--transition),filter var(--transition),transform var(--transition)}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn--primary{background:var(--color-text);color:var(--color-surface);border-color:var(--color-text)}.btn--mint{background:var(--color-pastel-mint);color:var(--color-on-accent)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border-light);color:var(--color-text)}.btn--secondary:hover{filter:none;background:var(--color-surface-2);border-color:var(--color-text-muted)}.btn--danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn--danger:hover{filter:none;background:var(--color-danger);color:#fff}.btn--ghost{background:transparent;border:none;color:var(--color-text-muted);padding:0 10px}.btn--ghost:hover{filter:none;background:var(--color-surface-2);color:var(--color-text)}.btn--dark{background:var(--color-ink);color:var(--color-ink-text)}.btn--sm{height:var(--btn-height-sm);padding:0 12px;font-size:var(--text-xs)}.btn--lg{height:var(--btn-height-lg);padding:0 20px;font-size:var(--text-base)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:6px}.form-control{width:100%;height:40px;padding:0 12px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-sans);transition:border-color var(--transition),box-shadow var(--transition)}.form-control::placeholder{color:var(--color-text-faint)}.form-control:focus{outline:none;border-color:var(--color-text);box-shadow:0 0 0 3px #15171a0f}.form-control--textarea{height:auto;padding:10px 12px;resize:vertical;min-height:80px}select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236B6F76' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.form-hint{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:4px}.form-hint-inline{font-size:var(--text-xs);color:var(--color-text-faint);font-weight:400}.form-hint--warning{font-size:var(--text-xs);color:var(--color-warning, #f2b705);margin-top:4px}.form-error{font-size:var(--text-xs);color:var(--color-danger);margin-top:4px}.virtual-account-notice{display:flex;align-items:center;gap:8px;margin-top:6px;padding:6px 10px;background:#f2b70514;border:1px solid rgba(242,183,5,.25);border-radius:4px}.virtual-account-notice__text{font-size:var(--text-xs);color:var(--color-text-muted)}.checkbox-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:6px;background:var(--color-surface, rgba(255, 255, 255, .03));border:1px solid var(--color-border, rgba(255, 255, 255, .08))}.checkbox-row input[type=checkbox]{margin-top:2px;flex-shrink:0;cursor:pointer}.checkbox-row span{line-height:1.4}.checkbox-row strong{font-size:var(--text-sm, .875rem)}.form-row{display:grid;gap:16px}.form-row--2{grid-template-columns:1fr 1fr}.form-row--3{grid-template-columns:1fr 1fr 1fr}.form-row--4{grid-template-columns:repeat(4,1fr)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table thead tr{background:transparent}.data-table th{padding:10px 14px;text-align:left;font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);border-bottom:1px solid var(--color-border);background:transparent}.data-table td{padding:12px 14px;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text);vertical-align:middle}.data-table tbody tr:hover td{background:var(--color-surface-2)}.data-table tr.row--danger td{background:#ef44440f}.data-table__empty{text-align:center;padding:40px!important;color:var(--color-text-faint)!important}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;white-space:nowrap;background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge--active,.badge--available,.badge--approved{background:#e5f1ec;color:var(--color-success);border-color:transparent}.badge--inactive,.badge--archived{background:var(--color-surface-2);color:var(--color-text-faint);border-color:var(--color-border)}.badge--warning,.badge--quarantine,.badge--hold{background:#f6ebd2;color:var(--color-warning);border-color:transparent}.badge--danger,.badge--rejected,.badge--revoked{background:#f5ddd6;color:var(--color-danger);border-color:transparent}.badge--info,.badge--planned{background:#dce2f8;color:var(--color-info);border-color:transparent}.badge--mint{background:var(--color-pastel-mint);color:#1c3b32;border-color:transparent}.badge--blue{background:var(--color-pastel-blue);color:#1f2e6e;border-color:transparent}.badge--lilac{background:var(--color-pastel-lilac);color:#3a2f4b;border-color:transparent}.badge--cream{background:var(--color-pastel-cream);color:var(--color-pastel-cream-deep);border-color:transparent}.badge--dark{background:var(--color-ink);color:var(--color-ink-text);border-color:transparent}.modal-overlay{position:fixed;inset:0;background:#0f111473;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden}.modal--lg{max-width:760px}.modal--xl{max-width:960px}.modal__header{padding:20px 24px 16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal__title{font-size:var(--text-lg);font-weight:600;color:var(--color-text)}.modal__close{background:none;border:none;color:var(--color-text-muted);font-size:20px;line-height:1;padding:6px;border-radius:var(--radius);cursor:pointer}.modal__close:hover{background:var(--color-surface-2);color:var(--color-text)}.modal__body{padding:20px 24px;overflow-y:auto;flex:1;color:var(--color-text)}.modal__footer{padding:14px 24px;border-top:1px solid var(--color-border);background:var(--color-surface-2);display:flex;gap:8px;justify-content:flex-end;flex-shrink:0}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:2000;max-width:360px}.toast{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px 16px;font-size:var(--text-sm);box-shadow:var(--shadow-md);display:flex;align-items:flex-start;gap:10px}.toast--success{border-left:3px solid var(--color-success)}.toast--success .toast__icon{color:var(--color-success)}.toast--error{border-left:3px solid var(--color-danger)}.toast--error .toast__icon{color:var(--color-danger)}.toast--warning{border-left:3px solid var(--color-warning)}.toast--warning .toast__icon{color:var(--color-warning)}.toast--info{border-left:3px solid var(--color-info)}.toast--info .toast__icon{color:var(--color-info)}.table-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.table-toolbar__search{flex:1;max-width:320px}.table-toolbar__actions{margin-left:auto;display:flex;gap:8px}.pagination{display:flex;align-items:center;gap:6px;margin-top:16px}.pagination__info{font-size:var(--text-xs);color:var(--color-text-faint);margin-right:auto}.status-filter{display:inline-flex;border:1px solid var(--color-border-light);border-radius:var(--radius);overflow:hidden;background:var(--color-surface)}.status-filter button{padding:0 12px;height:var(--btn-height-sm);border:none;border-left:1px solid var(--color-border-light);background:transparent;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background var(--transition),color var(--transition)}.status-filter button:first-child{border-left:none}.status-filter button.active{background:var(--color-text);color:var(--color-surface)}.status-filter button:not(.active):hover{background:var(--color-surface-2);color:var(--color-text)}.table-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;white-space:nowrap}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sort:hover{color:var(--color-text)}.th-sort .sort-icon{display:inline-block;margin-left:4px;font-size:10px;opacity:.6;vertical-align:middle}.alert{padding:12px 16px;border-radius:var(--radius);font-size:var(--text-sm);margin-bottom:16px;border:1px solid transparent}.alert--warning{background:#f6ebd2;border-color:#c99a3f4d;color:#7d5d20}.alert--danger{background:#f5ddd6;border-color:#c7553d4d;color:#7d2f1f}.alert--success{background:#e5f1ec;border-color:#3e8c734d;color:#1f5040}.alert--info{background:#dce2f8;border-color:#4f6bcf4d;color:#2a3a8c}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--color-text-faint);margin-bottom:20px}.breadcrumb a,.breadcrumb button{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:inherit}.breadcrumb a:hover,.breadcrumb button:hover{color:var(--color-text)}.breadcrumb__sep{opacity:.5}.breadcrumb__current{color:var(--color-text);font-weight:500}.app-footer{padding:8px var(--content-padding);font-size:11px;color:var(--color-text-faint);border-top:1px solid var(--color-border);display:flex;gap:16px;align-items:center;flex-shrink:0;background:var(--color-surface)}.footer-env-select{background:transparent;border:none;color:var(--color-text-faint);font-size:11px;cursor:pointer;padding:0;outline:none;max-width:160px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.text-muted{color:var(--color-text-muted)}.text-faint{color:var(--color-text-faint)}.text-accent{color:var(--color-accent-deep)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.font-mono{font-family:var(--font-mono)}.font-semibold{font-weight:600}.font-bold{font-weight:700}.w-full{width:100%}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-text);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px;color:var(--color-text-muted)}.section-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:12px;margin-top:24px}.section-title:first-child{margin-top:0}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-pill);background:var(--color-pastel-lilac);color:#1d1f23;font-weight:600;font-size:.75rem;letter-spacing:.02em;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar--sm{width:24px;height:24px;font-size:.625rem}.avatar--lg{width:48px;height:48px;font-size:1rem}.avatar--xl{width:64px;height:64px;font-size:1.25rem;border-radius:var(--radius-lg)}.avatar--mint{background:var(--color-pastel-mint)}.avatar--blue{background:var(--color-pastel-blue)}.avatar--cream{background:var(--color-pastel-cream)}.ops-list{display:flex;flex-direction:column;gap:8px}.op-card{display:flex;align-items:center;gap:16px;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px;transition:border-color var(--transition)}.op-card__index{width:28px;height:28px;border-radius:var(--radius-pill);background:var(--color-bg);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;color:var(--color-text-faint);flex-shrink:0}.op-card__body{flex:1;min-width:0}.op-card__name{font-size:var(--text-sm);font-weight:600;color:var(--color-text);margin-bottom:4px}.op-card__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.op-card__actions{display:flex;gap:6px;flex-shrink:0}.op-card--completed{border-left-color:var(--color-success)}.op-card--in_progress{border-left-color:var(--color-accent-deep)}.op-card--skipped{border-left-color:var(--color-border-light)}.op-card--failed{border-left-color:var(--color-danger)}.op-card--blocked{border-left-color:#e2e8f040;opacity:.75}.op-lock{font-size:.75rem;margin-right:4px;opacity:.6;cursor:help}.bp-section{border:1px solid var(--color-border);border-radius:6px;margin-bottom:8px;overflow:hidden}.bp-section__header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#ffffff08;cursor:pointer;-webkit-user-select:none;user-select:none}.bp-section__header:hover{background:#ffffff0f}.bp-section__name{font-weight:600;font-size:var(--text-sm);flex:1}.bp-section__meta{display:flex;align-items:center;gap:8px}.bp-section__chevron{font-size:.65rem;opacity:.5}.bp-section__actions{display:flex;align-items:center;gap:6px}.version-list{width:220px;min-width:220px;border-right:1px solid var(--color-border);overflow-y:auto;max-height:480px}.version-list__item{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--color-border)}.version-list__item:hover{background:#ffffff0a}.version-list__item--active{border-left:3px solid var(--color-accent);padding-left:13px;background:#f2b70512}.version-detail{flex:1;overflow-y:auto;max-height:480px}.ops-list--nested{border-top:1px solid var(--color-border)}.genealogy{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:8px}.genealogy__col{flex:1;min-width:200px;max-width:320px;display:flex;flex-direction:column;gap:10px}.genealogy__col--center{flex:0 0 auto;min-width:200px}.genealogy__col-title{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 4px}.genealogy__arrow{align-self:center;font-size:1.5rem;color:var(--color-text-faint);padding:0 16px;margin-top:28px;flex-shrink:0}.genealogy__empty{font-size:var(--text-sm);color:var(--color-text-faint);padding:8px 0}.gen-card{padding:14px 16px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);display:flex;flex-direction:column;gap:4px}.gen-card--input{border-left:3px solid var(--color-border-light)}.gen-card--batch{border:2px solid var(--color-accent-deep)}.gen-card--output{border-left:3px solid var(--color-success)}.gen-card__code{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;color:var(--color-text-muted);font-family:monospace}.gen-card__fraction{font-size:var(--text-xs);font-weight:600;color:var(--color-amber, #f2b705);text-transform:uppercase;letter-spacing:.06em}.gen-card__name{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.gen-card__qty{font-size:var(--text-xs);color:var(--color-text-muted)}.gen-card__origin{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.gen-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.gen-badge--receipt{background:#22c55e1f;color:#22c55e}.gen-badge--batch{background:#6366f11f;color:#818cf8}.gen-link{font-size:var(--text-xs);font-weight:600;color:var(--color-amber, #f2b705);text-decoration:none}.gen-link:hover{text-decoration:underline}.gen-consumed-in{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid var(--color-border)}.gen-consumed-in__label{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.info-list{display:flex;flex-direction:column}.info-list__row{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--color-border)}.info-list__row:last-child{border-bottom:none}.info-list__row dt{width:160px;flex-shrink:0;font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-faint);padding-top:2px}.info-list__row dd{flex:1;font-size:var(--text-sm);color:var(--color-text)}.cip-inputs{border-top:1px solid var(--color-border);padding-top:14px}.cip-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cip-row .form-control--sm{flex:1;min-width:0}.scope-options{display:flex;flex-direction:column;gap:8px;margin-top:6px}.scope-option{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.875rem;color:var(--color-text)}.scope-option input[type=radio]{cursor:pointer;accent-color:var(--color-accent, #f2b705)}.scope-option input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.ing-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.lot-line{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.lot-line__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.q-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius);margin-bottom:24px}.q-filters__field{display:flex;flex-direction:column;gap:4px;flex:1 1 160px}.q-filters__label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.q-filters__select,.q-filters__date{min-width:0}.q-filters__actions{display:flex;gap:8px;align-items:flex-end;padding-bottom:1px;flex-shrink:0}.q-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:24px}.q-summary__title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}.q-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius);padding:16px}.q-card__name{font-size:var(--text-sm);font-weight:700;color:var(--color-text);margin-bottom:6px}.q-card__count{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:8px}.q-card__stats{display:flex;gap:12px;font-size:var(--text-xs);color:var(--color-text)}.q-card__stat-label{font-weight:600;color:var(--color-accent-deep);margin-right:2px}.data-table__empty-block{padding:48px 0;text-align:center;color:var(--color-text-faint);font-size:var(--text-sm)}.row--selected td{background:var(--color-surface-2)!important}.trace-panel-cell{padding:0!important;border-bottom:2px solid var(--color-border)!important;background:var(--color-bg)!important}.trace-panel{display:grid;grid-template-columns:280px 1fr;gap:0;border-top:1px solid var(--color-border)}.trace-panel__meta{padding:20px 24px;border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:12px}.trace-panel__timeline{padding:20px 24px;display:flex;flex-direction:column;gap:0}.trace-panel__timeline-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:16px}.trace-panel__empty{font-size:var(--text-sm);color:var(--color-text-faint);padding:16px 0}.trace-meta-field{display:flex;flex-direction:column;gap:2px}.trace-meta-field__label{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-faint)}.trace-event{display:flex;gap:0;position:relative}.trace-event__line{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0;padding-top:3px}.trace-event__line:after{content:"";flex:1;width:1px;background:var(--color-border);margin-top:6px;min-height:16px}.trace-event:last-child .trace-event__line:after{display:none}.trace-event__dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.trace-event__dot--green{background:#3e8c73;border-color:#3e8c73}.trace-event__dot--amber{background:#c99a3f;border-color:#c99a3f}.trace-event__dot--red{background:#c7553d;border-color:#c7553d}.trace-event__dot--gray{background:var(--color-text-faint);border-color:var(--color-text-faint)}.trace-event__body{flex:1;min-width:0;padding:0 0 20px 12px}.trace-event__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.trace-event__batch{display:flex;align-items:center;margin-bottom:4px}.trace-event__link{font-size:var(--text-xs);font-weight:600;color:var(--color-accent-deep);text-decoration:none}.trace-event__link:hover{text-decoration:underline}.trace-event__qty{font-size:var(--text-sm);color:var(--color-text)}.checklist-bar{flex:1;height:6px;background:var(--color-border);border-radius:var(--radius-pill);overflow:hidden;min-width:80px}.checklist-bar__fill{height:100%;background:var(--color-info);border-radius:var(--radius-pill);transition:width .3s ease}.checklist-bar__fill--done{background:var(--color-success)}.checklist-bar__fill--over{background:var(--color-warning)}.trend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.trend-card{background:var(--color-theme);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px}.trend-card__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.trend-card__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted, #9ca3af);font-weight:600}.trend-card__last{font-size:var(--text-base);font-weight:700;color:var(--color-text)}.trend-card__last--oor{color:var(--color-danger, #ef4444)}.trend-card__unit{font-size:var(--text-xs);font-weight:400;color:var(--color-text-muted, #9ca3af)}.trend-card__targets{display:flex;gap:8px;margin-top:6px}.trend-target{font-size:var(--text-xs);color:#f2b705b3;padding:1px 6px;border:1px dashed rgba(242,183,5,.3);border-radius:4px}.comparison-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius)}.comparison-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.comparison-table th,.comparison-table td{padding:10px 14px;border-bottom:1px solid var(--color-border);white-space:nowrap}.comparison-table thead th{background:var(--color-ink-raised);color:var(--color-faint);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.comparison-table tbody tr:last-child td{border-bottom:none}.comparison-table tbody tr:hover{background:var(--color-ink-raised)}.comparison-table .text-right{text-align:right}@media(max-width:768px){.sidebar{position:fixed;left:-100%;z-index:100;transition:left var(--transition)}.sidebar.open{left:0}.form-row--2,.form-row--3,.form-row--4{grid-template-columns:1fr}.page-body{padding:16px}}
