*,:before,:after{box-sizing:border-box}:root{--font-mono:"Fira Code",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:12px;--r-xl:16px;--sp-1:4px;--sp-2:6px;--sp-3:8px;--sp-4:10px;--sp-5:12px;--sp-6:14px;--sp-7:18px;--control-h:32px;--control-h-lg:38px;--icon-btn-w:34px;--t-fast:80ms;--t-med:.15s;--ease:ease;--view-slide:26px;--view-fade-ms:.17s;--view-move-ms:.26s;--shadow-panel:0 1px 10px #00000059;--shadow-focus:0 0 0 3px #5c7cfa24;--c-accent:92 124 250;--c-success:63 127 84;--c-danger:239 68 68;--c-info:120 180 255;--c-warn:255 210 120;--bg:#1e1e2f;--fg:#f0f0f0;--panel:#2b2b3b;--panel-header:#323248;--surface-1:#ffffff0f;--surface-2:#ffffff1a;--border-1:#ffffff14;--border-2:#ffffff24;--border-3:#ffffff38;--muted:#f0f0f0bf;--muted-2:#f0f0f08c;--input-bg:#ffffff0f;--input-border:#ffffff24;--sep:#ffffff14}.app[data-theme=dark]{--bg:#1e1e2f;--fg:#f0f0f0;--panel:#2b2b3b;--panel-header:#323248;--surface-1:#ffffff0f;--surface-2:#ffffff1a;--border-1:#ffffff14;--border-2:#ffffff24;--border-3:#ffffff38;--muted:#f0f0f0bf;--muted-2:#f0f0f08c;--sep:#ffffff14}.app[data-theme=light]{--bg:#f4f6fb;--fg:#111827;--panel:#fff;--panel-header:#f0f3fa;--surface-1:#1118270a;--surface-2:#11182712;--border-1:#1118271a;--border-2:#11182729;--border-3:#11182738;--muted:#111827b8;--muted-2:#1118278c;--sep:#1118271f;--shadow-panel:0 2px 14px #1118271a}html,body,#root,.app{height:100%;font-family:var(--font-mono);background-color:var(--bg);color:var(--fg);margin:0;padding:0}button,input,select,textarea{font-family:inherit}.fullscreen-loader{justify-content:center;align-items:center;height:100vh;display:flex}.panels-container{width:100%;min-width:0;height:100%;min-height:0;display:flex}.panel-stack{flex-direction:column;flex:1;width:100%;min-width:0;height:100%;min-height:0;display:flex}.full-width{width:100%}.panel{background-color:var(--panel);border-radius:var(--r-md);box-shadow:var(--shadow-panel);border:1px solid var(--border-1);flex-direction:column;min-width:0;min-height:0;margin:2px;display:flex;overflow:hidden}.panel-header{padding:var(--sp-4)var(--sp-6);background-color:var(--panel-header);border-bottom:1px solid var(--border-1);justify-content:space-between;align-items:center;gap:var(--sp-4);width:100%;min-width:0;font-weight:700;display:flex}.panel-header__left{align-items:center;gap:var(--sp-3);display:flex}.panel-header__icon{color:var(--muted);transition:color var(--t-med)var(--ease);flex:none;font-size:16px}.panel-header:hover .panel-header__icon{color:rgb(var(--c-accent)/.65)}.panel-header-row{flex-wrap:nowrap;width:100%;min-width:0}.editor-wrapper,.panel-body{padding:var(--sp-2);flex:1;min-width:0;min-height:0;overflow:auto}.panel-content{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.scroll-host{padding:var(--sp-3);position:absolute;inset:0;overflow:hidden auto}.separator{cursor:col-resize;background-color:var(--sep);width:4px}.separator-horizontal{cursor:row-resize;background-color:var(--sep);flex-shrink:0;height:4px}.btn{justify-content:center;align-items:center;gap:var(--sp-3);height:var(--control-h);padding:0 var(--sp-5);border-radius:var(--r-xs);border:1px solid var(--border-2);background-color:var(--surface-1);color:var(--fg);cursor:pointer;transition:background-color var(--t-med)var(--ease),border-color var(--t-med)var(--ease),opacity var(--t-med)var(--ease),transform var(--t-fast)var(--ease);font-size:.92em;display:inline-flex}.btn:hover{background-color:var(--surface-2);border-color:var(--border-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn--success{background:rgb(var(--c-success));border-color:rgb(var(--c-success)/.75);color:#fff}.btn--success:hover{background:rgb(var(--c-success)/.92);border-color:rgb(var(--c-success)/.95)}.btn--success:active{background:rgb(var(--c-success)/.86)}.btn--ghost,.me-cancel{background-color:var(--surface-1);border-color:var(--border-2);color:var(--fg)}.btn--ghost:hover,.me-cancel:hover{background-color:var(--surface-2);border-color:var(--border-3)}.btn--save,.btn--commit,.btn--addModel{height:var(--control-h-lg);letter-spacing:.2px;border:1px solid rgb(var(--c-accent)/.55);background:linear-gradient(180deg,rgb(var(--c-accent)/.22),rgb(var(--c-accent)/.14));color:var(--fg);transition:background-color var(--t-med)var(--ease),border-color var(--t-med)var(--ease),box-shadow var(--t-med)var(--ease),transform var(--t-fast)var(--ease),filter var(--t-med)var(--ease);padding:0 16px;box-shadow:0 10px 22px #00000038}.btn--save:hover,.btn--commit:hover,.btn--addModel:hover{border-color:rgb(var(--c-accent)/.78);background:linear-gradient(180deg,rgb(var(--c-accent)/.28),rgb(var(--c-accent)/.18));box-shadow:0 0 0 3px rgb(var(--c-accent)/.18),0 14px 26px #00000042}.btn--save:active,.btn--commit:active,.btn--addModel:active{transform:translateY(1px)}.btn--save:focus-visible,.btn--commit:focus-visible,.btn--addModel:focus-visible{box-shadow:0 0 0 3px rgb(var(--c-accent)/.18),0 14px 26px #00000042,var(--shadow-focus);outline:none}.btn--save svg,.btn--addModel svg,.btn--addExpression svg{width:14px;height:14px;display:block}.btn--addExpression{color:#f0f0f099;opacity:0;visibility:hidden;pointer-events:none;height:24px;transition:opacity var(--t-med)var(--ease),transform var(--t-med)var(--ease),visibility 0s linear var(--t-med),background-color var(--t-med)var(--ease),border-color var(--t-med)var(--ease),color var(--t-med)var(--ease);background:0 0;border:1px solid #ffffff1a;border-radius:999px;padding:0 9px;font-size:.84em;font-weight:600;transform:translate(-6px)}.btn--addExpression:hover{color:#f0f0f0db;background:#ffffff0a;border-color:#ffffff29}.model-row:hover .btn--addExpression,.model-row:focus-within .btn--addExpression,.model-row.is-selected .btn--addExpression{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--t-med)var(--ease),transform var(--t-med)var(--ease),visibility 0s;transform:translate(0)}.model-row{justify-content:space-between;align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--sep);width:100%;transition:background-color var(--t-med)var(--ease),color var(--t-med)var(--ease);background:0 0;padding:12px 14px;display:flex;position:relative}.model-row-left{align-items:center;gap:var(--sp-3);min-width:0;display:flex}.model-row-icon{color:var(--muted);transition:color var(--t-med)var(--ease);flex:none;font-size:14px}.model-row-title{white-space:nowrap;text-overflow:ellipsis;letter-spacing:.12px;color:#f0f0f0b8;font-weight:500;overflow:hidden}.model-row.is-selected .model-row-icon{color:rgb(var(--c-accent)/.75)}.model-row:hover{background:#ffffff08}.model-row:hover .model-row-title{color:#f0f0f0e0}.model-row.is-selected{background:rgb(var(--c-accent)/.045)}.model-row.is-selected:before{content:"";background:rgb(var(--c-accent));width:3px;box-shadow:none;border-radius:999px;position:absolute;top:8px;bottom:8px;left:0}.model-row.is-selected .model-row-title{color:#f0f0f0f2;font-weight:650}.expression-list{padding:8px 0}.expression-empty{color:var(--muted-2);padding:10px 12px;display:inline-block}.expression-item,.expression-row{border-radius:var(--r-sm);transition:background-color var(--t-med)var(--ease),border-color var(--t-med)var(--ease);background:#ffffff05;border:1px solid #ffffff0d;justify-content:space-between;align-items:center;margin:8px 12px 8px 22px;padding:10px 12px;display:flex;position:relative}.expression-item:hover,.expression-row:hover{background:#ffffff0a;border-color:#ffffff14}.expression-item.is-selected,.expression-row.is-selected{border-color:rgb(var(--c-accent)/.22);background:#ffffff06}.expression-item.is-selected:before,.expression-row.is-selected:before{content:"";background:rgb(var(--c-accent)/.9);width:2px;box-shadow:none;border-radius:999px;position:absolute;top:9px;bottom:9px;left:-10px}.expression-code{color:#f0f0f0e0}.icon-bar{opacity:.2;transition:opacity var(--t-med)var(--ease);gap:8px;margin-left:auto;display:flex}.expression-item.is-selected .icon-bar,.model-row.is-selected .icon-bar{opacity:.7}.expression-item:hover .icon-bar,.model-row:hover .icon-bar{opacity:1}.icon-btn{border-radius:var(--r-xs);color:#f0f0f0eb;opacity:.85;width:30px;height:30px;transition:opacity var(--t-fast)var(--ease),background-color var(--t-fast)var(--ease),border-color var(--t-fast)var(--ease),transform var(--t-fast)var(--ease);background:#ffffff08;border:1px solid #ffffff1a;justify-content:center;align-items:center;padding:0;display:flex}.icon-btn svg{opacity:.95;width:14px;height:14px;display:block}.expression-item:hover .icon-btn,.expression-item:focus-within .icon-btn,.expression-row:hover .icon-btn,.expression-row:focus-within .icon-btn{opacity:.95}.icon-btn:hover{opacity:1;background:#ffffff14;border-color:#ffffff2e}.icon-btn:active{transform:translateY(1px)}.delete-btn:hover{border-color:rgb(var(--c-danger)/.45);background:rgb(var(--c-danger)/.12)}input[type=text],input[type=search],select{height:var(--control-h);padding:0 var(--sp-4);border-radius:var(--r-xs);background:var(--input-bg);border:1px solid var(--input-border);color:inherit;outline:none}input::placeholder{color:var(--muted-2)}input:focus,select:focus,textarea:focus{border-color:rgb(var(--c-accent)/.55);box-shadow:var(--shadow-focus)}.exprTreeHeaderTitle{align-items:center;gap:var(--sp-4);flex:auto;min-width:0;display:flex;overflow:hidden}.exprTreeHeaderExpr{opacity:.9;white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:420px;font-size:.9em;font-weight:600;overflow:hidden}.exprTreeHeaderControls{align-items:center;gap:var(--sp-4);flex:none;min-width:0;display:flex}.exprTreeHeaderZoom{align-items:center;gap:var(--sp-3);opacity:.9;white-space:nowrap;font-size:.9em;display:inline-flex}.exprTreeHeaderZoom select{width:110px;min-width:110px;max-width:110px}.expression-left{align-items:center;gap:var(--sp-3);flex:auto;min-width:0;display:flex}.expression-icon{color:var(--muted);transition:color var(--t-med)var(--ease);flex:none;font-size:13px}.expression-item.is-selected .expression-icon{color:rgb(var(--c-accent)/.75)}.view-stack{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.view-layer{will-change:opacity,transform;min-width:0;min-height:0;transition:opacity var(--view-fade-ms)var(--ease),transform var(--view-move-ms)var(--ease);position:absolute;inset:0}.view-layer--active{opacity:1;pointer-events:auto;z-index:2;transform:translate(0)}.view-layer--inactive{opacity:0;transform:translateX(calc(var(--view-slide)*-1));pointer-events:none;z-index:1}.view-layer--details.view-layer--inactive{transform:translateX(var(--view-slide))}@media (prefers-reduced-motion:reduce){.view-layer{transition:none;transform:none}}
