:root{--melior-green:#aaa74f;--melior-green-hover:#c5c088;--melior-green-dark:#98953f;--melior-dark:#232323;--melior-darker:#1a1a1a;--melior-cad-background:#22282f;--melior-scene-dark:#20282d;--melior-scene-text:#e6e6e6;--melior-clash-first:#ef3038;--melior-clash-second:#2f7df6;--lightning-main:#4ade80;--lightning-proposal:#22d3ee;--lightning-weld:#facc15;--lightning-open:#ef4444;--lightning-mast:gold;--lightning-trim:#e879f9;--melior-surface:#2a2a2a;--melior-surface-80:#2a2a2acc;--melior-surface-hover:#333;--melior-gray:#646464;--melior-light-gray:#f5f5f5;--melior-white:#fff;--melior-text-primary:#fff;--melior-text:#fff;--melior-text-secondary:#b0b0b0;--melior-text-muted:#888;--melior-text-dim:#999;--melior-text-light:#e0e0e0;--melior-border:#404040;--status-success:#38a169;--status-warning:#f6ad55;--status-error:#e53e3e;--status-info:#3182ce;--status-error-text:#c53030;--status-success-text:#68d391;--status-warning-text:#e5c45c;--status-info-text:#63b3ed;--melior-green-05:#aaa74f0d;--melior-green-08:#aaa74f14;--melior-green-10:#aaa74f1a;--melior-green-12:#aaa74f1f;--melior-green-15:#aaa74f26;--melior-green-20:#aaa74f33;--melior-green-30:#aaa74f4d;--melior-green-40:#aaa74f66;--overlay-white-5:#ffffff0d;--overlay-white-10:#ffffff1a;--overlay-white-15:#ffffff26;--overlay-white-20:#fff3;--overlay-black-10:#0000001a;--overlay-black-20:#0003;--overlay-black-25:#00000040;--overlay-black-30:#0000004d;--overlay-black-40:#0006;--overlay-black-50:#00000080;--overlay-black-70:#000000b3;--overlay-black-80:#000c;--overlay-white-30:#ffffff4d;--overlay-white-70:#ffffffb3;--status-success-15:#38a16926;--status-warning-15:#f6ad5526;--status-error-15:#e53e3e26;--status-info-15:#3182ce26;--status-success-30:#38a1694d;--status-warning-30:#f6ad554d;--status-error-30:#e53e3e4d;--memory-accent:#7ea6b8;--memory-accent-5:#7ea6b80d;--memory-accent-10:#7ea6b81a;--memory-accent-20:#7ea6b833;--font-heading:"Inter", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--h1-size:36px;--h2-size:26px;--h3-size:20px;--h4-size:18px;--body-text-size:16px;--small-text-size:14px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--border-radius-small:4px;--border-radius:6px;--border-radius-large:12px;--border-color:var(--melior-gray);--border-color-light:#ffffff0d;--border-color-focus:var(--melior-green);--dense-text-size:13px;--dense-small-size:12px;--dense-label-size:11px;--control-font-size:var(--body-text-size);--control-padding-y:var(--spacing-md);--control-padding-x:var(--spacing-lg);--control-border-width:2px;--control-border-color:var(--border-color-light);--control-radius:var(--border-radius-large);--control-shadow:0 2px 4px #0000001a;--control-shadow-hover:0 4px 8px #00000026;--label-font-size:var(--small-text-size);--label-gap:var(--spacing-sm);--btn-font-size:var(--body-text-size);--btn-sm-padding:var(--spacing-xs) var(--spacing-md);--btn-sm-font-size:var(--small-text-size);--z-dropdown:1000;--z-modal:1050;--lightning-protection:#40a0ff4d;--lightning-equipment:#ff6b6b;--lightning-terrain:#4a6741}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--body-text-size);color:var(--melior-text-primary);background-color:var(--melior-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}h1{font-size:var(--h1-size);margin-bottom:var(--spacing-lg);font-weight:700;line-height:1.2}h2{font-size:var(--h2-size);margin-bottom:var(--spacing-md);font-weight:600;line-height:1.3}h3{font-size:var(--h3-size);margin-bottom:var(--spacing-md);font-weight:600;line-height:1.4}a{color:var(--melior-green);text-decoration:none;transition:color .2s}a:hover{color:var(--melior-green-hover)}.btn{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--btn-font-size);border-radius:var(--border-radius);cursor:pointer;font-weight:500;font-family:var(--font-body);white-space:nowrap;border:none;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.btn-primary{background-color:var(--melior-green);color:var(--melior-dark)}.btn-primary:hover{background-color:var(--melior-green-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--melior-text-primary);border:1px solid var(--border-color-light);background-color:#0000}.btn-secondary:hover{background-color:var(--melior-surface);border-color:var(--melior-gray)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-icon{padding:var(--spacing-sm);color:var(--melior-text-secondary);background:0 0;border:1px solid #0000}.btn-icon:hover{color:var(--melior-text-primary);background-color:var(--melior-surface);border-color:var(--border-color-light)}.btn-icon.active{background-color:var(--melior-green);color:var(--melior-dark);border-color:var(--melior-green)}.btn-sm{padding:var(--btn-sm-padding);font-size:var(--btn-sm-font-size)}.btn-block{justify-content:center;width:100%}.btn-tab{color:var(--melior-text-secondary);padding:var(--spacing-sm) var(--spacing-md);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0}.btn-tab:hover:not(:disabled){color:var(--melior-text-primary);background-color:var(--overlay-white-5)}.btn-tab.active{color:var(--melior-green);border-bottom-color:var(--melior-green)}.btn-chip{background-color:var(--overlay-white-5);color:var(--melior-text-secondary);border:1px solid var(--border-color-light);padding:var(--spacing-xs) var(--spacing-sm);border-radius:999px;font-size:12px;line-height:1.2}.btn-chip.active{background-color:var(--melior-green-20);color:var(--melior-green);border-color:var(--melior-green-40)}.form-label{margin-bottom:var(--label-gap);color:var(--melior-text-secondary);font-weight:500;font-size:var(--label-font-size);display:block}.form-control{width:100%;padding:var(--control-padding-y) var(--control-padding-x);background-color:var(--melior-surface);border:var(--control-border-width) solid var(--control-border-color);border-radius:var(--control-radius);color:var(--melior-text-primary);font-size:var(--control-font-size);font-family:var(--font-body);box-shadow:var(--control-shadow);transition:border-color .2s,box-shadow .2s}.form-control:hover{border-color:var(--melior-gray);box-shadow:var(--control-shadow-hover)}.form-control:focus{border-color:var(--melior-green);box-shadow:0 0 0 3px var(--melior-green-20);outline:none}.form-control::placeholder{color:var(--melior-text-secondary)}.form-control:disabled{opacity:.5;cursor:not-allowed}.dropdown-select{width:100%;padding:var(--control-padding-y) calc(var(--control-padding-x) * 2.5) var(--control-padding-y) var(--control-padding-x);background-color:var(--melior-surface);border:var(--control-border-width) solid var(--control-border-color);border-radius:var(--control-radius);color:var(--melior-text-primary);font-size:var(--control-font-size);font-family:var(--font-body);cursor:pointer;appearance:none;transition:border-color .2s}.dropdown-select:hover{border-color:var(--melior-gray)}.dropdown-select:focus{border-color:var(--melior-green);box-shadow:0 0 0 3px var(--melior-green-20);outline:none}select:not([multiple]):not([size]){appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B0B0B0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:14px;padding-right:34px}.dropdown-input{width:100%;padding:var(--control-padding-y) calc(var(--control-padding-x) * 2.5) var(--control-padding-y) var(--control-padding-x);background-color:var(--melior-surface);border:var(--control-border-width) solid var(--control-border-color);border-radius:var(--control-radius);color:var(--melior-text-primary);font-size:var(--control-font-size);font-family:var(--font-body)}.dropdown-input:focus{border-color:var(--melior-green);box-shadow:0 0 0 3px var(--melior-green-20);outline:none}.dropdown-results{margin-top:var(--spacing-xs);background-color:var(--melior-surface);border:2px solid var(--border-color-light);border-radius:var(--border-radius-large);box-shadow:0 8px 24px var(--overlay-black-30);z-index:var(--z-dropdown);max-height:300px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.dropdown-item{align-items:flex-start;gap:var(--spacing-xs);padding:var(--spacing-md);cursor:pointer;border-bottom:1px solid var(--border-color-light);flex-direction:column;transition:background-color .2s;display:flex}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background-color:var(--melior-green-15)}.dropdown-item.is-selected{background-color:var(--melior-green-20);border-left:3px solid var(--melior-green)}.dropdown-item .item-name{color:var(--melior-text-primary);font-weight:500}.dropdown-item .item-detail{color:var(--melior-text-secondary);font-size:var(--small-text-size)}.m-compact,.m-input-compact,.dropdown-compact{--control-font-size:var(--dense-text-size);--control-padding-y:7px;--control-padding-x:10px;--control-border-width:1px;--control-border-color:var(--melior-border);--control-radius:var(--border-radius);--control-shadow:none;--control-shadow-hover:none;--label-font-size:var(--dense-small-size);--label-gap:5px;--btn-font-size:var(--dense-text-size);--btn-sm-padding:6px 10px;--btn-sm-font-size:var(--dense-small-size)}.spinner{border:2px solid var(--overlay-white-30);border-top-color:var(--melior-green);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;display:inline-block}.spinner-sm{border-width:2px;width:16px;height:16px}@keyframes spin{to{transform:rotate(360deg)}}.card{background-color:var(--melior-surface);border-radius:var(--border-radius-large);border:1px solid var(--border-color-light);position:relative;overflow:hidden}.card-header{border-bottom:1px solid var(--border-color-light)}.card-footer{border-top:1px solid var(--border-color-light)}.modal-overlay{background-color:var(--overlay-black-70);z-index:var(--z-modal);padding:var(--spacing-lg);inset:0}.modal-content{background-color:var(--melior-surface);border-radius:var(--border-radius-large);box-shadow:0 20px 60px var(--overlay-black-50);flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex}.modal-header{border-bottom:1px solid var(--border-color-light)}.modal-footer{border-top:1px solid var(--border-color-light)}.modal-sm{max-width:400px}.modal-lg{max-width:800px}.flex{display:flex}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:var(--spacing-sm)}.gap-3{gap:var(--spacing-md)}.p-3{padding:var(--spacing-md)}.p-5{padding:var(--spacing-lg)}.m-0{margin:0}.w-full{width:100%}.text-sm{font-size:var(--small-text-size)}.text-secondary{color:var(--melior-text-secondary)}.text-primary{color:var(--melior-text-primary)}.text-green{color:var(--melior-green)}.font-semibold{font-weight:600}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.cursor-pointer{cursor:pointer}.transition{transition:all .2s}.inline-flex{display:inline-flex}.inline-block{display:inline-block}.flex-col{flex-direction:column}.flex-shrink-0{flex-shrink:0}.justify-center{justify-content:center}.gap-1{gap:var(--spacing-xs)}.p-4{padding:var(--spacing-md)}.mb-1{margin-bottom:var(--spacing-xs)}.mt-1{margin-top:var(--spacing-xs)}.inset-0{inset:0}.rounded{border-radius:var(--border-radius)}.rounded-full{border-radius:9999px}.font-medium{font-weight:500}.text-right{text-align:right}.whitespace-nowrap{white-space:nowrap}.opacity-0{opacity:0}.pointer-events-none{pointer-events:none}.select-none{-webkit-user-select:none;user-select:none}.cursor-default{cursor:default}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#app{min-height:100%}body{margin:0}button,input,select,textarea{font:inherit}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{align-items:center;gap:var(--spacing-lg);padding:10px var(--spacing-lg);background:var(--melior-dark);border-bottom:1px solid var(--melior-border);display:flex}.app-header h1{color:var(--melior-green);letter-spacing:-.4px;margin:0;font-size:18px;font-weight:700}.app-nav{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.app-nav .btn{font-size:12px;text-decoration:none}.app-auth-actions{align-items:center;gap:var(--spacing-sm);margin-left:auto;display:flex}.app-auth-user{max-width:240px;color:var(--melior-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.app-auth-message{padding:var(--spacing-sm) var(--spacing-lg) 0}.app-main{padding:var(--spacing-xl);flex:1}.bim-shell{height:100dvh;min-height:0}.bim-shell .app-main{min-height:0;padding:0;overflow:auto}@media (width<=800px){.app-header{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);flex-direction:column}.app-nav .btn{padding:6px 8px}.app-auth-actions{margin-left:0}}.bim-shell,.bim-shell .app-main{position:relative;overflow:hidden}.bim-shell .app-auth-message{z-index:65;position:absolute;top:72px;left:12px;right:12px}.login-shell .app-main{padding:0}.app-nav .btn.active{border-color:var(--melior-green);color:var(--melior-green)}.app-header.is-autohide{z-index:90;box-shadow:0 4px 12px var(--overlay-black-40);transition:transform .18s ease-out;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.app-header.is-autohide.is-revealed{transform:none}.app-header-reveal{z-index:89;height:6px;position:fixed;top:0;left:0;right:0}@media (prefers-reduced-motion:reduce){.app-header.is-autohide{transition:none}}.m-icon{vertical-align:middle;flex:none}.btn-loading{cursor:wait;opacity:.7}.btn.btn-link{color:var(--melior-text-primary);font:inherit;text-align:left;white-space:inherit;background:0 0;border:0;border-radius:0;padding:0}.btn.btn-link:hover:not(:disabled){color:var(--melior-green);text-decoration:underline}.btn.btn-link:disabled{color:var(--melior-text-secondary);cursor:default}.btn-text{align-items:center;gap:4px;display:inline-flex}.btn-danger{background-color:var(--status-error);color:var(--melior-white)}.btn-danger:hover:not(:disabled){background-color:var(--status-error-text)}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-icon.btn-ghost{color:var(--melior-text-secondary);background:0 0;border:none}.btn-icon.btn-ghost:hover:not(:disabled){color:var(--melior-text-primary);background-color:var(--overlay-white-5)}.btn-lg{padding:var(--spacing-md,16px) var(--spacing-xl,32px);font-size:18px}.btn:disabled{opacity:.5;cursor:not-allowed}.alert{border-left:4px solid}.alert-icon{font-size:20px}.alert-message{line-height:1.5}.alert-close{color:inherit;opacity:.7;background:0 0;border:none;padding:0;font-size:18px}.alert-close:hover{opacity:1}.alert-success{background-color:var(--status-success-15);border-left-color:var(--status-success);color:var(--status-success-text)}.alert-warning{background-color:var(--status-warning-15);border-left-color:var(--status-warning);color:var(--status-warning-text)}.alert-error{background-color:var(--status-error-15);border-left-color:var(--status-error);color:var(--status-error-text)}.alert-info{background-color:var(--status-info-15);border-left-color:var(--status-info);color:var(--status-info-text)}.pcx{align-items:center;gap:6px;min-width:0;margin:0;font-size:12px;display:inline-flex}.pcx-icon{color:var(--melior-green);flex:none}.pcx-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:260px;color:var(--melior-text-primary);font-weight:500;overflow:hidden}.pcx-chip{background:var(--melior-green-15);color:var(--melior-green);font-family:var(--melior-font-mono,ui-monospace, monospace);white-space:nowrap;border-radius:4px;flex:none;padding:1px 6px;font-size:11px}
