:root{--bg: #efefef;--chrome: #f3f3f3;--chrome-2: #e9e9e9;--panel: #f5f5f5;--surface: #ffffff;--surface-2: #fafafa;--border: #c9c9c9;--border-2: #d8d8d8;--text: #2b2b2b;--muted: #666666;--accent: #1976c9;--accent-soft: #dcecfb;--danger: #b84c3a;--shadow: rgba(0, 0, 0, .08)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:12px;color:var(--text);background:var(--bg);overflow:hidden}#app{height:100vh;display:grid;grid-template-rows:auto 1fr}#main{min-height:0;display:grid;grid-template-columns:272px minmax(0,1fr);overflow:hidden;background:#ececec}#ribbon{position:relative;z-index:20;border-bottom:1px solid var(--border);background:linear-gradient(#fbfbfb,#ececec);box-shadow:inset 0 -1px #dedede}.revit-chrome{display:grid;grid-template-rows:24px 30px auto}.revit-titlebar{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:0 8px 0 4px;border-bottom:1px solid #dadada;background:linear-gradient(#f8f8f8,#f0f0f0)}.revit-brand{width:22px;height:22px;display:grid;place-items:center;background:#1f78c8;color:#fff;font-weight:700;font-size:14px}.revit-windowtitle{text-align:center;font-size:11.5px;color:#3c3c3c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.revit-projectlabel{color:#4d4d4d;font-size:11px}.revit-tabs{display:flex;align-items:end;gap:1px;padding:0 8px;border-bottom:1px solid #d2d2d2;background:linear-gradient(#fafafa,#f1f1f1)}.revit-tab{min-width:66px;padding:7px 12px 6px;border:1px solid transparent;border-bottom:none;background:transparent;color:#333;font-size:12px;line-height:1;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit}.revit-tab.active{background:linear-gradient(#fff,#f8f8f8);border-color:#d1d1d1;border-bottom-color:#fff}.revit-tab.accent,.revit-tab.open{background:#2d7fbe;color:#fff}.revit-tab:hover{background:linear-gradient(#fff,#f5f9fd)}.revit-tab.accent:hover,.revit-tab.open:hover{background:#2d7fbe;color:#fff}.topbar-rows{display:grid;background:linear-gradient(#f7f7f7,#ebebeb)}.topbar-row-wrap{border-top:1px solid #fdfdfd}.topbar-row-wrap+.topbar-row-wrap{border-top:1px solid #d8d8d8}.topbar-row-title{padding:6px 12px 0;font-size:10.5px;color:#6d6d6d;text-transform:none;letter-spacing:0}.topbar{min-height:90px;display:flex;align-items:stretch;gap:0;padding:4px 8px 2px;overflow:auto hidden}.topbar-group{display:grid;grid-template-rows:1fr auto;min-width:max-content;padding:0 8px 0 6px;border-right:1px solid #d4d4d4}.topbar-group:last-child{border-right:none}.topbar-group-title{align-self:end;margin-top:4px;padding-top:4px;border-top:1px solid #dddddd;text-align:center;font-size:10px;color:#707070;text-transform:none;letter-spacing:0}.topbar-tools{display:flex;gap:3px;align-items:start}.tool-btn{min-width:36px;height:28px;padding:0 8px;border:1px solid transparent;background:transparent;color:#4b6173;cursor:pointer;display:grid;place-items:center;border-radius:2px}.tool-btn.has-label{width:64px;height:68px;padding:5px 5px 4px;grid-template-rows:30px auto;align-content:start;gap:5px}.tool-btn:hover{border-color:#b7d2ea;background:linear-gradient(#fefefe,#e6f1fb)}.tool-btn:active,.tool-btn.active{border-color:#7eafe0;background:linear-gradient(#fefefe,#dbeafa);box-shadow:inset 0 0 0 1px #f8fbff}.tool-btn.success{color:#356c47}.tool-btn.danger{color:#9c4336}.tool-icon{width:28px;height:28px;display:grid;place-items:center}.tool-icon svg{width:24px;height:24px;fill:currentColor}.tool-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:normal;text-align:center;font-size:10.5px;line-height:1.15;color:#2e2e2e}#properties{border-right:1px solid var(--border);background:linear-gradient(#f4f4f4,#efefef);overflow:auto;padding:0}.props-title{margin:0;padding:6px 8px;border-bottom:1px solid var(--border);background:linear-gradient(#f7f7f7,#eaeaea);color:#3b3b3b;font-size:11.5px;font-weight:600}.props-section{margin:6px;border:1px solid var(--border);background:var(--surface);box-shadow:0 1px #ffffffb3}.props-row{display:grid;grid-template-columns:118px 1fr;gap:8px;align-items:center;margin:0;padding:3px 6px;border-bottom:1px solid #ececec}.props-row:last-child{border-bottom:none}#properties[hidden]{display:none}#viewer{position:relative;min-width:0;min-height:0;background:#ededed}#viewer>canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.viewer-tabbar{position:absolute;top:0;left:0;right:0;height:24px;display:flex;align-items:end;gap:2px;padding:0 8px;border-bottom:1px solid #d3d3d3;background:linear-gradient(#f3f3f3,#e9e9e9);z-index:12}.viewer-tab{min-width:78px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border:1px solid #cfcfcf;border-bottom-color:#cfcfcf;background:linear-gradient(#f5f5f5,#ececec);color:#5a5a5a;font-size:11px;cursor:pointer}.viewer-tab:hover{background:linear-gradient(#fff,#f2f7fc);border-color:#b8cfe4}.viewer-tab.viewer-tab-active{border-bottom-color:#fff;background:linear-gradient(#fff,#f9f9f9);color:#1f1f1f;font-weight:600;box-shadow:inset 0 1px #fff}#resetViewBtn{position:absolute;top:32px;left:12px;z-index:13;height:24px;padding:0 9px;border-radius:2px;border:1px solid #c1c1c1;background:linear-gradient(#fff,#ececec);color:#2f2f2f;cursor:pointer;box-shadow:0 1px #fffc}#resetViewBtn:hover{background:linear-gradient(#fff,#e3f0fb);border-color:#9fc1df}.muted{color:var(--muted);margin:0;font-size:11px}.grid{display:grid;gap:8px;margin:0}.field{display:grid;grid-template-columns:1fr 118px;align-items:center;gap:8px}.portable-controls{display:grid;gap:8px}.portable-section{display:grid;gap:6px;padding:6px;border:1px solid var(--border);background:#fbfbfb}.portable-section--system{background:#f7f9fc}.portable-section__header{display:grid;gap:2px}.portable-section__title{font-size:10px;font-weight:700;color:#2f2f2f;text-transform:uppercase;letter-spacing:.04em}.portable-section__description{font-size:10px;color:var(--muted);line-height:1.25}.portable-section__body,.portable-section__body--compact{gap:4px}.portable-field{grid-template-columns:minmax(0,1fr) 112px;align-items:center;padding:4px 5px;border:1px solid #dfdfdf;background:#fff}.portable-field--readonly{background:#f5f7fa}.portable-field__meta{min-width:0;display:block}.portable-field__head{display:flex;flex-wrap:nowrap;gap:4px;align-items:center;min-width:0}.portable-field__head label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portable-field__badges{display:inline-flex;flex-wrap:wrap;gap:4px}.portable-badge{display:inline-flex;align-items:center;min-height:14px;padding:0 4px;border:1px solid #d6d6d6;background:#f3f3f3;color:#555;font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.04em}.portable-badge--group{background:#edf3fb;border-color:#bfd2e7;color:#375a7b}.portable-badge--system{background:#e9f4ea;border-color:#bad8bd;color:#2f6b36}.portable-badge--locked{background:#f8ece7;border-color:#e1b8aa;color:#8a4732}.portable-readonly-toggle{display:inline-flex;align-items:center;gap:8px;min-height:22px}.portable-readonly-toggle input{width:auto}.portable-system-summary{margin:0}.bom-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;grid-template-rows:1fr;padding:20px;background:linear-gradient(180deg,#eff4f9eb,#e6ecf2f0),#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bom-modal__panel{width:calc(100vw - 40px);height:calc(100vh - 40px);overflow:auto;padding:24px;border:1px solid rgba(140,154,171,.32);border-radius:24px;background:radial-gradient(circle at top right,rgba(25,118,201,.08),transparent 28%),linear-gradient(180deg,#fff,#f7f9fc);box-shadow:0 24px 70px #293d5029,inset 0 1px #ffffffe6}.bom-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.bom-modal__title{margin:0;font:700 19px Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#183247;letter-spacing:-.02em}.bom-modal__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(133,147,163,.35);border-radius:12px;padding:10px 14px;background:#ffffffd9;color:#365066;font:inherit;font-weight:600;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.bom-modal__close:hover{border-color:#1976c959;background:#fff;box-shadow:0 10px 24px #3b566f1f;transform:translateY(-1px)}.bom-modal__content{min-height:0}.bom-dev{display:grid;gap:18px;color:#203548;font:13px Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.bom-dev__empty{padding:24px;border:1px dashed rgba(138,152,167,.45);border-radius:18px;background:#ffffffb3;color:#5f7386}.bom-dev__hero{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;border:1px solid rgba(140,154,171,.26);border-radius:22px;background:linear-gradient(135deg,#1976c90f,#1976c900 42%),linear-gradient(180deg,#fffffffa,#f8fafcf5);box-shadow:0 16px 38px #314c6414}.bom-dev__hero-copy{display:grid;gap:6px;max-width:720px}.bom-dev__hero-title{margin:0;font:700 24px Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#173349;letter-spacing:-.03em}.bom-dev__hero-description{color:#617587;font-size:13px;line-height:1.5}.bom-dev__actions{display:flex;flex-wrap:wrap;gap:10px}.bom-dev__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:42px;padding:0 16px;border-radius:12px;border:1px solid rgba(133,147,163,.34);background:#ffffffeb;color:#264258;font:inherit;font-weight:600;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.bom-dev__button:hover:not(:disabled){transform:translateY(-1px);border-color:#1976c952;box-shadow:0 12px 24px #2e485e1f}.bom-dev__button:disabled{opacity:.58;cursor:wait}.bom-dev__button--primary{border-color:#1976c929;background:linear-gradient(180deg,#2f8ad9,#1f75c4);color:#fff}.bom-dev__button--primary:hover:not(:disabled){border-color:#1976c93d;box-shadow:0 14px 28px #1976c93d}.bom-dev__section{display:grid;gap:12px;padding:18px;border:1px solid rgba(140,154,171,.24);border-radius:20px;background:#ffffffe6;box-shadow:0 12px 28px #354f670f}.bom-dev__section-heading{display:grid;gap:5px}.bom-dev__section-title{margin:0;font:700 16px Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#183247;letter-spacing:-.01em}.bom-dev__section-description{color:#6a7d8f;font-size:12.5px;line-height:1.45}.bom-dev__settings-grid,.bom-dev__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.bom-dev__field{display:grid;gap:7px;padding:14px;border:1px solid rgba(139,152,167,.24);border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc)}.bom-dev__field-label{color:#688094;font-size:12px;font-weight:600}.bom-dev__field-row{display:flex;align-items:center;gap:10px}.bom-dev__input{width:100%;min-height:42px;padding:0 13px;border:1px solid rgba(132,146,162,.34);border-radius:12px;background:#fff;color:#203548;font:inherit;transition:border-color .18s ease,box-shadow .18s ease}.bom-dev__input:focus{outline:none;border-color:#1976c973;box-shadow:0 0 0 4px #1976c91f}.bom-dev__field-suffix{color:#73889a;font-size:12px;font-weight:600}.bom-dev__metric{display:grid;gap:6px;padding:16px;border-radius:18px;border:1px solid rgba(138,152,167,.22);background:linear-gradient(180deg,#fff,#f8fafc)}.bom-dev__metric--accent{border-color:#1976c933;background:linear-gradient(135deg,#1976c91f,#ffffffeb 58%),#fff}.bom-dev__metric-label{color:#698094;font-size:12px;font-weight:600}.bom-dev__metric-value{color:#153046;font:700 22px Segoe UI,Tahoma,Geneva,Verdana,sans-serif;letter-spacing:-.03em}.bom-dev__table-wrap{overflow:auto;border:1px solid rgba(139,152,167,.24);border-radius:16px;background:#fff}.bom-dev__table{width:100%;border-collapse:collapse;font-size:12.5px}.bom-dev__table th,.bom-dev__table td{padding:11px 13px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(226,232,238,.95)}.bom-dev__table th{position:sticky;top:0;z-index:1;background:#f5f8fb;color:#627788;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.bom-dev__table td{color:#24394d}.bom-dev__table tbody tr:nth-child(2n) td{background:#f8fafcb3}.bom-dev__table tbody tr:hover td{background:#dcecfb57}.bom-dev__table tbody tr:last-child td{border-bottom:none}.bom-dev__empty-cell{padding:18px;color:#72879a}@media(max-width:900px){.bom-modal{padding:10px}.bom-modal__panel{width:calc(100vw - 20px);height:calc(100vh - 20px);padding:16px;border-radius:18px}.bom-modal__header,.bom-dev__hero{align-items:start}.bom-dev__hero-title{font-size:21px}}.app-menu{min-width:220px;display:grid;padding:4px;border:1px solid #bfc7d1;background:#fbfbfb;box-shadow:0 14px 30px #00000029}.app-menu-root{position:fixed;z-index:200}.app-menu--nested{min-width:210px}.app-menu-item{min-height:30px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;width:100%;padding:6px 10px;border:none;background:transparent;color:#222;text-align:left;font:inherit;cursor:pointer}.app-menu-item:hover,.app-menu-item--submenu:hover{background:#dcecfb}.app-menu-item--submenu{position:relative}.app-menu-submenu{position:absolute;top:-5px;left:calc(100% - 2px);display:none}.app-menu-item--submenu:hover>.app-menu-submenu{display:grid}.app-menu-arrow,.app-menu-check{color:#5c6775}.app-menu-separator{height:1px;margin:4px 2px;background:#d8dde4}.field.is-related{background:#eef5fc;outline:1px solid #c8ddf1;border-radius:0;padding:4px 5px}label{font-size:10.5px;color:#383838}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;min-height:20px;padding:1px 5px;border:1px solid #c3c3c3;border-radius:0;background:#fff;color:#222}textarea{resize:vertical;line-height:1.25}button{min-height:24px;padding:2px 10px;border-radius:2px;border:1px solid #bdbdbd;background:linear-gradient(#fefefe,#ececec);color:#2f2f2f;cursor:pointer}button:hover{border-color:#9fc1df;background:linear-gradient(#fff,#e4f0fa)}button:disabled{opacity:.55;cursor:not-allowed}.errors{margin:8px;padding:8px 10px;border:1px solid #d8b0a8;background:#fff3f0;display:none}.errors.visible{display:block}.errors ul{margin:0;padding-left:18px}.errors li{color:var(--danger);font-size:11px;margin:2px 0}.parts,.export,.blender-status,.topbar-panels-host,.sidebar-header,.spinner,.blender-error,.actions{color:inherit}.parts .selected,.parts .item .label,.topbar-panel{border-radius:0}
