:root{color-scheme:light;--font-sans: Inter, "Segoe UI", Roboto, Arial, sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--bg-canvas: #e8ebef;--bg-app: #f1f3f6;--bg-surface: #ffffff;--bg-surface-muted: #f7f8fa;--bg-subtle: #eef1f5;--bg-elevated: #ffffff;--bg-inverse: #111318;--bg-sidebar: #ffffff;--bg-sidebar-hover: #eef1f5;--bg-sidebar-active: #eef0ff;--bg-topbar: #fbfcfd;--text-primary: #181b22;--text-secondary: #4d5563;--text-muted: #717987;--text-inverse: #f7faf9;--text-sidebar: #181b22;--text-sidebar-muted: #586273;--text-sidebar-active: #344098;--border-subtle: #d9dee6;--border-strong: #aeb7c4;--border-inverse: #303640;--border-sidebar: #d9dee6;--primary-50: #eef0ff;--primary-100: #dce1ff;--primary-500: #5664d9;--primary-600: #4652bd;--primary-700: #344098;--primary-contrast: #ffffff;--secondary-50: #e9f3fb;--secondary-500: #216b9c;--secondary-600: #185a84;--accent-50: #f2efff;--accent-500: #7259d9;--accent-600: #5f49bc;--success-50: #e9f7ef;--success-500: #1f7a48;--success-700: #155a33;--warning-50: #fff5db;--warning-500: #a45f00;--warning-700: #6f3c00;--danger-50: #fff0ed;--danger-500: #b42318;--danger-700: #7f1d1d;--danger-contrast: #ffffff;--info-50: #e9f4ff;--info-500: #2169a8;--info-700: #174c7d;--focus-ring: #7c86ff;--shadow-sm: 0 1px 2px rgb(17 19 24 / .08);--shadow-md: 0 12px 30px rgb(17 19 24 / .12);--shadow-lg: 0 18px 46px rgb(17 19 24 / .16);--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.625rem;--line-tight: 1.2;--line-normal: 1.5;--line-relaxed: 1.65;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-xs: 3px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 999px;--control-height-sm: 2rem;--control-height-md: 2.5rem;--control-height-lg: 3rem;--sidebar-width: 15.5rem;--topbar-height: 3.5rem;--container-sm: 40rem;--container-md: 48rem;--container-lg: 64rem;--container-xl: 80rem;--container-2xl: 96rem;--motion-fast: .12s;--motion-base: .18s;--motion-slow: .26s}[data-theme=dark]{color-scheme:dark;--bg-canvas: #111318;--bg-app: #0f1116;--bg-surface: #191c22;--bg-surface-muted: #20242b;--bg-subtle: #252a32;--bg-elevated: #1d2128;--bg-inverse: #f5f7fb;--bg-sidebar: #101216;--bg-sidebar-hover: #1c2027;--bg-sidebar-active: #273052;--bg-topbar: #171a20;--text-primary: #eff2f7;--text-secondary: #b7bfcb;--text-muted: #8d96a5;--text-inverse: #12151a;--text-sidebar: #e7ebf2;--text-sidebar-muted: #9ca5b4;--text-sidebar-active: #ffffff;--border-subtle: #303641;--border-strong: #434b58;--border-inverse: #d7dce5;--border-sidebar: #262b34;--primary-50: #202548;--primary-100: #2c3464;--primary-500: #9aa4ff;--primary-600: #b3bbff;--primary-700: #d7dcff;--primary-contrast: #101426;--secondary-50: #162e3f;--secondary-500: #76c5f0;--secondary-600: #a8daf6;--accent-50: #2c2548;--accent-500: #b49cff;--accent-600: #d2c5ff;--success-50: #143323;--success-500: #72d595;--success-700: #b5ecc9;--warning-50: #39290e;--warning-500: #ebb456;--warning-700: #f7d995;--danger-50: #3a1d1b;--danger-500: #ff8178;--danger-700: #ffc0ba;--danger-contrast: #2b0f0d;--info-50: #17314a;--info-500: #82c7ff;--info-700: #bbe1ff;--focus-ring: #79c7ff;--shadow-sm: 0 1px 2px rgb(0 0 0 / .34);--shadow-md: 0 14px 34px rgb(0 0 0 / .46);--shadow-lg: 0 22px 56px rgb(0 0 0 / .5)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg-canvas: #111318;--bg-app: #0f1116;--bg-surface: #191c22;--bg-surface-muted: #20242b;--bg-subtle: #252a32;--bg-elevated: #1d2128;--bg-inverse: #f5f7fb;--bg-sidebar: #101216;--bg-sidebar-hover: #1c2027;--bg-sidebar-active: #273052;--bg-topbar: #171a20;--text-primary: #eff2f7;--text-secondary: #b7bfcb;--text-muted: #8d96a5;--text-inverse: #12151a;--text-sidebar: #e7ebf2;--text-sidebar-muted: #9ca5b4;--border-subtle: #303641;--border-strong: #434b58;--border-inverse: #d7dce5;--border-sidebar: #262b34;--primary-50: #202548;--primary-100: #2c3464;--primary-500: #9aa4ff;--primary-600: #b3bbff;--primary-700: #d7dcff;--primary-contrast: #101426;--secondary-50: #162e3f;--secondary-500: #76c5f0;--secondary-600: #a8daf6;--accent-50: #2c2548;--accent-500: #b49cff;--accent-600: #d2c5ff;--success-50: #143323;--success-500: #72d595;--success-700: #b5ecc9;--warning-50: #39290e;--warning-500: #ebb456;--warning-700: #f7d995;--danger-50: #3a1d1b;--danger-500: #ff8178;--danger-700: #ffc0ba;--danger-contrast: #2b0f0d;--info-50: #17314a;--info-500: #82c7ff;--info-700: #bbe1ff;--focus-ring: #79c7ff;--shadow-sm: 0 1px 2px rgb(0 0 0 / .34);--shadow-md: 0 14px 34px rgb(0 0 0 / .46);--shadow-lg: 0 22px 56px rgb(0 0 0 / .5)}}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;font-family:var(--font-sans);background:var(--bg-app);color:var(--text-primary);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{min-height:100vh;margin:0;background:var(--bg-app);color:var(--text-primary);font-size:var(--text-base);line-height:var(--line-normal);font-variant-numeric:tabular-nums}body,button,input,select,textarea{font:inherit}button,input,select,textarea{color:inherit}button{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}a{color:var(--primary-600);text-decoration-thickness:.08em;text-underline-offset:.16em}a:hover{color:var(--primary-700)}img,svg,canvas{display:block;max-width:100%}svg{flex:0 0 auto}::selection{background:var(--primary-100);color:var(--text-primary)}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.text-heading-1,.text-heading-2,.text-heading-3{margin:0;color:var(--text-primary);font-weight:700;letter-spacing:0}.text-heading-1{font-size:var(--text-3xl);line-height:var(--line-tight)}.text-heading-2{font-size:var(--text-2xl);line-height:1.25}.text-heading-3{font-size:var(--text-lg);line-height:1.3}.text-body{margin:0;color:var(--text-primary);font-size:var(--text-base);line-height:var(--line-normal)}.text-small{margin:0;color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--line-normal)}.text-mono{font-family:var(--font-mono);font-size:.95em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.app-shell{min-height:100dvh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);grid-template-rows:var(--topbar-height) minmax(0,1fr);grid-template-areas:"sidebar topbar" "sidebar main";background:var(--bg-app)}.app-sidebar{grid-area:sidebar;display:flex;min-height:100dvh;flex-direction:column;gap:var(--space-5);padding:var(--space-4) var(--space-3);border-right:1px solid var(--border-sidebar);background:var(--bg-sidebar);color:var(--text-sidebar)}.app-topbar{grid-area:topbar;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-width:0;padding:0 var(--space-5);border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-topbar) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px #ffffff73 inset}.app-main{grid-area:main;min-width:0;overflow:auto;background:var(--bg-canvas)}.app-main-inner{width:100%;max-width:var(--container-2xl);margin:0 auto;padding:var(--space-5) var(--space-5) var(--space-8)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.page-header-main{min-width:0;display:grid;gap:var(--space-1)}.page-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.page-section{display:grid;gap:var(--space-3);margin-bottom:var(--space-4)}.container{width:100%;max-width:var(--container-lg);margin:0 auto;padding:0 var(--space-4)}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:var(--space-3)}.grid-2-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3)}.grid-main-aside{display:grid;grid-template-columns:minmax(0,2fr) minmax(18rem,1fr);gap:var(--space-3);align-items:start}.catalog-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(19rem,21rem);gap:var(--space-3);align-items:stretch}.catalog-layout-wide>.catalog-browser-panel{grid-column:1 / -1}.optimizer-setup-layout{display:grid;grid-template-columns:minmax(18rem,23rem) minmax(0,1fr);gap:var(--space-3);align-items:start}.optimizer-workbench{display:grid;grid-template-columns:minmax(17rem,21rem) minmax(32rem,1fr) minmax(17rem,21rem);gap:var(--space-3);align-items:stretch;min-height:calc(100dvh - var(--topbar-height) - 12rem)}.optimizer-workbench-main{min-width:0;display:grid;grid-template-rows:minmax(30rem,1fr)}.report-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,24rem);gap:var(--space-3);align-items:start}.admin-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:var(--space-5);background:var(--bg-canvas)}.auth-panel{width:min(100%,26rem)}.sticky-action-bar{position:sticky;bottom:var(--space-3);z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-top:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(max-width:1180px){.optimizer-workbench{grid-template-columns:minmax(18rem,24rem) minmax(0,1fr)}.catalog-layout{grid-template-columns:minmax(0,1fr)}.optimizer-inspector{grid-column:1 / -1}}@media(max-width:960px){.app-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--topbar-height) auto minmax(0,1fr);grid-template-areas:"topbar" "sidebar" "main"}.app-sidebar{min-height:auto;flex-direction:row;overflow-x:auto;padding:var(--space-2) var(--space-4);border-right:0;border-bottom:1px solid var(--border-sidebar)}.app-main-inner{padding:var(--space-4)}.catalog-layout,.optimizer-setup-layout,.optimizer-workbench,.report-detail-layout,.grid-main-aside,.grid-2-col{grid-template-columns:minmax(0,1fr)}.optimizer-workbench-main{grid-template-rows:auto minmax(22rem,60dvh)}}@media(max-width:640px){.app-topbar{padding:0 var(--space-3)}.app-main-inner{padding:var(--space-3)}.page-header{display:grid}.page-header-actions,.sticky-action-bar{justify-content:stretch}.sticky-action-bar{display:grid}}.brand-mark{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-height-md);color:var(--text-primary);font-weight:800;letter-spacing:0}.app-sidebar .brand-mark{color:var(--text-sidebar);padding:0 var(--space-2)}.nav-list{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none}.nav-item{display:flex;align-items:center;gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-2);border-radius:var(--radius-md);color:var(--text-sidebar-muted);text-decoration:none;white-space:nowrap;font-size:var(--text-sm);font-weight:700;transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.nav-item:hover{background:var(--bg-sidebar-hover);color:var(--text-sidebar)}.nav-item[aria-current=page],.nav-item.is-active{background:var(--bg-sidebar-active);color:var(--text-sidebar-active);box-shadow:inset 3px 0 0 var(--primary-500)}.mc-button,.mc-icon-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-md);font-weight:700;line-height:1;text-decoration:none;transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.mc-button{gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-3);font-size:var(--text-sm)}.mc-icon-button{width:2.25rem;height:2.25rem;padding:0}.mc-button .icon,.mc-icon-button .icon{width:.95rem;height:.95rem}.mc-button-primary{background:var(--primary-500);color:var(--primary-contrast);box-shadow:0 1px #ffffff2e inset}.mc-button-primary:hover{background:var(--primary-600);box-shadow:0 1px #fff3 inset,0 6px 14px color-mix(in srgb,var(--primary-500) 28%,transparent)}.mc-button-secondary{border-color:var(--border-strong);background:var(--bg-elevated);color:var(--text-primary)}.mc-button-secondary:hover{border-color:var(--border-strong);background:var(--bg-surface-muted)}.mc-button-danger{background:var(--danger-500);color:var(--danger-contrast)}.mc-button-danger:hover{background:var(--danger-700)}.mc-button-ghost,.mc-icon-button{background:transparent;color:var(--text-secondary)}.mc-button-ghost:hover,.mc-icon-button:hover{background:var(--bg-subtle);color:var(--text-primary)}.mc-button:disabled,.mc-icon-button:disabled{opacity:.55}.panel{min-width:0;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.panel-header,.panel-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:3rem;padding:var(--space-3) var(--space-4)}.panel-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-muted)}.panel-footer{border-top:1px solid var(--border-subtle)}.panel-body{padding:var(--space-3) var(--space-4)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.field{display:grid;gap:var(--space-1);min-width:0}.field-label{color:var(--text-primary);font-size:var(--text-xs);font-weight:700;text-transform:uppercase}.field-hint,.field-error{font-size:var(--text-xs);line-height:var(--line-normal)}.field-hint{color:var(--text-muted)}.field-error{color:var(--danger-700)}.input,.select,.textarea{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 1px #ffffff5c inset;font-size:var(--text-sm);transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}.input,.select{min-height:2.25rem;padding:0 var(--space-2)}.textarea{min-height:7rem;padding:var(--space-2);resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-ring) 18%,transparent),0 1px #ffffff5c inset}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-surface-muted);color:var(--text-muted)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger-500)}.segmented-control{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-subtle)}.segmented-control-option{min-height:var(--control-height-sm);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:700}.segmented-control-option[aria-pressed=true],.segmented-control-option[aria-checked=true],.segmented-control-option.is-active{background:var(--bg-elevated);color:var(--primary-700);box-shadow:var(--shadow-sm)}.theme-toggle{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-subtle)}.theme-toggle-option{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-sm);height:var(--control-height-sm);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.theme-toggle-option:hover{background:var(--bg-subtle);color:var(--text-primary)}.theme-toggle-option[aria-checked=true],.theme-toggle-option.is-active{background:var(--bg-elevated);color:var(--primary-700);box-shadow:var(--shadow-sm)}.theme-toggle-icon{display:inline-flex;width:1rem;height:1rem;align-items:center;justify-content:center;overflow:hidden;font-size:0}.theme-toggle-icon svg{width:1rem;height:1rem}.table-wrap{width:100%;overflow:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.mc-table{width:100%;min-width:44rem;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.mc-table th,.mc-table td{height:2.5rem;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:middle;overflow-wrap:break-word}.mc-table th{position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--bg-surface-muted) 92%,var(--bg-subtle));color:var(--text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;overflow-wrap:normal;text-transform:uppercase;box-shadow:0 1px 0 var(--border-subtle)}.mc-table td:first-child{color:var(--text-primary);font-weight:700}.mc-table tr:last-child td{border-bottom:0}.mc-table tbody tr:hover{background:color-mix(in srgb,var(--primary-50) 54%,var(--bg-elevated))}.mc-table-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-1)}.editable-grid{display:grid;gap:var(--space-1)}.editable-grid-row{display:grid;grid-template-columns:minmax(12rem,1.45fr) repeat(4,minmax(5.75rem,.75fr)) minmax(3rem,auto);gap:var(--space-2);align-items:start}.alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);padding:var(--space-3);border:1px solid;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.alert .icon{margin-top:.1rem}.alert-title{margin:0;font-size:var(--text-sm);font-weight:800}.alert-message{margin:var(--space-1) 0 0;color:inherit;font-size:var(--text-xs)}.alert-info{border-color:color-mix(in srgb,var(--info-500) 64%,var(--border-subtle));background:color-mix(in srgb,var(--info-50) 78%,var(--bg-elevated));color:var(--info-700)}.alert-success{border-color:color-mix(in srgb,var(--success-500) 68%,var(--border-subtle));background:color-mix(in srgb,var(--success-50) 78%,var(--bg-elevated));color:var(--success-700)}.alert-warning{border-color:color-mix(in srgb,var(--warning-500) 68%,var(--border-subtle));background:color-mix(in srgb,var(--warning-50) 78%,var(--bg-elevated));color:var(--warning-700)}.alert-danger{border-color:color-mix(in srgb,var(--danger-500) 72%,var(--border-subtle));background:color-mix(in srgb,var(--danger-50) 80%,var(--bg-elevated));color:var(--danger-700)}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);min-height:1.5rem;padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:800;white-space:nowrap}.status-success{border-color:var(--success-500);background:var(--success-50);color:var(--success-700)}.status-warning{border-color:var(--warning-500);background:var(--warning-50);color:var(--warning-700)}.status-danger{border-color:var(--danger-500);background:var(--danger-50);color:var(--danger-700)}.status-info{border-color:var(--info-500);background:var(--info-50);color:var(--info-700)}.metric-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:var(--space-2);margin-bottom:var(--space-3)}.metric{display:grid;gap:var(--space-1);min-width:0;padding:var(--space-3) var(--space-3) var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.metric-label{color:var(--text-muted);font-size:var(--text-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.metric-value{color:var(--text-primary);font-size:var(--text-lg);font-weight:800;line-height:var(--line-tight)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle);padding:var(--space-1) var(--space-1) 0;background:var(--bg-surface-muted)}.tab{min-height:2.25rem;padding:0 var(--space-2);border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.tab:hover{color:var(--text-primary)}.tab[aria-selected=true],.tab.is-active{border-bottom-color:var(--primary-500);color:var(--primary-700);background:var(--bg-elevated)}.drawer{width:min(100%,30rem);max-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-left:1px solid var(--border-subtle);background:var(--bg-elevated);box-shadow:var(--shadow-md)}.drawer-header,.drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4)}.drawer-header{border-bottom:1px solid var(--border-subtle)}.drawer-body{min-height:0;overflow:auto;padding:var(--space-4)}.drawer-footer{border-top:1px solid var(--border-subtle)}.catalog-browser-panel{min-width:0;height:calc(100dvh - var(--topbar-height) - 8rem);min-height:28rem;max-height:calc(100dvh - var(--topbar-height) - 8rem);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.catalog-browser-panel>.panel-header{min-height:2.5rem;padding:var(--space-2) var(--space-3)}.catalog-browser-body{min-height:28rem;max-height:calc(100dvh - var(--topbar-height) - 11rem);display:grid;grid-template-columns:minmax(18rem,22rem) minmax(0,1fr);overflow:hidden}.catalog-browser-subheader{display:flex;align-items:center;min-height:2.75rem;padding:0 var(--space-3);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-muted)}.catalog-folder-panel{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-right:1px solid var(--border-subtle)}.catalog-browser-items{min-width:0;overflow:auto}.catalog-tree{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;margin:0;padding:var(--space-1);list-style:none;overflow:auto}.catalog-mixed-tree{min-height:0}.catalog-tree-row{position:relative;display:grid;grid-template-columns:1.375rem minmax(0,1fr) auto;align-items:center;gap:1px;flex:0 0 1.5rem;min-height:1.5rem;height:1.5rem;border-radius:3px;color:var(--text-secondary);font-size:var(--text-xs);font-weight:700;line-height:1.15}.catalog-tree-row:hover,.catalog-tree-row:focus-within{background:var(--bg-subtle);color:var(--text-primary)}.catalog-tree-row.is-active{background:color-mix(in srgb,var(--primary-50) 58%,var(--bg-subtle));color:var(--text-primary);box-shadow:inset 2px 0 0 var(--primary-500)}.catalog-system-row{margin-bottom:var(--space-1);border-bottom:1px solid var(--border-subtle);border-radius:3px 3px 0 0}.catalog-item-row{color:var(--text-secondary);font-weight:500}.catalog-tree-item{min-width:0;min-height:1.5rem;height:1.5rem;display:flex;align-items:center;gap:.1875rem;padding:0 .1875rem;color:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}.catalog-item-tree-button{gap:.1875rem}.catalog-item-meta{min-width:0;margin-left:.25rem;overflow:hidden;color:var(--text-muted);font-size:.6875rem;font-weight:700;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.catalog-tree-empty{padding:2px}.folder-toggle-button,.folder-toggle-spacer{width:1.375rem;height:1.375rem}.catalog-tree .mc-icon-button{width:1.125rem;height:1.125rem;min-height:0;border-radius:3px}.catalog-tree .mc-icon-button .icon{width:.8125rem;height:.8125rem}.catalog-tree .folder-toggle-button{width:1.375rem;height:1.375rem;border:1px solid transparent;color:var(--text-secondary)}.folder-toggle-button:hover,.folder-toggle-button:focus-visible{border-color:var(--border-strong);background:var(--bg-elevated)}.folder-toggle-button .icon{transition:transform var(--motion-fast) ease}.folder-toggle-button.is-expanded .icon{transform:rotate(90deg)}.catalog-tree-row[aria-expanded=true]>.catalog-tree-item .folder-name{color:var(--text-primary)}.folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-action-wrap{position:relative;display:flex;align-items:center;padding-right:1px}.folder-action-button{width:1.125rem;height:1.125rem}.folder-action-menu{position:absolute;top:calc(100% + var(--space-1));right:var(--space-1);z-index:20;width:10rem;display:grid;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-lg)}.folder-action-menu button{min-height:2rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:700;text-align:left;padding:0 var(--space-2)}.folder-action-menu button:hover{background:var(--bg-subtle);color:var(--text-primary)}.folder-action-menu button:disabled{opacity:.48}@media(max-width:1180px){.catalog-browser-body{max-height:none;grid-template-columns:1fr}.catalog-folder-panel{max-height:18rem;border-right:0;border-bottom:1px solid var(--border-subtle)}}.pattern-canvas-shell{min-width:0;min-height:24rem;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-md)}.pattern-canvas-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-muted)}.pattern-canvas-stage{position:relative;min-height:0;overflow:hidden;background:linear-gradient(color-mix(in srgb,var(--border-subtle) 66%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border-subtle) 66%,transparent) 1px,transparent 1px),var(--bg-canvas);background-size:24px 24px}.pattern-canvas-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--space-6);color:var(--text-secondary);text-align:center}.license-meter{display:grid;gap:var(--space-2)}.license-meter-track{height:.625rem;overflow:hidden;border-radius:var(--radius-pill);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.license-meter-value{height:100%;border-radius:inherit;background:var(--primary-500)}.empty-state{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-6);color:var(--text-secondary);text-align:center;font-size:var(--text-sm)}@media(max-width:760px){.form-grid,.editable-grid-row{grid-template-columns:minmax(0,1fr)}.mc-button{width:100%}.toolbar{align-items:stretch}.toolbar-group{width:100%}}.u-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.u-stack{display:grid;gap:var(--space-4)}.u-stack-sm{display:grid;gap:var(--space-2)}.u-stack-lg{display:grid;gap:var(--space-6)}.u-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.u-cluster-between{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.u-scroll-x{overflow-x:auto}.u-scroll-y{overflow-y:auto}.u-min-0{min-width:0}.u-muted{color:var(--text-secondary)}.u-danger{color:var(--danger-700)}.u-success{color:var(--success-700)}.u-warning{color:var(--warning-700)}.u-align-end{align-items:end}.u-justify-end{justify-content:end}.u-full-width{width:100%}.u-nowrap{white-space:nowrap}.u-truncate{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u-divider{height:1px;background:var(--border-subtle)}@media(max-width:760px){.u-hide-mobile{display:none!important}}@media(min-width:761px){.u-show-mobile{display:none!important}}.icon{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand-symbol{position:relative;width:1.75rem;height:1.75rem;border:1px solid color-mix(in srgb,var(--primary-500) 72%,var(--border-subtle));border-radius:var(--radius-md);background:var(--primary-50);box-shadow:0 1px #ffffff47 inset}.brand-symbol:after{position:absolute;top:.28rem;left:50%;width:.16rem;height:1.1rem;border-radius:var(--radius-pill);background:var(--primary-500);content:"";transform:translate(-50%) rotate(45deg)}.app-sidebar .brand-symbol{background:var(--bg-sidebar-active);border-color:color-mix(in srgb,var(--primary-500) 60%,var(--border-sidebar))}.topbar-title{min-width:0;display:grid;gap:0}.topbar-title .text-heading-2{font-size:var(--text-lg);font-weight:800}.topbar-actions{display:flex;align-items:center;gap:var(--space-3)}.topbar-user{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.25rem;color:var(--text-secondary);font-size:var(--text-sm);font-weight:700}.user-avatar{display:inline-grid;width:1.875rem;height:1.875rem;place-items:center;border-radius:var(--radius-md);background:var(--primary-50);color:var(--primary-700);font-size:var(--text-xs);font-weight:800}.mc-icon-button.is-active,.mc-button.is-active{border-color:var(--primary-500);background:var(--primary-50);color:var(--primary-700);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary-500) 24%,transparent)}.input-icon{position:relative;display:grid}.input-icon .icon{position:absolute;top:50%;left:var(--space-3);z-index:1;transform:translateY(-50%);color:var(--text-muted)}.input-icon .input{padding-left:2.25rem}.source-list{display:grid;gap:var(--space-1);max-height:32rem;overflow:auto;padding-right:var(--space-1)}.source-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);align-items:start;padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);font-size:var(--text-sm);transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.source-item:hover,.source-item:focus-within{border-color:var(--border-strong);background:color-mix(in srgb,var(--primary-50) 34%,var(--bg-elevated))}.source-item input[type=checkbox]{width:1rem;height:1rem;margin:.125rem 0 0;accent-color:var(--primary-500)}.source-item span span{display:block}.part-grid{min-width:0;overflow-x:auto}.part-grid-header{color:var(--text-secondary);font-size:var(--text-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.part-grid .editable-grid-row{min-width:44rem;padding:var(--space-1);border:1px solid transparent;border-radius:var(--radius-md)}.part-grid.part-grid-no-height .editable-grid-row{min-width:38rem;grid-template-columns:minmax(12rem,1.45fr) repeat(3,minmax(5.75rem,.75fr)) minmax(3rem,auto)}.part-grid .part-grid-header{border-color:var(--border-subtle);background:var(--bg-surface-muted)}.part-grid .editable-grid-row:not(.part-grid-header):hover{border-color:var(--border-subtle);background:color-mix(in srgb,var(--primary-50) 32%,var(--bg-elevated))}.row-has-warning{border-color:var(--warning-500)!important;background:color-mix(in srgb,var(--warning-50) 78%,var(--bg-elevated))}.part-row-warning{grid-column:1 / -1;margin:0;color:var(--warning-700);font-size:var(--text-xs);font-weight:700}.input-with-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.input-with-unit .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-with-unit span{min-height:2.25rem;display:inline-flex;align-items:center;padding:0 var(--space-2);border:1px solid var(--border-strong);border-left:0;border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--bg-surface-muted);color:var(--text-muted);font-size:var(--text-xs);font-weight:700}.textarea.compact{min-height:4.5rem}.form-grid-span{grid-column:1 / -1}.single-col{grid-template-columns:minmax(0,1fr)}.compact-heading{font-size:var(--text-base)}.result-status-banner{align-items:start;min-height:3.75rem}.result-status-banner .alert-title{font-size:var(--text-base)}.summary-row{display:grid;gap:var(--space-1);min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated)}.summary-row strong{font-size:var(--text-sm)}.summary-row.danger{border-color:color-mix(in srgb,var(--danger-500) 72%,var(--border-subtle));background:color-mix(in srgb,var(--danger-50) 82%,var(--bg-elevated));color:var(--danger-700)}.compact-table .mc-table{min-width:20rem}.compact-table .mc-table th,.compact-table .mc-table td{padding-right:var(--space-2);padding-left:var(--space-2)}.catalog-browser-items .mc-table,.report-detail-layout>.panel:first-child .mc-table{min-width:100%;table-layout:fixed}.report-detail-layout>.panel:first-child .mc-table th:nth-child(3),.report-detail-layout>.panel:first-child .mc-table td:nth-child(3){width:4rem}.catalog-browser-items .mc-table th:nth-child(1),.catalog-browser-items .mc-table td:nth-child(1){width:8.5rem}.catalog-browser-items .mc-table th:nth-child(2),.catalog-browser-items .mc-table td:nth-child(2){width:8rem}.catalog-browser-items .mc-table th:nth-child(3),.catalog-browser-items .mc-table td:nth-child(3){width:6rem}.catalog-browser-items .mc-table th:nth-child(4),.catalog-browser-items .mc-table td:nth-child(4){width:4rem}.catalog-browser-items .mc-table th:nth-child(5),.catalog-browser-items .mc-table td:nth-child(5){width:6.5rem}.catalog-browser-items .mc-table th:nth-child(6),.catalog-browser-items .mc-table td:nth-child(6){width:5rem}.catalog-browser-items .mc-table th:nth-child(7),.catalog-browser-items .mc-table td:nth-child(7){width:5.125rem}.catalog-browser-items .mc-table th:last-child,.catalog-browser-items .mc-table td:last-child{width:5rem}.report-detail-layout>.panel:first-child .mc-table th:nth-child(2),.report-detail-layout>.panel:first-child .mc-table td:nth-child(2){width:12rem}.report-detail-layout>.panel:first-child .mc-table th:last-child,.report-detail-layout>.panel:first-child .mc-table td:last-child{width:8rem}.catalog-browser-items .mc-table .mc-table-row-actions,.report-detail-layout>.panel:first-child .mc-table .mc-table-row-actions{flex-wrap:nowrap}.optimizer-workbench-success .pattern-canvas-shell{border-color:color-mix(in srgb,var(--success-500) 26%,var(--border-subtle))}.optimizer-workbench-warning .pattern-canvas-shell{border-color:color-mix(in srgb,var(--warning-500) 38%,var(--border-subtle))}.optimizer-workbench-danger .pattern-canvas-shell{border-color:color-mix(in srgb,var(--danger-500) 42%,var(--border-subtle))}.pattern-tool-group{padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated)}.pattern-action-group{gap:var(--space-2)}.canvas-toolbar-readout{min-width:3rem;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700}.pattern-svg{width:100%;height:100%;min-height:28rem;transform-origin:center;-webkit-user-select:none;user-select:none;transition:transform var(--motion-fast) ease}.pattern-svg.is-interacting{transition:none}.pattern-canvas-stage{touch-action:none}.pattern-stage-readout{position:absolute;top:var(--space-2);left:var(--space-2);z-index:1;display:inline-flex;flex-wrap:wrap;gap:var(--space-2);max-width:calc(100% - var(--space-4));padding:var(--space-1) var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);color:var(--text-secondary);box-shadow:var(--shadow-sm);font-size:var(--text-xs);font-weight:700;pointer-events:none}.canvas-floating-alert{position:absolute;right:var(--space-2);bottom:var(--space-2);z-index:2;display:inline-flex;align-items:center;gap:var(--space-2);max-width:min(26rem,calc(100% - var(--space-4)));padding:var(--space-2) var(--space-3);border:1px solid var(--danger-500);border-radius:var(--radius-md);background:color-mix(in srgb,var(--danger-50) 92%,transparent);color:var(--danger-700);box-shadow:var(--shadow-md);font-size:var(--text-sm);font-weight:700;pointer-events:none}.source-rect{fill:color-mix(in srgb,var(--bg-elevated) 82%,var(--bg-canvas));stroke:var(--border-strong);stroke-width:1;vector-effect:non-scaling-stroke}.margin-rect{fill:none;stroke:color-mix(in srgb,var(--warning-500) 86%,var(--text-primary));stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.magnet-guide{pointer-events:none;stroke:var(--focus-ring);stroke-width:.65;stroke-dasharray:2 1.25;vector-effect:non-scaling-stroke}.magnet-guide.is-insertion-guide{stroke:var(--success-500);stroke-width:1.2;stroke-dasharray:3 1.5}.magnet-guide.is-blocked{stroke:var(--danger-500)}.pattern-piece{cursor:grab;touch-action:none;stroke:color-mix(in srgb,var(--bg-inverse) 72%,transparent);stroke-width:1;vector-effect:non-scaling-stroke;outline:none;filter:drop-shadow(0 .8px .8px rgb(0 0 0 / .28));transition:opacity var(--motion-fast) ease,stroke-width var(--motion-fast) ease}.pattern-piece:active{cursor:grabbing}.pattern-piece.is-selected{stroke:var(--focus-ring);stroke-width:2}.pattern-piece.is-invalid{stroke:var(--danger-500);stroke-width:2}.pattern-piece.is-neighbor-target{stroke:var(--success-700);stroke-width:2.2}.pattern-piece.is-neighbor-shifted{stroke:var(--warning-700);stroke-width:1.8}.pattern-piece.is-neighbor-blocked{stroke:var(--danger-500);stroke-dasharray:2 1.2}.neighbor-shift-warning{border-color:var(--warning-500);background:color-mix(in srgb,var(--warning-50) 92%,transparent);color:var(--warning-700)}.piece-color-0{fill:color-mix(in srgb,var(--primary-500) 76%,white)}.piece-color-1{fill:color-mix(in srgb,var(--secondary-500) 74%,white)}.piece-color-2{fill:color-mix(in srgb,var(--warning-500) 70%,white)}.piece-color-3{fill:color-mix(in srgb,var(--accent-500) 72%,white)}.piece-color-4{fill:color-mix(in srgb,var(--success-500) 72%,white)}.piece-label{fill:color-mix(in srgb,var(--text-primary) 92%,black);font-size:4px;font-weight:800;pointer-events:none}.inspector-selection{border-color:color-mix(in srgb,var(--primary-500) 44%,var(--border-subtle));background:color-mix(in srgb,var(--primary-50) 58%,var(--bg-elevated))}.compact-select{width:min(100%,16rem)}.tree-button{width:100%;border:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left}.folder-count{margin-left:auto;min-width:1.5rem;padding:0 .25rem;border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--text-xs);font-weight:800;line-height:1.125rem;text-align:center}.table-search{width:min(100%,22rem)}.drawer-inline{position:sticky;top:var(--space-3);width:100%;max-height:calc(100dvh - var(--topbar-height) - var(--space-6));border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.report-row{cursor:pointer}.report-row:focus-visible{outline:2px solid var(--primary-500);outline-offset:-2px}.is-selected-row{background:color-mix(in srgb,var(--primary-50) 68%,var(--bg-elevated));box-shadow:inset 3px 0 0 var(--primary-500)}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:var(--space-4);background:#0000008f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog{width:min(100%,28rem);display:grid;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-lg)}.user-dialog{width:min(100%,42rem);max-height:calc(100dvh - var(--space-8));overflow:auto}.password-field-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2)}.password-field-row .mc-button{white-space:nowrap}.checkbox-field{display:flex;align-items:flex-start;gap:var(--space-2);color:var(--text-primary);font-size:var(--text-sm)}.checkbox-field input{width:1rem;height:1rem;margin-top:.125rem;accent-color:var(--primary-500)}.checkbox-field span{display:grid;gap:var(--space-1)}.checkbox-field small{color:var(--text-muted);font-size:var(--text-xs);line-height:var(--line-normal)}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.skeleton-line,.skeleton-block{overflow:hidden;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--bg-subtle),var(--bg-surface-muted),var(--bg-subtle));background-size:220% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton-line{width:100%;height:1rem}.skeleton-line.short{width:55%}.skeleton-line.wide{height:2rem}.topbar-skeleton{max-width:16rem}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--space-4)}.skeleton-block{min-height:14rem}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media(max-width:1180px){.catalog-layout{grid-template-columns:minmax(0,1fr)}.drawer-inline{grid-column:1 / -1;position:static}}@media(max-width:960px){.pattern-svg{min-height:22rem}.source-list{max-height:none}}@media(max-width:760px){.part-grid .editable-grid-row{min-width:0}.confirm-actions{display:grid}.password-field-row{grid-template-columns:minmax(0,1fr)}}
