@font-face{font-family:Gotham;src:url(/assets/Gotham-Book-Bt-lb9m6.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Gotham;src:url(/assets/Gotham-Medium-ChwfaXiM.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Gotham;src:url(/assets/Gotham-Bold-DrOk53lL.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--bi-black: #000000;--bi-white: #ffffff;--bi-navy: #241950;--bi-indigo: #253887;--bi-ultramarine: #1e14aa;--bi-sky: #5382c2;--bi-violet: #55509d;--bi-blue: #0046ff;--bi-peach: #fbd1ba;--bi-logo: #27348b;--bi-gradient-deep: linear-gradient(135deg, #1e1e4f 0%, #27348b 55%, #0922d6 100%);--bi-gradient-soft: linear-gradient(135deg, #0922d6 0%, #6767db 60%, #fbd1ba 100%);--color-bg: #f3f4f8;--color-surface: var(--bi-white);--color-surface-muted: #eef0f6;--color-surface-hover: #f5f7fc;--color-table-head: #f7f8fb;--color-border: #dfe2ec;--color-border-strong: #c5cada;--color-text: #14123a;--color-text-muted: #5f6380;--color-text-inverse: var(--bi-white);--color-primary: var(--bi-blue);--color-primary-hover: #0039d1;--color-primary-soft: #e6edff;--color-brand: var(--bi-navy);--color-brand-2: var(--bi-indigo);--color-accent-warm: var(--bi-peach);--color-success: #1f9d6b;--color-success-soft: #e3f5ed;--color-warning: #c27a00;--color-warning-soft: #fdf1dc;--color-danger: #d93a3a;--color-danger-soft: #fbe6e6;--color-on-dark-text: rgba(255, 255, 255, .86);--color-on-dark-muted: rgba(255, 255, 255, .55);--color-on-dark-faint: rgba(255, 255, 255, .35);--color-on-dark-border-strong: rgba(255, 255, 255, .25);--color-on-dark-border: rgba(255, 255, 255, .16);--color-on-dark-divider: rgba(255, 255, 255, .08);--color-on-dark-hover: rgba(255, 255, 255, .07);--color-on-dark-fill: rgba(255, 255, 255, .06);--color-on-dark-active: rgba(255, 255, 255, .12);--color-overlay: rgba(20, 18, 58, .45);--font-family: "Gotham", "Montserrat", "Segoe UI", Arial, sans-serif;--font-family-mono: Consolas, "Courier New", monospace;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--font-size-3xs: 10px;--font-size-2xs: 11px;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-lg: 15px;--font-size-xl: 17px;--font-size-2xl: 20px;--line-height: 1.4;--space-1: 4px;--space-2: 6px;--space-3: 10px;--space-4: 12px;--space-5: 16px;--space-6: 20px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(20, 18, 58, .05);--shadow-md: 0 8px 24px rgba(20, 18, 58, .12);--header-height: 48px;--sidebar-width: 232px;--tree-seg: 18px;--tree-gap: 4px;--tree-indent: 22px;--tree-name-base: 200px;--tree-label-min: 160px;--control-height: 32px;--control-height-sm: 26px;--focus-ring: 0 0 0 3px rgba(0, 70, 255, .2)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-family);font-weight:var(--font-weight-regular);font-size:var(--font-size-md);line-height:var(--line-height);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:var(--font-weight-medium);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus-ring)}table{border-collapse:collapse}.bi-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-height);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);font-size:var(--font-size-md);line-height:1;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;white-space:nowrap}.bi-btn:disabled{opacity:.5;cursor:not-allowed}.bi-btn--sm{height:var(--control-height-sm);padding:0 var(--space-3);font-size:var(--font-size-sm)}.bi-btn--primary{background:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.bi-btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.bi-btn--brand{background:var(--color-brand);color:var(--color-text-inverse)}.bi-btn--brand:hover:not(:disabled){background:var(--color-brand-2)}.bi-btn--outline{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:var(--shadow-sm)}.bi-btn--outline:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-hover)}.bi-btn--ghost{background:transparent;color:var(--color-primary)}.bi-btn--ghost:hover:not(:disabled){background:var(--color-primary-soft)}.bi-btn--danger{background:var(--color-danger);color:var(--color-text-inverse)}.bi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.bi-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.bi-card__title{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.bi-card__body{padding:var(--space-4)}.bi-badge{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-surface-muted);color:var(--color-text-muted)}.bi-badge--primary{background:var(--color-primary-soft);color:var(--color-primary)}.bi-badge--success{background:var(--color-success-soft);color:var(--color-success)}.bi-badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.bi-badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.bi-badge--warm{background:var(--color-accent-warm);color:var(--bi-navy)}.bi-pixel{display:inline-block;width:10px;height:10px;border-radius:30%;background:currentColor;flex:none}.bi-page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--control-height);margin-bottom:var(--space-4)}.bi-page-header__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-medium);letter-spacing:-.01em;line-height:1.2}.bi-page-header__subtitle{margin-top:2px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.bi-input{height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-width:0}.bi-input:hover:not(:focus):not(:disabled){border-color:var(--color-border-strong)}.bi-input::placeholder{color:var(--color-text-muted);opacity:.8}.bi-input:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.bi-table{width:100%;font-size:var(--font-size-sm)}.bi-table th{height:var(--control-height);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);padding:0 var(--space-3);background:var(--color-table-head);border-bottom:1px solid var(--color-border);white-space:nowrap}.bi-table td{vertical-align:middle;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.bi-table tbody tr:last-child td{border-bottom:0}.bi-table tbody tr:hover{background:var(--color-surface-hover)}.bi-table .num{text-align:right;font-variant-numeric:tabular-nums}.bi-modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-overlay)}.bi-modal{display:flex;flex-direction:column;border:1px solid var(--color-border);max-width:95vw;max-height:92vh;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.bi-modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.bi-modal__title{font-size:var(--font-size-lg);line-height:1.25;font-weight:var(--font-weight-medium)}.bi-modal__close{border:0;background:none;color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:pointer}.bi-modal__close:hover{color:var(--color-primary)}.bi-modal__body{flex:1;overflow:auto;padding:var(--space-4)}.bi-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.bi-confirm__message{white-space:pre-line;overflow-wrap:anywhere}.bi-ss{position:relative;min-width:0}.bi-ss__trigger{display:flex;align-items:center;gap:var(--space-2);width:100%;height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);text-align:left;cursor:pointer}.bi-ss__trigger:disabled{background:var(--color-surface-muted);cursor:not-allowed}.bi-ss__trigger.is-open{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.bi-ss__value,.bi-ss__placeholder{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bi-ss__placeholder,.bi-ss__clear,.bi-ss__chevron{color:var(--color-text-muted)}.bi-ss__clear:hover{color:var(--color-danger)}.bi-ss__panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:120;min-width:240px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.bi-ss__search{width:100%;height:var(--control-height-sm)}.bi-ss__list{max-height:260px;margin-top:var(--space-2);overflow:auto}.bi-ss__option{display:block;width:100%;padding:6px var(--space-2);border:0;border-radius:var(--radius-sm);background:none;text-align:left;font-size:var(--font-size-sm);cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bi-ss__option.is-hl{background:var(--color-surface-muted)}.bi-ss__option.is-selected{color:var(--color-primary);font-weight:var(--font-weight-medium)}.bi-ss__empty{padding:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm)}.bi-mss__trigger{height:auto;min-height:var(--control-height);padding-top:var(--space-1);padding-bottom:var(--space-1)}.bi-mss__trigger.is-disabled{background:var(--color-surface-muted);cursor:not-allowed}.bi-mss__chips{display:flex;flex:1;flex-wrap:wrap;gap:var(--space-1);min-width:0}.bi-mss__chip{display:inline-flex;align-items:center;gap:var(--space-1);max-width:100%;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-xs)}.bi-mss__chip-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bi-mss__summary{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-size-sm)}.bi-mss__chip-remove{border:0;padding:0;background:none;color:inherit;cursor:pointer;line-height:1}.bi-mss__chip-remove:hover{color:var(--color-danger)}.bi-mss__option{display:flex;align-items:center;gap:var(--space-2)}.bi-mss__option input{flex:none;margin:0;pointer-events:none}.bi-mss__option span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--bi-gradient-deep)}.auth-card{width:380px;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-on-dark-fill);border:1px solid var(--color-on-dark-border);color:var(--color-text-inverse);text-align:center}.auth-card__logo{height:28px}.auth-card__title{color:var(--color-text-inverse);font-size:var(--font-size-2xl)}.auth-card__subtitle,.auth-card__hint{margin:0;opacity:.8}.auth-card__error{margin:0;color:var(--bi-peach)}.auth-card__link{color:var(--color-text-inverse);text-decoration:underline}.auth-state{padding:var(--space-6);color:var(--color-text-muted);text-align:center}.auth-state--error{color:var(--color-danger)}.ui-icon{display:inline-block;flex:none;vertical-align:-2px}.ui-spinner{display:inline-block;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.search-hit{font-weight:var(--font-weight-bold);background:var(--color-accent-warm);border-radius:2px;color:inherit}.app{display:flex;min-height:100%}.app-sidebar{position:sticky;top:0;flex:none;width:var(--sidebar-width);height:100vh;display:flex;flex-direction:column;background:var(--bi-navy);color:var(--color-text-inverse)}.app-sidebar__brand{display:flex;align-items:center;gap:var(--space-3);height:var(--header-height);flex:none;padding:0 var(--space-4);color:inherit;border-bottom:1px solid var(--color-on-dark-divider)}.app-sidebar__logo{height:18px;width:auto}.app-sidebar__product{padding-left:var(--space-3);border-left:1px solid var(--color-on-dark-border-strong);font-weight:var(--font-weight-medium);font-size:var(--font-size-xs);letter-spacing:.06em}.app-nav{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-2) var(--space-4);scrollbar-width:thin;scrollbar-color:var(--color-on-dark-border) transparent}.app-nav__section+.app-nav__section{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-on-dark-divider)}.app-nav__section-title{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:28px;padding:var(--space-1) var(--space-2);border:0;border-radius:var(--radius-sm);background:var(--color-on-dark-fill);color:var(--bi-white);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:background-color .12s}.app-nav__section-title:hover{background:var(--color-on-dark-hover)}.app-nav__chevron{font-size:var(--font-size-md);line-height:1;color:var(--color-on-dark-muted);transition:transform .15s}.app-nav__chevron.is-open{transform:rotate(90deg)}.app-nav__items{margin:var(--space-1) 0 var(--space-1) var(--space-3);padding-left:var(--space-2);border-left:1px solid var(--color-on-dark-border)}.app-nav__link{position:relative;display:flex;align-items:center;gap:var(--space-2);min-height:28px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--color-on-dark-muted);font-size:var(--font-size-sm);line-height:1.3;transition:background-color .12s,color .12s}.app-nav__link:hover{background:var(--color-on-dark-hover);color:var(--bi-white)}.app-nav__link.is-active{background:var(--color-on-dark-active);color:var(--bi-white);font-weight:var(--font-weight-medium)}.app-nav__link.is-active:before{content:"";position:absolute;left:calc(-1 * var(--space-2) - 1px);top:4px;bottom:4px;width:3px;border-radius:0 3px 3px 0;background:var(--bi-blue)}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:var(--header-height);flex:none;padding:0 var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-crumbs{display:flex;align-items:center;gap:var(--space-2);min-width:0;font-size:var(--font-size-sm);white-space:nowrap}.app-crumbs__section{color:var(--color-text-muted)}.app-crumbs__sep{color:var(--color-border-strong)}.app-crumbs__page{overflow:hidden;text-overflow:ellipsis;font-weight:var(--font-weight-medium);color:var(--color-brand)}.app-header__module{font-size:var(--font-size-sm);color:var(--color-text-muted)}.app-content{flex:1;min-width:0;padding:var(--space-5) var(--space-6)}.app-header__right{display:flex;align-items:center;gap:var(--space-4);flex:none}.app-header__module--warn{color:var(--color-warning)}.app-module{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.app-module__seg{display:inline-flex;padding:2px;border-radius:var(--radius-sm);background:var(--color-surface-muted)}.app-module__opt{height:24px;min-width:36px;padding:0 var(--space-3);border:0;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color .12s,color .12s}.app-module__opt:hover:not(:disabled){color:var(--color-brand)}.app-module__opt.is-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.app-module__opt:disabled{cursor:progress}.app-module__seg.is-empty{box-shadow:inset 0 0 0 1px var(--color-warning)}.app-user{display:inline-flex;align-items:center;gap:var(--space-2);padding-left:var(--space-4);border-left:1px solid var(--color-border);font-size:var(--font-size-sm)}.app-user__avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-3xs);font-weight:var(--font-weight-bold);letter-spacing:.02em}.app-user__name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-medium);color:var(--color-text)}.app-user__action{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer;transition:background-color .12s,color .12s}.app-user__action:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-primary)}.app-user__action:disabled{opacity:.5;cursor:progress}.app-content__loading{padding:var(--space-6);color:var(--color-text-muted);text-align:center}.text-muted{color:var(--color-text-muted)}.home-hero{margin-bottom:var(--space-5);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--bi-gradient-deep);color:var(--color-text-inverse)}.home-hero__eyebrow{font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;opacity:.7}.home-hero__title{margin-top:var(--space-2);font-size:var(--font-size-2xl);font-weight:var(--font-weight-medium)}.home-hero__text{margin-top:var(--space-2);max-width:720px;opacity:.85}.home-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(320px,2fr);gap:var(--space-5);align-items:start}.home-sections{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-5)}.home-sections__title{margin-bottom:var(--space-2);font-weight:var(--font-weight-medium);color:var(--color-brand)}.home-sections__link{display:block;padding:3px 0;color:var(--color-text)}.home-sections__link:hover{color:var(--color-primary)}.kit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:var(--space-5)}.kit-palette+.kit-palette{margin-top:var(--space-4)}.kit-palette__group{margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm)}.kit-palette__row{display:flex;flex-wrap:wrap;gap:var(--space-3)}.kit-swatch{width:96px}.kit-swatch__color{height:56px;border-radius:var(--radius-md);border:1px solid var(--color-border)}.kit-swatch__name{margin-top:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.kit-swatch__hex{font-size:var(--font-size-xs);color:var(--color-text-muted)}.kit-gradients{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.kit-gradient{flex:1;padding:var(--space-5) var(--space-4);border-radius:var(--radius-md);color:var(--color-text-inverse);font-weight:var(--font-weight-medium)}.kit-type+.kit-type{margin-top:var(--space-3)}.kit-type--xl{font-size:var(--font-size-2xl);font-weight:var(--font-weight-medium)}.kit-type--lg{font-size:var(--font-size-xl)}.kit-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.kit-row+.kit-row{margin-top:var(--space-4)}.grant-action-wrap{display:inline-flex;max-width:100%}.grant-action-wrap button:disabled,.grant-action-wrap input:disabled{pointer-events:none}.ie-state{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-5);color:var(--color-text-muted);text-align:center}.ie-state--error{color:var(--color-danger)}.ie-alert{flex-shrink:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.ie-alert--error{background:var(--color-danger-soft);color:var(--color-danger)}.ie-alert--warn{background:var(--color-warning-soft);color:var(--color-warning)}.ie-spin{display:inline-block;width:14px;height:14px;flex:none;border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:var(--radius-pill);vertical-align:middle;animation:ie-spin .8s linear infinite}.ie-spin--sm{width:11px;height:11px}@keyframes ie-spin{to{transform:rotate(360deg)}}.ie-link-btn{padding:0;border:0;background:none;color:var(--color-primary);font-size:inherit;cursor:pointer}.ie-link-btn:hover{text-decoration:underline}.ie-link-btn.is-active{font-weight:var(--font-weight-medium)}.ie-sep{color:var(--color-border-strong)}.ie-group-badge{flex-shrink:0;margin-left:6px;padding:1px 6px;border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--bi-violet);font-size:10px;font-weight:var(--font-weight-bold)}.ie-book{flex-shrink:0;color:var(--color-primary);font-size:var(--font-size-xs)}.ie-card-body{padding:0}.ie-toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.ie-search{position:relative;display:flex;align-items:center;width:100%;max-width:420px}.ie-search__icon{position:absolute;left:var(--space-3);color:var(--color-text-muted);pointer-events:none}.ie-search__input{width:100%;padding-left:32px;padding-right:32px}.ie-search__clear{position:absolute;right:var(--space-2);border:0;background:none;color:var(--color-text-muted);cursor:pointer}.ie-search__clear:hover{color:var(--color-danger)}.ie-projects tr.is-clickable{cursor:pointer}.ie-projects__name{font-weight:var(--font-weight-medium)}.ie-projects__money{width:180px;text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}.ie-projects__count{width:160px;text-align:center!important}.ie-projects__action{width:56px}.ie-pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border)}.ie-pagination__info{color:var(--color-text-muted);font-size:var(--font-size-sm)}.ie-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height) - 2 * var(--space-6));min-height:0}.ie-page .bi-page-header{margin-bottom:var(--space-4)}.ie-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:var(--space-3);align-items:end;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-bottom:0;border-radius:var(--radius-md) var(--radius-md) 0 0}.ie-filter{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ie-filter__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.ie-norm-search{position:relative}.ie-norm-search__wrap{position:relative;display:flex;align-items:center;height:var(--control-height);padding:0 var(--space-3) 0 32px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface)}.ie-norm-search__wrap:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.ie-norm-search__input{flex:1;min-width:0;border:0;outline:none;background:none}.ie-norm-search__input:focus-visible{box-shadow:none}.ie-norm-search__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;max-height:280px;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.ie-norm-search__item{display:grid;grid-template-columns:120px 1fr;gap:var(--space-1) var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:0;background:none;text-align:left;font-size:var(--font-size-sm);cursor:pointer}.ie-norm-search__item:hover{background:var(--color-surface-muted)}.ie-norm-search__code{font-weight:var(--font-weight-bold);color:var(--color-primary)}.ie-norm-search__struct{grid-column:1 / -1;font-size:var(--font-size-xs);color:var(--color-text-muted)}.ie-tree-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);min-height:var(--control-height);font-size:var(--font-size-sm)}.ie-tree-wrap{flex:1;min-height:0;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md)}.ie-tree-table{width:100%;font-size:var(--font-size-xs);--ie-fixed-cols: 760px;table-layout:fixed;min-width:calc(var(--ie-fixed-cols) + var(--ie-name-min, var(--tree-name-base)))}.ie-tree-table thead th{position:sticky;top:0;z-index:2;padding:var(--space-2) 6px;background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-align:left;white-space:nowrap}.ie-tree-table td{padding:0 6px;border-bottom:1px solid var(--color-border);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ie-col-name{min-width:280px}.ie-tree-table .ie-col-name{min-width:0}.ie-col-ksnb{width:128px}.ie-col-unit{width:60px}.ie-tree-table .ie-col-num{width:104px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ie-tree-table th.ie-col-cost{width:124px}.ie-tree-table th.ie-col-sub{width:120px}.ie-tree-table .ie-col-sub{color:var(--color-text-muted)}.ie-tree-table td.ie-col-kenml-file{background:var(--color-primary-soft);color:var(--color-brand-2)}.ie-row--normset{cursor:pointer}.ie-row--normset:hover,.ie-row--hit{background:var(--color-primary-soft)}.ie-row--group .ie-tree-label{font-weight:var(--font-weight-medium)}.ie-tree-cell{display:flex;align-items:center;height:28px;min-width:0}.ie-tree-cell>*{flex:none}.ie-tree-cell>.ie-tree-label{flex:0 1 auto}.ie-tree-seg,.ie-tree-conn{position:relative;flex:none;width:18px;align-self:stretch}.ie-tree-seg.is-line:before,.ie-tree-conn:before{content:"";position:absolute;top:0;bottom:0;left:8px;border-left:1px solid var(--color-border-strong)}.ie-tree-conn.is-last:before{bottom:50%}.ie-tree-conn:after{content:"";position:absolute;top:50%;left:8px;right:0;border-top:1px solid var(--color-border-strong)}.ie-tree-conn--root:before,.ie-tree-conn--root:after{display:none}.ie-tree-conn{display:flex;align-items:center;justify-content:center}.ie-tree-conn>*{position:relative;z-index:1}.ie-tree-toggle{display:flex;align-items:center;justify-content:center;width:15px;height:15px;padding:0;border:1px solid var(--color-border-strong);border-radius:3px;background:var(--color-surface);color:var(--color-text);font-size:11px;line-height:1;cursor:pointer}.ie-tree-toggle:hover{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.ie-tree-leaf,.ie-tree-leaf-root{width:5px;height:5px;border-radius:30%;background:var(--color-border-strong)}.ie-folder{flex:none;width:10px;height:10px;margin:0 6px 0 4px;border-radius:30%;background:var(--bi-sky)}.ie-folder.is-open{background:var(--color-primary)}.ie-tree-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ie-tree-label--normset{margin-left:4px;color:var(--color-brand-2)}.ie-drawer-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;background:color-mix(in srgb,var(--color-text) 25%,transparent)}.ie-drawer{display:flex;flex-direction:column;width:100%;max-height:55vh;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-md)}.ie-drawer__header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.ie-drawer__title{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.ie-drawer__side{flex-shrink:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-transform:uppercase}.ie-drawer__code{flex-shrink:0;font-weight:var(--font-weight-bold);color:var(--color-primary)}.ie-drawer__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ie-drawer__amount{display:flex;flex-direction:column}.ie-drawer__amount-label{font-size:10px;color:var(--color-text-muted)}.ie-drawer__amount-value{font-weight:var(--font-weight-medium)}.ie-drawer__close{border:0;background:none;color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:pointer}.ie-drawer__close:hover{color:var(--color-primary)}.ie-drawer__body{overflow:auto;padding:0 var(--space-4) var(--space-4)}.ie-drawer__table{width:100%;font-size:var(--font-size-xs)}.ie-drawer__table th,.ie-drawer__table td{padding:6px var(--space-2);border-bottom:1px solid var(--color-border);text-align:left}.ie-drawer__table th{position:sticky;top:0;background:var(--color-surface);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.ie-drawer__table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ie-drawer__state{padding:var(--space-5);text-align:center!important;color:var(--color-text-muted)}.ie-drawer__state--error{color:var(--color-danger)}.ie-cmp-page{display:flex;flex-direction:column;gap:var(--space-3);height:calc(100vh - var(--header-height) - 2 * var(--space-6));min-height:0}.ie-cmp-header{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.ie-cmp-title{font-size:var(--font-size-xl)}.ie-cmp-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);flex-shrink:0}.ie-cmp-unlink{border-color:var(--color-danger);color:var(--color-danger)}.ie-cmp-unlink:hover:not(:disabled){border-color:var(--color-danger);color:var(--color-danger);background:var(--color-danger-soft)}.ie-cmp-counter,.ie-cmp-pick{font-size:var(--font-size-sm);color:var(--color-text-muted)}.ie-cmp-pick-clear{margin-left:6px}.ie-cmp-toolbar-end{display:flex;align-items:center;margin-left:auto}.ie-cmp-columns{position:relative}.ie-cmp-columns .bi-btn.is-open{border-color:var(--color-primary);color:var(--color-primary)}.ie-cmp-columns__panel{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:260px;padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.ie-cmp-columns__group+.ie-cmp-columns__group{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.ie-cmp-columns__title{margin-bottom:6px;font-size:11px;font-weight:var(--font-weight-bold);letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-muted)}.ie-cmp-columns__option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--font-size-sm);cursor:pointer}.ie-cmp-columns__option input{margin:0;accent-color:var(--color-primary)}.ie-stage-wrap{flex:1 1 auto;min-height:0;overflow-x:auto}.ie-stage{display:flex;align-items:stretch;gap:var(--space-6);min-width:960px;height:100%}.ie-col{--ie-side: var(--color-primary);--ie-side-soft: var(--color-primary-soft);display:flex;flex-direction:column;flex:1 1 0;min-width:0;min-height:0;overflow:hidden}.ie-col--expense{--ie-side: var(--color-warning);--ie-side-soft: var(--color-warning-soft)}.ie-col-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-shrink:0;margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--ie-side-soft);color:var(--ie-side);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.ie-col-tools{display:inline-flex;align-items:center;gap:var(--space-3);flex-shrink:0;margin-left:auto}.ie-col-tool{padding:6px var(--space-3);border:1px solid var(--ie-side);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1;cursor:pointer}.ie-col-tool--expand{background:var(--ie-side);color:var(--color-text-inverse)}.ie-col-tool--collapse{background:var(--color-surface);color:var(--ie-side)}.ie-col-tool:hover{filter:brightness(1.08)}.ie-view-mode-btn{padding:0;border:0;background:none;color:var(--ie-side);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);cursor:pointer}.ie-col-x{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0}.ie-col-cols-clip{flex-shrink:0;overflow-x:auto;overflow-y:hidden}.ie-col-cols{display:flex;align-items:flex-end;min-width:100%;padding:0 var(--space-2) 6px 26px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-muted)}.ie-col-cols__name{flex:1 1 auto;min-width:0;padding-right:var(--space-2)}.ie-metric-h,.ie-node .ie-metric{flex:0 0 124px;padding-left:10px;border-left:1px solid var(--color-border);text-align:right}.ie-metric-h.ie-metric--link,.ie-node .ie-metric.ie-metric--link{flex:0 0 148px}.ie-metric-h.ie-metric--link{white-space:normal;line-height:1.2}.ie-node .ie-metric{font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ie-metric.is-plus{color:var(--color-success)}.ie-metric.is-minus{color:var(--color-danger)}.ie-tree-note{padding:var(--space-2) var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-sm)}.ie-vtree{flex:1 1 auto;min-height:0;overflow:auto;padding:2px 0 var(--space-2)}.ie-vtree__spacer{position:relative;min-width:100%}.ie-node{position:absolute;left:0;right:0;display:flex;align-items:center;height:32px;padding-right:var(--space-2);border-radius:6px;font-size:var(--font-size-sm)}.ie-chevron,.ie-chevron-spacer{flex:0 0 auto;width:14px;margin-right:var(--space-1);color:var(--color-text-muted);font-size:11px;line-height:1}.ie-chevron{padding:0;border:0;background:none;text-align:center;cursor:pointer;transition:transform .12s}.ie-chevron--norm{color:var(--color-primary)}.ie-chevron.is-open{transform:rotate(90deg)}.ie-lbl{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;margin:0;padding:1px var(--space-1);padding-right:var(--space-2);border:0;border-radius:4px;background:none;text-align:left;cursor:pointer}.ie-lbl:hover{background:var(--color-surface-muted)}.ie-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ie-node .ie-group-badge{margin:0 var(--space-2) 0 0}.ie-normset-btn{color:var(--color-brand-2)}.ie-normset-code{flex-shrink:0;font-weight:var(--font-weight-bold);font-size:var(--font-size-xs);color:var(--color-primary)}.ie-norm-empty{color:var(--color-text-muted);font-size:var(--font-size-xs)}.ie-peer-badge{flex-shrink:0;min-width:22px;height:22px;margin-right:var(--space-2);padding:0 6px;border:1px solid var(--color-primary);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary);font-size:11px;font-weight:var(--font-weight-bold);line-height:1;cursor:pointer}.ie-peer-badge.is-anchor{border-color:var(--color-text-muted);background:var(--color-surface-muted);color:var(--color-text)}.ie-peer-badge.is-active{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success);box-shadow:0 0 0 2px var(--color-success-soft)}.ie-node.is-mapped{background:var(--color-success-soft)}.ie-node.is-mapped .ie-nm{color:var(--color-success);font-weight:var(--font-weight-medium)}.ie-node.is-just-linked{z-index:1;background:var(--color-primary-soft);box-shadow:inset 0 0 0 2px var(--bi-violet)}.ie-node.is-just-linked .ie-nm{color:var(--bi-violet);font-weight:var(--font-weight-bold)}.ie-node.is-just-unlinked{z-index:1;background:var(--color-danger-soft);box-shadow:inset 0 0 0 2px var(--color-danger)}.ie-node.is-just-unlinked .ie-nm{color:var(--color-danger);font-weight:var(--font-weight-bold)}.ie-node.is-peer-pick{background:var(--color-surface-muted);box-shadow:inset 0 0 0 1px var(--bi-sky)}.ie-node.is-link-pick{z-index:1;background:var(--ie-side-soft);box-shadow:inset 0 0 0 2px var(--ie-side)}.ie-node.is-link-pick .ie-nm{font-weight:var(--font-weight-bold)}.ie-col .ie-node.is-pair{z-index:1;background:var(--color-success-soft);outline:2px solid var(--color-success);outline-offset:-2px}.ie-node.is-pair .ie-nm{color:var(--color-success);font-weight:var(--font-weight-bold)}.ie-col .ie-node.is-unlink-pick{outline:2px solid var(--color-danger);outline-offset:-2px}.ie-summary{display:flex;flex-direction:column;gap:var(--space-4);min-height:0}.ie-summary__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.ie-summary__heading{display:flex;align-items:center;gap:var(--space-3)}.ie-summary__title{font-size:var(--font-size-xl)}.ie-summary__project{margin:2px 0 0;color:var(--color-text-muted)}.ie-summary__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.ie-summary__alert{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4)}.ie-summary__wrap{overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ie-summary__table{width:100%;table-layout:fixed;font-size:var(--font-size-md)}.ie-summary__col-name{width:34%}.ie-summary__col-sum{width:18%}.ie-summary__col-pct{width:12%}.ie-summary__table th,.ie-summary__table td{padding:var(--space-3) var(--space-4);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);white-space:nowrap;vertical-align:middle}.ie-summary__table th:last-child,.ie-summary__table td:last-child{border-right:0}.ie-summary__table thead th{background:var(--color-brand);color:var(--color-text-inverse);font-weight:var(--font-weight-medium);text-align:center;border-color:var(--color-brand-2)}.ie-summary__table thead th.ie-summary__name{text-align:left}.ie-summary__table thead .ie-summary__sub{font-size:var(--font-size-xs);font-weight:var(--font-weight-regular)}.ie-summary__table td.ie-summary__name{overflow:hidden;text-overflow:ellipsis}.ie-summary__table .num{text-align:right;font-variant-numeric:tabular-nums}.ie-summary__row--total td{font-weight:var(--font-weight-bold)}.ie-summary__row--construct td,.ie-summary__row--element td{font-weight:var(--font-weight-medium)}.ie-summary__row--element td.ie-summary__name{padding-left:36px}.ie-summary__row.is-openable{cursor:pointer}.ie-summary__row.is-openable:hover td{background:var(--color-surface-muted)}.ie-summary__chevron{display:inline-block;width:14px;margin-right:var(--space-2);color:var(--color-text-muted);transition:transform .12s}.ie-summary__chevron.is-open{transform:rotate(90deg)}.ie-summary__table .num.is-pos{color:var(--color-success);font-weight:var(--font-weight-bold)}.ie-summary__table .num.is-neg{color:var(--color-danger);font-weight:var(--font-weight-bold)}.ie-summary__menu{position:relative}.ie-summary__menu-panel{position:absolute;z-index:40;top:calc(100% + 6px);right:0;width:300px;padding:var(--space-2) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.ie-summary__menu-item{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;padding:6px var(--space-4);border:0;background:none;color:var(--color-text);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer}.ie-summary__menu-item:hover:not(:disabled){background:var(--color-surface-muted)}.ie-summary__menu-item:disabled{color:var(--color-text-muted);cursor:not-allowed}.ie-summary__menu-item.is-active .ie-summary__menu-label{color:var(--color-primary);font-weight:var(--font-weight-medium)}.ie-summary__menu-check{flex:none;width:14px;color:var(--color-primary)}.ie-summary__menu-text{display:flex;flex-direction:column;gap:2px}.ie-summary__menu-hint{color:var(--color-text-muted);font-size:var(--font-size-xs)}.ie-summary__menu-sep{margin:var(--space-1) 0;border-top:1px solid var(--color-border)}.ie-summary__filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ie-summary__filter{display:flex;flex-direction:column;gap:var(--space-1);width:220px}.ie-summary__filter--query{flex:1 1 260px;width:auto}.ie-summary__filter--pct{width:110px}.ie-summary__filter-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.ie-summary__filter-note{flex-basis:100%;font-size:var(--font-size-xs);color:var(--color-text-muted)}.ie-summary__parent{color:var(--color-text-muted);font-weight:var(--font-weight-regular)}:where(.ie-tree-table tbody tr){background-color:var(--color-surface)}.ie-tree-table tbody td.ie-col-name{position:sticky;left:0;z-index:1;background:inherit;box-shadow:inset -1px 0 0 var(--color-border)}.ie-tree-table thead th.ie-col-name{left:0;box-shadow:inset -1px 0 0 var(--color-border)}.ie-tree-table thead th.ie-col-name{z-index:3}
