.login-container{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 80% -10%,rgba(31,168,91,.1),transparent 60%),radial-gradient(900px 500px at -10% 100%,rgba(31,168,91,.08),transparent 60%),var(--brand-white);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative;overflow:hidden}.login-background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.gradient-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.18}.blob-1{width:360px;height:360px;background:var(--brand-green);top:-80px;left:-80px}.blob-2{width:320px;height:320px;background:var(--brand-green-light);top:50%;right:-120px;animation:float 8s ease-in-out infinite}.blob-3{width:280px;height:280px;background:var(--brand-green-dark);bottom:-80px;left:45%;animation:float 10s ease-in-out infinite reverse;opacity:.12}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(28px)}}.login-card{position:relative;z-index:10;background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:18px;padding:44px 40px 36px;width:100%;max-width:440px;box-shadow:0 30px 60px -20px #0a0a0a2e,0 8px 24px -8px #1fa85b1a}.logo-section{text-align:center;margin-bottom:28px}.brand-logo{width:140px;height:auto;display:block;margin:0 auto 14px;-webkit-user-select:none;user-select:none}.tagline{font-size:14px;color:var(--brand-grey-700);margin:6px 0 0;font-weight:600;letter-spacing:.2px}.vision{font-size:11px;color:var(--brand-grey-500);margin:4px 0 0;font-weight:500;letter-spacing:1px;text-transform:uppercase}.mode-toggle{display:flex;gap:4px;margin-bottom:24px;background:var(--brand-grey-100);border-radius:10px;padding:4px}.toggle-btn{flex:1;padding:10px 16px;border:none;background:transparent;border-radius:7px;font-size:13px;font-weight:600;color:var(--brand-grey-600);cursor:pointer;transition:all .18s}.toggle-btn.active{background:var(--brand-green);color:var(--brand-green-on);box-shadow:0 1px 3px #0a0a0a14}.toggle-btn:hover:not(.active){color:var(--brand-green-on);background:var(--brand-green-light)}form{display:flex;flex-direction:column;gap:14px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:12px;font-weight:600;color:var(--brand-grey-700);text-transform:uppercase;letter-spacing:.6px}.form-group input{padding:11px 13px;border:1px solid var(--brand-grey-200);border-radius:8px;font-size:14px;font-family:inherit;background:var(--brand-grey-50);color:var(--brand-black);transition:all .18s}.form-group input:hover{border-color:var(--brand-green-light)}.form-group input:focus{outline:none;border-color:var(--brand-green);background:var(--brand-white);box-shadow:var(--focus-ring)}.form-group input:disabled{background:var(--brand-grey-100);color:var(--brand-grey-500);cursor:not-allowed}.submit-btn{padding:12px 16px;background:var(--brand-green);color:var(--brand-green-on);border:1px solid var(--brand-green-dark);border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .22s;margin-top:6px;letter-spacing:.3px}.submit-btn:hover:not(:disabled){background:var(--brand-green-dark);transform:translateY(-1px);box-shadow:0 12px 24px -8px #c1ff72a6}.submit-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 10px -4px #1fa85b73}.submit-btn:disabled{opacity:.55;cursor:not-allowed}.proto-hint{text-align:center;margin-top:14px;font-size:12px;color:var(--brand-grey-500)}.proto-hint strong{color:var(--brand-green-on);background:var(--brand-green);padding:1px 6px;border-radius:4px;font-weight:700}.cde-page{display:flex;height:100%;gap:16px}.cde-page .cde-main{flex:1;display:flex;flex-direction:column;gap:16px;min-width:0}.cde-toolbar{background:var(--brand-white);border-radius:12px;padding:14px 16px;border:1px solid var(--brand-grey-200);display:flex;align-items:center;gap:24px;flex-wrap:wrap;box-shadow:var(--shadow-sm)}.btn.is-on{background:var(--brand-green);color:var(--brand-green-on);border-color:var(--brand-green-dark)}.breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.breadcrumbs button{background:none;border:none;color:var(--brand-grey-700);cursor:pointer;font-size:13px;font-weight:600;padding:4px 6px;border-radius:6px;transition:all .18s}.breadcrumbs button:hover{color:var(--brand-green-on);background:var(--brand-green)}.breadcrumbs span{color:var(--brand-grey-300)}.toolbar-actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:8px;background:var(--brand-grey-100);border:1px solid var(--brand-grey-200);border-radius:8px;padding:8px 12px;min-width:220px;color:var(--brand-grey-600);transition:all .18s}.search-box:focus-within{background:var(--brand-white);border-color:var(--brand-green);box-shadow:var(--focus-ring)}.search-box input{flex:1;border:none;background:none;outline:none;font-size:14px;font-family:Inter,sans-serif}.view-toggle{display:flex;gap:4px;background:var(--brand-grey-100);padding:4px;border-radius:8px}.view-btn{padding:6px 10px;border:none;background:transparent;color:var(--brand-grey-600);cursor:pointer;border-radius:6px;transition:all .18s}.view-btn:hover{background:var(--brand-green-light);color:var(--brand-green-on)}.view-btn.active{background:var(--brand-green);color:var(--brand-green-on);box-shadow:0 1px 2px #0a0a0a14}.btn{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.btn-primary{background:var(--brand-green);color:var(--brand-green-on);border:1px solid var(--brand-green-dark);box-shadow:0 1px 2px #0a0a0a14}.btn-primary:hover{background:var(--brand-green-dark);transform:translateY(-1px);box-shadow:0 8px 18px -6px #c1ff72a6}.btn-secondary{background:var(--brand-white);color:var(--brand-grey-800);border:1px solid var(--brand-grey-200)}.btn-secondary:hover{background:var(--brand-green);color:var(--brand-green-on);border-color:var(--brand-green-dark)}.files-container{overflow:auto;display:grid;gap:12px;align-content:start;min-height:200px}.files-container.grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-rows:min-content}.files-container.list{grid-template-columns:1fr;grid-auto-rows:min-content}.file-card{background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:all .2s;position:relative}.file-card:hover{border-color:var(--brand-green-dark);background:var(--brand-green-light);box-shadow:0 8px 20px -6px #c1ff728c;transform:translateY(-2px)}.file-card:hover .card-name{color:var(--brand-green-on)}.card-icon{display:flex;align-items:center;justify-content:center;height:56px;color:var(--brand-green);background:var(--brand-green-soft);border-radius:10px}.card-info{flex:1}.card-name{margin:0;font-size:14px;font-weight:600;color:var(--brand-black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{margin:4px 0 0;font-size:12px;color:var(--brand-grey-500)}.card-date{margin:4px 0 0;font-size:11px;color:var(--brand-grey-400)}.status-badge{display:inline-block;font-size:10px;padding:3px 8px;border-radius:3px;font-weight:600;margin-top:8px;text-transform:uppercase}.status-badge.wip{background:#fff4d6;color:#8a6100}.status-badge.shared{background:var(--brand-grey-150);color:var(--brand-grey-800)}.status-badge.published{background:var(--brand-green-tint);color:var(--brand-green-dark)}.card-menu{position:absolute;top:8px;right:8px;background:none;border:none;color:#94a3b8;cursor:pointer;padding:6px;display:none;transition:all .2s}.file-card:hover .card-menu{display:block}.card-menu:hover{color:#1e293b;background:#f1f5f9;border-radius:4px}.file-row{background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:8px;padding:12px 16px;display:grid;grid-template-columns:32px 2fr 1fr 1fr 1fr 1fr;align-items:center;gap:16px;cursor:pointer;transition:all .18s}.file-row:hover{background:var(--brand-green);border-color:var(--brand-green-dark);color:var(--brand-green-on)}.file-row:hover .row-name,.file-row:hover .row-type,.file-row:hover .row-size,.file-row:hover .row-date{color:var(--brand-green-on)}.row-icon{display:flex;align-items:center;color:var(--brand-green)}.row-name{font-weight:600;color:var(--brand-black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-type{color:var(--brand-grey-500);font-size:12px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.row-size{color:var(--brand-grey-500);font-size:13px}.row-status{font-size:12px;font-weight:600;padding:2px 8px;border-radius:3px;text-transform:uppercase}.row-status.wip{background:#fff4d6;color:#8a6100}.row-status.shared{background:var(--brand-grey-150);color:var(--brand-grey-800)}.row-status.published{background:var(--brand-green-tint);color:var(--brand-green-dark)}.row-date{color:var(--brand-grey-400);font-size:12px;text-align:right}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:#94a3b8}.empty-state p{margin-top:16px;font-size:16px}.loading{grid-column:1 / -1;text-align:center;padding:48px;color:#94a3b8}.context-menu{position:fixed;background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:10px;box-shadow:var(--shadow-lg);z-index:1000;min-width:160px;padding:6px}.context-menu button{display:block;width:100%;padding:9px 12px;border:none;background:none;text-align:left;color:var(--brand-black);cursor:pointer;font-size:13px;border-radius:6px;transition:all .15s}.context-menu button:hover{background:var(--brand-green);color:var(--brand-green-on)}.context-menu button.delete:hover{background:#fde3e3;color:#9a2222}.context-menu hr{margin:4px 6px;border:none;border-top:1px solid var(--brand-grey-200)}.iso-panel{width:320px;flex-shrink:0;background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px;align-self:flex-start;position:sticky;top:0;max-height:calc(100vh - 120px);overflow-y:auto;box-shadow:var(--shadow-sm)}.iso-panel-header h3{margin:0;font-size:14px;font-weight:700;color:var(--brand-black);letter-spacing:-.2px}.iso-panel-header p{margin:3px 0 0;font-size:11px;color:var(--brand-grey-500);text-transform:uppercase;letter-spacing:.7px;font-weight:600}.iso-tree{display:flex;flex-direction:column;gap:6px}.iso-node{position:relative}.iso-pill{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:10px;background:var(--brand-grey-50);border:1px solid transparent;transition:all .15s}.iso-pill:hover{background:var(--brand-green-light);border-color:var(--brand-green)}.iso-pill.current{background:var(--brand-green);border-color:var(--brand-green-dark);color:var(--brand-green-on)}.iso-pill.current .iso-label,.iso-pill.current .iso-desc{color:var(--brand-green-on)}.iso-bullet{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:0 8px;border-radius:999px;color:var(--brand-white);font-size:11px;font-weight:700;letter-spacing:.4px;flex-shrink:0}.iso-text{flex:1;min-width:0}.iso-label{font-size:13px;font-weight:600;color:var(--brand-black)}.iso-desc{margin-top:2px;font-size:11px;color:var(--brand-grey-600);line-height:1.4}.iso-you{flex-shrink:0;font-size:10px;font-weight:800;background:var(--brand-black);color:var(--brand-green);padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.5px;align-self:center}.iso-you.small{font-size:9px;padding:2px 6px}.iso-children{margin-top:4px;padding-left:12px;border-left:2px dashed var(--brand-grey-200)}.iso-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--brand-grey-500);margin-top:4px;padding-top:12px;border-top:1px solid var(--brand-grey-150)}.iso-support{display:flex;flex-direction:column;gap:4px}.iso-support-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;background:transparent;transition:all .15s}.iso-support-row:hover{background:var(--brand-green-light)}.iso-support-row.current{background:var(--brand-green);color:var(--brand-green-on)}.iso-support-row.current .iso-support-label,.iso-support-row.current .iso-support-short{color:var(--brand-green-on)}.iso-support-row .icon{color:var(--brand-green-deep);width:16px;height:16px;flex-shrink:0}.iso-support-text{flex:1;min-width:0}.iso-support-label{font-size:12px;font-weight:600;color:var(--brand-black)}.iso-support-short{font-size:10px;color:var(--brand-grey-500);text-transform:uppercase;letter-spacing:.5px}.iso-footer{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--brand-grey-50);border-radius:10px;margin-top:4px}.iso-footer .icon{color:var(--brand-green-deep);width:18px;height:18px}.iso-footer-name{font-size:12px;font-weight:700;color:var(--brand-black)}.iso-footer-org{font-size:11px;color:var(--brand-grey-600);margin-top:2px}@media (max-width: 1024px){.iso-panel{width:280px}}@media (max-width: 880px){.cde-page{flex-direction:column}.iso-panel{width:100%;max-height:none;position:static}}.gx-root{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.gx-panel{position:absolute;top:12px;right:12px;width:272px;background:#0c0e0de6;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border:1px solid #2A2E2B;border-radius:10px;padding:8px;color:#d6d6d6;pointer-events:auto;box-shadow:0 8px 28px #0000006b}.gx-panel-head{display:flex;align-items:center;gap:7px;padding:2px 2px 8px;color:#c1ff72}.gx-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;flex:1}.gx-close{background:none;border:none;color:#8a8a8e;cursor:pointer;padding:2px;display:flex;border-radius:4px}.gx-close:hover{color:#fff;background:#ffffff14}.gx-cam{width:100%;height:auto;display:block;border-radius:6px;background:#000;transform:scaleX(-1)}.gx-loading,.gx-error{font-size:11.5px;line-height:1.45;padding:8px;border-radius:6px;margin-bottom:6px}.gx-loading{background:#ffffff0d;color:#8a8a8e}.gx-error{background:#d96a5c21;color:#e8a79c;display:flex;gap:7px;align-items:flex-start}.gx-error svg{flex-shrink:0;margin-top:1px}.gx-blocked{display:flex;flex-direction:column;gap:6px}.gx-blocker{background:#e0a94a1c;border-left:2px solid #E0A94A;border-radius:5px;padding:8px 9px}.gx-blocker-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#e0a94a;letter-spacing:.04em;text-transform:uppercase}.gx-blocker p{margin:5px 0 0;font-size:11px;line-height:1.45;color:#b9a282}.gx-blocker p.gx-blocker-fix{color:#d6d6d6}.gx-state{display:flex;align-items:center;gap:7px;margin-top:7px;padding:6px 8px;border-radius:6px;background:#ffffff0d;font-size:12px;font-weight:600}.gx-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.gx-go .gx-dot{background:#a2d660;box-shadow:0 0 7px #a2d660cc}.gx-hold .gx-dot{background:#e0a94a}.gx-go .gx-state-label{color:#c1ff72}.gx-hold .gx-state-label{color:#e0a94a}.gx-state-label{flex:1}.gx-fps{font-family:IBM Plex Mono,monospace;font-size:10px;color:#6d7071}.gx-action{margin-top:5px;padding:4px 8px;font-size:11px;color:#8a8a8e;font-family:IBM Plex Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gx-help-toggle{margin-top:7px;width:100%;display:flex;align-items:center;gap:6px;background:#ffffff0d;border:none;border-radius:5px;color:#8a8a8e;font-size:10.5px;font-weight:700;padding:6px 8px;cursor:pointer;letter-spacing:.05em;text-transform:uppercase}.gx-help-toggle span{flex:1;text-align:left}.gx-help-toggle em{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:9.5px;padding:1px 5px;border-radius:3px;background:#ffffff12;color:#6d7071}.gx-help-toggle:hover{color:#fff;background:#ffffff17}.gx-help-toggle.on{color:#c1ff72;background:#c1ff721a}.gx-help-toggle.on em{background:#c1ff7229;color:#c1ff72}.gx-cheat-wrap{max-height:300px;overflow-y:auto;margin-top:6px}.gx-cheat-wrap::-webkit-scrollbar{width:5px}.gx-cheat-wrap::-webkit-scrollbar-thumb{background:#2f332f;border-radius:3px}.gx-intro{margin:0 0 7px;padding:7px 8px;background:#c1ff7217;border-radius:6px;font-size:10.5px;line-height:1.5;color:#b9ce97}.gx-cheat{list-style:none;margin:0;padding:0}.gx-cheat li{display:flex;align-items:center;gap:8px;padding:5px 2px;border-top:1px solid rgba(255,255,255,.05)}.gx-cheat li b{flex-shrink:0;width:14px;height:14px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;background:#ffffff12;color:#8a8a8e}.gx-cheat li b.two{background:#c1ff7226;color:#c1ff72}.gx-cheat-txt{flex:1;min-width:0;display:flex;flex-direction:column}.gx-cheat-txt em{color:#d6d6d6;font-style:normal;font-weight:600;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gx-cheat-txt span{color:#6d7071;font-size:10px;line-height:1.35}.gg{flex-shrink:0;color:#c1ff72;overflow:visible;background:#ffffff09;border-radius:4px}.gg .gg-stroke{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.gg .gg-fill{fill:currentColor;stroke:none}.gg .gg-cube{color:#8a8a8e;stroke-width:2}.gg .gg-arrow{color:#4e5450;stroke-width:1.8}.gg .gg-zone{color:#33382f;stroke-width:1.6;stroke-dasharray:3 3}.gg .gg-accent{color:#c1ff72;stroke-width:1.8}.gg .gg-dim{opacity:.3}.gg g[class*=gg-anim-]{transform-box:fill-box;transform-origin:center}.gg .gg-anim-x{animation:gg-x 2.4s ease-in-out infinite}.gg .gg-anim-rise{animation:gg-rise 2.4s ease-in-out infinite}.gg .gg-anim-spin{animation:gg-spin 2.4s ease-in-out infinite}.gg .gg-anim-grow{animation:gg-grow 2.4s ease-in-out infinite}.gg .gg-anim-shrink{animation:gg-shrink 2.4s ease-in-out infinite}.gg .gg-anim-in-l{animation:gg-in-l 2.4s ease-in-out infinite}.gg .gg-anim-in-r{animation:gg-in-r 2.4s ease-in-out infinite}.gg .gg-anim-frame{animation:gg-frame 2.4s ease-in-out infinite}@keyframes gg-x{0%,to{transform:translate(-5px)}50%{transform:translate(5px)}}@keyframes gg-rise{0%,15%{transform:translateY(14px);opacity:0}45%,to{transform:translateY(0);opacity:1}}@keyframes gg-spin{0%,to{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}@keyframes gg-grow{0%,to{transform:scale(.62)}50%{transform:scale(1.06)}}@keyframes gg-shrink{0%,to{transform:scale(1.06)}50%{transform:scale(.62)}}@keyframes gg-in-l{0%,to{transform:translate(-6px)}50%{transform:translate(3px)}}@keyframes gg-in-r{0%,to{transform:translate(6px)}50%{transform:translate(-3px)}}@keyframes gg-frame{0%,to{opacity:.25;transform:scaleX(1.25)}50%{opacity:1;transform:scaleX(.8)}}@media (prefers-reduced-motion: reduce){.gg g[class*=gg-anim-]{animation:none!important}}.gx-boxreadout{position:absolute;left:50%;bottom:26px;transform:translate(-50%);background:#0c0e0de6;border:1px solid #2A2E2B;border-radius:9px;padding:9px 16px;text-align:center;color:#d6d6d6;font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.gx-boxreadout strong{color:#c1ff72;font-size:17px;font-weight:800}.gx-boxreadout small{display:block;color:#6d7071;font-size:10px;margin-top:3px}.gx-dwellbar{height:3px;width:128px;margin:7px auto 0;background:#ffffff1a;border-radius:2px;overflow:hidden}.gx-dwellbar i{display:block;height:100%;background:#c1ff72;transition:width .08s linear}.triage-page{height:100%;overflow:auto}.triage-container{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 2fr;gap:24px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:#94a3b8;grid-column:1 / -1}.empty-state p{margin-top:16px;font-size:14px}.control-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px;height:fit-content;position:sticky;top:0}.control-panel h3{margin:0 0 8px;font-size:16px;color:#1e293b}.model-name{color:#64748b;font-size:13px;margin:0 0 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-run{width:100%;padding:10px 16px;background:linear-gradient(135deg,#1b3f8b,#009cde);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.btn-run:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #009cde4d}.btn-run:disabled{opacity:.6;cursor:not-allowed}.results-section{grid-column:2;display:flex;flex-direction:column;gap:24px}.health-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:24px;display:flex;gap:32px;align-items:center}.health-score{flex-shrink:0}.health-info{flex:1}.health-info h3{margin:0 0 8px;font-size:16px;color:#1e293b}.health-band{font-size:18px;font-weight:700;margin:0 0 16px}.health-band.good{color:#10b981}.health-band.warning{color:#f59e0b}.health-band.critical{color:#dc2626}.summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:13px}.summary p{margin:0;color:#64748b}.summary strong{color:#1e293b;font-weight:600}.export-buttons{display:flex;gap:10px}.export-buttons button{flex:1;padding:10px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s;color:#1e293b}.export-buttons button:hover{border-color:#009cde;color:#009cde;background:#f0f9ff}.issues-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.issues-section h3{margin:0 0 16px;font-size:16px;color:#1e293b}.no-issues{color:#10b981;font-size:14px;margin:0;padding:16px;background:#f0fdf4;border-radius:6px;border-left:3px solid #10b981}.issue-item{border:1px solid #e2e8f0;border-radius:6px;margin-bottom:12px;cursor:pointer;transition:all .2s;overflow:hidden}.issue-item:hover{border-color:#d1d5db}.issue-item.critical{border-left:3px solid #dc2626}.issue-item.warning{border-left:3px solid #f59e0b}.issue-item.info{border-left:3px solid #3b82f6}.issue-header{display:flex;align-items:center;gap:12px;padding:12px;background:#f8fafc}.issue-icon{display:flex;align-items:center;flex-shrink:0}.issue-item.critical .issue-icon{color:#dc2626}.issue-item.warning .issue-icon{color:#f59e0b}.issue-item.info .issue-icon{color:#3b82f6}.issue-info{flex:1}.issue-info h4{margin:0;font-size:14px;color:#1e293b;font-weight:600}.issue-info p{margin:2px 0 0;font-size:12px;color:#64748b}.severity-badge{font-size:10px;padding:4px 8px;border-radius:3px;font-weight:600;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.severity-badge.critical{background:#fee2e2;color:#dc2626}.severity-badge.warning{background:#fef3c7;color:#92400e}.severity-badge.info{background:#dbeafe;color:#0c4a6e}.chevron{flex-shrink:0;transition:transform .2s}.chevron.open{transform:rotate(180deg)}.issue-details{padding:16px;background:#fff;border-top:1px solid #e2e8f0}.description{margin:0 0 12px;color:#475569;font-size:13px;line-height:1.5}.elements-list h5{margin:0 0 8px;font-size:12px;color:#1e293b;font-weight:600;text-transform:uppercase}.elements-list ul{margin:0;padding:0;list-style:none}.elements-list li{padding:4px 0;color:#64748b;font-size:12px;font-family:Monaco,monospace}.elements-list li.more{color:#94a3b8;font-style:italic}.custom-checks-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px;grid-column:1;height:fit-content}.custom-checks-panel h3{margin:0 0 16px;font-size:16px;color:#1e293b}.check-form{display:flex;flex-direction:column;gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:12px;font-weight:600;color:#1e293b}.form-group input{padding:8px 10px;border:1px solid #e2e8f0;border-radius:4px;font-size:13px;font-family:Inter,sans-serif;background:#f8fafc}.form-group input:focus{outline:none;border-color:#009cde;background:#fff}.btn-secondary{padding:10px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;color:#1e293b;transition:all .2s}.btn-secondary:hover{border-color:#009cde;color:#009cde;background:#f0f9ff}@media (max-width: 1024px){.triage-container{grid-template-columns:1fr}.results-section,.custom-checks-panel{grid-column:1}.health-card{flex-direction:column;text-align:center}}.module-page{display:flex;flex-direction:column;height:100%;gap:24px;overflow:auto}.module-page.full-height{height:auto;padding:0}.module-header{background:#fff;border-radius:8px;padding:24px;border:1px solid #e2e8f0}.module-header h2{margin:0 0 4px;font-size:24px;color:#1e293b;font-weight:700}.module-header p{margin:0;color:#64748b;font-size:14px}.module-content{flex:1;background:#fff;border-radius:8px;padding:24px;border:1px solid #e2e8f0;overflow:auto}.tab-navigation{display:flex;gap:12px;background:#fff;border-radius:8px;padding:12px;border:1px solid #e2e8f0}.tab{padding:10px 16px;border:none;background:transparent;color:#64748b;cursor:pointer;font-size:14px;font-weight:500;border-radius:6px;transition:all .2s}.tab:hover{color:#1e293b;background:#f1f5f9}.tab.active{background:linear-gradient(135deg,#1b3f8b,#009cde);color:#fff}.checks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.check-card{border:1px solid #e2e8f0;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px;transition:all .2s}.check-card:hover{border-color:#009cde;box-shadow:0 4px 12px #009cde1a}.check-card.pass{background:#f0fdf4;border-left:3px solid #10b981}.check-card.warning{background:#fef3c7;border-left:3px solid #f59e0b}.check-card.fail{background:#fee2e2;border-left:3px solid #dc2626}.check-header{display:flex;align-items:center;justify-content:space-between}.check-id{font-size:11px;font-weight:700;text-transform:uppercase;color:#64748b}.check-card .icon{width:20px;height:20px}.check-card .icon.pass{color:#10b981}.check-card .icon.warning{color:#f59e0b}.check-card .icon.fail{color:#dc2626}.check-card h3{margin:0;font-size:14px;color:#1e293b;font-weight:600}.check-card p{margin:0;font-size:12px;color:#64748b}.check-card .status{align-self:flex-start;font-size:10px;font-weight:700;text-transform:uppercase;padding:4px 8px;border-radius:3px}.check-card.pass .status{background:#dcfce7;color:#15803d}.check-card.warning .status{background:#fcdab7;color:#92400e}.check-card.fail .status{background:#fecaca;color:#991b1b}.legal-section{display:grid;grid-template-columns:200px 1fr;gap:24px}.region-selector{display:flex;flex-direction:column;gap:8px;background:#f8fafc;padding:12px;border-radius:8px;height:fit-content}.region-btn{padding:10px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;color:#64748b;transition:all .2s}.region-btn:hover{border-color:#009cde}.region-btn.active{background:linear-gradient(135deg,#1b3f8b,#009cde);color:#fff;border:none}.regulations-list h3{margin:0 0 16px;font-size:16px;color:#1e293b}.regulation-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:8px}.reg-header{display:flex;align-items:center;gap:10px}.regulation-item .icon{width:18px;height:18px}.regulation-item.pass .icon{color:#10b981}.regulation-item.warning .icon{color:#f59e0b}.regulation-item.fail .icon{color:#dc2626}.regulation-item .badge{font-size:10px;padding:4px 8px;border-radius:3px;font-weight:600;text-transform:uppercase}.regulation-item.pass .badge{background:#dcfce7;color:#15803d}.regulation-item.warning .badge{background:#fef3c7;color:#92400e}.regulation-item.fail .badge{background:#fee2e2;color:#dc2626}.ids-container{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ids-editor{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.ids-editor h3{margin:0 0 16px;font-size:16px;color:#1e293b}.rules-list{margin-bottom:24px;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;max-height:400px;overflow-y:auto}.rule-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid #e2e8f0;font-size:12px}.rule-item:last-child{border-bottom:none}.rule-content{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rule-num{background:#f1f5f9;padding:2px 6px;border-radius:3px;font-weight:600;color:#64748b}.rule-entity{background:#dbeafe;color:#0c4a6e;padding:2px 6px;border-radius:3px;font-weight:500}.rule-prop{color:#64748b}.rule-value{background:#dcfce7;color:#15803d;padding:2px 6px;border-radius:3px;font-weight:500}.btn-remove{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;transition:color .2s}.btn-remove:hover{color:#dc2626}.new-rule-form{margin-bottom:20px;padding:16px;background:#f8fafc;border-radius:6px}.new-rule-form h4{margin:0 0 12px;font-size:13px;font-weight:600;color:#1e293b}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.form-row input{padding:8px 10px;border:1px solid #e2e8f0;border-radius:4px;font-size:12px;font-family:Inter,sans-serif}.form-row input:focus{outline:none;border-color:#009cde;background:#fff}.btn-add{width:100%;padding:8px;background:linear-gradient(135deg,#1b3f8b,#009cde);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.btn-export{width:100%;padding:10px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;color:#1e293b;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.xml-preview{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.xml-preview h3{margin:0 0 12px}.xml-code{margin:0;background:#1e293b;color:#e2e8f0;padding:12px;border-radius:4px;font-family:Monaco,monospace;font-size:11px;overflow-x:auto;max-height:400px;line-height:1.5}.ids-summary{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px;grid-column:1 / -1}.ids-summary h3{margin:0 0 12px;font-size:16px;color:#1e293b}.ids-summary p{margin:6px 0;font-size:14px;color:#64748b}.ids-summary strong{color:#1e293b}.visual-code-page{height:100%;overflow:auto}.vc-container{display:grid;grid-template-columns:200px 1fr 250px;gap:12px;height:100%;grid-template-rows:1fr auto}.node-library{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px;overflow-y:auto;grid-row:1 / 2}.category h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;color:#64748b;font-weight:600}.node-library-item{padding:8px 10px;border:1px solid #e2e8f0;border-left:3px solid #999;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;color:#1e293b;text-align:left;transition:all .2s}.node-library-item:hover{background:#f8fafc}.canvas-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;position:relative;overflow:hidden;grid-column:2;grid-row:1 / 2}.visual-canvas{display:none}.canvas-content{position:relative;width:100%;height:100%}.visual-node{position:absolute;background:#fff;border:2px solid;border-radius:6px;min-width:120px;cursor:move;box-shadow:0 2px 8px #0000001a}.visual-node.selected{box-shadow:0 4px 12px #009cde4d}.node-header{padding:8px 10px;color:#fff;font-size:12px;font-weight:600;border-radius:4px 4px 0 0}.node-ports{display:flex;justify-content:space-between;align-items:center;padding:8px;min-height:24px}.port{width:8px;height:8px;border-radius:50%;background:#e2e8f0;border:2px solid white}.canvas-controls{position:absolute;bottom:16px;right:16px;display:flex;gap:8px}.canvas-controls .btn{padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;transition:all .2s;color:#1e293b}.canvas-controls .btn:hover{border-color:#009cde;color:#009cde}.output-console{background:#1e293b;border:1px solid #e2e8f0;border-radius:8px;padding:16px;grid-column:3;grid-row:1 / 3;overflow-y:auto}.output-console h3{margin:0 0 12px;color:#fff;font-size:13px;font-weight:600}.console-text{margin:0;color:#10b981;font-family:Monaco,monospace;font-size:11px;line-height:1.6}.analytics-container{display:flex;flex-direction:column;gap:24px}.templates-section{background:#fff;border-radius:8px;padding:20px;border:1px solid #e2e8f0}.templates-section h3{margin:0 0 16px;font-size:16px;color:#1e293b;font-weight:600}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.template-card{padding:14px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s;text-align:left}.template-card:hover{border-color:#009cde;box-shadow:0 2px 8px #009cde1a}.template-card.active{background:linear-gradient(135deg,#1b3f8b14,#009cde14);border-color:#009cde;box-shadow:0 2px 8px #009cde26}.template-card h4{margin:0 0 4px;font-size:13px;font-weight:600;color:#1e293b}.template-card p{margin:0;font-size:11px;color:#94a3b8}.template-preview{background:#fff;border-radius:8px;padding:20px;border:1px solid #e2e8f0}.template-preview h3{margin:0 0 16px;font-size:16px;color:#1e293b;font-weight:600}.builder-controls{background:#fff;border-radius:8px;padding:20px;border:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.control-group{display:flex;flex-direction:column;gap:6px}.control-group label{font-size:12px;font-weight:600;color:#1e293b;text-transform:uppercase;letter-spacing:.3px}.form-select,.form-input{padding:8px 10px;border:1px solid #e2e8f0;border-radius:4px;font-size:13px;font-family:Inter,sans-serif;color:#1e293b;background:#fff}.form-select:focus,.form-input:focus{outline:none;border-color:#009cde;box-shadow:0 0 0 2px #009cde1a}.builder-preview{background:#fff;border-radius:8px;padding:20px;border:1px solid #e2e8f0}.builder-preview h3{margin:0 0 16px;font-size:16px;color:#1e293b;font-weight:600}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:8px;padding:16px;border:1px solid #e2e8f0;margin-bottom:16px}.dashboard-toolbar h3{margin:0;font-size:16px;color:#1e293b;font-weight:600}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.dashboard-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;transition:all .2s}.dashboard-card:hover{border-color:#009cde;box-shadow:0 4px 12px #009cde1a}.card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.card-header h4{margin:0;font-size:13px;color:#1e293b;font-weight:600}.card-actions{display:flex;gap:6px}.btn-icon{background:none;border:none;color:#64748b;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:all .2s;border-radius:4px}.btn-icon:hover{color:#1e293b;background:#fff}.btn-icon.danger:hover{color:#dc2626}.card-body{padding:12px;display:flex;justify-content:center;align-items:center;min-height:250px}.svg-chart{display:block;margin:0 auto;max-width:100%;height:auto}.empty-state{background:#fff;border-radius:8px;padding:40px;border:1px solid #e2e8f0;text-align:center;color:#94a3b8}.report-toolbar{display:flex;gap:8px;align-items:center;background:#fff;border-radius:8px 8px 0 0;padding:12px;border:1px solid #e2e8f0;border-bottom:none}.btn-add{padding:8px 12px;background:linear-gradient(135deg,#1b3f8b,#009cde);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;transition:all .2s}.btn-add:hover{transform:translateY(-1px);box-shadow:0 4px 12px #009cde4d}.btn-export{padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;transition:all .2s;color:#1e293b}.btn-export:hover{border-color:#009cde;color:#009cde;background:#f0f9ff}.report-editor{background:#fff;border:1px solid #e2e8f0;border-radius:0 0 8px 8px;padding:20px;min-height:400px;font-size:14px;color:#1e293b;line-height:1.6;outline:none}.report-editor:focus{border-color:#009cde;box-shadow:inset 0 0 0 1px #009cde1a}.chart-controls{display:flex;gap:12px;background:#fff;border-radius:8px;padding:12px;border:1px solid #e2e8f0}.control-btn{padding:8px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:#1e293b;display:flex;align-items:center;gap:6px;transition:all .2s}.control-btn:hover{border-color:#009cde;color:#009cde}.control-btn.active{background:linear-gradient(135deg,#1b3f8b,#009cde);color:#fff;border:none}.chart-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.chart-section h3{margin:0 0 16px;font-size:16px;color:#1e293b}.chart-container{display:flex;justify-content:center;align-items:center;min-height:300px}.bar-chart{width:100%;display:flex;gap:20px;align-items:flex-end}.bar-item{flex:1;display:flex;flex-direction:column;gap:8px;text-align:center}.bar-label{font-size:12px;color:#64748b;font-weight:500}.bar-container{background:#f1f5f9;border-radius:4px 4px 0 0;min-height:200px;position:relative}.bar-fill{background:linear-gradient(135deg,#1b3f8b,#009cde);border-radius:4px 4px 0 0;height:100%;transition:width .3s}.bar-value{font-size:13px;font-weight:600;color:#1e293b}.pie-chart{display:flex;gap:40px;align-items:center;justify-content:center}.pie-legend{display:flex;flex-direction:column;gap:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#64748b}.legend-item span{width:12px;height:12px;border-radius:2px}.data-table-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.data-table-section h3{margin:0 0 16px;font-size:16px;color:#1e293b}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{background:#f8fafc;padding:10px;text-align:left;font-weight:600;color:#1e293b;border-bottom:1px solid #e2e8f0}.data-table td{padding:10px;border-bottom:1px solid #f1f5f9;color:#64748b}.data-table tr:hover{background:#f8fafc}.version-bridge-container{display:flex;flex-direction:column;gap:24px}.version-selector-section{display:flex;align-items:center;justify-content:center;gap:24px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:32px}.version-box{flex:1;padding:20px;border-radius:8px;text-align:center;border:2px solid #e2e8f0}.version-box.source{border-left:3px solid #3b82f6}.version-box.target{border-left:3px solid #10b981}.version-box h3{margin:0 0 8px;font-size:14px;color:#64748b;text-transform:uppercase;font-weight:600}.version-label{margin:0 0 8px;font-size:24px;font-weight:700;color:#1e293b}.version-info{margin:0;font-size:12px;color:#94a3b8}.version-select{padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;font-family:Inter,sans-serif;color:#1e293b;width:100%}.version-select:focus{outline:none;border-color:#009cde}.arrow-icon{color:#009cde;flex-shrink:0}.mapping-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.mapping-section h3{margin:0 0 16px;font-size:16px;color:#1e293b}.mapping-table-container{overflow-x:auto}.mapping-table{width:100%;border-collapse:collapse;font-size:13px}.mapping-table th{background:#f8fafc;padding:10px;text-align:left;font-weight:600;color:#1e293b;border-bottom:2px solid #e2e8f0}.mapping-table td{padding:12px 10px;border-bottom:1px solid #f1f5f9;color:#64748b}.mapping-table tr:hover{background:#f8fafc}.entity-name{color:#1e293b;font-weight:500;font-family:Monaco,monospace}.badge{font-size:10px;padding:4px 8px;border-radius:3px;font-weight:600;text-transform:uppercase;white-space:nowrap}.status-direct{background:#dcfce7;color:#15803d}.status-deprecation{background:#fef3c7;color:#92400e}.status-warning{background:#fcdab7;color:#92400e}.warning-icon{color:#f59e0b}.warnings-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.warnings-section h3{margin:0 0 16px;font-size:16px;color:#1e293b}.warning-list{display:flex;flex-direction:column;gap:12px}.warning-item{display:flex;gap:12px;padding:12px;border-radius:6px;background:#fef3c7;border-left:3px solid #f59e0b}.warning-item.critical{background:#fee2e2;border-left-color:#dc2626}.warning-item .warning-icon{color:#f59e0b;flex-shrink:0}.warning-item.critical .warning-icon{color:#dc2626}.warning-item>div{flex:1}.warning-item strong{display:block;color:#1e293b;margin-bottom:2px;font-size:13px}.warning-item p{margin:0;font-size:12px;color:#64748b}.btn-convert{align-self:flex-start;padding:12px 24px;background:linear-gradient(135deg,#1b3f8b,#009cde);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;transition:all .2s}.btn-convert:hover{transform:translateY(-2px);box-shadow:0 4px 12px #009cde4d}.vb-file-selection{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px 24px}.vb-file-selection h3{margin:0 0 4px;font-size:15px;font-weight:600;color:#1e293b;display:flex;align-items:center}.vb-file-hint{margin:0 0 12px;font-size:13px;color:#94a3b8}.vb-file-row{display:flex;align-items:center;gap:12px}.vb-file-select{flex:1;max-width:500px}.vb-loading{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b}.vb-spin{animation:vb-spin 1s linear infinite}@keyframes vb-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vb-file-info{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.vb-file-badge{font-size:13px;color:#475569;background:#f1f5f9;padding:4px 10px;border-radius:4px}.vb-file-badge strong{color:#1e293b}.vb-summary-row{display:flex;flex-wrap:wrap;gap:10px}.vb-summary-badge{padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.vb-summary-badge.direct{background:#dcfce7;color:#166534}.vb-summary-badge.warning{background:#fef3c7;color:#92400e}.vb-summary-badge.deprecation{background:#fed7aa;color:#9a3412}.vb-summary-badge.critical{background:#fecaca;color:#991b1b}.vb-summary-badge.total{background:#e0e7ff;color:#3730a3}.vb-no-file-note{margin:0 0 8px;font-size:13px;color:#94a3b8;font-style:italic;display:flex;align-items:center}.entity-count{font-family:monospace;color:#64748b;font-size:13px}.critical-icon{color:#dc2626}.status-critical{background-color:#fef2f2}.storey-container{display:flex;flex-direction:column;gap:24px}.building-summary{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.building-summary h3{margin:0 0 16px;font-size:16px;color:#1e293b}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.summary-item{padding:12px;background:#f8fafc;border-radius:6px;display:flex;flex-direction:column;gap:4px}.summary-item .label{font-size:11px;text-transform:uppercase;color:#94a3b8;font-weight:600}.summary-item .value{font-size:14px;color:#1e293b;font-weight:600}.summary-item .version-info{font-size:12px;color:#64748b}.storeys-list{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:12px}.storeys-list h3{margin:0 0 12px;font-size:16px;color:#1e293b}.storey-item{border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.storey-header{width:100%;display:flex;align-items:center;gap:12px;padding:12px;background:#f8fafc;border:none;cursor:pointer;font-size:14px;transition:all .2s}.storey-header:hover{background:#f1f5f9}.storey-header .chevron{transition:transform .2s}.storey-header .chevron.open{transform:rotate(180deg)}.storey-title{flex:1}.storey-title h4{margin:0;font-size:14px;color:#1e293b;font-weight:600}.elevation{display:block;font-size:12px;color:#94a3b8;margin-top:2px}.storey-meta{display:flex;gap:8px;align-items:center;margin-left:auto;flex-shrink:0}.spaces{font-size:12px;color:#64748b}.issues-badge{display:flex;align-items:center;gap:4px;background:#fee2e2;color:#dc2626;padding:4px 8px;border-radius:3px;font-size:11px;font-weight:600}.storey-details{padding:16px;background:#fff;border-top:1px solid #e2e8f0}.elements-breakdown{margin-bottom:16px}.elements-breakdown h5{margin:0 0 12px;font-size:12px;text-transform:uppercase;color:#1e293b;font-weight:600}.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.breakdown-item{padding:10px;background:#f8fafc;border-radius:4px;text-align:center}.breakdown-item .type{display:block;font-size:11px;color:#64748b;text-transform:capitalize;margin-bottom:4px}.breakdown-item .count{display:block;font-size:16px;font-weight:700;color:#1e293b}.storey-issues{border-top:1px solid #e2e8f0;padding-top:12px}.storey-issues h5{margin:0 0 8px;font-size:12px;text-transform:uppercase;color:#1e293b;font-weight:600}.storey-issues ul{margin:0;padding:0 0 0 16px;list-style:none}.storey-issues li{font-size:12px;color:#64748b;margin-bottom:4px}.risk-analysis{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.risk-analysis h3{margin:0 0 16px;font-size:16px;color:#1e293b}.risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.risk-item{display:flex;gap:12px;padding:12px;border-radius:6px;border-left:3px solid #f59e0b;background:#fef3c7}.risk-item.warning{border-left-color:#f59e0b;background:#fef3c7}.risk-item.critical{border-left-color:#dc2626;background:#fee2e2}.risk-item.info{border-left-color:#3b82f6;background:#dbeafe}.risk-item .icon{font-size:20px;flex-shrink:0}.risk-item strong{display:block;color:#1e293b;font-size:13px;margin-bottom:2px}.risk-item p{margin:0;font-size:12px;color:#64748b}@media (max-width: 1024px){.vc-container{grid-template-columns:1fr;grid-template-rows:auto 400px auto}.node-library{grid-row:3;max-height:120px}.canvas-section{grid-column:1}.output-console{grid-column:1;grid-row:auto}.ids-container,.legal-section{grid-template-columns:1fr}}.rc-page{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:100%;min-height:0}.rc-left{display:flex;flex-direction:column;background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:12px;padding:16px;gap:12px;overflow-y:auto}.rc-right{background:#1a1a1a;border:1px solid var(--brand-grey-200);border-radius:12px;overflow:hidden;position:relative;min-height:400px}.rc-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.rc-header h2{margin:0;font-size:18px;font-weight:700;color:var(--brand-black)}.rc-section{display:flex;flex-direction:column;gap:8px;background:var(--brand-grey-50);border:1px solid var(--brand-grey-200);border-radius:10px;padding:12px}.rc-section-header{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--brand-grey-700)}.rc-summary{font-weight:700}.rc-rules{display:flex;flex-direction:column;gap:6px}.rc-rule{display:grid;grid-template-columns:auto 1fr 130px 110px 130px 90px 110px 28px;gap:6px;align-items:center;padding:6px 8px;background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:8px;font-size:12px}.rc-rule.disabled{opacity:.55}.rc-rule input,.rc-rule select{width:100%;padding:5px 7px;border:1px solid var(--brand-grey-200);border-radius:6px;font-size:12px;font-family:inherit;background:var(--brand-white);color:var(--brand-black)}.rc-rule input:focus,.rc-rule select:focus{outline:none;border-color:var(--brand-green);box-shadow:var(--focus-ring)}.rc-rule .rc-rule-name{font-weight:600}.rc-rule-rm{background:transparent;border:none;color:var(--accent-red);cursor:pointer;padding:4px;border-radius:4px}.rc-rule-rm:hover{background:#fde3e3}.rc-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:4px}.rc-results{gap:4px}.rc-result-group{background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:8px;padding:0;overflow:hidden}.rc-result-group>summary{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--brand-grey-50);font-size:12px}.rc-result-group>summary::-webkit-details-marker{display:none}.rc-sev{font-size:9px;font-weight:800;color:var(--brand-white);padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.5px}.rc-result-name{flex:1;font-weight:600;color:var(--brand-black)}.rc-result-count{font-size:11px;font-weight:700;color:var(--brand-grey-600);display:inline-flex;align-items:center;gap:4px}.rc-failure{display:grid;grid-template-columns:auto 80px 1fr 60px 110px;align-items:center;gap:8px;width:100%;padding:6px 12px;background:var(--brand-white);border:none;border-top:1px solid var(--brand-grey-150);text-align:left;cursor:pointer;font-size:11px;transition:all .12s}.rc-failure:hover{background:var(--brand-green);color:var(--brand-green-on)}.rc-fail-type{font-weight:700;color:var(--brand-green-deep)}.rc-failure:hover .rc-fail-type{color:var(--brand-green-on)}.rc-fail-name{color:var(--brand-black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-fail-id{font-family:SFMono-Regular,Consolas,monospace;color:var(--brand-grey-600)}.rc-fail-obs{font-family:SFMono-Regular,Consolas,monospace;color:var(--brand-grey-600);font-size:10px}.rc-empty{padding:24px 12px;text-align:center;color:var(--text-muted);font-size:12px}.cd-models{display:flex;flex-direction:column;gap:4px}.cd-model-row{display:flex;align-items:center;gap:10px;padding:7px 10px;background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:8px;font-size:13px}.cd-model-row.active{border-color:var(--brand-green-dark);background:var(--brand-green-tint)}.cd-model-name{flex:1;text-align:left;background:transparent;border:none;color:var(--brand-black);font-weight:600;cursor:pointer}.cd-model-meta{font-size:11px;color:var(--brand-grey-600)}.cd-clash-list{display:flex;flex-direction:column;gap:4px;max-height:540px;overflow-y:auto}.cd-clash-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:8px 10px;background:var(--brand-white);border:1px solid var(--brand-grey-200);border-left:3px solid var(--brand-grey-300);border-radius:8px;cursor:pointer;transition:all .15s;text-align:left}.cd-clash-item:hover{border-color:var(--brand-green-dark);background:var(--brand-green-light)}.cd-clash-item.active{border-color:var(--brand-green-dark);background:var(--brand-green);color:var(--brand-green-on)}.cd-clash-item.sev-major{border-left-color:#c53030}.cd-clash-item.sev-medium{border-left-color:#b7791f}.cd-clash-item.sev-minor{border-left-color:#7bb433}.cd-clash-head{display:flex;align-items:center;gap:8px;font-size:12px}.cd-pair{flex:1;font-weight:700}.cd-vs{color:var(--brand-grey-500);padding:0 2px}.cd-sev{font-size:9px;font-weight:800;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.5px}.cd-sev.sev-major{background:#fde3e3;color:#9a2222}.cd-sev.sev-medium{background:#fff4d6;color:#8a6100}.cd-sev.sev-minor{background:var(--brand-green-tint);color:var(--brand-green-deep)}.cd-clash-meta{display:flex;gap:6px;align-items:center;font-size:11px;font-family:SFMono-Regular,Consolas,monospace}.cd-vol{margin-left:auto;color:var(--brand-grey-600)}.rc-rule-header{display:grid;grid-template-columns:26px 26px 1fr 130px 140px 130px 90px 100px 28px;gap:6px;padding:4px 8px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--brand-grey-600)}.rc-rule{display:grid;grid-template-columns:26px 26px 1fr 130px 140px 130px 90px 100px 28px}.rc-rule-collapse{background:transparent;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--brand-grey-600);width:26px;height:26px;border-radius:6px}.rc-rule-collapse:hover{background:var(--brand-green-tint);color:var(--brand-green-dark)}.rc-rule-expanded{grid-column:1 / -1;padding:8px 10px;background:var(--brand-green-soft);border-top:1px solid var(--brand-grey-200);display:grid;grid-template-columns:1fr 160px 200px;gap:12px;align-items:end}.rc-rule-expanded .rc-field{display:flex;flex-direction:column;gap:4px}.rc-rule-expanded .rc-field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--brand-grey-700)}.rc-rule-expanded input[type=color]{width:100%;height:30px;padding:0;border:1px solid var(--brand-grey-200);border-radius:6px}.rc-rule-expanded input[type=range]{width:100%}.rc-failure.active{background:var(--brand-green);color:var(--brand-green-on)}.rc-failure.active .rc-fail-type{color:var(--brand-green-on)}.rc-viewer-mini-toolbar{position:absolute;top:10px;right:10px;display:flex;gap:4px;background:#0000008c;padding:4px;border-radius:8px;z-index:10}.rc-vmt-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--brand-grey-100);cursor:pointer;border-radius:6px;transition:all .15s}.rc-vmt-btn:hover{background:var(--brand-green);color:var(--brand-green-on)}.cd-categories{display:flex;flex-direction:column;gap:4px}.cd-category{background:var(--brand-white);border:1px solid var(--brand-grey-200);border-radius:8px;overflow:hidden}.cd-category-head{display:flex;align-items:center;gap:8px;width:100%;background:var(--brand-grey-50);border:none;padding:8px 10px;cursor:pointer;transition:all .15s}.cd-category-head:hover{background:var(--brand-green-tint)}.cd-category-title{flex:1;text-align:left;font-weight:700;font-size:12px;color:var(--brand-black)}.cd-category-count{font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--brand-black);color:var(--brand-green);letter-spacing:.4px}.cad-page{display:flex;flex-direction:column;height:100%;background:var(--brand-charcoal);border-radius:12px;overflow:hidden}.cad-toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--brand-graphite);border-bottom:1px solid var(--brand-grey-800)}.cad-divider{width:1px;height:22px;background:var(--brand-grey-700);margin:0 6px}.cad-info{font-size:12px;color:var(--brand-grey-300);font-family:SFMono-Regular,Consolas,monospace}.cad-info strong{color:var(--brand-green)}.cad-body{flex:1;display:flex;min-height:0}.cad-layers{width:200px;flex-shrink:0;background:var(--brand-graphite);border-right:1px solid var(--brand-grey-800);padding:10px;overflow-y:auto}.cad-layers-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--brand-green);padding-bottom:8px;border-bottom:1px solid var(--brand-grey-800);margin-bottom:6px}.cad-layer{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:12px;color:var(--brand-grey-200);cursor:pointer;border-radius:6px;transition:background .12s}.cad-layer:hover{background:#ffffff0a}.cad-layer-swatch{display:inline-block;width:10px;height:10px;border-radius:2px}.cad-layer-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cad-canvas-wrap{flex:1;position:relative;background:var(--brand-charcoal);cursor:grab}.cad-canvas-wrap:active{cursor:grabbing}.cad-canvas{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none}.cad-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--brand-grey-300);gap:12px;padding:24px}.cad-empty h3{margin:0;color:var(--brand-white);font-size:18px}.cad-empty p{margin:0;max-width:420px;font-size:13px;line-height:1.6}.content-area:has(>.tobie-app-shell){padding:0!important;overflow:hidden;position:relative}.tobie-app-shell{position:absolute;top:0;right:0;bottom:0;left:0;display:block;background:#0f0f0f;overflow:hidden}.tobie-app-iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#0f0f0f;display:block}@supports not selector(:has(*)){.tobie-app-shell{position:relative;width:100%;height:calc(100vh - 56px);margin:-24px;width:calc(100% + 48px)}}.visual-code-page{height:100%;display:flex;flex-direction:column;background:#f8fafc}.vc-container{display:grid;grid-template-columns:200px 1fr 250px;gap:12px;height:100%;padding:12px;grid-template-rows:1fr auto}.node-library{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px;overflow-y:auto;grid-row:1 / 2;box-shadow:0 1px 3px #0000000d}.node-library h3{margin:0 0 16px;font-size:14px;color:#1e293b;font-weight:600}.category{margin-bottom:20px}.category:last-child{margin-bottom:0}.category h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;color:#94a3b8;font-weight:700;letter-spacing:.5px}.nodes-group{display:flex;flex-direction:column;gap:6px}.node-library-item{padding:10px 12px;border:1px solid #e2e8f0;border-left:3px solid #999;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;color:#1e293b;font-weight:500;text-align:left;transition:all .2s}.node-library-item:hover{background:#f8fafc;border-left-color:inherit}.canvas-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;position:relative;overflow:hidden;grid-column:2;grid-row:1 / 2;box-shadow:0 1px 3px #0000000d}.connections-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.canvas-content{position:relative;width:100%;height:100%;z-index:2}.visual-node{position:absolute;background:#fff;border:2px solid;border-radius:6px;min-width:160px;box-shadow:0 2px 8px #0000001a;-webkit-user-select:none;user-select:none;z-index:10;transition:box-shadow .2s}.visual-node:hover{box-shadow:0 4px 12px #00000026}.visual-node.selected{box-shadow:0 0 0 2px #009cde,0 4px 12px #009cde4d}.visual-node.dragging{opacity:.9;z-index:20}.node-header{padding:10px 12px;color:#fff;font-size:12px;font-weight:600;border-radius:4px 4px 0 0;cursor:grab;-webkit-user-select:none;user-select:none}.node-header:active{cursor:grabbing}.node-body{padding:6px 12px;min-height:20px}.port{width:12px;height:12px;border-radius:50%;background:#e2e8f0;border:2px solid white;cursor:crosshair;transition:all .2s;z-index:15;position:absolute}.port:hover{background:#009cde;box-shadow:0 0 8px #009cde80;transform:scale(1.3)}.port.outside-left{left:-6px;top:50%;transform:translateY(-50%)}.port.outside-left:hover{transform:translateY(-50%) scale(1.3)}.port.outside-right{right:-6px;top:50%;transform:translateY(-50%)}.port.outside-right:hover{transform:translateY(-50%) scale(1.3)}.canvas-controls{position:absolute;bottom:16px;right:16px;display:flex;gap:8px;z-index:15}.canvas-controls .btn{padding:10px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;transition:all .2s;color:#1e293b;box-shadow:0 1px 3px #0000000d}.canvas-controls .btn:hover{border-color:#009cde;color:#009cde;background:#f0f9ff}.canvas-controls .btn:active{transform:translateY(1px)}.output-console{background:#1e293b;border:1px solid #e2e8f0;border-radius:8px;padding:16px;grid-column:3;grid-row:1 / 3;overflow-y:auto;box-shadow:0 1px 3px #0000000d}.output-console h3{margin:0 0 12px;color:#e2e8f0;font-size:13px;font-weight:600}.console-text{margin:0;color:#10b981;font-family:Monaco,Courier New,monospace;font-size:11px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}@media (max-width: 1200px){.vc-container{grid-template-columns:1fr;grid-template-rows:auto 400px auto}.node-library{grid-row:3;grid-column:1;max-height:120px}.canvas-section{grid-column:1;grid-row:2}.output-console{grid-column:1;grid-row:auto;max-height:150px}}.in-development{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.dev-card{text-align:center;max-width:440px;animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dev-icon{margin-bottom:32px}.building-icon{width:80px;height:80px;margin:0 auto;position:relative;display:flex;align-items:flex-end;justify-content:center;gap:8px}.beam{width:8px;background:linear-gradient(180deg,var(--brand-green-light) 0%,var(--brand-green-dark) 100%);border-radius:3px;animation:buildUp 1.5s ease-in-out infinite}.beam:nth-child(1){height:20px;animation-delay:0s}.beam:nth-child(2){height:40px;animation-delay:.2s}.beam:nth-child(3){height:30px;animation-delay:.4s}@keyframes buildUp{0%,to{opacity:.4}50%{opacity:1}}.dev-title{font-size:28px;font-weight:700;color:var(--brand-black);margin:0 0 8px;letter-spacing:-.5px}.dev-subtitle{font-size:13px;color:var(--brand-green-dark);margin:0 0 22px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px}.dev-description{font-size:14px;color:var(--brand-grey-700);margin:0 0 32px;line-height:1.6}.progress-indicator{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.dot{width:8px;height:8px;border-radius:50%;background:var(--brand-green);animation:pulse 1.5s ease-in-out infinite}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.dev-message{font-size:14px;color:var(--brand-grey-600);margin:0;font-weight:500}.main-layout{display:flex;height:100vh;width:100vw;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--brand-grey-50);color:var(--brand-black)}.main-layout.dark{background:var(--brand-charcoal);color:var(--brand-grey-100)}.main-sidebar{width:56px;background:var(--brand-white);border-right:1px solid var(--brand-grey-200);display:flex;flex-direction:column;align-items:center;padding:6px 0;transition:width .28s cubic-bezier(.4,0,.2,1);z-index:100;overflow-y:auto;flex-shrink:0}.main-layout.dark .main-sidebar{background:var(--brand-charcoal);border-right:1px solid var(--brand-grey-800)}.main-sidebar.expanded{width:220px;align-items:flex-start;padding:10px}.main-layout.dark .main-sidebar.expanded{background:var(--brand-charcoal)}.brand-logo-img{display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.brand-logo-img.mark{width:28px;height:28px;object-fit:contain}.brand-logo-img.horizontal{height:30px;width:auto;max-width:150px;object-fit:contain}.sidebar-logo{display:flex;align-items:center;justify-content:space-between;width:100%;gap:6px;margin-bottom:12px;padding:4px 6px}.main-sidebar:not(.expanded) .sidebar-logo{flex-direction:column;gap:8px;padding:4px 0}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--brand-grey-600);cursor:pointer;border-radius:8px;transition:all .18s;flex-shrink:0}.main-layout.dark .sidebar-toggle{color:var(--brand-grey-300)}.sidebar-toggle:hover,.main-layout.dark .sidebar-toggle:hover{background:var(--brand-green);color:var(--brand-green-on)}.sidebar-toggle .icon{width:16px;height:16px}.main-sidebar.expanded .sidebar-logo{margin-bottom:10px}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:2px;width:100%;overflow-y:auto}.nav-item{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 6px;border:none;background:transparent;color:var(--brand-grey-700);cursor:pointer;border-radius:8px;transition:all .18s;position:relative;white-space:nowrap;font-size:13px;font-weight:500;width:40px;height:40px}.main-layout.dark .nav-item{color:var(--brand-grey-300)}.main-sidebar.expanded .nav-item{justify-content:flex-start;padding:9px 12px;width:100%;height:auto}.nav-item .icon{width:18px;height:18px;flex-shrink:0}.nav-item .label{display:none}.main-sidebar.expanded .nav-item .label{display:inline;flex:1}.nav-item:hover,.main-layout.dark .nav-item:hover{background:var(--brand-green-light);color:var(--brand-green-on)}.nav-item.active{background:var(--brand-green);color:var(--brand-green-on);font-weight:700;box-shadow:var(--shadow-sm)}.main-sidebar.expanded .nav-item.active{padding-left:12px}.main-layout.dark .nav-item.active{background:var(--brand-green);color:var(--brand-green-on)}.nav-item.planned{opacity:.5;cursor:not-allowed}.nav-item .badge{display:none;font-size:9px;background:var(--brand-grey-150);color:var(--brand-grey-700);padding:2px 7px;border-radius:999px;font-weight:600;margin-left:auto;letter-spacing:.4px;text-transform:uppercase}.main-sidebar.expanded .nav-item.planned .badge{display:inline}.sidebar-footer{display:flex;flex-direction:column;gap:8px;width:100%;padding-top:12px;border-top:1px solid var(--brand-grey-200)}.main-layout.dark .sidebar-footer{border-top:1px solid var(--brand-grey-800)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--brand-grey-50)}.main-layout.dark .main-content{background:var(--brand-charcoal)}.top-header{height:56px;background:var(--brand-white);border-bottom:1px solid var(--brand-grey-200);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}.main-layout.dark .top-header{background:var(--brand-graphite);border-bottom:1px solid var(--brand-grey-800);color:var(--brand-white)}.header-left .app-name{margin:0;font-size:17px;font-weight:700;color:var(--brand-black);letter-spacing:-.3px}.main-layout.dark .header-left .app-name{color:var(--brand-white)}.header-right{display:flex;align-items:center;gap:16px}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--brand-grey-200);background:transparent;color:var(--brand-grey-600);cursor:pointer;border-radius:8px;transition:all .18s}.theme-toggle:hover{background:var(--brand-green);color:var(--brand-green-on);border-color:var(--brand-green-dark)}.main-layout.dark .theme-toggle{border-color:var(--brand-grey-800);color:var(--brand-grey-300)}.main-layout.dark .theme-toggle:hover{background:var(--brand-green);color:var(--brand-green-on);border-color:var(--brand-green-dark)}.theme-toggle .icon{width:18px;height:18px}.user-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--brand-white);font-weight:700;font-size:13px;letter-spacing:.3px;border:2px solid var(--brand-white);box-shadow:0 0 0 1px var(--brand-grey-200)}.user-name{font-size:13px;font-weight:600;color:var(--brand-black)}.main-layout.dark .user-name{color:var(--brand-grey-100)}.content-area{flex:1;overflow:auto;padding:24px;color:var(--brand-black)}.main-layout.dark .content-area{color:var(--brand-grey-100)}@media (max-width: 1024px){.main-sidebar.expanded{width:180px}}@media (max-width: 768px){.main-sidebar.expanded{width:160px;font-size:13px}.nav-item{padding:10px 6px}.main-sidebar.expanded .nav-item{padding:8px 10px}}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error)}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:1em;left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width : 480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:0;transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:0;transform:translate(0)}.Toastify__toast-container--rtl{right:0;left:initial}}.Toastify__toast{position:relative;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:4px;box-shadow:0 1px 10px #0000001a,0 2px 15px #0000000d;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);overflow:hidden;font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--brand-green: #C1FF72;--brand-green-dark: #A6E84F;--brand-green-deep: #7BB433;--brand-green-light: #DCFFA8;--brand-green-tint: #F0FFD9;--brand-green-soft: #F8FFEB;--brand-green-on: #0A0A0A;--brand-black: #0A0A0A;--brand-charcoal: #1A1A1A;--brand-graphite: #2C2C2C;--brand-grey-900: #1F1F1F;--brand-grey-800: #2E2E2E;--brand-grey-700: #404040;--brand-grey-600: #5A5A5A;--brand-grey-500: #7A7A7A;--brand-grey-400: #A3A3A3;--brand-grey-300: #C9C9C9;--brand-grey-200: #E2E2E2;--brand-grey-150: #ECECEC;--brand-grey-100: #F4F4F4;--brand-grey-50: #FAFAFA;--brand-white: #FFFFFF;--bg-primary: var(--brand-white);--bg-secondary: var(--brand-grey-50);--bg-tertiary: var(--brand-grey-100);--bg-card: var(--brand-white);--bg-hover: var(--brand-green-tint);--text-primary: var(--brand-black);--text-secondary:var(--brand-grey-700);--text-muted: var(--brand-grey-500);--accent-blue: var(--brand-green);--accent-purple: var(--brand-grey-700);--accent-green: var(--brand-green);--accent-yellow: #B7791F;--accent-red: #C53030;--accent-orange: #C05621;--tobe-blue: var(--brand-black);--tobe-cyan: var(--brand-green);--tobe-magenta: var(--brand-grey-700);--tobe-red: var(--brand-grey-900);--border-color: var(--brand-grey-200);--border-light: var(--brand-grey-300);--shadow-sm: 0 1px 2px rgba(10,10,10,.04), 0 1px 1px rgba(10,10,10,.03);--shadow: 0 4px 14px rgba(10,10,10,.06);--shadow-lg: 0 12px 32px rgba(10,10,10,.1);--shadow-green: 0 6px 18px rgba(193,255,114,.45);--radius: 8px;--radius-lg: 12px;--sidebar-width: 360px;--header-height: 54px;--toolbar-height: 46px;--viewer-bg: #1A1A1A;--focus-ring: 0 0 0 3px rgba(193,255,114,.5)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-secondary);color:var(--text-primary);overflow:hidden;height:100vh;font-size:14px;-webkit-font-smoothing:antialiased}#root{height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-layout{display:flex;flex-direction:column;height:100vh}.app-header{height:var(--header-height);background:var(--bg-primary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;z-index:100;box-shadow:var(--shadow-sm)}.app-header .logo{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;color:var(--accent-blue);text-decoration:none;letter-spacing:-.3px}.app-header .logo svg{color:var(--accent-blue)}.app-header .logo span{color:var(--text-muted);font-weight:400;font-size:13px;margin-left:4px}.app-header nav{display:flex;gap:2px;margin-left:24px}.app-header nav a{padding:6px 14px;border-radius:var(--radius);color:var(--text-secondary);text-decoration:none;font-size:13px;font-weight:500;transition:all .15s;display:flex;align-items:center;gap:6px}.app-header nav a:hover{background:var(--brand-green-light);color:var(--brand-green-on)}.app-header nav a.active{background:var(--brand-green);color:var(--brand-green-on)}.app-content{flex:1;overflow:hidden;display:flex}.viewer-layout{display:flex;width:100%;height:100%}.viewer-main{flex:1;position:relative;display:flex;flex-direction:column;overflow:hidden}.viewer-canvas{width:100%;height:100%;display:block;position:relative;background:var(--viewer-bg);overflow:hidden}.viewer-canvas canvas{width:100%!important;height:100%!important;display:block;outline:none}.viewer-toolbar{height:var(--toolbar-height);background:var(--bg-primary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 12px;gap:2px;flex-shrink:0;box-shadow:var(--shadow-sm)}.toolbar-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.toolbar-btn:hover{background:var(--brand-green-light);color:var(--brand-green-on);border-color:var(--brand-green-light)}.toolbar-btn.active{background:var(--brand-green);color:var(--brand-green-on);border-color:var(--brand-green-dark);box-shadow:var(--shadow-sm)}.toolbar-btn.active:hover{background:var(--brand-green-dark)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn:disabled:hover{background:transparent;border-color:transparent}.toolbar-divider{width:1px;height:22px;background:var(--border-color);margin:0 6px}.toolbar-label{font-size:12px;color:var(--text-muted);margin-left:8px;font-style:italic}.sidebar{width:var(--sidebar-width);background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;box-shadow:-2px 0 8px #0000000a}.sidebar-tabs{display:flex;border-bottom:1px solid var(--border-color);flex-shrink:0;background:var(--bg-secondary)}.sidebar-tab{flex:1;padding:11px 8px;text-align:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;cursor:pointer;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;transition:all .15s}.sidebar-tab:hover{background:var(--brand-green-light);color:var(--brand-green-on)}.sidebar-tab.active{color:var(--brand-green-on);background:var(--brand-green);border-bottom-color:var(--brand-green-dark)}.sidebar-content{flex:1;overflow-y:auto;padding:14px}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);padding:14px;margin-bottom:10px;box-shadow:var(--shadow-sm)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-title{font-size:13px;font-weight:600;color:var(--text-primary)}.card-subtitle{font-size:12px;color:var(--text-muted);margin-top:2px}.form-group{margin-bottom:10px}.form-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.form-input{width:100%;padding:7px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;transition:border-color .15s,box-shadow .15s}.form-input:focus{outline:none;border-color:var(--brand-green);box-shadow:var(--focus-ring);background:var(--brand-white)}.form-select{width:100%;padding:7px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;cursor:pointer}.form-select:focus{outline:none;border-color:var(--brand-green);box-shadow:var(--focus-ring)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all .15s;line-height:1}.btn-primary{background:var(--brand-green);color:var(--brand-green-on);border:1px solid var(--brand-green-dark);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--brand-green-dark);box-shadow:var(--shadow-green)}.btn-success{background:var(--brand-green);color:var(--brand-green-on);border:1px solid var(--brand-green-dark)}.btn-success:hover{background:var(--brand-green-dark)}.btn-warning{background:var(--accent-yellow);color:#fff}.btn-warning:hover{background:#b45309}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:5px 10px;font-size:12px}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-group{display:flex;gap:6px;margin-top:10px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}.badge-assigned{background:var(--brand-grey-150);color:var(--brand-grey-800)}.badge-in-progress{background:#fff4d6;color:#8a6100}.badge-completed{background:var(--brand-green-tint);color:var(--brand-green-dark)}.badge-conflict{background:#fde3e3;color:#9a2222}.badge-draft{background:var(--bg-tertiary);color:var(--text-secondary)}.region-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius);cursor:pointer;transition:all .15s;border:1px solid transparent;margin-bottom:4px}.region-item:hover{background:var(--bg-tertiary);border-color:var(--border-color)}.region-item:hover{background:var(--brand-green-light);border-color:var(--brand-green)}.region-item.selected{background:var(--brand-green);border-color:var(--brand-green-dark);color:var(--brand-green-on)}.region-item.selected .region-name{color:var(--brand-green-on)}.region-item.selected .region-meta{color:var(--brand-grey-800)}.region-color{width:10px;height:10px;border-radius:3px;flex-shrink:0}.region-info{flex:1;min-width:0}.region-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.region-meta{font-size:11px;color:var(--text-muted);margin-top:1px}.upload-area{border:2px dashed var(--border-light);border-radius:var(--radius-lg);padding:32px 20px;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-secondary)}.upload-area:hover{border-color:var(--brand-green-dark);background:var(--brand-green);color:var(--brand-green-on)}.upload-area:hover h3,.upload-area:hover p{color:var(--brand-green-on)}.upload-area h3{font-size:15px;color:var(--text-primary);margin:8px 0 4px}.upload-area p{font-size:12px;color:var(--text-muted)}.dashboard{padding:24px;overflow-y:auto;height:100%;background:var(--bg-secondary)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:20px}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);transition:box-shadow .2s}.stat-card:hover{box-shadow:var(--shadow)}.stat-card .stat-value{font-size:30px;font-weight:700;color:var(--accent-blue);letter-spacing:-1px}.stat-card .stat-label{font-size:12px;color:var(--text-muted);margin-top:3px;font-weight:500}.models-page{padding:24px;overflow-y:auto;height:100%;background:var(--bg-secondary)}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.model-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow-sm)}.model-card:hover{border-color:var(--accent-blue);box-shadow:var(--shadow);transform:translateY(-1px)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px;color:var(--text-muted)}.empty-state h3{font-size:17px;color:var(--text-secondary);margin-bottom:8px;font-weight:600}.empty-state p{font-size:13px;max-width:380px;line-height:1.6}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#1e2235bf;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.15);border-top-color:#3b82f6;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:12px;font-size:13px;color:#fffc}.element-list{max-height:280px;overflow-y:auto}.element-item{padding:7px 10px;border-radius:5px;font-size:12px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .12s}.element-item:hover{background:var(--bg-tertiary)}.element-item .el-type{color:var(--accent-blue);font-weight:600}.element-item .el-id{color:var(--text-muted);font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:9px 12px;font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border-color);font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--bg-secondary)}.data-table td{padding:9px 12px;font-size:13px;border-bottom:1px solid var(--border-color)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-tertiary)}.color-options{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.color-option{width:22px;height:22px;border-radius:5px;cursor:pointer;border:2px solid transparent;transition:all .12s}.color-option:hover{transform:scale(1.2)}.color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px #fff inset}.viewer-info-bar{height:26px;background:var(--bg-primary);border-top:1px solid var(--border-color);display:flex;align-items:center;padding:0 14px;gap:18px;font-size:11px;color:var(--text-muted);flex-shrink:0}.viewer-info-bar .info-item{display:flex;align-items:center;gap:5px}.viewer-info-bar .info-item strong{color:var(--text-secondary);font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;min-width:420px;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-title{font-size:17px;font-weight:700;margin-bottom:6px;color:var(--text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.activity-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-color)}.activity-item:last-child{border-bottom:none}.activity-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;flex-shrink:0}.activity-text{font-size:13px;color:var(--text-primary);line-height:1.4}.activity-time{font-size:11px;color:var(--text-muted);margin-top:2px}.page-header{margin-bottom:22px}.page-header h2{font-size:20px;font-weight:700;color:var(--text-primary);letter-spacing:-.4px}.page-header p{font-size:13px;color:var(--text-muted);margin-top:3px}.progress-bar{height:5px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;transition:width .3s;background:var(--brand-green)}::selection{background:var(--brand-green-light);color:var(--brand-black)}::-moz-selection{background:var(--brand-green-light);color:var(--brand-black)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--brand-green)}option:checked{background:var(--brand-green)!important;color:#fff}.Toastify__toast--success{background:var(--brand-green)!important}.Toastify__toast--success .Toastify__toast-icon svg{fill:#fff!important}.Toastify__progress-bar{background:var(--brand-green-light)!important}.user-menu-wrapper{position:relative}.user-trigger{display:flex;align-items:center;gap:10px;padding:4px 10px 4px 4px;background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;transition:all .15s}.user-trigger:hover{background:var(--brand-green);border-color:var(--brand-green-dark);color:var(--brand-green-on)}.user-trigger:hover .user-name{color:var(--brand-green-on)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:6px;z-index:1000;animation:ddFade .12s ease-out}@keyframes ddFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-dropdown .dd-header{padding:12px 14px 10px;border-bottom:1px solid var(--border-color);margin-bottom:6px}.user-dropdown .dd-header .dd-name{font-size:14px;font-weight:600;color:var(--text-primary)}.user-dropdown .dd-header .dd-role{font-size:11px;color:var(--brand-green-dark);text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-top:2px}.user-dropdown .dd-header .dd-email{font-size:12px;color:var(--text-muted);margin-top:2px}.user-dropdown .dd-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px;border:none;background:transparent;border-radius:6px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:all .12s}.user-dropdown .dd-item:hover{background:var(--brand-green);color:var(--brand-green-on)}.user-dropdown .dd-item .icon{width:16px;height:16px}.user-dropdown .dd-divider{height:1px;background:var(--border-color);margin:6px 0}.user-dropdown .dd-item.danger{color:var(--accent-red)}.user-dropdown .dd-item.danger:hover{background:#fde3e3;color:#9a2222}.viewer-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:200;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-lg);min-width:130px;padding:4px;animation:ddFade .12s ease-out}.viewer-popover-item{display:block;width:100%;text-align:left;padding:8px 12px;font-size:12px;font-weight:500;color:var(--text-primary);background:transparent;border:none;cursor:pointer;border-radius:6px;transition:all .12s}.viewer-popover-item:hover{background:var(--brand-green);color:var(--brand-green-on)}.viewer-popover.palette{padding:10px;min-width:178px}.palette-grid{display:grid;grid-template-columns:repeat(5,28px);gap:6px}.swatch{width:28px;height:28px;border-radius:6px;border:1px solid var(--brand-grey-300);cursor:pointer;transition:all .12s;padding:0}.swatch:hover{transform:scale(1.12);box-shadow:var(--focus-ring);border-color:var(--brand-green-dark)}.palette-clear{display:block;width:100%;margin-top:8px;padding:6px 10px;background:var(--brand-grey-100);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}.palette-clear:hover{background:var(--brand-green);color:var(--brand-green-on);border-color:var(--brand-green-dark)}.element-floater{position:absolute;top:70px;right:16px;width:320px;max-height:calc(100vh - 200px);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden;z-index:50;display:flex;flex-direction:column;animation:floaterSlide .16s ease-out}@keyframes floaterSlide{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.element-floater-header{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--brand-green);color:var(--brand-green-on);border-bottom:1px solid var(--brand-green-dark)}.element-floater-header .ef-title{flex:1;min-width:0;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.element-floater-header .ef-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--brand-black);color:var(--brand-green);padding:2px 7px;border-radius:999px}.element-floater-header .ef-close{background:transparent;border:none;color:var(--brand-green-on);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.element-floater-header .ef-close:hover{background:#0000001a}.element-floater-tabs{display:flex;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.element-floater-tabs button{flex:1;padding:9px 6px;background:transparent;border:none;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;border-bottom:2px solid transparent;transition:all .12s}.element-floater-tabs button:hover{background:var(--brand-green-light);color:var(--brand-green-on)}.element-floater-tabs button.active{background:var(--brand-green);color:var(--brand-green-on);border-bottom-color:var(--brand-green-dark)}.element-floater-actions{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-wrap:wrap}.element-floater-actions .ef-action{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:var(--brand-white);border:1px solid var(--border-color);border-radius:999px;font-size:11px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .12s}.element-floater-actions .ef-action:hover{background:var(--brand-green);color:var(--brand-green-on);border-color:var(--brand-green-dark)}.element-floater-body{flex:1;overflow-y:auto;padding:12px 14px;font-size:12px;color:var(--text-primary)}.element-floater-body .ef-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--brand-grey-150)}.element-floater-body .ef-row:last-child{border-bottom:none}.element-floater-body .ef-row .ef-key{color:var(--text-muted);font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:.4px;flex-shrink:0;min-width:88px}.element-floater-body .ef-row .ef-val{color:var(--text-primary);font-weight:500;word-break:break-all;text-align:right;font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.element-floater-body .ef-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--brand-green-deep);margin:14px 0 6px}.element-floater-body .ef-empty{padding:24px 8px;text-align:center;color:var(--text-muted);font-size:12px}.ef-clipbox-grid{display:grid;grid-template-columns:60px 1fr 1fr;gap:6px;align-items:center;margin-top:6px}.ef-clipbox-grid .axis-label{font-size:11px;font-weight:700;color:var(--brand-green-deep)}.ef-clipbox-grid input{width:100%;padding:4px 6px;border:1px solid var(--border-color);border-radius:4px;font-size:11px;font-family:SFMono-Regular,Consolas,monospace}.ef-clipbox-grid input:focus{outline:none;border-color:var(--brand-green);box-shadow:var(--focus-ring)}focus{outline:none;border-color:var(--brand-green);box-shadow:var(--focus-ring)}.iso-pill .iso-bullet,.iso-pill.current .iso-bullet{color:#fff}.user-trigger:hover .icon{color:var(--brand-green-on)}.bottom-action-bar{position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--brand-green);color:var(--brand-green-on);border:1px solid var(--brand-green-dark);border-radius:999px;box-shadow:0 12px 30px -10px #0a0a0a4d,0 0 0 1px #0000000a;z-index:60;max-width:calc(100vw - 80px);flex-wrap:wrap;animation:barUp .18s ease-out}@keyframes barUp{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.bottom-action-bar .ba-identity{display:inline-flex;align-items:center;gap:8px;padding:0 10px 0 8px}.bottom-action-bar .ba-type{display:inline-block;background:var(--brand-black);color:var(--brand-green);font-size:10px;font-weight:800;letter-spacing:.6px;padding:3px 8px;border-radius:999px;text-transform:uppercase}.bottom-action-bar .ba-name{font-size:13px;font-weight:700;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-action-bar .ba-divider{width:1px;height:22px;background:#0a0a0a33;margin:0 2px}.bottom-action-bar .ba-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#fff6;color:var(--brand-green-on);border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.bottom-action-bar .ba-chip:hover{background:var(--brand-white);border-color:var(--brand-green-dark)}.bottom-action-bar .ba-chip.on{background:var(--brand-black);color:var(--brand-green);border-color:var(--brand-black)}.bottom-action-bar .ba-spacer{flex:1;min-width:4px}.bottom-action-bar .ba-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;color:var(--brand-green-on);cursor:pointer;border-radius:50%;transition:all .15s}.bottom-action-bar .ba-close:hover{background:#0a0a0a1a}.ba-popover-wrapper{position:relative}.ba-palette{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-lg);padding:10px;z-index:70}.bottom-action-bar{gap:4px;padding:5px 8px;flex-wrap:nowrap}.bottom-action-bar .ba-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;color:var(--brand-green-on);border:1px solid transparent;border-radius:999px;cursor:pointer;transition:all .15s}.bottom-action-bar .ba-icon:hover{background:var(--brand-white);border-color:var(--brand-green-dark)}.bottom-action-bar .ba-icon.on{background:var(--brand-black);color:var(--brand-green);border-color:var(--brand-black)}.bottom-action-bar .ba-name{max-width:160px}.bottom-action-bar .ba-close{color:var(--brand-green-on)}
