:root{color-scheme:dark;--chrome:#30353d;--panel:#282e36;--border:#151a20;--text:#dce1e7;--muted:#a0a9b5;--accent:#7bbce7;--blue:#237eb2}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:12px;background:#1d2228;color:var(--text)}
button,input,select{font:inherit;color:inherit}button,label[for]{-webkit-user-select:none;user-select:none}button{border:1px solid transparent;background:transparent;border-radius:2px;padding:5px 9px;cursor:pointer}button:hover:not(:disabled),label[for]:hover{background:#49515d;border-color:#697789}button:focus-visible,input:focus-visible,select:focus-visible{outline:1px solid #8dceff;outline-offset:-1px}button:disabled{opacity:.38;cursor:default}input,select{background:#20252c;border:1px solid #505761;border-radius:1px;padding:5px 6px;min-width:0}input::placeholder{color:#838d9b}
.cad-shell{height:100dvh;display:flex;flex-direction:column;min-width:780px;background:var(--chrome)}.cad-titlebar{height:34px;flex:none;display:flex;align-items:center;background:#222730;border-bottom:1px solid #131820;gap:10px;padding-right:10px}.cad-brand{width:38px;height:34px;background:linear-gradient(140deg,#cf3b48,#962531);color:#fff;font-size:25px;font-weight:800;text-align:center;font-style:italic;line-height:32px}.quick-access{display:flex;gap:1px}.quick-access button,.quick-open{font-size:19px;line-height:20px;padding:2px 7px;display:inline-block;color:#c5ced9}.workspace-name{color:#c4ccd7;padding-left:8px;border-left:1px solid #4b525e;font-size:11px}.workspace-name span{margin-left:16px}.document-title{flex:1;text-align:center;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#dae0e8;font-size:12px}.local-account{color:#bbc6d3;font-size:11px;white-space:nowrap}.local-account:first-letter{color:#7ac486}.help-button{border:1px solid #65707e;border-radius:50%;padding:0;width:19px;height:19px}
.ribbon-tabs{height:29px;display:flex;align-items:stretch;border-bottom:1px solid #171c22;gap:2px;background:#252b33;flex:none}.ribbon-tabs button{min-width:57px;border-radius:0;padding:5px 13px;font-size:12px}.ribbon-tabs button.active{background:#3a414b;border-top:2px solid #97bedb;padding-top:3px}.file-tab{background:#a73240;color:white;cursor:pointer;display:flex;align-items:center;padding:0 17px}.ribbon-context{margin-left:auto;padding:7px 18px;color:#86929f;font-size:11px}.file-input{display:none}
.ribbon{height:111px;flex:none;display:flex;overflow-x:auto;background:linear-gradient(#3a414b,#303640);border-bottom:1px solid #15191f;padding:5px 7px 0;gap:4px}.ribbon-group{position:relative;display:flex;flex-direction:column;padding:1px 11px 20px 5px;border-right:1px solid #1d2229;flex:none}.ribbon-tools{display:flex;gap:2px;align-items:stretch;height:74px}.ribbon-tool{min-width:57px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 8px;font-size:11px}.ribbon-tool svg{width:31px;height:31px;color:#9ed7f7;margin-bottom:2px}.ribbon-tool.selected{background:#354f62;border-color:#6e91ac}.ribbon-tool:hover{background:#4a5c6d!important}.group-label{position:absolute;bottom:1px;left:0;right:10px;text-align:center;color:#a4acb6;font-size:11px;border-top:1px solid #434a53;padding-top:3px}.layer-ribbon{width:190px;padding-top:9px}.layer-control{display:flex;align-items:center;background:#252b33;border:1px solid #606875;padding:0 6px}.layer-control select{flex:1;border:0;padding:4px;background:transparent}.layer-symbol{color:#adcbd9;font-size:21px}.ribbon-text-button{display:block;padding:6px;cursor:pointer;text-align:left}.import-group{justify-content:center;gap:10px;min-width:320px}.import-group span{color:#a7b0bb;font-size:11px}.export-group{gap:9px;min-width:260px;padding:4px 16px 23px}.export-group select{margin-left:10px}.export-group button{border:1px solid #697481;margin-right:5px}
.document-tabs{height:30px;display:flex;align-items:stretch;flex:none;background:#20252d;border-bottom:1px solid #090e13;padding-left:8px;overflow-x:auto}.document-tab{display:flex;align-items:center;border-right:1px solid #13191f;background:#303741;max-width:260px;flex:none}.document-tab.active{background:#414b57;box-shadow:inset 0 2px #80bce4}.document-tab [role=tab]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:5px 8px;font-size:11px}.file-glyph{color:#9cb5cb;font-size:15px;margin-right:7px}.tab-close{padding:1px 7px;color:#bbc3ce}.tab-new{font-size:17px;padding:0 12px}.tab-spacer{flex:1}.autosave-label{color:#83909f;white-space:nowrap;align-self:center;padding-right:12px;font-size:10px}
.cad-notice{display:flex;justify-content:space-between;align-items:center;flex:none;background:#263d4c;border-bottom:1px solid #4b6a7c;padding:3px 12px;color:#d0e7f7;min-height:27px}.cad-notice.error{background:#532c32;color:#ffd7db;border-color:#84525a}.cad-notice button{padding:0 6px;font-size:18px}
.cad-body{flex:1;min-height:160px;display:flex;position:relative}.drawing-area{flex:1;min-width:0;position:relative;background:#1d2228;overflow:hidden}.drawing-view{width:100%;height:100%;position:absolute;inset:0}.cad-viewport{height:100%;width:100%;position:relative;outline:none;touch-action:none;overflow:hidden}.cad-viewport canvas{display:block;touch-action:none}.view-label{position:absolute;top:9px;left:11px;color:#c0c9d3;pointer-events:none;font-size:11px}.ucs-label{position:absolute;left:23px;bottom:23px;width:58px;height:63px;pointer-events:none;color:#d5dbe1;font-size:11px;border-left:1px solid #d5dbe1;border-bottom:1px solid #d5dbe1}.ucs-label:before{content:"";position:absolute;left:-4px;top:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:8px solid #d5dbe1}.ucs-label:after{content:"";position:absolute;right:0;bottom:-4px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:8px solid #d5dbe1}.ucs-y{position:absolute;top:-17px;left:-4px}.ucs-x{position:absolute;bottom:-6px;right:-14px}.ucs-origin{position:absolute;bottom:-20px;left:-3px;font-size:9px;color:#8493a1}.view-navigation{position:absolute;right:14px;top:50%;display:flex;flex-direction:column;transform:translateY(-50%);background:#303944cb;border:1px solid #4b5866;border-radius:3px;padding:2px}.view-navigation button{font-size:20px;padding:5px 7px;line-height:20px}
.properties-panel{width:258px;flex:none;background:var(--panel);border-left:3px solid #151b22;overflow:auto}.panel-tabs{height:29px;display:flex;background:#20262e;border-bottom:1px solid #171d24}.panel-tabs button{flex:1;border-radius:0;font-size:11px}.panel-tabs button.active{background:#38434f;border-bottom:2px solid #76b4de}.panel-heading{padding:11px 12px 8px;color:#dae2eb;font-size:11px;font-weight:600;border-bottom:1px solid #424a55}.panel-heading span{float:right;font-weight:400;color:#9ba9b8}.layer-add{display:flex;margin:10px 8px;gap:4px}.layer-add input{width:100%;font-size:11px}.layer-add button{border:1px solid #596777;font-size:16px;padding:2px 8px}.layer-table-header{display:grid;grid-template-columns:30px 30px 1fr;font-size:10px;color:#9fa9b5;border-top:1px solid #48515d;border-bottom:1px solid #48515d;padding:5px 4px}.layer-table-header span{text-align:center}.layer-table-header span:last-child{text-align:left;padding-left:7px}.layer-row{display:grid;grid-template-columns:30px 30px 1fr;padding:1px 4px;border-bottom:1px solid #333d48;font-size:11px}.layer-row.current{background:#31465a}.layer-row button{padding:4px 2px}.layer-row>button:first-child{color:#efca72}.layer-name{display:flex;align-items:center;gap:8px;text-align:left;overflow:hidden;white-space:nowrap}.layer-name span{width:11px;height:11px;border:1px solid #717986;display:inline-block;flex:none}.panel-note{font-size:11px;line-height:1.8;color:#93a1b0;padding:10px 12px;margin:0}.property-list{display:grid;grid-template-columns:82px 1fr;margin:0;font-size:11px}.property-list dt,.property-list dd{font-weight:400;margin:0;padding:8px;border-bottom:1px solid #3d4651;overflow:hidden}.property-list dt{color:#a7b4c1;border-right:1px solid #3d4651}.property-list select{width:100%;padding:1px}.property-input{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;color:#aebdcb}.property-input input{width:155px}.panel-action{display:block;width:calc(100% - 20px);margin:10px;border:1px solid #647689;background:#354657;padding:7px}.panel-actions{display:flex;margin:10px;gap:5px}.panel-actions button{flex:1;background:#354657;border:1px solid #647689}.export-label{display:flex;align-items:center;gap:8px;padding:12px 10px;font-size:11px}.export-label select{flex:1}.compatibility-warnings{margin:10px;padding:10px;background:#3b352c;border:1px solid #695b45;color:#dbcca9;font-size:11px}.compatibility-warnings p{margin:9px 0 0;line-height:1.6}
.command-area{height:80px;flex:none;background:#303740;border-top:3px solid #171d24;color:#bcc7d3}.command-history{height:35px;padding:5px 13px;display:flex;gap:14px;align-items:center;border-bottom:1px solid #1c242d;font-size:11px}.command-history>span{color:#7f8d9c;white-space:nowrap}.command-history>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.command-history button{padding:3px 9px;color:#9aadc1;font-size:11px}.command-area form{height:40px;display:flex;align-items:center;gap:9px;padding:0 10px;background:#3b444f}.command-chevron{font-size:16px;color:#85bce2}.command-area label{white-space:nowrap;color:#d0dce7;font-size:12px}.command-area input{flex:1;background:transparent;border:0;padding:5px 0;font-family:"Cascadia Mono",Consolas,"Microsoft YaHei",monospace;font-size:12px;color:#fff}.command-area input:focus{outline:none}.command-area form button{color:#b6c6d8;white-space:nowrap;font-size:11px}
.status-bar{height:27px;flex:none;display:flex;align-items:center;background:#202730;border-top:1px solid #10171e;gap:2px;font-size:10px;white-space:nowrap;overflow:hidden}.model-tab{align-self:stretch;display:flex;align-items:center;background:#5d6b7a;padding:0 22px;color:#fff;border-right:1px solid #73818e}.coordinates{padding:0 12px;color:#a6b6c7;font-family:Consolas,monospace;font-size:11px;min-width:265px}.status-spacer{flex:1}.snap-label{color:#85dda1;margin-right:8px}.selection-count{color:#9baec0;padding:0 9px}.status-bar button{height:24px;padding:2px 10px;border-left:1px solid #3f4b58;border-radius:0;font-size:10px}.status-bar button.active{background:#245b81;color:#dff0ff;box-shadow:inset 0 -2px #68afdf}.units-label{padding:0 10px;color:#8a9db1}
.empty-workspace{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9caebe;gap:12px}.empty-workspace h1{font-size:20px;margin:0;color:#d4e1ec;font-weight:400}.empty-mark{font-size:48px;font-weight:800;font-style:italic;color:#83bde4}.empty-workspace button,.empty-workspace label{border:1px solid #658398;background:#2b4c63;padding:8px 30px;cursor:pointer}.empty-workspace p{margin:0 0 10px}
.cad-modal-backdrop{position:fixed;inset:0;background:#0008;z-index:50;display:flex;align-items:center;justify-content:center}.cad-modal{position:relative;width:580px;max-width:90vw;background:#313c49;border:1px solid #708196;padding:25px;color:#c9d7e4;box-shadow:0 15px 60px #0009}.cad-modal h2{font-size:19px;font-weight:500;margin:0 0 20px}.cad-modal p{line-height:1.8;font-size:12px}.modal-close{position:absolute;right:8px;top:6px;font-size:23px}
#blazor-error-ui{display:none;position:fixed;bottom:0;left:0;width:100%;background:#6e3039;color:#fff;padding:15px;z-index:100}#blazor-error-ui a{color:white}
.loading-progress{position:absolute;width:80px;height:80px;top:40%;left:calc(50% - 40px);transform:rotate(-90deg)}.loading-progress circle{fill:none;stroke:#3c4855;stroke-width:5}.loading-progress circle:last-child{stroke:#7bbce7;stroke-dasharray:calc(3.14159 * var(--blazor-load-percentage,0%) * .8),500%}.loading-progress-text{position:absolute;top:calc(40% + 100px);width:100%;text-align:center}
@media(max-width:1120px){.properties-panel{width:225px}.ribbon-tool{min-width:51px;padding:5px}.layer-ribbon{width:160px}.workspace-name{display:none}.coordinates{min-width:210px;font-size:10px}.status-bar button{padding:2px 7px}.local-account{font-size:10px}}
@media(max-width:880px){.properties-panel{width:195px}.ribbon-context,.autosave-label,.units-label{display:none}.ribbon{height:104px}.ribbon-tool{min-width:47px}.ribbon-tool svg{width:27px;height:27px}.layer-ribbon{width:140px}.ribbon-group{padding-right:6px}.status-bar .coordinates{min-width:180px;padding:0 7px}.selection-count{padding:0 3px}}


.zoom-settings{width:258px;gap:3px;padding-top:2px}.zoom-settings label{display:flex;justify-content:space-between;align-items:center;font-size:12px}.zoom-settings output{color:#a7dcff;font-variant-numeric:tabular-nums}.zoom-settings input[type=range]{width:100%;height:18px;padding:0;margin:0;accent-color:#80c6f3;cursor:pointer}.zoom-setting-actions{display:flex;align-items:center;gap:6px;font-size:10px;color:#acb5c0}.zoom-setting-actions span:nth-child(2){margin-left:auto}.zoom-setting-actions button{font-size:10px;padding:1px 5px;border:1px solid #697481;margin-left:10px}.zoom-settings small{font-size:10px;color:#a7b0bb}

.drawing-loading{z-index:100}
.drawing-loading .cad-modal{width:440px;border-radius:6px}
.drawing-loading h2{margin-bottom:16px}
.loading-file{font-size:14px;overflow-wrap:anywhere;color:#eef4fc}
.drawing-loading p{margin:14px 0 8px}
.drawing-loading progress{display:block;width:100%;height:10px;accent-color:#66b5f6}
.drawing-loading small{display:block;margin-top:18px;color:#b5c3d3;font-size:12px}
.loading-detail{font-size:12px;text-align:right;margin-top:6px}

/* Compact CAD ribbon and docked property palette. */
.cad-shell{position:relative}
.cad-titlebar{height:30px;background:#202832}
.ribbon-tabs{height:27px;background:#202832}
.ribbon{height:122px;background:#394352;gap:0;padding-top:4px}
.ribbon-group{padding:0 10px 19px 5px;border-right:1px solid #242d38}
.ribbon-tools{height:92px;gap:0}
.ribbon-tool{min-width:54px;padding:4px 7px}
.ribbon-tool svg{width:32px;height:32px}
.group-label{color:#dce3ed;font-size:12px}
.document-tabs{background:#202832}
.properties-panel{order:-1;position:relative;width:330px;flex:0 0 330px;background:#394352;border:1px solid #202733;border-radius:4px;padding-left:25px}
.properties-panel.collapsed{width:27px;flex-basis:27px;padding:0;overflow:hidden}
.properties-panel.collapsed>*:not(.palette-toggle){display:none}
.palette-toggle{position:absolute;top:3px;left:1px;width:22px;padding:3px 0;font-size:22px;z-index:2}
.selection-heading{margin:10px 8px;background:#505e73;border:1px solid #242d39;padding:9px 12px;font-size:16px}
.property-section{margin:8px 8px 0;background:#394352}
.property-section summary{background:#2d3542;padding:7px 10px;cursor:pointer;font-size:14px;font-weight:600}
.property-list{display:grid;grid-template-columns:46% 54%;margin:0 8px 8px}
.property-section .property-list{margin:0}
.property-list dt,.property-list dd{margin:0;min-width:0;min-height:28px;padding:5px 7px;border:1px solid #2c3542;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.property-list dt{color:#c8d6e9}
.property-list dd{background:#3d4756;color:#f0f2f6}
.panel-heading{background:#2d3542;color:#eff2f7;margin:8px;padding:7px 9px}
.property-input{margin:5px 8px}
.property-input input,.property-input select{background:#424e60}
.command-area{position:absolute;bottom:30px;left:calc(330px + 8%);right:8%;z-index:5;border:1px solid #687583;box-shadow:0 2px 8px #0006;opacity:.96}
.command-area form{height:30px;background:#536071}
.command-history{height:23px;background:#303b49}
.drawing-area{padding-bottom:60px}
.status-bar{height:28px}
@media(max-width:1120px){.properties-panel{width:285px;flex-basis:285px}.command-area{left:300px;right:4%}}
@media(max-width:880px){.properties-panel{width:240px;flex-basis:240px}.command-area{left:265px;right:10px}.ribbon-tool{min-width:48px}}
.pattern-browser{margin:8px}
.pattern-browser summary{padding:7px;background:#2d3542;cursor:pointer}
.pattern-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:6px 0;max-height:280px;overflow:auto}
.pattern-card{min-width:0;background:#28313d;border:1px solid #596779;padding:4px;color:#d3e5f4}
.pattern-card.active{border-color:#8dcfff;background:#345370}
.pattern-card svg{display:block;width:100%;height:45px;background:#1f2832}
.pattern-card span{display:block;overflow:hidden;text-overflow:ellipsis;font-size:9px;margin-top:4px;white-space:nowrap}
.current-pattern,.pattern-gallery-title{margin:8px;color:#dbe7f3}
.pattern-gallery{max-height:350px}
.pattern-card svg{height:58px}
.cad-manager{width:960px;max-width:94vw;max-height:88vh;display:flex;flex-direction:column;padding:20px;background:#394352}
.manager-toolbar{display:flex;gap:8px;margin:0 0 12px}
.manager-toolbar button,.cad-manager footer button{border:1px solid #788da4;background:#4b5c70}
.manager-table-scroll{overflow:auto;max-height:60vh}
.manager-table{width:100%;border-collapse:collapse}
.manager-table th,.manager-table td{padding:6px 9px;border:1px solid #556174;text-align:left}
.manager-table th{background:#283341;position:sticky;top:0}
.manager-table input[type=color]{width:52px;height:28px;padding:2px}
.manager-table select{max-width:160px}
.cad-manager footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.manager-error{color:#ffb5b5}
.style-manager-body{display:flex;gap:20px;overflow:auto}
.style-list{width:220px;max-height:50vh;overflow:auto;background:#27313e}
.style-list button{display:block;width:100%;text-align:left}
.style-list button.active{background:#547496}
.style-fields{flex:1}
.style-fields label{display:flex;justify-content:space-between;align-items:center;margin:10px 0}
.style-fields input{width:60%}
.layer-ribbon{width:320px}
.layer-picker-trigger{display:flex;align-items:center;gap:5px;width:100%;background:#505d72;border:1px solid #1f2835;padding:3px 5px;height:34px}
.layer-state{font-size:18px;color:#ffd276}
.layer-color{display:inline-block;width:22px;height:22px;flex:0 0 22px;border:1px solid #0b1018}
.layer-picker-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;min-width:0}
.layer-picker-popup{position:fixed;margin:0;padding:2px;border:1px solid #758398;background:#4b586e;color:#f1f4f8;overflow:auto;box-shadow:0 8px 24px #0008}
.layer-picker-row{display:flex;align-items:center;gap:3px;min-height:39px;padding:1px 4px}
.layer-picker-row.current{background:#2e3949}
.layer-picker-row>button:not(.layer-picker-name){padding:3px;width:28px;font-size:19px;color:#ffd276}
.layer-picker-row .layer-picker-name{padding:7px}
.file-details{max-height:85vh;overflow:auto;padding-top:36px}
@media(max-width:880px){.layer-ribbon{width:280px}}
.width-ribbon{width:150px;gap:8px}.width-ribbon input{width:110px;margin-top:7px}.width-ribbon small{color:#b5c3d4;font-size:10px}
.width-ribbon{width:175px;gap:6px}.width-ribbon label{display:flex;align-items:center;justify-content:space-between;gap:5px}.width-ribbon input{width:85px;margin-top:0}
