@font-face{font-family:StudioSans;src:local('Inter'),local('Arial');font-display:swap}
:root{--bg:#f4f5f7;--white:#fff;--ink:#202429;--muted:#777d87;--line:#e9ebee;--blue:#3154ed;--blue-dark:#2141cd;--lime:#dafa86;--radius:15px;--font:StudioSans,Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:13px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}a{color:var(--blue)}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #adc1ff;outline-offset:3px}input,select{min-width:0}button,select,input{border-radius:7px}button{transition:background .16s,color .16s,box-shadow .16s,transform .16s}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;fill:none;flex-shrink:0}.icon.muted{color:#9298a0}.flip{transform:rotate(180deg)}[hidden]{display:none!important}
.app-header{height:78px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:25px;font-weight:750;text-decoration:none;letter-spacing:-1.1px;white-space:nowrap}.brand-light{font-weight:440}.brand-dot{color:var(--blue)}.brand-icon{width:36px;height:38px;display:grid;place-items:center;background:var(--blue);border-radius:9px;color:var(--lime);transform:rotate(-5deg)}.brand-icon .icon{width:27px;height:27px;stroke-width:1.5}.app-header nav{display:flex;height:100%;align-items:center;gap:34px;margin-right:auto;margin-left:54px;font-size:12px}.nav-active{height:100%;display:flex;align-items:center;border-bottom:2px solid var(--blue);font-weight:600;padding-top:2px}.nav-link{border:0;background:transparent;display:flex;align-items:center;gap:8px;color:var(--muted);padding:10px 0}.nav-link .icon{width:16px;height:16px}.nav-link:hover{color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:39px;padding:10px 16px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap;line-height:1.2}.button .icon{width:17px;height:17px}.button.primary{background:var(--blue);color:white;box-shadow:0 2px 3px #2946c41a}.button.primary:hover{background:var(--blue-dark);box-shadow:0 3px 8px #2946c42b}.button.dark{background:#292e35;color:#fff}.button.dark:hover{background:#11151a}.button.subtle{background:#f8f9fb;border-color:#e9ebef;color:#454b56}.button.subtle:hover{background:#eef1f8}.button.small{padding:7px 10px;min-height:31px;font-size:11px;gap:6px}.button.small .icon{width:14px;height:14px}.button.full{width:100%;min-height:45px}.text-button{padding:3px 0;border:0;background:none;display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);font-weight:500;line-height:1.5}.text-button:hover{color:var(--blue)}.text-button .icon{width:13px;height:13px}.icon-button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:6px;color:#777e88;flex-shrink:0}.icon-button:hover{background:#edf0f5;color:var(--blue)}.icon-button .icon{width:16px;height:16px}.icon-button[aria-pressed=true]{background:#e9edff;color:var(--blue)}
main{max-width:1520px;margin:0 auto;padding:28px 40px 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:20px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:700;color:#9398a0;margin:0 0 6px}.intro h1{font-size:29px;font-weight:550;line-height:1.2;letter-spacing:-1.05px;margin:0 0 6px}.intro-copy{color:var(--muted);font-size:12px;margin:0}.local-badge{display:flex;align-items:center;gap:7px;font-size:10px;color:#818792;margin-top:28px}.status-dot{width:5px;height:5px;border-radius:50%;background:#5c9e65;box-shadow:0 0 0 3px #5c9e650d}.workspace-grid{display:grid;grid-template-columns:minmax(330px,.73fr) minmax(480px,1.27fr);gap:20px;align-items:start}.left-column,.right-column{display:flex;flex-direction:column;gap:18px;min-width:0}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 3px #1e355003}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 19px 13px;gap:10px}.panel-heading h2{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;margin:0;letter-spacing:-.12px}.step{font:9px ui-monospace,SFMono-Regular,Consolas,monospace;color:#a9aeb7;border:1px solid #e8eaed;border-radius:4px;padding:1px 4px;font-weight:400}.source-stage{position:relative;height:158px;margin:0 19px;border:1px solid #e6e8eb;border-radius:9px;overflow:hidden;background:repeating-conic-gradient(#eff0f2 0 25%,#f9f9fa 0 50%) 50%/16px 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.source-stage canvas{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.source-stage.picking{cursor:crosshair}.source-stage.picking canvas{cursor:crosshair}.drop-overlay{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#eff3fff2;border:2px dashed var(--blue);border-radius:7px;color:var(--blue);z-index:3}.dragover .drop-overlay{display:flex}.drop-overlay .icon{width:28px;height:28px}.demo-badge{position:absolute;top:8px;right:8px;font-size:7px;letter-spacing:.7px;padding:4px 6px;background:#ffffffd9;border-radius:3px;color:#646a73;backdrop-filter:blur(5px)}.pick-hint{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;background:#1d2532e8;color:#fff;padding:5px 9px;border-radius:5px;pointer-events:none}.source-loading{position:absolute;inset:0;z-index:4;background:#f7f8fbe8;display:flex;gap:9px;align-items:center;justify-content:center;font-size:12px;color:#505867}.spinner{width:17px;height:17px;border:2px solid #d5ddf0;border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.file-row{display:flex;align-items:center;gap:7px;padding:8px 19px 0;font-size:10px;color:#858c96}.file-row>.icon{width:13px;height:13px}.file-row>#source-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5b626d;max-width:70%}.file-row>#source-type{font-size:8px;color:#939aa6;margin-left:auto}.file-row .icon-button{width:25px;height:25px}.extraction-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 19px 0;color:#7b828c;font-size:10px}.extraction-controls>label:first-child{display:flex;align-items:center;gap:7px}.extraction-controls select{font-size:10px;padding:4px 5px;border:1px solid #e5e7ec;color:#454c58;background:#fff}.checkbox-label{display:flex;gap:6px;align-items:center;cursor:pointer;white-space:nowrap;font-size:10px;color:#7a818b}.checkbox-label input{accent-color:var(--blue);width:12px;height:12px;margin:0;cursor:pointer}.source-footnote{font-size:9px;color:#9a9fa8;padding:0 19px;margin:11px 0 15px;line-height:1.5}.page-controls{display:flex;align-items:center;padding:4px 19px 0;gap:4px;font-size:10px;color:#7a818a}.page-controls input{width:42px;border:1px solid #e5e8ed;padding:3px;text-align:center;font-size:10px;background:#fff}.page-controls .text-button{margin-left:auto;font-size:10px}.page-controls .icon-button{width:24px;height:24px}
.palette-panel .panel-heading{padding-bottom:8px}.count-badge{font-size:9px;background:#f2f4f7;color:#858c98;border-radius:5px;padding:1px 6px}.palette-meta{display:flex;justify-content:space-between;align-items:center;padding:0 20px 10px;color:#9ba0a8;font-size:9px}.palette-meta>span{display:flex;align-items:center;gap:5px}.palette-meta>span::before{content:'';display:block;width:4px;height:4px;background:#a6afbe;border-radius:50%}.palette-meta>span.exact{color:#4c8667}.palette-meta>span.exact::before{background:#4c8667}.palette-meta .text-button{font-size:9px}.palette-list{padding:0 12px;max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#dbe0e9 transparent}.color-row{display:flex;align-items:center;gap:10px;padding:7px;border-top:1px solid #f0f1f4;position:relative;border-radius:7px}.color-row:first-child{border-top-color:transparent}.color-row.focused{background:#f2f5ff}.color-row.unselected{opacity:.48}.color-swatch-wrap{width:38px;height:38px;position:relative;flex-shrink:0}.color-swatch-wrap input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.color-swatch{width:100%;height:100%;border-radius:6px;border:1px solid #0000000d;box-shadow:inset 0 0 0 1px #ffffff08}.color-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.color-name{width:100%;border:0;background:transparent;font-size:11px;font-weight:550;color:#4c535f;padding:1px 0;outline-offset:0!important;border-radius:3px}.color-values{display:flex;align-items:center;gap:9px}.hex-input{width:65px;letter-spacing:.3px;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;color:#9399a3;border:0;background:transparent;padding:1px 0;border-radius:3px}.hex-input.invalid{color:#bd3030;background:#fff0f0}.rgb-value{font:8px ui-monospace,SFMono-Regular,Consolas,monospace;color:#adb2bc;white-space:nowrap}.color-select{accent-color:var(--blue);width:13px;height:13px;cursor:pointer;margin:0 0 0 3px}.remove-color{font-size:14px;opacity:.35;width:20px;height:24px}.color-row:hover .remove-color,.color-row:focus-within .remove-color{opacity:1}.color-row .remove-color .icon{width:12px;height:12px}.palette-footer{margin:9px 19px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:11px 0;font-size:9px;color:#8b929c}.palette-footer>span{display:flex;align-items:center;gap:6px}.mini-dot{width:4px;height:4px;border-radius:50%;background:#638769}.palette-footer .text-button{font-size:9px}.empty-palette{text-align:center;padding:24px 15px;color:#8a929e;font-size:11px}
.preview-panel .panel-heading{padding:18px 22px 16px}.live-badge{display:flex;align-items:center;gap:5px;font-size:8px;color:#989fa9;letter-spacing:1px}.live-badge span{width:4px;height:4px;background:#81a289;border-radius:50%}.model-stage{height:352px;position:relative;background:radial-gradient(ellipse at 60% 25%,#fbfcfe 0,#f2f4f8 60%,#eef0f5 100%);border-top:1px solid #eef0f5;border-bottom:1px solid #eef0f5;overflow:hidden}.model-stage canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.model-stage canvas:active{cursor:grabbing}.viewport-topline{position:absolute;top:17px;left:22px;right:22px;display:flex;justify-content:space-between;pointer-events:none;color:#9ca3b0;font:8px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1px}.viewport-bottomline{position:absolute;left:21px;right:16px;bottom:13px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.orbit-hint{display:flex;align-items:center;gap:6px;font-size:8px;color:#9aA2b0}.orbit-hint .icon{width:12px;height:12px}.orbit-hint>span{margin:0 2px;color:#b4bbc5}.viewport-actions{display:flex;align-items:center;padding:2px;background:#ffffffc9;box-shadow:0 2px 5px #20334609;border:1px solid #e6e9f1;border-radius:8px;pointer-events:auto}.viewport-actions button{width:27px;height:25px;font-size:16px;color:#626f86}.viewport-actions button .icon{width:13px;height:13px}.model-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#9aa4b4;pointer-events:none;font-size:11px}.model-empty .icon{width:35px;height:35px}.preview-caption{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;font-size:9px;color:#9aa1ac;gap:10px}.preview-caption .checkbox-label{font-size:9px}.section-tag{font:8px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.7px;color:#a0a5af}.setup-panel .panel-heading{padding:16px 22px 12px}.setup-panel .panel-heading h2{font-size:11px}.setup-panel .panel-heading .icon{width:14px;height:14px}.setup-fields{display:grid;grid-template-columns:1fr 1fr .7fr;gap:15px;padding:0 22px}.setup-fields>label{font-size:9px;color:#9097a1;display:flex;flex-direction:column;gap:6px}.input-unit{position:relative}.input-unit input,.setup-fields select{width:100%;height:34px;border:1px solid #e7e9ee;background:#fbfcfd;color:#505965;font-size:11px;padding:7px 10px}.input-unit input{padding-right:36px}.input-unit input::-webkit-inner-spin-button{display:none}.input-unit span{position:absolute;right:10px;top:9px;font-size:9px;color:#a0a7b1;pointer-events:none}.input-unit:focus-within input{border-color:#9db1ff}.project-name-row{display:flex;align-items:center;gap:15px;border-top:1px solid #f0f1f5;margin:15px 22px 0;padding:10px 0 12px;font-size:9px;color:#939aa5}.project-name-row input{border:0;background:transparent;color:#697280;flex:1;font-size:10px;padding:3px;max-width:100%;border-radius:3px}.export-strip{padding:15px 17px;background:#ebefff;border:1px solid #e2e8fe;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-1px}.export-strip>div{display:flex;align-items:center;gap:11px}.export-icon{display:grid;place-items:center;width:34px;height:37px;background:#dae2ff;color:#4b66d8;border-radius:8px}.export-icon .icon{width:22px;height:22px}.export-strip h3{font-size:11px;font-weight:600;color:#4d5b85;margin:0 0 2px}.export-strip p{font-size:9px;color:#8a96b9;margin:0}.export-strip .button{min-height:33px;font-size:10px;padding:9px 13px}.export-strip .button .icon{width:14px;height:14px}.app-footer{display:flex;justify-content:space-between;align-items:center;color:#a1a7b2;font-size:9px;padding:21px 0 22px;gap:16px}.app-footer>span{display:flex;gap:5px;align-items:center}.app-footer .icon{width:12px;height:12px}.app-footer>div{display:flex;gap:12px;align-items:center}.app-footer .text-button{font-size:9px;color:#8c95a3}.app-footer .text-button:hover{color:var(--blue)}.global-status{padding:10px 14px;background:#edf2ff;border:1px solid #dfe6fc;border-radius:9px;color:#53668d;font-size:11px;margin-bottom:16px}.global-status.error{background:#fff0ed;border-color:#f2d9d1;color:#ab5342}
.modal{border:1px solid #e3e7ee;border-radius:18px;box-shadow:0 30px 120px #15285135;padding:27px 29px;width:min(560px,calc(100% - 28px));max-height:calc(100dvh - 44px);color:var(--ink);background:#fff}.modal::backdrop{background:#1b263a55;backdrop-filter:blur(5px)}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:21px}.modal-heading h2{font-size:23px;font-weight:550;letter-spacing:-.6px;line-height:1.2;margin:5px 0 0}.modal-heading .eyebrow{font-size:8px}.modal-heading .icon-button{margin-top:-3px;margin-right:-7px}.export-project-summary{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7f8898;background:#f5f7fa;padding:10px 12px;border-radius:7px;margin-bottom:18px}.export-project-summary>span:first-child{font-weight:600;color:#576273;max-width:75%;overflow:hidden;text-overflow:ellipsis}.export-tabs{display:flex;background:#f4f6f9;border:1px solid #ebedf1;border-radius:9px;padding:4px;margin-bottom:21px;gap:3px}.export-tabs button{flex:1;border:0;padding:9px 6px;background:transparent;color:#8d96a6;font-size:11px;display:flex;gap:7px;align-items:center;justify-content:center}.export-tabs button span{font:9px ui-monospace,monospace;opacity:.7}.export-tabs button[aria-selected=true]{background:#fff;color:#4b61ad;box-shadow:0 2px 5px #23385813}.export-format-icon{display:inline-flex;gap:8px;align-items:center;padding:8px 11px;background:#eef2ff;border-radius:7px;color:#5269bb;font:11px ui-monospace,monospace}.export-format-icon.native{background:#eff6e7;color:#637c43}.export-format-icon .icon{width:19px;height:19px}.modal h3{font-size:17px;font-weight:550;letter-spacing:-.3px;margin:12px 0 7px}.modal-copy{color:#8590a1;font-size:12px;margin:0 0 12px;line-height:1.7}.compact-steps{font-size:11px;color:#7b8696;line-height:1.8;margin:12px 0 14px;padding-left:20px}.compact-steps li{padding-left:4px;margin:6px 0}.compact-steps strong{font-weight:550;color:#586475}.compact-steps a{text-underline-offset:3px}.modal-note{font-size:10px;color:#98a1af;line-height:1.6;background:#f7f8fa;border-radius:6px;padding:10px 12px;margin:0 0 18px}.other-exports{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #eceef3;padding-top:18px;margin-top:20px}.other-exports>span{font-size:10px;color:#969fae}.other-exports .button{font-size:9px;padding:7px 8px;min-height:29px}.guide-step{display:flex;gap:16px;margin:0 0 20px}.guide-step>span{font:10px ui-monospace,monospace;color:#8b9bd0;background:#eef2ff;flex-shrink:0;width:28px;height:28px;display:grid;place-items:center;border-radius:7px;margin-top:3px}.guide-step h3{font-size:14px;margin:2px 0 5px}.guide-step p,.guide-note p{font-size:11px;color:#8791a0;margin:0;line-height:1.7}.guide-note{padding:13px 14px;background:#f7f9fc;border-radius:8px;margin-bottom:13px}.guide-note strong{font-size:11px;font-weight:600;color:#67768b;display:block;margin-bottom:4px}.guide-modal .button.full{margin-top:10px}.confirm-modal{max-width:420px}.confirm-modal .modal-heading h2{font-size:20px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:50;background:#253044;color:#fff;border:1px solid #ffffff25;box-shadow:0 8px 30px #20304830;border-radius:10px;padding:12px 20px;max-width:calc(100% - 30px);font-size:12px;text-align:center;pointer-events:none}
@media(min-width:1500px){.model-stage{height:365px}.source-stage{height:170px}.palette-list{max-height:340px}.color-row{padding:8px 7px}.intro h1{font-size:31px}.workspace-grid{grid-template-columns:420px minmax(0,1fr)}}
@media(max-width:1050px){.app-header{padding:0 25px}.app-header nav{margin-left:18px;gap:20px}main{padding:24px 25px 0}.workspace-grid{grid-template-columns:minmax(315px,.8fr) minmax(380px,1.2fr);gap:16px}.panel-heading{padding-left:16px;padding-right:16px}.source-stage{margin:0 16px}.model-stage{height:353px}.extraction-controls{padding-left:16px;padding-right:16px;gap:7px}.preview-caption{padding-left:16px;padding-right:16px;font-size:8px}.rgb-value{font-size:7px}.section-tag{font-size:7px}.export-strip{padding:14px}.export-strip p{font-size:8px}.export-strip h3{font-size:10px}.export-icon{display:none}.app-footer{font-size:8px}.app-footer .text-button{font-size:8px}}
@media(max-width:800px){.app-header{height:68px;padding:0 19px;gap:15px}.app-header nav{margin-left:auto}.nav-active{display:none}.app-header nav .nav-link{font-size:0}.app-header nav .icon{width:19px;height:19px}.brand{font-size:22px}.brand-icon{width:31px;height:34px}.app-header>.button{padding:10px 12px;font-size:10px}.intro{margin-bottom:20px}.intro h1{font-size:26px}.intro-copy{font-size:11px}.local-badge{display:none}main{padding:25px 19px 0}.workspace-grid{grid-template-columns:1fr}.left-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:15px}.source-stage{height:141px}.palette-list{max-height:234px}.color-row{gap:7px;padding:6px 4px}.color-swatch-wrap{width:31px;height:33px}.color-name{font-size:10px}.rgb-value{display:none}.palette-panel .panel-heading h2{gap:6px}.palette-panel .step{display:none}.extraction-controls{flex-wrap:wrap;justify-content:space-between;gap:8px}.extraction-controls>.button{width:100%;min-height:28px}.model-stage{height:390px}.palette-footer{margin-left:15px;margin-right:15px}.app-footer{flex-direction:column;gap:9px;padding:18px 0 22px}.source-footnote{font-size:8px}.right-column{gap:15px}.preview-caption{font-size:9px}.export-strip p{font-size:10px}.export-strip h3{font-size:12px}.export-icon{display:grid}.page-controls{padding-left:10px;padding-right:10px}.page-controls .text-button{font-size:8px}}
@media(max-width:540px){.app-header{padding:0 15px}.app-header>.button{font-size:0;gap:0;padding:10px;min-width:35px}.app-header>.button .icon{width:19px;height:19px}.app-header nav{margin-right:3px}main{padding:24px 15px 0}.intro h1{font-size:25px;letter-spacing:-.8px}.eyebrow{font-size:8px}.intro-copy{font-size:10px}.left-column{display:flex;gap:15px}.source-stage{height:178px}.extraction-controls{flex-wrap:nowrap}.extraction-controls>.button{width:auto;min-height:31px}.palette-list{max-height:320px}.color-row{padding:7px;gap:11px}.color-swatch-wrap{width:38px;height:38px}.color-name{font-size:11px}.rgb-value{display:block;font-size:8px}.palette-panel .step{display:inline}.palette-panel .panel-heading h2{gap:9px}.model-stage{height:330px}.preview-panel .panel-heading{padding-left:16px;padding-right:16px}.preview-caption{font-size:8px;padding:12px}.viewport-topline{left:17px;right:17px}.viewport-bottomline{left:15px;right:12px}.orbit-hint{font-size:7px}.setup-fields{padding:0 16px;gap:10px}.setup-panel .panel-heading{padding-left:16px;padding-right:16px}.project-name-row{margin-left:16px;margin-right:16px}.modal{padding:23px 20px}.modal-heading h2{font-size:21px}.other-exports{flex-wrap:wrap;justify-content:flex-start}.other-exports>span{width:100%}.export-tabs button{font-size:10px}.export-strip h3{font-size:10px}.export-strip p{font-size:8px}.app-footer>span{font-size:8px}.page-controls{padding-left:19px;padding-right:19px}.page-controls .text-button{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.spinner{animation-duration:1.8s}}

/* Revit uses the same palette and model in its local Dynamo Player importer. */
.export-tabs button{min-width:0}.export-format-icon.revit{background:#eaf5f4;color:#3c7d78}.revit-options-note{font-size:11px;line-height:1.7;color:#7b8696;margin:0 0 13px}.revit-options-note strong{font-weight:550;color:#586475}.revit-library-help{margin-top:12px;font-size:10px;color:#8590a1;line-height:1.7}.revit-library-help summary{cursor:pointer;color:#667b9d;list-style-position:inside}.revit-library-help p{padding:9px 11px;background:#f7f9fc;border-radius:6px;margin:8px 0 0}.revit-library-help strong{font-weight:550;color:#586475}
@media(max-width:540px){.export-tabs button{flex-direction:column;gap:3px;padding:8px 4px;line-height:1.3}.export-tabs button span{font-size:8px}}
.revit-version-field{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:11px;color:#657286;margin:15px 0 12px}.revit-version-field select{min-width:175px;padding:9px 11px;border:1px solid #e2e7ef;border-radius:6px;background:#fafbfd;color:#4d5a6f;font-size:11px}.revit-compatibility{font-size:10px;color:#929cab;line-height:1.6;margin:10px 0 17px}.revit-download-status{padding:10px 12px;background:#eef6f3;border:1px solid #dbece5;color:#39735d;border-radius:6px;font-size:11px;line-height:1.6;overflow-wrap:anywhere}.revit-download-status.error{background:#fff3ed;border-color:#f3d8ca;color:#a45e3b}.revit-advanced-body{padding:8px 11px;background:#f7f9fc;border-radius:6px;margin-top:8px}.revit-library-help .revit-advanced-body p{padding:0;background:none;margin:0 0 9px}.revit-library-help .revit-advanced-body p:last-child{margin:9px 0 0}.revit-advanced-body .button{font-size:10px}
#download-revit-graph[aria-disabled=true]{opacity:.6;cursor:wait}

/* Logo and pattern extraction share the same local tracing controls. */
.pattern-panel.is-selected{border-color:#a6b6f7;box-shadow:0 0 0 2px #e9eeff}
.logo-panel-body{padding:0 19px 16px}.logo-intro{font-size:11px;color:#7a8493;margin:0 0 12px}.logo-source-actions{display:flex;gap:8px}.logo-source-actions .button{flex:1;min-width:0}.logo-help{font-size:10px;line-height:1.65;color:#919aa8;margin:12px 0 0}.logo-object-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf0f5;margin-top:15px;padding-top:14px}.logo-object-row .text-button{font-size:10px}.logo-field{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;font-size:10px;color:#87919f}.logo-field>input,.logo-field select{width:100%;height:34px;border:1px solid #e5e9ef;background:#fafbfd;padding:7px 9px;font-size:11px;color:#505c6c}.logo-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.logo-height{font-size:9px;color:#939dac;margin:7px 0 0}.logo-material-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:9px;align-items:end}.logo-material-row>input[type=color]{width:38px;height:34px;padding:3px;border:1px solid #e5e9ef;background:#fff;cursor:pointer;border-radius:6px}.logo-panel.is-selected{border-color:#a6b6f7;box-shadow:0 0 0 2px #e9eeff}.logo-modal{width:min(900px,calc(100% - 28px));padding:26px}.logo-modal .modal-heading{margin-bottom:10px}.logo-source-caption{font-size:10px;color:#959eac;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 0 17px}.logo-editor-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(230px,1fr);gap:22px}.logo-editor-step{font-size:11px;font-weight:600;color:#647184;margin:0 0 10px}.logo-crop-stage,.logo-mask-stage{border:1px solid #e3e7ee;border-radius:9px;background:repeating-conic-gradient(#f0f2f6 0 25%,#fafbfd 0 50%) 50%/16px 16px;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-crop-stage{height:300px;min-height:180px;padding:10px}.logo-mask-stage{height:145px;padding:14px}.logo-crop-stage canvas,.logo-mask-stage canvas{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.logo-crop-stage canvas{touch-action:none;cursor:crosshair}.logo-mask-stage>span{font-size:10px;line-height:1.7;color:#939eae;max-width:170px;text-align:center}.logo-crop-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;color:#9aa3b1;font-size:9px}.logo-crop-toolbar .text-button{font-size:10px}.logo-threshold-field{display:flex;flex-direction:column;gap:7px;font-size:10px;color:#87919f;margin-top:13px}.logo-threshold-field>span{display:flex;justify-content:space-between}.logo-threshold-field output{font:10px ui-monospace,monospace;color:#687994}.logo-threshold-field input{width:100%;margin:2px 0;accent-color:var(--blue)}.logo-trace-status{padding:10px 12px;border:1px solid #e0e7fb;background:#f0f4ff;border-radius:7px;font-size:11px;color:#677b9d;line-height:1.6;margin:18px 0}.logo-trace-status.error{background:#fff4ef;border-color:#f2ded0;color:#a36a49}.logo-dialog-actions{display:flex;justify-content:flex-end;gap:10px}.logo-field select{border-radius:5px}
@media(min-width:801px) and (min-height:800px){.right-column{position:sticky;top:18px}}
@media(max-width:800px){.logo-panel,.pattern-panel{grid-column:1/-1}.logo-editor-grid{grid-template-columns:minmax(0,1.3fr) minmax(215px,1fr)}.logo-source-actions .button{flex:0 1 auto}}
@media(max-width:620px){.logo-modal{padding:21px 18px}.logo-editor-grid{grid-template-columns:minmax(0,1fr);gap:18px}.logo-crop-stage{height:220px}.logo-mask-stage{height:120px}.logo-trace-column{border-top:1px solid #edf0f5;padding-top:16px}.logo-source-actions .button{flex:1}.logo-dialog-actions .button{font-size:11px}}
.logo-auto-colors{margin-top:16px;padding:12px;background:#f8faff;border:1px solid #e8edf7;border-radius:8px}.logo-colors-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;font-size:10px;color:#6b7890}.logo-colors-heading>span{font:7px ui-monospace,monospace;letter-spacing:.7px;color:#96a5bb}.logo-material-swatches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.logo-material-chip{display:flex;align-items:center;gap:7px;min-width:0}.logo-material-swatch{width:23px;height:27px;border-radius:5px;border:1px solid #00000012;flex-shrink:0}.logo-material-detail{display:flex;flex-direction:column;gap:2px;min-width:0}.logo-material-detail strong{font-size:9px;font-weight:550;color:#66758a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo-material-detail>span{font:8px ui-monospace,monospace;color:#8c9aaf}.logo-auto-colors .logo-help{margin-top:9px;font-size:9px}
