@keyframes ph-slide{from{transform: translateX(28px)}to{transform: translateX(0)}}@keyframes ph-spin{to{transform: rotate(360deg)}}.ph-spin{animation: ph-spin 0.7s linear infinite}.ph-gal:hover .ph-gal-actions{opacity: 1 !important}.ph-opt-grip{cursor: grab;touch-action: none}.ph-opt-grip:hover{color: #6B7280}.ph-opt-grip:active{cursor: grabbing}.ph-filter-popover-panel{width: 280px;max-height: 360px;overflow-y: auto;padding: 8px;box-sizing: border-box}.ph-filter-popover-panel__item:hover{background: #F1F5FB !important;border-radius: 5px}.ph-pu-row:hover{background: #F7FAFE}.ph-prod-row{transition: background 100ms}.ph-prod-row:hover{background: #F7FAFE}vaadin-grid.ph-pu-grid vaadin-grid-cell-content{padding: 0}vaadin-grid.ph-pu-grid::part(body-cell){min-height: 62px;box-sizing: border-box;padding: 0 6px}vaadin-grid.ph-pu-grid{--ph-pu-head-h: 40px}vaadin-grid.ph-pu-grid::part(header-cell){min-height: 40px;background: var(--ph-ink-50);border-bottom: 1px solid var(--ph-ink-100);font-size: 10.5px;font-weight: 600;color: var(--ph-ink-400);letter-spacing: .06em;padding: 9px 6px}vaadin-grid.ph-pu-grid::part(first-column-cell){padding-inline-start: 16px}vaadin-grid.ph-pu-grid::part(last-column-cell){padding-inline-end: 16px}vaadin-grid.ph-pu-grid vaadin-grid-sorter::part(content){font-size: 10.5px;font-weight: 600;letter-spacing: .06em;color: var(--ph-ink-400)}vaadin-grid.ph-pu-grid vaadin-grid-sorter[direction]::part(content){color: var(--ph-blue-500)}vaadin-grid.ph-pu-grid vaadin-grid-sorter{line-height: 1.2;align-items: center}vaadin-grid.ph-pu-grid vaadin-grid-sorter::part(content){line-height: 1.2}vaadin-grid.ph-pu-grid vaadin-grid-sorter::part(indicators){display: none}vaadin-grid.ph-pu-grid vaadin-grid-sorter[direction="desc"]::part(content)::after{content: ' ▼'}vaadin-grid.ph-pu-grid vaadin-grid-sorter[direction="asc"]::part(content)::after{content: ' ▲'}vaadin-grid.ph-pu-grid::part(body-cell){background: transparent}vaadin-grid.ph-pu-grid::part(row){background: #fff}vaadin-grid.ph-pu-grid::part(row):hover{background: #F7FAFE}vaadin-grid.ph-pu-grid::part(ph-pu-row-highlight){background: var(--ph-warning-50)}.ph-cat-tree__thumb{width: 20px;height: 20px;border-radius: 4px;flex-shrink: 0;overflow: hidden;display: inline-flex;align-items: center;justify-content: center}.ph-cat-tree__thumb--leaf{background: #E8EEF6}.ph-cat-tree__thumb--branch{background: #DCE9FF}.ph-cat-tree__thumb-img{width: 100%;height: 100%;object-fit: cover}.ph-cat-tree__thumb-label{font-size: 9.5px;font-weight: 700;color: var(--ph-blue-700)}.ph-cat-tree__meta{font-size: 10.5px;color: var(--ph-ink-400);white-space: nowrap;font-variant-numeric: tabular-nums}.ph-cat-tree__health-dot{width: 6px;height: 6px;border-radius: 50%;flex-shrink: 0}.ph-cat-tree__health-dot--empty{background: #C2C9D4}.ph-cat-tree__health-dot--issue{background: var(--ph-amber-500)}.ph-cat-tree__row--selected{background: var(--ph-blue-50);border-left: 3px solid var(--ph-blue-500)}.ph-cat-tree__row--unselected{background: transparent;border-left: 3px solid transparent}.ph-cat-tree-aside__add-root{flex: 1;border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);border-radius: 6px;padding: 5px 0;font-size: 11.5px;cursor: pointer;font-family: inherit}.ph-cat-tree-aside__add-child{flex: 1;border: 1px solid #B9CFF2;background: #F5F9FF;color: var(--ph-blue-500);border-radius: 6px;padding: 5px 0;font-size: 11.5px;cursor: pointer;font-family: inherit}.ph-cat-tree-aside__add-child--disabled{opacity: .45;cursor: not-allowed}.ph-cat-detail-header{background: #fff;border: 1px solid var(--ph-ink-200);border-radius: 8px;padding: 12px 16px;display: flex;flex-direction: column;gap: 10px}.ph-cat-detail-header__row{display: flex;align-items: center;gap: 10px}.ph-cat-detail-header__meta{flex: 1;min-width: 0}.ph-cat-detail-header__name-row{display: flex;align-items: center;gap: 8px;flex-wrap: wrap}.ph-cat-detail-header__name{font-size: 16px;font-weight: 700;color: var(--ph-ink-900)}.ph-cat-detail-header__code{display: inline-flex;align-items: center;gap: 4px;font-family: var(--font-mono);font-size: 11px;color: #667085;background: #F2F5F9;border-radius: 4px;padding: 1px 6px}.ph-cat-detail-header__code-lock{display: inline-flex;flex-shrink: 0}.ph-cat-detail-header__leaf-badge{font-size: 10.5px;font-weight: 600;border-radius: 4px;padding: 0 6px}.ph-cat-detail-header__leaf-badge--leaf{color: #166534;background: #F0FDF4}.ph-cat-detail-header__leaf-badge--branch{color: var(--ph-blue-700);background: var(--ph-blue-50)}.ph-cat-detail-header__subline{font-size: 11.5px;color: var(--ph-ink-400);margin-top: 3px}.ph-cat-detail-header__actions{display: flex;align-items: center;gap: 6px;flex-shrink: 0}.ph-cat-detail-header__btn{border-radius: 6px;padding: 5px 11px;font-size: 12px;cursor: pointer;font-family: inherit;background: #fff}.ph-cat-detail-header__btn--child{border: 1px solid #B9CFF2;background: #F5F9FF;color: var(--ph-blue-500)}.ph-cat-detail-header__btn--merge{border: 1px solid var(--ph-ink-200);color: var(--ph-ink-600)}.ph-cat-detail-header__btn--delete{border: 1px solid #F5C9C9;color: var(--ph-danger-600)}.ph-cat-detail-header__btn--delete-blocked{border-color: var(--ph-ink-100);color: #C2C9D4;cursor: not-allowed}.ph-stats-strip{display: grid;grid-template-columns: repeat(6,minmax(0,1fr));gap: 6px}.ph-stats-strip__cell{display: block;background: #F8FAFC;border: 1px solid var(--ph-ink-100);border-radius: 6px;padding: 6px 10px;min-width: 0}.ph-stats-strip__label{display: block;font-size: 10.5px;color: var(--ph-ink-400);white-space: nowrap}.ph-stats-strip__value{display: block;font-size: 15px;font-weight: 700;font-variant-numeric: tabular-nums;margin-top: 1px}.ph-stats-strip__sub{display: block;font-size: 10px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.ph-cat-tab-card{background: #fff;border: 1px solid var(--ph-ink-200);border-radius: 8px;display: flex;flex-direction: column}.ph-cat-tab-bar{display: flex;align-items: center;gap: 4px;padding: 8px 12px 0;border-bottom: 1px solid var(--ph-ink-100)}.ph-cat-tab-bar__tabs{display: flex;align-items: center;gap: 4px}.ph-cat-tab-bar__actions{margin-left: auto;display: flex;align-items: center;gap: 8px;padding-bottom: 6px}.ph-cat-tab-bar__inherit-toggle{border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);border-radius: 999px;padding: 3px 10px;font-size: 11.5px;cursor: pointer;font-family: inherit}.ph-cat-tab-bar__inherit-toggle--active{border-color: var(--ph-blue-500);background: var(--ph-blue-50);color: var(--ph-blue-500)}.ph-cat-tab-bar__add-attr{border: none;background: var(--ph-blue-500);color: #fff;border-radius: 6px;padding: 5px 11px;font-size: 12px;font-weight: 500;cursor: pointer;font-family: inherit}.ph-cat-tab-bar__add-rule{border: none;background: #6D28D9;color: #fff;border-radius: 6px;padding: 5px 11px;font-size: 12px;font-weight: 500;cursor: pointer;font-family: inherit}.ph-cat-tab-bar__add-rule--disabled{opacity: .45;cursor: not-allowed}.ph-cat-tab-card__content{display: flex;flex-direction: column;gap: 14px}.ph-attrs-tab__row-grid{display: grid;grid-template-columns: 36px minmax(180px,1.4fr) 150px 132px 48px 104px 118px 90px 90px;gap: 8px;align-items: center}.ph-attrs-tab__banner{margin: 10px 12px 0;background: var(--ph-blue-50);border: 1px solid #B9CFF2;border-radius: 6px;padding: 7px 12px;font-size: 11.5px;color: var(--ph-blue-700)}.ph-attrs-tab__header-row{padding: 6px 12px;border-bottom: 1px solid var(--ph-ink-200);font-size: 11px;color: var(--ph-ink-400);background: #FAFBFD}.ph-attrs-tab__header-row span:last-child{text-align: right}.ph-attrs-tab__body{overflow: auto}.ph-attrs-tab__group-header{padding: 6px 12px;font-size: 11px;font-weight: 600;color: #667085;background: #F8FAFC;border-bottom: 1px solid #F1F4F8}.ph-attrs-tab__group-count{font-weight: 400;color: var(--ph-ink-400)}.ph-attrs-tab__row{border-bottom: 1px solid #F1F4F8}.ph-attrs-tab__row .ph-attrs-tab__row-grid{padding: 7px 12px;min-height: 44px;box-sizing: border-box}.ph-attrs-tab__row:hover>.ph-attrs-tab__row-grid{background: #F8FAFC}.ph-attrs-tab__row-grid--draggable.v-drag-over-target{box-shadow: inset 0 2px 0 0 var(--ph-blue-500)}.ph-attrs-tab__row-grid--draggable:has(.v-dragged){opacity: 0.4;background: #F5F9FF}.ph-attrs-tab__drag-handle{font-size: 13px;line-height: 1;color: #E3E8EF}.ph-attrs-tab__drag-handle--grab{color: #C2C9D4;cursor: grab}.ph-attrs-tab__drag-handle--grab:active{cursor: grabbing}.ph-attrs-tab__group-drag-handle{margin-right: 6px}.ph-attrs-tab__group-header[draggable="true"]{cursor: grab;user-select: none}.ph-attrs-tab__group-header[draggable="true"]:active{cursor: grabbing}.ph-attrs-tab__idx-cell{display: inline-flex;align-items: center;gap: 4px;min-height: 20px;user-select: none}.ph-attrs-tab__idx{font-size: 11px;color: var(--ph-ink-400);font-variant-numeric: tabular-nums}.ph-attrs-tab__name-cell{min-width: 0;display: flex;flex-direction: column;gap: 2px}.ph-attrs-tab__name{font-size: 12.5px;font-weight: 600;color: var(--ph-ink-900);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.ph-attrs-tab__code-row{display: flex;align-items: center;gap: 6px;min-width: 0}.ph-attrs-tab__code{font-family: var(--font-mono);font-size: 10.5px;color: var(--ph-ink-400);white-space: nowrap}.ph-attrs-tab__issue-badge{font-size: 10px;font-weight: 600;color: #92600A;background: #FFF6E3;border-radius: 3px;padding: 0 5px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.ph-attrs-tab__type{font-size: 11.5px;color: var(--ph-ink-600);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.ph-attrs-tab__usage-badges{display: flex;gap: 4px}.ph-attrs-tab__badge{font-size: 10.5px;font-weight: 600;color: var(--ph-ink-300);background: #F8FAFC;border-radius: 3px;padding: 0 6px}.ph-attrs-tab__badge--meta-on{color: var(--ph-blue-700);background: var(--ph-blue-50)}.ph-attrs-tab__badge--variant-on{color: #A6802B;background: #FBF1E0}.ph-attrs-tab__badge--filter-on{color: #15803D;background: #F1FAF4;border-color: #BBE7CC}.ph-attrs-tab__required{font-size: 11.5px;color: var(--ph-ink-400)}.ph-attrs-tab__required--on{color: var(--ph-ink-900)}.ph-attrs-tab__source{font-size: 11px;color: #667085;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.ph-attrs-tab__source--inherited{color: var(--ph-blue-500)}.ph-attrs-tab__row-grid--excluded{opacity: 0.5}.ph-attrs-tab__source-cell{display: flex;flex-direction: column;gap: 2px;min-width: 0}.ph-attrs-tab__source-sub--excluded{font-size: 10.5px;color: var(--ph-amber-500)}.ph-attrs-tab__exclude-link{color: var(--ph-amber-500)}.ph-attrs-tab__restore-link{color: var(--ph-success-500)}.ph-attrs-tab__usage-cell{display: flex;align-items: center;gap: 6px}.ph-attrs-tab__usage-track{flex: 1;height: 5px;background: #F2F5F9;border-radius: 3px;overflow: hidden}.ph-attrs-tab__usage-fill{height: 100%;background: var(--ph-blue-500)}.ph-attrs-tab__usage-fill--zero{background: var(--ph-ink-200)}.ph-attrs-tab__usage-text{font-size: 11px;color: var(--ph-ink-600);font-variant-numeric: tabular-nums;white-space: nowrap}.ph-attrs-tab__rules-cell{display: flex;gap: 4px;flex-wrap: wrap}.ph-attrs-tab__rules-target-btn{border: 1px solid #DDD6FE;background: #F5F3FF;color: #6D28D9;border-radius: 4px;padding: 1px 7px;font-size: 10.5px;cursor: pointer;font-family: inherit;white-space: nowrap}.ph-attrs-tab__rules-source{font-size: 10.5px;color: #667085;background: #F2F5F9;border-radius: 4px;padding: 1px 7px;white-space: nowrap}.ph-attrs-tab__rules-none{font-size: 11px;color: var(--ph-ink-300)}.ph-attrs-tab__actions{display: flex;gap: 8px;justify-content: flex-end;white-space: nowrap;font-size: 11.5px;line-height: normal}.ph-attrs-tab__actions vaadin-button{font-weight: 400}.ph-attrs-tab__disable-link{color: var(--ph-danger-600)}.ph-attrs-tab__rule-expand{padding: 6px 12px 10px 60px;background: #FBFAFF;display: flex;flex-direction: column;gap: 5px;font-size: 11.5px;color: var(--ph-ink-600)}.ph-attrs-tab__footer{padding: 12px;text-align: center;font-size: 11px;color: var(--ph-ink-400)}.ph-attrs-tab__rule-expand-row{display: flex;align-items: center;gap: 8px;font-size: 11.5px}.ph-attrs-tab__rule-expand-status{font-size: 10px;font-weight: 600;color: #6D28D9;background: #EDE9FE;border-radius: 3px;padding: 0 5px;white-space: nowrap}.ph-attrs-tab__rule-expand-name{font-weight: 600;color: var(--ph-ink-900);white-space: nowrap}.ph-attrs-tab__rule-expand-sentence{color: #4B5563;min-width: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;flex: 1}.ph-attrs-tab__rule-expand-from{font-size: 10px;color: var(--ph-blue-500);white-space: nowrap}.ph-attrs-tab__rule-expand-edit{margin-left: auto;font-size: 11px;white-space: nowrap}.ph-rules-tab{display: flex;flex-direction: column;gap: 12px;padding: 12px 14px}.ph-rules-tab__hint{font-size: 11.5px;color: #667085}.ph-rules-tab__empty{background: #F8FAFC;border: 1px dashed #D5DBE4;border-radius: 8px;padding: 20px;text-align: center;font-size: 12px;color: var(--ph-ink-400)}.ph-rules-tab__group{border: 1px solid #EDE9FE;border-radius: 8px;overflow: hidden}.ph-rules-tab__group-header{display: flex;align-items: center;gap: 8px;padding: 7px 12px;background: #FBFAFF;border-bottom: 1px solid #EDE9FE}.ph-rules-tab__group-header-label{font-size: 11px;color: #6D28D9;font-weight: 600}.ph-rules-tab__group-header-name{font-size: 12.5px;font-weight: 700;color: var(--ph-ink-900)}.ph-rules-tab__group-header-meta{font-size: 11px;color: var(--ph-ink-300)}.ph-rules-tab__row{display: grid;grid-template-columns: 44px minmax(0,1fr) 150px 56px 60px;gap: 10px;align-items: center;padding: 8px 12px;border-bottom: 1px solid #F3F1FA;background: #fff}.ph-rules-tab__group>.ph-rules-tab__row:last-child{border-bottom: none}.ph-rules-tab__row-order{display: flex;align-items: center;gap: 3px}.ph-rules-tab__row-order-idx{font-size: 11px;color: var(--ph-ink-300);width: 14px}.ph-rules-tab__row-order-updown{display: inline-flex;flex-direction: column}.ph-rules-tab__row-order-btn{border: none;background: none;color: var(--ph-ink-300);font-size: 9px;line-height: 9px;cursor: pointer;padding: 0 3px;font-family: inherit}.ph-rules-tab__row-main{min-width: 0}.ph-rules-tab__row-name-line{display: flex;align-items: center;gap: 6px}.ph-rules-tab__row-name{font-size: 12.5px;font-weight: 600;color: var(--ph-ink-900)}.ph-rules-tab__row-msr-badge{font-size: 10px;color: #92600A;background: #FFF6E3;border-radius: 3px;padding: 0 5px}.ph-rules-tab__row-sentence{display: block;font-size: 11.5px;color: #4B5563;margin-top: 2px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.ph-rules-tab__row-from{font-size: 11px;color: var(--ph-ink-300);white-space: nowrap}.ph-rules-tab__row-from--inherited{color: var(--ph-blue-500)}.ph-rules-tab__row-toggle{width: 38px;height: 22px;border-radius: 11px;border: none;cursor: pointer;position: relative;background: #D5DBE4;padding: 0}.ph-rules-tab__row-toggle--on{background: var(--ph-blue-500)}.ph-rules-tab__row-toggle--inherited{background: #E3E8EF;cursor: not-allowed}.ph-rules-tab__row-toggle--inherited.ph-rules-tab__row-toggle--on{background: #B9CFF2}.ph-rules-tab__row-toggle-knob{position: absolute;top: 2px;left: 2px;width: 18px;height: 18px;border-radius: 50%;background: #fff;box-shadow: 0 1px 2px rgba(15,24,38,.2);transition: left .15s}.ph-rules-tab__row-toggle--on .ph-rules-tab__row-toggle-knob{left: 18px}.ph-rules-tab__row-edit{justify-self: end}.ph-sop-root{display: contents}.ph-sop-scrim{position: fixed;inset: 0;background: rgba(15,24,38,.45);z-index: 3;display: none}.ph-sop-scrim--open{display: block}.ph-sop-panel{position: fixed;top: 50%;left: 50%;right: auto;bottom: auto;max-height: 86%;border-radius: 10px;overflow: hidden;background: #fff;box-shadow: 0 24px 64px rgba(15,24,38,.28);z-index: 4;display: flex;flex-direction: column;transform: translate(-50%,-47%) scale(.98);opacity: 0;pointer-events: none;transition: transform 260ms cubic-bezier(0.22,0.61,0.36,1),opacity 180ms}.ph-sop-panel--open{transform: translate(-50%,-50%);opacity: 1;pointer-events: auto}.ph-sop-panel__header{padding: 16px 22px;background: #fff;border-bottom: 1px solid var(--ph-ink-200);display: flex;align-items: flex-start;flex-wrap: wrap;gap: 12px;flex-shrink: 0}.ph-sop-panel__header-bottom{flex-basis: 100%;margin-bottom: -16px}.ph-sop-panel__header:has(.ph-sop-panel__header-bottom) + .ph-sop-panel__body{padding-top: 15px}.ph-sop-panel__title-wrap{flex: 1;min-width: 0}.ph-sop-panel__title{font-size: 16px;font-weight: 600;color: var(--ph-ink-900)}.ph-sop-panel__subtitle{font-size: 12px;color: var(--ph-ink-500);margin-top: 3px}.ph-sop-panel__header-trailing{display: flex;align-items: center}.ph-sop-panel__close{width: 30px;height: 30px;border: 1px solid var(--ph-ink-200);border-radius: 6px;background: #fff;cursor: pointer;color: var(--ph-ink-500);display: flex;align-items: center;justify-content: center;flex-shrink: 0;padding: 0}.ph-sop-panel__body{flex: 1;overflow-y: auto;padding: 22px}.ph-sop-panel__footer{padding: 14px 22px;background: #fff;border-top: 1px solid var(--ph-ink-200);display: flex;justify-content: flex-end;gap: 8px;flex-shrink: 0}.ph-toast{position: fixed;left: 50%;bottom: 32px;transform: translateX(-50%);background: #0F1826;color: #fff;padding: 10px 18px;border-radius: 8px;font-size: 13px;z-index: 5;box-shadow: 0 8px 24px rgba(15,24,38,.24);white-space: nowrap}.ph-ap-section{display: flex;flex-direction: column;gap: 14px}.ph-ap-field{display: flex;flex-direction: column;gap: 5px}.ph-ap-field-label{font-size: 12px;color: var(--ph-ink-600)}.ph-ap-field-label__required{color: var(--ph-danger-500)}.ph-ap-field-label__suffix{font-size: 11px;color: var(--ph-ink-400)}.ph-ap-input{width: 100%;padding: 0;--lumo-text-field-size: auto}.ph-ap-input input,.ph-ap-input textarea{height: auto;min-height: 0;padding: 0;line-height: 18px}.ph-ap-input::part(input-field){border: 1px solid var(--ph-ink-200);background: #fff;border-radius: 6px;font-size: 12.5px;padding: 8px 10px;min-height: 0;color: var(--ph-ink-900);box-shadow: none}.ph-ap-input::part(input-field):focus-within{border-color: var(--ph-blue-500)}.ph-ap-input--emphasis::part(input-field):focus-within{box-shadow: 0 0 0 3px rgba(29,111,224,.22)}.ph-ap-input--mono::part(input-field){font-family: var(--font-mono)}.ph-ap-input--textarea::part(input-field){resize: none}.ph-ap-name-code-grid{display: grid;grid-template-columns: 1fr 1fr;gap: 10px}.ph-ap-code-hint{font-size: 10.5px;color: var(--ph-ink-400);margin-top: 4px}.ph-ap-ai-badge{margin-left: 6px;font-size: 10px;color: #6D28D9;background: #F5F3FF;border-radius: 3px;padding: 0 5px;display: inline-block;line-height: 16px;vertical-align: middle}.ph-ap-code-input{width: 100%;box-sizing: border-box;padding: 8px 10px;border: 1px solid var(--ph-ink-200);border-radius: 6px;font-size: 12.5px;font-family: var(--font-mono);line-height: 18px;outline: none;color: var(--ph-ink-900);background: #fff}.ph-ap-code-input:focus{border-color: var(--ph-blue-500)}.ph-ap-code-input-wrap{position: relative}.ph-ap-code-input--generating{border-color: #DDD6FE}.ph-ap-code-spinner{display: none;position: absolute;top: 50%;right: 10px;width: 12px;height: 12px;margin-top: -6px;box-sizing: border-box;border: 2px solid #DDD6FE;border-top-color: #6D28D9;border-radius: 50%}.ph-ap-code-spinner--visible{display: block;animation: ph-spin 0.7s linear infinite}.ph-ap-group-row{display: flex;gap: 6px;flex-wrap: wrap;align-items: center}.ph-ap-group-btn{border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);border-radius: 6px;padding: 6px 12px;font-size: 12.5px;cursor: pointer;font-family: inherit}.ph-ap-group-btn--on{border-color: var(--ph-blue-500);background: var(--ph-blue-50);color: var(--ph-blue-500);font-weight: 600}.ph-ap-group-btn--new{border: 1px dashed #C9D6E8;background: #FAFBFD;color: var(--ph-ink-500);border-radius: 6px;padding: 6px 12px;font-size: 12px;cursor: pointer;font-family: inherit}.ph-ap-group-new-input{width: 140px;padding: 0;--lumo-text-field-size: auto}.ph-ap-group-new-input input{height: auto;min-height: 0;padding: 0;line-height: normal}.ph-ap-group-new-input::part(input-field){border: 1px solid var(--ph-blue-500);background: #fff;border-radius: 6px;font-size: 12.5px;padding: 6px 10px;min-height: 0;box-shadow: none}.ph-ap-group-readonly{padding: 7px 10px;border: 1px solid var(--ph-ink-200);border-radius: 6px;font-size: 12.5px;color: var(--ph-ink-900);background: #fff}.ph-ap-required-card,.ph-ap-filter-card{display: flex;align-items: center;gap: 10px;background: var(--ph-ink-50);border: 1px solid var(--ph-ink-100);border-radius: 8px;padding: 10px 12px}.ph-ap-required-text,.ph-ap-filter-text{flex: 1}.ph-ap-required-title,.ph-ap-filter-title{font-size: 12.5px;font-weight: 600;color: var(--ph-ink-900)}.ph-ap-required-desc{font-size: 11px;color: var(--ph-ink-500);margin-top: 2px}.ph-ap-filter-right{display: flex;align-items: center;gap: 8px;flex-shrink: 0}.ph-ap-toggle{width: 38px;height: 22px;border-radius: 11px;border: none;cursor: pointer;position: relative;background: #D5DBE4;padding: 0;flex-shrink: 0}.ph-ap-toggle--on{background: var(--ph-blue-500)}.ph-ap-toggle__knob{position: absolute;top: 2px;left: 2px;width: 18px;height: 18px;border-radius: 50%;background: #fff;box-shadow: 0 1px 2px rgba(15,24,38,.2);transition: left .15s}.ph-ap-toggle--on .ph-ap-toggle__knob{left: 18px}.ph-ap-hint-label-row{display: flex;font-size: 12px;color: var(--ph-ink-600)}.ph-ap-hint-counter{margin-left: auto;font-size: 10.5px;color: var(--ph-ink-400);font-variant-numeric: tabular-nums}.ph-ap-hint-counter--over{color: var(--ph-danger-600)}.ph-ap-tabs{display: flex;gap: 2px}.ph-ap-tab{border: none;border-bottom: 2px solid transparent;background: none;color: #667085;padding: 6px 12px 8px;font-size: 12.5px;font-weight: 600;cursor: pointer;font-family: inherit;display: inline-flex;align-items: center;gap: 6px}.ph-ap-tab--active{border-bottom-color: var(--ph-blue-500);color: var(--ph-blue-500)}.ph-ap-tab__dot{width: 6px;height: 6px;border-radius: 50%;background: var(--ph-warning-500)}.ph-ap-type-row{display: flex;gap: 6px;flex-wrap: wrap}.ph-ap-type-btn{border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);border-radius: 6px;padding: 6px 12px;font-size: 12.5px;cursor: pointer;font-family: inherit}.ph-ap-type-btn--on{border-color: var(--ph-blue-500);background: var(--ph-blue-50);color: var(--ph-blue-500);font-weight: 600}.ph-ap-type-note{font-size: 10.5px;color: var(--ph-ink-400);margin-top: 5px}.ph-ap-type-note--warn{color: #B5810E}.ph-ap-choice-header{display: flex;align-items: center;margin-bottom: 6px}.ph-ap-add-option-btn,.ph-ap-add-axis-btn,.ph-ap-bands-card__add{margin-left: auto;border: 1px solid #B9CFF2;background: #F5F9FF;color: var(--ph-blue-500);border-radius: 5px;padding: 2px 9px;font-size: 11.5px;cursor: pointer;font-family: inherit}.ph-ap-opt-list,.ph-ap-axes-list{display: flex;flex-direction: column;gap: 6px;margin-top: 6px}.ph-ap-axis-row{display: flex;align-items: center;gap: 8px}.ph-ap-opt-row{display: grid;grid-template-columns: 34px minmax(0,4fr) minmax(0,6fr) 60px;gap: 8px;align-items: center}.ph-ap-opt-row--with-image{grid-template-columns: 34px 44px minmax(0,4fr) minmax(0,6fr) 60px}.ph-ap-opt-row--disabled{opacity: .45}.ph-ap-opt-header{display: grid;grid-template-columns: 34px minmax(0,4fr) minmax(0,6fr) 60px;gap: 8px;margin-bottom: 2px}.ph-ap-opt-header--with-image{grid-template-columns: 34px 44px minmax(0,4fr) minmax(0,6fr) 60px}.ph-ap-opt-header__label{font-size: 10px;color: var(--ph-ink-400)}.ph-ap-opt-row__idx-cell{display: inline-flex;align-items: center;gap: 4px;min-height: 20px;user-select: none}.ph-ap-opt-row--draggable.v-drag-over-target{border-top: 2px solid var(--ph-blue-500)}.ph-ap-opt-row--draggable:has(.v-dragged){opacity: .4}.ph-ap-opt-row__drag-handle{font-size: 13px;line-height: 1;color: #E3E8EF}.ph-ap-opt-row__drag-handle--grab{color: #C2C9D4;cursor: grab}.ph-ap-opt-row__drag-handle--grab:active{cursor: grabbing}.ph-ap-opt-row__idx,.ph-ap-axis-row__idx{font-size: 11px;color: var(--ph-ink-400);width: 22px;text-align: right;font-family: var(--font-mono)}.ph-ap-opt-row__image{width: 44px;height: 44px;border-radius: 6px;flex-shrink: 0;border: 1px dashed #C9D6E8;background: #FAFBFD;display: inline-flex;align-items: center;justify-content: center;font-size: 11px;color: var(--ph-ink-400)}.ph-ap-opt-row__image--empty:hover{border-color: var(--ph-blue-500);cursor: pointer}.ph-ap-opt-row__image--uploading{border-style: solid;border-color: var(--ph-blue-500);cursor: default}.ph-ap-opt-row__image--filled{border-style: solid;border-color: var(--ph-ink-200);background: #fff;cursor: pointer}.ph-ap-opt-row__image--locked{opacity: .45;cursor: not-allowed}.ph-ap-opt-row__image-inner{position: relative;width: 100%;height: 100%;display: inline-flex;align-items: center;justify-content: center;overflow: visible;border-radius: 6px;box-sizing: border-box}.ph-ap-opt-row__image-icon{font-size: 16px;line-height: 1;color: var(--ph-ink-300)}.ph-ap-opt-row__image-img{width: 100%;height: 100%;object-fit: cover;border-radius: 5px}.ph-ap-opt-row__image-progress{width: 28px;height: 3px;border-radius: 2px;background: var(--ph-blue-500);transition: width .2s}.ph-ap-opt-row__image-remove{position: absolute;top: -6px;right: -6px;width: 16px;height: 16px;border-radius: 50%;background: #0F1826;color: #fff;font-size: 11px;line-height: 16px;text-align: center;cursor: pointer}.ph-ap-opt-row__image-upload{width: 44px;height: 44px;padding: 0;border: none;background: transparent}.ph-ap-opt-row__image-upload::part(primary-buttons){width: 44px;height: 44px;padding: 0;margin: 0}.ph-ap-opt-row__image-upload::part(drop-label){display: none !important}.ph-ap-opt-row__image-upload::part(drop-label-icon){display: none !important}.ph-ap-opt-row__image-upload::part(file-list){display: none !important}.ph-ap-opt-row__image-upload [slot="add-button"]{width: 100%;height: 100%}.ph-ap-opt-row__input,.ph-ap-axis-row__input{flex: 1;--vaadin-input-field-background: #fff;--vaadin-input-field-border-color: var(--ph-ink-200);--vaadin-input-field-border-width: 1px;--vaadin-input-field-hover-highlight: transparent}.ph-ap-opt-row__input::part(input-field),.ph-ap-axis-row__input::part(input-field){border-radius: 6px;font-size: 12.5px;padding: 7px 10px;box-shadow: none}.ph-ap-opt-row__input::part(input-field):focus-within,.ph-ap-axis-row__input::part(input-field):focus-within{border-color: var(--ph-blue-500)}.ph-ap-opt-row__code{display: flex;align-items: center;gap: 4px;font-family: var(--font-mono);font-size: 10px;color: var(--ph-ink-300);width: 74px;overflow: hidden}.ph-ap-opt-row__code>span{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.ph-ap-opt-row__code--generating{color: #6D28D9}.ph-ap-opt-row__code-spinner{flex: none;width: 10px;height: 10px;box-sizing: border-box;border: 2px solid #DDD6FE;border-top-color: #6D28D9;border-radius: 50%;animation: ph-spin 0.7s linear infinite}.ph-ap-opt-row__code--done{color: var(--ph-ink-600)}.ph-ap-opt-row__code-ai-badge{flex: none;font-size: 9px;color: #6D28D9;background: #F5F3FF;border-radius: 3px;padding: 0 4px}.ph-ap-opt-row__toggle{flex: 1;text-align: left;border: 1px solid var(--ph-blue-500);background: var(--ph-blue-50);color: var(--ph-blue-500);border-radius: 6px;padding: 7px 10px;font-size: 12.5px;cursor: pointer;font-family: inherit}.ph-ap-opt-row__toggle--off{border-color: var(--ph-ink-200);background: #fff;color: var(--ph-ink-400)}.ph-ap-opt-row__disable{border: none;background: none;color: #B5810E;font-size: 11px;cursor: pointer;font-family: inherit;padding: 0 2px;white-space: nowrap}.ph-ap-opt-row__remove,.ph-ap-axis-row__remove{border: none;background: none;color: var(--ph-ink-300);font-size: 15px;cursor: pointer;font-family: inherit;padding: 0 4px}.ph-ap-opt-row__remove:hover,.ph-ap-axis-row__remove:hover{color: var(--ph-danger-500)}.ph-ap-opt-note,.ph-ap-axes-note,.ph-ap-muted-note{font-size: 10.5px;color: var(--ph-ink-400);margin-top: 6px;line-height: 1.5}.ph-ap-measure-unit-row{display: flex;align-items: center;gap: 8px;margin-bottom: 8px}.ph-ap-badge{font-size: 11px;color: var(--ph-ink-600);background: #F2F5F9;border-radius: 4px;padding: 1px 8px;font-family: var(--font-mono)}.ph-ap-axes-header{display: flex;align-items: center;margin-bottom: 6px}.ph-ap-capacity-grid{display: grid;grid-template-columns: 1fr 1fr;gap: 10px}.ph-ap-capacity-card{background: var(--ph-ink-50);border: 1px solid var(--ph-ink-100);border-radius: 8px;padding: 10px 12px}.ph-ap-capacity-card__label{font-size: 10.5px;color: var(--ph-ink-400)}.ph-ap-capacity-card__value{font-size: 13px;font-weight: 700;color: var(--ph-ink-900);margin-top: 2px}.ph-ap-text-area{background: var(--ph-ink-50);border: 1px dashed #D5DBE4;border-radius: 8px;padding: 12px;font-size: 11.5px;color: var(--ph-ink-500);line-height: 1.5}.ph-ap-range-area{margin-top: 14px}.ph-ap-range-label-holder{margin-bottom: 6px}.ph-ap-range-row{display: flex;align-items: center;gap: 8px}.ph-ap-range-input{width: 100px;flex: none}.ph-ap-range-dash{color: var(--ph-ink-400);font-size: 12px}.ph-ap-range-error{font-size: 10.5px;color: var(--ph-danger-600);margin-top: 4px}.ph-ap-bands-area{margin-top: 14px}.ph-ap-bands{display: flex;flex-direction: column;gap: 8px}.ph-ap-bands-header{display: flex;align-items: baseline;gap: 6px;flex-wrap: wrap}.ph-ap-bands-header__title{font-size: 12px;font-weight: 600;color: var(--ph-ink-900)}.ph-ap-bands-header__suffix{font-size: 10.5px;color: var(--ph-ink-400)}.ph-ap-bands-list{display: flex;flex-direction: column;gap: 8px}.ph-ap-bands-card{border: 1px solid var(--ph-ink-100);border-radius: 8px;background: #fff;padding: 10px 12px}.ph-ap-bands-card__head{display: flex;align-items: center;gap: 8px}.ph-ap-bands-card__title{flex: 1;min-width: 0;font-size: 12px;font-weight: 600;color: var(--ph-ink-900);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.ph-ap-bands-card__bounds{display: flex;flex-direction: column;gap: 6px;margin-top: 8px}.ph-ap-bands-row{display: flex;align-items: center;gap: 8px}.ph-ap-bands-row__input{flex: 1;min-width: 0;border: 1px solid var(--ph-ink-200);border-radius: 6px;background: #fff;padding: 6px 10px;font-size: 12.5px;font-family: var(--font-mono);color: var(--ph-ink-900)}.ph-ap-bands-row__input:disabled{background: var(--ph-ink-50);color: var(--ph-ink-400)}.ph-ap-bands-row__unit{font-size: 11px;color: var(--ph-ink-400);width: 22px;flex-shrink: 0}.ph-ap-bands-row__remove{border: none;background: none;color: var(--ph-ink-300);font-size: 15px;cursor: pointer;font-family: inherit;padding: 0 4px}.ph-ap-bands-row__remove:hover{color: var(--ph-danger-500)}.ph-ap-bands-card__preview{display: flex;align-items: center;gap: 6px;flex-wrap: wrap;margin-top: 8px}.ph-ap-bands-card__preview-caption{font-size: 10.5px;color: var(--ph-ink-400)}.ph-ap-bands-chip{border: 1px solid var(--ph-ink-100);background: var(--ph-ink-50);border-radius: 999px;padding: 2px 9px;font-size: 11px;color: var(--ph-ink-600);font-family: var(--font-mono)}.ph-ap-bands-card__empty{font-size: 10.5px;color: var(--ph-ink-400);margin-top: 8px;line-height: 1.5}.ph-ap-bands-footer{border: 1px solid #F2E2BE;background: #FFFBF2;border-radius: 8px;padding: 9px 11px;font-size: 10.5px;color: #B5810E;line-height: 1.6}.ph-ap-usage-grid{display: grid;grid-template-columns: 1fr 1fr;gap: 8px}.ph-ap-usage-btn{text-align: left;border: 1.5px solid var(--ph-ink-200);background: #fff;border-radius: 8px;padding: 10px 12px;cursor: pointer;font-family: inherit;display: flex;gap: 8px}.ph-ap-usage-btn--meta.ph-ap-usage-btn--on{border-color: var(--ph-blue-500);background: var(--ph-blue-50)}.ph-ap-usage-btn--variant.ph-ap-usage-btn--on{border-color: #A6802B;background: #FBF1E0}.ph-ap-usage-btn__check{width: 14px;height: 14px;border-radius: 3px;border: 1.5px solid var(--ph-ink-300);color: #fff;font-size: 10px;display: inline-flex;align-items: center;justify-content: center;flex-shrink: 0;margin-top: 2px}.ph-ap-usage-btn--meta.ph-ap-usage-btn--on .ph-ap-usage-btn__check{border-color: var(--ph-blue-500);background: var(--ph-blue-500)}.ph-ap-usage-btn--variant.ph-ap-usage-btn--on .ph-ap-usage-btn__check{border-color: #A6802B;background: #A6802B}.ph-ap-usage-btn__title{display: block;font-size: 12.5px;font-weight: 600}.ph-ap-usage-btn--meta .ph-ap-usage-btn__title{color: var(--ph-blue-700)}.ph-ap-usage-btn--variant .ph-ap-usage-btn__title{color: #A6802B}.ph-ap-usage-btn__desc{display: block;font-size: 11px;color: var(--ph-ink-600);margin-top: 3px;line-height: 1.5}.ph-ap-usage-role-row{display: flex;align-items: center;gap: 8px;margin-top: 8px}.ph-ap-usage-role-chip{font-size: 10.5px;font-weight: 600;border-radius: 999px;padding: 1px 8px}.ph-ap-usage-role-chip--unset{color: var(--ph-danger-600);background: var(--ph-danger-50)}.ph-ap-usage-role-chip--meta{color: var(--ph-blue-700);background: var(--ph-blue-50)}.ph-ap-usage-role-chip--variant{color: #A6802B;background: #FBF1E0}.ph-ap-usage-role-chip--dual{color: var(--ph-ink-900);background: #F2F5F9}.ph-ap-usage-hint{font-size: 11px;color: #667085;line-height: 1.5}.ph-ap-visibility-row{display: flex;gap: 6px}.ph-ap-visibility-btn{text-align: left;flex: 1;border: 1px solid var(--ph-ink-200);background: #fff;border-radius: 8px;padding: 9px 12px;cursor: pointer;font-family: inherit}.ph-ap-visibility-btn--on{border-color: var(--ph-blue-500);background: var(--ph-blue-50)}.ph-ap-visibility-btn__title{display: block;font-size: 12.5px;font-weight: 600;color: var(--ph-ink-900)}.ph-ap-visibility-btn--on .ph-ap-visibility-btn__title{color: var(--ph-blue-500)}.ph-ap-visibility-btn__desc{display: block;font-size: 11px;color: #667085;margin-top: 2px}.ph-ap-missing-label{font-size: 11.5px;color: #B5810E;flex: 1;line-height: 1.4}.ph-ap-missing-label--ok{color: var(--ph-success-500)}.ph-ap-cancel-btn{border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);border-radius: 6px;height: 36px;padding: 0 16px;font-size: 13px;cursor: pointer;font-family: inherit}.ph-ap-code-hint--dup{color: var(--ph-danger-600)}.ph-ap-code-hint--generating{color: #6D28D9}.ph-ap-save-btn{border: none;background: var(--ph-blue-500);color: #fff;border-radius: 6px;height: 36px;padding: 0 16px;font-size: 13px;font-weight: 500;font-family: inherit}.ph-ap-save-btn:disabled{cursor: not-allowed}.ph-rp-badge{font-size: 10.5px;font-weight: 600;color: #6D28D9;background: #EDE9FE;border-radius: 4px;padding: 0 6px}.ph-rp-sentence-bar{background: #FBFAFF;border: 1px solid #EDE9FE;border-radius: 8px;padding: 9px 12px;font-size: 12.5px;line-height: 1.7;color: var(--ph-ink-600)}.ph-rp-section{display: flex;flex-direction: column;gap: 8px;margin-top: 16px}.ph-rp-section-header{display: flex;align-items: center;gap: 8px}.ph-rp-section-title-row{font-size: 12px;color: var(--ph-ink-600)}.ph-rp-name-counter{margin-left: auto;font-size: 10.5px;color: var(--ph-ink-400);font-variant-numeric: tabular-nums}.ph-rp-add-cond-btn{margin-left: auto;border: 1px solid #DDD6FE;background: #F5F3FF;color: #6D28D9;border-radius: 5px;padding: 2px 9px;font-size: 11.5px;cursor: pointer;font-family: inherit}.ph-rp-chips-row{display: flex;gap: 6px;flex-wrap: wrap}.ph-rp-chip{border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);border-radius: 6px;padding: 5px 10px;font-size: 12.5px;cursor: pointer;font-family: inherit;display: inline-flex;align-items: center;gap: 6px}.ph-rp-chip--active{border-color: #6D28D9;background: #F5F3FF;color: #6D28D9;font-weight: 600}.ph-rp-allowed-chip--off{color: var(--ph-ink-400);text-decoration: line-through}.ph-rp-conditions-body{display: flex;flex-direction: column;gap: 8px}.ph-rp-conditions-empty{border: 1px dashed #DDD6FE;border-radius: 8px;padding: 14px;text-align: center;font-size: 11.5px;color: var(--ph-ink-400)}.ph-rp-cond-card{border: 1px solid #EDE9FE;border-radius: 8px;padding: 10px 12px;display: flex;flex-direction: column;gap: 8px;background: #fff}.ph-rp-cond-card--readonly{flex-direction: row;align-items: center;gap: 8px}.ph-rp-cond-readonly-badge{font-size: 10px;font-weight: 600;color: #92600A;background: #FFF6E3;border-radius: 3px;padding: 0 5px}.ph-rp-cond-readonly-text{font-size: 12.5px;font-weight: 600;color: var(--ph-ink-900)}.ph-rp-cond-readonly-note{margin-left: auto;font-size: 10.5px;color: var(--ph-ink-400)}.ph-rp-cond-row1{display: flex;align-items: center;gap: 8px}.ph-rp-cond-row2{display: flex;align-items: center;gap: 8px;flex-wrap: wrap}.ph-rp-cond-label{font-size: 11px;color: var(--ph-ink-400);white-space: nowrap}.ph-rp-cond-src-chips{display: flex;gap: 5px;flex-wrap: wrap;flex: 1}.ph-rp-cond-remove{border: none;background: none;color: var(--ph-ink-300);font-size: 15px;cursor: pointer;font-family: inherit;padding: 0 2px}.ph-rp-cond-mode-row{display: flex;border: 1px solid #DDD6FE;border-radius: 5px;overflow: hidden}.ph-rp-mode-btn{border: none;background: #fff;color: #6D28D9;padding: 3px 9px;font-size: 11.5px;cursor: pointer;font-family: inherit}.ph-rp-mode-btn--active{background: #6D28D9;color: #fff;font-weight: 600}.ph-rp-cond-op-fixed{font-size: 11.5px;color: var(--ph-ink-600);background: #F2F5F9;border-radius: 4px;padding: 1px 7px}.ph-rp-cond-opt-chips{display: flex;gap: 5px;flex-wrap: wrap}.ph-rp-link-btn{border: none;background: none;color: var(--ph-blue-500);font-size: 11px;cursor: pointer;font-family: inherit;margin-left: auto}.ph-rp-allowed-hint{font-size: 10.5px;color: var(--ph-ink-400);margin-top: 2px}.ph-rp-name-row{display: grid;grid-template-columns: 1fr auto;gap: 12px;align-items: end}.ph-rp-name-input::part(input-field):focus-within{border-color: #6D28D9}.ph-rp-name-input--invalid{--vaadin-input-field-border-color: #F5C9C9}.ph-rp-enabled-row{display: flex;align-items: center;gap: 8px;padding-bottom: 8px;font-size: 12px;color: var(--ph-ink-600)}.ph-rp-enabled-toggle{width: 38px;height: 22px;border-radius: 11px;border: none;cursor: pointer;position: relative;background: var(--ph-ink-300);padding: 0}.ph-rp-enabled-toggle::after{content: "";position: absolute;top: 2px;left: 2px;width: 18px;height: 18px;border-radius: 50%;background: #fff;box-shadow: 0 1px 2px rgba(15,24,38,.2);transition: left .15s}.ph-rp-enabled-toggle--on{background: #6D28D9}.ph-rp-enabled-toggle--on::after{left: 18px}.ph-rp-errors-box{background: var(--ph-danger-50);border: 1px solid #F5C9C9;border-radius: 8px;padding: 9px 12px;display: flex;flex-direction: column;gap: 3px}.ph-rp-error-line{font-size: 11.5px;color: var(--ph-danger-600);line-height: 1.5}.ph-rp-footnote{font-size: 10.5px;color: var(--ph-ink-400);line-height: 1.6}.ph-rp-footer{padding: 14px 20px;display: flex;gap: 10px;align-items: center}.ph-rp-missing-label{font-size: 11.5px;color: var(--ph-success-500);flex: 1;line-height: 1.4}.ph-rp-missing-label--error{color: var(--ph-danger-600)}.ph-rp-delete-btn{border: 1px solid #F5C9C9;background: #fff;color: var(--ph-danger-600);border-radius: 6px;height: 36px;padding: 0 14px;font-size: 13px;cursor: pointer;font-family: inherit}.ph-rp-cancel-btn{border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);border-radius: 6px;height: 36px;padding: 0 16px;font-size: 13px;cursor: pointer;font-family: inherit}.ph-rp-save-btn{border: none;background: #6D28D9;color: #fff;border-radius: 6px;height: 36px;padding: 0 16px;font-size: 13px;font-weight: 500;font-family: inherit}.ph-rp-save-btn:disabled{cursor: not-allowed;opacity: .45}.ph-afb-root{display: flex;flex-direction: column;gap: 8px;padding: 12px 16px;border: 1px solid var(--ph-ink-200);border-radius: 8px;background: #fff;box-sizing: border-box}.ph-afb-root--hint{padding: 10px 16px}.ph-afb-hint{font-size: 12px;color: var(--ph-ink-400);line-height: 1.6}.ph-afb-group{display: flex;align-items: flex-start;gap: 12px}.ph-afb-group + .ph-afb-group{border-top: 1px dashed var(--ph-ink-100);padding-top: 8px}.ph-afb-group__head{display: flex;align-items: baseline;flex-wrap: wrap;gap: 4px;width: 160px;flex: none;padding-top: 4px}.ph-afb-group__name{font-size: 12px;font-weight: 600;color: var(--ph-ink-900)}.ph-afb-group__badge{font-size: 10px;color: var(--ph-blue-500);background: var(--ph-blue-50);border-radius: 4px;padding: 1px 4px;white-space: nowrap}.ph-afb-group__unithint{font-size: 10px;color: var(--ph-ink-400);flex-basis: 100%}.ph-afb-group__body{display: flex;flex-direction: column;gap: 6px;flex: 1;min-width: 0}.ph-afb-group__draghint{font-size: 10px;color: var(--ph-ink-400)}.ph-afb-track{display: flex;align-items: center;gap: 8px;min-width: 0}.ph-afb-track__axis{font-size: 11px;color: var(--ph-ink-500);width: 28px;flex: none;text-align: right}.ph-afb-track__chips{display: flex;align-items: center;flex-wrap: wrap;gap: 6px;flex: 1;min-width: 0;touch-action: pan-y}.ph-afb-track__clear{flex: none;border: none;background: transparent;color: var(--ph-blue-500);font-size: 11px;font-family: inherit;padding: 0 2px;cursor: pointer}.ph-afb-chip{display: inline-flex;align-items: center;gap: 4px;padding: 4px 10px;border-radius: 999px;border: 1px solid var(--ph-ink-200);background: #fff;color: var(--ph-ink-600);font-size: 12px;font-family: inherit;white-space: nowrap;cursor: pointer;user-select: none}.ph-afb-chip__count{font-size: 11px;color: var(--ph-ink-400)}.ph-afb-chip--on{border-color: var(--ph-blue-500);background: var(--ph-blue-50);color: var(--ph-blue-500);font-weight: 600}.ph-afb-chip--on .ph-afb-chip__count{color: var(--ph-blue-500)}.ph-afb-chip--off,.ph-afb-chip--off .ph-afb-chip__count{color: #C2C9D4}.ph-afb-chip--off{cursor: default}.ph-afb-chip--empty{border-color: #F5D48F;background: #FFFBEB;color: #92600A}.ph-afb-chip--empty .ph-afb-chip__count{color: #92600A}.ph-afb-chip--empty.ph-afb-chip--on{border-color: #F5C9C9;background: var(--ph-danger-50);color: var(--ph-danger-600)}.ph-afb-chip--empty.ph-afb-chip--on .ph-afb-chip__count{color: var(--ph-danger-600)}.ph-afb-summary{display: flex;align-items: center;flex-wrap: wrap;gap: 6px;border-top: 1px solid var(--ph-ink-100);padding-top: 8px}.ph-afb-summary__label{font-size: 11px;color: var(--ph-ink-400)}.ph-afb-summary__item{display: inline-flex;align-items: center;gap: 4px;border: 1px solid var(--ph-blue-500);background: var(--ph-blue-50);color: var(--ph-blue-500);border-radius: 999px;padding: 3px 9px;font-size: 11px;font-family: inherit;cursor: pointer;white-space: nowrap}.ph-afb-summary__x{font-size: 12px;line-height: 1}.ph-afb-summary__clear{border: none;background: transparent;color: var(--ph-ink-500);font-size: 11px;font-family: inherit;padding: 0 2px;cursor: pointer;text-decoration: underline}