:root{font-family:Be Vietnam Pro,Inter,system-ui,sans-serif;color:#232323;background:#f5f4f0;font-synthesis:none;--brand: #ffc900;--ink: #232323;--muted: #77756f;--line: #e6e3db;--card: #fff;--radius: 18px;--shadow: 0 18px 50px rgba(35, 35, 35, .08)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:320px;min-height:100vh;background:#f6f5f1}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.brand{display:flex;align-items:center;gap:11px;min-width:170px}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand);color:#171717;font-weight:800;font-size:21px;box-shadow:inset 0 -2px #0000001a}.brand>span:last-child{display:grid;line-height:1}.brand strong{font-size:17px;letter-spacing:-.02em}.brand small{margin-top:5px;color:#8a8882;font-size:14px;text-transform:uppercase;letter-spacing:.14em}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.07fr) minmax(420px,.93fr)}.auth-brand{position:relative;overflow:hidden;min-height:680px;padding:42px 5.5vw;color:#fff;background:radial-gradient(circle at 75% 18%,#494949 0,#282828 33%,#191919 72%);display:flex;flex-direction:column}.brand-light small{color:#ffffff8c}.auth-copy{position:relative;z-index:2;margin:auto 0;max-width:650px}.eyebrow{color:var(--brand);font-size:14px;font-weight:700;letter-spacing:.18em}.eyebrow.dark{color:#876b00}.auth-copy h1{margin:20px 0;font-size:clamp(46px,5vw,78px);line-height:1.05;letter-spacing:-.055em}.auth-copy h1 em{color:var(--brand);font-style:normal}.auth-copy>p{max-width:540px;color:#ffffffa6;font-size:17px;line-height:1.75}.trust-row{display:flex;gap:26px;margin-top:36px;color:#ffffffc7;font-size:16px}.trust-row span{display:flex;gap:8px;align-items:center}.auth-orbit{position:absolute;right:-220px;bottom:-250px;width:620px;height:620px;border:1px solid rgba(255,201,0,.16);border-radius:50%}.auth-orbit:before,.auth-orbit:after{content:"";position:absolute;inset:80px;border:1px solid rgba(255,255,255,.08);border-radius:50%}.auth-orbit:after{inset:170px;background:#ffc9000a}.orbit-cube{position:absolute;left:128px;top:85px;width:90px;height:90px;transform:rotate(-12deg);background:var(--brand);color:#222;display:grid;place-items:center;font-size:42px;font-weight:800;border-radius:22px;box-shadow:0 25px 70px #ffc90038}.auth-panel{display:grid;place-items:center;padding:48px;background:#f8f7f4}.login-card{width:min(430px,100%)}.mobile-brand{display:none}.step-label{display:inline-flex;padding:7px 10px;border-radius:8px;color:#856900;background:#fff4bd;font-size:13px;font-weight:700;letter-spacing:.13em}.login-card h2{margin:18px 0 8px;font-size:34px;letter-spacing:-.04em}.login-card>p{margin:0 0 31px;font-size:14px}.login-card>label{display:block;margin:18px 0 8px;font-size:15px;font-weight:600}.login-card input{width:100%;height:51px;border:1px solid #dfdcd4;background:#fff;border-radius:12px;padding:0 15px;outline:none;transition:.2s}.login-card input:focus{border-color:#cfaa13;box-shadow:0 0 0 3px #ffc90029}.password-wrap{position:relative}.password-wrap button{position:absolute;right:8px;top:8px;width:36px;height:36px;border:0;background:transparent;color:#777}.login-meta{display:flex;justify-content:space-between;align-items:center;margin:15px 0 24px;font-size:15px}.check{display:flex;align-items:center;gap:8px;color:#6e6c67}.check input{width:16px;height:16px;accent-color:var(--brand)}.text-btn{border:0;background:transparent;color:#8a6e00;font-weight:600;font-size:15px}.primary-btn{min-height:45px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 18px;border:0;border-radius:12px;background:var(--brand);color:#1f1f1f;font-weight:700;font-size:16px;box-shadow:0 8px 22px #b48f002e;transition:transform .2s,filter .2s}.primary-btn:hover{filter:brightness(.97);transform:translateY(-1px)}.primary-btn.wide{width:100%;min-height:52px;justify-content:space-between;padding:0 20px}.primary-btn.loading{opacity:.75;pointer-events:none}.demo-note{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px!important;color:#98958e!important;font-size:14px!important}.demo-note span{width:6px;height:6px;background:#52b788;border-radius:50%}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:74px;padding:0 max(24px,4vw);display:flex;align-items:center;gap:44px;background:#fffffff0;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar nav{height:100%;display:flex;gap:30px;align-items:center;margin-right:auto}.topbar nav a{position:relative;color:#77756f;font-size:15px;font-weight:600}.topbar nav a.active{color:var(--ink)}.topbar nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-28px;height:3px;border-radius:3px;background:var(--brand)}.account{display:flex;align-items:center;gap:10px}.plan-badge{padding:5px 8px;color:#755e00;background:#fff3ad;border-radius:7px;font-size:13px;font-weight:800;letter-spacing:.08em}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#2d2d2d;color:#fff;font-size:14px;font-weight:700}.account-copy{display:grid;gap:3px}.account-copy strong{font-size:14px}.account-copy small{color:#99968f;font-size:13px}.icon-btn{border:0;background:transparent;color:#999;transform:rotate(90deg)}.workspace{width:min(1260px,calc(100% - 48px));margin:0 auto;padding:52px 0 60px;flex:1}.workspace-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.workspace-head h1{margin:8px 0 5px;font-size:34px;letter-spacing:-.04em}.workspace-head p{margin:0;color:var(--muted);font-size:16px}.overview-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:15px;margin-bottom:18px}.overview-grid article{min-height:130px;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.usage-main,.stat-card{display:flex;align-items:flex-start;gap:15px}.usage-main>div,.stat-card>div{display:grid;gap:5px}.usage-main span:not(.metric-icon),.stat-card span{color:#8d8a83;font-size:14px;font-weight:600}.usage-main strong,.stat-card strong{font-size:21px;letter-spacing:-.03em}.usage-main strong small{color:#aaa69e;font-size:16px;font-weight:500}.stat-card small{color:#aaa69e;font-size:13px}.metric-icon{flex:0 0 40px;height:40px;display:grid;place-items:center;border-radius:12px}.metric-icon.amber{color:#856900;background:#fff4bd}.metric-icon.blue{color:#356ba6;background:#e6f1ff}.metric-icon.green{color:#287859;background:#e2f5ec}.progress{height:5px;margin:18px 0 8px;background:#eeece6;border-radius:8px;overflow:hidden}.progress span{display:block;height:100%;background:var(--brand);border-radius:inherit}.usage-card p{margin:0;color:#aaa69e;font-size:13px}.models-card{overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #23232309}.models-toolbar{min-height:80px;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.models-toolbar>div:first-child{display:flex;align-items:center;gap:9px}.models-toolbar h2{margin:0;font-size:14px}.models-toolbar span{min-width:22px;height:22px;display:grid;place-items:center;border-radius:7px;color:#817e76;background:#f1f0eb;font-size:13px}.toolbar-actions{display:flex;gap:7px}.search{height:37px;min-width:230px;padding:0 11px;display:flex;align-items:center;gap:8px;color:#aaa69e;border:1px solid var(--line);border-radius:10px}.search input{width:100%;border:0;outline:0;font-size:14px}.view-toggle{width:37px;height:37px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;color:#aaa69e;background:#fff}.view-toggle.active{color:#3c3b37;background:#f3f1ea}.table-head,.model-row{display:grid;grid-template-columns:minmax(260px,2.1fr) .65fr .7fr .9fr 130px;align-items:center;column-gap:18px;padding:0 22px}.table-head{height:40px;color:#9a978f;background:#faf9f6;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.model-row{min-height:72px;border-top:1px solid #efede7;color:#68665f;font-size:14px;transition:background .2s}.model-row:hover{background:#fffdf4}.model-name{padding:0;display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none}.model-name>span:last-child{display:grid;gap:6px}.model-name strong{color:#343330;font-size:14px;font-weight:600}.model-name small{display:flex;align-items:center;gap:5px;color:#929088;font-size:13px}.model-name i{width:5px;height:5px;background:#58b98b;border-radius:50%}.file-thumb{width:42px;height:42px;display:grid;place-items:center;border-radius:12px}.file-thumb.amber{color:#826600;background:#fff1a6}.file-thumb.blue{color:#3d70a6;background:#e7f2ff}.file-thumb.violet{color:#7c5da7;background:#f0e9fc}.file-thumb.green{color:#2d7c5d;background:#e3f5ed}.format-pill{display:inline-flex;padding:5px 7px;border-radius:6px;background:#f0efea;color:#6c6a64;font-size:12px}.row-actions{display:flex;justify-content:flex-end;gap:4px}.row-actions button{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:8px;color:#89867f;background:transparent}.row-actions button:hover{color:#443c20;background:#fff2ad}.empty{padding:50px;text-align:center;color:#999}footer{padding:20px max(24px,4vw);display:flex;justify-content:space-between;color:#a09d95;font-size:13px;border-top:1px solid var(--line);background:#fff}dialog{padding:0;border:0}dialog::backdrop{background:#1414148f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.viewer-dialog{width:min(1680px,calc(100vw - 24px));height:min(980px,calc(100vh - 24px));overflow:hidden;border-radius:16px;background:#f4f3ef;box-shadow:0 28px 100px #00000057}.viewer-dialog[open]{display:grid;grid-template-rows:66px 1fr 34px}.viewer-top{padding:0 14px 0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dedbd2;background:#fff}.viewer-top>div{display:flex;align-items:center;gap:11px}.viewer-top>div:first-child>span:last-child{display:grid;gap:4px}.viewer-top strong{font-size:15px}.viewer-top small{color:#8b8881;font-size:13px}.viewer-tools button{height:34px;padding:0 10px;display:flex;align-items:center;gap:6px;border:1px solid #e4e1da;border-radius:9px;color:#68665f;background:#fff;font-size:13px}.viewer-tools button:hover,.viewer-tools button.active{color:#614e00;border-color:#e6c33e;background:#fff7cb}.viewer-tools .close-btn{width:36px;padding:0;justify-content:center;margin-left:5px;color:#333;background:#f4f2ed}.viewer-canvas{position:relative;min-height:0;overflow:hidden}.viewer-canvas canvas{display:block;width:100%;height:100%}.viewer-loading{position:absolute;z-index:3;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;background:#f4f3efeb}.viewer-loading[hidden]{display:none}.viewer-loading.error strong{color:#b44135}.loading-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;color:#222;background:var(--brand);font-size:24px;font-weight:800;animation:pulse 1.2s ease-in-out infinite}.viewer-loading strong{font-size:14px}.loading-bar{width:220px;height:5px;overflow:hidden;border-radius:9px;background:#ddd9cf}.loading-bar span{display:block;height:100%;width:10%;border-radius:inherit;background:var(--brand);transition:width .3s}.viewer-info{padding:0 16px;display:flex;align-items:center;justify-content:space-between;color:#8f8c85;border-top:1px solid #dedbd2;background:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.viewer-top>.close-btn{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:9px;color:#4e4c47;background:#f1efea}.viewer-workspace{min-height:0;display:grid;grid-template-rows:46px 1fr;background:#efeee9}.viewer-commandbar{padding:5px 8px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #d9d6ce;background:#faf9f6}.command-group{display:flex;align-items:center;gap:4px;padding-right:8px;border-right:1px solid #dedbd3}.command-group.push-right{margin-left:auto;padding-right:0;border-right:0}.viewer-commandbar button,.viewer-commandbar select,.command-download{height:34px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:8px;color:#64615b;background:transparent;font-size:13px;font-weight:600}.viewer-commandbar button:hover,.viewer-commandbar button.active,.command-download:hover{color:#514000;border-color:#e7c842;background:#fff4b7}.viewer-commandbar select{border-color:#dedbd3;background:#fff;outline:0}.viewer-layout{min-height:0;display:grid;grid-template-columns:245px minmax(340px,1fr) 310px}.model-panel,.property-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff}.model-panel{border-right:1px solid #d9d6ce}.property-panel{border-left:1px solid #d9d6ce}.panel-tabs{height:43px;padding:0 12px;display:flex;gap:18px;border-bottom:1px solid #ebe8e1}.panel-tabs button{position:relative;padding:0;border:0;color:#918e87;background:transparent;font-size:13px;font-weight:700}.panel-tabs button.active{color:#373531}.panel-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--brand)}.panel-search{height:36px;margin:10px 11px;padding:0 9px;display:flex;align-items:center;gap:7px;color:#aaa69e;border:1px solid #e3e0d8;border-radius:8px}.panel-search input{min-width:0;flex:1;border:0;outline:0;font-size:13px}.category-list,.spatial-tree{min-height:0;flex:1;overflow:auto;padding:0 6px 10px}.category-row{min-height:34px;padding:5px 7px;display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;border-radius:7px;color:#5f5d57;font-size:13px}.category-row:hover{background:#f7f5ef}.category-row input{width:13px;height:13px;accent-color:var(--brand)}.category-row span{min-width:0;display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-row b{min-width:22px;padding:3px 5px;border-radius:5px;color:#8c8981;background:#f1f0eb;text-align:center;font-size:12px}.category-all{margin-bottom:5px;color:#33312d;border-bottom:1px solid #efede7;border-radius:0;font-weight:700}.panel-placeholder{padding:24px 12px;color:#aaa69e;text-align:center;font-size:13px;line-height:1.7}.tree-node{min-height:30px;padding-left:calc(8px + var(--level) * 14px);display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:5px;color:#5f5d57;font-size:12px}.tree-node b{color:#aaa69e;font-size:11px}.panel-control{padding:12px;border-top:1px solid #e8e5de}.panel-control label{display:flex;justify-content:space-between;color:#66635d;font-size:13px;font-weight:700}.panel-control output{color:#9c7c00}.panel-control input{width:100%;margin-top:9px;accent-color:var(--brand)}.property-title{min-height:54px;padding:0 14px;display:flex;align-items:center;gap:9px;border-bottom:1px solid #e8e5de}.property-title>span{color:#876b00}.property-title>div{display:grid;gap:4px}.property-title strong{font-size:14px}.property-title small{color:#9c9991;font-size:12px}.property-actions{padding:8px 12px;display:flex;gap:5px;border-bottom:1px solid #ebe8e1}.property-actions button{height:30px;flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid #e2dfd7;border-radius:7px;color:#66635d;background:#fff;font-size:12px}.property-content{min-height:0;flex:1;overflow:auto;padding:10px}.property-empty{min-height:230px;display:grid;place-content:center;justify-items:center;gap:10px;color:#b3afa7;text-align:center}.property-empty p{max-width:200px;margin:0;font-size:13px;line-height:1.7}.element-card{padding:11px;display:flex;align-items:center;gap:9px;border-radius:9px;color:#6f5800;background:#fff4ba}.element-card>div{display:grid;gap:3px}.element-card strong{color:#38352d;font-size:13px}.element-card small{color:#8a7540;font-size:11px}.property-set{margin-top:9px;border:1px solid #ebe8e1;border-radius:9px;overflow:hidden}.property-set summary{height:34px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;color:#4f4d48;background:#f8f7f3;cursor:pointer;list-style:none;font-size:12px;font-weight:700}.property-set summary span{padding:3px 5px;border-radius:5px;color:#817e76;background:#ebe9e3;font-size:11px}.property-row{min-height:34px;padding:7px 10px;display:grid;grid-template-columns:.9fr 1.1fr;gap:8px;align-items:start;border-top:1px solid #efede7;font-size:11.5px}.property-row span{color:#8d8a83}.property-row b{color:#47453f;font-weight:500;overflow-wrap:anywhere}.no-property{padding:12px;margin:0;color:#aaa69e;font-size:12px}.tool-hud{position:absolute;z-index:5;left:14px;top:14px;min-height:38px;padding:6px 8px 6px 11px;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.5);border-radius:10px;color:#fff;background:#232323e6;box-shadow:0 10px 30px #0003;font-size:13px}.tool-hud svg{color:var(--brand)}.tool-hud select,.tool-hud button{height:25px;border:0;border-radius:6px;color:#333;background:#fff;font-size:12px}.tool-hud button{color:#574500;background:var(--brand)}.section-panel{position:absolute;z-index:5;left:14px;bottom:14px;width:310px;padding:13px;border:1px solid rgba(255,255,255,.7);border-radius:12px;background:#fffffff5;box-shadow:0 16px 40px #0000002e;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title strong{display:flex;align-items:center;gap:7px;font-size:13px}.section-title label{display:flex;align-items:center;gap:5px;color:#77736c;font-size:12px}.section-title input{accent-color:var(--brand)}.section-axis{height:33px;display:grid;grid-template-columns:18px 1fr;grid-template-rows:1fr 1fr;align-items:center;column-gap:7px}.section-axis b{grid-row:1 / 3;color:#8a6e00;font-size:12px}.section-axis input{width:100%;height:10px;margin:0;accent-color:var(--brand)}.section-panel>button{width:100%;height:29px;margin-top:9px;border:1px solid #dfdcd4;border-radius:7px;color:#64615b;background:#f5f3ed;font-size:12px}.secondary-btn{min-height:38px;padding:0 13px;display:inline-flex;align-items:center;gap:7px;border:1px solid #dedbd3;border-radius:9px;color:#5c5953;background:#fff;font-size:13px;font-weight:700}.share-dialog{width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 32px);padding:28px;border-radius:18px;overflow:auto;box-shadow:var(--shadow)}.share-dialog[open]{display:block}.share-heading{display:flex;align-items:center;gap:13px;padding-right:35px}.share-heading h3{margin:0 0 5px;font-size:20px}.share-heading p{margin:0;color:#85827b;font-size:14px}.share-form{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.share-form>label{display:grid;gap:7px;color:#55524d;font-size:13px;font-weight:700}.share-form label small{color:#aaa69e;font-weight:400}.share-form input[type=password],.share-form select{width:100%;height:40px;padding:0 10px;border:1px solid #dedbd3;border-radius:9px;background:#fff;outline:0;font-size:13px}.share-check{grid-column:1 / -1;display:flex!important;grid-auto-flow:column;justify-content:start;align-items:center;gap:8px!important}.share-check input{width:15px;height:15px;accent-color:var(--brand)}.share-form .primary-btn{grid-column:1 / -1}.share-result{margin-top:15px;padding:12px;border-radius:10px;background:#fff9d9}.share-result>label{font-size:12px;font-weight:700}.share-list-head{margin-top:23px;padding-bottom:9px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7e4dd}.share-list-head strong{font-size:14px}.share-list-head span{min-width:22px;padding:4px;border-radius:6px;text-align:center;color:#856900;background:#fff2ad;font-size:12px}.share-list{max-height:210px;overflow:auto}.share-row{min-height:58px;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;border-bottom:1px solid #efede7}.share-status{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:#806600;background:#fff2ad}.share-row>div{display:grid;gap:4px}.share-row strong{font-size:13px}.share-row small{color:#939088;font-size:11px}.share-row button{height:27px;padding:0 8px;border:1px solid #e7c9c5;border-radius:7px;color:#a34b41;background:#fff8f7;font-size:11px}.share-row.revoked{opacity:.55}.share-unlock{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 50% 0,#fff7cd,#f4f3ef 55%)}.unlock-card{width:min(410px,100%);padding:34px;border:1px solid #e3dfd5;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.unlock-card .brand-mark{margin-bottom:24px}.unlock-card h1{margin:10px 0 7px;font-size:25px}.unlock-card p{margin:0 0 22px;color:#8c8981;font-size:14px}.unlock-card label{display:block;margin-bottom:7px;font-size:13px;font-weight:700}.unlock-card input{width:100%;height:44px;margin-bottom:14px;padding:0 12px;border:1px solid #dedbd3;border-radius:9px;outline:0}.unlock-card small{display:block;min-height:20px;margin-top:10px;color:#a94338;text-align:center;font-size:12px}.compact-dialog{width:min(480px,calc(100vw - 32px));padding:34px;border-radius:18px;box-shadow:var(--shadow)}.compact-dialog[open]{display:block}.dialog-x{position:absolute;right:16px;top:16px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:9px;background:#f2f0eb}.dialog-icon{width:48px;height:48px;display:grid;place-items:center;color:#725b00;background:#fff1a7;border-radius:14px}.compact-dialog h3{margin:20px 0 8px;font-size:20px;letter-spacing:-.03em}.compact-dialog p{margin:0 0 23px;color:#807e77;font-size:14px;line-height:1.7}.compact-dialog label{font-size:14px;font-weight:700}.copy-field{height:45px;margin-top:7px;display:flex;border:1px solid #ddd9cf;border-radius:10px;overflow:hidden}.copy-field input{min-width:0;flex:1;padding:0 12px;border:0;outline:0;color:#6f6c65;font-size:13px}.copy-field button{padding:0 14px;border:0;color:#584700;background:var(--brand);font-size:14px;font-weight:700}.dialog-foot{margin-top:17px;display:flex;align-items:center;gap:7px;color:#939087;font-size:13px}.toast{position:fixed;right:24px;bottom:24px;z-index:100;padding:13px 16px;display:flex;align-items:center;gap:8px;border-radius:11px;color:#fff;background:#2d2d2d;box-shadow:0 14px 40px #00000038;font-size:14px;transform:translateY(20px);opacity:0;pointer-events:none;transition:.25s}.toast.show{transform:translateY(0);opacity:1}.toast.error{background:#a94338}.shared-shell{min-height:100vh;display:grid;grid-template-rows:70px 1fr 44px;background:#f4f3ef}.shared-top{padding:0 max(20px,3vw);display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid var(--line)}.readonly-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:9px;color:#625000;background:#fff4bd;font-size:14px;font-weight:700}.shared-main{min-height:0;padding:18px max(16px,2vw);display:grid;grid-template-rows:auto 1fr;gap:13px}.shared-head{display:flex;justify-content:space-between;align-items:flex-end}.shared-head h1{margin:7px 0 4px;font-size:24px;letter-spacing:-.035em}.shared-head p{margin:0;color:var(--muted);font-size:14px}.shared-actions{display:flex;gap:7px}.shared-actions button{height:38px;padding:0 12px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;color:#65625b;background:#fff;font-size:14px}.shared-actions button.active{background:#fff3ad;border-color:#e1bd2c}.shared-canvas{min-height:420px;border:1px solid #dedbd2;border-radius:14px;overflow:hidden;box-shadow:0 14px 45px #23232314}.share-error{min-height:100vh;display:grid;place-content:center;justify-items:center;text-align:center;padding:30px;background:#f4f3ef}.share-error h1{margin:20px 0 8px;font-size:28px}.share-error p{margin:0;color:var(--muted);font-size:15px}@keyframes pulse{50%{transform:scale(.94);box-shadow:0 0 0 9px #ffc90026}}@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-brand{display:none}.auth-panel{min-height:100vh;padding:28px}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:45px}.topbar{gap:18px}.topbar nav{display:none}.account{margin-left:auto}.account-copy{display:none}.overview-grid{grid-template-columns:1fr}.table-head{display:none}.model-row{grid-template-columns:minmax(190px,1fr) auto;padding:10px 15px}.model-row>span:nth-child(2),.model-row>span:nth-child(3),.model-row>span:nth-child(4){display:none}.viewer-layout{grid-template-columns:205px minmax(300px,1fr)}.property-panel,.viewer-commandbar button span{display:none}.viewer-commandbar button{width:34px;padding:0}.share-form{grid-template-columns:1fr}.share-form>*{grid-column:1!important}}@media(max-width:620px){.topbar{padding:0 16px}.brand{min-width:0}.brand>span:last-child,.plan-badge{display:none}.workspace{width:calc(100% - 28px);padding-top:32px}.workspace-head{align-items:center}.workspace-head h1{font-size:27px}.workspace-head p,.primary-btn span{display:none}.models-toolbar{align-items:flex-start;gap:12px;flex-direction:column}.toolbar-actions{width:100%}.search{flex:1;min-width:0}footer{display:none}.compact-dialog{padding:26px}.viewer-layout{grid-template-columns:1fr}.model-panel{display:none}.command-group:nth-child(2),.viewer-commandbar select{display:none}.section-panel{left:8px;right:8px;width:auto}}

/* ATool Open BIM v1.1.4 — compact Pro viewer */
.topbar{height:60px;padding:0 max(18px,3vw);gap:30px}.topbar nav a.active:after{bottom:-21px}.workspace{width:min(1380px,calc(100% - 32px));padding:30px 0 46px}.workspace-head{margin-bottom:18px}.workspace-head h1{font-size:30px}.models-toolbar{min-height:66px}
.viewer-dialog{width:calc(100vw - 8px);height:calc(100vh - 8px);max-width:none;max-height:none;border-radius:10px}.viewer-dialog[open]{grid-template-rows:50px 1fr 24px}.viewer-top{padding:0 8px 0 12px}.viewer-top strong{font-size:14px}.viewer-top small{font-size:12px}.viewer-top>.close-btn{width:32px;height:32px;border-radius:8px}.viewer-workspace{grid-template-rows:42px 1fr}.viewer-commandbar{padding:4px 6px;gap:5px;overflow-x:auto;overflow-y:hidden}.command-group{gap:2px;padding-right:5px}.viewer-commandbar button,.viewer-commandbar select,.command-download{height:32px;padding:0 8px;font-size:12px}.viewer-layout{grid-template-columns:205px minmax(0,1fr) 255px;transition:grid-template-columns .18s ease}.viewer-layout.hide-model-panel{grid-template-columns:0 minmax(0,1fr) 255px}.viewer-layout.hide-property-panel{grid-template-columns:205px minmax(0,1fr) 0}.viewer-layout.hide-model-panel.hide-property-panel{grid-template-columns:0 minmax(0,1fr) 0}.viewer-layout.hide-model-panel .model-panel,.viewer-layout.hide-property-panel .property-panel{display:none}.panel-tabs{height:38px}.panel-search{height:32px;margin:8px}.category-row{min-height:30px;font-size:12px}.property-title{min-height:48px}.property-content{padding:8px}.property-row{min-height:30px}.viewer-info{padding:0 12px;font-size:11px}
.tool-hud{left:10px;top:10px;max-width:calc(100% - 20px);min-height:34px;padding:5px 6px 5px 9px;gap:6px;font-size:12px;flex-wrap:wrap}.measure-hud label{display:flex;align-items:center;gap:4px;color:#d8d5cf;font-size:11px}.tool-hud select,.tool-hud button{height:24px;font-size:11px}.section-panel{left:10px;bottom:10px;width:320px;max-height:calc(100% - 20px);overflow:auto;padding:11px}.section-title{margin-bottom:9px}.section-pick{padding:9px;border:1px solid #e7e2d5;border-radius:9px;background:#fffaf0}.section-pick-main{width:100%;height:31px!important;margin:0!important;border-color:#e2bd24!important;background:#ffc900!important;color:#3a3000!important;font-weight:700}.section-pick-main.active{box-shadow:0 0 0 3px #ffc9003d}.section-pick p{margin:7px 0;color:#7c786f;font-size:11.5px;line-height:1.55}.section-pick>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.section-pick>div button{height:27px;border:1px solid #ded9ce;border-radius:7px;background:#fff;color:#625f58;font-size:11px}.section-box-details{margin-top:9px;border-top:1px solid #e9e5dc;padding-top:8px}.section-box-details summary{cursor:pointer;color:#5d5a54;font-size:12px;font-weight:700}.section-box-details>button{width:100%;height:27px;margin-top:7px;border:1px solid #dfdcd4;border-radius:7px;background:#f5f3ed;color:#64615b;font-size:11px}
.shared-shell{grid-template-rows:56px 1fr 26px}.shared-top{padding:0 max(10px,1.4vw);gap:14px}.shared-top .brand{min-width:145px}.shared-top .brand-mark{width:34px;height:34px;border-radius:10px;font-size:18px}.shared-title{min-width:0;display:grid;gap:3px;margin-right:auto}.shared-title strong{max-width:min(52vw,700px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.shared-title small{color:#8b8881;font-size:12px}.shared-top-actions{display:flex;align-items:center;gap:7px}.readonly-badge{padding:7px 9px;font-size:12px}.shared-main{min-height:0;padding:6px;display:block}.shared-main>.viewer-workspace{height:100%}.shared-canvas{min-height:0;border-radius:9px}.shared-shell footer{font-size:11px}
@media(max-width:1100px){.viewer-layout{grid-template-columns:180px minmax(0,1fr) 225px}.viewer-layout.hide-model-panel{grid-template-columns:0 minmax(0,1fr) 225px}.viewer-layout.hide-property-panel{grid-template-columns:180px minmax(0,1fr) 0}.viewer-commandbar button span{display:none}.viewer-commandbar button{width:32px;padding:0}.shared-title strong{max-width:38vw}}
@media(max-width:760px){.viewer-layout,.viewer-layout.hide-model-panel,.viewer-layout.hide-property-panel,.viewer-layout.hide-model-panel.hide-property-panel{grid-template-columns:1fr}.model-panel,.property-panel{display:none!important}.viewer-dialog{width:100vw;height:100vh;border-radius:0}.viewer-dialog[open]{grid-template-rows:46px 1fr 22px}.shared-top .brand>span:last-child,.readonly-badge{display:none}.shared-title strong{max-width:50vw}.section-panel{left:6px;right:6px;width:auto}.measure-hud{right:6px;max-width:none}}


/* ATool Open BIM v1.1.13 — larger typography + touch-first mobile */
html,body{font-size:15px}
button,input,select,textarea{font-size:14px}
.viewer-top strong,.shared-title strong{font-size:14px}
.viewer-top small,.shared-title small{font-size:11px}
.viewer-commandbar button,.viewer-commandbar select,.command-download{font-size:12px;min-height:34px}
.panel-tabs button,.category-row,.property-title,.property-row,.property-set summary{font-size:12px}
.property-row span{font-size:12px;line-height:1.4}
.property-row b{font-size:12px;line-height:1.4}
.element-card strong{font-size:14px}.element-card small{font-size:11px}
.viewer-info,.tool-hud,.measure-hud label,.tool-hud select,.tool-hud button{font-size:11px}
.section-pick p,.section-pick>div button,.section-box-details summary,.section-box-details>button{font-size:11px}
#viewer-canvas canvas,.viewer-canvas canvas,.shared-canvas canvas{touch-action:none;overscroll-behavior:none}

@media(max-width:760px){
  .viewer-commandbar{min-height:48px;padding:6px;gap:6px}
  .viewer-commandbar button,.viewer-commandbar select,.command-download{min-width:42px;height:38px;font-size:12px}
  .viewer-top{min-height:50px}.viewer-top strong{font-size:14px}.viewer-top small{font-size:11px}
  .tool-hud{font-size:12px}.tool-hud select,.tool-hud button{min-height:32px;font-size:12px}
  .section-panel{font-size:12px}.section-pick p{font-size:12px}
}


/* ATool Open BIM v1.1.14 — wider panels, concise properties, ViewCube */
@media(min-width:1101px){
  .viewer-layout{grid-template-columns:225px minmax(0,1fr) 285px!important}
  .viewer-layout.hide-model-panel{grid-template-columns:0 minmax(0,1fr) 285px!important}
  .viewer-layout.hide-property-panel{grid-template-columns:225px minmax(0,1fr) 0!important}
  .viewer-layout.hide-model-panel.hide-property-panel{grid-template-columns:0 minmax(0,1fr) 0!important}
}
@media(min-width:761px) and (max-width:1100px){
  .viewer-layout{grid-template-columns:200px minmax(0,1fr) 250px!important}
  .viewer-layout.hide-model-panel{grid-template-columns:0 minmax(0,1fr) 250px!important}
  .viewer-layout.hide-property-panel{grid-template-columns:200px minmax(0,1fr) 0!important}
}
.viewer-canvas{min-width:0!important;position:relative;overflow:hidden}
.property-row,.property-row span,.property-row b{font-size:11px!important;line-height:1.38!important}
.property-row{min-height:29px!important;padding:6px 9px!important}
.property-set summary{font-size:11.5px!important}
.property-content{padding:7px!important}
.property-empty.compact{padding:18px 12px;font-size:11px;line-height:1.55}
.tree-branch{display:block}.tree-node{min-height:32px!important;padding-left:calc(5px + var(--level) * 12px)!important;display:flex!important;gap:2px!important}
.tree-toggle{width:18px;height:28px;flex:0 0 18px;border:0;background:transparent;color:#827f77;font-size:13px;cursor:pointer;transition:transform .12s}.tree-toggle.collapsed{transform:rotate(-90deg)}.tree-toggle.empty{opacity:0;pointer-events:none}
.tree-select{min-width:0;flex:1;height:30px;padding:0 4px;display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:5px;border:0;border-radius:6px;background:transparent;color:#5f5d57;text-align:left;font-size:11.5px;cursor:pointer}.tree-select:hover{background:#f7f5ef}.tree-select>span:nth-child(2){min-width:0;display:grid}.tree-select strong{font-size:11.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-select small{font-size:10px;color:#9b978e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-select b{font-size:10px;color:#aaa69e}
.view-cube{position:absolute;right:14px;top:14px;width:86px;height:86px;z-index:12;pointer-events:none;filter:drop-shadow(0 4px 8px #0002)}
.view-cube button{pointer-events:auto;font-family:inherit}.cube-3d{position:absolute;left:23px;top:23px;width:44px;height:44px;transform-style:preserve-3d;transform:rotateX(-24deg) rotateY(35deg)}
.cube-face{position:absolute;width:44px;height:44px;padding:0;border:1px solid #c8c4b8;background:#fffdf5cc;color:#5c574e;font-size:7px;font-weight:800;backdrop-filter:blur(2px);cursor:pointer}.cube-face:hover{background:#ffc900;color:#302700}.cube-front{transform:translateZ(22px)}.cube-right{transform:rotateY(90deg) translateZ(22px)}.cube-top{transform:rotateX(90deg) translateZ(22px)}
.cube-home,.cube-mini{position:absolute;border:1px solid #d6d1c5;background:#ffffffd9;color:#5f5a50;border-radius:6px;box-shadow:0 2px 5px #0001;cursor:pointer}.cube-home{left:0;bottom:0;width:24px;height:24px;font-size:14px}.cube-mini{width:20px;height:20px;font-size:8px;font-weight:800}.cube-left-btn{right:0;bottom:0}.cube-back-btn{right:0;top:0}.cube-home:hover,.cube-mini:hover{background:#ffc900;color:#302700}
@media(max-width:760px){.view-cube{right:8px;top:8px;transform:scale(.88);transform-origin:top right}}


/* ===== ATool Open BIM v1.1.15 ===== */
.viewer-layout{
  --model-panel-width:240px;
  --property-panel-width:320px;
  grid-template-columns:var(--model-panel-width) minmax(0,1fr) var(--property-panel-width)!important;
  transition:none!important;
}
.viewer-layout.hide-model-panel{grid-template-columns:0 minmax(0,1fr) var(--property-panel-width)!important}
.viewer-layout.hide-property-panel{grid-template-columns:var(--model-panel-width) minmax(0,1fr) 0!important}
.viewer-layout.hide-model-panel.hide-property-panel{grid-template-columns:0 minmax(0,1fr) 0!important}
.viewer-layout.hide-model-panel .model-panel,.viewer-layout.hide-property-panel .property-panel{display:none!important}
.model-panel,.property-panel{position:relative;min-width:0!important;max-width:none!important;overflow:hidden}
.panel-resizer{position:absolute;top:0;bottom:0;width:7px;z-index:40;cursor:col-resize;touch-action:none;background:transparent}
.panel-resizer:hover,.panel-resizer:active{background:rgba(255,201,0,.32)}
.panel-resizer-left{right:-3px}.panel-resizer-right{left:-3px}
.viewer-canvas.has-hidden-elements:after{content:"";position:absolute;inset:2px;border:3px solid #36a3ff;pointer-events:none;z-index:25;box-shadow:inset 0 0 0 1px rgba(255,255,255,.85)}
.property-title{min-height:42px;padding:0 12px!important}
.property-title>div{display:flex;align-items:center}.property-title small[hidden]{display:none!important}
.property-content{font-size:11px!important}.property-row{font-size:11px!important}.property-row span,.property-row b{font-size:11px!important}
/* compact connected tree */
.spatial-tree{padding:4px 7px 12px!important;background:#fbfaf7}
.tree-branch{position:relative}
.tree-children{margin-left:10px;border-left:1px solid #ddd9cf}
.tree-node{min-height:29px!important;padding-left:2px!important;gap:1px!important}
.tree-select{height:28px!important;border-radius:4px!important;padding:0 5px!important;grid-template-columns:15px minmax(0,1fr) auto!important}
.tree-select:hover{background:#f0eee7!important}.tree-select.active{background:#fff2b8!important;box-shadow:inset 3px 0 #ffc900}
.tree-select strong{font-size:11px!important}.tree-select small{font-size:9.8px!important}.tree-select b{font-size:9.5px!important}
.tree-toggle{height:27px!important}
/* Revit-like live ViewCube */
.revit-viewcube{position:absolute;right:18px;top:16px;width:130px;height:130px;z-index:18;pointer-events:none;filter:none!important;transform:none!important;perspective:360px}
.revit-viewcube .cube-home{pointer-events:auto;position:absolute;left:0;top:0;bottom:auto;width:25px;height:25px;border:0;background:transparent;color:#777;font-size:21px;line-height:23px;box-shadow:none;border-radius:2px;z-index:5}
.revit-viewcube .cube-home:hover{background:#e8f4ff;color:#1676c1}
.cube-compass{position:absolute;left:18px;top:26px;width:100px;height:100px;border:1px solid #a9a9a9;border-radius:50%;transform:rotateX(66deg);opacity:.78;pointer-events:none}
.cube-compass:before,.cube-compass:after{content:"";position:absolute;inset:8px;border:1px solid #c4c4c4;border-radius:50%}
.cube-compass span{position:absolute;font-size:12px;font-weight:700;font-style:italic;color:#777;transform:rotateX(-66deg)}
.cube-compass .north{left:45px;top:-13px}.cube-compass .south{left:45px;bottom:-13px}.cube-compass .east{right:-9px;top:41px}.cube-compass .west{left:-10px;top:41px}
.cube-rotator{position:absolute;left:47px;top:42px;width:46px;height:46px;transform-style:preserve-3d;pointer-events:none;will-change:transform;transform-origin:23px 23px 0}
.revit-viewcube .cube-face{pointer-events:auto;position:absolute;width:46px;height:46px;margin:0;padding:0;border:1px solid #838383;background:rgba(236,236,236,.95);color:#606060;font-size:8px;font-weight:700;line-height:46px;text-align:center;cursor:pointer;backface-visibility:visible;box-shadow:none;backdrop-filter:none}
.revit-viewcube .cube-face:hover{background:#d8ebfa!important;color:#2c5d80!important;border-color:#5c9ac7!important}
.revit-viewcube .cube-front{transform:translateZ(23px)}
.revit-viewcube .cube-back{transform:rotateY(180deg) translateZ(23px)}
.revit-viewcube .cube-right{transform:rotateY(90deg) translateZ(23px)}
.revit-viewcube .cube-left{transform:rotateY(-90deg) translateZ(23px)}
.revit-viewcube .cube-top{transform:rotateX(90deg) translateZ(23px)}
.revit-viewcube .cube-bottom{transform:rotateX(-90deg) translateZ(23px)}
@media(max-width:900px){
 .viewer-layout,.viewer-layout.hide-model-panel,.viewer-layout.hide-property-panel,.viewer-layout.hide-model-panel.hide-property-panel{grid-template-columns:1fr!important}
 .model-panel,.property-panel{display:none!important}.panel-resizer{display:none!important}
 .revit-viewcube{right:8px;top:8px;transform:scale(.82)!important;transform-origin:top right!important}
}


/* ===== ATool Open BIM v1.1.17 — compact tree / Autodesk-style ViewCube / short toolbar labels ===== */
/* Tree: every leaf uses the same compact row rhythm as its parents. */
.spatial-tree{padding:4px 5px 10px!important;scrollbar-gutter:stable;background:#fbfaf7!important}
.spatial-tree .tree-branch{display:block!important;position:relative!important;margin:0!important;padding:0!important;min-height:0!important}
.spatial-tree .tree-children{display:flex;flex-direction:column;gap:0!important;margin:0 0 0 10px!important;padding:0!important;border-left:1px solid #d8d5cc!important}
.spatial-tree .tree-node{height:28px!important;min-height:28px!important;margin:0!important;padding:0 0 0 2px!important;display:flex!important;align-items:center!important;gap:1px!important;line-height:1!important}
.spatial-tree .tree-toggle{width:18px!important;height:28px!important;min-height:28px!important;flex:0 0 18px!important;margin:0!important;padding:0!important;line-height:28px!important}
.spatial-tree .tree-select{height:27px!important;min-height:27px!important;margin:0!important;padding:0 5px!important;grid-template-columns:15px minmax(0,1fr) auto!important;align-items:center!important;line-height:1.1!important}
.spatial-tree .tree-select>span:nth-child(2){display:block!important;min-width:0!important;line-height:1.05!important}
.spatial-tree .tree-select strong{display:block!important;font-size:11px!important;line-height:13px!important}
.spatial-tree .tree-select small{display:none!important}
.spatial-tree .tree-select b{font-size:9.5px!important;line-height:12px!important}

/* Short readable toolbar captions; on touch phones keep icon-only. */
.viewer-commandbar{gap:5px!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;white-space:nowrap}
.viewer-commandbar .command-group{gap:2px!important;padding-right:5px!important}
.viewer-commandbar button,.viewer-commandbar select,.command-download{height:34px!important;padding:0 7px!important;gap:4px!important;font-size:12px!important}
.tool-caption{display:inline-block;white-space:nowrap;font-size:11.5px;font-weight:650}
.projection-group select{max-width:92px}

/* Functional ViewCube inspired by the Autodesk/Revit interaction model. */
.revit-viewcube{right:14px!important;top:10px!important;width:166px!important;height:166px!important;perspective:430px!important;pointer-events:none!important;overflow:visible!important}
.revit-viewcube .cube-home{pointer-events:auto!important;left:17px!important;top:12px!important;width:27px!important;height:27px!important;font-size:22px!important;line-height:25px!important;color:#6c6c6c!important;z-index:40!important}
.cube-compass{--cube-yaw:0deg;left:29px!important;top:41px!important;width:124px!important;height:124px!important;border:1.5px solid #9a9a9a!important;opacity:.95!important;transform:rotateX(67deg) rotateZ(calc(-1 * var(--cube-yaw)))!important;transform-origin:center!important}
.cube-compass:before{inset:8px!important;border-color:#b8b8b8!important}.cube-compass:after{inset:18px!important;border-color:#d0d0d0!important}
.cube-compass span{font-size:14px!important;font-weight:800!important;color:#5f5f5f!important;text-shadow:0 1px 0 #fff;transform:rotateZ(var(--cube-yaw)) rotateX(-67deg)!important}
.cube-compass .north{left:55px!important;top:-17px!important}.cube-compass .south{left:55px!important;bottom:-17px!important}.cube-compass .east{right:-13px!important;top:50px!important}.cube-compass .west{left:-14px!important;top:50px!important}
.cube-rotator{left:67px!important;top:62px!important;width:54px!important;height:54px!important;transform-style:preserve-3d!important;transform-origin:27px 27px 0!important;pointer-events:none!important;will-change:transform}
.revit-viewcube .cube-face{position:absolute!important;width:54px!important;height:54px!important;margin:0!important;padding:0!important;border:1px solid #858585!important;background:rgba(239,239,239,.97)!important;color:#595959!important;transform-style:preserve-3d!important;backface-visibility:hidden!important;pointer-events:auto!important;box-shadow:0 0 0 .3px rgba(255,255,255,.8) inset!important}
.revit-viewcube .cube-front{transform:translateZ(27px)!important}.revit-viewcube .cube-back{transform:rotateY(180deg) translateZ(27px)!important}.revit-viewcube .cube-right{transform:rotateY(90deg) translateZ(27px)!important}.revit-viewcube .cube-left{transform:rotateY(-90deg) translateZ(27px)!important}.revit-viewcube .cube-top{transform:rotateX(90deg) translateZ(27px)!important}.revit-viewcube .cube-bottom{transform:rotateX(-90deg) translateZ(27px)!important}
.cube-face-center{position:absolute;inset:7px!important;width:auto!important;height:auto!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#575757!important;font-size:8px!important;font-weight:800!important;line-height:40px!important;pointer-events:auto!important;z-index:2!important}
.cube-face-center:hover{background:#d8ebfa!important;color:#245f89!important}
.cube-hotspot{position:absolute!important;margin:0!important;padding:0!important;border:0!important;border-radius:1px!important;background:transparent!important;pointer-events:auto!important;z-index:6!important}
.cube-hotspot:hover{background:#89c9f4!important;box-shadow:inset 0 0 0 1px #438ab9!important}
.cube-edge-top{left:8px!important;right:8px!important;top:0!important;height:8px!important}.cube-edge-bottom{left:8px!important;right:8px!important;bottom:0!important;height:8px!important}.cube-edge-left{top:8px!important;bottom:8px!important;left:0!important;width:8px!important}.cube-edge-right{top:8px!important;bottom:8px!important;right:0!important;width:8px!important}
.cube-corner-tl,.cube-corner-tr,.cube-corner-br,.cube-corner-bl{width:9px!important;height:9px!important}.cube-corner-tl{left:0!important;top:0!important}.cube-corner-tr{right:0!important;top:0!important}.cube-corner-br{right:0!important;bottom:0!important}.cube-corner-bl{left:0!important;bottom:0!important}
@media(max-width:760px){
  .tool-caption{display:none!important}.viewer-commandbar button,.viewer-commandbar .command-download{width:34px!important;padding:0!important}.projection-group select{width:76px!important;padding:0 4px!important;font-size:10.5px!important}
  .revit-viewcube{right:4px!important;top:4px!important;transform:scale(.72)!important;transform-origin:top right!important}
}

/* v1.1.19 - Upload progress overlay */
.atool-upload-overlay{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;background:rgba(20,24,28,.28);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}.atool-upload-overlay.show{opacity:1;visibility:visible}.atool-upload-card{width:min(420px,calc(100vw - 32px));padding:26px 28px 24px;border-radius:18px;background:#fff;box-shadow:0 18px 60px rgba(30,34,40,.22);text-align:center;color:#30343b}.atool-upload-spinner{width:38px;height:38px;margin:0 auto 14px;border:4px solid #f2f2f2;border-top-color:#ffc900;border-radius:50%;animation:atoolUploadSpin .8s linear infinite}.atool-upload-title{font-size:17px;font-weight:700;margin-bottom:5px}.atool-upload-file{font-size:12px;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:17px}.atool-upload-progress{height:9px;border-radius:999px;background:#ececec;overflow:hidden}.atool-upload-progress>div{height:100%;width:0;background:#ffc900;border-radius:inherit;transition:width .12s linear}.atool-upload-percent{font-size:14px;font-weight:700;margin-top:8px}.atool-upload-status{font-size:12px;color:#5f646b;min-height:18px;margin-top:3px}.atool-upload-note{font-size:11px;color:#9b9da1;margin-top:12px}@keyframes atoolUploadSpin{to{transform:rotate(360deg)}}

/* ===== v1.1.20 dashboard/logo/material UI ===== */
.brand-mark{background:transparent!important;box-shadow:none!important;overflow:visible!important}
.brand-mark img{width:100%;height:100%;object-fit:contain;display:block}
.orbit-cube{background:transparent!important;box-shadow:none!important}
.orbit-cube img{width:100%;height:100%;object-fit:contain;display:block}
.loading-mark{background:transparent!important}
.loading-mark img{width:100%;height:100%;object-fit:contain;display:block}

.metric-icon{flex-basis:52px!important;width:52px!important;height:52px!important;border-radius:14px!important}
.metric-icon svg{width:29px!important;height:29px!important}
.usage-main,.stat-card{align-items:center!important}
.models-toolbar>div:first-child>span{min-width:30px!important;padding:0 10px!important}

select{
  appearance:none!important;
  -webkit-appearance:none!important;
  min-height:40px;
  padding:0 38px 0 12px!important;
  border:1px solid #ddd9cf!important;
  border-radius:10px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b685f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 11px center!important;
  color:#4d4a44!important;
  font-family:inherit!important;
  font-size:13px!important;
  font-weight:600!important;
  box-shadow:0 1px 2px #00000008!important;
  transition:border-color .18s,box-shadow .18s,background-color .18s!important;
}
select:hover{border-color:#c9c4b8!important;background-color:#fffdf7!important}
select:focus{border-color:#d8b100!important;box-shadow:0 0 0 3px rgba(255,201,0,.18)!important}
select option{background:#fff;color:#3f3d38;padding:10px}
.share-form select{height:42px!important}
.projection-group select{max-width:120px!important}

.share-row{grid-template-columns:30px minmax(0,1fr) auto!important}
.share-row-actions{display:flex!important;align-items:center!important;gap:6px!important}
.share-row button.share-action{height:29px;padding:0 8px;border:1px solid #dedbd3;border-radius:8px;color:#5f5c55;background:#fff;font-size:11px;display:inline-flex;align-items:center;gap:5px}
.share-row button.share-action:hover{border-color:#e1bd27;background:#fff8d5;color:#5f4d00}
.share-row button.share-action:disabled{opacity:.45;cursor:not-allowed}
.qr-dialog{width:min(430px,calc(100vw - 28px));padding:26px;border-radius:18px;box-shadow:var(--shadow)}
.qr-dialog[open]{display:block}
.qr-box{margin:20px auto 16px;width:286px;height:286px;display:grid;place-items:center;border:1px solid #e6e1d7;border-radius:16px;background:#fff}
.qr-box img{width:260px;height:260px;object-fit:contain}
.qr-dialog .copy-field{margin-top:10px}

@media(max-width:700px){
  .metric-icon{flex-basis:46px!important;width:46px!important;height:46px!important}
  .metric-icon svg{width:25px!important;height:25px!important}
  .share-row-actions span{display:none}
}

/* Material combobox component */
.atool-select{position:relative;display:inline-block;min-width:120px;vertical-align:middle}
.atool-select>select{position:absolute!important;inset:0!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;padding:0!important}
.atool-select-trigger{width:100%;min-height:40px;padding:0 10px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ddd9cf;border-radius:10px;color:#4d4a44;background:#fff;font:600 13px/1 "Be Vietnam Pro",sans-serif;box-shadow:0 1px 2px #00000008;transition:.18s}
.atool-select-trigger:hover{border-color:#c9c4b8;background:#fffdf7}
.atool-select.open .atool-select-trigger{border-color:#d8b100;box-shadow:0 0 0 3px rgba(255,201,0,.18)}
.atool-select-arrow{width:20px;height:20px;display:grid;place-items:center;color:#77736b;transition:transform .18s}
.atool-select.open .atool-select-arrow{transform:rotate(180deg)}
.atool-select-menu{position:absolute;z-index:4000;left:0;right:0;top:calc(100% + 6px);min-width:max-content;max-height:260px;overflow:auto;padding:6px;border:1px solid #e1ddd3;border-radius:12px;background:#fff;box-shadow:0 16px 44px #0000001c;opacity:0;visibility:hidden;transform:translateY(-4px);transition:.14s}
.atool-select.open .atool-select-menu{opacity:1;visibility:visible;transform:none}
.atool-select-menu button{width:100%;min-width:130px;height:36px;padding:0 11px;border:0;border-radius:8px;background:transparent;color:#54514b;text-align:left;font:500 13px "Be Vietnam Pro",sans-serif;white-space:nowrap}
.atool-select-menu button:hover{background:#f7f4e9}
.atool-select-menu button.selected{color:#4d3e00;background:#fff3b6;font-weight:700}
.atool-select-menu button:disabled{opacity:.4}
.projection-group .atool-select{min-width:116px}
.share-form .atool-select{width:100%}

/* v1.1.21 — ATool Premium sync / auth branding / QR / select polish */
.auth-brand .auth-brand-logo{width:58px!important;height:58px!important}
.auth-brand .auth-brand-logo img{object-fit:contain!important}
.auth-orbit .orbit-cube{width:116px!important;height:116px!important}
.auth-orbit .orbit-cube img{object-fit:contain!important}
.icon-btn#logout{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;transform:none!important;color:#7e7b74;transition:.18s}
.icon-btn#logout:hover{background:#f3f1ea;color:#2e2d29}
.account-license-footer{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;background:#fff8d6;color:#756000;font-weight:600}
.qr-download-btn{margin-top:14px;justify-content:center!important}

/* Custom Material select must never make dialogs horizontally scroll. */
.atool-select{max-width:100%}
.atool-select-menu{min-width:100%;width:max-content;max-width:min(360px,calc(100vw - 48px));overflow-x:hidden!important}
.atool-select-menu button{min-width:0!important;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.share-form .atool-select{width:100%;min-width:0!important}
.share-form .atool-select-menu{left:0;right:auto;width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important}
.share-form .atool-select-menu button{width:100%;min-width:0!important}
#share-dialog{overflow-x:hidden!important}

@media(max-width:900px){
  .account-license-footer{font-size:12px}
}

/* v1.1.22 — account/session UX */
.login-meta{align-items:flex-start;gap:12px}
.login-meta-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.login-meta-actions .text-btn{white-space:nowrap}
.atool-auth-alert{width:min(430px,calc(100vw - 32px));border:0;border-radius:18px;padding:26px;box-shadow:0 24px 80px rgba(20,24,28,.24);font-family:inherit;color:#202124}
.atool-auth-alert::backdrop{background:rgba(18,20,22,.42);backdrop-filter:blur(3px)}
.atool-auth-alert .auth-alert-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:14px;background:#fff3c4;color:#8a6800;font-size:24px;font-weight:800;border:1px solid #f2d76a}
.atool-auth-alert h3{margin:0 0 8px;font-size:18px;line-height:1.35}
.atool-auth-alert p{margin:0 0 20px;font-size:13px;line-height:1.65;color:#62676d;white-space:pre-line}
@media (max-width:640px){.login-meta{display:block}.login-meta-actions{justify-content:flex-start;margin-top:10px;gap:8px 14px}.atool-auth-alert{padding:22px}}

/* v1.1.23 - Auth actions layout */
.login-meta{align-items:center;margin:14px 0 22px;gap:16px}
.login-meta .check{min-width:0;flex:1;white-space:nowrap}
.login-meta-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:nowrap}
.login-meta-actions .text-btn{padding:5px 0;white-space:nowrap}
.auth-switch{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;color:#85827b;font-size:14px}
.auth-switch .text-btn{padding:4px 2px;color:#806600;font-weight:700}
@media(max-width:640px){.login-meta{display:flex;align-items:center}.login-meta-actions{margin-top:0;margin-left:auto}.auth-switch{margin-top:14px}}

/* v1.1.23 - Login action layout */
.login-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0 22px}
.login-meta .check{min-width:0;flex:1;white-space:nowrap}
.login-meta-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:nowrap}
.login-meta-actions .text-btn{padding:5px 0;white-space:nowrap}
.auth-switch{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:15px;color:#85827b;font-size:14px}
.auth-switch .text-btn{padding:4px 2px;color:#806600;font-weight:700}
@media(max-width:640px){.login-meta{display:flex;align-items:center}.login-meta-actions{margin:0 0 0 auto}.auth-switch{margin-top:14px}}

/* ATool Open BIM v1.1.24 - Admin */
.workspace[hidden], .admin-workspace[hidden]{display:none!important}
.topbar nav .admin-nav{font-weight:700}
.topbar nav .admin-nav.active{color:#171717}
.topbar nav .admin-nav.active:after{transform:scaleX(1)}
.admin-workspace{padding-top:30px;padding-bottom:44px}
.admin-head{align-items:flex-end}
.admin-role-badge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border-radius:999px;background:#fff1b8;color:#755700;font-size:12px;font-weight:800;letter-spacing:.04em;border:1px solid #f2d66a}
.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:18px}
.admin-card{background:#fff;border:1px solid #e5e1d8;border-radius:18px;padding:22px;box-shadow:0 14px 34px rgba(42,36,22,.055)}
.admin-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}
.admin-card-head h2{margin:0 0 5px;font-size:18px;line-height:1.3}
.admin-card-head p{margin:0;color:#8c887f;font-size:12px;line-height:1.55}
.admin-form{display:grid;gap:14px}
.admin-form label,.admin-inline-form{font-size:12px;font-weight:650;color:#5d594f}
.admin-form label>span{display:block;margin-bottom:7px}
.admin-form input,.admin-inline-form input,.admin-inline-form select{width:100%;height:42px;border:1px solid #dcd7cc;border-radius:11px;background:#fbfaf7;padding:0 12px;font:inherit;color:#25231f;outline:none;box-sizing:border-box}
.admin-form input:focus,.admin-inline-form input:focus,.admin-inline-form select:focus{border-color:#e9b900;box-shadow:0 0 0 3px rgba(255,201,0,.14);background:#fff}
.admin-form-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.input-suffix{display:flex;align-items:center;border:1px solid #dcd7cc;border-radius:11px;background:#fbfaf7;overflow:hidden}
.input-suffix input{border:0!important;box-shadow:none!important;background:transparent!important}
.input-suffix b{padding:0 12px;color:#817c71;font-size:12px}
.admin-inline-form{display:grid;grid-template-columns:minmax(0,1fr) 128px auto;gap:9px;align-items:center;margin-bottom:14px}
.admin-inline-form .secondary-btn{height:42px;white-space:nowrap}
.admin-list{border:1px solid #eee9df;border-radius:12px;overflow:hidden}
.admin-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid #f0ece4}
.admin-list-row:last-child{border-bottom:0}
.admin-list-row>div{min-width:0;display:grid;gap:2px}
.admin-list-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-list-row small{font-size:10.5px;color:#969188}
.owner-lock,.count-chip{display:inline-flex;align-items:center;border-radius:999px;background:#f6f3eb;color:#777166;font-size:10.5px;font-weight:700;padding:5px 8px;white-space:nowrap}
.danger-ghost{border:0;background:transparent;color:#bb4c42;font:inherit;font-weight:700;cursor:pointer;padding:6px 8px;border-radius:8px}
.danger-ghost:hover{background:#fff0ee}
.admin-limits-card{margin-bottom:8px}
.limits-form{grid-template-columns:minmax(240px,1fr) 130px auto;max-width:720px}
.admin-limit-table{border:1px solid #eee9df;border-radius:13px;overflow:hidden}
.admin-limit-head,.admin-limit-row{display:grid;grid-template-columns:minmax(250px,1.4fr) 120px 170px 90px;gap:12px;align-items:center;padding:10px 13px}
.admin-limit-head{background:#faf8f3;color:#969087;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.admin-limit-row{border-top:1px solid #f0ece4;font-size:11.5px}
.admin-limit-row>span:first-child{display:grid;gap:2px;min-width:0}
.admin-limit-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-limit-row small{color:#99938a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-empty,.admin-loading{padding:22px;text-align:center;color:#9b958b;font-size:12px}
@media(max-width:900px){.admin-grid{grid-template-columns:1fr}.admin-limit-head{display:none}.admin-limit-row{grid-template-columns:1fr auto}.admin-limit-row>span:nth-child(3){display:none}.limits-form,.admin-inline-form{grid-template-columns:1fr}.admin-form-cols{grid-template-columns:1fr}.admin-workspace{padding-left:16px;padding-right:16px}}

/* v1.1.26 - Search ifc_user_limits */
.admin-limit-search-wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px}
.admin-limit-search{width:min(420px,100%);height:40px;display:flex;align-items:center;gap:9px;padding:0 10px 0 12px;border:1px solid #e5e1d8;border-radius:11px;background:#fff;transition:border-color .18s,box-shadow .18s,background .18s}
.admin-limit-search:focus-within{border-color:#e3b500;box-shadow:0 0 0 3px rgba(255,201,0,.15);background:#fffef9}
.admin-limit-search>svg{width:17px;height:17px;flex:0 0 auto;color:#989187}
.admin-limit-search input{flex:1;min-width:0;height:100%;padding:0;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;font:inherit;font-size:12px;color:#2c2924}
.admin-limit-search input::placeholder{color:#a39d93}
.admin-limit-search input::-webkit-search-cancel-button{display:none}
#admin-limit-search-clear{width:25px;height:25px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:#9a948a;font-size:19px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:.15s}
#admin-limit-search-clear.visible{opacity:1;pointer-events:auto}
#admin-limit-search-clear:hover{background:#f3efe7;color:#4d4942}
.admin-limit-search-count{font-size:11px;font-weight:600;color:#918b81;white-space:nowrap}
.admin-search-empty{border-top:1px solid #f0ece4}
.admin-limit-row[hidden],.admin-search-empty[hidden]{display:none!important}
@media(max-width:700px){.admin-limit-search-wrap{align-items:stretch;flex-direction:column;gap:6px}.admin-limit-search{width:100%}.admin-limit-search-count{padding-left:2px}}

/* v1.1.27 — admin limit toolbar, nav icons, compact auth copy */
.topbar nav a{display:inline-flex;align-items:center;gap:7px}
.topbar nav a svg{width:16px;height:16px;flex:0 0 auto;opacity:.9}
.topbar nav a.active svg{color:#8a6b00}
.admin-limit-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0 10px}
.admin-limit-controls .limits-form{flex:1;min-width:0;margin:0}
.admin-limit-controls .admin-limit-search-wrap{flex:0 1 420px;margin:0;justify-content:flex-end}
.admin-limit-controls .admin-limit-search{width:100%}
.login-card>p{white-space:nowrap}
@media(max-width:760px){
  .admin-limit-controls{align-items:stretch;flex-direction:column;gap:10px}
  .admin-limit-controls .admin-limit-search-wrap{flex:0 0 auto;width:100%}
  .login-card>p{white-space:normal}
}

/* v1.1.33 - stable list/grid cards rebuilt from one clean layout */
.view-toggle{transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
.view-toggle:hover{border-color:#d2cbbd;background:#fffdf5;color:#5b4a00}
.view-toggle:active{transform:translateY(1px)}
.view-toggle.active{border-color:#e3bd20;color:#5f4b00;background:#fff3ad;box-shadow:0 0 0 2px rgba(255,201,0,.12)}

/* Common thumbnail helpers */
.model-preview{display:none;border:0;padding:0;background:#f5f4ef;overflow:hidden;cursor:pointer;color:inherit}
.model-thumbnail-img{display:block;width:100%;height:100%;object-fit:cover;background:#f5f4ef}
.model-thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;background:linear-gradient(145deg,#faf9f5,#efede6);color:#9b8b55}
.model-thumbnail-placeholder small{font-size:11px;font-weight:800;letter-spacing:.14em;color:#a69d84}
.grid-meta{display:none}

/* List view: keep original table behavior */
.model-table.list-view{display:block}
.model-table.list-view .model-preview{display:none}
.model-table.list-view .grid-meta{display:none!important}
.model-table.list-view .download-model{display:grid}

/* Grid container */
.model-table.grid-view{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(310px,1fr))!important;
  gap:18px!important;
  padding:18px!important;
  background:#f8f7f3!important;
  align-items:start!important;
}
.model-table.grid-view .table-head{display:none!important}
.model-table.grid-view .empty{grid-column:1/-1}

/* Card itself: one flex column only, no nested CSS-grid positioning */
.model-table.grid-view > .model-row{
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  overflow:hidden!important;
  border:1px solid #e4e0d6!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(43,39,31,.045)!important;
  transform:none!important;
}
.model-table.grid-view > .model-row:hover{
  border-color:#d9d2c5!important;
  box-shadow:0 12px 30px rgba(43,39,31,.075)!important;
}

/* Thumbnail */
.model-table.grid-view > .model-row > .model-preview{
  box-sizing:border-box!important;
  display:block!important;
  order:1!important;
  flex:0 0 auto!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:16/9!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-bottom:1px solid #ece8df!important;
  border-radius:0!important;
  background:#f6f5f1!important;
  overflow:hidden!important;
}
.model-table.grid-view > .model-row > .model-preview .model-thumbnail-img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

/* Name/status block */
.model-table.grid-view > .model-row > .model-name{
  box-sizing:border-box!important;
  display:flex!important;
  order:2!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:13px 14px 8px!important;
  border:0!important;
  border-radius:0!important;
  background:#fff!important;
  text-align:left!important;
  color:inherit!important;
}
.model-table.grid-view > .model-row > .model-name .file-thumb{
  width:38px!important;
  height:38px!important;
  flex:0 0 38px!important;
  margin:0!important;
}
.model-table.grid-view > .model-row > .model-name > span:last-child{
  display:block!important;
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}
.model-table.grid-view > .model-row > .model-name strong{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0 0 4px!important;
  padding:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  font-size:14px!important;
  line-height:1.3!important;
}
.model-table.grid-view > .model-row > .model-name small{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  margin:0!important;
  padding:0!important;
  font-size:12px!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}

/* Hide the table-only columns inside cards */
.model-table.grid-view > .model-row > .model-format,
.model-table.grid-view > .model-row > .model-size,
.model-table.grid-view > .model-row > .model-updated{
  display:none!important;
}

/* One dedicated metadata line */
.model-table.grid-view > .model-row > .grid-meta{
  box-sizing:border-box!important;
  display:flex!important;
  order:3!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  gap:8px!important;
  margin:0!important;
  padding:3px 14px 12px!important;
  color:#7d786f!important;
  font-size:11.5px!important;
  line-height:1.25!important;
}
.model-table.grid-view .grid-format{display:inline-flex!important;flex:0 0 auto!important;min-width:0!important}
.model-table.grid-view .grid-format .format-pill{display:inline-flex!important;align-items:center!important;white-space:nowrap!important;max-width:none!important}
.model-table.grid-view .grid-size{display:inline-flex!important;align-items:center!important;flex:0 0 auto!important;white-space:nowrap!important;font-weight:600!important}
.model-table.grid-view .grid-size::before{content:"•";display:inline-block;margin-right:8px;color:#c3beb4}
.model-table.grid-view .grid-updated{
  display:block!important;
  flex:1 1 auto!important;
  min-width:0!important;
  margin-left:auto!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  text-align:right!important;
  color:#99948a!important;
}

/* Action footer */
.model-table.grid-view > .model-row > .row-actions{
  box-sizing:border-box!important;
  display:flex!important;
  order:4!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:8px 10px!important;
  border-top:1px solid #eeeae1!important;
  background:#fcfbf8!important;
}
.model-table.grid-view > .model-row > .row-actions button{
  display:grid!important;
  place-items:center!important;
  width:34px!important;
  height:34px!important;
  flex:0 0 34px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #e8e3d9!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#7d7971!important;
}
.model-table.grid-view > .model-row > .row-actions button:hover{background:#fff6c7!important;border-color:#e2c858!important;color:#5f4c00!important}
.model-table.grid-view > .model-row > .row-actions .download-model{margin-right:auto!important}

/* Keep fixed placeholder text from ever visually turning into null */
#search::placeholder,#share-password-create::placeholder,#category-search::placeholder{color:#aaa69e;opacity:1}

@media(max-width:760px){
  .model-table.grid-view{grid-template-columns:1fr!important;gap:12px!important;padding:10px!important}
  .model-table.grid-view > .model-row > .grid-meta{flex-wrap:wrap!important;row-gap:5px!important}
  .model-table.grid-view .grid-updated{flex:1 0 100%!important;width:100%!important;margin-left:0!important;text-align:left!important}
}

/* v1.1.35 - true full-bleed thumbnail + actions aligned right */
.model-table.grid-view > .model-row{
  overflow:hidden!important;
  padding:0!important;
}
.model-table.grid-view > .model-row > .model-preview{
  display:block!important;
  align-self:stretch!important;
  width:calc(100% + 2px)!important;
  max-width:none!important;
  margin:-1px -1px 0 -1px!important;
  padding:0!important;
  border:0!important;
  border-bottom:1px solid #ece8df!important;
  border-radius:16px 16px 0 0!important;
  overflow:hidden!important;
}
.model-table.grid-view > .model-row > .model-preview .model-thumbnail-img,
.model-table.grid-view > .model-row > .model-preview img{
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  object-fit:cover!important;
}
.model-table.grid-view > .model-row > .row-actions{
  justify-content:flex-end!important;
}
.model-table.grid-view > .model-row > .row-actions .download-model{
  margin-right:0!important;
}


/* v1.1.36 - exact edge-to-edge grid thumbnail + model search parity */
.model-table.grid-view > .model-row{
  padding:0!important;
  overflow:hidden!important;
}
.model-table.grid-view > .model-row > .model-preview{
  box-sizing:border-box!important;
  display:block!important;
  position:relative!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  max-width:100%!important;
  min-width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-bottom:1px solid #ece8df!important;
  border-radius:15px 15px 0 0!important;
  overflow:hidden!important;
  background:#f6f5f1!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-img,
.model-table.grid-view > .model-row > .model-preview > img,
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-placeholder{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
}
.model-table.grid-view > .model-row > .model-preview > img{
  object-fit:cover!important;
}
/* hidden must beat the grid card's display:flex !important */
.model-table.grid-view > .model-row[hidden]{display:none!important}

/* Search styled exactly like the admin search, with our own neutral clear button */
.toolbar-actions .search.model-search{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  height:40px!important;
  min-width:230px!important;
  padding:0 8px 0 12px!important;
  border:1px solid #e5e1d8!important;
  border-radius:11px!important;
  background:#fff!important;
  transition:border-color .18s,box-shadow .18s,background .18s!important;
}
.toolbar-actions .search.model-search:focus-within{
  border-color:#e3b500!important;
  box-shadow:0 0 0 3px rgba(255,201,0,.15)!important;
  background:#fffef9!important;
}
.toolbar-actions .search.model-search>svg{
  width:17px!important;height:17px!important;flex:0 0 auto!important;color:#989187!important;
}
.toolbar-actions .search.model-search input{
  flex:1 1 auto!important;
  min-width:0!important;
  height:100%!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font:inherit!important;
  font-size:12px!important;
  color:#2c2924!important;
}
.toolbar-actions .search.model-search input::placeholder{color:#a39d93!important;opacity:1!important}
.toolbar-actions .search.model-search input::-webkit-search-cancel-button,
.toolbar-actions .search.model-search input::-webkit-search-decoration{-webkit-appearance:none!important;appearance:none!important;display:none!important}
#model-search-clear{
  width:25px!important;height:25px!important;display:grid!important;place-items:center!important;
  flex:0 0 25px!important;margin:0!important;padding:0!important;border:0!important;border-radius:7px!important;
  background:transparent!important;color:#9a948a!important;font-size:19px!important;line-height:1!important;
  cursor:pointer!important;opacity:0!important;pointer-events:none!important;transition:.15s!important;
}
#model-search-clear.visible{opacity:1!important;pointer-events:auto!important}
#model-search-clear:hover{background:#f3efe7!important;color:#4d4942!important}
@media(max-width:760px){.toolbar-actions .search.model-search{min-width:0!important;width:100%!important}}

/* v1.1.38 - center empty thumbnail placeholder */
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-placeholder{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-direction:row!important;
  gap:6px!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:center!important;
}
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-placeholder > span,
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-placeholder > small{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  margin:0!important;
}
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-placeholder > span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-placeholder > small{
  display:inline-block!important;
  line-height:1!important;
}

/* v1.1.40 - Service plans */
.plans-workspace[hidden]{display:none!important}
.plans-workspace{padding-bottom:48px}
.plans-head{align-items:center}
.current-plan-chip{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid #e7dfcf;border-radius:999px;background:#fff;color:#62594d;font-size:12px;font-weight:700;white-space:nowrap}
.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px;align-items:stretch}
.plan-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:26px;border:1px solid #e5dfd4;border-radius:20px;background:#fff;box-shadow:0 14px 38px rgba(45,38,25,.055);overflow:hidden}
.plan-card.featured{border-color:#e7b900;box-shadow:0 18px 46px rgba(255,201,0,.13)}
.plan-card.current:after{content:"Gói hiện tại";position:absolute;right:18px;top:18px;padding:5px 9px;border-radius:999px;background:#fff3bd;color:#7a6000;font-size:10px;font-weight:800;letter-spacing:.02em}
.recommended-badge{position:absolute;right:18px;top:18px;padding:5px 9px;border-radius:999px;background:#ffc900;color:#29230f;font-size:10px;font-weight:800}
.plan-card.current.featured:after{top:50px}
.plan-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;margin-bottom:20px}
.plan-icon.free{background:#fff3bd;color:#8b6b00}.plan-icon.premium{background:#eaf2ff;color:#2c6ab5}.plan-icon.custom{background:#e8f7ef;color:#19734c}
.plan-kicker{font-size:11px;font-weight:700;color:#9a8f7d;text-transform:uppercase;letter-spacing:.08em}
.plan-card h2{margin:5px 0 7px;font-size:25px;line-height:1.1;color:#171717}
.plan-desc{min-height:44px;margin:0 0 18px;color:#7d756a;font-size:13px;line-height:1.55}
.plan-capacity{display:flex;align-items:baseline;gap:8px;padding:18px 0;border-top:1px solid #f0ece5;border-bottom:1px solid #f0ece5}
.plan-capacity strong{font-size:40px;line-height:1;font-weight:750;color:#171717}.plan-capacity span{font-size:13px;font-weight:600;color:#81786a}
.plan-card ul{list-style:none;margin:20px 0 24px;padding:0;display:grid;gap:11px;color:#5f584d;font-size:12px}
.plan-card li{display:flex;align-items:flex-start;gap:8px}.plan-card li svg{flex:0 0 auto;margin-top:1px;color:#b48d00}
.plan-btn{margin-top:auto;min-height:46px;padding:0 15px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;font-size:13px;font-weight:750;border:1px solid transparent;cursor:pointer}
.plan-btn.primary{background:#ffc900;color:#241e0d}.plan-btn.primary:hover{background:#f4c100}.plan-btn.secondary{background:#f7f5f0;color:#8d8578;border-color:#e8e2d8}.plan-btn.dark{background:#222;color:#fff}.plan-btn.dark:hover{background:#111}.plan-btn:disabled{cursor:default;opacity:.75}
.custom-files-control{display:grid;grid-template-columns:42px 1fr 42px;gap:8px;margin:16px 0 10px}
.custom-files-control button,.custom-files-control input{height:44px;border:1px solid #ded7cc;border-radius:11px;background:#fff;color:#27231d;font:inherit}
.custom-files-control button{font-size:20px;cursor:pointer}.custom-files-control button:hover{background:#fff8d8;border-color:#e3b900}.custom-files-control input{text-align:center;font-size:18px;font-weight:750;appearance:textfield;-moz-appearance:textfield}.custom-files-control input::-webkit-outer-spin-button,.custom-files-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.custom-summary{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#faf8f4;color:#756d61;font-size:11px}.custom-summary strong{color:#24201a;font-size:13px}
@media(max-width:980px){.plans-grid{grid-template-columns:1fr}.plan-desc{min-height:0}.plans-head{align-items:flex-start}.current-plan-chip{margin-top:12px}}
@media(max-width:640px){.plans-workspace{padding-left:14px;padding-right:14px}.plan-card{padding:20px}.plan-card h2{font-size:22px}.plan-capacity strong{font-size:34px}.current-plan-chip{font-size:11px}}

/* v1.1.43 - account file limit summary */
.account-license-footer{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;white-space:normal}
.account-license-footer strong{font-weight:700}
.account-license-footer b{font-weight:700;color:#6b5600}
.account-license-footer .license-sep{opacity:.42}
@media(max-width:760px){.account-license-footer{gap:4px;font-size:11px;justify-content:flex-start}.account-license-footer .license-sep{display:none}.account-license-footer>span:not(.license-sep){margin-right:8px}}


/* v1.1.44 - Service plans conversion polish */
.plans-head{position:relative;gap:24px;padding:24px 26px;border:1px solid #eadfca;border-radius:22px;background:linear-gradient(135deg,#fffdf6 0%,#fff8d9 52%,#fff 100%);box-shadow:0 16px 42px rgba(103,78,18,.07);overflow:hidden}
.plans-head:after{content:"";position:absolute;width:180px;height:180px;right:-55px;top:-90px;border-radius:50%;background:rgba(255,201,0,.16);pointer-events:none}
.plans-head h1{max-width:760px;margin-top:6px}
.plans-head p{max-width:760px;color:#6f6555}
.current-plan-chip{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:230px;min-height:92px;padding:13px 16px;border-radius:17px;border:1px solid transparent;box-shadow:0 10px 28px rgba(55,43,16,.09);white-space:normal}
.current-plan-chip.is-free{background:linear-gradient(145deg,#fff8d5,#fffdf4);border-color:#f0cf50;color:#6d5700}
.current-plan-chip.is-premium{background:linear-gradient(145deg,#edf5ff,#f8fbff);border-color:#a9caef;color:#245e9f}
.current-plan-label{font-size:9px;font-weight:850;letter-spacing:.12em;opacity:.72}
.current-plan-main{display:flex;align-items:baseline;gap:9px;margin-top:4px}.current-plan-main strong{font-size:19px;line-height:1}.current-plan-main span{font-size:13px;font-weight:800}
.current-plan-breakdown{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:10px;font-weight:700;opacity:.78}.current-plan-breakdown i{font-style:normal;opacity:.55}
.plans-grid{gap:20px;margin-top:22px}
.plan-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.plan-card:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(45,38,25,.10)}
.plan-card.featured{background:linear-gradient(180deg,#fffefa 0%,#fff9df 100%);border:1.5px solid #e8bd17;box-shadow:0 20px 50px rgba(255,201,0,.16)}
.plan-card.custom-plan{background:linear-gradient(180deg,#fbfffd 0%,#eefaf4 100%);border-color:#c7e9d8}
.plan-icon{box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 8px 20px rgba(0,0,0,.045)}
.plan-icon.premium{background:linear-gradient(145deg,#deecff,#f2f7ff);color:#1f67b7}.plan-icon.custom{background:linear-gradient(145deg,#daf5e7,#f2fcf7);color:#13764b}
.recommended-badge{box-shadow:0 6px 16px rgba(201,156,0,.22);text-transform:uppercase;letter-spacing:.04em}
.plan-capacity{margin-left:-8px;margin-right:-8px;padding:18px 8px}.plan-card.featured .plan-capacity strong{color:#9b7600}.plan-card.custom-plan .plan-capacity strong{color:#176c49}
.plan-card li svg{color:#c39700}.plan-card.custom-plan li svg{color:#2f9568}
.plan-btn.primary{background:linear-gradient(180deg,#ffd633,#ffc400);box-shadow:0 9px 20px rgba(214,166,0,.22)}.plan-btn.primary:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(214,166,0,.28)}
.plan-btn.dark{background:linear-gradient(180deg,#2f3430,#171a18);box-shadow:0 9px 20px rgba(0,0,0,.13)}
.custom-files-control{padding:8px;border:1px solid #d8ecdf;border-radius:14px;background:rgba(255,255,255,.72)}
.custom-files-control button{border-color:#d5e8dd}.custom-files-control button:hover{background:#eaf8f1;border-color:#79bf99}
.custom-summary{margin-top:7px;border:1px solid #e3eee7;background:rgba(255,255,255,.72)}
@media(max-width:980px){.plans-head{padding:20px}.current-plan-chip{min-width:0;width:100%;max-width:360px}}

/* v1.1.45 pricing */
.premium-price-options{display:grid;gap:8px;margin:12px 0}.premium-price-options>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e5e1d7;border-radius:12px;background:#fff;color:inherit;text-decoration:none;transition:.16s ease}.premium-price-options>a:hover{border-color:#ffc900;transform:translateY(-1px);box-shadow:0 6px 18px rgba(50,40,0,.08)}.premium-price-options>a.hot{background:#fff9df;border-color:#f3d45b}.premium-price{display:flex;align-items:baseline;gap:6px;text-align:right}.premium-price strong{font-size:17px;color:#171717}.premium-price span{font-size:11px;color:#8b8579}.premium-price.sale>div{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;justify-content:flex-end}.premium-price.sale del{font-size:11px;color:#a39c90}.coupon-badge{padding:3px 7px;border-radius:999px;background:#fff0a8!important;color:#806300!important;font-weight:800;white-space:nowrap}.free-price{margin:12px 0;padding:10px 12px;border-radius:12px;background:#f8f7f3;justify-content:space-between}.extra-unit-price,.custom-total{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin:10px 0;border-radius:12px;background:#eaf8f2;border:1px solid #cdeade}.extra-unit-price span,.custom-total span{font-size:12px;color:#6d746f}.extra-unit-price strong,.custom-total strong{font-size:17px}.custom-total{background:#fff8d7;border-color:#f4df78}.plan-hint{display:block;text-align:center;font-size:12px;color:#8b8579;padding:10px}.admin-form-cols{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.admin-form-cols{grid-template-columns:1fr}.premium-price-options>a{align-items:flex-start}.premium-price.sale>div{justify-content:flex-start}}

/* v1.1.46 - compact pricing page + stronger price hierarchy */
.plans-workspace{padding-bottom:18px}
.plans-head{padding:15px 20px;border-radius:18px;gap:18px}
.plans-head h1{margin:3px 0 4px;font-size:24px;line-height:1.16}
.plans-head p{margin:0;font-size:12px;line-height:1.45}
.current-plan-chip{min-width:205px;min-height:72px;padding:10px 14px;border-radius:15px}
.current-plan-main strong{font-size:17px}.current-plan-main span{font-size:12px}.current-plan-breakdown{margin-top:6px}
.plans-grid{gap:16px;margin-top:14px}
.plan-card{padding:18px 19px;border-radius:18px}
.plan-icon{width:42px;height:42px;border-radius:12px;margin-bottom:12px}
.plan-kicker{font-size:10px}.plan-card h2{margin:3px 0 5px;font-size:23px}
.plan-desc{min-height:38px;margin:0 0 11px;font-size:12px;line-height:1.45}
.plan-capacity{padding:12px 7px;margin-left:-5px;margin-right:-5px}
.plan-capacity strong{font-size:34px}.plan-capacity span{font-size:12px}
.plan-card ul{margin:12px 0 14px;gap:7px;font-size:11px;line-height:1.35}
.plan-btn{min-height:40px;border-radius:10px;font-size:12px}
.plan-card.current:after,.recommended-badge{right:14px;top:14px;padding:4px 8px;font-size:9px}
.plan-card.current.featured:after{top:43px}

/* Premium pricing is the CTA itself: no redundant lower information block */
.plan-card.featured .premium-price-options{margin:10px 0 0;gap:7px}
.premium-price-options>a{min-height:52px;padding:8px 10px;border-radius:11px}
.price-option-title{display:flex;flex-direction:column;gap:2px;min-width:74px}
.price-option-title>b{font-size:12px;line-height:1.15}.price-option-title>small{font-size:9px;color:#9a9184;white-space:nowrap}
.premium-price strong{font-size:19px;font-weight:850;letter-spacing:-.02em}
.premium-price.sale del{font-size:10px}.premium-price span{font-size:10px}
.premium-price-options>a.price-month{border-color:#b9d5f3;background:linear-gradient(135deg,#f7fbff,#eef6ff)}
.premium-price-options>a.price-month .premium-price strong{color:#176bb7}
.premium-price-options>a.price-year{border-color:#efc72e;background:linear-gradient(135deg,#fffdf3,#fff4b9);box-shadow:0 7px 18px rgba(220,169,0,.13)}
.premium-price-options>a.price-year .premium-price strong{color:#c34f00}
.premium-price-options>a.price-lifetime{border-color:#c9b7ef;background:linear-gradient(135deg,#fbf9ff,#f2edff)}
.premium-price-options>a.price-lifetime .premium-price strong{color:#6d42b8}
.premium-price-options>a:hover{transform:translateY(-2px);box-shadow:0 9px 21px rgba(50,40,0,.11)}
.coupon-badge{font-size:9px;padding:3px 6px;background:#ffc900!important;color:#473600!important}
.premium-current-note{margin-top:9px;padding:8px 10px;border-radius:10px;background:#e9f4ff;color:#24649d;text-align:center;font-size:11px;font-weight:750}

/* Free and add-on card compactness */
.free-price{margin:8px 0;padding:8px 10px}.free-price strong{color:#8c6a00;font-size:18px}
.extra-unit-price,.custom-total{padding:8px 10px;margin:7px 0;border-radius:10px}.extra-unit-price strong,.custom-total strong{font-size:16px}
.custom-files-control{margin:10px 0 7px;padding:6px}.custom-files-control button,.custom-files-control input{height:38px}.custom-files-control input{font-size:16px}
.custom-summary{padding:7px 10px;margin-top:5px}.custom-summary strong{font-size:12px}
.plan-card.custom-plan ul{margin:10px 0 12px;gap:6px}

/* Keep the entire 3-card offer visible on common desktop laptop heights */
@media(min-width:981px) and (max-height:900px){
  .plans-head{padding:12px 18px}.plans-head h1{font-size:21px}.plans-head p{font-size:11px}
  .current-plan-chip{min-height:64px}
  .plans-grid{margin-top:10px;gap:14px}
  .plan-card{padding:15px 17px}.plan-icon{width:38px;height:38px;margin-bottom:9px}
  .plan-card h2{font-size:21px}.plan-desc{min-height:32px;margin-bottom:8px;font-size:11px}
  .plan-capacity{padding:9px 6px}.plan-capacity strong{font-size:30px}
  .plan-card ul{margin:9px 0 10px;gap:5px;font-size:10.5px}
  .premium-price-options>a{min-height:47px;padding:7px 9px}.premium-price strong{font-size:17px}
  .custom-files-control{margin:7px 0 5px}.custom-files-control button,.custom-files-control input{height:35px}
  .extra-unit-price,.custom-total{margin:5px 0;padding:7px 9px}.custom-summary{padding:6px 9px}
  .plan-btn{min-height:38px}
}
@media(max-width:980px){.plans-head{padding:18px}.plans-grid{margin-top:14px}.plan-card{padding:18px}}

/* v1.1.51 - Orders admin */
.orders-workspace{padding-top:26px;padding-bottom:42px}.orders-workspace[hidden]{display:none!important}.orders-head-actions{display:flex;align-items:center;gap:10px}.orders-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.orders-stats article{background:#fff;border:1px solid #e9e3d8;border-radius:16px;padding:17px 18px;box-shadow:0 10px 26px rgba(42,36,22,.045)}.orders-stats span{display:block;color:#8c887f;font-size:12px;margin-bottom:7px}.orders-stats strong{display:block;font-size:25px;line-height:1.08;color:#171717}.orders-stats article:first-child strong{color:#a96f00}.orders-stats article:nth-child(2) strong{color:#14845d}.orders-stats article:nth-child(3) strong{color:#d07a00}.orders-stats small{display:block;color:#99948b;font-size:11px;margin-top:6px}.orders-card{padding:0;overflow:hidden}.orders-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #eee9df}.orders-toolbar h2{margin:0 0 3px;font-size:18px}.orders-toolbar>div>span{color:#99948b;font-size:12px}.orders-tools{display:flex;align-items:center;gap:9px}.orders-search{min-width:280px}.orders-tools select{min-width:160px}.orders-table{overflow:auto}.orders-table-head,.order-row{display:grid;grid-template-columns:120px minmax(210px,1.5fr) 110px 125px 150px 190px 150px;align-items:center;gap:12px;min-width:1080px}.orders-table-head{padding:10px 16px;background:#faf8f3;border-bottom:1px solid #eee9df;color:#8d887f;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.order-row{padding:11px 16px;border-bottom:1px solid #f0ece4;font-size:12px}.order-row:last-child{border-bottom:0}.order-row:hover{background:#fffdf8}.order-row span{min-width:0}.order-row strong,.order-row b{display:block;color:#2a2926}.order-row small{display:block;color:#9a958c;font-size:10.5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-code strong{color:#9d6e00;font-size:13px}.order-money{font-size:14px;font-weight:900;color:#171717}.order-status{display:inline-flex!important;width:max-content;align-items:center;padding:5px 8px;border-radius:999px;font-weight:800;font-size:10px!important;margin:0!important}.order-status.paid{background:#e8f8f1;color:#147755}.order-status.unpaid{background:#fff4d8;color:#9d6500}.order-status.cancelled{background:#f2f1ef;color:#77726b}.applied-state{margin-top:5px!important}.order-actions{display:flex;gap:6px}.order-actions .secondary-btn,.order-actions .danger-ghost{min-height:32px;padding:6px 9px;font-size:11px}.orders-empty{padding:34px 18px;text-align:center;color:#928d84}.order-detail-dialog{width:min(760px,calc(100vw - 32px));border:0;border-radius:20px;padding:24px;box-shadow:0 28px 80px rgba(0,0,0,.22)}.order-detail-dialog::backdrop{background:rgba(20,20,18,.48);backdrop-filter:blur(2px)}.order-dialog-close{position:absolute;right:14px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:#f4f1ea;font-size:22px;cursor:pointer}.order-detail-dialog h2{font-size:25px;margin:8px 0 18px}.order-detail-dialog h3{font-size:14px;margin:22px 0 10px}.order-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.order-detail-grid>div{background:#faf9f6;border:1px solid #eee9df;border-radius:12px;padding:11px 12px}.order-detail-grid span{display:block;color:#969187;font-size:10px;margin-bottom:4px}.order-detail-grid strong{display:block;font-size:12px;word-break:break-word}.order-detail-grid small{display:block;color:#aaa59c;font-size:10px;margin-top:3px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.order-tx-list{border:1px solid #eee9df;border-radius:12px;overflow:hidden}.order-tx-list>div{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid #f0ece4}.order-tx-list>div:last-child{border-bottom:0}.order-tx-list small{display:block;color:#99948b;font-size:10px;margin-top:3px}.order-tx-list p{padding:14px;margin:0;color:#99948b;font-size:12px}
@media(max-width:1100px){.orders-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.orders-toolbar{align-items:flex-start;flex-direction:column}.orders-tools{width:100%;flex-wrap:wrap}.orders-search{flex:1;min-width:220px}}@media(max-width:700px){.orders-workspace{padding-left:12px;padding-right:12px}.orders-stats{grid-template-columns:1fr 1fr;gap:9px}.orders-stats article{padding:13px}.orders-stats strong{font-size:20px}.orders-tools{display:grid;grid-template-columns:1fr 1fr}.orders-search{grid-column:1/-1;min-width:0}.order-detail-grid{grid-template-columns:1fr}.orders-head-actions .admin-role-badge{display:none}}

/* v1.1.53 - split license footer into readable color tags */
.account-license-footer{background:transparent!important;padding:0!important;border-radius:0!important;gap:6px!important}
.account-license-footer .license-tag{display:inline-flex;align-items:center;min-height:27px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:650;line-height:1;white-space:nowrap;border:1px solid transparent}
.account-license-footer .license-plan{background:#fff1ad;border-color:#f4d34f;color:#725600}
.account-license-footer .license-expiry{background:#eaf3ff;border-color:#c8ddfb;color:#245b98}
.account-license-footer .license-base{background:#f1f3f5;border-color:#dde1e5;color:#4b5563}
.account-license-footer .license-extra{background:#e9f8ef;border-color:#c6ead3;color:#197344}
.account-license-footer .license-total{background:#fff0e5;border-color:#ffd1b0;color:#b44d08;font-weight:750}
.account-license-footer .license-tag b{color:inherit;font-weight:800}
@media(max-width:760px){.account-license-footer .license-tag{font-size:11px;min-height:25px;padding:5px 8px}}

/* v1.1.55 - compact sticky account footer */
.app-shell>footer{position:sticky;bottom:0;z-index:19;min-height:48px;padding:8px max(24px,4vw);align-items:center;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -5px 18px rgba(35,35,35,.055)}
.account-license-footer .license-tag{min-height:29px;padding:6px 11px}
@media(max-width:620px){.app-shell>footer{display:flex!important;min-height:46px;padding:7px 12px;overflow:hidden}.app-shell>footer>span:first-child{display:none}.account-license-footer{width:100%;justify-content:flex-start!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}.account-license-footer::-webkit-scrollbar{display:none}.account-license-footer .license-tag{flex:0 0 auto;min-height:28px}}


/* v1.1.56 - mobile responsive navigation + readable action labels */
@media(max-width:900px){
  .topbar{
    height:auto!important;
    min-height:60px;
    padding:0 14px!important;
    gap:8px 12px!important;
    flex-wrap:wrap!important;
    align-content:center;
  }
  .topbar .brand{
    height:58px;
    flex:0 1 auto;
  }
  .topbar .account{
    height:58px;
    margin-left:auto!important;
  }
  .topbar nav{
    order:3;
    display:flex!important;
    width:calc(100% + 28px);
    height:42px!important;
    margin:0 -14px!important;
    padding:0 14px;
    gap:6px!important;
    align-items:center;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    scrollbar-width:none;
    border-top:1px solid rgba(230,227,219,.72);
    background:rgba(255,255,255,.76);
  }
  .topbar nav::-webkit-scrollbar{display:none}
  .topbar nav a{
    flex:0 0 auto;
    min-height:34px;
    padding:0 10px;
    gap:6px!important;
    border-radius:9px;
    font-size:12.5px!important;
    color:#6f6c65;
  }
  .topbar nav a.active{
    background:#fff5bf;
    color:#4f4100;
  }
  .topbar nav a.active:after{
    display:none!important;
  }
  .topbar nav a svg{
    width:15px!important;
    height:15px!important;
  }
}

@media(max-width:620px){
  /* Keep text visible whenever the button itself has enough width. */
  .primary-btn span,
  .login-card .primary-btn span,
  .share-form .primary-btn span,
  #upload-trigger span{
    display:inline!important;
  }

  .primary-btn{
    padding-left:12px!important;
    padding-right:12px!important;
    gap:7px!important;
    font-size:13px!important;
  }
  .workspace-head{
    gap:10px!important;
    flex-wrap:wrap;
  }
  .workspace-head .primary-btn{
    min-height:40px;
    flex:0 0 auto;
  }

  .topbar{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .topbar nav{
    width:calc(100% + 20px);
    margin-left:-10px!important;
    margin-right:-10px!important;
    padding-left:10px;
    padding-right:10px;
  }
  .topbar nav a{
    min-height:33px;
    padding:0 9px;
    font-size:12px!important;
  }
}

@media(max-width:420px){
  .topbar nav a{
    padding:0 8px;
    gap:5px!important;
    font-size:11.5px!important;
  }
  .topbar nav a svg{
    width:14px!important;
    height:14px!important;
  }
  .workspace-head h1{font-size:25px!important}
}

/* Share dialog: never collapse the main create-link caption on phones. */
@media(max-width:700px){
  #share-dialog .share-form .primary-btn{
    width:100%;
    justify-content:space-between;
  }
  #share-dialog .share-form .primary-btn span{
    display:inline!important;
  }
}

/* v1.1.57 - Help Center + mobile brand */
.help-hero{padding:22px;border:1px solid #eadfba;border-radius:20px;background:linear-gradient(135deg,#fff9dd,#fff 58%,#f2f8ff);box-shadow:0 14px 38px rgba(70,55,0,.06)}.help-search-wrap{height:52px;max-width:820px;margin:auto;display:flex;align-items:center;gap:10px;padding:0 15px;border:1px solid #dfd8c6;border-radius:14px;background:#fff;color:#9b927b}.help-search-wrap input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:15px}.help-search-wrap button{width:30px;height:30px;border:0;border-radius:8px;background:#f2f0e9;color:#8a867e;font-size:20px;opacity:0;pointer-events:none}.help-search-wrap button.visible{opacity:1;pointer-events:auto}.help-quick-tags{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:15px}.help-quick-tags button{min-height:31px;padding:0 11px;border:1px solid #e7dfc6;border-radius:999px;background:#fff;color:#6d6342;font-size:12px;font-weight:700}.help-section{margin-top:28px}.help-section-title{margin-bottom:14px}.help-section-title h2{margin:4px 0 0;font-size:22px;letter-spacing:-.035em}.help-kicker{font-size:11px;font-weight:800;letter-spacing:.14em;color:#9a7900}.help-start-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.help-start-card{min-height:150px;padding:18px;display:flex;align-items:flex-start;gap:13px;border:1px solid var(--line);border-radius:17px;background:#fff}.help-start-card>svg{flex:0 0 auto;padding:9px;width:42px;height:42px;border-radius:12px;background:#fff4bd;color:#806600}.help-start-card strong{font-size:15px}.help-start-card p{margin:7px 0 0;color:#817d73;font-size:13px;line-height:1.6}.help-accordion{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}.help-item{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.help-item summary{min-height:68px;padding:12px 14px;display:grid;grid-template-columns:32px 1fr 22px;gap:10px;align-items:center;list-style:none;cursor:pointer}.help-item summary::-webkit-details-marker{display:none}.help-item summary>svg{color:#8b7006}.help-item summary>span{display:grid;gap:3px}.help-item summary strong{font-size:14px}.help-item summary small{color:#99958a;font-size:12px}.help-item summary>b{font-size:20px;color:#9e9788;text-align:center}.help-item[open]{border-color:#e7cc62;background:#fffdf3}.help-detail{padding:0 14px 14px 56px;color:#6e6a61;font-size:13px;line-height:1.65}.help-detail p{margin:0}.help-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.help-panel{padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff}.shortcut-list{display:grid;grid-template-columns:1fr 1fr;gap:1px 16px}.shortcut-list>div{min-height:42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px dashed #ece8de;color:#6d6960;font-size:13px}kbd{min-width:34px;padding:4px 7px;text-align:center;border:1px solid #dfdbd0;border-bottom-width:2px;border-radius:7px;background:#f8f7f3;color:#3b3933;font:700 11px/1.2 "Be Vietnam Pro",sans-serif}.trouble-list{display:grid;gap:7px}.trouble-list button{min-height:42px;padding:0 11px;display:flex;justify-content:space-between;align-items:center;text-align:left;border:1px solid #ece8df;border-radius:10px;background:#faf9f6;color:#605d56;font-size:13px}.help-contact{margin:28px 0 10px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #e7d676;border-radius:18px;background:linear-gradient(120deg,#fff5b8,#fffdf0)}.help-contact h2{margin:4px 0 5px;font-size:21px}.help-contact p{margin:0;color:#817a66;font-size:13px}@media(max-width:620px){.topbar .brand{min-width:max-content!important;gap:8px!important}.topbar .brand>span:last-child{display:grid!important;line-height:1!important}.topbar .brand strong{font-size:14px!important}.topbar .brand small{display:block!important;margin-top:4px!important;font-size:9px!important;letter-spacing:.1em!important}.topbar .brand-mark{width:34px;height:34px;border-radius:10px}.topbar .avatar{width:32px;height:32px}}@media(max-width:980px){.help-start-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.help-workspace{width:calc(100% - 24px)!important;padding-top:26px!important}.help-head h1{font-size:27px!important}.help-hero{padding:14px}.help-search-wrap{height:48px}.help-quick-tags{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.help-quick-tags::-webkit-scrollbar{display:none}.help-quick-tags button{flex:0 0 auto}.help-accordion,.help-two-cols{grid-template-columns:1fr}.help-contact{align-items:flex-start;flex-direction:column}.help-contact .primary-btn{width:100%}}@media(max-width:500px){.help-start-grid{grid-template-columns:1fr}.help-start-card{min-height:0}.shortcut-list{grid-template-columns:1fr}}


/* v1.1.59 - Open BIM Viewer: larger compass, clearer directions, corner Home, native projection */
.revit-viewcube{
  right:10px!important;
  top:8px!important;
  width:184px!important;
  height:184px!important;
  perspective:460px!important;
}
.revit-viewcube .cube-home{
  left:auto!important;
  right:-4px!important;
  top:-4px!important;
  width:31px!important;
  height:31px!important;
  font-size:25px!important;
  line-height:29px!important;
  color:#555!important;
  background:rgba(255,255,255,.78)!important;
  border:1px solid rgba(210,210,210,.8)!important;
  border-radius:7px!important;
  backdrop-filter:blur(4px);
}
.revit-viewcube .cube-home:hover{background:#e8f4ff!important;color:#1676c1!important}

.cube-compass{
  left:19px!important;
  top:39px!important;
  width:148px!important;
  height:148px!important;
  border:1.6px solid #8f8f8f!important;
  opacity:1!important;
  transform:rotateX(72deg) rotateZ(calc(-1 * var(--cube-yaw)))!important;
}
.cube-compass:before{inset:9px!important;border-color:#aaa!important}
.cube-compass:after{inset:21px!important;border-color:#c8c8c8!important}
.cube-compass span{
  font-size:17px!important;
  font-weight:900!important;
  font-style:normal!important;
  color:#454545!important;
  letter-spacing:.01em!important;
  text-shadow:0 1px 0 #fff,0 0 3px #fff!important;
  transform:rotateZ(var(--cube-yaw)) rotateX(-72deg)!important;
}
.cube-compass .north{left:66px!important;top:-21px!important}
.cube-compass .south{left:66px!important;bottom:-21px!important}
.cube-compass .east{right:-16px!important;top:60px!important}
.cube-compass .west{left:-17px!important;top:60px!important}

/* Keep the cube centered over the enlarged compass. */
.cube-rotator{
  left:66px!important;
  top:75px!important;
}

/* Projection uses the browser-native popup to avoid an invisible/clipped dropdown. */
.projection-group{overflow:visible!important}
.projection-group>select#projection[data-atool-material]{
  position:relative!important;
  inset:auto!important;
  width:118px!important;
  height:34px!important;
  opacity:1!important;
  pointer-events:auto!important;
  padding:0 28px 0 9px!important;
  font-size:11.5px!important;
  font-weight:650!important;
  cursor:pointer!important;
}

@media(max-width:760px){
  .revit-viewcube{
    right:2px!important;
    top:3px!important;
    transform:scale(.78)!important;
    transform-origin:top right!important;
  }
  .revit-viewcube .cube-home{
    right:-2px!important;
    top:-2px!important;
  }
  .projection-group>select#projection[data-atool-material]{
    width:88px!important;
    padding:0 18px 0 5px!important;
    font-size:10.5px!important;
  }
}


/* v1.1.60 - ViewCube Home icon + Revit-like live compass */
.revit-viewcube .cube-home{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  padding:0!important;
  line-height:1!important;
  overflow:hidden!important;
}
.revit-viewcube .cube-home svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.75!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  pointer-events:none!important;
}
.revit-viewcube .cube-home:hover svg{stroke-width:1.9!important}

/* The compass is a live horizontal ground plane, like Revit ViewCube.
   Yaw follows orbit around the model; tilt follows camera elevation. */
.cube-compass{
  --cube-yaw:0deg;
  --cube-tilt:58deg;
  transform:
    rotateX(var(--cube-tilt))
    rotateZ(calc(-1 * var(--cube-yaw)))!important;
  transform-origin:center center!important;
  will-change:transform!important;
  transition:none!important;
}
.cube-compass span{
  transform:
    rotateZ(var(--cube-yaw))
    rotateX(calc(-1 * var(--cube-tilt)))!important;
  transform-origin:center!important;
  transition:none!important;
}

/* Fine tune the Home position/padding after replacing the glyph. */
.revit-viewcube .cube-home{
  right:-3px!important;
  top:-3px!important;
  width:32px!important;
  height:32px!important;
  border-radius:7px!important;
}


/* v1.1.61 - Compass locked to the same 3D orientation as ViewCube */
.cube-compass{
  left:19px!important;
  top:39px!important;
  width:148px!important;
  height:148px!important;
  transform-origin:74px 74px 0!important;
  transform-style:preserve-3d!important;
  will-change:transform!important;
  transition:none!important;
}

/* Direction labels are part of the compass itself.
   They no longer counter-rotate independently from the ViewCube. */
.cube-compass span{
  transform:none!important;
  transition:none!important;
  backface-visibility:visible!important;
}

/* Keep every direction fixed to its exact compass position. */
.cube-compass .north{left:66px!important;top:-21px!important}
.cube-compass .south{left:66px!important;bottom:-21px!important}
.cube-compass .east{right:-16px!important;top:60px!important}
.cube-compass .west{left:-17px!important;top:60px!important}


/* v1.1.62 - Revit-style compass: centered under cube base and rotates with camera */
.revit-viewcube{
  width:184px!important;
  height:184px!important;
}

/* Cube center = compass center */
.cube-rotator{
  left:69px!important;
  top:69px!important;
  width:46px!important;
  height:46px!important;
  transform-origin:23px 23px 0!important;
  z-index:4!important;
}

.cube-compass{
  --cube-yaw:0deg;
  --cube-tilt:62deg;
  left:18px!important;
  top:18px!important;
  width:148px!important;
  height:148px!important;
  z-index:1!important;
  transform-origin:74px 74px 0!important;
  transform-style:preserve-3d!important;
  transform:
    rotateX(var(--cube-tilt))
    rotateZ(calc(-1 * var(--cube-yaw)))!important;
  transition:none!important;
  will-change:transform!important;
}

/* The whole N/E/S/W system travels with the compass.
   Text stays readable while its cardinal position rotates with the ring. */
.cube-compass span{
  transition:none!important;
  transform:
    rotateZ(var(--cube-yaw))
    rotateX(calc(-1 * var(--cube-tilt)))!important;
  transform-origin:center!important;
}

.cube-compass .north{left:66px!important;top:-21px!important}
.cube-compass .south{left:66px!important;bottom:-21px!important}
.cube-compass .east{right:-16px!important;top:60px!important}
.cube-compass .west{left:-17px!important;top:60px!important}

/* Keep the compass visually behind the cube bottom plane. */
.revit-viewcube .cube-face{z-index:4}
.revit-viewcube .cube-home{z-index:8!important}


/* v1.1.63 - Revit-like compass: the ring is a true local 3D plane under ViewCube. */
.cube-rotator{
  left:69px!important;
  top:69px!important;
  width:46px!important;
  height:46px!important;
  transform-origin:23px 23px 0!important;
  transform-style:preserve-3d!important;
  overflow:visible!important;
  z-index:4!important;
}
.cube-rotator > .cube-compass{
  position:absolute!important;
  left:-51px!important;
  top:-51px!important;
  width:148px!important;
  height:148px!important;
  margin:0!important;
  box-sizing:border-box!important;
  border:1.6px solid #8f8f8f!important;
  border-radius:50%!important;
  opacity:1!important;
  pointer-events:none!important;
  transform:rotateX(-90deg) translateZ(27px)!important;
  transform-origin:74px 74px 0!important;
  transform-style:preserve-3d!important;
  z-index:-1!important;
  transition:none!important;
}
.cube-rotator > .cube-compass:before,
.cube-rotator > .cube-compass:after{
  content:""!important;
  position:absolute!important;
  border:1px solid #bdbdbd!important;
  border-radius:50%!important;
  pointer-events:none!important;
}
.cube-rotator > .cube-compass:before{inset:9px!important}
.cube-rotator > .cube-compass:after{inset:21px!important;border-color:#d1d1d1!important}
.cube-rotator > .cube-compass span{
  position:absolute!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  font-size:17px!important;
  line-height:17px!important;
  font-weight:900!important;
  font-style:normal!important;
  color:#555!important;
  text-shadow:0 1px 0 #fff,0 0 2px #fff!important;
  transform:none!important;
  backface-visibility:visible!important;
  transition:none!important;
}
.cube-rotator > .cube-compass .north{left:66px!important;top:-20px!important}
.cube-rotator > .cube-compass .south{left:66px!important;bottom:-20px!important}
.cube-rotator > .cube-compass .east{right:-15px!important;top:64px!important}
.cube-rotator > .cube-compass .west{left:-16px!important;top:64px!important}
.revit-viewcube .cube-face{z-index:2!important}
.revit-viewcube .cube-home{z-index:10!important}


/* v1.1.64 - Revit-like gray compass, readable cardinals, hover rotation controls */
.cube-rotator > .cube-compass{
  background:
    radial-gradient(circle at 50% 50%,
      rgba(255,255,255,.10) 0 36%,
      rgba(165,165,165,.18) 37% 55%,
      rgba(128,128,128,.30) 56% 72%,
      rgba(185,185,185,.25) 73% 100%)!important;
  border-color:#8d8d8d!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.48),
    inset 0 0 16px rgba(0,0,0,.08)!important;
}
.cube-rotator > .cube-compass:before{border-color:#9f9f9f!important}
.cube-rotator > .cube-compass:after{border-color:#bcbcbc!important}

/* Soft shadow just under the cube base */
.cube-floor-shadow{
  position:absolute;
  left:-7px;
  top:28px;
  width:60px;
  height:25px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,
    rgba(0,0,0,.30) 0%,
    rgba(0,0,0,.18) 38%,
    rgba(0,0,0,.08) 62%,
    rgba(0,0,0,0) 80%);
  filter:blur(4px);
  transform:rotateX(-90deg) translateZ(28px);
  transform-origin:center;
  pointer-events:none;
  z-index:0;
}

/* Screen-facing labels: directions move with cube, glyphs never mirror */
.cube-cardinals{
  position:absolute;
  left:92px;
  top:92px;
  width:0;
  height:0;
  pointer-events:none;
  z-index:8;
}
.cube-cardinals span{
  position:absolute;
  left:-9px;
  top:-9px;
  width:18px;
  height:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:17px;
  line-height:18px;
  font-weight:900;
  font-style:normal;
  color:#484848;
  text-shadow:0 1px 0 #fff,0 0 3px #fff;
  transform:translate(0,0);
  transition:none;
  will-change:transform;
}

/* Revit-like turn arrows: only appear while hovering the ViewCube region */
.cube-turn-controls{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:9;
}
.cube-turn{
  position:absolute;
  top:78px;
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid #aaa;
  border-radius:4px;
  background:rgba(242,242,242,.95);
  color:#6d6d6d;
  box-shadow:0 1px 2px rgba(0,0,0,.10);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:scale(.92);
  transition:opacity .12s ease,transform .12s ease,background .12s ease;
}
.cube-turn-left{left:1px}
.cube-turn-right{right:1px}
.cube-turn svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.revit-viewcube:hover .cube-turn{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:scale(1);
}
.cube-turn:hover{
  background:#dceefa;
  color:#286b99;
  border-color:#6ea4c8;
}

/* Old 3D label rules must never create mirrored text */
.cube-rotator > .cube-compass span{display:none!important}


/* ===== ATool Open BIM v1.1.65 — ViewCube compass refinement ===== */
/* One geometric center for cube, compass and ground shadow. */
.revit-viewcube{
  width:184px!important;
  height:184px!important;
  perspective:460px!important;
}
.cube-rotator{
  left:69px!important;
  top:69px!important;
  width:46px!important;
  height:46px!important;
  transform-origin:23px 23px 0!important;
  transform-style:preserve-3d!important;
  overflow:visible!important;
}

/* Compass is the same local plane as the cube bottom, but front-facing.
   rotateX(+90) + translateZ(-23) is the opposite-facing equivalent of
   the cube bottom plane, preventing mirrored N/S/E/W text. */
.cube-rotator > .cube-compass{
  position:absolute!important;
  left:-51px!important;
  top:-51px!important;
  width:148px!important;
  height:148px!important;
  box-sizing:border-box!important;
  border:1.5px solid #909090!important;
  border-radius:50%!important;
  opacity:1!important;
  pointer-events:none!important;
  transform:rotateX(90deg) translateZ(-23px)!important;
  transform-origin:74px 74px 0!important;
  transform-style:preserve-3d!important;
  background:rgba(145,145,145,.16)!important;
  box-shadow:inset 0 0 7px rgba(0,0,0,.045)!important;
  z-index:-1!important;
}

/* Fewer gray layers: only one inner guide ring. */
.cube-rotator > .cube-compass:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:17px!important;
  border:1px solid rgba(112,112,112,.43)!important;
  border-radius:50%!important;
}
.cube-rotator > .cube-compass:after{display:none!important;content:none!important}

/* Letters are physically on the compass plane, exactly like Revit.
   They rotate with the ring, but the plane front is now oriented correctly,
   so the glyphs are not mirrored. */
.cube-rotator > .cube-compass span{
  position:absolute!important;
  display:block!important;
  width:20px!important;
  height:20px!important;
  margin:0!important;
  padding:0!important;
  font-size:17px!important;
  line-height:20px!important;
  font-weight:900!important;
  font-style:normal!important;
  text-align:center!important;
  color:#4b4b4b!important;
  text-shadow:0 1px 0 rgba(255,255,255,.94),0 0 2px rgba(255,255,255,.85)!important;
  transform:none!important;
  backface-visibility:visible!important;
  transition:none!important;
}
.cube-rotator > .cube-compass .north{left:64px!important;top:-20px!important}
.cube-rotator > .cube-compass .south{left:64px!important;bottom:-20px!important}
.cube-rotator > .cube-compass .east{right:-15px!important;top:63px!important}
.cube-rotator > .cube-compass .west{left:-15px!important;top:63px!important}

/* Shadow uses EXACTLY the same plane transform as the compass and is centered
   directly under the 46x46 cube footprint. */
.cube-floor-shadow{
  position:absolute!important;
  left:-3px!important;
  top:14px!important;
  width:52px!important;
  height:18px!important;
  border-radius:50%!important;
  background:radial-gradient(ellipse at center,
    rgba(0,0,0,.25) 0%,
    rgba(0,0,0,.14) 40%,
    rgba(0,0,0,.055) 67%,
    rgba(0,0,0,0) 82%)!important;
  filter:blur(2.3px)!important;
  transform:rotateX(90deg) translateZ(-23px)!important;
  transform-origin:26px 9px 0!important;
  pointer-events:none!important;
  z-index:0!important;
}

/* Remove the screen-cardinal overlay and side hover turn controls completely. */
.cube-cardinals,.cube-turn-controls,.cube-turn{display:none!important}


/* ===== ATool Open BIM v1.1.66 — exact Bottom-plane compass alignment ===== */

/*
  Cube faces are 54x54 and use +/-27px face depth in the effective rules above.
  Therefore the true geometric cube center is 27,27 — not 23,23.
  Align the rotator, compass and shadow to that exact center.
*/
.cube-rotator{
  left:65px!important;
  top:65px!important;
  width:54px!important;
  height:54px!important;
  transform-origin:27px 27px 0!important;
  transform-style:preserve-3d!important;
  overflow:visible!important;
}

/*
  148px compass: radius 74px.
  Cube local center: 27px.
  -47 + 74 = 27 => exact same center as Cube.
*/
.cube-rotator > .cube-compass{
  left:-47px!important;
  top:-47px!important;
  width:148px!important;
  height:148px!important;
  transform-origin:74px 74px 0!important;

  /*
    Exact geometric plane of .cube-bottom:
      bottom  = rotateX(-90deg) translateZ(27px)
      compass = rotateX( 90deg) translateZ(-27px)
    Same plane/location, opposite-facing so text remains readable.
  */
  transform:rotateX(90deg) translateZ(-27px)!important;

  border:1.35px solid rgba(108,108,108,.68)!important;
  border-radius:50%!important;

  /* Transparent inner circle; only one light gray annulus. */
  background:radial-gradient(
    circle at center,
    rgba(0,0,0,0) 0 76%,
    rgba(145,145,145,.15) 77% 100%
  )!important;
  box-shadow:none!important;
}

/* One inner boundary only; the inside stays fully transparent. */
.cube-rotator > .cube-compass:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:17px!important;
  border:1px solid rgba(115,115,115,.42)!important;
  border-radius:50%!important;
  background:transparent!important;
}
.cube-rotator > .cube-compass:after{
  display:none!important;
  content:none!important;
}

/* Equal spacing for all cardinal letters outside the ring. */
.cube-rotator > .cube-compass .north{
  left:64px!important;
  top:-22px!important;
}
.cube-rotator > .cube-compass .south{
  left:64px!important;
  bottom:-22px!important;
}
.cube-rotator > .cube-compass .east{
  right:-22px!important;
  top:64px!important;
}
.cube-rotator > .cube-compass .west{
  left:-22px!important;
  top:64px!important;
}

/* Shadow uses exactly the same plane as the compass / cube Bottom. */
.cube-floor-shadow{
  left:1px!important;
  top:31px!important;
  width:52px!important;
  height:16px!important;
  transform:rotateX(90deg) translateZ(-27px)!important;
  transform-origin:26px 8px 0!important;
  filter:blur(2.2px)!important;
  background:radial-gradient(
    ellipse at center,
    rgba(0,0,0,.24) 0%,
    rgba(0,0,0,.135) 42%,
    rgba(0,0,0,.045) 69%,
    rgba(0,0,0,0) 83%
  )!important;
}

/* Larger and clearer ViewCube face names. */
.cube-face-center{
  inset:4px!important;
  font-size:10px!important;
  font-weight:850!important;
  line-height:46px!important;
  letter-spacing:-.15px!important;
  color:#4f4f4f!important;
}


/* ===== ATool Open BIM v1.1.67 — keep gray compass ring, remove cube shadow ===== */

/* Giữ vùng vành khuyên màu xám, phần hình tròn nhỏ bên trong vẫn trong suốt. */
.cube-rotator > .cube-compass{
  background:radial-gradient(
    circle at center,
    rgba(0,0,0,0) 0 76%,
    rgba(150,150,150,.24) 77% 100%
  )!important;
  box-shadow:none!important;
}

/* Vòng giới hạn bên trong nhẹ, không tô nền. */
.cube-rotator > .cube-compass:before{
  background:transparent!important;
  border-color:rgba(112,112,112,.42)!important;
}

/* Bỏ hoàn toàn bóng đổ đáy Cube. */
.cube-floor-shadow{
  display:none!important;
}


/* ===== ATool Open BIM v1.1.68 — gray annulus + projection toggle beside ViewCube ===== */

/* Vùng vành khuyên xám rõ như ảnh tham chiếu; vòng tròn nhỏ bên trong trong suốt. */
.cube-rotator > .cube-compass{
  background:radial-gradient(
    circle at center,
    rgba(0,0,0,0) 0 76%,
    rgba(173,173,173,.30) 76.5% 100%
  )!important;
  border-color:rgba(108,108,108,.62)!important;
  box-shadow:none!important;
}
.cube-rotator > .cube-compass:before{
  background:transparent!important;
  border-color:rgba(116,116,116,.43)!important;
}

/* Nút chuyển Phối cảnh / Song song đặt ngay dưới Home. */
.revit-viewcube .cube-projection-toggle{
  position:absolute!important;
  right:-3px!important;
  top:35px!important;
  width:32px!important;
  height:32px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(210,210,210,.88)!important;
  border-radius:7px!important;
  background:rgba(255,255,255,.82)!important;
  color:#5d5d5d!important;
  box-shadow:none!important;
  backdrop-filter:blur(4px)!important;
  cursor:pointer!important;
  z-index:9!important;
}
.revit-viewcube .cube-projection-toggle:hover{
  background:#e8f4ff!important;
  border-color:#9fc7e3!important;
  color:#1676c1!important;
}
.revit-viewcube .cube-projection-toggle .projection-icon{
  position:absolute!important;
  width:18px!important;
  height:18px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.55!important;
  stroke-linejoin:round!important;
  pointer-events:none!important;
}
.revit-viewcube .cube-projection-toggle .projection-icon-ortho{
  display:none!important;
}
.revit-viewcube .cube-projection-toggle.is-orthographic .projection-icon-perspective{
  display:none!important;
}
.revit-viewcube .cube-projection-toggle.is-orthographic .projection-icon-ortho{
  display:block!important;
}

/* Không còn combobox projection trên command bar. */
.projection-group,
#projection{
  display:none!important;
}

@media(max-width:760px){
  .revit-viewcube .cube-projection-toggle{
    right:-2px!important;
    top:35px!important;
  }
}


/* ===== ATool Open BIM v1.1.69 — compact solid-gray compass ring ===== */

/*
  Thu vòng compass từ 148px xuống 118px.
  Cube vẫn 54px, nên tâm compass = tâm Cube:
  27 - 59 = -32px.
*/
.cube-rotator > .cube-compass{
  left:-32px!important;
  top:-32px!important;
  width:118px!important;
  height:118px!important;
  transform-origin:59px 59px 0!important;

  /*
    Phần giữa vòng trong và vòng ngoài được tô xám rõ ràng,
    không dùng lớp xám quá nhạt như bản trước.
  */
  background:radial-gradient(
    circle at center,
    rgba(255,255,255,0) 0 74%,
    rgba(177,177,177,.58) 74.5% 100%
  )!important;

  border:1.35px solid rgba(105,105,105,.68)!important;
  box-shadow:none!important;
}

/* Một vòng trong duy nhất, phần tâm hoàn toàn trong suốt. */
.cube-rotator > .cube-compass:before{
  inset:15px!important;
  background:transparent!important;
  border:1px solid rgba(112,112,112,.48)!important;
}
.cube-rotator > .cube-compass:after{
  display:none!important;
  content:none!important;
}

/*
  Đưa N/S/E/W theo vòng mới và giữ khoảng cách ngoài vòng đều nhau.
*/
.cube-rotator > .cube-compass .north{
  left:49px!important;
  top:-21px!important;
}
.cube-rotator > .cube-compass .south{
  left:49px!important;
  bottom:-21px!important;
}
.cube-rotator > .cube-compass .east{
  right:-21px!important;
  top:49px!important;
}
.cube-rotator > .cube-compass .west{
  left:-21px!important;
  top:49px!important;
}


/* ===== ATool Open BIM v1.1.70 — solid gray annulus + 3pt cube clearance ===== */

/*
  Top view:
  - Cube = 54x54 => corner radius from center ≈ 38.18px
  - Compass inner radius = 42px
  => clearance ≈ 3.82px ≈ 2.9pt, gần đúng 3pt như yêu cầu.
*/
.cube-rotator > .cube-compass{
  left:-28px!important;
  top:-28px!important;
  width:110px!important;
  height:110px!important;
  transform-origin:55px 55px 0!important;

  /*
    Dùng border dày để tạo vành khuyên xám THẬT,
    không dùng radial-gradient nữa để tránh việc nền xám không render rõ trên mặt phẳng 3D.
  */
  background:transparent!important;
  border:13px solid rgba(166,166,166,.48)!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
  outline:1px solid rgba(105,105,105,.58)!important;
  outline-offset:-1px!important;
  box-shadow:none!important;
}

/* Đường biên trong của vành khuyên. */
.cube-rotator > .cube-compass:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:-1px!important;
  border:1px solid rgba(112,112,112,.45)!important;
  border-radius:50%!important;
  background:transparent!important;
  pointer-events:none!important;
}
.cube-rotator > .cube-compass:after{
  display:none!important;
  content:none!important;
}

/* Căn lại N/S/E/W theo vòng 110px. */
.cube-rotator > .cube-compass .north{
  left:45px!important;
  top:-31px!important;
}
.cube-rotator > .cube-compass .south{
  left:45px!important;
  bottom:-31px!important;
}
.cube-rotator > .cube-compass .east{
  right:-31px!important;
  top:45px!important;
}
.cube-rotator > .cube-compass .west{
  left:-31px!important;
  top:45px!important;
}


/* ===== ATool Open BIM v1.1.71 — stable compass labels + slightly larger/lighter ring ===== */

/*
  Bỏ border dày ở chính .cube-compass vì border dày làm thay đổi
  containing box của N/S/E/W => chữ bị "nhảy".
  Vành xám được vẽ bằng pseudo-element nên kích thước định vị chữ luôn ổn định.
*/
.cube-rotator > .cube-compass{
  left:-32px!important;
  top:-32px!important;
  width:118px!important;
  height:118px!important;
  transform-origin:59px 59px 0!important;

  background:transparent!important;
  border:1px solid rgba(105,105,105,.56)!important;
  border-radius:50%!important;
  outline:none!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}

/* Vành khuyên xám nhạt hơn, không làm thay đổi box của các chữ hướng. */
.cube-rotator > .cube-compass:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  box-sizing:border-box!important;
  border:1px solid rgba(112,112,112,.35)!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:inset 0 0 0 11px rgba(166,166,166,.30)!important;
  pointer-events:none!important;
}

/* Không dùng lớp thứ hai. */
.cube-rotator > .cube-compass:after{
  display:none!important;
  content:none!important;
}

/*
  N/S/E/W dùng đúng tâm 59px của vòng 118px.
  Khoảng cách 4 phía bằng nhau để không còn hiện tượng nhảy lệch.
*/
.cube-rotator > .cube-compass .north{
  left:49px!important;
  top:-22px!important;
}
.cube-rotator > .cube-compass .south{
  left:49px!important;
  bottom:-22px!important;
}
.cube-rotator > .cube-compass .east{
  right:-22px!important;
  top:49px!important;
}
.cube-rotator > .cube-compass .west{
  left:-22px!important;
  top:49px!important;
}


/* ===== ATool Open BIM v1.1.72 — bottom controls + shadow settings ===== */

/* Footer now carries model stats on the left and view controls on the right. */
.viewer-dialog .viewer-info{
  position:relative!important;
  min-height:34px!important;
  height:34px!important;
  padding:0 7px 0 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  text-transform:none!important;
  letter-spacing:0!important;
  color:#87837b!important;
  background:#fff!important;
  border-top:1px solid #dedbd2!important;
  font-size:11px!important;
  overflow:visible!important;
}
.viewer-bottom-stats{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  text-transform:uppercase!important;
  letter-spacing:.055em!important;
  font-size:10.5px!important;
  color:#8c8880!important;
}

.viewer-bottom-actions{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:2px!important;
  flex:0 0 auto!important;
}
.viewer-bottom-actions>button,
.viewer-shadow-control>button{
  height:28px!important;
  min-width:28px!important;
  padding:0 7px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  border:1px solid transparent!important;
  border-radius:6px!important;
  background:transparent!important;
  color:#68645d!important;
  font:600 11px/1 inherit!important;
  cursor:pointer!important;
}
.viewer-bottom-actions>button:hover,
.viewer-bottom-actions>button.active,
.viewer-shadow-control>button:hover,
.viewer-shadow-control>button.active{
  color:#514000!important;
  border-color:#e7c842!important;
  background:#fff4b7!important;
}
.viewer-bottom-actions svg,
.viewer-shadow-control svg{
  width:15px!important;
  height:15px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  flex:0 0 auto!important;
}

.viewer-shadow-control{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  margin-left:2px!important;
}
.viewer-shadow-control #shadow-toggle{
  border-top-right-radius:0!important;
  border-bottom-right-radius:0!important;
  padding-right:6px!important;
}
.viewer-shadow-control .shadow-settings-toggle{
  width:22px!important;
  min-width:22px!important;
  padding:0!important;
  border-left:1px solid #dedbd3!important;
  border-top-left-radius:0!important;
  border-bottom-left-radius:0!important;
}
.viewer-shadow-control .shadow-settings-toggle svg{
  width:13px!important;
  height:13px!important;
}

.shadow-settings{
  position:absolute!important;
  right:0!important;
  bottom:33px!important;
  width:205px!important;
  padding:10px 11px 11px!important;
  border:1px solid #d9d5cc!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 7px 24px rgba(45,42,36,.16)!important;
  z-index:100!important;
  color:#504d47!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.shadow-settings[hidden]{display:none!important}
.shadow-settings strong{
  display:block!important;
  margin-bottom:8px!important;
  font-size:12px!important;
}
.shadow-settings label{
  display:block!important;
  margin-top:8px!important;
}
.shadow-settings label>span{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  margin-bottom:5px!important;
  color:#77736c!important;
  font-size:10.5px!important;
}
.shadow-settings output{
  color:#55514a!important;
  font-weight:700!important;
}
.shadow-settings input[type="range"]{
  display:block!important;
  width:100%!important;
  margin:0!important;
  accent-color:#ffc900!important;
}

/* Danh mục / Thông tin no longer occupy the top command bar. */
.viewer-commandbar #toggle-model-panel,
.viewer-commandbar #toggle-property-panel{
  display:none!important;
}

@media(max-width:760px){
  .viewer-dialog .viewer-info{
    padding-left:8px!important;
  }
  .viewer-bottom-actions>button span,
  .viewer-shadow-control #shadow-toggle span{
    display:none!important;
  }
  .viewer-bottom-actions>button,
  .viewer-shadow-control>button{
    padding:0 6px!important;
  }
  .viewer-bottom-stats{
    max-width:45vw!important;
    font-size:9px!important;
  }
}


/* ===== ATool Open BIM v1.1.73 — loading logo, solar shadows, app fullscreen ===== */

.loading-mark{
  width:58px!important;
  height:58px!important;
  padding:8px!important;
  box-sizing:border-box!important;
  border-radius:17px!important;
  background:rgba(255,201,0,.20)!important;
  box-shadow:inset 0 0 0 1px rgba(255,201,0,.28)!important;
}
.loading-mark img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}

/* Footer must have a real grid row large enough for the dock. */
.viewer-dialog[open]{
  grid-template-rows:66px minmax(0,1fr) 40px!important;
}
.viewer-dialog .viewer-info{
  min-height:40px!important;
  height:40px!important;
  box-sizing:border-box!important;
  padding-bottom:max(0px,env(safe-area-inset-bottom))!important;
  overflow:visible!important;
  z-index:90!important;
}
.shared-shell{
  grid-template-rows:56px minmax(0,1fr) 40px!important;
}
.shared-shell>.shared-viewer-footer{
  min-height:40px!important;
  height:40px!important;
  padding:0 8px 0 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  overflow:visible!important;
  background:#fff!important;
  border-top:1px solid #dedbd2!important;
  z-index:90!important;
}

/* Shadow comes first in the dock. */
.viewer-bottom-actions{
  gap:3px!important;
}
.viewer-shadow-control{
  order:-1!important;
}

/* Solar shadow popup. */
.shadow-settings{
  width:270px!important;
  max-height:min(430px,70vh)!important;
  overflow:auto!important;
  padding:11px 12px 12px!important;
}
.shadow-settings-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin-bottom:9px!important;
}
.shadow-settings-head strong{
  margin:0!important;
}
.shadow-settings-head small{
  max-width:150px!important;
  color:#918d85!important;
  font-size:9.5px!important;
  line-height:1.35!important;
  text-align:right!important;
}
.shadow-settings .shadow-select-row{
  display:grid!important;
  grid-template-columns:70px minmax(0,1fr)!important;
  align-items:center!important;
  gap:7px!important;
}
.shadow-settings .shadow-select-row>span{
  display:block!important;
  margin:0!important;
}
.shadow-settings select,
.shadow-settings input[type="number"]{
  min-width:0!important;
  width:100%!important;
  height:30px!important;
  padding:0 7px!important;
  border:1px solid #ddd9cf!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#514e48!important;
  font-size:10.5px!important;
  outline:none!important;
}
.shadow-custom-location{
  display:grid!important;
  grid-template-columns:1fr 1fr 64px!important;
  gap:5px!important;
  margin:7px 0!important;
}
.shadow-custom-location[hidden]{
  display:none!important;
}
.shadow-custom-location label{
  margin:0!important;
}
.shadow-custom-location label>span{
  display:block!important;
  margin-bottom:3px!important;
  font-size:9px!important;
}

/* App-level fullscreen: Esc cannot terminate it because it does not use browser Fullscreen API. */
.viewer-pseudo-fullscreen{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  z-index:2147483000!important;
  background:#f4f3ef!important;
}
.viewer-dialog.viewer-pseudo-fullscreen[open]{
  grid-template-rows:56px minmax(0,1fr) 40px!important;
}
.shared-shell.viewer-pseudo-fullscreen{
  display:grid!important;
  grid-template-rows:56px minmax(0,1fr) 40px!important;
}
.viewer-pseudo-fullscreen .shared-main{
  padding:0!important;
}
.viewer-pseudo-fullscreen .shared-canvas{
  border:0!important;
  border-radius:0!important;
}
#fullscreen-view .fullscreen-exit-icon{
  display:none!important;
}
.viewer-pseudo-fullscreen #fullscreen-view .fullscreen-enter-icon{
  display:none!important;
}
.viewer-pseudo-fullscreen #fullscreen-view .fullscreen-exit-icon{
  display:inline-flex!important;
}
.viewer-pseudo-fullscreen #fullscreen-view{
  color:#514000!important;
  border-color:#e7c842!important;
  background:#fff4b7!important;
}

@media(max-width:1100px){
  .viewer-dialog[open]{
    grid-template-rows:50px minmax(0,1fr) 40px!important;
  }
}
@media(max-width:760px){
  .viewer-dialog[open],
  .viewer-dialog.viewer-pseudo-fullscreen[open]{
    grid-template-rows:46px minmax(0,1fr) 42px!important;
  }
  .viewer-dialog .viewer-info,
  .shared-shell>.shared-viewer-footer{
    min-height:42px!important;
    height:42px!important;
  }
  .shadow-settings{
    right:-70px!important;
    width:min(270px,calc(100vw - 16px))!important;
  }
}


/* ===== ATool Open BIM v1.1.74 — stable dock + solar map + real fullscreen ===== */

/* Dock independent of model/property panel visibility. */
.viewer-dialog .viewer-info,
.shared-shell>.shared-viewer-footer{
  flex:0 0 40px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  visibility:visible!important;
  opacity:1!important;
}
.viewer-layout.hide-model-panel~.viewer-info,
.viewer-layout.hide-property-panel~.viewer-info,
.viewer-layout.hide-model-panel.hide-property-panel~.viewer-info{
  display:flex!important;
}
.viewer-dialog[open]{
  grid-template-rows:66px minmax(0,1fr) 40px!important;
}
.viewer-workspace{
  min-height:0!important;
  overflow:hidden!important;
}
.viewer-layout{
  min-height:0!important;
}

/* Entire split Shadow control goes yellow when enabled. */
.viewer-shadow-control:has(#shadow-toggle[aria-pressed="true"]) #shadow-toggle,
.viewer-shadow-control:has(#shadow-toggle[aria-pressed="true"]) .shadow-settings-toggle{
  color:#514000!important;
  border-color:#e7c842!important;
  background:#fff4b7!important;
}
.viewer-shadow-control:has(#shadow-toggle[aria-pressed="true"]) .shadow-settings-toggle{
  border-left-color:#d3b72f!important;
}

/* Settings panel: no horizontal scrolling, enough room for all fields. */
.shadow-settings{
  width:330px!important;
  max-width:calc(100vw - 20px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  box-sizing:border-box!important;
}
.shadow-settings *{
  box-sizing:border-box!important;
  min-width:0;
}
.shadow-settings label{
  width:100%!important;
}
.shadow-settings .shadow-select-row{
  grid-template-columns:84px minmax(0,1fr)!important;
}
.shadow-settings select{
  width:100%!important;
  max-width:100%!important;
}
.shadow-label-actions{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
}
.shadow-reset{
  height:20px!important;
  padding:0 6px!important;
  border:1px solid #ddd8cc!important;
  border-radius:5px!important;
  background:#fff!important;
  color:#777169!important;
  font-size:9px!important;
  cursor:pointer!important;
}
.shadow-reset:hover{
  border-color:#d0b42c!important;
  background:#fff6c8!important;
  color:#5a4800!important;
}
.shadow-switch-row{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:5px 0!important;
}
.shadow-switch-row>span{
  margin:0!important;
}
.shadow-switch-row input{
  width:16px!important;
  height:16px!important;
  accent-color:#ffc900!important;
}

/* Mini map picker. */
.shadow-map-picker{
  margin:8px 0 4px!important;
  padding:7px!important;
  border:1px solid #ded9ce!important;
  border-radius:8px!important;
  background:#faf9f6!important;
}
.shadow-map-picker[hidden]{display:none!important}
.shadow-map-toolbar,
.shadow-map-foot{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
.shadow-map-toolbar{
  margin-bottom:6px!important;
  color:#5d5952!important;
  font-size:10px!important;
  font-weight:700!important;
}
.shadow-map-toolbar button,
.shadow-map-foot button{
  height:25px!important;
  padding:0 8px!important;
  border:1px solid #ddd8ce!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#5f5a52!important;
  font-size:9.5px!important;
  cursor:pointer!important;
}
.shadow-map-foot{
  margin-top:6px!important;
}
.shadow-map-foot span{
  color:#777169!important;
  font-size:9.5px!important;
}
.shadow-map{
  width:100%!important;
  height:210px!important;
  overflow:hidden!important;
  border:1px solid #ddd8ce!important;
  border-radius:7px!important;
  background:#efeee9!important;
}
.shadow-map-error{
  height:100%!important;
  display:grid!important;
  place-items:center!important;
  padding:15px!important;
  color:#9b6b63!important;
  font-size:10px!important;
  text-align:center!important;
}

/* Real browser Fullscreen API state. */
:fullscreen .viewer-dialog,
.viewer-dialog:fullscreen,
.shared-shell:fullscreen{
  width:100vw!important;
  height:100vh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:#f4f3ef!important;
}
:fullscreen .viewer-dialog[open],
.viewer-dialog:fullscreen[open]{
  display:grid!important;
  grid-template-rows:56px minmax(0,1fr) 40px!important;
}
.shared-shell:fullscreen{
  display:grid!important;
  grid-template-rows:56px minmax(0,1fr) 40px!important;
}
#fullscreen-view .fullscreen-exit-icon{display:none!important}
:fullscreen #fullscreen-view .fullscreen-enter-icon,
.viewer-dialog:fullscreen #fullscreen-view .fullscreen-enter-icon,
.shared-shell:fullscreen #fullscreen-view .fullscreen-enter-icon{
  display:none!important;
}
:fullscreen #fullscreen-view .fullscreen-exit-icon,
.viewer-dialog:fullscreen #fullscreen-view .fullscreen-exit-icon,
.shared-shell:fullscreen #fullscreen-view .fullscreen-exit-icon{
  display:inline-flex!important;
}

/* Disable previous pseudo-fullscreen implementation. */
.viewer-pseudo-fullscreen{
  position:static!important;
  inset:auto!important;
  width:auto!important;
  height:auto!important;
  max-width:unset!important;
  max-height:unset!important;
  z-index:auto!important;
}

@media(max-width:760px){
  .shadow-settings{
    width:min(330px,calc(100vw - 12px))!important;
    right:-82px!important;
  }
  .shadow-map{height:190px!important}
}


/* ===== ATool Open BIM v1.1.75 — refined solar controls ===== */
.shadow-settings{
  width:360px!important;
  max-width:min(360px,calc(100vw - 20px))!important;
  padding:12px!important;
  overflow-x:hidden!important;
}
.shadow-range-block{
  display:block!important;
  margin-top:9px!important;
}
.shadow-range-control{
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) 28px!important;
  align-items:center!important;
  gap:6px!important;
  width:100%!important;
}
.shadow-range-control input[type="range"]{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.shadow-step{
  width:28px!important;
  height:28px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #d9d4c8!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#5d5951!important;
  font-size:17px!important;
  line-height:1!important;
  font-weight:700!important;
  cursor:pointer!important;
}
.shadow-step:hover{
  border-color:#d1b329!important;
  background:#fff5bd!important;
  color:#514000!important;
}
.shadow-simulation{
  margin:8px 0 2px!important;
  padding:8px!important;
  border:1px solid #e3ded3!important;
  border-radius:8px!important;
  background:#fbfaf7!important;
}
.shadow-simulation-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
.shadow-simulation-head>span{
  color:#5b574f!important;
  font-size:10.5px!important;
  font-weight:700!important;
}
#shadow-sim-toggle{
  height:28px!important;
  padding:0 9px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  border:1px solid #d9d4c8!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#625e56!important;
  font-size:10px!important;
  cursor:pointer!important;
}
#shadow-sim-toggle svg{
  width:13px!important;
  height:13px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.7!important;
}
#shadow-sim-toggle .sim-pause{display:none}
#shadow-sim-toggle.active{
  background:#fff3ad!important;
  border-color:#e2bf30!important;
  color:#514000!important;
}
#shadow-sim-toggle.active .sim-play{display:none}
#shadow-sim-toggle.active .sim-pause{display:block}

/* Larger map popup, independent from the small settings panel. */
.shadow-map-modal{
  position:fixed!important;
  inset:0!important;
  z-index:2147483200!important;
  margin:0!important;
  padding:20px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:rgba(25,25,25,.34)!important;
  backdrop-filter:blur(2px)!important;
  border:0!important;
  border-radius:0!important;
}
.shadow-map-modal[hidden]{display:none!important}
.shadow-map-dialog{
  width:min(760px,calc(100vw - 30px))!important;
  max-height:calc(100vh - 30px)!important;
  padding:12px!important;
  border:1px solid #d8d3c8!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 20px 70px rgba(25,25,25,.24)!important;
  overflow:hidden!important;
}
.shadow-map-toolbar{
  margin:0 0 9px!important;
}
.shadow-map-toolbar>div{
  min-width:0!important;
  display:grid!important;
  gap:2px!important;
}
.shadow-map-toolbar strong{
  color:#47443e!important;
  font-size:13px!important;
}
.shadow-map-toolbar small{
  color:#8a867e!important;
  font-size:10px!important;
  font-weight:400!important;
}
.shadow-map-toolbar>button{
  width:30px!important;
  height:30px!important;
  padding:0!important;
  font-size:18px!important;
}
.shadow-coordinate-paste{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 70px!important;
  gap:7px!important;
  margin-bottom:9px!important;
}
.shadow-coordinate-paste input{
  width:100%!important;
  height:34px!important;
  padding:0 9px!important;
  border:1px solid #ddd8cd!important;
  border-radius:7px!important;
  outline:none!important;
  font-size:11px!important;
}
.shadow-coordinate-paste input.invalid{
  border-color:#c46b5b!important;
  background:#fff6f4!important;
}
.shadow-coordinate-paste button{
  border:1px solid #d9d4ca!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#5f5a53!important;
  font-size:10px!important;
  cursor:pointer!important;
}
.shadow-map{
  height:min(470px,55vh)!important;
  border-radius:8px!important;
}
.shadow-map-foot{
  margin-top:9px!important;
}
.shadow-map-foot>div{
  display:flex!important;
  gap:6px!important;
}
.shadow-map-foot .primary{
  border-color:#d5b429!important;
  background:#ffc900!important;
  color:#3c3200!important;
  font-weight:700!important;
}

/* Keep popup usable in fullscreen. */
:fullscreen .shadow-map-modal,
.viewer-dialog:fullscreen .shadow-map-modal,
.shared-shell:fullscreen .shadow-map-modal{
  position:fixed!important;
  inset:0!important;
}

/* More readable sun status. */
.shadow-settings-head{
  align-items:center!important;
}
.shadow-settings-head small{
  max-width:190px!important;
  font-size:9.5px!important;
  line-height:1.45!important;
}

@media(max-width:760px){
  .shadow-settings{
    width:min(350px,calc(100vw - 12px))!important;
    right:-86px!important;
  }
  .shadow-map-modal{padding:8px!important}
  .shadow-map-dialog{width:calc(100vw - 16px)!important}
  .shadow-map{height:52vh!important}
}


/* ===== ATool Open BIM v1.1.76 — Home includes Fit + fullscreen keyboard lock ===== */
#cube-home-view{
  cursor:pointer!important;
}
/* Toolbar remains compact after removing standalone Fit. */
.viewer-commandbar .command-group.push-right{
  gap:3px!important;
}


/* ===== ATool Open BIM v1.1.77 — shared shortcuts + fullscreen restore ===== */
html,body{
  max-width:100%;
}
.shared-shell{
  width:100%!important;
  height:100dvh!important;
  min-height:0!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.shared-main{
  min-height:0!important;
  overflow:hidden!important;
}
.shared-main .viewer-workspace,
.shared-main .viewer-layout{
  min-height:0!important;
  height:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
}
html.atool-fullscreen-active,
body.atool-fullscreen-active{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  overflow:hidden!important;
}
.viewer-dialog:fullscreen,
.shared-shell:fullscreen{
  box-sizing:border-box!important;
  overflow:hidden!important;
}
#category-search::placeholder{
  color:#9a968e!important;
  opacity:1!important;
}


/* v1.1.78 - Category search text guard */
#category-search{
  caret-color:auto;
}
#category-search::placeholder{
  content:"Tìm category…";
}


/* ===== v1.1.79 — fixed Category search caption, not an input placeholder ===== */
.panel-search-fixed{
  position:relative!important;
}
.panel-search-fixed .category-search-hint{
  position:absolute!important;
  left:34px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  pointer-events:none!important;
  user-select:none!important;
  white-space:nowrap!important;
  color:#9a968e!important;
  font-size:inherit!important;
  z-index:2!important;
}
.panel-search-fixed #category-search{
  position:relative!important;
  z-index:1!important;
  background:transparent!important;
}
.panel-search-fixed:focus-within .category-search-hint,
.panel-search-fixed:has(#category-search:not(:placeholder-shown)) .category-search-hint{
  /* JS below controls visibility reliably because input has no placeholder. */
}
.panel-search-fixed #category-search:not([value=""]){
  background:transparent!important;
}


/* ===== v1.1.80 — View tab + tuned category hint ===== */
.panel-search-fixed .category-search-hint{
  font-size:10.5px!important;
  font-weight:400!important;
  letter-spacing:0!important;
  color:#9b978f!important;
}

.view-list{
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:auto;
  padding:6px 6px 10px;
  gap:6px;
}
.view-quick-3d,
.view-item,
.view-group-head{
  width:100%;
  border:0;
  background:transparent;
  color:#4d4942;
  cursor:pointer;
}
.view-quick-3d{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border:1px solid #e1dccf;
  border-radius:8px;
  background:#fff8d7;
  text-align:left;
}
.view-quick-3d:hover{background:#fff1a9}
.view-quick-3d>span:last-child,
.view-item>span:last-child{
  display:grid;
  gap:1px;
  min-width:0;
}
.view-quick-3d strong,
.view-item strong{
  font-size:11px;
  font-weight:700;
}
.view-quick-3d small,
.view-item small{
  color:#99948c;
  font-size:9px;
}
.view-group{
  border:1px solid #ebe6dc;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
.view-group-head{
  display:grid;
  grid-template-columns:14px 1fr auto;
  align-items:center;
  gap:6px;
  padding:7px 8px;
  text-align:left;
  background:#faf9f6;
}
.view-group-head strong{font-size:10.5px}
.view-group-head b{
  min-width:19px;
  padding:1px 5px;
  border-radius:999px;
  background:#efede7;
  color:#7d786f;
  text-align:center;
  font-size:9px;
}
.view-group-head.collapsed>span:first-child{transform:rotate(-90deg)}
.view-group-body{
  display:flex;
  flex-direction:column;
  padding:3px;
}
.view-item{
  display:flex;
  align-items:center;
  gap:7px;
  padding:6px 7px;
  border-radius:6px;
  text-align:left;
}
.view-item:hover{background:#f5f3ed}
.panel-placeholder.compact{
  padding:8px!important;
  font-size:9.5px!important;
}

/* v1.1.81 — IFC source-aware upright orientation */

/* v1.1.82 - compact colored model/resource cards */
#viewer-stats.viewer-stat-chips{display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;padding:4px 6px!important;scrollbar-width:thin}
.viewer-stat-chip{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;height:22px;padding:0 7px;border-radius:5px;border:1px solid transparent;line-height:1;box-sizing:border-box}
.viewer-stat-chip small{font-size:7.5px!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.12px;opacity:.68}
.viewer-stat-chip b{font-size:9.2px!important;font-weight:700!important}
.viewer-stat-chip.stat-objects{background:#eef4ff;border-color:#d7e5ff;color:#365f9d}
.viewer-stat-chip.stat-category{background:#fff7d7;border-color:#f1dfa1;color:#856800}
.viewer-stat-chip.stat-ifc{background:#f1f0ee;border-color:#dedbd5;color:#625e58}
.viewer-stat-chip.stat-ram{background:#eaf8ef;border-color:#ccebd7;color:#267044}
.viewer-stat-chip.stat-cpu{background:#fff0e7;border-color:#f3d3c0;color:#a04f22}
.viewer-stat-chip.stat-gpu{background:#f2ebff;border-color:#dfd0f7;color:#69429b;max-width:230px}
.viewer-stat-chip.stat-gpu b{max-width:170px;overflow:hidden;text-overflow:ellipsis}


/* ===== v1.1.83 — centered resource cards, full GPU name, reordered ===== */
#viewer-stats.viewer-stat-chips{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:100%!important;
  min-width:0!important;
  min-height:34px!important;
  padding:5px 8px!important;
  box-sizing:border-box!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  white-space:nowrap!important;
  scrollbar-width:thin;
}
.viewer-stat-chip{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  flex:0 0 auto!important;
  height:24px!important;
  min-width:max-content!important;
  padding:0 8px!important;
  border-radius:6px!important;
  box-sizing:border-box!important;
  line-height:1!important;
  vertical-align:middle!important;
}
.viewer-stat-chip small,
.viewer-stat-chip b{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:100%!important;
  line-height:1!important;
}
.viewer-stat-chip small{
  font-size:7.8px!important;
  font-weight:600!important;
  text-transform:uppercase!important;
  letter-spacing:.12px!important;
}
.viewer-stat-chip b{
  font-size:9.4px!important;
  font-weight:700!important;
}
.viewer-stat-chip.stat-objects{min-width:92px!important}
.viewer-stat-chip.stat-category{min-width:78px!important}
.viewer-stat-chip.stat-ifc{min-width:82px!important}
.viewer-stat-chip.stat-gpu{
  min-width:280px!important;
  max-width:none!important;
  justify-content:flex-start!important;
}
.viewer-stat-chip.stat-gpu small,
.viewer-stat-chip.stat-gpu b{
  justify-content:flex-start!important;
}
.viewer-stat-chip.stat-gpu b{
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.viewer-stat-chip.stat-cpu{min-width:92px!important}
.viewer-stat-chip.stat-ram{min-width:96px!important}

/* keep row vertically centered inside the footer/status area */
.viewer-info,
.shared-footer,
.viewer-footer{
  align-items:center!important;
}


/* ===== v1.1.84 — left aligned stats + compact GPU + label/value alignment ===== */
#viewer-stats.viewer-stat-chips{
  justify-content:flex-start!important;
  text-align:left!important;
  padding-left:8px!important;
  padding-right:8px!important;
}
.viewer-stat-chip{
  display:grid!important;
  grid-template-columns:auto auto!important;
  align-items:center!important;
  justify-content:start!important;
  column-gap:5px!important;
  height:24px!important;
  padding:0 8px!important;
}
.viewer-stat-chip small,
.viewer-stat-chip b{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  height:22px!important;
  line-height:22px!important;
  margin:0!important;
  padding:0!important;
  vertical-align:middle!important;
}
.viewer-stat-chip small{
  font-size:7.8px!important;
  font-weight:600!important;
}
.viewer-stat-chip b{
  font-size:9.2px!important;
  font-weight:700!important;
}
.viewer-stat-chip.stat-objects{min-width:auto!important}
.viewer-stat-chip.stat-category{min-width:auto!important}
.viewer-stat-chip.stat-ifc{min-width:auto!important}
.viewer-stat-chip.stat-gpu{
  min-width:auto!important;
  max-width:220px!important;
}
.viewer-stat-chip.stat-gpu b{
  max-width:165px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.viewer-stat-chip.stat-cpu{min-width:auto!important}
.viewer-stat-chip.stat-ram{min-width:auto!important}


/* ===== v1.2.0 — clean performance branch from v1.1.84 ===== */
#viewer-canvas.is-navigation-performance canvas{image-rendering:auto}


/* ===== v1.2.1 — ultra-light navigation mode ===== */
#viewer-canvas.is-navigation-performance{
  cursor:grabbing;
}
#viewer-canvas.is-navigation-performance::after{
  content:"FAST";
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:4;
  padding:3px 6px;
  border-radius:5px;
  background:rgba(38,38,38,.52);
  color:#fff;
  font-size:8px;
  font-weight:700;
  letter-spacing:.35px;
  pointer-events:none;
}


/* ===== v1.2.2 — true 1-draw-call navigation proxy ===== */
#viewer-canvas.is-navigation-performance::after{
  content:"FAST 1 DRAW";
}


/* ===== v1.2.3 — colored FAST proxy ===== */
#viewer-canvas.is-navigation-performance::after{
  content:"FAST";
  background:rgba(35,35,35,.38);
}


/* ===== v1.2.4 — real-surface FAST proxy ===== */
#viewer-canvas.is-navigation-performance::after{
  content:"FAST SURFACE";
  background:rgba(30,30,30,.30);
}


/* ===== v1.2.5 — crisp fast surface + smooth idle edges ===== */
#viewer-canvas.is-navigation-performance::after{
  content:"FAST SHADED";
  background:rgba(28,31,36,.24);
}


/* ===== v1.2.6 — vivid Revit-like fast surface ===== */
#viewer-canvas.is-navigation-performance::after{
  content:"FAST SHADED";
  background:rgba(20,24,28,.18);
}


/* ===== v1.2.7 — scoped tabs + visibility-aware FAST proxy ===== */
.model-panel > .view-list[hidden],
.model-panel > .category-list[hidden],
.model-panel > .spatial-tree[hidden],
.model-panel > .panel-search[hidden]{
  display:none!important;
}
#viewer-canvas.is-navigation-performance::after{
  content:"FAST SHADED";
  background:rgba(18,22,26,.14);
}


/* ===== v1.2.8 — Revit color / mobile FAST / no FAST badge ===== */
#viewer-canvas.is-navigation-performance::after{
  display:none!important;
  content:none!important;
}
.viewer-shadow-control #shadow-toggle{
  min-width:72px;
}


/* ===== v1.2.9 — separate shadow controls / persistent hidden frame ===== */
.viewer-shadow-control{
  gap:6px!important;
}
.viewer-shadow-control #shadow-toggle{
  border-radius:8px!important;
  padding:0 9px!important;
  border:1px solid #dedbd3!important;
}
.viewer-shadow-control .shadow-settings-toggle.shadow-adjust-button{
  width:auto!important;
  min-width:78px!important;
  padding:0 8px!important;
  gap:5px!important;
  border:1px solid #dedbd3!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#68645d!important;
}
.viewer-shadow-control .shadow-settings-toggle.shadow-adjust-button.active{
  border-color:#d5b82d!important;
  background:#fff4b7!important;
  color:#514000!important;
}
.viewer-shadow-control:has(#shadow-toggle[aria-pressed="true"]) .shadow-settings-toggle{
  background:#fff!important;
  color:#68645d!important;
  border-color:#dedbd3!important;
}
.viewer-shadow-control:has(#shadow-toggle[aria-pressed="true"]) #shadow-toggle{
  color:#514000!important;
  border-color:#e7c842!important;
  background:#fff4b7!important;
}

/* No FAST badge. The ::after pseudo-element is reserved for hidden-state frame. */
#viewer-canvas.is-navigation-performance::after{
  display:none!important;
  content:none!important;
}
#viewer-canvas.has-hidden-elements::after{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:2px!important;
  border:3px solid #36a3ff!important;
  pointer-events:none!important;
  z-index:25!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.85)!important;
}

/* On mobile keep both shadow controls separate but compact. */
@media(max-width:760px){
  .viewer-shadow-control .shadow-settings-toggle.shadow-adjust-button{
    min-width:32px!important;
    width:32px!important;
    padding:0!important;
  }
  .viewer-shadow-control .shadow-settings-toggle.shadow-adjust-button span{
    display:none!important;
  }
}


/* ===== v1.2.10 — transparent FAST / no motion edges / instant hide mask ===== */
#viewer-canvas.is-navigation-performance::after{
  display:none!important;
  content:none!important;
}
#viewer-canvas.has-hidden-elements::after{
  display:block!important;
  content:""!important;
}


/* ===== v1.2.11 — hidden frame must never create a grey mask ===== */
#viewer-canvas.is-navigation-performance,
#viewer-canvas.has-hidden-elements.is-navigation-performance{
  opacity:1!important;
  filter:none!important;
  backdrop-filter:none!important;
}
#viewer-canvas.has-hidden-elements::after,
#viewer-canvas.has-hidden-elements.is-navigation-performance::after{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:2px!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  background-color:transparent!important;
  color:transparent!important;
  border:3px solid #36a3ff!important;
  border-radius:0!important;
  pointer-events:none!important;
  z-index:25!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.85)!important;
  backdrop-filter:none!important;
  mix-blend-mode:normal!important;
}


/* v1.2.11 loading feedback */
#viewer-loading:not([hidden]) #loading-progress{
  position:relative;
  overflow:hidden;
  transition:width .18s ease-out!important;
}
#viewer-loading:not([hidden]) #loading-progress::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  animation:atoolLoadShimmer 1.05s linear infinite;
}
@keyframes atoolLoadShimmer{
  to{transform:translateX(100%)}
}


/* ===== v1.2.12 — exact hidden edges / clean hidden frame ===== */
#viewer-canvas.has-hidden-elements::after,
#viewer-canvas.has-hidden-elements.is-navigation-performance::after{
  background:none!important;
  background-color:transparent!important;
  opacity:1!important;
  filter:none!important;
  backdrop-filter:none!important;
}


/* ===== v1.2.16 — REBASE trực tiếp từ v1.2.12 ===== */
.atool-selection-rect{
  position:absolute;
  z-index:30;
  pointer-events:none;
  box-sizing:border-box;
  border:1px solid rgba(35,105,198,.98);
  background:rgba(70,145,230,.13);
}
.atool-selection-rect.crossing{
  border-style:dashed;
  border-color:rgba(35,150,88,.98);
  background:rgba(60,180,108,.12);
}
.atool-selection-rect[hidden]{display:none!important}
#viewer-canvas canvas{image-rendering:auto!important}


/* ===== v1.2.17 ===== */

/* Swap side panels: Information left, Category/View/Tree right */
.viewer-layout{
  grid-template-columns:var(--property-panel-width,255px) minmax(0,1fr) var(--model-panel-width,205px)!important;
}
.viewer-layout>.property-panel{grid-column:1!important;grid-row:1!important;border-left:0!important;border-right:1px solid #d9d6ce!important}
.viewer-layout>.viewer-canvas{grid-column:2!important;grid-row:1!important}
.viewer-layout>.model-panel{grid-column:3!important;grid-row:1!important;border-right:0!important;border-left:1px solid #d9d6ce!important}
.viewer-layout.hide-model-panel{grid-template-columns:var(--property-panel-width,255px) minmax(0,1fr) 0!important}
.viewer-layout.hide-property-panel{grid-template-columns:0 minmax(0,1fr) var(--model-panel-width,205px)!important}
.viewer-layout.hide-model-panel.hide-property-panel{grid-template-columns:0 minmax(0,1fr) 0!important}

.viewer-layout>.property-panel .panel-resizer-right{left:auto!important;right:-3px!important}
.viewer-layout>.model-panel .panel-resizer-left{right:auto!important;left:-3px!important}

/* Grid button belongs to the bottom dock */
.viewer-bottom-actions>#toggle-grid{display:inline-flex!important}

/* Thumbnail reliability */
.model-table.grid-view > .model-row > .model-preview{
  min-height:0!important;
  aspect-ratio:16/9!important;
}
.model-table.grid-view > .model-row > .model-preview > .model-thumbnail-img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  visibility:visible!important;
  opacity:1!important;
}

/* Compact timestamp: no 'Cập nhật' text */
.model-table.grid-view .grid-updated{
  max-width:42%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* Highest-quality settled edge is always rendered, never CSS-hidden */
#viewer-canvas:not(.is-navigation-performance) canvas{
  image-rendering:auto!important;
}

@media(max-width:1100px) and (min-width:621px){
  .viewer-layout{
    grid-template-columns:var(--property-panel-width,225px) minmax(0,1fr) var(--model-panel-width,180px)!important;
  }
  .viewer-layout.hide-model-panel{
    grid-template-columns:var(--property-panel-width,225px) minmax(0,1fr) 0!important;
  }
  .viewer-layout.hide-property-panel{
    grid-template-columns:0 minmax(0,1fr) var(--model-panel-width,180px)!important;
  }
}


/* ===== v1.2.18 ===== */
/* Settled full-quality canvas always uses browser/WebGL antialiasing. */
#viewer-canvas:not(.is-navigation-performance) canvas{
  image-rendering:auto!important;
  filter:none!important;
}


/* ===== v1.2.19 — mandatory settled edges ===== */
#viewer-canvas:not(.is-navigation-performance) canvas{
  image-rendering:auto!important;
  filter:none!important;
}


/* ===== v1.2.20 ===== */
#viewer-canvas:not(.is-navigation-performance) canvas{
  image-rendering:auto!important;
  filter:none!important;
}


/* ===== v1.3.9 — BIMViewer-style Tree + Properties ===== */
.viewer-layout{grid-template-columns:minmax(0,1fr) var(--model-panel-width,310px)!important}
.viewer-layout>.viewer-canvas{grid-column:1!important;grid-row:1!important}
.viewer-layout>.model-panel{
  grid-column:2!important;grid-row:1!important;min-width:250px!important;max-width:440px!important;
  background:#10161d!important;color:#dfe7ef!important;border-left:1px solid #27313c!important;border-right:0!important
}
.viewer-layout>.property-panel{display:none!important}

.model-panel .panel-tabs.bimviewer-tabs{display:flex!important;gap:3px!important;padding:7px 8px!important;background:#0b1016!important;border-bottom:1px solid #27313c!important}
.model-panel .panel-tabs.bimviewer-tabs button{flex:0 0 auto!important;padding:5px 9px!important;border:1px solid transparent!important;border-radius:4px!important;background:transparent!important;color:#8f9dad!important;font-size:11px!important;font-weight:650!important}
.model-panel .panel-tabs.bimviewer-tabs button.active{background:#26313d!important;border-color:#334252!important;color:#fff!important}

.bimviewer-tree,.bim-properties{height:calc(100% - 46px)!important;overflow:auto!important;background:#10161d!important}
.bv-tree-head{padding:10px!important;border-bottom:1px solid #25303a!important}
.bv-tree-head strong{display:block;color:#f2f5f8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bv-tree-head small{display:block;margin-top:3px;color:#718091;font-size:10px}
.bv-tree-row{display:grid!important;grid-template-columns:20px 24px minmax(0,1fr)!important;align-items:center!important;min-height:30px!important;padding-left:calc(var(--level,0) * 13px)!important;border-bottom:1px solid rgba(255,255,255,.025)!important}
.bv-tree-row:hover{background:#17212b!important}
.bv-tree-toggle,.bv-tree-eye,.bv-tree-select{border:0!important;background:transparent!important;color:inherit!important}
.bv-tree-toggle{width:20px!important;height:28px!important;color:#718091!important}
.bv-tree-toggle.empty{opacity:.2!important}
.bv-tree-eye{width:23px!important;height:28px!important;color:#7f92a4!important}
.bv-tree-eye.off{opacity:.25!important}
.bv-tree-select{min-width:0!important;text-align:left!important;padding:4px 6px 4px 2px!important}
.bv-tree-select strong{display:block!important;color:#dce5ed!important;font-size:11px!important;font-weight:600!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.bv-tree-select small{display:block!important;color:#627282!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.bv-tree-select.active strong{color:#ffc900!important}
.bv-tree-select.active{background:rgba(255,201,0,.055)!important}
.bv-tree-children[hidden]{display:none!important}

.bim-property-title{background:#0d1319!important;border-bottom:1px solid #26313c!important;padding:9px 10px!important}
.bim-property-title strong{color:#f1f4f7!important;font-size:12px!important}
.bim-property-title small{color:#68798a!important;font-size:9px!important}
.bim-properties .property-actions{padding:7px 10px!important;background:#0f151c!important;border-bottom:1px solid #25303a!important}
.bim-properties .property-content{padding:0!important;background:#10161d!important}
.bv-prop-header{padding:11px 12px!important;border-bottom:1px solid #27313c!important}
.bv-prop-header strong{display:block;color:#eef3f7!important;font-size:13px!important}
.bv-prop-header small{display:block;margin-top:2px;color:#5c8fa9!important;font-size:9px!important;text-transform:uppercase}
.bv-prop-header code{display:block;margin-top:5px;color:#8595a4!important;font-size:9px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bv-prop-group{border-bottom:1px solid #27313c!important}
.bv-prop-group h4{display:flex!important;justify-content:space-between!important;align-items:center!important;margin:0!important;padding:8px 12px!important;color:#bfcbd6!important;font-size:10px!important;font-weight:700!important;background:#131b23!important}
.bv-prop-group h4 em{font-style:normal;color:#667788;font-size:9px}
.bv-prop-row{display:grid!important;grid-template-columns:minmax(90px,42%) minmax(0,1fr)!important;gap:10px!important;padding:6px 12px!important;border-top:1px solid rgba(255,255,255,.03)!important;font-size:10px!important}
.bv-prop-row span{color:#7d8b99!important;overflow:hidden;text-overflow:ellipsis}
.bv-prop-row b{color:#d8e0e7!important;font-weight:500!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.model-panel .panel-control{background:#0f151c!important;border-top:1px solid #27313c!important}
.model-panel .panel-search{background:#0f151c!important}
.viewer-bottom-actions{justify-content:flex-end!important}
.viewer-bottom-actions>#toggle-grid{order:99!important;margin-left:2px!important}

@media(max-width:620px){
  .viewer-layout{grid-template-columns:minmax(0,1fr)!important}
  .viewer-layout>.model-panel{position:absolute!important;right:8px!important;top:58px!important;bottom:48px!important;width:min(88vw,340px)!important;z-index:40!important;box-shadow:0 12px 34px rgba(0,0,0,.36)!important}
}


/* ATool Open BIM v1.3.9 — white BIM explorer + compact tree */
.model-panel,
.model-panel .bimviewer-tabs,
.model-panel .bimviewer-tree,
.model-panel .bim-properties,
.model-panel .view-list,
.model-panel .category-list,
.model-panel .panel-search-fixed,
.model-panel .panel-control{background:#fff!important;color:#2b2b2b!important}
.model-panel{border-right:1px solid #ddd!important}
.bimviewer-tabs{border-bottom:1px solid #e3e3e3!important;padding:6px 7px!important;gap:2px!important}
.model-panel .panel-tabs.bimviewer-tabs button{color:#666!important;background:transparent!important;border-color:transparent!important;padding:5px 8px!important}
.model-panel .panel-tabs.bimviewer-tabs button:hover{background:#f5f5f5!important;color:#222!important}
.model-panel .panel-tabs.bimviewer-tabs button.active{background:#fff3b8!important;border-color:#f0cf3d!important;color:#2b2b2b!important}

.bimviewer-tree,.bim-properties{background:#fff!important}
.bv-tree-head{padding:7px 9px!important;background:#fafafa!important;border-bottom:1px solid #e5e5e5!important}
.bv-tree-head strong{color:#2b2b2b!important;font-size:11.5px!important}
.bv-tree-head small{margin-top:1px!important;color:#8a8a8a!important;font-size:9px!important}
.bv-tree-row{grid-template-columns:17px 21px minmax(0,1fr)!important;min-height:23px!important;padding-left:calc(var(--level,0) * 11px)!important;border-bottom:0!important}
.bv-tree-row:hover{background:#f7f7f7!important}
.bv-tree-toggle{width:17px!important;height:22px!important;color:#7c7c7c!important;font-size:11px!important;padding:0!important}
.bv-tree-eye{width:21px!important;height:22px!important;color:#777!important;padding:0!important;display:grid!important;place-items:center!important}
.bv-tree-eye svg{width:13px!important;height:13px!important}
.bv-tree-eye.off{opacity:.38!important;color:#aaa!important}
.bv-tree-select{height:22px!important;min-height:22px!important;padding:1px 5px 1px 1px!important;border-radius:3px!important;color:#333!important}
.bv-tree-select strong{color:#333!important;font-size:10.5px!important;line-height:12px!important;font-weight:600!important}
.bv-tree-select small{color:#999!important;font-size:8.5px!important;line-height:9px!important}
.bv-tree-select.active{background:#fff0a6!important;box-shadow:inset 2px 0 #ffc900!important}
.bv-tree-select.active strong{color:#222!important}
.bv-tree-children{margin:0!important}

.bim-property-title{background:#fafafa!important;border-bottom:1px solid #e4e4e4!important;padding:8px 10px!important}
.bim-property-title strong{color:#2b2b2b!important}
.bim-property-title small{color:#8c8c8c!important}
.bim-properties .property-actions{background:#fff!important;border-bottom:1px solid #e7e7e7!important}
.bim-properties .property-content{background:#fff!important}
.bv-prop-header{border-bottom:1px solid #e5e5e5!important;background:#fff!important}
.bv-prop-header strong{color:#2b2b2b!important}
.bv-prop-header small{color:#777!important}
.bv-prop-header code{color:#888!important}
.bv-prop-group{border-bottom:1px solid #e6e6e6!important}
.bv-prop-group h4{color:#555!important;background:#fafafa!important;border-bottom:1px solid #ededed!important}
.bv-prop-row{background:#fff!important;border-bottom:1px solid #f0f0f0!important;color:#333!important}
.bv-prop-row span{color:#777!important}.bv-prop-row b{color:#2b2b2b!important}

.view-list{background:#fff!important}
.view-group{border-bottom:1px solid #ececec!important}
.view-group-head,.view-item,.view-quick-3d{color:#333!important;background:#fff!important}
.view-group-head:hover,.view-item:hover,.view-quick-3d:hover{background:#f7f7f7!important}
.view-item small,.view-quick-3d small{color:#888!important}
.category-list{background:#fff!important}.category-row{color:#333!important;border-bottom:1px solid #f0f0f0!important}.category-row:hover{background:#f8f8f8!important}


/* ATool Open BIM v1.3.9 — split white information/views panels */
.viewer-layout{position:relative!important;display:block!important;grid-template-columns:none!important;min-height:0!important;background:#f7f8fa!important;--model-panel-width:330px;--views-panel-width:320px}
.viewer-layout>.viewer-canvas{position:absolute!important;inset:0!important;grid-column:auto!important;grid-row:auto!important;min-width:0!important}
.viewer-layout>.model-panel,.viewer-layout>.views-panel{position:absolute!important;top:12px!important;bottom:12px!important;z-index:42!important;display:flex!important;flex-direction:column!important;background:#fff!important;border:1px solid #dfe3e8!important;border-radius:9px!important;box-shadow:0 6px 22px rgba(31,41,55,.12)!important;overflow:hidden!important;transition:transform .18s ease,opacity .18s ease!important}
.viewer-layout>.model-panel{left:12px!important;right:auto!important;width:var(--model-panel-width)!important;border-left:1px solid #dfe3e8!important;border-right:1px solid #dfe3e8!important}
.viewer-layout>.views-panel{right:12px!important;left:auto!important;width:var(--views-panel-width)!important}
.viewer-layout>.model-panel.panel-hidden{transform:translateX(calc(-100% - 18px))!important;opacity:0!important;pointer-events:none!important}
.viewer-layout>.views-panel.panel-hidden{transform:translateX(calc(100% + 18px))!important;opacity:0!important;pointer-events:none!important}
.panel-head-title,.views-panel-head{height:48px;min-height:48px;display:flex;align-items:center;gap:9px;padding:0 13px;border-bottom:1px solid #e6e9ed;background:#fff;color:#222}
.panel-head-title{justify-content:space-between}
.panel-head-title strong,.views-panel-head strong{font-size:15px!important;font-weight:750;letter-spacing:.1px;color:#20242a}
.panel-head-title small,.views-panel-head small{font-size:12px!important;color:#8a9199;font-weight:500}
.views-panel-head>span{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:#fff7cf;color:#7b6200}
.views-panel-head>div{display:flex;flex-direction:column;line-height:1.15;gap:3px}
.model-panel .panel-tabs.bimviewer-tabs{display:flex!important;height:43px!important;min-height:43px!important;gap:4px!important;padding:6px 8px!important;background:#fff!important;border-bottom:1px solid #e7eaee!important}
.model-panel .panel-tabs.bimviewer-tabs button{flex:1 1 0!important;min-width:0!important;padding:0 7px!important;border:1px solid transparent!important;border-radius:6px!important;color:#616871!important;background:#fff!important;font-size:13px!important;font-weight:650!important;white-space:nowrap!important}
.model-panel .panel-tabs.bimviewer-tabs button:hover{background:#f6f7f8!important;color:#20242a!important}
.model-panel .panel-tabs.bimviewer-tabs button.active{background:#fff5c7!important;border-color:#f1d351!important;color:#27230e!important}
.model-panel .panel-tabs.bimviewer-tabs button.active:after{display:none!important}
.model-panel .bim-properties,.model-panel .category-list,.model-panel .spatial-tree,.views-panel .view-list{background:#fff!important;color:#272b30!important;font-size:13.5px!important}
.model-panel .property-title,.model-panel .property-row,.model-panel .property-set summary,.model-panel .category-row{font-size:13.5px!important}
.model-panel .property-row dt,.model-panel .property-row dd{font-size:13px!important;line-height:1.35!important}
.model-panel .bv-tree-select strong{font-size:13px!important;line-height:1.2!important}
.model-panel .bv-tree-select small{font-size:11.5px!important;line-height:1.15!important}
.model-panel .bv-tree-row{min-height:29px!important;padding-top:1px!important;padding-bottom:1px!important}
.model-panel .bv-tree-toggle,.model-panel .bv-tree-eye{width:24px!important;height:24px!important;min-width:24px!important}
.model-panel .panel-control{background:#fff!important;border-top:1px solid #e5e8ec!important;padding:10px 12px!important}
.model-panel .panel-control label{font-size:13px!important}
.model-panel .panel-search{background:#fff!important}
.views-panel .view-list{flex:1 1 auto;overflow:auto;padding:9px!important}
.views-panel .view-quick-3d,.views-panel .view-item{font-size:13px!important;min-height:42px!important;border-radius:7px!important}
.views-panel .view-item strong,.views-panel .view-quick-3d strong{font-size:13.5px!important}
.views-panel .view-item small,.views-panel .view-quick-3d small{font-size:11.5px!important;color:#858c94!important}
.views-panel .view-group-head{min-height:38px!important;font-size:13.5px!important;border-radius:6px!important}
.views-panel .view-group-head strong{font-size:13.5px!important}
.views-panel .view-group-head b{font-size:11.5px!important}
.panel-resizer-left{right:-4px!important;left:auto!important;cursor:ew-resize!important}
.panel-resizer-views{position:absolute;left:-4px;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:4}
.viewer-footer #toggle-property-panel,.viewer-footer #toggle-model-panel,#toggle-property-panel,#toggle-model-panel{background:#fff!important;color:#555d66!important;border:1px solid #d9dde2!important;border-radius:7px!important;min-height:32px!important;padding:0 10px!important;font-size:12.5px!important;font-weight:650!important;gap:6px!important}
.viewer-footer #toggle-property-panel:hover,.viewer-footer #toggle-model-panel:hover,#toggle-property-panel:hover,#toggle-model-panel:hover{background:#f6f7f8!important;color:#222!important}
.viewer-footer #toggle-property-panel.active,.viewer-footer #toggle-model-panel.active,#toggle-property-panel.active,#toggle-model-panel.active{background:#fff5c7!important;border-color:#e8c637!important;color:#2c2608!important}
@media (max-width:900px){.viewer-layout>.model-panel{left:8px!important;top:8px!important;bottom:8px!important;width:min(82vw,330px)!important}.viewer-layout>.views-panel{right:8px!important;top:8px!important;bottom:8px!important;width:min(82vw,310px)!important}}


/* ===== ATool Open BIM v1.3.9 — fitted viewport + compact 12pt panels ===== */
.viewer-layout{--panel-gap:12px;--panel-edge:12px}
.viewer-layout .viewer-canvas{transition:left .18s ease,right .18s ease!important}
.viewer-layout.has-model-panel .viewer-canvas{left:calc(var(--model-panel-width) + var(--panel-edge) + var(--panel-gap))!important}
.viewer-layout:not(.has-model-panel) .viewer-canvas{left:0!important}
.viewer-layout.has-views-panel .viewer-canvas{right:calc(var(--views-panel-width) + var(--panel-edge) + var(--panel-gap))!important}
.viewer-layout:not(.has-views-panel) .viewer-canvas{right:0!important}

/* 12pt is the main reading size for both white panels. */
.model-panel,.views-panel{font-size:12pt!important}
.panel-head-title strong,.views-panel-head strong,
.model-panel .panel-tabs.bimviewer-tabs button,
.model-panel .property-title,.model-panel .property-row,.model-panel .property-set summary,.model-panel .category-row,
.views-panel .view-quick-3d,.views-panel .view-item,.views-panel .view-group-head,
.views-panel .view-item strong,.views-panel .view-quick-3d strong,.views-panel .view-group-head strong{font-size:12pt!important}
.panel-head-title small,.views-panel-head small,
.model-panel .property-row dt,.model-panel .property-row dd,.views-panel .view-group-head b{font-size:10pt!important}
.views-panel .view-item small,.views-panel .view-quick-3d small{font-size:9pt!important}

/* The former property title duplicated the model/selection title shown in the content. */
.model-panel .bim-property-title{display:none!important}
.model-panel .bim-properties{padding-top:0!important}

/* Category search wording/spacing. */
.model-panel .panel-search{min-height:40px!important;padding:6px 10px!important}
.model-panel .panel-search input,.model-panel .category-search-hint{font-size:11pt!important}

/* Compact, aligned one-line spatial tree. */
.model-panel .bimviewer-tree{padding:2px 4px 7px!important}
.model-panel .bv-tree-head{padding:7px 8px!important}
.model-panel .bv-tree-head strong{font-size:11pt!important;line-height:1.2!important}
.model-panel .bv-tree-head small{font-size:9pt!important;line-height:1.15!important}
.model-panel .bv-tree-row{grid-template-columns:19px 22px minmax(0,1fr)!important;min-height:27px!important;height:27px!important;padding-top:0!important;padding-bottom:0!important;padding-left:calc(var(--level,0) * 12px)!important;align-items:center!important}
.model-panel .bv-tree-toggle,.model-panel .bv-tree-eye{width:20px!important;height:25px!important;min-width:20px!important;padding:0!important}
.model-panel .bv-tree-eye svg{width:14px!important;height:14px!important}
.model-panel .bv-tree-select{height:25px!important;min-height:25px!important;padding:1px 5px 1px 2px!important;display:flex!important;align-items:center!important;gap:6px!important;overflow:hidden!important}
.model-panel .bv-tree-select strong{display:block!important;flex:0 1 auto!important;min-width:0!important;font-size:11pt!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.model-panel .bv-tree-select small{display:block!important;flex:0 1 auto!important;min-width:0!important;margin:0!important;font-size:8.5pt!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#959aa0!important}
.model-panel .bv-tree-children{margin:0!important;padding:0!important}

/* Keep panel controls and footer toggles visually consistent with the resized panels. */
.model-panel .panel-control,.views-panel .panel-control{font-size:11pt!important}
#toggle-property-panel,#toggle-model-panel{font-size:11pt!important;min-height:34px!important;padding:0 11px!important}

@media (max-width:900px){
  .viewer-layout.has-model-panel .viewer-canvas,.viewer-layout.has-views-panel .viewer-canvas{left:0!important;right:0!important}
}


/* ===== ATool Open BIM v1.3.9 — compact typography + model brightness ===== */
/* Panel typography: smaller than v1.3.4 while keeping Vietnamese text readable. */
.model-panel,.views-panel{font-size:10.5pt!important}
.panel-head-title strong,.views-panel-head strong{font-size:11pt!important}
.panel-head-title small,.views-panel-head small{font-size:9pt!important}
.model-panel .panel-tabs.bimviewer-tabs button{font-size:10.5pt!important}
.model-panel .property-title,.model-panel .property-row,.model-panel .property-set summary,.model-panel .category-row{font-size:10pt!important}
.model-panel .property-row dt,.model-panel .property-row dd{font-size:9.5pt!important;line-height:1.3!important}
.model-panel .panel-search input,.model-panel .category-search-hint{font-size:9.5pt!important}
.model-panel .bv-tree-head strong{font-size:10pt!important}
.model-panel .bv-tree-head small{font-size:8.25pt!important}
.model-panel .bv-tree-select strong{font-size:9.75pt!important}
.model-panel .bv-tree-select small{font-size:8pt!important}
.views-panel .view-quick-3d,.views-panel .view-item,.views-panel .view-group-head{font-size:10pt!important}
.views-panel .view-item strong,.views-panel .view-quick-3d strong,.views-panel .view-group-head strong{font-size:10pt!important}
.views-panel .view-item small,.views-panel .view-quick-3d small,.views-panel .view-group-head b{font-size:8.5pt!important}

/* Footer panel toggles match neighbouring compact buttons. */
#toggle-property-panel,#toggle-model-panel,
.viewer-footer #toggle-property-panel,.viewer-footer #toggle-model-panel{
  min-height:28px!important;
  height:28px!important;
  padding:0 7px!important;
  border-radius:6px!important;
  gap:4px!important;
  font-size:9.5pt!important;
  line-height:1!important;
}
#toggle-property-panel svg,#toggle-model-panel svg{width:13px!important;height:13px!important}

/* Brightness slider replaces Explode and sits directly left of Shadow. */
.viewer-brightness-control{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  height:28px!important;
  padding:0 7px!important;
  border:1px solid #dedbd3!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#68645d!important;
  white-space:nowrap!important;
}
.viewer-brightness-control .brightness-icon{font-size:14px!important;line-height:1!important;color:#8a7600!important}
.viewer-brightness-control input[type="range"]{width:84px!important;height:16px!important;margin:0!important;accent-color:#d2ad00!important;cursor:pointer!important}
.viewer-brightness-control output{min-width:34px!important;font-size:9px!important;font-weight:650!important;text-align:right!important;color:#6f6a61!important}
@media (max-width:900px){
  .viewer-brightness-control input[type="range"]{width:60px!important}
  .viewer-brightness-control output{display:none!important}
}


/* ===== ATool Open BIM v1.3.9 — compact panels, aligned tree, smooth brightness ===== */
/* Unified canvas/under-panel background so the 3D area has no visible seam. */
.viewer-layout,.viewer-layout>.viewer-canvas,.viewer-canvas{background:#f7f8fa!important}

/* Both side panels: one smaller typography step than v1.3.9. */
.model-panel,.views-panel{font-size:9.75pt!important}
.panel-head-title strong,.views-panel-head strong{font-size:10.5pt!important}
.panel-head-title small,.views-panel-head small{font-size:8.5pt!important}
.model-panel .panel-tabs.bimviewer-tabs button{font-size:9.75pt!important}
.model-panel .property-title,.model-panel .property-row,.model-panel .property-set summary,.model-panel .category-row{font-size:9.25pt!important}
.model-panel .property-row dt,.model-panel .property-row dd{font-size:8.9pt!important;line-height:1.28!important}
.model-panel .panel-search input,.model-panel .category-search-hint{font-size:9pt!important}
.model-panel .bv-tree-head strong{font-size:9.5pt!important}
.model-panel .bv-tree-head small{font-size:7.8pt!important}
.model-panel .bv-tree-select strong{font-size:9.15pt!important}
.model-panel .bv-tree-select small{font-size:7.6pt!important}
.views-panel .view-quick-3d,.views-panel .view-item,.views-panel .view-group-head{font-size:9.25pt!important}
.views-panel .view-item strong,.views-panel .view-quick-3d strong,.views-panel .view-group-head strong{font-size:9.4pt!important}
.views-panel .view-item small,.views-panel .view-quick-3d small,.views-panel .view-group-head b{font-size:8pt!important}

/* Give the spatial tree a little more breathing room on the left without increasing row height. */
.model-panel .bimviewer-tree{padding-left:8px!important;padding-right:4px!important}
.model-panel .bv-tree-head{margin-left:-4px!important}
.model-panel .bv-tree-row{padding-left:calc(5px + var(--level,0) * 12px)!important}

/* Smooth brightness control: UI responds immediately; renderer updates after drag settles. */
.viewer-brightness-control{gap:4px!important;padding-right:4px!important}
.viewer-brightness-control input[type="range"]{width:82px!important}
.viewer-brightness-control output{min-width:31px!important;font-size:8.5px!important}
.viewer-brightness-control .brightness-reset{width:22px!important;height:22px!important;display:grid!important;place-items:center!important;padding:0!important;border:0!important;border-radius:5px!important;background:#f5f4ef!important;color:#716d64!important;font-size:14px!important;line-height:1!important;cursor:pointer!important}
.viewer-brightness-control .brightness-reset:hover{background:#fff1a8!important;color:#5e4d00!important}


/* ===== ATool Open BIM v1.3.9 — finer compact UI + reliable Level preload ===== */
/* Reduce outer panel margin and align both panels with the ViewCube/Home control. */
.viewer-layout{--panel-edge:8px!important;--panel-gap:8px!important}
.viewer-layout>.model-panel,.viewer-layout>.views-panel{top:8px!important;bottom:8px!important}
.viewer-layout>.model-panel{left:8px!important}
.viewer-layout>.views-panel{right:8px!important}
.view-cube{top:8px!important;right:8px!important}
.viewer-layout.has-model-panel .viewer-canvas{left:calc(var(--model-panel-width) + 16px)!important}
.viewer-layout.has-views-panel .viewer-canvas{right:calc(var(--views-panel-width) + 16px)!important}

/* One more typography step down for both side panels. */
.model-panel,.views-panel{font-size:9.15pt!important}
.panel-head-title,.views-panel-head{height:43px!important;min-height:43px!important;padding:0 11px!important}
.panel-head-title strong,.views-panel-head strong{font-size:9.8pt!important;font-weight:700!important}
.panel-head-title small{font-size:7.8pt!important}
.model-panel .panel-tabs.bimviewer-tabs{height:39px!important;min-height:39px!important;padding:5px 7px!important}
.model-panel .panel-tabs.bimviewer-tabs button{font-size:9.1pt!important;font-weight:600!important}
.model-panel .property-title,.model-panel .property-row,.model-panel .property-set summary,.model-panel .category-row{font-size:8.9pt!important}
.model-panel .property-row dt,.model-panel .property-row dd{font-size:8.45pt!important}
.model-panel .panel-search input,.model-panel .category-search-hint{font-size:8.6pt!important}
.model-panel .bv-tree-head strong{font-size:9.1pt!important}
.model-panel .bv-tree-head small{font-size:7.45pt!important}
.model-panel .bv-tree-select strong{font-size:8.75pt!important}
.model-panel .bv-tree-select small{font-size:7.25pt!important}
.views-panel .view-quick-3d,.views-panel .view-item,.views-panel .view-group-head,
.views-panel .view-item strong,.views-panel .view-quick-3d strong,.views-panel .view-group-head strong{font-size:8.9pt!important}
.views-panel .view-item small,.views-panel .view-quick-3d small,.views-panel .view-group-head b{font-size:7.5pt!important}

/* Information title icon matches the Views panel icon. */
.panel-head-title{justify-content:flex-start!important;gap:8px!important}
.panel-head-title .panel-title-icon{display:grid!important;place-items:center!important;width:25px!important;height:25px!important;flex:0 0 25px!important;border-radius:6px!important;background:#fff7cf!important;color:#7b6200!important}
.panel-head-title .panel-title-icon svg{width:14px!important;height:14px!important}
.panel-head-title .panel-title-copy{min-width:0!important;flex:1 1 auto!important}
.panel-head-title>small{margin-left:auto!important}
.views-panel-head>span{width:25px!important;height:25px!important}
.views-panel-head>span svg{width:14px!important;height:14px!important}
.views-panel-head>div{gap:0!important}

/* Slightly longer, always-clear brightness slider. */
.viewer-brightness-control{opacity:1!important;filter:none!important;background:#fff!important;border-color:#d9d6ce!important}
.viewer-brightness-control input[type="range"]{width:132px!important;opacity:1!important;filter:none!important;background:transparent!important}
.viewer-brightness-control input[type="range"]::-webkit-slider-runnable-track{height:4px!important;border-radius:999px!important;background:#ece8dc!important;box-shadow:none!important}
.viewer-brightness-control input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none!important;width:13px!important;height:13px!important;margin-top:-4.5px!important;border-radius:50%!important;background:#ffc900!important;border:1px solid #caa500!important;box-shadow:0 1px 2px rgba(0,0,0,.12)!important}
.viewer-brightness-control input[type="range"]::-moz-range-track{height:4px!important;border-radius:999px!important;background:#ece8dc!important;border:0!important}
.viewer-brightness-control input[type="range"]::-moz-range-thumb{width:13px!important;height:13px!important;border-radius:50%!important;background:#ffc900!important;border:1px solid #caa500!important}
.viewer-brightness-control:hover,.viewer-brightness-control:focus-within{background:#fff!important;opacity:1!important}

/* Footer panel toggles use the same type weight/size as neighbouring commands. */
#toggle-property-panel,#toggle-model-panel,.viewer-footer #toggle-property-panel,.viewer-footer #toggle-model-panel{font-size:11px!important;font-weight:600!important;height:28px!important;min-height:28px!important;padding:0 7px!important}
#toggle-property-panel svg,#toggle-model-panel svg{width:12px!important;height:12px!important}

@media(max-width:900px){.viewer-brightness-control input[type="range"]{width:92px!important}}

/* ===== ATool Open BIM v1.3.9 ===== */
/* Góc nhìn mở ở chiều rộng tối thiểu để dành diện tích tối đa cho mô hình. */
.viewer-layout{--views-panel-width:260px!important}

/* Đồng bộ 2 nút panel với Bóng đổ / Hiệu chỉnh ở thanh dưới. */
.viewer-footer #toggle-property-panel,
.viewer-footer #toggle-model-panel,
.shared-viewer-footer #toggle-property-panel,
.shared-viewer-footer #toggle-model-panel,
#toggle-property-panel,#toggle-model-panel{
  height:28px!important;
  min-height:28px!important;
  min-width:auto!important;
  padding:0 9px!important;
  gap:5px!important;
  border:1px solid #dedbd3!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#68645d!important;
  font-size:11px!important;
  font-weight:500!important;
  letter-spacing:0!important;
  box-shadow:none!important;
}
.viewer-footer #toggle-property-panel svg,
.viewer-footer #toggle-model-panel svg,
#toggle-property-panel svg,#toggle-model-panel svg{
  width:13px!important;height:13px!important;stroke-width:1.6!important
}
.viewer-footer #toggle-property-panel:hover,
.viewer-footer #toggle-model-panel:hover,
#toggle-property-panel:hover,#toggle-model-panel:hover{background:#f8f8f6!important;color:#484640!important}
.viewer-footer #toggle-property-panel.active,
.viewer-footer #toggle-model-panel.active,
#toggle-property-panel.active,#toggle-model-panel.active{
  background:#fff!important;border-color:#dedbd3!important;color:#5f5b54!important
}

/* Thanh độ sáng: trung tính, nhẹ và không có vệt đen/xám nặng. */
.viewer-brightness-control{
  height:28px!important;
  border:1px solid #dedbd3!important;
  border-radius:8px!important;
  background:#fff!important;
  padding:0 7px!important;
  gap:6px!important;
  box-shadow:none!important;
  color:#68645d!important;
}
.viewer-brightness-control .brightness-icon{color:#77736b!important;font-size:13px!important}
.viewer-brightness-control input[type="range"]{
  -webkit-appearance:none!important;
  appearance:none!important;
  width:145px!important;
  height:16px!important;
  background:transparent!important;
  accent-color:transparent!important;
}
.viewer-brightness-control input[type="range"]::-webkit-slider-runnable-track{
  height:3px!important;border:0!important;border-radius:999px!important;background:#d9dde2!important;box-shadow:none!important
}
.viewer-brightness-control input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none!important;
  width:13px!important;height:13px!important;margin-top:-5px!important;
  border-radius:50%!important;border:1px solid #c5a300!important;background:#ffc900!important;
  box-shadow:0 1px 2px rgba(0,0,0,.10)!important
}
.viewer-brightness-control input[type="range"]::-moz-range-track{
  height:3px!important;border:0!important;border-radius:999px!important;background:#d9dde2!important
}
.viewer-brightness-control input[type="range"]::-moz-range-progress{
  height:3px!important;border-radius:999px!important;background:#bfc4cb!important
}
.viewer-brightness-control input[type="range"]::-moz-range-thumb{
  width:13px!important;height:13px!important;border-radius:50%!important;border:1px solid #c5a300!important;background:#ffc900!important;box-shadow:0 1px 2px rgba(0,0,0,.10)!important
}
.viewer-brightness-control output{font-size:9px!important;font-weight:500!important;color:#68645d!important}
.viewer-brightness-control .brightness-reset{
  width:22px!important;height:22px!important;border:0!important;border-radius:6px!important;background:transparent!important;color:#77736b!important;font-size:14px!important
}
.viewer-brightness-control .brightness-reset:hover{background:#f2f3f4!important;color:#3f3d38!important}

/* Hạ Home và nút Phối cảnh nhẹ để căn hàng với panel Góc nhìn. */
.revit-viewcube .cube-home{top:16px!important}
.revit-viewcube .cube-projection-toggle{top:39px!important}

@media(max-width:900px){
  .viewer-layout{--views-panel-width:min(260px,82vw)!important}
  .viewer-brightness-control input[type="range"]{width:105px!important}
}

/* ===== ATool Open BIM v1.3.9 — view controls + IFC elevations ===== */
/* Footer: exact typography parity with Lưới / Bóng đổ / Hiệu chỉnh. */
.viewer-footer #toggle-property-panel,
.viewer-footer #toggle-model-panel,
.shared-viewer-footer #toggle-property-panel,
.shared-viewer-footer #toggle-model-panel,
#toggle-property-panel,#toggle-model-panel{
  font-size:11px!important;
  font-weight:600!important;
  line-height:1!important;
}
.viewer-brightness-control output{
  font-size:11px!important;
  font-weight:600!important;
  line-height:1!important;
  min-width:35px!important;
}
.viewer-brightness-control .brightness-reset{
  font-size:13px!important;
  font-weight:600!important;
}

/* Home button top edge aligns with the Views panel top edge. */
.revit-viewcube .cube-home{top:0!important}
.revit-viewcube .cube-projection-toggle{top:24px!important}

/* Keep Level rows compact but make the elevation line readable. */
.views-panel #plan-view-list .view-item{padding-top:5px!important;padding-bottom:5px!important}
.views-panel #plan-view-list .view-item small{line-height:1.15!important}


/* ===== ATool Open BIM v1.7.5 — Views panel sizing + reliable scroll ===== */
.viewer-layout>.views-panel{min-height:0!important}
.views-panel .view-list{
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
  overscroll-behavior:contain!important;
  padding-right:7px!important;
}
.views-panel .view-list::-webkit-scrollbar{width:8px!important}
.views-panel .view-list::-webkit-scrollbar-track{background:transparent!important}
.views-panel .view-list::-webkit-scrollbar-thumb{background:#d6d3cc!important;border-radius:999px!important;border:2px solid #fff!important}
.views-panel [data-view-group="plans"] .view-group-body{
  max-height:142px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.views-panel [data-view-group="plans"] .view-item{min-height:36px!important;padding-top:4px!important;padding-bottom:4px!important}
.views-panel [data-view-group="elevations"] .view-group-body{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding-top:2px!important;
  padding-bottom:2px!important;
}
.views-panel [data-view-group="elevations"] .view-item{
  min-height:35px!important;
  height:35px!important;
  padding-top:3px!important;
  padding-bottom:3px!important;
}
.views-panel [data-view-group="sections"]{
  min-height:205px!important;
  flex:0 0 auto!important;
}
.views-panel [data-view-group="sections"] .view-group-body{
  min-height:164px!important;
  max-height:245px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
@media(max-height:720px){
  .views-panel [data-view-group="plans"] .view-group-body{max-height:110px!important}
  .views-panel [data-view-group="sections"]{min-height:170px!important}
  .views-panel [data-view-group="sections"] .view-group-body{min-height:128px!important;max-height:190px!important}
}


/* ===== ATool Open BIM v1.7.5 — prioritize plan list height ===== */
.views-panel [data-view-group="plans"] .view-group-body{
  max-height:220px!important;
  min-height:155px!important;
}
.views-panel [data-view-group="sections"]{
  min-height:132px!important;
  flex:0 0 auto!important;
}
.views-panel [data-view-group="sections"] .view-group-body{
  min-height:88px!important;
  max-height:132px!important;
  overflow-y:auto!important;
}
@media(max-height:720px){
  .views-panel [data-view-group="plans"] .view-group-body{max-height:170px!important;min-height:125px!important}
  .views-panel [data-view-group="sections"]{min-height:112px!important}
  .views-panel [data-view-group="sections"] .view-group-body{min-height:72px!important;max-height:102px!important}
}


/* ===== ATool Open BIM v1.7.6 — polished Views/UI/material loading ===== */
/* 4 view blocks fit the panel: 3D + plans + 4 elevations + sections. */
.views-panel{min-height:0!important;overflow:hidden!important}
.views-panel .view-list{
  height:100%!important;min-height:0!important;overflow:hidden!important;
  display:flex!important;flex-direction:column!important;gap:5px!important;
  padding:6px 6px 8px!important;
}
.views-panel .view-quick-3d{flex:0 0 46px!important;min-height:46px!important}
.views-panel .view-group{min-height:0!important;display:flex!important;flex-direction:column!important}
.views-panel [data-view-group="plans"]{flex:1 1 auto!important;min-height:150px!important}
.views-panel [data-view-group="plans"] .view-group-body{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important}
.views-panel [data-view-group="elevations"]{flex:0 0 184px!important}
.views-panel [data-view-group="elevations"] .view-group-body{flex:1 1 auto!important;overflow:hidden!important}
.views-panel [data-view-group="elevations"] .view-item{height:35px!important;min-height:35px!important}
.views-panel [data-view-group="sections"]{flex:0 0 104px!important;min-height:104px!important}
.views-panel [data-view-group="sections"] .view-group-body{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important}
.views-panel .view-group.is-collapsed{flex:0 0 auto!important;min-height:0!important}
.views-panel .view-group.is-collapsed .view-group-body,.views-panel .view-group-body[hidden]{display:none!important}
.views-panel .view-group-head{flex:0 0 38px!important;min-height:38px!important;user-select:none!important}
.views-panel .view-group-head>span:first-child{transition:transform .16s ease!important}
.views-panel .view-item.active-view,.views-panel .view-quick-3d.active-view{
  background:#fff3ae!important;color:#4f4000!important;box-shadow:inset 3px 0 0 #ffc900!important
}
.views-panel .view-item.active-view small,.views-panel .view-quick-3d.active-view small{color:#806d26!important}
@media(max-height:760px){
  .views-panel [data-view-group="plans"]{min-height:110px!important}
  .views-panel [data-view-group="elevations"]{flex-basis:166px!important}
  .views-panel [data-view-group="elevations"] .view-item{height:31px!important;min-height:31px!important}
  .views-panel [data-view-group="sections"]{flex-basis:86px!important;min-height:86px!important}
}

/* Home / projection: a visible gap between the two buttons. */
.revit-viewcube .cube-home{top:0!important}
.revit-viewcube .cube-projection-toggle{top:39px!important}

/* Thông tin / Góc nhìn / Lưới: one visual system, with real active highlight. */
.viewer-bottom-actions>#toggle-property-panel,
.viewer-bottom-actions>#toggle-model-panel,
.viewer-bottom-actions>#toggle-grid,
.viewer-bottom-actions>#toggle-edges,
#toggle-property-panel,#toggle-model-panel,#toggle-grid,#toggle-edges{
  height:28px!important;min-height:28px!important;min-width:auto!important;padding:0 7px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;
  border:1px solid transparent!important;border-radius:6px!important;background:transparent!important;
  color:#68645d!important;font-size:11px!important;font-weight:600!important;line-height:1!important;box-shadow:none!important
}
#toggle-property-panel svg,#toggle-model-panel svg,#toggle-grid svg,#toggle-edges svg{width:15px!important;height:15px!important;stroke-width:1.8!important}
#toggle-property-panel:hover,#toggle-model-panel:hover,#toggle-grid:hover,#toggle-edges:hover{background:#f5f4ef!important;color:#4f4b43!important}
#toggle-property-panel.active,#toggle-model-panel.active,#toggle-grid.active,#toggle-edges.active{
  color:#514000!important;border-color:#e7c842!important;background:#fff4b7!important
}

/* Brightness 50—200%, default 150%, smooth control and cleaner reset icon. */
.viewer-brightness-control input[type="range"]{width:150px!important;touch-action:pan-y!important;will-change:auto!important}
.viewer-brightness-control .brightness-reset{display:grid!important;place-items:center!important;width:23px!important;height:23px!important;padding:0!important}
.viewer-brightness-control .brightness-reset svg{width:14px!important;height:14px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}

/* Stats: align left edge with floating information panel and show the whole GPU name. */
.viewer-dialog .viewer-info{padding-left:0!important}
#viewer-stats.viewer-stat-chips{padding-left:8px!important;margin-left:0!important}
.viewer-stat-chip.stat-gpu{max-width:none!important;min-width:max-content!important}
.viewer-stat-chip.stat-gpu b{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}

/* Material loading card: compact, lively, professional. */
.viewer-loading{
  background:rgba(246,245,241,.82)!important;backdrop-filter:blur(8px)!important;
  display:grid!important;place-items:center!important;padding:20px!important
}
.viewer-loading[hidden]{display:none!important}
.viewer-loading .loading-card{
  width:min(430px,calc(100% - 28px))!important;padding:18px 18px 14px!important;
  border:1px solid rgba(222,218,207,.95)!important;border-radius:18px!important;background:rgba(255,255,255,.96)!important;
  box-shadow:0 20px 60px rgba(32,30,25,.15),0 2px 8px rgba(32,30,25,.05)!important
}
.loading-brand-row{display:grid!important;grid-template-columns:52px minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important}
.viewer-loading .loading-mark{width:52px!important;height:52px!important;padding:9px!important;border-radius:15px!important;background:#fff4b8!important;box-shadow:inset 0 0 0 1px #f0d35d!important}
.loading-copy{display:grid!important;gap:3px!important;min-width:0!important}
.loading-copy small{font-size:9px!important;font-weight:800!important;letter-spacing:.14em!important;color:#9b7e00!important}
.loading-copy strong{font-size:13px!important;line-height:1.35!important;color:#34312b!important;white-space:normal!important}
#loading-percent{min-width:44px!important;padding:6px 8px!important;border-radius:9px!important;background:#f5f3ed!important;color:#6b665c!important;font-size:11px!important;font-weight:800!important;text-align:center!important}
.viewer-loading .loading-bar{height:7px!important;margin:15px 0 10px!important;border-radius:999px!important;background:#eeece5!important;overflow:hidden!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)!important}
.viewer-loading .loading-bar>span{position:relative!important;display:block!important;height:100%!important;border-radius:inherit!important;background:linear-gradient(90deg,#e8b900,#ffc900,#ffdd55)!important;transition:width .18s cubic-bezier(.2,.8,.2,1)!important;box-shadow:0 0 12px rgba(255,201,0,.35)!important}
.viewer-loading .loading-bar>span:after{content:""!important;position:absolute!important;inset:0!important;background:linear-gradient(110deg,transparent 0 35%,rgba(255,255,255,.55) 48%,transparent 62%)!important;transform:translateX(-120%)!important;animation:atoolLoadingShine 1.35s linear infinite!important}
.loading-foot{display:flex!important;align-items:center!important;gap:7px!important;color:#918b80!important;font-size:9.5px!important}
.loading-live-dot{width:7px!important;height:7px!important;border-radius:50%!important;background:#55b684!important;box-shadow:0 0 0 0 rgba(85,182,132,.35)!important;animation:atoolLoadingPulse 1.5s ease-out infinite!important}
@keyframes atoolLoadingShine{to{transform:translateX(120%)}}
@keyframes atoolLoadingPulse{0%{box-shadow:0 0 0 0 rgba(85,182,132,.38)}70%{box-shadow:0 0 0 7px rgba(85,182,132,0)}100%{box-shadow:0 0 0 0 rgba(85,182,132,0)}}


/* ===== ATool Open BIM v1.8.0 — panels, section gizmos, centered loading ===== */
/* Information panel resize handle belongs on its RIGHT edge. */
.model-panel{position:relative!important}
.model-panel>.panel-resizer{left:auto!important;right:-4px!important;width:9px!important}
.views-panel{position:relative!important}
.views-panel>.panel-resizer{right:auto!important;left:-4px!important;width:9px!important}

/* Section plane and Section Box are separate professional tools. */
#section-panel.section-plane-panel{width:310px!important}
#section-box-panel.section-box-panel{width:330px!important;top:60px!important}
.section-box-hint{margin:4px 0 10px;color:#76736c;font-size:11px;line-height:1.45}
.section-box-panel .section-box-details{display:block;border-top:1px solid #e5e1d7;padding-top:8px}
#section-box-toggle.active,#section-toggle.active{background:#fff2a8!important;border-color:#d6b627!important;color:#4d3f00!important}

.atool-section-plane-handle,.atool-section-box-handle{
  position:absolute;z-index:34;transform:translate(-50%,-50%) rotate(var(--gizmo-angle,0deg));
  width:38px;height:38px;padding:0;border:1px solid #d3aa00;border-radius:19px;background:#ffc900;
  color:#2c270f;box-shadow:0 4px 14px rgba(0,0,0,.22),0 0 0 2px rgba(255,255,255,.78);
  display:grid;place-items:center;cursor:grab;touch-action:none;pointer-events:auto
}
.atool-section-plane-handle:active,.atool-section-box-handle:active{cursor:grabbing;box-shadow:0 3px 10px rgba(0,0,0,.24),0 0 0 3px rgba(255,201,0,.22)}
.atool-section-plane-handle svg,.atool-section-box-handle svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.atool-section-box-handle{width:30px;height:30px;border-radius:9px;background:#fff7c7}
.atool-section-box-handle.axis-x{border-color:#dc9c16}.atool-section-box-handle.axis-y{border-color:#81a853}.atool-section-box-handle.axis-z{border-color:#c09a00}

/* Centered, restrained Material loading card. */
.viewer-loading{display:grid!important;place-items:center!important;padding:24px!important;background:rgba(246,245,241,.88)!important;backdrop-filter:blur(7px)!important;-webkit-backdrop-filter:blur(7px)!important}
.viewer-loading[hidden]{display:none!important}
.viewer-loading .loading-card{width:min(390px,calc(100% - 32px))!important;padding:26px 28px 23px!important;border:1px solid #e3dfd4!important;border-radius:18px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 18px 52px rgba(38,34,22,.13)!important;text-align:center!important;display:flex!important;flex-direction:column!important;align-items:center!important}
.viewer-loading .loading-mark{width:52px!important;height:52px!important;margin:0 0 10px!important;border-radius:14px!important;display:grid!important;place-items:center!important;background:#ffc900!important;box-shadow:0 8px 22px rgba(185,145,0,.18)!important}
.viewer-loading .loading-mark img{width:34px!important;height:34px!important;object-fit:contain!important}
.viewer-loading .loading-kicker{font-size:11px!important;font-weight:500!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:#8d887c!important;margin-bottom:8px!important}
.viewer-loading .loading-status{font-size:14px!important;font-weight:600!important;line-height:1.45!important;color:#2b2925!important;min-height:21px!important}
.viewer-loading .loading-bar{width:100%!important;height:7px!important;margin:17px 0 10px!important;border-radius:999px!important;background:#eeeae0!important;overflow:hidden!important}
.viewer-loading .loading-bar>span{display:block!important;height:100%!important;border-radius:999px!important;background:#ffc900!important;box-shadow:none!important;transition:width .18s ease-out!important}
.viewer-loading .loading-meta{width:100%!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;color:#8a867c!important;font-size:10.5px!important;font-weight:400!important}
.viewer-loading .loading-meta>span{display:flex!important;align-items:center!important;gap:6px!important;text-align:left!important}
.viewer-loading .loading-meta>b{font-size:11px!important;font-weight:600!important;color:#615b4d!important}
.viewer-loading .loading-live-dot{width:6px!important;height:6px!important;border-radius:50%!important;background:#ffc900!important;display:inline-block!important;box-shadow:0 0 0 0 rgba(255,201,0,.35);animation:atoolPulse177 1.6s ease-out infinite}
@keyframes atoolPulse177{0%{box-shadow:0 0 0 0 rgba(255,201,0,.38)}75%,100%{box-shadow:0 0 0 7px rgba(255,201,0,0)}}


/* ===== ATool Open BIM v1.8.0 — resize/right edge, wrap values, wide loading ===== */
/* The information panel is on the LEFT; its resize grab area must be on its RIGHT edge. */
.viewer-layout>.model-panel>.panel-resizer.panel-resizer-left,
.viewer-layout>.model-panel>.panel-resizer[data-resize-panel="model"]{
  left:auto!important;
  right:-5px!important;
  width:11px!important;
  top:0!important;
  bottom:0!important;
  cursor:ew-resize!important;
  z-index:80!important;
}
.viewer-layout>.model-panel>.panel-resizer.panel-resizer-left:hover,
.viewer-layout>.model-panel>.panel-resizer[data-resize-panel="model"]:hover{background:rgba(255,201,0,.22)!important}

/* Long IFC values must remain visible instead of becoming ellipsis. */
.bv-prop-row{align-items:start!important}
.bv-prop-row b,
.property-row b,
.property-value,
#property-content .value{
  min-width:0!important;
  max-width:none!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  line-height:1.45!important;
}

/* Wider centered loading card: desktop messages stay on one line. */
.viewer-loading .loading-card{
  width:min(620px,calc(100% - 44px))!important;
  padding:27px 34px 24px!important;
}
.viewer-loading .loading-mark{
  width:58px!important;height:58px!important;
  background:#ffc900!important;
  border-radius:16px!important;
}
.viewer-loading .loading-mark img{width:38px!important;height:38px!important;object-fit:contain!important}
.viewer-loading .loading-status{
  font-size:14px!important;
  font-weight:600!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.viewer-loading .loading-meta{white-space:nowrap!important;justify-content:center!important;position:relative!important;min-height:20px!important}
.viewer-loading .loading-meta>span{white-space:nowrap!important;text-align:center!important}
.viewer-loading .loading-meta>b{position:absolute!important;right:0!important;white-space:nowrap!important}
.viewer-loading .loading-kicker{font-weight:500!important}
@media(max-width:700px){
  .viewer-loading .loading-card{width:calc(100% - 24px)!important;padding:22px 20px!important}
  .viewer-loading .loading-status,.viewer-loading .loading-meta,.viewer-loading .loading-meta>span{white-space:normal!important}
  .viewer-loading .loading-meta{justify-content:space-between!important}
  .viewer-loading .loading-meta>b{position:static!important;flex:0 0 auto!important}
}

/* View rows are real interactive controls. */
#view-list .view-item,#view-list .view-quick-3d{pointer-events:auto!important;cursor:pointer!important;position:relative!important;z-index:2!important}
#view-list .view-item:active,#view-list .view-quick-3d:active{transform:translateY(1px)!important}

/* ===== ATool Open BIM v1.8.0 UX refinement ===== */
.viewer-loading .loading-card{width:min(720px,calc(100vw - 56px))!important;min-width:min(720px,calc(100vw - 56px))!important;max-width:720px!important;box-sizing:border-box!important;padding:28px 34px 26px!important;text-align:center!important}
.viewer-loading .loading-mark{width:66px!important;height:66px!important;background:#ffc900!important;border-radius:18px!important;display:grid!important;place-items:center!important;box-shadow:0 8px 24px rgba(255,201,0,.28)!important}
.viewer-loading .loading-mark img{width:38px!important;height:38px!important;object-fit:contain!important;filter:none!important;opacity:1!important}
.viewer-loading .loading-kicker{margin-top:13px!important;font-weight:700!important;letter-spacing:.12em!important;color:#6d6a61!important}
.viewer-loading .loading-status{min-height:24px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-weight:650!important}
.loading-progress-row{display:grid!important;grid-template-columns:minmax(0,1fr) 56px!important;gap:12px!important;align-items:center!important;width:100%!important;margin-top:14px!important}
.loading-progress-row .loading-bar{margin:0!important;width:100%!important}.loading-progress-row #loading-percent{height:34px;display:grid;place-items:center;border-radius:10px;background:#fff4bd;color:#665000;font-size:13px;font-weight:800;border:1px solid #f0d56d}
.viewer-loading .loading-meta{justify-content:center!important;margin-top:12px!important;white-space:nowrap!important}
.bv-prop-row{align-items:flex-start!important}.bv-prop-row>b{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:break-word!important;overflow-wrap:anywhere!important;line-height:1.42!important;text-align:left!important}
.view-item small,.view-quick-3d small{display:none!important}.view-item,.view-quick-3d{min-height:36px!important;padding-top:6px!important;padding-bottom:6px!important;gap:8px!important}.view-group-body{gap:2px!important}.section-view-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:4px;align-items:center}.section-view-row .view-item{width:100%}.section-view-delete{width:28px;height:28px;border:0;background:transparent;border-radius:8px;color:#958b76;display:grid;place-items:center}.section-view-delete:hover{background:#fff0e8;color:#c24722}
.section-plane-panel .section-pick.material-section-pick{display:grid!important;gap:10px!important}.section-pick-main{height:38px!important;border:1px solid #e3c34a!important;border-radius:10px!important;background:linear-gradient(180deg,#fff9d8,#fff2aa)!important;color:#584700!important;font-weight:750!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;box-shadow:0 2px 8px rgba(119,92,0,.08)!important}.section-pick-main:hover,.section-pick-main.active{background:#ffc900!important;color:#2b2b2b!important;border-color:#dbae00!important}.section-secondary-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}.section-secondary-actions button{min-height:32px!important;border-radius:8px!important;border:1px solid #e5dfcf!important;background:#fff!important;font-size:11px!important}.section-secondary-actions .danger-soft{color:#a33a22!important;background:#fff8f5!important;border-color:#f0d2c8!important}.section-pick p,.section-box-hint{margin:0!important;font-size:11px!important;line-height:1.45!important;color:#8a857a!important}
.section-box-panel{max-height:260px!important}.section-box-details{gap:5px!important}.section-axis{min-height:32px!important}.atool-section-plane-handle,.atool-section-box-handle{width:34px!important;height:34px!important}.atool-section-plane-handle svg,.atool-section-box-handle svg{width:24px!important;height:24px!important}
@media(max-width:780px){.viewer-loading .loading-card{width:calc(100vw - 28px)!important;min-width:0!important;padding:22px 18px!important}.viewer-loading .loading-status,.viewer-loading .loading-meta{white-space:normal!important}.loading-progress-row{grid-template-columns:minmax(0,1fr) 52px!important}}

/* v1.8.0 — loading + Section Box UX */
.viewer-loading .loading-card{width:min(720px,calc(100vw - 56px))!important;min-width:min(720px,calc(100vw - 56px))!important;max-width:720px!important}
.viewer-loading .loading-mark.loading-percent-badge{width:72px!important;height:72px!important;border-radius:18px!important;background:#ececea!important;box-shadow:inset 0 0 0 1px #deddd9,0 7px 20px rgba(0,0,0,.07)!important;color:#2b2b2b!important;margin-bottom:10px!important}
.viewer-loading .loading-percent-badge #loading-percent{font-size:23px!important;line-height:1!important;font-weight:800!important;letter-spacing:-.04em!important;color:#262626!important}
.viewer-loading .loading-progress-row{grid-template-columns:minmax(0,1fr)!important;width:100%!important}
.viewer-loading .loading-kicker{font-weight:650!important;letter-spacing:.12em!important}
#section-box-panel.section-box-panel{left:auto!important;right:14px!important;top:auto!important;bottom:14px!important;width:292px!important;max-height:220px!important;min-height:0!important;padding:11px 12px!important;overflow:auto!important}
#section-box-panel .section-title{margin-bottom:5px!important}
#section-box-panel .section-box-hint{margin:0 0 6px!important;line-height:1.35!important}
#section-box-panel .section-box-details{margin-top:4px!important;padding-top:5px!important}
#section-box-panel .section-axis{min-height:27px!important;gap:5px!important}
#section-box-panel #reset-section{height:28px!important;margin-top:5px!important}
#view-list.sectionbox-view-lock [data-plan-level],#view-list.sectionbox-view-lock [data-saved-section],#view-list.sectionbox-view-lock [data-basic-view]:not([data-basic-view="3d"]){opacity:1!important;pointer-events:auto!important;filter:none!important}
.atool-section-box-handle{width:30px!important;height:30px!important;border-radius:50%!important;background:#ffc900!important;border:1px solid #c99e00!important;color:#2b2b2b!important;box-shadow:0 5px 14px rgba(0,0,0,.2)!important}
.atool-section-box-handle svg{width:20px!important;height:20px!important;stroke-width:2.2!important}
@media(max-width:780px){.viewer-loading .loading-card{width:calc(100vw - 28px)!important;min-width:0!important}.viewer-loading .loading-mark.loading-percent-badge{width:64px!important;height:64px!important}.viewer-loading .loading-percent-badge #loading-percent{font-size:20px!important}#section-box-panel.section-box-panel{left:8px!important;right:8px!important;bottom:8px!important;width:auto!important}}
\n/* ===== ATool Open BIM v1.8.3 ===== */\n.viewer-loading .loading-mark.loading-percent-badge{\n  width:62px!important;height:62px!important;border-radius:17px!important;\n  background:#ffc900!important;\n  box-shadow:0 8px 24px rgba(255,201,0,.30)!important;\n  color:#2b2b2b!important;border:0!important;\n}\n.viewer-loading .loading-percent-badge #loading-percent{\n  font-size:18px!important;line-height:1!important;font-weight:800!important;\n  letter-spacing:-.02em!important;color:#2b2b2b!important;background:transparent!important;\n  border:0!important;box-shadow:none!important;padding:0!important;\n}\n#section-panel.section-plane-panel,#section-box-panel.section-box-panel{\n  left:auto!important;right:14px!important;top:auto!important;bottom:14px!important;\n  width:292px!important;max-height:240px!important;min-height:0!important;\n}\n#section-panel.section-plane-panel{padding:11px 12px!important;overflow:auto!important}\n.atool-section-box-face{pointer-events:none!important}\n@media(max-width:780px){\n  .viewer-loading .loading-mark.loading-percent-badge{width:56px!important;height:56px!important}\n  .viewer-loading .loading-percent-badge #loading-percent{font-size:17px!important}\n  #section-panel.section-plane-panel,#section-box-panel.section-box-panel{left:8px!important;right:8px!important;bottom:8px!important;width:auto!important}\n}\n

/* ===== ATool Open BIM v1.8.4 ===== */
.viewer-loading .loading-mark.loading-logo-mark{
  width:62px!important;height:62px!important;border-radius:17px!important;
  display:grid!important;place-items:center!important;background:#ffc900!important;
  box-shadow:0 8px 24px rgba(255,201,0,.30)!important;border:0!important;
}
.viewer-loading .loading-logo-mark img{width:34px!important;height:34px!important;object-fit:contain!important;display:block!important}
.viewer-loading .loading-percent-badge{display:none!important}
.atool-section-box-handle{
  pointer-events:auto!important;z-index:80!important;touch-action:none!important;user-select:none!important;
  cursor:grab!important;
}
.atool-section-box-handle:active{cursor:grabbing!important}
@media(max-width:780px){.viewer-loading .loading-mark.loading-logo-mark{width:56px!important;height:56px!important}.viewer-loading .loading-logo-mark img{width:31px!important;height:31px!important}}

/* ===== ATool Open BIM v1.8.5 ===== */
.viewer-loading .loading-mark.loading-logo-mark{background:#ffc900!important}
.viewer-loading .loading-logo-mark img{filter:none!important;opacity:1!important}
.atool-section-box-handle{pointer-events:auto!important;touch-action:none!important;cursor:grab!important;z-index:45!important}
.atool-section-box-handle:active{cursor:grabbing!important}

/* ===== ATool Open BIM v1.8.21 ===== */
.viewer-loading .loading-mark.loading-logo-mark{
  background:#fff1a8!important;
  box-shadow:0 8px 22px rgba(112,96,34,.14)!important;
}
.viewer-loading .loading-logo-mark img{filter:none!important;opacity:1!important}
.atool-section-box-handle{z-index:80!important;pointer-events:auto!important;touch-action:none!important}


/* v1.8.21 */
.section-box-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.section-box-actions button{flex:1 1 130px}.atool-model-loading-placeholder{opacity:.68}.viewer-loading-stats{opacity:.72;font-size:12px}.view-list.is-loading-model .view-item,.view-list.is-loading-model .view-quick-3d{pointer-events:none;opacity:.5}

/* ===== ATool Open BIM v1.8.21 — refined Section Box panel ===== */
#section-box-panel.section-box-panel{
  width:304px!important;
  max-height:286px!important;
  padding:12px 13px 13px!important;
  border:1px solid rgba(210,204,191,.92)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.975)!important;
  box-shadow:0 12px 34px rgba(42,37,24,.14)!important;
  backdrop-filter:blur(10px)!important;
}
#section-box-panel .section-title{
  display:flex!important;align-items:center!important;min-height:28px!important;
  padding:0 1px 7px!important;margin:0 0 6px!important;
  border-bottom:1px solid #ece7dc!important;
  color:#2b2b2b!important;
}
#section-box-panel .section-title strong{font-size:13px!important;font-weight:750!important;letter-spacing:-.01em!important}
#section-box-panel .section-box-hint{
  margin:0 1px 9px!important;padding:0!important;
  color:#817b70!important;font-size:10.5px!important;line-height:1.45!important;
}
#section-box-panel .section-box-details{display:grid!important;gap:7px!important;margin:0!important;padding:0!important;border:0!important}
#section-box-panel .section-axis{
  display:grid!important;grid-template-columns:17px minmax(0,1fr)!important;
  grid-template-rows:14px 14px!important;column-gap:7px!important;row-gap:1px!important;
  align-items:center!important;min-height:31px!important;padding:2px 0!important;
}
#section-box-panel .section-axis>b{
  grid-row:1 / span 2!important;grid-column:1!important;
  width:17px!important;text-align:center!important;color:#8b6e00!important;
  font-size:11px!important;font-weight:800!important;
}
#section-box-panel .section-axis input[type="range"]{
  grid-column:2!important;width:100%!important;height:14px!important;margin:0!important;
  accent-color:#ffc900!important;
}
#section-box-panel .section-box-actions{
  display:grid!important;grid-template-columns:1fr!important;gap:6px!important;margin-top:3px!important;
}
#section-box-panel .section-box-actions button{
  min-height:34px!important;padding:0 12px!important;
  border-radius:9px!important;border:1px solid #ded8ca!important;
  background:#fff!important;color:#3b3935!important;
  font-size:11.5px!important;font-weight:650!important;
  box-shadow:0 1px 2px rgba(40,35,22,.04)!important;
  transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease!important;
}
#section-box-panel .section-box-actions button:hover{
  border-color:#d2b21d!important;background:#fff9dc!important;
  box-shadow:0 3px 10px rgba(120,92,0,.10)!important;
}
#section-box-panel .section-box-actions button:active{transform:translateY(1px)!important}
#section-box-panel #fit-section-selection{
  background:linear-gradient(180deg,#ffd941,#ffc900)!important;
  border-color:#d6ad00!important;color:#302800!important;
}
#section-box-panel #fit-section-selection:hover{background:linear-gradient(180deg,#ffe263,#ffd21e)!important;border-color:#cda500!important}
#section-box-panel #reset-section{margin:0!important;background:#faf9f6!important;color:#625e56!important}
@media(max-width:780px){#section-box-panel.section-box-panel{width:auto!important;max-height:300px!important}}

/* ===== ATool Open BIM v1.8.21 — panel header + footer alignment ===== */
/* Loading status row aligns with the left edge of the floating Information panel. */
#viewer-stats > .viewer-loading-stats{
  display:block!important;
  margin-left:8px!important;
  padding-left:0!important;
  text-align:left!important;
}

/* Use the soft ATool yellow across the whole title bar instead of only behind the icon. */
.viewer-layout > .model-panel .panel-head-title,
.viewer-layout > .views-panel .views-panel-head{
  background:#fff7cf!important;
  border-bottom-color:#eadb9b!important;
}
.viewer-layout > .model-panel .panel-head-title .panel-title-icon,
.viewer-layout > .views-panel .views-panel-head > span{
  background:transparent!important;
  box-shadow:none!important;
}

/* ===== ATool Open BIM v1.8.21 — compact Views groups ===== */
.views-panel .view-list{gap:3px!important;padding-top:5px!important;padding-bottom:6px!important}
.views-panel .view-group-body{gap:1px!important}
.views-panel .view-group-head{flex-basis:35px!important;min-height:35px!important}
.views-panel [data-view-group="elevations"],
.views-panel [data-view-group="sections"]{flex:0 0 184px!important;min-height:184px!important}
.views-panel [data-view-group="sections"] .view-group-body{min-height:0!important;max-height:none!important;overflow-y:auto!important}
@media(max-height:760px){
  .views-panel [data-view-group="elevations"],
  .views-panel [data-view-group="sections"]{flex-basis:166px!important;min-height:166px!important}
}


/* ===== ATool Open BIM v1.8.22 ===== */
/* Compact and consistent spacing across all view groups. */
.views-panel .view-list{gap:2px!important;padding-top:4px!important;padding-bottom:4px!important}
.views-panel .view-group{gap:0!important;margin:0!important}
.views-panel .view-group-head{min-height:32px!important;flex-basis:32px!important;padding-top:4px!important;padding-bottom:4px!important}
.views-panel .view-group-body{gap:0!important;padding-top:2px!important;padding-bottom:2px!important}
.views-panel .view-item,.views-panel .view-quick-3d{height:31px!important;min-height:31px!important;padding-top:4px!important;padding-bottom:4px!important;margin:0!important}
/* Soft gray headers requested for Plans + Sections only. */
.views-panel [data-view-group="plans"]>.view-group-head,
.views-panel [data-view-group="sections"]>.view-group-head{background:#f1f2f3!important;border-radius:8px!important}
/* Keep elevation/section group heights synchronized. */
.views-panel [data-view-group="elevations"],
.views-panel [data-view-group="sections"]{flex:0 0 168px!important;min-height:168px!important}
@media(max-height:760px){
  .views-panel [data-view-group="elevations"],
  .views-panel [data-view-group="sections"]{flex-basis:154px!important;min-height:154px!important}
}

/* Section Box: no scrollbar, compact controls, two actions on one row. */
#section-box-panel.section-box-panel{width:304px!important;max-height:none!important;overflow:visible!important;padding:10px 12px 11px!important}
#section-box-panel .section-title{min-height:25px!important;padding-bottom:5px!important;margin-bottom:5px!important}
#section-box-panel .section-box-hint{margin-bottom:6px!important;font-size:10px!important;line-height:1.32!important}
#section-box-panel .section-box-details{gap:4px!important}
#section-box-panel .section-axis{grid-template-rows:12px 12px!important;min-height:27px!important;padding:1px 0!important}
#section-box-panel .section-axis input[type="range"]{height:12px!important}
#section-box-panel .section-box-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin-top:4px!important}
#section-box-panel .section-box-actions button{min-width:0!important;min-height:30px!important;height:30px!important;padding:0 8px!important;font-size:10.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* Property groups can collapse/expand. */
#property-content .bv-prop-group>h4{position:relative!important;cursor:pointer!important;padding-right:24px!important;user-select:none!important;outline:none!important}
#property-content .bv-prop-group>h4::after{content:'▾';position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:10px;color:#8d887e;transition:transform .15s ease}
#property-content .bv-prop-group.is-collapsed>h4::after{transform:translateY(-50%) rotate(-90deg)}
#property-content .bv-prop-group.is-collapsed>.bv-prop-row{display:none!important}
#property-content .bv-prop-group>h4:focus-visible{box-shadow:inset 0 0 0 2px rgba(255,201,0,.45)!important;border-radius:6px!important}

/* ===== ATool Open BIM v1.9.10 ===== */
/* All three collapsible view-group headers use the same soft gray treatment. */
.views-panel [data-view-group="plans"]>.view-group-head,
.views-panel [data-view-group="elevations"]>.view-group-head,
.views-panel [data-view-group="sections"]>.view-group-head{
  background:#f1f2f3!important;
  border-radius:8px!important;
}
/* Slightly tighter rows, but give Elevations/Sections enough bottom breathing room. */
.views-panel .view-group-body{gap:0!important;padding-top:2px!important;padding-bottom:5px!important}
.views-panel .view-item,.views-panel .view-quick-3d{
  height:29px!important;min-height:29px!important;
  padding-top:3px!important;padding-bottom:3px!important;
}
.views-panel [data-view-group="elevations"],
.views-panel [data-view-group="sections"]{
  flex:0 0 176px!important;min-height:176px!important;
}
@media(max-height:760px){
  .views-panel [data-view-group="elevations"],
  .views-panel [data-view-group="sections"]{flex-basis:160px!important;min-height:160px!important}
}
/* Robust property collapse: JS also sets hidden, this is the visual fallback. */
#property-content .bv-prop-group.is-collapsed > :not(h4){display:none!important}
#property-content .bv-prop-group > h4{cursor:pointer!important}


/* ===== ATool Open BIM v1.9.10 — balanced Elevations spacing ===== */
/* Give the Elevations group a little more vertical breathing room so the last row
   has a bottom margin comparable to the top margin above the first row. */
.views-panel [data-view-group="elevations"]{
  flex-basis:184px!important;
  min-height:184px!important;
}
.views-panel [data-view-group="elevations"] .view-group-body{
  padding-top:4px!important;
  padding-bottom:8px!important;
}
@media(max-height:760px){
  .views-panel [data-view-group="elevations"]{
    flex-basis:168px!important;
    min-height:168px!important;
  }
  .views-panel [data-view-group="elevations"] .view-group-body{
    padding-top:3px!important;
    padding-bottom:6px!important;
  }
}


/* ===== ATool Open BIM v1.9.10 — coordinate snap feedback ===== */
.atool-snap-tooltip{
  position:absolute;z-index:90;pointer-events:none;
  padding:4px 7px;border-radius:6px;
  background:rgba(33,39,44,.92);color:#fff;
  font-size:10.5px;font-weight:600;line-height:1.2;
  box-shadow:0 3px 12px rgba(0,0,0,.16);
  white-space:nowrap;transform:translateZ(0);
}
#mode-coordinate svg{display:block}

/* ===== ATool Open BIM v1.9.10 — coordinate tool yellow theme ===== */
.atool-snap-tooltip{
  background:#FFC900!important;
  color:#2b2b2b!important;
  border:1px solid #D6AD00!important;
  font-size:11.5px!important;
  font-weight:750!important;
  box-shadow:0 3px 12px rgba(116,88,0,.20)!important;
}
#mode-coordinate.active,
#mode-coordinate:hover{
  border-color:#D6AD00!important;
  background:#FFF4B8!important;
  color:#5F4A00!important;
}


/* ===== ATool Open BIM v1.9.10 — compact coordinate HUD ===== */
.measure-hud.coordinate-hud{
  left:50%!important;right:auto!important;top:auto!important;bottom:10px!important;
  transform:translateX(-50%)!important;max-width:calc(100% - 24px)!important;
  min-height:30px!important;height:34px!important;padding:3px 6px 3px 8px!important;
  flex-wrap:nowrap!important;gap:6px!important;border-radius:10px!important;
  background:rgba(255,250,224,.97)!important;border:1px solid #e3c54b!important;
  color:#5f4b00!important;box-shadow:0 7px 22px rgba(83,66,0,.14)!important;
}
.measure-hud.coordinate-hud>svg{color:#b48a00!important;flex:0 0 auto!important}
.measure-hud.coordinate-hud>span{font-size:11.5px!important;font-weight:650!important;color:#6b5600!important;white-space:nowrap!important}
.measure-hud.coordinate-hud label{height:28px!important;font-size:11px!important;color:#695500!important;gap:4px!important;white-space:nowrap!important}
.measure-hud.coordinate-hud select,
.measure-hud.coordinate-hud button{height:28px!important;min-height:28px!important;box-sizing:border-box!important;border-radius:7px!important;font-size:11px!important;line-height:26px!important}
.measure-hud.coordinate-hud select{background:#fff!important;border:1px solid #d8bd49!important;color:#5c4b00!important;padding:0 22px 0 7px!important}
.measure-hud.coordinate-hud #clear-measures{background:#ffc900!important;border:1px solid #d2aa00!important;color:#3e3300!important;font-weight:700!important;padding:0 9px!important;white-space:nowrap!important}
.atool-snap-tooltip{background:#ffc900!important;color:#443700!important;border:1px solid #cfa900!important;font-weight:700!important}
@media(max-width:760px){.measure-hud.coordinate-hud{bottom:6px!important;max-width:calc(100% - 12px)!important}.measure-hud.coordinate-hud>span{display:none!important}}


/* ===== ATool Open BIM v1.9.10 — coordinate selection/readability ===== */
.measure-hud.coordinate-hud{
  left:50%!important;right:auto!important;top:10px!important;bottom:auto!important;
  transform:translateX(-50%)!important;
}
.measure-hud.coordinate-hud>span{font-size:12px!important;font-weight:700!important}
.measure-hud.coordinate-hud label{font-size:11.5px!important}
.measure-hud.coordinate-hud #clear-measures{min-width:86px!important}
@media(max-width:760px){
  .measure-hud.coordinate-hud{top:6px!important;bottom:auto!important;max-width:calc(100% - 12px)!important}
}


/* ===== ATool Open BIM v1.9.10 — coordinate final polish ===== */
.measure-hud.coordinate-hud,.measure-hud.coordinate-hud-v1839{
  left:50%!important;right:auto!important;top:10px!important;bottom:auto!important;
  transform:translateX(-50%)!important;visibility:visible!important;
}
.measure-hud.coordinate-hud>svg:not(.atool-coordinate-hud-icon){display:none!important}
.measure-hud.coordinate-hud select{min-width:82px!important;max-width:112px!important}
.measure-hud.coordinate-hud #measure-snap{min-width:96px!important}
.measure-hud.coordinate-hud option{color:#2f2a18!important;background:#fff!important}
.atool-screen-snap-marker{
  position:absolute;z-index:96;pointer-events:none;transform:translate(-50%,-50%);
  width:22px;height:22px;display:grid;place-items:center;
  color:#FFC900;font:900 21px/1 Arial,sans-serif;
  text-shadow:-1px -1px 0 #5d4a00,1px -1px 0 #5d4a00,-1px 1px 0 #5d4a00,1px 1px 0 #5d4a00;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.28));
}
.atool-screen-snap-marker[data-kind="midpoint"]{font-size:20px}
.atool-screen-snap-marker[data-kind="edge"]{font-size:22px}
.atool-screen-snap-marker[data-kind="vertex"]{font-size:21px}
.atool-snap-tooltip{font-size:11px!important;padding:4px 7px!important}

/* ===== ATool Open BIM v1.9.10 — coordinate hover/shield/menu polish ===== */
.measure-hud.coordinate-hud{z-index:120!important;pointer-events:auto!important}
.measure-hud.coordinate-hud select,
.measure-hud.coordinate-hud button,
.measure-hud.coordinate-hud label{pointer-events:auto!important}
.atool-screen-snap-marker{width:20px!important;height:20px!important;font-size:19px!important}
.atool-screen-snap-marker[data-kind="endpoint"]{font-size:20px!important;font-weight:900!important}
.atool-screen-snap-marker[data-kind="midpoint"]{font-size:19px!important}
.atool-screen-snap-marker[data-kind="edge"]{font-size:20px!important}
.atool-screen-snap-marker[data-kind="face"]{font-size:18px!important;text-shadow:none!important;color:#ffc900!important}
.atool-screen-snap-marker[data-kind="intersection"]{font-size:19px!important}
.atool-snap-tooltip{z-index:121!important}

/* ===== ATool Open BIM v1.9.10 — coordinate Material dropdowns ===== */
.measure-hud.coordinate-hud .atool-coordinate-native-select{display:none!important}
.measure-hud.coordinate-hud .atool-coordinate-material-select{position:relative;display:inline-flex;align-items:center;min-width:112px;height:28px;pointer-events:auto!important}
.measure-hud.coordinate-hud .atool-coordinate-material-select.unit-select{min-width:92px}
.measure-hud.coordinate-hud .atool-coordinate-select-trigger{width:100%;height:28px!important;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 9px!important;border:1px solid #d8bd49!important;border-radius:8px!important;background:#fff7c7!important;color:#5a4900!important;font:650 11px "Be Vietnam Pro",sans-serif!important;line-height:26px!important;cursor:pointer;box-shadow:none!important}
.measure-hud.coordinate-hud .atool-coordinate-select-trigger:hover,.measure-hud.coordinate-hud .atool-coordinate-material-select.open .atool-coordinate-select-trigger{background:#fff1a8!important;border-color:#cfa800!important}
.measure-hud.coordinate-hud .atool-coordinate-select-trigger .chevron{width:14px;height:14px;display:grid;place-items:center;transition:transform .14s ease;color:#9a7b00}
.measure-hud.coordinate-hud .atool-coordinate-material-select.open .chevron{transform:rotate(180deg)}
.measure-hud.coordinate-hud .atool-coordinate-select-menu{position:absolute;z-index:9999;left:0;top:calc(100% + 6px);min-width:100%;width:max-content;padding:5px;border:1px solid #dfd4a0;border-radius:10px;background:#fff;box-shadow:0 12px 28px rgba(55,44,0,.18);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease,visibility .12s ease}
.measure-hud.coordinate-hud .atool-coordinate-material-select.open .atool-coordinate-select-menu{opacity:1;visibility:visible;transform:none}
.measure-hud.coordinate-hud .atool-coordinate-select-menu button{display:flex!important;align-items:center!important;width:100%!important;min-width:118px!important;height:31px!important;padding:0 9px!important;border:0!important;border-radius:7px!important;background:#fff!important;color:#514b36!important;font:550 11px "Be Vietnam Pro",sans-serif!important;text-align:left!important;white-space:nowrap!important;cursor:pointer!important}
.measure-hud.coordinate-hud .unit-select .atool-coordinate-select-menu button{min-width:78px!important}
.measure-hud.coordinate-hud .atool-coordinate-select-menu button:hover{background:#fff8d6!important}
.measure-hud.coordinate-hud .atool-coordinate-select-menu button.selected{background:#fff0a0!important;color:#4b3a00!important;font-weight:750!important}

/* Consistent snap glyphs: same visual weight/size for every snap type. */
.atool-screen-snap-marker{width:22px!important;height:22px!important;font-size:0!important;color:#ffc900!important;filter:drop-shadow(0 1px 1px rgba(65,48,0,.35));pointer-events:none!important}
.atool-screen-snap-marker::before,.atool-screen-snap-marker::after{content:"";position:absolute;left:50%;top:50%;box-sizing:border-box;transform:translate(-50%,-50%)}
.atool-screen-snap-marker[data-kind="endpoint"]::before{width:14px;height:14px;border:2.5px solid #ffc900;border-radius:1px;background:rgba(255,201,0,.05)}
.atool-screen-snap-marker[data-kind="midpoint"]::before{width:15px;height:14px;background:#ffc900;clip-path:polygon(50% 2%,98% 94%,2% 94%)}
.atool-screen-snap-marker[data-kind="midpoint"]::after{width:10px;height:9px;background:#fff;clip-path:polygon(50% 6%,94% 92%,6% 92%)}
.atool-screen-snap-marker[data-kind="edge"]::before{width:17px;height:2.5px;background:#ffc900;transform:translate(-50%,-50%) rotate(45deg);border-radius:2px}
.atool-screen-snap-marker[data-kind="edge"]::after{width:17px;height:2.5px;background:#ffc900;transform:translate(-50%,-50%) rotate(-45deg);border-radius:2px}
.atool-screen-snap-marker[data-kind="intersection"]::before{width:17px;height:17px;border:2.5px solid #ffc900;border-radius:50%}
.atool-screen-snap-marker[data-kind="intersection"]::after{width:12px;height:12px;background:linear-gradient(45deg,transparent 43%,#ffc900 44%,#ffc900 56%,transparent 57%),linear-gradient(-45deg,transparent 43%,#ffc900 44%,#ffc900 56%,transparent 57%)}
.atool-screen-snap-marker[data-kind="face"]::before{width:15px;height:15px;border:2.5px solid #ffc900;border-radius:50%;background:rgba(255,201,0,.06)}
.atool-screen-snap-marker[data-kind="face"]::after{width:5px;height:5px;border-radius:50%;background:#ffc900}
.measure-hud:not(.coordinate-hud) .atool-coordinate-material-select{display:none!important}
.measure-hud:not(.coordinate-hud) .atool-coordinate-native-select{display:inline-block!important}

/* ===== ATool Open BIM v1.9.10 — single Material coordinate dropdown surface ===== */
.measure-hud.coordinate-hud .atool-coordinate-native-select,
.measure-hud.coordinate-hud .atool-coordinate-native-select1842{
  position:absolute!important;
  width:1px!important;height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  margin:0!important;padding:0!important;border:0!important;
  clip-path:inset(50%)!important;
}
.measure-hud.coordinate-hud .atool-coordinate-material-select{display:none!important}
.measure-hud.coordinate-hud .atool-coordinate-select1842{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  min-width:116px!important;
  height:30px!important;
  flex:0 0 auto!important;
  pointer-events:auto!important;
  z-index:130!important;
}
.measure-hud.coordinate-hud .atool-coordinate-select1842.unit-select{min-width:94px!important}
.measure-hud.coordinate-hud .atool-coordinate-select1842-trigger{
  width:100%!important;height:30px!important;min-height:30px!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:9px!important;padding:0 8px 0 10px!important;
  border:1px solid #d8b800!important;border-radius:9px!important;
  background:linear-gradient(180deg,#ffd933 0%,#ffc900 100%)!important;
  color:#493b00!important;
  font:700 11.5px "Be Vietnam Pro",sans-serif!important;
  line-height:28px!important;
  cursor:pointer!important;
  box-shadow:0 1px 2px rgba(77,58,0,.08)!important;
  transition:background .14s ease,border-color .14s ease,box-shadow .14s ease!important;
}
.measure-hud.coordinate-hud .atool-coordinate-select1842-trigger:hover,
.measure-hud.coordinate-hud .atool-coordinate-select1842.open .atool-coordinate-select1842-trigger{
  background:linear-gradient(180deg,#ffe46a 0%,#ffd220 100%)!important;
  border-color:#bd9900!important;
  box-shadow:0 0 0 3px rgba(255,201,0,.18),0 4px 12px rgba(85,62,0,.10)!important;
}
.measure-hud.coordinate-hud .atool-coordinate-select1842-trigger .chevron{
  flex:0 0 auto!important;
  width:15px!important;height:15px!important;
  color:#806600!important;
  transition:transform .15s ease!important;
}
.measure-hud.coordinate-hud .atool-coordinate-select1842.open .chevron{transform:rotate(180deg)!important}
.measure-hud.coordinate-hud .atool-coordinate-select1842-menu{
  position:absolute!important;
  z-index:10020!important;
  left:0!important;
  top:calc(100% + 6px)!important;
  min-width:100%!important;
  width:max-content!important;
  padding:5px!important;
  border:1px solid #e0d29a!important;
  border-radius:11px!important;
  background:#fffef8!important;
  box-shadow:0 14px 32px rgba(50,40,0,.18),0 2px 6px rgba(50,40,0,.08)!important;
  opacity:0!important;visibility:hidden!important;
  transform:translateY(-4px) scale(.985)!important;
  transform-origin:top left!important;
  transition:opacity .12s ease,transform .12s ease,visibility .12s ease!important;
  pointer-events:none!important;
}
.measure-hud.coordinate-hud .atool-coordinate-select1842.open .atool-coordinate-select1842-menu{
  opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important;
}
.measure-hud.coordinate-hud .atool-coordinate-select1842-item{
  width:100%!important;min-width:126px!important;height:32px!important;min-height:32px!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;
  padding:0 9px 0 10px!important;
  border:0!important;border-radius:8px!important;
  background:transparent!important;color:#4d4937!important;
  font:550 11.5px "Be Vietnam Pro",sans-serif!important;
  line-height:32px!important;text-align:left!important;white-space:nowrap!important;
  cursor:pointer!important;
  transition:background .12s ease,color .12s ease!important;
}
.measure-hud.coordinate-hud .unit-select .atool-coordinate-select1842-item{min-width:86px!important}
.measure-hud.coordinate-hud .atool-coordinate-select1842-item:hover{background:#fff6c7!important;color:#3f3300!important}
.measure-hud.coordinate-hud .atool-coordinate-select1842-item.selected{background:#ffed8b!important;color:#3b3000!important;font-weight:750!important}
.measure-hud.coordinate-hud .atool-coordinate-select1842-item .check{opacity:0!important;color:#9b7600!important}
.measure-hud.coordinate-hud .atool-coordinate-select1842-item.selected .check{opacity:1!important}


/* ===== ATool Open BIM v1.9.10 — balanced HUD + single Material dropdown ===== */
.measure-hud.coordinate-hud{
  padding:6px 7px!important;
  gap:6px!important;
  border-radius:12px!important;
  box-sizing:border-box!important;
}
.measure-hud.coordinate-hud>span{margin:0 1px!important}
.measure-hud.coordinate-hud label{margin:0!important;gap:5px!important}
.measure-hud.coordinate-hud #clear-measures{margin:0!important}
.measure-hud.coordinate-hud #measure-snap,
.measure-hud.coordinate-hud #measure-unit{display:none!important;pointer-events:none!important}
.measure-hud.coordinate-hud .atool-coordinate-material-select,
.measure-hud.coordinate-hud .atool-coordinate-select1842{display:none!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843{position:relative!important;display:inline-flex!important;align-items:center!important;height:30px!important;min-width:118px!important;flex:0 0 auto!important;z-index:160!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843.unit-select{min-width:94px!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-trigger{width:100%!important;height:30px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;padding:0 8px 0 10px!important;border:1px solid #d5af00!important;border-radius:8px!important;background:linear-gradient(180deg,#ffd92f,#ffc900)!important;color:#493b00!important;font:700 11.5px "Be Vietnam Pro",sans-serif!important;cursor:pointer!important;box-shadow:0 1px 2px rgba(70,50,0,.08)!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-trigger:hover,.measure-hud.coordinate-hud .atool-coordinate-select1843.open .atool-coordinate-select1843-trigger{background:linear-gradient(180deg,#ffe46a,#ffd223)!important;border-color:#bb9800!important;box-shadow:0 0 0 3px rgba(255,201,0,.17)!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-trigger .chevron{flex:0 0 auto!important;color:#806600!important;transition:transform .15s ease!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843.open .chevron{transform:rotate(180deg)!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-menu{position:absolute!important;left:0!important;top:calc(100% + 6px)!important;z-index:10030!important;min-width:100%!important;width:max-content!important;padding:5px!important;border:1px solid #dfd29b!important;border-radius:10px!important;background:#fffef9!important;box-shadow:0 14px 32px rgba(50,40,0,.18),0 2px 6px rgba(50,40,0,.08)!important;opacity:0!important;visibility:hidden!important;transform:translateY(-4px) scale(.985)!important;transform-origin:top left!important;pointer-events:none!important;transition:opacity .12s ease,transform .12s ease,visibility .12s ease!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843.open .atool-coordinate-select1843-menu{opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-item{width:100%!important;min-width:128px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;padding:0 9px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:#4d4937!important;font:550 11.5px "Be Vietnam Pro",sans-serif!important;text-align:left!important;white-space:nowrap!important;cursor:pointer!important}
.measure-hud.coordinate-hud .unit-select .atool-coordinate-select1843-item{min-width:84px!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-item:hover{background:#fff6c7!important;color:#3f3300!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-item.selected{background:#ffed8b!important;color:#3b3000!important;font-weight:750!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-item .check{opacity:0!important;color:#9b7600!important}
.measure-hud.coordinate-hud .atool-coordinate-select1843-item.selected .check{opacity:1!important}

/* Midpoint is a solid yellow triangle with the same visual weight as other snap glyphs. */
.atool-screen-snap-marker[data-kind="midpoint"]::before{width:16px!important;height:15px!important;background:#ffc900!important;clip-path:polygon(50% 1%,99% 96%,1% 96%)!important;filter:none!important}
.atool-screen-snap-marker[data-kind="midpoint"]::after{display:none!important}


/* ===== ATool Open BIM v1.9.10 — coordinate HUD uses the same select behavior as Measure ===== */
.measure-hud.coordinate-hud{
  padding:7px!important;
  gap:7px!important;
  min-height:42px!important;
  align-items:center!important;
  box-sizing:border-box!important;
}
.measure-hud.coordinate-hud label{height:28px!important;margin:0!important;gap:5px!important;align-items:center!important}
.measure-hud.coordinate-hud #measure-snap,
.measure-hud.coordinate-hud #measure-unit{
  display:inline-block!important;
  pointer-events:auto!important;
  position:static!important;
  width:auto!important;height:25px!important;min-height:25px!important;
  opacity:1!important;
  clip-path:none!important;
  margin:0!important;
  border:0!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#333!important;
  font:500 11px "Be Vietnam Pro",sans-serif!important;
  line-height:25px!important;
  padding:0 22px 0 8px!important;
  box-shadow:none!important;
  appearance:auto!important;
  -webkit-appearance:auto!important;
}
.measure-hud.coordinate-hud #measure-snap{min-width:104px!important;max-width:122px!important}
.measure-hud.coordinate-hud #measure-unit{min-width:82px!important;max-width:92px!important}
.measure-hud.coordinate-hud .atool-coordinate-material-select,
.measure-hud.coordinate-hud .atool-coordinate-select1842,
.measure-hud.coordinate-hud .atool-coordinate-select1843{display:none!important}
.measure-hud.coordinate-hud #clear-measures{margin:0!important;height:28px!important;min-height:28px!important}
/* Solid midpoint triangle: no inherited white fill/border from older snap rules. */
.atool-screen-snap-marker[data-kind="midpoint"]::before{
  content:""!important;display:block!important;
  width:17px!important;height:16px!important;
  border:0!important;outline:0!important;
  background:#ffc900!important;
  clip-path:polygon(50% 0%,100% 100%,0% 100%)!important;
  box-shadow:none!important;filter:none!important;
}
.atool-screen-snap-marker[data-kind="midpoint"]::after{display:none!important;content:none!important}

/* ===== ATool Open BIM v1.9.10 — final coordinate HUD / midpoint outline ===== */
.measure-hud.coordinate-hud.coordinate-hud-v1845{
  padding:5px!important;
  gap:6px!important;
  box-sizing:border-box!important;
  align-items:center!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1845 label{
  margin:0!important;
  gap:5px!important;
  height:28px!important;
  align-items:center!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1845 #measure-snap,
.measure-hud.coordinate-hud.coordinate-hud-v1845 #measure-unit{
  display:inline-block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  height:28px!important;
  min-height:28px!important;
  padding:0 24px 0 8px!important;
  margin:0!important;
  border:1px solid #d8d3c5!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#2b2b2b!important;
  font:600 11px "Be Vietnam Pro",sans-serif!important;
  box-shadow:none!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1845 #measure-snap{min-width:104px!important;max-width:122px!important}
.measure-hud.coordinate-hud.coordinate-hud-v1845 #measure-unit{min-width:82px!important;max-width:92px!important}
.measure-hud.coordinate-hud.coordinate-hud-v1845 .atool-coordinate-material-select,
.measure-hud.coordinate-hud.coordinate-hud-v1845 .atool-coordinate-select1842,
.measure-hud.coordinate-hud.coordinate-hud-v1845 .atool-coordinate-select1843{display:none!important}
.measure-hud.coordinate-hud.coordinate-hud-v1845 #clear-measures{margin:0!important;height:28px!important;min-height:28px!important}

/* Midpoint snap is an outline triangle with the same visual weight as the other glyphs. */
.atool-screen-snap-marker[data-kind="midpoint"]::before,
.atool-screen-snap-marker[data-kind="midpoint"]::after{display:none!important;content:none!important}
.atool-screen-snap-marker .atool-midpoint-outline1845{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:19px!important;
  height:18px!important;
  transform:translate(-50%,-50%)!important;
  overflow:visible!important;
  color:#ffc900!important;
  filter:drop-shadow(0 1px 1px rgba(65,48,0,.28));
  pointer-events:none!important;
}

/* ===== ATool Open BIM v1.9.10 — native Measure selects + 2D projection lock ===== */
#projection-toggle.projection-locked-2d,
#projection-toggle:disabled{
  opacity:.42!important;
  cursor:not-allowed!important;
  pointer-events:auto!important;
  filter:grayscale(.2)!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1846{
  padding:5px 7px!important;
  gap:6px!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1846 label{
  height:25px!important;
  margin:0!important;
  gap:4px!important;
  align-items:center!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1846 #measure-snap,
.measure-hud.coordinate-hud.coordinate-hud-v1846 #measure-unit{
  display:inline-block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  position:static!important;
  width:auto!important;
  height:25px!important;
  min-height:25px!important;
  padding:0 5px!important;
  border:0!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#333!important;
  font:500 12px "Be Vietnam Pro",sans-serif!important;
  line-height:25px!important;
  appearance:auto!important;
  -webkit-appearance:auto!important;
  box-shadow:none!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1846 #measure-snap{min-width:104px!important;max-width:none!important}
.measure-hud.coordinate-hud.coordinate-hud-v1846 #measure-unit{min-width:82px!important;max-width:none!important}
.measure-hud.coordinate-hud.coordinate-hud-v1846 .atool-coordinate-material-select,
.measure-hud.coordinate-hud.coordinate-hud-v1846 .atool-coordinate-select1842,
.measure-hud.coordinate-hud.coordinate-hud-v1846 .atool-coordinate-select1843{display:none!important}
.measure-hud.coordinate-hud.coordinate-hud-v1846 #clear-measures{height:25px!important;min-height:25px!important;margin:0!important}

/* ===== ATool Open BIM v1.9.10 — final projection lock + exact Measure select appearance ===== */
#projection-toggle.projection-locked-2d,
#projection-toggle:disabled{
  pointer-events:none!important;
  opacity:.42!important;
  filter:grayscale(.35)!important;
  cursor:not-allowed!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1847 [class*="atool-coordinate-select"],
.measure-hud.coordinate-hud.coordinate-hud-v1847 .atool-coordinate-material-select{display:none!important}
.measure-hud.coordinate-hud.coordinate-hud-v1847 #measure-snap,
.measure-hud.coordinate-hud.coordinate-hud-v1847 #measure-unit{
  appearance:auto!important;
  -webkit-appearance:auto!important;
  display:inline-block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  position:static!important;
  width:auto!important;
  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0 2px!important;
  border:1px solid ButtonBorder!important;
  border-radius:2px!important;
  background:Field!important;
  color:FieldText!important;
  box-shadow:none!important;
  font:11px system-ui,-apple-system,"Segoe UI",sans-serif!important;
  line-height:normal!important;
}
.measure-hud.coordinate-hud.coordinate-hud-v1847 #measure-snap{width:116px!important}
.measure-hud.coordinate-hud.coordinate-hud-v1847 #measure-unit{width:92px!important}

/* ===== ATool Open BIM v1.9.10 — single coordinate combobox, no duplicate native/custom surfaces ===== */
.measure-hud.coordinate-hud-v1848 #measure-snap.atool-native1848,
.measure-hud.coordinate-hud-v1848 #measure-unit.atool-native1848{
  position:absolute!important;
  width:1px!important;height:1px!important;
  min-width:1px!important;min-height:1px!important;
  padding:0!important;margin:0!important;
  opacity:0!important;pointer-events:none!important;
  overflow:hidden!important;clip-path:inset(50%)!important;
}
.measure-hud.coordinate-hud-v1848 label{position:relative!important;overflow:visible!important}
.measure-hud.coordinate-hud-v1848 .atool-combo1848{
  position:relative!important;display:inline-flex!important;align-items:center!important;
  width:116px!important;height:25px!important;flex:0 0 116px!important;z-index:320!important;
}
.measure-hud.coordinate-hud-v1848 label:nth-of-type(2) .atool-combo1848{
  width:92px!important;flex-basis:92px!important;
}
.measure-hud.coordinate-hud-v1848 .atool-combo1848-trigger{
  width:100%!important;height:25px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;
  padding:0 7px!important;border:1px solid #c9c9c9!important;border-radius:3px!important;
  background:#fff!important;color:#242424!important;box-shadow:none!important;
  font:11px system-ui,-apple-system,"Segoe UI",sans-serif!important;cursor:pointer!important;
}
.measure-hud.coordinate-hud-v1848 .atool-combo1848-trigger:hover,
.measure-hud.coordinate-hud-v1848 .atool-combo1848.open .atool-combo1848-trigger{border-color:#a98500!important;box-shadow:0 0 0 2px rgba(255,201,0,.18)!important}
.measure-hud.coordinate-hud-v1848 .atool-combo1848-trigger .chevron{font-size:13px!important;line-height:1!important;color:#555!important;transform:translateY(-1px)!important}
.measure-hud.coordinate-hud-v1848 .atool-combo1848-menu{
  position:absolute!important;left:0!important;top:calc(100% + 3px)!important;z-index:12000!important;
  min-width:100%!important;width:max-content!important;padding:3px!important;
  border:1px solid #d7d2c2!important;border-radius:6px!important;background:#fff!important;
  box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(-3px)!important;
}
.measure-hud.coordinate-hud-v1848 .atool-combo1848.open .atool-combo1848-menu{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
.measure-hud.coordinate-hud-v1848 .atool-combo1848-item{
  width:100%!important;min-width:110px!important;height:28px!important;display:block!important;
  padding:0 8px!important;border:0!important;border-radius:4px!important;background:#fff!important;color:#2d2d2d!important;
  text-align:left!important;white-space:nowrap!important;font:11px system-ui,-apple-system,"Segoe UI",sans-serif!important;
}
.measure-hud.coordinate-hud-v1848 label:nth-of-type(2) .atool-combo1848-item{min-width:86px!important}
.measure-hud.coordinate-hud-v1848 .atool-combo1848-item:hover{background:#fff7cf!important}
.measure-hud.coordinate-hud-v1848 .atool-combo1848-item.selected{background:#ffc900!important;color:#2b2500!important;font-weight:700!important}
@media(max-width:620px){.viewer-commandbar>.command-group:nth-child(2){display:flex!important}}

/* ===== ATool Open BIM v1.9.10 — Coordinate HUD: keep ONLY the upper combobox surface ===== */
/* Keep the exact v1.8.49 native-select appearance. Hide only duplicate custom surfaces generated below it. */
.measure-hud.coordinate-hud label .atool-select{
  min-width:0!important;
  width:auto!important;
  max-width:none!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-trigger,
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-trigger,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu,
.measure-hud.coordinate-hud .atool-combo1848,
.measure-hud.coordinate-hud .atool-coordinate-material-select,
.measure-hud.coordinate-hud .atool-coordinate-select1842,
.measure-hud.coordinate-hud .atool-coordinate-select1843{
  display:none!important;
}

/* ===== ATool Open BIM v1.9.10 — Material Design coordinate combobox skin ONLY ===== */
/* Visual-only override. Keeps the v1.9.10 single-combobox behavior and all measurement logic unchanged. */
.measure-hud.coordinate-hud #measure-snap,
.measure-hud.coordinate-hud #measure-unit{
  appearance:none!important;
  -webkit-appearance:none!important;
  position:static!important;
  display:inline-block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0 30px 0 11px!important;
  border:1px solid #d8d3c5!important;
  border-radius:8px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24'%3E%3Cpath fill='%236b675e' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 7px center!important;
  background-size:17px 17px!important;
  color:#2b2b2b!important;
  font:600 11.5px/30px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  letter-spacing:0!important;
  cursor:pointer!important;
  outline:none!important;
  box-shadow:0 1px 2px rgba(35,35,35,.06),0 1px 4px rgba(35,35,35,.04)!important;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease!important;
}
.measure-hud.coordinate-hud #measure-snap{width:118px!important;min-width:118px!important;max-width:118px!important}
.measure-hud.coordinate-hud #measure-unit{width:94px!important;min-width:94px!important;max-width:94px!important}
.measure-hud.coordinate-hud #measure-snap:hover,
.measure-hud.coordinate-hud #measure-unit:hover{
  border-color:#bda000!important;
  background-color:#fffdf5!important;
  box-shadow:0 2px 6px rgba(35,35,35,.08)!important;
}
.measure-hud.coordinate-hud #measure-snap:focus,
.measure-hud.coordinate-hud #measure-unit:focus,
.measure-hud.coordinate-hud #measure-snap:focus-visible,
.measure-hud.coordinate-hud #measure-unit:focus-visible{
  border-color:#c7a200!important;
  background-color:#fff!important;
  box-shadow:0 0 0 3px rgba(255,201,0,.20),0 2px 6px rgba(35,35,35,.08)!important;
}
.measure-hud.coordinate-hud #measure-snap option,
.measure-hud.coordinate-hud #measure-unit option{
  background:#fff!important;
  color:#2b2b2b!important;
  font:500 12px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
}
.measure-hud.coordinate-hud #measure-snap option:checked,
.measure-hud.coordinate-hud #measure-unit option:checked{
  background:#fff2ad!important;
  color:#3c3100!important;
  font-weight:700!important;
}

/* ===== ATool Open BIM v1.9.10 — Material Design dropdown panel for Coordinate comboboxes ONLY ===== */
/* Keep all coordinate/measurement behavior unchanged. Reuse the existing .atool-select wrapper
   so the closed field and the opened list are both fully themeable instead of browser-native. */
.measure-hud.coordinate-hud label .atool-select:has(> #measure-snap),
.measure-hud.coordinate-hud label .atool-select:has(> #measure-unit){
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  min-width:0!important;
  max-width:none!important;
  height:30px!important;
  overflow:visible!important;
  vertical-align:middle!important;
  z-index:420!important;
}
.measure-hud.coordinate-hud label .atool-select:has(> #measure-snap){width:118px!important;flex:0 0 118px!important}
.measure-hud.coordinate-hud label .atool-select:has(> #measure-unit){width:94px!important;flex:0 0 94px!important}

/* Native selects remain only as the authoritative value source. */
.measure-hud.coordinate-hud .atool-select > #measure-snap,
.measure-hud.coordinate-hud .atool-select > #measure-unit{
  display:block!important;
  position:absolute!important;
  inset:auto!important;
  left:0!important;top:0!important;
  width:1px!important;height:1px!important;
  min-width:1px!important;min-height:1px!important;max-height:1px!important;
  margin:0!important;padding:0!important;border:0!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  clip-path:inset(50%)!important;
  appearance:none!important;-webkit-appearance:none!important;
  box-shadow:none!important;
}

/* Material field / trigger. */
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-trigger,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-trigger{
  display:flex!important;
  width:100%!important;
  height:30px!important;min-height:30px!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  padding:0 8px 0 11px!important;
  border:1px solid #d8d3c5!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#2b2b2b!important;
  font:600 11.5px/30px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  letter-spacing:0!important;
  box-shadow:0 1px 2px rgba(35,35,35,.06),0 1px 4px rgba(35,35,35,.04)!important;
  outline:none!important;
  cursor:pointer!important;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .12s ease!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-trigger:hover,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-trigger:hover{
  border-color:#bda000!important;
  background:#fffdf5!important;
  box-shadow:0 2px 6px rgba(35,35,35,.08)!important;
}
.measure-hud.coordinate-hud .atool-select.open > #measure-snap ~ .atool-select-trigger,
.measure-hud.coordinate-hud .atool-select.open > #measure-unit ~ .atool-select-trigger{
  border-color:#c7a200!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(255,201,0,.20),0 4px 12px rgba(35,35,35,.10)!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-trigger .atool-select-arrow,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-trigger .atool-select-arrow{
  width:18px!important;height:18px!important;
  flex:0 0 18px!important;
  display:grid!important;place-items:center!important;
  color:#6b675e!important;
  transition:transform .16s cubic-bezier(.2,0,0,1)!important;
}
.measure-hud.coordinate-hud .atool-select.open > .atool-select-trigger .atool-select-arrow{transform:rotate(180deg)!important}

/* Fully custom Material Design dropdown surface. */
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu{
  display:block!important;
  position:absolute!important;
  left:0!important;right:auto!important;
  top:calc(100% + 6px)!important;
  z-index:16000!important;
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
  max-height:240px!important;
  margin:0!important;
  padding:5px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  border:1px solid #e1ddd3!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(35,35,35,.16),0 3px 8px rgba(35,35,35,.08)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(-5px) scale(.985)!important;
  transform-origin:top left!important;
  transition:opacity .14s cubic-bezier(.2,0,0,1),transform .14s cubic-bezier(.2,0,0,1),visibility .14s!important;
}
.measure-hud.coordinate-hud .atool-select.open > #measure-snap ~ .atool-select-menu,
.measure-hud.coordinate-hud .atool-select.open > #measure-unit ~ .atool-select-menu{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:translateY(0) scale(1)!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu button,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu button{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:34px!important;min-height:34px!important;
  padding:0 30px 0 10px!important;
  border:0!important;
  border-radius:7px!important;
  background:transparent!important;
  color:#3f3c36!important;
  font:550 11.5px/34px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  text-align:left!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  cursor:pointer!important;
  outline:none!important;
  transition:background-color .12s ease,color .12s ease!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu button:hover,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu button:hover{
  background:#fff8d8!important;
  color:#3b3100!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu button.selected,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu button.selected{
  background:#fff1a8!important;
  color:#3b3000!important;
  font-weight:700!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu button.selected::after,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu button.selected::after{
  content:""!important;
  position:absolute!important;
  right:10px!important;top:50%!important;
  width:13px!important;height:7px!important;
  border-left:2px solid #8b7000!important;
  border-bottom:2px solid #8b7000!important;
  transform:translateY(-66%) rotate(-45deg)!important;
  box-sizing:border-box!important;
}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu::-webkit-scrollbar,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu::-webkit-scrollbar{width:7px!important}
.measure-hud.coordinate-hud .atool-select > #measure-snap ~ .atool-select-menu::-webkit-scrollbar-thumb,
.measure-hud.coordinate-hud .atool-select > #measure-unit ~ .atool-select-menu::-webkit-scrollbar-thumb{background:#d8d2c2!important;border-radius:999px!important}

/* ===== ATool Open BIM v1.9.10 — Measure HUD matches Coordinate Material Design ===== */
/* UI-only. Measurement, snapping and unit logic are unchanged. */
.measure-hud:not(.coordinate-hud){
  left:50%!important;right:auto!important;top:10px!important;bottom:auto!important;
  transform:translateX(-50%)!important;
  z-index:120!important;
  width:auto!important;max-width:calc(100% - 24px)!important;
  min-height:34px!important;height:34px!important;
  padding:3px 6px 3px 8px!important;
  display:flex!important;align-items:center!important;
  flex-wrap:nowrap!important;gap:6px!important;
  overflow:visible!important;
  border:1px solid #e3c54b!important;border-radius:10px!important;
  background:rgba(255,250,224,.97)!important;
  color:#5f4b00!important;
  box-shadow:0 7px 22px rgba(83,66,0,.14)!important;
  -webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;
  pointer-events:auto!important;
}
.measure-hud:not(.coordinate-hud)>svg{
  display:block!important;flex:0 0 auto!important;color:#b48a00!important;
}
.measure-hud:not(.coordinate-hud)>span{
  margin:0 1px!important;
  color:#6b5600!important;
  font:700 12px/1.2 "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  white-space:nowrap!important;
}
.measure-hud:not(.coordinate-hud) label{
  height:28px!important;margin:0!important;
  display:flex!important;align-items:center!important;gap:5px!important;
  color:#695500!important;
  font:500 11.5px/1 "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  white-space:nowrap!important;pointer-events:auto!important;
}
.measure-hud:not(.coordinate-hud) label .atool-select:has(> #measure-snap),
.measure-hud:not(.coordinate-hud) label .atool-select:has(> #measure-unit){
  position:relative!important;
  display:inline-flex!important;align-items:center!important;
  min-width:0!important;max-width:none!important;height:30px!important;
  overflow:visible!important;vertical-align:middle!important;z-index:420!important;
}
.measure-hud:not(.coordinate-hud) label .atool-select:has(> #measure-snap){width:118px!important;flex:0 0 118px!important}
.measure-hud:not(.coordinate-hud) label .atool-select:has(> #measure-unit){width:94px!important;flex:0 0 94px!important}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit{
  display:block!important;position:absolute!important;left:0!important;top:0!important;
  width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;max-height:1px!important;
  margin:0!important;padding:0!important;border:0!important;opacity:0!important;
  pointer-events:none!important;overflow:hidden!important;clip-path:inset(50%)!important;
  appearance:none!important;-webkit-appearance:none!important;box-shadow:none!important;
}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-trigger,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-trigger{
  display:flex!important;width:100%!important;height:30px!important;min-height:30px!important;
  align-items:center!important;justify-content:space-between!important;gap:8px!important;
  padding:0 8px 0 11px!important;
  border:1px solid #d8d3c5!important;border-radius:8px!important;
  background:#fff!important;color:#2b2b2b!important;
  font:600 11.5px/30px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  letter-spacing:0!important;
  box-shadow:0 1px 2px rgba(35,35,35,.06),0 1px 4px rgba(35,35,35,.04)!important;
  outline:none!important;cursor:pointer!important;pointer-events:auto!important;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease!important;
}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-trigger:hover,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-trigger:hover{
  border-color:#bda000!important;background:#fffdf5!important;
  box-shadow:0 2px 6px rgba(35,35,35,.08)!important;
}
.measure-hud:not(.coordinate-hud) .atool-select.open > #measure-snap ~ .atool-select-trigger,
.measure-hud:not(.coordinate-hud) .atool-select.open > #measure-unit ~ .atool-select-trigger{
  border-color:#c7a200!important;background:#fff!important;
  box-shadow:0 0 0 3px rgba(255,201,0,.20),0 4px 12px rgba(35,35,35,.10)!important;
}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-trigger .atool-select-arrow,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-trigger .atool-select-arrow{
  width:18px!important;height:18px!important;flex:0 0 18px!important;
  display:grid!important;place-items:center!important;color:#6b675e!important;
  transition:transform .16s cubic-bezier(.2,0,0,1)!important;
}
.measure-hud:not(.coordinate-hud) .atool-select.open > .atool-select-trigger .atool-select-arrow{transform:rotate(180deg)!important}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-menu,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-menu{
  display:block!important;position:absolute!important;left:0!important;right:auto!important;
  top:calc(100% + 6px)!important;z-index:16000!important;
  width:100%!important;min-width:100%!important;max-width:none!important;max-height:240px!important;
  margin:0!important;padding:5px!important;overflow-x:hidden!important;overflow-y:auto!important;
  border:1px solid #e1ddd3!important;border-radius:10px!important;background:#fff!important;
  box-shadow:0 12px 28px rgba(35,35,35,.16),0 3px 8px rgba(35,35,35,.08)!important;
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
  transform:translateY(-5px) scale(.985)!important;transform-origin:top left!important;
  transition:opacity .14s cubic-bezier(.2,0,0,1),transform .14s cubic-bezier(.2,0,0,1),visibility .14s!important;
}
.measure-hud:not(.coordinate-hud) .atool-select.open > #measure-snap ~ .atool-select-menu,
.measure-hud:not(.coordinate-hud) .atool-select.open > #measure-unit ~ .atool-select-menu{
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
  transform:translateY(0) scale(1)!important;
}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-menu button,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-menu button{
  position:relative!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;
  width:100%!important;min-width:0!important;max-width:none!important;height:34px!important;min-height:34px!important;
  padding:0 30px 0 10px!important;border:0!important;border-radius:7px!important;background:transparent!important;
  color:#3f3c36!important;font:550 11.5px/34px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  text-align:left!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  cursor:pointer!important;outline:none!important;
  transition:background-color .12s ease,color .12s ease!important;
}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-menu button:hover,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-menu button:hover{
  background:#fff8d8!important;color:#3b3100!important;
}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-menu button.selected,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-menu button.selected{
  background:#fff1a8!important;color:#3b3000!important;font-weight:700!important;
}
.measure-hud:not(.coordinate-hud) .atool-select > #measure-snap ~ .atool-select-menu button.selected::after,
.measure-hud:not(.coordinate-hud) .atool-select > #measure-unit ~ .atool-select-menu button.selected::after{
  content:""!important;position:absolute!important;right:10px!important;top:50%!important;
  width:13px!important;height:7px!important;border-left:2px solid #8b7000!important;border-bottom:2px solid #8b7000!important;
  transform:translateY(-66%) rotate(-45deg)!important;box-sizing:border-box!important;
}
.measure-hud:not(.coordinate-hud) #clear-measures{
  height:28px!important;min-height:28px!important;min-width:76px!important;margin:0!important;padding:0 9px!important;
  border:1px solid #d2aa00!important;border-radius:7px!important;background:#ffc900!important;color:#3e3300!important;
  font:700 11px/26px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;white-space:nowrap!important;
  box-shadow:none!important;pointer-events:auto!important;
}
.measure-hud:not(.coordinate-hud) #clear-measures:hover{background:#ffd52d!important;border-color:#bd9900!important}
@media(max-width:760px){
  .measure-hud:not(.coordinate-hud){top:6px!important;max-width:calc(100% - 12px)!important}
  .measure-hud:not(.coordinate-hud)>span{display:none!important}
}

/* ===== ATool Open BIM v1.9.10 — Measure HUD spacing + stable clear button ===== */
/* Targeted visual override only. No Measure/Coordinate behavior is changed. */

/* Coordinate clear button: never shrink/jump vertically on click or after selection updates. */
.measure-hud.coordinate-hud #clear-measures,
.measure-hud.coordinate-hud #clear-measures:hover,
.measure-hud.coordinate-hud #clear-measures:active,
.measure-hud.coordinate-hud #clear-measures:focus,
.measure-hud.coordinate-hud #clear-measures:focus-visible{
  box-sizing:border-box!important;
  position:relative!important;
  top:auto!important;bottom:auto!important;
  align-self:center!important;
  flex:0 0 auto!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0 11px!important;
  border:1px solid #d2aa00!important;
  border-radius:8px!important;
  background:#ffc900!important;
  color:#3e3300!important;
  font:700 11px/28px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  white-space:nowrap!important;
  transform:none!important;
  vertical-align:middle!important;
  box-shadow:none!important;
}
.measure-hud.coordinate-hud #clear-measures:hover{background:#ffd52d!important;border-color:#bd9900!important}
.measure-hud.coordinate-hud #clear-measures:active{background:#f3bf00!important;border-color:#ad8c00!important;transform:none!important}

/* Measure settings panel: same balanced Material spacing as Coordinate. */
.measure-hud.measure-hud-v1856:not(.coordinate-hud){
  left:50%!important;right:auto!important;top:10px!important;bottom:auto!important;
  transform:translateX(-50%)!important;
  width:auto!important;max-width:calc(100% - 24px)!important;
  height:auto!important;min-height:42px!important;
  margin:0!important;
  padding:5px 7px!important;
  display:flex!important;align-items:center!important;flex-wrap:nowrap!important;
  gap:6px!important;
  overflow:visible!important;
  border:1px solid #e3c54b!important;border-radius:12px!important;
  background:rgba(255,250,224,.97)!important;
  color:#5f4b00!important;
  box-shadow:0 7px 22px rgba(83,66,0,.14)!important;
  box-sizing:border-box!important;
}
.measure-hud.measure-hud-v1856:not(.coordinate-hud)>svg{
  display:block!important;
  width:16px!important;height:16px!important;
  flex:0 0 16px!important;
  margin:0 1px 0 0!important;
  color:#b48a00!important;
}
.measure-hud.measure-hud-v1856:not(.coordinate-hud)>span{
  margin:0 1px!important;
  color:#6b5600!important;
  font:700 12px/1.2 "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  white-space:nowrap!important;
}
.measure-hud.measure-hud-v1856:not(.coordinate-hud) label{
  height:30px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;align-items:center!important;
  gap:5px!important;
  color:#695500!important;
  font:500 11.5px/1 "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  white-space:nowrap!important;
}
.measure-hud.measure-hud-v1856:not(.coordinate-hud) label .atool-select:has(> #measure-snap),
.measure-hud.measure-hud-v1856:not(.coordinate-hud) label .atool-select:has(> #measure-unit){
  height:30px!important;
  margin:0!important;
  padding:0!important;
  align-self:center!important;
}
.measure-hud.measure-hud-v1856:not(.coordinate-hud) #clear-measures,
.measure-hud.measure-hud-v1856:not(.coordinate-hud) #clear-measures:hover,
.measure-hud.measure-hud-v1856:not(.coordinate-hud) #clear-measures:active,
.measure-hud.measure-hud-v1856:not(.coordinate-hud) #clear-measures:focus,
.measure-hud.measure-hud-v1856:not(.coordinate-hud) #clear-measures:focus-visible{
  box-sizing:border-box!important;
  position:relative!important;
  top:auto!important;bottom:auto!important;
  align-self:center!important;
  flex:0 0 auto!important;
  height:30px!important;min-height:30px!important;max-height:30px!important;
  min-width:76px!important;
  margin:0!important;
  padding:0 10px!important;
  border:1px solid #d2aa00!important;border-radius:8px!important;
  background:#ffc900!important;color:#3e3300!important;
  font:700 11px/28px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;
  white-space:nowrap!important;
  transform:none!important;
  box-shadow:none!important;
}
.measure-hud.measure-hud-v1856:not(.coordinate-hud) #clear-measures:hover{background:#ffd52d!important;border-color:#bd9900!important}
.measure-hud.measure-hud-v1856:not(.coordinate-hud) #clear-measures:active{background:#f3bf00!important;border-color:#ad8c00!important;transform:none!important}

@media(max-width:760px){
  .measure-hud.measure-hud-v1856:not(.coordinate-hud){top:6px!important;max-width:calc(100% - 12px)!important}
  .measure-hud.measure-hud-v1856:not(.coordinate-hud)>span{display:none!important}
}

/* ===== ATool Open BIM v1.9.10 — fixed Measure / Coordinate control sizes ===== */
/* UI-only override. Keeps both settings panels stable while switching/clicking tools. */

/* Respect the native hidden state even though older HUD rules use display:flex!important. */
#measure-hud[hidden]{display:none!important}

/* Both Material comboboxes use exactly the same fixed footprint. */
#measure-hud label .atool-select:has(> #measure-snap),
#measure-hud label .atool-select:has(> #measure-unit){
  box-sizing:border-box!important;
  width:118px!important;
  min-width:118px!important;
  max-width:118px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  flex:0 0 118px!important;
  margin:0!important;
  padding:0!important;
  vertical-align:middle!important;
}

#measure-hud #measure-snap,
#measure-hud #measure-unit{
  box-sizing:border-box!important;
  width:118px!important;
  min-width:118px!important;
  max-width:118px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
}

#measure-hud .atool-select > #measure-snap ~ .atool-select-trigger,
#measure-hud .atool-select > #measure-unit ~ .atool-select-trigger{
  box-sizing:border-box!important;
  width:118px!important;
  min-width:118px!important;
  max-width:118px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  margin:0!important;
  padding:0 8px 0 10px!important;
  line-height:28px!important;
  flex:0 0 118px!important;
  transform:none!important;
}

/* Dropdown surface follows the trigger width exactly. */
#measure-hud .atool-select > #measure-snap ~ .atool-select-menu,
#measure-hud .atool-select > #measure-unit ~ .atool-select-menu{
  box-sizing:border-box!important;
  left:0!important;
  right:auto!important;
  width:118px!important;
  min-width:118px!important;
  max-width:118px!important;
}
#measure-hud .atool-select > #measure-snap ~ .atool-select-menu button,
#measure-hud .atool-select > #measure-unit ~ .atool-select-menu button{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}

/* Clear button has one fixed size in both Measure and Coordinate modes and every interaction state. */
#measure-hud #clear-measures,
#measure-hud #clear-measures:hover,
#measure-hud #clear-measures:active,
#measure-hud #clear-measures:focus,
#measure-hud #clear-measures:focus-visible{
  box-sizing:border-box!important;
  position:relative!important;
  top:auto!important;
  bottom:auto!important;
  width:118px!important;
  min-width:118px!important;
  max-width:118px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  flex:0 0 118px!important;
  align-self:center!important;
  margin:0!important;
  padding:0 8px!important;
  line-height:28px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  transform:none!important;
}

/* ===== ATool Open BIM v1.9.10 — lock Coordinate HUD footprint ===== */
/* Targeted UI fix only: clicking "Xóa tọa độ" must never change the panel width. */
#measure-hud.coordinate-hud{
  box-sizing:border-box!important;
  flex-shrink:0!important;
}
#measure-hud.coordinate-hud > svg,
#measure-hud.coordinate-hud > span,
#measure-hud.coordinate-hud > label,
#measure-hud.coordinate-hud #clear-measures{
  flex-shrink:0!important;
}

/* ===== ATool Open BIM v1.9.10 — Revit/AutoCAD-style perpendicular DIM tracking ===== */
/* The perpendicular tracking guide is intentionally dashed, matching CAD/BIM inference lines. */
.atool-perpendicular-guide1865{
  position:absolute;
  height:2px;
  transform-origin:0 50%;
  background:repeating-linear-gradient(90deg,#ffc900 0 9px,transparent 9px 15px);
  border-radius:0;
  box-shadow:none;
  opacity:1;
  pointer-events:none;
  z-index:118;
}
.atool-screen-snap-marker[data-kind="perpendicular"]::before{
  display:block!important;
  content:""!important;
  width:13px!important;
  height:13px!important;
  border-left:2.5px solid #ffc900!important;
  border-bottom:2.5px solid #ffc900!important;
  border-top:0!important;
  border-right:0!important;
  border-radius:0!important;
  background:transparent!important;
  transform:translate(-50%,-50%) rotate(var(--atool-perp-angle,0rad))!important;
}
.atool-screen-snap-marker[data-kind="perpendicular"]::after{
  display:none!important;
  content:none!important;
}

/* ===== ATool Open BIM v1.9.10 — perpendicular guide conflict cleanup ===== */
/* Keep the dashed inference line, but remove the separate right-angle glyph so it cannot overlap edge/intersection snap symbols. */
.atool-screen-snap-marker[data-kind="perpendicular"]::before,
.atool-screen-snap-marker[data-kind="perpendicular"]::after{
  display:none!important;
  content:none!important;
}

/* ===== ATool Open BIM v1.9.10 — balanced View-group spacing ===== */
/* UI-only cleanup: equal outer inset, equal group gaps and consistent inner padding. */
.views-panel .view-list{
  box-sizing:border-box!important;
  padding:7px 8px 9px!important;
  gap:5px!important;
}
.views-panel .view-quick-3d,
.views-panel .view-group{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
}
.views-panel .view-quick-3d{
  padding-left:10px!important;
  padding-right:10px!important;
}
.views-panel .view-group{
  border:1px solid #e4e6e8!important;
  border-radius:8px!important;
  overflow:hidden!important;
  background:#fff!important;
}
.views-panel .view-group-head{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  padding-left:9px!important;
  padding-right:9px!important;
  grid-template-columns:14px minmax(0,1fr) auto!important;
  gap:7px!important;
}
.views-panel .view-group-body{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  padding:4px 6px 7px!important;
  gap:1px!important;
}
.views-panel .view-item{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  padding-left:7px!important;
  padding-right:7px!important;
}
.views-panel .panel-placeholder.compact{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  padding:9px 7px!important;
}

/* ===== ATool Open BIM v1.9.10 — parameter display filter + truly balanced Views spacing ===== */
/* Outer Views scrollbar used a permanent reserved gutter, making the right visual margin larger. */
.views-panel .view-list{
  scrollbar-gutter:auto!important;
  padding:7px 8px 9px!important;
  gap:6px!important;
}
.views-panel .view-quick-3d,
.views-panel .view-group{width:100%!important;margin:0!important}
.views-panel .view-group-body{padding-left:6px!important;padding-right:6px!important}

/* Keep the explorer content flexible and reserve a clean bottom area for parameter filters. */
.viewer-layout>.model-panel>#bim-properties,
.viewer-layout>.model-panel>#category-list,
.viewer-layout>.model-panel>#spatial-tree{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  overflow:auto!important;
}
.viewer-layout>.model-panel>.panel-search-fixed{flex:0 0 auto!important}
.display-filter-panel{
  flex:0 0 auto!important;
  margin:0!important;
  border-top:1px solid #e2e5e8!important;
  background:#fff!important;
  color:#2d3136!important;
}
.display-filter-head{
  width:100%!important;height:36px!important;min-height:36px!important;
  display:grid!important;grid-template-columns:18px minmax(0,1fr) auto 14px!important;align-items:center!important;gap:7px!important;
  padding:0 10px!important;border:0!important;background:#fff7cf!important;color:#2b2b2b!important;text-align:left!important;
  border-bottom:1px solid #eadb9b!important;font-size:9.15pt!important;
}
.display-filter-head:hover{background:#fff2ad!important}
.display-filter-head strong{font-weight:750!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.display-filter-head b{min-width:20px!important;height:20px!important;display:grid!important;place-items:center!important;padding:0 5px!important;border-radius:999px!important;background:#f0eee8!important;color:#77736b!important;font-size:8pt!important}
.display-filter-head-icon{color:#7b6200!important;width:16px!important;height:16px!important;display:grid!important;place-items:center!important;line-height:1!important}
.display-filter-head-icon svg{width:15px!important;height:15px!important;display:block!important}
.display-filter-chevron{transition:transform .15s ease!important;color:#746d5a!important}
.display-filter-panel.is-collapsed .display-filter-chevron{transform:rotate(-90deg)!important}
.display-filter-body{padding:7px 8px 8px!important;max-height:236px!important;overflow:auto!important;background:#fff!important}
.display-filter-note{margin:0 0 6px!important;padding:6px 7px!important;border-radius:6px!important;background:#faf9f5!important;color:#7a7770!important;font-size:7.65pt!important;line-height:1.35!important}
.display-filter-list{display:grid!important;gap:6px!important}
.display-filter-empty{padding:8px!important;border:1px dashed #dedbd3!important;border-radius:7px!important;color:#99958c!important;text-align:center!important;font-size:8pt!important}
.display-filter-row{display:grid!important;gap:4px!important;padding:6px!important;border:1px solid #e4e2dc!important;border-radius:7px!important;background:#fff!important}
.display-filter-row-head,.display-filter-condition{display:grid!important;align-items:center!important;gap:5px!important}
.display-filter-row-head{grid-template-columns:minmax(0,1fr) 30px!important}
.display-filter-condition{grid-template-columns:104px minmax(0,1fr)!important}
.display-filter-row select,.display-filter-row input{
  width:100%!important;min-width:0!important;height:30px!important;min-height:30px!important;padding:0 7px!important;border:1px solid #dcd9d1!important;border-radius:6px!important;background:#fff!important;color:#3b3934!important;outline:none!important;font-size:8.15pt!important;
}
.display-filter-row select:focus,.display-filter-row input:focus{border-color:#d1ad16!important;box-shadow:0 0 0 2px rgba(255,201,0,.14)!important}
.display-filter-custom{margin-top:0!important}
.display-filter-remove{width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;border:1px solid #e7dedb!important;border-radius:6px!important;background:#fff8f6!important;color:#9c5548!important;font-size:16px!important;line-height:1!important}
.display-filter-actions{display:grid!important;grid-template-columns:minmax(0,1fr) 70px 62px!important;gap:5px!important;margin-top:7px!important}
.display-filter-actions button{height:30px!important;min-height:30px!important;padding:0 7px!important;border:1px solid #dedbd3!important;border-radius:6px!important;background:#fff!important;color:#57544d!important;font-size:7.9pt!important;font-weight:650!important;white-space:nowrap!important}
.display-filter-actions button:hover{background:#f7f6f2!important}
.display-filter-actions button.primary{background:#ffc900!important;border-color:#d8ae00!important;color:#302800!important}
.display-filter-actions button:disabled{opacity:.58!important;cursor:wait!important}
.display-filter-status{display:block!important;margin-top:6px!important;color:#89857d!important;font-size:7.5pt!important;line-height:1.3!important}
.display-filter-panel.is-busy .display-filter-head{background:#fff2ad!important}
@media(max-height:760px){.display-filter-body{max-height:190px!important}.display-filter-note{display:none!important}}

/* v1.9.10 — filter controls aligned to one height */
.display-filter-row .display-filter-value-select[hidden]{display:none!important}
.display-filter-row .display-filter-value-select:disabled{color:#8b877f!important;background:#f7f6f2!important}


/* ===== ATool Open BIM v1.9.10 — Material Design filter combobox + AND/OR ===== */
.display-filter-logic{
  display:grid!important;grid-template-columns:minmax(0,1fr) 132px!important;align-items:center!important;gap:7px!important;
  margin:0 0 7px!important;padding:5px 6px!important;border:1px solid #ebe7db!important;border-radius:7px!important;background:#fffdf7!important;
}
.display-filter-logic>span{color:#69655d!important;font-size:7.9pt!important;font-weight:650!important;white-space:nowrap!important}
.display-filter-panel .atool-select{
  width:100%!important;min-width:0!important;max-width:100%!important;height:30px!important;display:block!important;overflow:visible!important;
}
.display-filter-panel .atool-select-trigger{
  width:100%!important;height:30px!important;min-height:30px!important;max-height:30px!important;
  padding:0 7px 0 9px!important;border:1px solid #dcd9d1!important;border-radius:7px!important;background:#fff!important;color:#3b3934!important;
  font:600 8.15pt/1 "Be Vietnam Pro",Inter,system-ui,sans-serif!important;box-shadow:0 1px 2px rgba(35,35,35,.04)!important;
}
.display-filter-panel .atool-select-trigger:hover{border-color:#c7a600!important;background:#fffdf5!important}
.display-filter-panel .atool-select.open .atool-select-trigger{border-color:#c7a200!important;box-shadow:0 0 0 2px rgba(255,201,0,.18)!important}
.display-filter-panel .atool-select-trigger:disabled{background:#f6f5f1!important;color:#99958c!important;cursor:default!important;opacity:.9!important}
.display-filter-panel .atool-select-arrow{width:16px!important;height:16px!important;flex:0 0 16px!important;color:#6d685f!important}
.display-filter-panel .atool-select-arrow svg{width:16px!important;height:16px!important}
.display-filter-panel .atool-select-menu{
  z-index:18000!important;top:calc(100% + 4px)!important;min-width:100%!important;width:max-content!important;max-width:250px!important;max-height:220px!important;
  padding:4px!important;border:1px solid #e0ddd4!important;border-radius:9px!important;background:#fff!important;box-shadow:0 12px 30px rgba(35,35,35,.16),0 3px 8px rgba(35,35,35,.07)!important;
}
.display-filter-panel .atool-select-menu button{
  width:100%!important;min-width:0!important;height:30px!important;min-height:30px!important;padding:0 8px!important;border-radius:6px!important;
  color:#4f4b44!important;font:500 8.1pt/30px "Be Vietnam Pro",Inter,system-ui,sans-serif!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
.display-filter-panel .atool-select-menu button:hover{background:#f7f4e9!important}
.display-filter-panel .atool-select-menu button.selected{background:#fff1a8!important;color:#4f4100!important;font-weight:750!important}
.display-filter-row select{appearance:none!important;-webkit-appearance:none!important}
.display-filter-row-head>.atool-select,.display-filter-condition>.atool-select{min-width:0!important}
.display-filter-logic>.atool-select{width:132px!important;justify-self:end!important}

/* ===== ATool Open BIM v1.9.10 — compact filter layout + adaptive Material dropdown ===== */
.display-filter-body{
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.display-filter-logic{
  grid-template-columns:minmax(0,1fr) 108px!important;
  gap:6px!important;
}
.display-filter-logic>.atool-select{
  width:108px!important;
  max-width:108px!important;
  justify-self:end!important;
}
.display-filter-row{
  background:#f5f6f7!important;
  border-color:#dedfe2!important;
  box-shadow:0 1px 2px rgba(25,28,32,.025)!important;
}
.display-filter-row .display-filter-value[hidden],
.display-filter-row .display-filter-value-select[hidden],
.display-filter-condition>.atool-select:has(> .display-filter-value-select[hidden]){
  display:none!important;
}
.display-filter-row.display-filter-no-value .display-filter-condition{
  grid-template-columns:1fr!important;
}
.display-filter-remove{
  background:rgba(220,53,69,.12)!important;
  border-color:rgba(190,35,52,.24)!important;
  color:#161616!important;
  font-size:19px!important;
  font-weight:750!important;
  line-height:28px!important;
}
.display-filter-remove:hover{
  background:rgba(220,53,69,.20)!important;
  border-color:rgba(190,35,52,.36)!important;
}
.display-filter-panel .atool-select-menu.atool-filter-menu-fixed{
  z-index:2147483000!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  transform:none!important;
}
.display-filter-panel .atool-select.drop-up>.atool-select-trigger .atool-select-arrow{
  transform:rotate(180deg)!important;
}

/* ===== ATool Open BIM v1.9.10 — fixed combobox widths + top filter status ===== */
#display-filter-panel .display-filter-status{
  display:block!important;
  margin:0 0 6px!important;
  padding:0 0 6px!important;
  border-bottom:1px solid #e5e2da!important;
  color:#77736b!important;
  font-size:7.6pt!important;
  line-height:1.35!important;
  white-space:normal!important;
}
#display-filter-panel .display-filter-note{
  margin:0 0 7px!important;
}
#display-filter-panel .display-filter-logic{
  grid-template-columns:minmax(0,1fr) max-content!important;
  gap:7px!important;
}
#display-filter-panel .display-filter-logic>.atool-select{
  width:var(--atool-filter-natural-width,126px)!important;
  min-width:var(--atool-filter-natural-width,126px)!important;
  max-width:var(--atool-filter-natural-width,126px)!important;
  justify-self:end!important;
}
#display-filter-panel .atool-select-trigger,
#display-filter-panel .atool-select-trigger>span:first-child{
  white-space:nowrap!important;
}
#display-filter-panel .atool-select-trigger>span:first-child{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#display-filter-panel .atool-select-menu.atool-filter-menu-fixed{
  width:var(--atool-filter-natural-width,auto)!important;
  min-width:var(--atool-filter-natural-width,100%)!important;
}

/* ===== ATool Open BIM v1.9.10 — filter dropdown motion, type-ahead, volume HUD, collapsible properties ===== */
/* Filter AND/OR has enough room for its complete label without wrapping/truncation. */
#display-filter-panel .display-filter-logic{
  grid-template-columns:minmax(0,1fr) 184px!important;
}
#display-filter-panel .display-filter-logic>.atool-select{
  width:184px!important;
  min-width:184px!important;
  max-width:184px!important;
}
#display-filter-panel .display-filter-logic>.atool-select .atool-select-trigger>span:first-child{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}

/* Normal combobox motion: slide down when opening below, slide up when opening above.
   Explicitly remove every scale/zoom transition. */
#display-filter-panel .atool-select-menu,
#display-filter-panel .atool-select-menu.atool-filter-menu-fixed{
  opacity:0!important;
  visibility:hidden!important;
  transform:translateY(-6px)!important;
  transform-origin:center top!important;
  transition:opacity .12s ease,transform .14s ease,visibility .12s linear!important;
  will-change:opacity,transform!important;
}
#display-filter-panel .atool-select.drop-up>.atool-select-menu,
#display-filter-panel .atool-select.drop-up>.atool-select-menu.atool-filter-menu-fixed{
  transform:translateY(6px)!important;
  transform-origin:center bottom!important;
}
#display-filter-panel .atool-select.open>.atool-select-menu,
#display-filter-panel .atool-select.open>.atool-select-menu.atool-filter-menu-fixed{
  opacity:1!important;
  visibility:visible!important;
  transform:translateY(0)!important;
}
#display-filter-panel .atool-select-menu button.atool-typeahead-hit1880{
  background:#fff0a0!important;
  color:#403400!important;
  outline:1px solid #dfbd24!important;
  outline-offset:-1px!important;
}

/* Selected-volume toggle + floating panel. */
#selection-volume-toggle.active{
  background:#fff0a8!important;
  border-color:#d9b300!important;
  color:#4a3b00!important;
}
.selection-volume-panel{
  position:absolute!important;
  left:12px!important;
  bottom:12px!important;
  z-index:145!important;
  width:230px!important;
  padding:10px!important;
  border:1px solid #dedbd2!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 10px 28px rgba(30,30,30,.14)!important;
  backdrop-filter:blur(7px)!important;
  color:#2f2e2b!important;
}
.selection-volume-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:8px!important;
  margin-bottom:8px!important;
}
.selection-volume-head strong{font-size:10pt!important;line-height:1.25!important}
.selection-volume-head small{color:#8a867e!important;font-size:7.6pt!important;white-space:nowrap!important}
.selection-volume-main{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 82px!important;
  gap:7px!important;
  align-items:center!important;
  margin-bottom:8px!important;
}
.selection-volume-main>b{
  min-width:0!important;
  font-size:17pt!important;
  line-height:1!important;
  letter-spacing:-.02em!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.selection-volume-panel>.atool-select,
.selection-volume-main>.atool-select{
  width:82px!important;
  min-width:82px!important;
  max-width:82px!important;
  height:30px!important;
}
.selection-volume-panel .atool-select-trigger{
  min-height:30px!important;
  height:30px!important;
  padding:0 7px!important;
  border-radius:7px!important;
  font-size:8.2pt!important;
}
.selection-volume-panel .atool-select-menu{
  min-width:82px!important;
  max-width:120px!important;
  z-index:19000!important;
}
#selection-volume-copy{
  width:100%!important;
  height:30px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  border:1px solid #ddd9cf!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#59564f!important;
  font-size:8pt!important;
  font-weight:650!important;
}
#selection-volume-copy:hover{background:#fff7d2!important;border-color:#d7b735!important}

/* Property groups: all expanded by default, individually collapsible. */
.bv-prop-group>.bv-prop-group-head1880{
  margin:0!important;
  padding:0!important;
}
.bv-prop-group-toggle1880{
  width:100%!important;
  min-height:30px!important;
  padding:0 7px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  border:0!important;
  background:transparent!important;
  color:inherit!important;
  text-align:left!important;
  font:inherit!important;
  font-weight:750!important;
}
.bv-prop-group-toggle1880:hover{background:#f7f6f1!important}
.bv-prop-chevron1880{
  flex:0 0 auto!important;
  color:#8c887f!important;
  font-size:11px!important;
  transition:transform .14s ease!important;
}
.bv-prop-group.is-collapsed1880 .bv-prop-chevron1880{transform:rotate(-90deg)!important}
.bv-prop-group-body1880{display:block!important}
.bv-prop-group-body1880[hidden]{display:none!important}

@media(max-width:760px){
  .selection-volume-panel{left:6px!important;bottom:6px!important;width:min(230px,calc(100% - 12px))!important}
}
.selection-volume-panel .atool-select-menu{
  top:auto!important;
  bottom:calc(100% + 4px)!important;
  transform:translateY(5px)!important;
  transform-origin:center bottom!important;
}
.selection-volume-panel .atool-select.open .atool-select-menu{transform:translateY(0)!important}
.atool-filter-typeahead-sink1880{
  position:absolute!important;
  width:1px!important;height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  padding:0!important;margin:0!important;border:0!important;
  left:-9999px!important;top:-9999px!important;
}

/* ===== ATool Open BIM v1.9.10 — volume reserve panel ===== */
.selection-volume-panel[data-atool1881="1"]{
  width:244px!important;
  padding:10px!important;
}
.selection-volume-panel[data-atool1881="1"] .selection-volume-head{
  margin-bottom:7px!important;
  padding-bottom:7px!important;
  border-bottom:1px solid #ece9e1!important;
}
.selection-volume-waste1881{
  min-height:30px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  margin-bottom:7px!important;
}
.selection-volume-waste1881>label{
  color:#666159!important;
  font-size:8pt!important;
  font-weight:650!important;
  white-space:nowrap!important;
}
.selection-volume-waste-input1881{
  width:82px!important;
  height:30px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 20px!important;
  align-items:center!important;
  border:1px solid #d9d5cc!important;
  border-radius:7px!important;
  background:#fff!important;
  overflow:hidden!important;
}
.selection-volume-waste-input1881:focus-within{
  border-color:#c9a800!important;
  box-shadow:0 0 0 2px rgba(255,201,0,.16)!important;
}
.selection-volume-waste-input1881 input{
  width:100%!important;
  min-width:0!important;
  height:28px!important;
  padding:0 3px 0 8px!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:#2f2e2b!important;
  font-size:8.4pt!important;
  font-weight:700!important;
  text-align:right!important;
  appearance:textfield!important;
  -moz-appearance:textfield!important;
}
.selection-volume-waste-input1881 input::-webkit-inner-spin-button,
.selection-volume-waste-input1881 input::-webkit-outer-spin-button{margin:0!important;opacity:.55!important}
.selection-volume-waste-input1881>span{
  color:#6f6a62!important;
  font-size:8pt!important;
  font-weight:650!important;
  text-align:left!important;
}
.selection-volume-metric1881{
  min-height:48px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 30px!important;
  align-items:center!important;
  gap:7px!important;
  padding:7px 0!important;
  border-top:1px solid #f0ede6!important;
}
.selection-volume-metric1881>div{min-width:0!important;display:grid!important;gap:3px!important}
.selection-volume-metric1881 span{
  color:#777169!important;
  font-size:7.7pt!important;
  font-weight:600!important;
  white-space:nowrap!important;
}
.selection-volume-metric1881 strong{
  min-width:0!important;
  color:#262521!important;
  font-size:14.5pt!important;
  line-height:1.05!important;
  letter-spacing:-.02em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.selection-volume-forecast1881 strong{color:#6a5400!important}
.selection-volume-copy1881{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #ddd8ce!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#4d4a44!important;
}
.selection-volume-copy1881:hover{background:#fff3bd!important;border-color:#d2ae18!important;color:#3f3400!important}
.selection-volume-panel[data-atool1881="1"] .selection-volume-main,
.selection-volume-panel[data-atool1881="1"] #selection-volume-copy,
.selection-volume-panel[data-atool1881="1"]>.atool-select{display:none!important}
@media(max-width:760px){
  .selection-volume-panel[data-atool1881="1"]{width:min(244px,calc(100% - 12px))!important}
}

/* v1.9.10 - native That Open viewport mount; preserve ATool overlays */
.atool-thatopen-viewport{position:absolute;inset:0;overflow:hidden;z-index:0;background:#f7f8fa}
.atool-thatopen-viewport canvas{display:block!important;width:100%!important;height:100%!important;touch-action:none}
#viewer-canvas>.atool-thatopen-viewport{pointer-events:auto}
#viewer-canvas>#view-cube,#viewer-canvas>.viewer-loading,#viewer-canvas>.tool-hud,#viewer-canvas>.section-panel{position:absolute;z-index:3}

/* ===== ATool Open BIM v1.9.10 — live load stages ===== */
.atool-live-progress1900{width:100%;margin-top:14px;padding-top:13px;border-top:1px solid #ece8dc;text-align:left}
.atool-live-progress-head1900{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;color:#716d63;font-size:11px}
.atool-live-progress-head1900 b{color:#403d36;font-size:11.5px;font-weight:700}
.atool-live-progress-head1900 span{font-variant-numeric:tabular-nums;white-space:nowrap}
.atool-live-progress-list1900{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;width:100%}
.atool-live-progress-step1900{min-width:0;display:grid;grid-template-columns:23px minmax(0,1fr);gap:7px;align-items:start;padding:7px 8px;border:1px solid #ece9e1;border-radius:10px;background:#faf9f6;transition:.18s ease}
.atool-live-progress-step1900>i{width:21px;height:21px;display:grid;place-items:center;border-radius:7px;background:#efede7;color:#8a867e;font-style:normal;font-size:10px;font-weight:800;line-height:1}
.atool-live-progress-step1900>div{min-width:0;display:grid;gap:2px}
.atool-live-progress-step1900 b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#656159;font-size:10.5px;font-weight:650;line-height:1.25}
.atool-live-progress-step1900 span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#99948a;font-size:9.5px;line-height:1.35;font-variant-numeric:tabular-nums}
.atool-live-progress-step1900.is-running{border-color:#efd66d;background:#fff9dd;box-shadow:0 0 0 2px rgba(255,201,0,.08)}
.atool-live-progress-step1900.is-running>i{background:#ffc900;color:#2b2b2b;animation:atoolPulse177 1.35s ease-out infinite}
.atool-live-progress-step1900.is-running b{color:#544500}
.atool-live-progress-step1900.is-done{background:#f5f8f5;border-color:#dfe8df}
.atool-live-progress-step1900.is-done>i{background:#def0df;color:#35733b}
.atool-live-progress-step1900.is-done b{color:#3f6443}
.atool-live-progress-step1900.is-skipped{opacity:.74;background:#f7f6f3}
.atool-live-progress-step1900.is-skipped>i{background:#eceae5;color:#918d84}
@media(max-width:780px){.atool-live-progress-list1900{grid-template-columns:1fr}.atool-live-progress-step1900 span{white-space:normal}.viewer-loading .loading-card{max-height:calc(100vh - 32px)!important;overflow:auto!important}}

/* v1.9.10 — real per-stage progress meters */
.atool-live-progress-meter1902{display:block;width:100%;height:3px;margin-top:4px;overflow:hidden;border-radius:999px;background:#e9e6de;font-style:normal}
.atool-live-progress-meter1902>u{display:block;height:100%;border-radius:inherit;background:#ffc900;text-decoration:none;transition:width .12s linear}
.atool-live-progress-step1900.is-done .atool-live-progress-meter1902>u{background:#6da876}

/* ===== ATool Open BIM v1.9.10 — upload result states + Fragment fast-path ===== */
.atool-upload-overlay.is-success .atool-upload-spinner{animation:none;border-color:#dcebdd;border-top-color:#4f8f58;position:relative}
.atool-upload-overlay.is-success .atool-upload-spinner::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#35733b;font-size:20px;font-weight:800}
.atool-upload-overlay.is-warning .atool-upload-spinner{animation:none;border-color:#f3e6a8;border-top-color:#d2a900;position:relative}
.atool-upload-overlay.is-warning .atool-upload-spinner::after{content:'!';position:absolute;inset:0;display:grid;place-items:center;color:#7c6500;font-size:20px;font-weight:800}
.atool-upload-overlay.is-error .atool-upload-spinner{animation:none;border-color:#f0d3d3;border-top-color:#b94a48;position:relative}
.atool-upload-overlay.is-error .atool-upload-spinner::after{content:'×';position:absolute;inset:0;display:grid;place-items:center;color:#9e3533;font-size:23px;font-weight:800}
.atool-upload-overlay.is-success .atool-upload-progress>div{background:#6da876}
.atool-upload-overlay.is-warning .atool-upload-progress>div{background:#d6ad16}
.atool-upload-overlay.is-error .atool-upload-progress>div{background:#c95a57}
.atool-upload-overlay.is-warning .atool-upload-status,.atool-upload-overlay.is-error .atool-upload-status{white-space:normal;line-height:1.45;min-height:auto}
.atool-upload-actions{display:flex;justify-content:center;margin-top:14px}
.atool-upload-actions[hidden]{display:none!important}
.atool-upload-actions button{height:34px;min-width:92px;padding:0 16px;border:1px solid #d9d5cc;border-radius:9px;background:#fff;color:#3b3934;font-size:12px;font-weight:700;cursor:pointer}
.atool-upload-actions button:hover{border-color:#c5a000;background:#fff8d8}
.atool-live-progress1900[data-mode="frag"] .atool-live-progress-head1900 b::after{content:' · FRAG FAST PATH';margin-left:6px;color:#8a7a22;font-size:8.5px;font-weight:750;letter-spacing:.04em}

/* v1.9.61 — Cạnh uses exactly the same typography/metrics as Lưới/Góc nhìn. */
.viewer-bottom-actions>#toggle-edges{display:inline-flex!important;order:100!important;margin-left:0!important}

/* v1.9.61 — preserve multiple IFC material names as wrapped lines. */
#property-content .bv-prop-row>b{white-space:pre-line!important;word-break:break-word!important;overflow-wrap:anywhere!important;}


/* v1.9.86 — quick-close buttons + property-group parameter counts. */
.panel-quick-close1986{
  margin-left:auto!important;
  width:26px!important;height:26px!important;min-width:26px!important;
  display:grid!important;place-items:center!important;
  padding:0!important;border:1px solid transparent!important;border-radius:6px!important;
  background:transparent!important;color:#77736b!important;
  font:500 19px/1 Arial,sans-serif!important;cursor:pointer!important;
}
.panel-quick-close1986:hover{background:#f1f0ec!important;border-color:#e2dfd7!important;color:#272522!important}
.views-panel-head .panel-quick-close1986{margin-left:auto!important}
#property-content .bv-prop-group>h4::after{display:none!important;content:none!important}
.bv-prop-group-toggle1880{justify-content:space-between!important}
.bv-prop-group-title1986{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.bv-prop-count1986{
  flex:0 0 auto!important;min-width:20px!important;height:20px!important;padding:0 6px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  border-radius:999px!important;background:#f0eee8!important;color:#777167!important;
  font-size:8pt!important;font-weight:750!important;line-height:1!important;
}
.bv-prop-group.is-collapsed1880 .bv-prop-count1986{background:#fff2a8!important;color:#6f5900!important}


/* v1.9.87 — keep property count pinned to the far-right edge of every group header. */
.bv-prop-group-toggle1880>.bv-prop-count1986{margin-left:auto!important;text-align:right!important;justify-content:center!important}


/* v1.10.02 — property count closer to the panel's right edge. */
.bv-prop-group-toggle1880{padding-right:1px!important}
.bv-prop-group-toggle1880>.bv-prop-count1986{margin-left:auto!important;margin-right:0!important}

/* v1.10.02 — move the property-count badge closer to the panel's right edge only. */
.bv-prop-group-toggle1880>.bv-prop-count1986{
  margin-left:auto!important;
  margin-right:-6px!important;
}


/* ATool Open BIM v1.10.22 — non-blocking command feedback for heavy Select Type */
.atool-type-select-busy{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;background:rgba(24,24,24,.16);backdrop-filter:blur(1.5px);cursor:progress;pointer-events:auto;opacity:0;transition:opacity .12s ease}
.atool-type-select-busy[hidden]{display:none!important}
.atool-type-select-busy.show{opacity:1}
.atool-type-select-busy-card{display:flex;align-items:center;gap:14px;min-width:min(420px,calc(100vw - 40px));max-width:520px;padding:16px 18px;border-radius:14px;background:#fff;color:#2b2b2b;box-shadow:0 12px 36px rgba(0,0,0,.24);border:1px solid rgba(0,0,0,.08);font-family:"Be Vietnam Pro",system-ui,sans-serif}
.atool-type-select-busy-card strong{display:block;font-size:14px;font-weight:700;line-height:1.45}
.atool-type-select-busy-card small{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:#666}
.atool-type-select-spinner{width:24px;height:24px;flex:0 0 24px;border-radius:50%;border:3px solid rgba(43,43,43,.16);border-top-color:#ffc900;animation:atoolTypeSelectSpin .7s linear infinite}
@keyframes atoolTypeSelectSpin{to{transform:rotate(360deg)}}

/* v1.10.23 — type-select busy overlay lives inside the active viewer top-layer dialog/fullscreen host. */
#viewer-dialog[open] > .atool-type-select-busy,.shared-shell > .atool-type-select-busy{position:fixed!important;inset:0!important;z-index:2147483646!important}


/* v1.10.34 — remove browser black focus ring from button-like controls only.
   Keep existing component borders/background/active states unchanged. */
button:focus,
button:focus-visible,
[role="button"]:focus,
[role="button"]:focus-visible,
a.primary-btn:focus,
a.primary-btn:focus-visible,
[tabindex].icon-btn:focus,
[tabindex].icon-btn:focus-visible {
  outline:none!important;
  -webkit-tap-highlight-color:transparent;
}


/* ===== ATool Open BIM v1.10.38 — That Open lighting + background controls ===== */
.viewer-brightness-control{position:relative!important;display:inline-flex!important;align-items:center!important;height:28px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.viewer-brightness-control .brightness-toggle{height:28px!important;min-height:28px!important;padding:0 9px!important;display:inline-flex!important;align-items:center!important;gap:5px!important;border:1px solid #dedbd3!important;border-radius:8px!important;background:#fff!important;color:#68645d!important;font-size:11px!important;font-weight:600!important;line-height:1!important;cursor:pointer!important;box-shadow:none!important}
.viewer-brightness-control .brightness-toggle:hover{background:#f8f8f6!important;color:#484640!important}
.viewer-brightness-control .brightness-toggle.active{background:#fff7cf!important;border-color:#d6b300!important;color:#5e4d00!important}
.viewer-brightness-control .brightness-toggle .brightness-icon{font-size:13px!important;line-height:1!important;color:#77736b!important}
.viewer-brightness-control .brightness-toggle.active .brightness-icon{color:#8a7600!important}
.brightness-settings{position:absolute!important;right:0!important;bottom:calc(100% + 8px)!important;width:286px!important;padding:10px!important;border:1px solid #dedbd3!important;border-radius:10px!important;background:#fff!important;box-shadow:0 10px 28px rgba(0,0,0,.14)!important;z-index:160!important;color:#4e4b45!important}
.brightness-settings[hidden]{display:none!important}
.brightness-settings-head{display:flex!important;align-items:baseline!important;justify-content:space-between!important;padding:1px 2px 8px!important;border-bottom:1px solid #ece9e1!important;margin-bottom:4px!important}
.brightness-settings-head strong{font-size:12px!important;font-weight:700!important}
.brightness-settings-head small{font-size:9px!important;color:#8a867f!important}
.brightness-setting-row{display:block!important;padding:8px 2px 6px!important}
.brightness-setting-row>span{display:block!important;margin-bottom:6px!important;font-size:10px!important;font-weight:600!important;color:#666158!important}
.brightness-setting-row>div{display:grid!important;grid-template-columns:minmax(0,1fr) 42px 24px!important;align-items:center!important;gap:6px!important}
.brightness-setting-row input[type="range"]{-webkit-appearance:none!important;appearance:none!important;width:100%!important;height:16px!important;margin:0!important;background:transparent!important;cursor:pointer!important;accent-color:transparent!important}
.brightness-setting-row input[type="range"]::-webkit-slider-runnable-track{height:3px!important;border:0!important;border-radius:999px!important;background:#d9dde2!important;box-shadow:none!important}
.brightness-setting-row input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none!important;width:13px!important;height:13px!important;margin-top:-5px!important;border-radius:50%!important;border:1px solid #c5a300!important;background:#ffc900!important;box-shadow:0 1px 2px rgba(0,0,0,.10)!important}
.brightness-setting-row input[type="range"]::-moz-range-track{height:3px!important;border:0!important;border-radius:999px!important;background:#d9dde2!important}
.brightness-setting-row input[type="range"]::-moz-range-progress{height:3px!important;border-radius:999px!important;background:#bfc4cb!important}
.brightness-setting-row input[type="range"]::-moz-range-thumb{width:13px!important;height:13px!important;border-radius:50%!important;border:1px solid #c5a300!important;background:#ffc900!important;box-shadow:0 1px 2px rgba(0,0,0,.10)!important}
.brightness-setting-row output{min-width:42px!important;font-size:10px!important;font-weight:650!important;text-align:right!important;color:#68645d!important}
.brightness-setting-row .brightness-reset{width:24px!important;height:24px!important;display:grid!important;place-items:center!important;padding:0!important;border:0!important;border-radius:6px!important;background:#f5f4ef!important;color:#716d64!important;cursor:pointer!important}
.brightness-setting-row .brightness-reset:hover{background:#fff1a8!important;color:#5e4d00!important}
.brightness-setting-row .brightness-reset svg{width:14px!important;height:14px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
@media(max-width:900px){.brightness-settings{width:min(286px,82vw)!important;right:-4px!important}}

/* v1.10.38 — background color control inside the existing brightness panel */
.brightness-color-row>div{grid-template-columns:minmax(0,1fr) 64px 24px!important}
.brightness-color-row input[type="color"]{-webkit-appearance:none!important;appearance:none!important;width:100%!important;height:26px!important;padding:2px!important;border:1px solid #dedbd3!important;border-radius:7px!important;background:#fff!important;cursor:pointer!important;box-shadow:none!important}
.brightness-color-row input[type="color"]::-webkit-color-swatch-wrapper{padding:0!important}
.brightness-color-row input[type="color"]::-webkit-color-swatch{border:0!important;border-radius:5px!important}
.brightness-color-row input[type="color"]::-moz-color-swatch{border:0!important;border-radius:5px!important}
.brightness-color-row output{min-width:64px!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;font-size:9.5px!important;text-transform:uppercase!important}


/* ===== ATool Open BIM v1.10.38 — modern Lighting panel + no tabindex focus borders ===== */
.brightness-settings{
  width:318px!important;
  padding:12px!important;
  border:1px solid rgba(43,43,43,.10)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 16px 42px rgba(23,23,23,.16),0 2px 8px rgba(23,23,23,.06)!important;
  overflow:hidden!important;
}
.brightness-settings-head{
  display:block!important;
  margin:0 0 10px!important;
  padding:0 0 10px!important;
  border-bottom:1px solid #efede7!important;
}
.brightness-settings-title{display:flex!important;align-items:center!important;gap:9px!important}
.brightness-settings-icon{
  width:30px!important;height:30px!important;display:grid!important;place-items:center!important;
  border-radius:9px!important;background:#fff4bd!important;color:#6b5900!important;font-size:16px!important;
  box-shadow:inset 0 0 0 1px rgba(255,201,0,.38)!important;
}
.brightness-settings-title>span:last-child{display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important}
.brightness-settings-title strong{font-size:12px!important;font-weight:750!important;color:#2b2b2b!important;line-height:1.2!important}
.brightness-settings-title small{font-size:9.5px!important;font-weight:500!important;color:#8a867f!important;line-height:1.25!important}
.brightness-setting-row{
  display:block!important;
  margin:0 0 8px!important;
  padding:10px!important;
  border:1px solid #eceae4!important;
  border-radius:11px!important;
  background:#fafaf8!important;
  transition:background .16s ease,border-color .16s ease!important;
}
.brightness-setting-row:last-child{margin-bottom:0!important}
.brightness-setting-row:hover{background:#fff!important;border-color:#e1ddd3!important}
.brightness-setting-row>.brightness-setting-label{
  display:flex!important;flex-direction:column!important;gap:2px!important;
  margin:0 0 8px!important;color:inherit!important;
}
.brightness-setting-label b{font-size:10.5px!important;font-weight:700!important;color:#4d4942!important;line-height:1.2!important}
.brightness-setting-label small{font-size:8.8px!important;font-weight:500!important;color:#99948c!important;line-height:1.2!important}
.brightness-setting-row>div{grid-template-columns:minmax(0,1fr) 48px 26px!important;gap:8px!important}
.brightness-setting-row output{
  min-width:48px!important;padding:3px 5px!important;border-radius:6px!important;background:#f0eee8!important;
  color:#5f5b54!important;font-size:10px!important;font-weight:700!important;text-align:center!important;
  font-variant-numeric:tabular-nums!important;
}
.brightness-setting-row .brightness-reset{
  width:26px!important;height:26px!important;border-radius:7px!important;background:#f0eee8!important;color:#716d64!important;
}
.brightness-setting-row .brightness-reset:hover{background:#fff0a8!important;color:#5e4d00!important}
.brightness-color-row input[type="color"]{
  width:100%!important;height:28px!important;padding:0!important;border:0!important;border-radius:7px!important;
  background:#eceae4!important;overflow:hidden!important;cursor:pointer!important;
}
.brightness-color-row input[type="color"]::-webkit-color-swatch-wrapper{padding:3px!important}
.brightness-color-row input[type="color"]::-webkit-color-swatch{border:0!important;border-radius:5px!important}
.brightness-color-row input[type="color"]::-moz-color-swatch{border:0!important;border-radius:5px!important}
.brightness-setting-row input[type="range"]::-webkit-slider-runnable-track{height:4px!important;background:#d9d7d1!important}
.brightness-setting-row input[type="range"]::-webkit-slider-thumb{
  width:14px!important;height:14px!important;margin-top:-5px!important;border:0!important;background:#ffc900!important;
  box-shadow:0 0 0 1px rgba(91,75,0,.18),0 2px 5px rgba(0,0,0,.12)!important;
}
.brightness-setting-row input[type="range"]::-moz-range-track{height:4px!important;background:#d9d7d1!important}
.brightness-setting-row input[type="range"]::-moz-range-thumb{
  width:14px!important;height:14px!important;border:0!important;background:#ffc900!important;
  box-shadow:0 0 0 1px rgba(91,75,0,.18),0 2px 5px rgba(0,0,0,.12)!important;
}
/* Do not show browser/tabindex focus borders in this panel. */
.brightness-settings :is(button,input,select,textarea,[tabindex]):focus,
.brightness-settings :is(button,input,select,textarea,[tabindex]):focus-visible,
.viewer-brightness-control .brightness-toggle:focus,
.viewer-brightness-control .brightness-toggle:focus-visible{
  outline:none!important;
  box-shadow:none!important;
}
.brightness-settings input[type="range"]:focus::-webkit-slider-thumb,
.brightness-settings input[type="range"]:focus-visible::-webkit-slider-thumb{
  outline:none!important;
  box-shadow:0 0 0 1px rgba(91,75,0,.18),0 2px 5px rgba(0,0,0,.12)!important;
}
.brightness-settings input[type="range"]:focus::-moz-range-thumb,
.brightness-settings input[type="range"]:focus-visible::-moz-range-thumb{
  outline:none!important;
  box-shadow:0 0 0 1px rgba(91,75,0,.18),0 2px 5px rgba(0,0,0,.12)!important;
}
@media(max-width:900px){.brightness-settings{width:min(318px,88vw)!important;right:-4px!important}}

/* v1.10.38 — bottom lighting + official That Open shadow toggle, shadow tuning moved to top toolbar. */
.viewer-brightness-control .brightness-toggle > span:last-child{white-space:nowrap!important}
.viewer-shadow-control{display:inline-flex!important;align-items:center!important;height:28px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.viewer-shadow-control>#shadow-toggle{
  height:28px!important;min-height:28px!important;padding:0 9px!important;display:inline-flex!important;align-items:center!important;gap:5px!important;
  border:1px solid #dedbd3!important;border-radius:8px!important;background:#fff!important;color:#68645d!important;font-size:11px!important;font-weight:600!important;line-height:1!important;cursor:pointer!important;box-shadow:none!important
}
.viewer-shadow-control>#shadow-toggle:hover{background:#f8f8f6!important;color:#484640!important}
.viewer-shadow-control>#shadow-toggle.active,.viewer-shadow-control>#shadow-toggle[aria-pressed="true"]{background:#fff7cf!important;border-color:#d6b300!important;color:#5e4d00!important}
.viewer-shadow-control>#shadow-toggle svg{width:14px!important;height:14px!important}
.viewer-shadow-control>#shadow-toggle:focus,.viewer-shadow-control>#shadow-toggle:focus-visible{outline:none!important;box-shadow:none!important}
#shadow-settings-toolbar.active,#shadow-settings-toolbar[aria-pressed="true"]{background:#fff7cf!important;color:#5e4d00!important}
#shadow-settings-toolbar:focus,#shadow-settings-toolbar:focus-visible{outline:none!important;box-shadow:none!important}
#shadow-settings{
  position:fixed!important;
  left:auto!important;
  bottom:auto!important;
  z-index:2147483000!important;
  max-height:calc(100vh - 110px)!important;
  overflow:auto!important;
}

/* v1.10.41 — exact bottom toolbar order. Overrides legacy order:99/100 rules. */
.viewer-bottom-actions > .viewer-shadow-control{order:1!important;margin-left:0!important}
.viewer-bottom-actions > .viewer-brightness-control{order:2!important;margin-left:0!important}
.viewer-bottom-actions > #toggle-edges{order:3!important;margin-left:0!important}
.viewer-bottom-actions > #toggle-grid{order:4!important;margin-left:0!important}
.viewer-bottom-actions > #toggle-property-panel{order:5!important;margin-left:0!important}
.viewer-bottom-actions > #toggle-model-panel{order:6!important;margin-left:0!important}

/* v1.10.46 — BIM-first wording hero fit */
@media (min-width: 901px){.auth-copy{max-width:760px}.auth-copy h1{font-size:clamp(42px,4.25vw,66px);line-height:1.04;letter-spacing:-.05em}.auth-copy h1 .auth-hero-line{white-space:nowrap;display:inline-block}}

/* v1.10.47 auth-area-only UI refinements */
.step-label{margin-bottom:14px}.login-card>p{white-space:normal}.orbit-cube{top:135px}.login-card .primary-btn:disabled,.login-card .primary-btn.disabled{opacity:.55;pointer-events:none;filter:saturate(.8);box-shadow:none}.terms-list{margin:14px 0 0;padding-left:18px;color:#66625b;display:grid;gap:8px;font-size:14px;line-height:1.65}.terms-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.atool-terms-dialog .primary-btn{min-width:130px}.atool-terms-dialog .secondary-btn{min-width:90px}.login-meta .check{white-space:normal}.login-meta-actions{gap:12px}.auth-switch{margin-top:16px}@media(max-width:640px){.terms-actions{flex-direction:column}.atool-terms-dialog .primary-btn,.atool-terms-dialog .secondary-btn{width:100%;justify-content:center}}


/* v1.10.52 — Cấu trúc tab only. Compact IFC spatial tree inspired by BIM tree viewers. */
#spatial-tree{padding:0 0 10px!important;overflow:auto!important;background:#fff!important}
#spatial-tree .bv-tree-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:7px 9px;border-bottom:1px solid #eceae4;background:#fff}
#spatial-tree .bv-tree-toolbar strong{font-size:11.5px;color:#333;font-weight:700}
#spatial-tree .bv-tree-toolbar span{font-size:9.5px;color:#999;white-space:nowrap}
#spatial-tree .bv-tree-head{display:none!important}
#spatial-tree .bv-tree-row{display:grid!important;grid-template-columns:18px minmax(0,1fr) 24px!important;align-items:center!important;min-height:28px!important;height:28px!important;padding:0 4px 0 calc(4px + var(--level,0) * 12px)!important;border:0!important}
#spatial-tree .bv-tree-row:hover{background:#f7f7f4!important}
#spatial-tree .bv-tree-toggle{width:18px!important;height:26px!important;min-width:18px!important;padding:0!important;border:0!important;background:transparent!important;color:#7f8790!important;font-size:11px!important;display:grid!important;place-items:center!important}
#spatial-tree .bv-tree-toggle.empty{opacity:.18!important}
#spatial-tree .bv-tree-select{height:26px!important;min-height:26px!important;min-width:0!important;padding:0 4px!important;border:0!important;border-radius:4px!important;background:transparent!important;color:#333!important;display:flex!important;align-items:center!important;gap:5px!important;text-align:left!important;overflow:hidden!important;outline:0!important;box-shadow:none!important}
#spatial-tree .bv-tree-select:focus,#spatial-tree .bv-tree-select:focus-visible,#spatial-tree .bv-tree-toggle:focus,#spatial-tree .bv-tree-toggle:focus-visible,#spatial-tree .bv-tree-eye:focus,#spatial-tree .bv-tree-eye:focus-visible{outline:0!important;box-shadow:none!important}
#spatial-tree .bv-tree-select.active{background:#fff3b8!important;box-shadow:inset 2px 0 #ffc900!important}
#spatial-tree .bv-tree-select strong{display:block!important;flex:0 1 auto!important;min-width:0!important;color:#363b40!important;font-size:11px!important;font-weight:600!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#spatial-tree .bv-tree-kind{flex:0 0 auto;color:#818b95;font-size:9.5px;font-weight:500;line-height:1;white-space:nowrap}
#spatial-tree .bv-tree-count{flex:0 0 auto;color:#8c96a0;font-size:9px;font-weight:500;white-space:nowrap}
#spatial-tree .bv-tree-eye{width:24px!important;height:26px!important;min-width:24px!important;padding:0!important;border:0!important;background:transparent!important;color:#7b8793!important;display:grid!important;place-items:center!important;outline:0!important;box-shadow:none!important}
#spatial-tree .bv-tree-eye svg{width:13px!important;height:13px!important}
#spatial-tree .bv-tree-eye.off{opacity:.35!important;color:#a9afb5!important}
#spatial-tree .bv-tree-children{margin:0!important;padding:0!important}
#spatial-tree .panel-placeholder{margin:10px!important}

/* v1.10.52 — rich BIM structure tree only. */
#spatial-tree .panel-placeholder{padding:14px 10px;color:#8a8a8a;font-size:11px}
#spatial-tree .bv-tree-branch[data-branch-id]>.bv-tree-row .bv-tree-kind{max-width:96px;overflow:hidden;text-overflow:ellipsis}
#spatial-tree .bv-tree-count{font-variant-numeric:tabular-nums}

/* v1.10.53 — Structure Ghost button, isolated to the Cấu trúc tree. */
#spatial-tree .bv-tree-row{grid-template-columns:18px minmax(0,1fr) 24px 24px!important}
#spatial-tree .bv-tree-ghost{width:24px!important;height:26px!important;min-width:24px!important;padding:0!important;border:0!important;background:transparent!important;color:#7b8793!important;display:grid!important;place-items:center!important;outline:0!important;box-shadow:none!important;border-radius:5px!important}
#spatial-tree .bv-tree-ghost svg{width:13px!important;height:13px!important}
#spatial-tree .bv-tree-ghost:hover{background:#f0f2f3!important;color:#56616c!important}
#spatial-tree .bv-tree-ghost.active{color:#806600!important;background:#fff1a6!important}
#spatial-tree .bv-tree-ghost:focus,#spatial-tree .bv-tree-ghost:focus-visible{outline:0!important;box-shadow:none!important}

/* v1.10.54 — Structure isolate filter button; no Ghost material. */
#spatial-tree .bv-tree-filter{width:24px!important;height:26px!important;min-width:24px!important;padding:0!important;border:0!important;background:transparent!important;color:#7b8793!important;display:grid!important;place-items:center!important;outline:0!important;box-shadow:none!important;border-radius:5px!important}
#spatial-tree .bv-tree-filter svg{width:13px!important;height:13px!important}
#spatial-tree .bv-tree-filter:hover{background:#f0f2f3!important;color:#56616c!important}
#spatial-tree .bv-tree-filter.active{color:#806600!important;background:#fff1a6!important}
#spatial-tree .bv-tree-filter:focus,#spatial-tree .bv-tree-filter:focus-visible{outline:0!important;box-shadow:none!important}


/* ===== ATool Open BIM v1.10.59 — viewer layout/navigation UI only ===== */
/* The model canvas always consumes every pixel left after the optional floating panels. */
.viewer-workspace{height:100%!important;min-height:0!important;overflow:hidden!important}
.viewer-layout{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;overflow:hidden!important}
.viewer-layout>.viewer-canvas{top:0!important;bottom:0!important;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important}
.viewer-layout:not(.has-model-panel)>.viewer-canvas{left:0!important}
.viewer-layout:not(.has-views-panel)>.viewer-canvas{right:0!important}
.viewer-layout>.viewer-canvas>.atool-thatopen-viewport,
.viewer-layout>.viewer-canvas>.atool-thatopen-viewport>canvas{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}

/* Compact one-line viewer header to maximize model area. */
.viewer-dialog[open]{grid-template-rows:44px minmax(0,1fr) 40px!important}
.viewer-top{height:44px!important;min-height:44px!important;padding:0 10px 0 12px!important;gap:8px!important}
.viewer-top>div:first-child{display:flex!important;align-items:center!important;min-width:0!important;flex:1 1 auto!important}
.viewer-top>div:first-child>.file-thumb{width:30px!important;height:30px!important;min-width:30px!important;border-radius:8px!important}
.viewer-top>div:first-child>span:last-child{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important;line-height:1!important}
#viewer-title{min-width:0!important;max-width:min(58vw,900px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#viewer-meta{margin:0!important;white-space:nowrap!important;flex:0 0 auto!important;color:#8b8881!important}
#viewer-meta:before{content:"·";margin-right:8px;color:#aaa69e}
.viewer-top>.close-btn{width:30px!important;height:30px!important;min-width:30px!important}

.shared-shell{grid-template-rows:44px minmax(0,1fr) 40px!important}
.shared-top{height:44px!important;min-height:44px!important;padding-top:0!important;padding-bottom:0!important;gap:10px!important}
.shared-top .brand{min-width:128px!important;gap:8px!important}
.shared-top .brand-mark{width:30px!important;height:30px!important;border-radius:8px!important}
.shared-top .brand>span:last-child{display:flex!important;align-items:center!important;gap:6px!important;white-space:nowrap!important}
.shared-top .brand small{margin-top:0!important;font-size:10px!important;letter-spacing:.08em!important}
.shared-title{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important;margin-right:auto!important}
.shared-title strong{min-width:0!important;max-width:min(48vw,700px)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.shared-title small{white-space:nowrap!important;flex:0 0 auto!important}
.shared-title small:before{content:"·";margin-right:8px;color:#aaa69e}
.readonly-badge{padding:5px 8px!important;font-size:11px!important}

/* Inactive bottom tools keep the same outlined-button language as Shadow / Lighting. */
.viewer-bottom-actions>#toggle-edges,
.viewer-bottom-actions>#toggle-grid,
.viewer-bottom-actions>#toggle-property-panel,
.viewer-bottom-actions>#toggle-model-panel,
#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel{
  border:1px solid #dedbd3!important;
  border-radius:8px!important;
  background:#fff!important;
}
#toggle-edges:hover,#toggle-grid:hover,#toggle-property-panel:hover,#toggle-model-panel:hover{background:#f8f8f6!important;color:#484640!important}
#toggle-edges.active,#toggle-grid.active,#toggle-property-panel.active,#toggle-model-panel.active{
  color:#514000!important;border-color:#e7c842!important;background:#fff4b7!important
}

/* Touch canvas must own mobile gestures; desktop mouse bindings are unchanged in JS. */
#viewer-canvas>.atool-thatopen-viewport,
#viewer-canvas>.atool-thatopen-viewport>canvas{touch-action:none!important}

@media(max-width:900px){
  .viewer-dialog[open]{grid-template-rows:42px minmax(0,1fr) 40px!important}
  .viewer-top{height:42px!important;min-height:42px!important;padding-left:8px!important}
  .viewer-top>div:first-child>.file-thumb{width:28px!important;height:28px!important;min-width:28px!important}
  #viewer-meta{display:none!important}
  .shared-shell{grid-template-rows:42px minmax(0,1fr) 40px!important}
  .shared-top{height:42px!important;min-height:42px!important;padding-left:8px!important;padding-right:8px!important}
  .shared-title small{display:none!important}
}


/* ===== ATool Open BIM v1.10.60 — header / fullscreen / mobile / 2D ViewCube UI only ===== */
/* Real fullscreen keeps the same compact header spacing as the normal viewer. */
.viewer-dialog:fullscreen[open]{grid-template-rows:44px minmax(0,1fr) 40px!important}
.shared-shell:fullscreen{grid-template-rows:44px minmax(0,1fr) 40px!important}
.shared-shell:fullscreen .shared-main{padding:0!important;gap:0!important}
.shared-shell:fullscreen .shared-canvas{border:0!important;border-radius:0!important}

/* Shared-link header: one visual text height and a vertical separator after OPEN BIM. */
.shared-top .brand{min-width:0!important;gap:8px!important;flex:0 0 auto!important}
.shared-top .brand>span:last-child{display:flex!important;align-items:center!important;gap:7px!important;line-height:1!important}
.shared-top .brand strong,
.shared-top .brand small{font-size:14px!important;line-height:1!important;margin:0!important;letter-spacing:0!important;white-space:nowrap!important}
.shared-top .brand small{font-weight:500!important;color:#77756f!important}
.shared-top .brand>span:last-child:after{content:"|";display:inline-block;color:#bbb6ad!important;font-size:14px!important;font-weight:400!important;line-height:1!important;margin-left:2px!important}
.shared-top .shared-title{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important;margin-right:auto!important}
.shared-top .shared-title strong,
.shared-top .shared-title small{font-size:14px!important;line-height:1!important;margin:0!important;white-space:nowrap!important}
.shared-top .shared-title small:before{content:none!important;margin:0!important}

/* The elevation text existed in the Plan DOM but an older global rule hid all view subtitles. */
.views-panel #plan-view-list .view-item small{display:block!important;line-height:1.15!important}
.views-panel #plan-view-list .view-item{min-height:44px!important}

/* Every ViewCube action is visibly and physically locked in Plan/Elevation/Section views. */
#view-cube.cube-locked-2d11060{opacity:.62!important}
#view-cube.cube-locked-2d11060 button{pointer-events:none!important;cursor:default!important}

/* Mobile toolbar: keep the Full icon visible even though generic mobile rules hide button spans. */
#fullscreen-view .fullscreen-enter-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important}
#fullscreen-view .fullscreen-exit-icon{display:none!important}
:fullscreen #fullscreen-view .fullscreen-enter-icon,
.viewer-dialog:fullscreen #fullscreen-view .fullscreen-enter-icon,
.shared-shell:fullscreen #fullscreen-view .fullscreen-enter-icon{display:none!important}
:fullscreen #fullscreen-view .fullscreen-exit-icon,
.viewer-dialog:fullscreen #fullscreen-view .fullscreen-exit-icon,
.shared-shell:fullscreen #fullscreen-view .fullscreen-exit-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important}

@media(max-width:900px){
  .viewer-dialog:fullscreen[open]{grid-template-rows:42px minmax(0,1fr) 40px!important}
  .shared-shell:fullscreen{grid-template-rows:42px minmax(0,1fr) 40px!important}
}


/* ===== ATool Open BIM v1.10.62 — typography / focus only ===== */
/* Viewer file metadata uses exactly the same visual text height as the file name. */
#viewer-title,#viewer-meta{font-size:14px!important;line-height:1!important}
#viewer-meta{font-weight:500!important}

/* Product requirement: never draw browser/tab focus rings around website controls.
   Repeated impossible :not(#id) selectors deliberately give this final override enough
   specificity to beat older component-level focus-visible rules without altering normal borders. */
*:not(#atool-focus-ring-never):not(#atool-focus-ring-never):not(#atool-focus-ring-never):focus,
*:not(#atool-focus-ring-never):not(#atool-focus-ring-never):not(#atool-focus-ring-never):focus-visible{
  outline:0!important;
  box-shadow:none!important;
}
:where(button,a,input,select,textarea,[role="button"],[tabindex]){-webkit-tap-highlight-color:transparent}


/* ATool v1.10.103 - Material ViewCube; CSS-only update for v1.10.102. */
/* ViewCube visual refresh only. Camera, layout and hit areas remain unchanged. */
#view-cube.revit-viewcube .cube-face{
  border-radius:3px!important;
  border-color:#b8bec5!important;
  background:#f3f5f7!important;
  color:#49515b!important;
  box-shadow:inset 0 1px 0 #ffffff, inset 0 -1px 2px #2632380d!important;
  transition:background-color .14s ease,border-color .14s ease!important;
}
#view-cube.revit-viewcube .cube-top{background:#fafbfc!important}
#view-cube.revit-viewcube .cube-right,
#view-cube.revit-viewcube .cube-left{background:#e8edf1!important}
#view-cube.revit-viewcube .cube-face:hover{
  background:#fff7d6!important;
  border-color:#d3b442!important;
}
#view-cube.revit-viewcube .cube-face-center{
  border-radius:3px!important;
  color:#49515b!important;
  font-weight:700!important;
  transition:background-color .14s ease,color .14s ease!important;
}
#view-cube.revit-viewcube .cube-face-center:hover,
#view-cube.revit-viewcube .cube-hotspot:hover{
  background:#ffe58a!important;
  color:#493c13!important;
  box-shadow:inset 0 0 0 1px #d3b44280!important;
}
#view-cube.revit-viewcube .cube-home,
#view-cube.revit-viewcube .cube-projection-toggle{
  border-radius:7px!important;
  color:#59636f!important;
  transition:background-color .14s ease,color .14s ease!important;
}
#view-cube.revit-viewcube .cube-home:hover,
#view-cube.revit-viewcube .cube-projection-toggle:hover{
  background:#fff1b8!important;
  color:#554515!important;
}
#view-cube.revit-viewcube button:focus-visible{
  outline:2px solid #b88b00!important;
  outline-offset:1px!important;
}
@media(prefers-reduced-motion:reduce){
  #view-cube.revit-viewcube .cube-face,
  #view-cube.revit-viewcube button{transition:none!important}
}

/* v1.10.104 - responsive viewer presentation only; existing state classes retained. */
@media(max-width:900px){
 .viewer-dialog{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;inset:0!important;border-radius:0!important}
 .viewer-dialog[open],.viewer-dialog:fullscreen[open],.viewer-dialog.viewer-pseudo-fullscreen[open],.shared-shell,.shared-shell:fullscreen{grid-template-rows:48px minmax(0,1fr) 70px!important}
 .shared-shell{height:100dvh!important;min-height:0!important;overflow:hidden!important}
 .viewer-top,.shared-top{height:48px!important;min-height:48px!important;padding:0 max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left))!important}
 .viewer-top>.close-btn{width:40px!important;height:40px!important;min-width:40px!important}
 #viewer-title,.shared-title strong{max-width:none!important;font-size:13px!important;line-height:1.25!important}
 .shared-title{flex:1 1 auto!important;overflow:hidden!important}
 .shared-top-actions{flex:0 0 auto!important}
 .shared-main{padding:0!important;min-height:0!important}
 .viewer-workspace{display:grid!important;grid-template-rows:52px minmax(0,1fr)!important}
 .viewer-commandbar{height:52px!important;min-height:52px!important;padding:4px max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left))!important;gap:6px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin;overscroll-behavior-x:contain}
 .viewer-commandbar>.command-group{flex:0 0 auto!important;gap:4px!important}
 .viewer-commandbar button,.viewer-commandbar .command-download{width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;border-radius:9px!important}
 .viewer-commandbar select{height:42px!important;min-height:42px!important;min-width:82px!important;font-size:13px!important}
 .viewer-layout.has-model-panel>.viewer-canvas,.viewer-layout.has-views-panel>.viewer-canvas{left:0!important;right:0!important}
 .viewer-layout>.model-panel,.viewer-layout>.views-panel{top:8px!important;bottom:8px!important;width:min(360px,calc(100% - 16px))!important;max-width:calc(100% - 16px)!important;min-height:0!important;border-radius:12px!important}
 .viewer-layout>.model-panel{left:8px!important;right:auto!important}
 .viewer-layout>.views-panel{right:8px!important;left:auto!important}
 .model-panel .panel-head-title,.views-panel .views-panel-head{min-height:46px!important;height:46px!important;padding:0 10px!important}
 .panel-quick-close1986{width:40px!important;height:40px!important;min-width:40px!important}
 .model-panel .panel-tabs.bimviewer-tabs{height:46px!important;min-height:46px!important}
 .model-panel .panel-tabs.bimviewer-tabs button{min-height:34px!important;font-size:12px!important}
 .model-panel .panel-search input{font-size:16px!important}
 .model-panel .property-row{min-height:36px!important}
 .model-panel .property-row dt,.model-panel .property-row dd{overflow-wrap:anywhere!important;min-width:0!important}
 .model-panel .category-row,.model-panel .bv-tree-row{min-height:40px!important}
 .model-panel .bv-tree-toggle,.model-panel .bv-tree-eye,.model-panel .bv-tree-ghost,.model-panel .bv-tree-filter{min-height:34px!important;height:34px!important}
 .views-panel .view-item,.views-panel .view-quick-3d,.views-panel .view-group-head{min-height:44px!important}
 .model-panel #bim-properties,.model-panel #category-list,.model-panel #spatial-tree,.views-panel .view-list{overscroll-behavior:contain;scrollbar-width:thin}
 .viewer-dialog .viewer-info,.shared-shell>.shared-viewer-footer{height:70px!important;min-height:70px!important;display:flex!important;flex-direction:column-reverse!important;align-items:stretch!important;justify-content:center!important;gap:2px!important;padding:3px max(8px,env(safe-area-inset-right)) max(3px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;box-sizing:border-box!important;overflow:visible!important}
 .viewer-info>#viewer-stats,.shared-viewer-footer>#viewer-stats{display:block!important;flex:0 0 16px!important;min-width:0!important;font-size:10px!important;line-height:16px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
 .viewer-bottom-actions{display:flex!important;flex:0 0 44px!important;width:100%!important;min-width:0!important;max-width:100%!important;justify-content:flex-start!important;gap:6px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;overscroll-behavior-x:contain}
 .viewer-bottom-actions>*,.viewer-bottom-actions button{flex-shrink:0!important}
 .viewer-bottom-actions button{min-height:40px!important;height:40px!important;border-radius:9px!important}
 .viewer-bottom-actions .shadow-settings,.viewer-bottom-actions .brightness-settings{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:76px!important;width:auto!important;max-width:none!important;max-height:calc(100dvh - 140px)!important;overflow-y:auto!important;z-index:100!important}
 .viewer-canvas #section-panel,.viewer-canvas #section-box-panel,.viewer-canvas .selection-volume-panel{left:8px!important;right:8px!important;bottom:8px!important;width:auto!important;max-width:calc(100% - 16px)!important;max-height:min(55dvh,320px)!important;overflow-y:auto!important;box-sizing:border-box!important}
 .viewer-canvas .measure-hud{max-width:calc(100% - 16px)!important;overflow-wrap:anywhere!important}
 .viewer-loading .loading-card{width:min(440px,calc(100% - 24px))!important;min-width:0!important;max-height:calc(100% - 24px)!important;overflow-y:auto!important;padding:18px 14px!important;box-sizing:border-box!important}
 .viewer-loading .loading-status,.viewer-loading .loading-meta{white-space:normal!important;overflow-wrap:anywhere!important}
}
@media(max-width:600px){
 /* Both panels remain accessible without overlapping each other. Hidden states remain intact. */
 .viewer-layout:has(>.model-panel:not(.panel-hidden)):has(>.views-panel:not(.panel-hidden))>.model-panel{top:8px!important;bottom:calc(50% + 4px)!important;left:8px!important;width:calc(100% - 16px)!important}
 .viewer-layout:has(>.model-panel:not(.panel-hidden)):has(>.views-panel:not(.panel-hidden))>.views-panel{top:calc(50% + 4px)!important;bottom:8px!important;right:8px!important;width:calc(100% - 16px)!important}
 .viewer-canvas #view-cube.revit-viewcube{transform:scale(.8)!important;transform-origin:top right!important;right:6px!important;top:6px!important}
}
@media(max-width:900px) and (max-height:500px){
 .viewer-dialog[open],.viewer-dialog:fullscreen[open],.viewer-dialog.viewer-pseudo-fullscreen[open],.shared-shell,.shared-shell:fullscreen{grid-template-rows:40px minmax(0,1fr) 58px!important}
 .viewer-top,.shared-top{height:40px!important;min-height:40px!important}
 .viewer-workspace{grid-template-rows:46px minmax(0,1fr)!important}
 .viewer-commandbar{height:46px!important;min-height:46px!important;padding-top:2px!important;padding-bottom:2px!important}
 .viewer-dialog .viewer-info,.shared-shell>.shared-viewer-footer{height:58px!important;min-height:58px!important;gap:0!important;padding-top:0!important}
 .viewer-bottom-actions{flex-basis:40px!important}
 .viewer-bottom-actions .shadow-settings,.viewer-bottom-actions .brightness-settings{bottom:64px!important;max-height:calc(100dvh - 108px)!important}
}
@media(min-width:601px) and (max-width:900px){
 .viewer-layout:has(>.model-panel:not(.panel-hidden)):has(>.views-panel:not(.panel-hidden))>.model-panel,
 .viewer-layout:has(>.model-panel:not(.panel-hidden)):has(>.views-panel:not(.panel-hidden))>.views-panel{width:min(360px,calc(50% - 12px))!important}
}

/* v1.10.105 - mobile dock and loading presentation only. */
@media(max-width:900px){
 .viewer-dialog[open],.viewer-dialog:fullscreen[open],.viewer-dialog.viewer-pseudo-fullscreen[open],.shared-shell,.shared-shell:fullscreen{grid-template-rows:48px minmax(0,1fr) calc(84px + env(safe-area-inset-bottom))!important}
 .viewer-dialog .viewer-info,.shared-shell>.shared-viewer-footer{height:calc(84px + env(safe-area-inset-bottom))!important;min-height:calc(84px + env(safe-area-inset-bottom))!important;padding:4px max(6px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important;gap:2px!important;background:#fff!important;border-top:1px solid #e3e7ec!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;align-items:stretch!important;gap:3px!important;flex:0 0 58px!important;height:58px!important;min-height:58px!important;overflow:visible!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-shadow-control,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-brightness-control{width:100%!important;min-width:0!important;display:block!important;height:100%!important;min-height:100%!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel),:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-shadow-control>#shadow-toggle,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-brightness-control>#brightness-toggle{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;width:100%!important;min-width:0!important;max-width:100%!important;height:58px!important;min-height:58px!important;padding:5px 1px!important;font-size:9.5px!important;line-height:1.15!important;border-radius:10px!important;box-sizing:border-box!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel)>span,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle>span,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle>span{display:block!important;white-space:nowrap!important;font-size:9.5px!important;line-height:1.15!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel)>svg,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle>svg{width:19px!important;height:19px!important;flex:0 0 19px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle>.brightness-icon{font-size:21px!important;line-height:19px!important;height:19px!important}
 .viewer-info>#viewer-stats,.shared-viewer-footer>#viewer-stats{text-align:center!important;font-size:10px!important;flex-basis:16px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions .shadow-settings,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions .brightness-settings{bottom:calc(90px + env(safe-area-inset-bottom))!important;max-height:calc(100dvh - 152px - env(safe-area-inset-bottom))!important}
 .viewer-canvas .viewer-loading{padding:12px!important;box-sizing:border-box!important}
 .viewer-canvas .viewer-loading .loading-card{display:flex!important;flex-direction:column!important;align-items:center!important;gap:0!important;width:min(420px,100%)!important;min-width:0!important;max-width:100%!important;max-height:100%!important;margin:0!important;padding:18px 16px!important;border-radius:18px!important;overflow-y:auto!important;overflow-x:hidden!important;text-align:center!important;box-sizing:border-box!important}
 .viewer-loading .loading-mark.loading-logo-mark{width:44px!important;height:44px!important;min-height:44px!important;border-radius:13px!important;flex-shrink:0!important}
 .viewer-loading .loading-logo-mark img{width:26px!important;height:26px!important}
 .viewer-loading .loading-kicker{font-size:10px!important;letter-spacing:.08em!important;margin:9px 0 0!important;flex-shrink:0!important}
 .viewer-loading .loading-status{width:100%!important;font-size:13px!important;line-height:1.45!important;min-height:0!important;margin-top:8px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;flex-shrink:0!important}
 .viewer-loading .loading-progress-row{display:flex!important;align-items:center!important;gap:8px!important;margin-top:12px!important;flex-shrink:0!important}
 .viewer-loading .loading-progress-row .loading-bar{flex:1 1 auto!important;min-width:0!important;height:7px!important;border-radius:999px!important}
 .viewer-loading .loading-progress-row #loading-percent{flex:0 0 auto!important;font-size:12px!important}
 .viewer-loading .loading-meta{display:flex!important;width:100%!important;font-size:10px!important;line-height:1.45!important;margin-top:9px!important;white-space:normal!important;overflow-wrap:anywhere!important;flex-shrink:0!important}
 .viewer-loading .atool-live-progress1900{width:100%!important;min-height:0!important;flex:1 1 auto!important;margin-top:12px!important;padding-top:10px!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-width:thin}
 .viewer-loading .atool-live-progress-list1900{display:grid!important;grid-template-columns:1fr!important;gap:5px!important}
 .viewer-loading .atool-live-progress-step1900{padding:7px 8px!important;min-height:42px!important;border-radius:9px!important}
 .viewer-loading .atool-live-progress-step1900 b{font-size:11px!important;line-height:1.35!important;white-space:normal!important;overflow-wrap:anywhere!important}
 .viewer-loading .atool-live-progress-step1900 span{font-size:10px!important;line-height:1.35!important;white-space:normal!important;overflow-wrap:anywhere!important}
}
@media(max-width:900px) and (max-height:500px){
 .viewer-dialog[open],.viewer-dialog:fullscreen[open],.viewer-dialog.viewer-pseudo-fullscreen[open],.shared-shell,.shared-shell:fullscreen{grid-template-rows:40px minmax(0,1fr) calc(68px + env(safe-area-inset-bottom))!important}
 .viewer-dialog .viewer-info,.shared-shell>.shared-viewer-footer{height:calc(68px + env(safe-area-inset-bottom))!important;min-height:calc(68px + env(safe-area-inset-bottom))!important;padding-top:2px!important;padding-bottom:calc(2px + env(safe-area-inset-bottom))!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions{flex-basis:46px!important;height:46px!important;min-height:46px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel),:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-shadow-control>#shadow-toggle,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-brightness-control>#brightness-toggle{height:46px!important;min-height:46px!important;gap:3px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions .shadow-settings,:is(.viewer-dialog,.shared-shell) .viewer-bottom-actions .brightness-settings{bottom:calc(74px + env(safe-area-inset-bottom))!important;max-height:calc(100dvh - 118px - env(safe-area-inset-bottom))!important}
 .viewer-canvas .viewer-loading{padding:8px!important}
 .viewer-canvas .viewer-loading .loading-card{padding:10px 14px!important}
 .viewer-loading .loading-mark.loading-logo-mark{width:30px!important;height:30px!important;min-height:30px!important;border-radius:9px!important}
 .viewer-loading .loading-logo-mark img{width:20px!important;height:20px!important}
 .viewer-loading .loading-kicker{margin-top:4px!important}
 .viewer-loading .loading-status{margin-top:4px!important;font-size:12px!important}
 .viewer-loading .loading-progress-row{margin-top:6px!important}
 .viewer-loading .loading-meta{margin-top:5px!important}
 .viewer-loading .atool-live-progress1900{margin-top:7px!important;padding-top:6px!important}
}
@media(max-width:900px){
 /* Keep loading readable above the floating information/view panels. */
 #viewer-canvas>.viewer-loading{z-index:80!important}
}

/* v1.10.106 - flexible mobile tools, dedicated GPU/RAM row; desktop unchanged. */
@media(max-width:900px){
 .viewer-dialog[open],.viewer-dialog:fullscreen[open],.viewer-dialog.viewer-pseudo-fullscreen[open],.shared-shell,.shared-shell:fullscreen{grid-template-rows:48px minmax(0,1fr) auto!important}
 .viewer-dialog .viewer-info,.shared-shell>.shared-viewer-footer{height:auto!important;min-height:0!important;flex-direction:column-reverse!important;align-items:stretch!important;justify-content:flex-start!important;gap:8px!important;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;grid-template-columns:none!important;flex:0 0 auto!important;width:100%!important;height:auto!important;min-height:0!important;gap:6px!important;margin:0!important;padding:0!important;overflow:visible!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-shadow-control,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-brightness-control{display:inline-flex!important;flex:0 0 auto!important;width:auto!important;height:auto!important;min-height:0!important;min-width:0!important;margin:0!important;padding:0!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel),
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-shadow-control>#shadow-toggle,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-brightness-control>#brightness-toggle{display:inline-flex!important;flex:0 0 auto!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;width:auto!important;max-width:100%!important;min-width:40px!important;height:36px!important;min-height:36px!important;padding:0 9px!important;margin:0!important;gap:5px!important;border-radius:8px!important;font-size:11px!important;line-height:1!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button>span,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle>span,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle>span{font-size:11px!important;line-height:1.15!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button>svg,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle>svg{width:16px!important;height:16px!important;flex:0 0 16px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle>.brightness-icon{height:16px!important;font-size:18px!important;line-height:16px!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats{display:flex!important;flex:0 0 auto!important;align-items:center!important;justify-content:flex-start!important;flex-wrap:nowrap!important;width:100%!important;min-width:0!important;height:auto!important;gap:6px!important;margin:0!important;padding:7px 0 0!important;border-top:1px solid #edf0f3!important;overflow:visible!important;text-align:left!important;white-space:normal!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .viewer-stat-chip{display:inline-flex!important;align-items:center!important;min-width:0!important;max-width:100%!important;min-height:26px!important;height:auto!important;margin:0!important;padding:4px 7px!important;gap:5px!important;box-sizing:border-box!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .stat-gpu{flex:1 1 auto!important;min-width:0!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .stat-ram{flex:0 0 auto!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .viewer-stat-chip small{flex:0 0 auto!important;font-size:9px!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .viewer-stat-chip b{min-width:0!important;max-width:none!important;font-size:10px!important;white-space:nowrap!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .stat-gpu b{overflow:hidden!important;text-overflow:ellipsis!important}
}
@media(max-width:900px) and (max-height:500px){
 .viewer-dialog[open],.viewer-dialog:fullscreen[open],.viewer-dialog.viewer-pseudo-fullscreen[open],.shared-shell,.shared-shell:fullscreen{grid-template-rows:40px minmax(0,1fr) auto!important}
 .viewer-dialog .viewer-info,.shared-shell>.shared-viewer-footer{height:auto!important;min-height:0!important;padding-top:5px!important;padding-bottom:calc(5px + env(safe-area-inset-bottom))!important;gap:5px!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats{padding-top:4px!important}
}
/* Settings are independent of dock height, including future additional tool rows. */
@media(max-width:900px){
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions .shadow-settings,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions .brightness-settings{top:58px!important;bottom:auto!important;max-height:calc(70dvh - 68px)!important}
}
@media(max-width:900px){
 .viewer-loading .atool-live-progress1900{min-height:44px!important}
}
@media(max-width:900px){
 :is(.viewer-dialog,.shared-shell) #viewer-stats{max-width:none!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:not(#toggle-edges):not(#toggle-grid):not(#toggle-property-panel):not(#toggle-model-panel){order:7!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button>span{display:inline-block!important}
}

/* v1.10.108 - loading width correction; no size containment. */
@media(max-width:900px){
 #viewer-loading .atool-live-progress-list1900{grid-template-columns:minmax(0,1fr)!important;grid-auto-flow:row!important;grid-auto-columns:minmax(0,1fr)!important;width:100%!important;min-width:0!important}
 #viewer-loading .atool-live-progress-list1900>.atool-live-progress-step1900:nth-child(n){grid-column:1 / -1!important;grid-row:auto!important;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
 #viewer-loading .atool-live-progress-step1900>div{min-width:0!important;max-width:100%!important}
 #viewer-loading .atool-live-progress-step1900 b,
 #viewer-loading .atool-live-progress-step1900 span{white-space:normal!important;overflow-wrap:anywhere!important;text-overflow:clip!important;height:auto!important}
}

@media(max-width:900px){
 #viewer-canvas>.viewer-loading{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}
 #viewer-loading .loading-card{justify-self:center!important;align-self:center!important;width:min(420px,100%)!important;min-width:0!important;max-width:100%!important;container-type:normal!important}
}

/* v1.10.109 - compact mobile loading, all steps visible without scrolling. */
@media(max-width:900px){
 #viewer-canvas>.viewer-loading{padding:8px!important}
 #viewer-loading .loading-card{padding:10px 12px!important;overflow:visible!important;max-height:none!important;border-radius:14px!important}
 #viewer-loading .loading-mark.loading-logo-mark{width:30px!important;height:30px!important;min-height:30px!important;border-radius:9px!important}
 #viewer-loading .loading-logo-mark img{width:19px!important;height:19px!important}
 #viewer-loading .loading-kicker{margin-top:4px!important;font-size:9px!important}
 #viewer-loading .loading-status{margin-top:4px!important;font-size:12px!important;line-height:1.3!important}
 #viewer-loading .loading-progress-row{margin-top:6px!important}
 #viewer-loading .loading-meta{margin-top:5px!important;font-size:9px!important;line-height:1.25!important}
 #viewer-loading .atool-live-progress1900{flex:0 0 auto!important;min-height:0!important;margin-top:7px!important;padding-top:6px!important;overflow:visible!important}
 #viewer-loading .atool-live-progress-list1900{gap:3px!important}
 #viewer-loading .atool-live-progress-step1900{min-height:0!important;padding:4px 6px!important;gap:6px!important;border-radius:6px!important}
 #viewer-loading .atool-live-progress-step1900>i{width:17px!important;height:17px!important;font-size:9px!important;border-radius:5px!important}
 #viewer-loading .atool-live-progress-step1900>div{gap:1px!important}
 #viewer-loading .atool-live-progress-step1900 b{font-size:10px!important;line-height:1.2!important}
 #viewer-loading .atool-live-progress-step1900 span{font-size:9px!important;line-height:1.15!important}
 #viewer-loading .atool-live-progress-meter1902{height:2px!important;margin-top:2px!important}
}
/* Short landscape screens: retain step order, use two columns to fit all eight. */
@media(max-width:900px) and (max-height:500px) and (min-width:600px){
 #viewer-loading .loading-card{width:min(650px,100%)!important;padding:7px 10px!important;display:grid!important;grid-template-columns:28px minmax(0,1fr)!important;gap:3px 8px!important;align-items:center!important}
 #viewer-loading .loading-mark.loading-logo-mark{grid-column:1!important;grid-row:1 / 3!important;width:26px!important;height:26px!important;min-height:26px!important}
 #viewer-loading .loading-kicker,#viewer-loading .loading-status{grid-column:2!important;margin:0!important;text-align:left!important}
 #viewer-loading .loading-progress-row,#viewer-loading .loading-meta,#viewer-loading .atool-live-progress1900{grid-column:1 / -1!important;margin-top:2px!important}
 #viewer-loading .atool-live-progress-list1900{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px 6px!important}
 #viewer-loading .atool-live-progress-list1900>.atool-live-progress-step1900:nth-child(n){grid-column:auto!important;padding:3px 5px!important}
 #viewer-loading .loading-meta{font-size:8px!important}
 #viewer-loading .atool-live-progress1900{padding-top:3px!important}
}
@media(max-width:900px){
 /* Use the screen while loading so panels and dock do not reduce the card's room. */
 #viewer-canvas>.viewer-loading{position:fixed!important;top:48px!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:auto!important;z-index:80!important}
}
@media(max-width:900px) and (max-height:500px){
 #viewer-canvas>.viewer-loading{top:40px!important}
}

/* v1.10.110 - centered loading mark and compact scrollable mobile dock. */
@media(max-width:900px){
 #viewer-loading .loading-mark.loading-logo-mark{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:1!important;box-sizing:border-box!important;overflow:hidden!important}
 #viewer-loading .loading-mark.loading-logo-mark img{display:block!important;position:static!important;inset:auto!important;margin:0!important;padding:0!important;transform:none!important;width:19px!important;height:19px!important;max-width:70%!important;max-height:70%!important;object-fit:contain!important;align-self:center!important;flex:0 0 auto!important}
 .viewer-dialog .viewer-info,.shared-shell>.shared-viewer-footer{padding:5px max(8px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;gap:4px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions{flex-wrap:nowrap!important;flex:0 0 32px!important;height:32px!important;min-height:32px!important;gap:5px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;overscroll-behavior-x:contain}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions::-webkit-scrollbar{display:none}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel),
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-shadow-control>#shadow-toggle,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>.viewer-brightness-control>#brightness-toggle{height:32px!important;min-height:32px!important;padding:0 8px!important;gap:4px!important;border-radius:7px!important;font-size:10px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button>span,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle>span,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle>span{font-size:10px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button>svg,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle>svg{width:14px!important;height:14px!important;flex-basis:14px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle>.brightness-icon{height:14px!important;font-size:16px!important;line-height:14px!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats{gap:5px!important;padding-top:3px!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .viewer-stat-chip{min-height:20px!important;height:20px!important;padding:2px 5px!important;gap:4px!important;border-radius:5px!important;line-height:1!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .viewer-stat-chip small{font-size:8px!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .viewer-stat-chip b{font-size:9px!important;line-height:1.1!important}
 :is(.viewer-dialog,.shared-shell) #viewer-stats .stat-gpu{flex:0 1 auto!important}
}

/* v1.10.111 - portrait tool labels: only the last clicked tool per toolbar. */
@media(max-width:900px) and (orientation:portrait),(pointer:coarse){
 :is(.viewer-dialog,.shared-shell) .viewer-commandbar button .tool-caption{display:none!important}
 :is(.viewer-dialog,.shared-shell) .viewer-commandbar button.mobile-tool-label111{width:auto!important;min-width:42px!important;padding:0 8px!important}
 :is(.viewer-dialog,.shared-shell) .viewer-commandbar button.mobile-tool-label111 .tool-caption{display:inline-flex!important;font-size:11px!important;white-space:nowrap!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(button,#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel)>span:not(.brightness-icon),
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle>span,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle>span:not(.brightness-icon){display:none!important}
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions>button:is(button,#toggle-edges,#toggle-grid,#toggle-property-panel,#toggle-model-panel).mobile-tool-label111>span:not(.brightness-icon),
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #shadow-toggle.mobile-tool-label111>span,
 :is(.viewer-dialog,.shared-shell) .viewer-bottom-actions #brightness-toggle.mobile-tool-label111>span:not(.brightness-icon){display:inline-block!important;white-space:nowrap!important}
}

/* v1.10.112 - portrait panels leave the upper model canvas available. */
@media(max-width:900px) and (orientation:portrait){
 .viewer-layout>.model-panel,
 .viewer-layout>.views-panel{
  top:auto!important;bottom:8px!important;left:8px!important;right:auto!important;
  width:calc(100% - 16px)!important;max-width:calc(100% - 16px)!important;
  height:44%!important;max-height:360px!important;min-height:0!important;
  border-radius:12px!important;min-width:0!important;
 }
 /* With both panels open they share the lower region instead of covering the model. */
 .viewer-layout:has(>.model-panel:not(.panel-hidden)):has(>.views-panel:not(.panel-hidden))>.model-panel{
  top:auto!important;bottom:8px!important;left:8px!important;right:auto!important;
  width:calc(50% - 12px)!important;max-width:calc(50% - 12px)!important;
  height:44%!important;max-height:360px!important;
 }
 .viewer-layout:has(>.model-panel:not(.panel-hidden)):has(>.views-panel:not(.panel-hidden))>.views-panel{
  top:auto!important;bottom:8px!important;left:auto!important;right:8px!important;
  width:calc(50% - 12px)!important;max-width:calc(50% - 12px)!important;
  height:44%!important;max-height:360px!important;
 }
 .model-panel .panel-head-title,.views-panel .views-panel-head{height:36px!important;min-height:36px!important;padding:0 6px!important;gap:4px!important}
 .model-panel .panel-head-title strong,.views-panel .views-panel-head strong{font-size:11px!important;white-space:normal!important;line-height:1.2!important}
 .model-panel .panel-title-icon,.views-panel .views-panel-head>span{width:20px!important;min-width:20px!important;height:20px!important}
 .model-panel .panel-title-icon svg,.views-panel .views-panel-head>span svg{width:13px!important;height:13px!important}
 :is(.model-panel,.views-panel) .panel-quick-close1986{width:28px!important;min-width:28px!important;height:30px!important;padding:0!important;flex:0 0 28px!important}
 .model-panel .panel-tabs.bimviewer-tabs{height:36px!important;min-height:36px!important;padding:3px!important;gap:1px!important}
 .model-panel .panel-tabs.bimviewer-tabs button{min-height:28px!important;padding:0 2px!important;font-size:9px!important;letter-spacing:-.2px!important}
 .model-panel .property-row{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:2px!important;padding:5px 6px!important;min-height:0!important}
 .model-panel .property-row dt,.model-panel .property-row dd{width:100%!important;font-size:11px!important;line-height:1.3!important;margin:0!important}
 .model-panel .property-title,.model-panel .property-set summary{font-size:11px!important}
 .model-panel .category-row{font-size:11px!important}
 .views-panel .view-list{padding:5px!important}
 .views-panel .view-group-head,.views-panel .view-item,.views-panel .view-quick-3d{padding:5px!important;font-size:11px!important;min-height:36px!important}
 .views-panel .view-group-head strong,.views-panel .view-item strong,.views-panel .view-quick-3d strong{font-size:11px!important;overflow-wrap:anywhere!important;white-space:normal!important}
 .views-panel .view-item small{font-size:10px!important}
}

/* v1.10.113 - one portrait scrollbar for every view group, no nested clipping. */
@media(max-width:900px) and (orientation:portrait){
 .viewer-layout>.views-panel>#view-list{
  display:flex!important;flex-direction:column!important;flex:1 1 auto!important;
  min-height:0!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;
  overscroll-behavior:contain!important;scrollbar-width:thin!important;
 }
 #view-list>.view-quick-3d{flex:0 0 auto!important}
 #view-list>.view-group[data-view-group]{
  flex:0 0 auto!important;height:auto!important;min-height:0!important;max-height:none!important;
 }
 #view-list>.view-group[data-view-group]>.view-group-head{flex:0 0 auto!important}
 #view-list>.view-group[data-view-group]>.view-group-body{
  flex:0 0 auto!important;height:auto!important;min-height:0!important;max-height:none!important;
  overflow:visible!important;
 }
 #view-list .view-item{height:auto!important;min-height:36px!important;flex:0 0 auto!important}
}

/* v1.10.114 - portrait tree actions fit the selection row. */
@media(max-width:900px) and (orientation:portrait){
 .model-panel #spatial-tree .bv-tree-row{height:36px!important;min-height:36px!important;align-items:center!important;padding-top:0!important;padding-bottom:0!important}
 .model-panel #spatial-tree .bv-tree-row :is(.bv-tree-select,.bv-tree-toggle,.bv-tree-eye,.bv-tree-filter,.bv-tree-ghost){
  height:32px!important;min-height:32px!important;max-height:32px!important;
  margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;
  align-self:center!important;box-sizing:border-box!important;
 }
}

/* v1.10.115 - dashboard footer only: account row then centered copyright. */
@media(max-width:900px){
 .app-shell>footer:has(>.account-license-footer){display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-height:0!important;padding:7px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important;overflow:visible!important}
 .app-shell>footer:has(>.account-license-footer)>span:first-child{display:block!important;order:2!important;width:100%!important;text-align:center!important;font-size:10px!important;line-height:1.3!important;margin:0!important}
 .app-shell>footer>.account-license-footer{display:flex!important;order:1!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;width:100%!important;max-width:100%!important;gap:2px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none}
 .app-shell>footer>.account-license-footer .license-tag{flex:0 0 auto!important;min-width:0!important;min-height:23px!important;margin:0!important;padding:3px 3px!important;border-radius:6px!important;font-size:clamp(8px,2.1vw,11px)!important;line-height:1.15!important;white-space:nowrap!important;letter-spacing:-.1px!important}
 .app-shell>footer>.account-license-footer .license-tag :is(strong,b){font-size:inherit!important}
}
@media(max-width:900px){
 .app-shell>footer>.account-license-footer{display:grid!important;grid-template-columns:.95fr 1.4fr 1.1fr 1.1fr .9fr!important;gap:3px!important;overflow:visible!important;align-items:stretch!important}
 .app-shell>footer>.account-license-footer .license-tag{display:block!important;width:100%!important;min-height:32px!important;padding:4px 2px!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:center!important;font-size:clamp(9px,2.45vw,11px)!important;line-height:1.25!important;box-sizing:border-box!important}
}

/* v1.10.116 - vertically centered dashboard account cards on mobile. */
@media(max-width:900px){
 .app-shell>footer>.account-license-footer .license-tag{display:block!important;align-content:center!important}
}

/* v1.10.117 - dropdown triangles rotate around their visual center. */
.views-panel .view-group-head>span:first-child,
.model-panel .display-filter-chevron,
.model-panel .bv-prop-left-marker1880{
 display:inline-grid!important;place-items:center!important;
 height:14px!important;min-height:14px!important;line-height:0!important;
 font-size:0!important;padding:0!important;margin-top:0!important;margin-bottom:0!important;
 align-self:center!important;transform-origin:50% 50%!important;
}
.views-panel .view-group-head>span:first-child,
.model-panel .display-filter-chevron{width:14px!important;min-width:14px!important}
.views-panel .view-group-head>span:first-child::before,
.model-panel .display-filter-chevron::before,
.model-panel .bv-prop-left-marker1880::before{
 content:"";display:block;width:0;height:0;
 border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;
}
/* v1.10.122 — isolated quantity table, desktop and mobile */
.quantity-panel122[hidden]{display:none!important}
.quantity-panel122{position:absolute;z-index:55;right:12px;top:12px;width:min(432px,calc(100% - 24px));max-height:calc(100% - 24px);display:flex;flex-direction:column;overflow:hidden;background:#101421;color:#e4e9f1;border:1px solid #424959;border-radius:16px;box-shadow:0 12px 40px #0005;font:12px/1.5 'Be Vietnam Pro',sans-serif;text-align:left;pointer-events:auto}
.quantity-panel122 *{box-sizing:border-box}
.quantity-panel122 header{display:flex;align-items:center;justify-content:space-between;flex:none;padding:12px 16px;border-bottom:1px solid #2a3040;gap:8px}
.quantity-panel122 header strong{font-size:13px;color:#e4e9f1}
.quantity-panel122 header>div{display:flex;gap:4px}
.quantity-panel122 button{font:inherit;color:inherit;cursor:pointer;border:1px solid transparent;box-shadow:none;background:transparent;min-width:0;min-height:0;line-height:1.3}
.quantity-panel122 header button{width:30px;height:30px;padding:0;border-radius:7px;font-size:20px}
.quantity-panel122 button:hover{background:#ffffff0c}
.quantity-panel122 button:focus-visible{outline:2px solid #50dfd6;outline-offset:-2px}
.quantity-panel122 .q122-tabs{flex:none;display:flex;margin:10px 14px 0;padding:3px;gap:3px;border-radius:11px;background:#1c2030}
.quantity-panel122 .q122-tabs button{flex:1;white-space:nowrap;padding:9px 4px;border-radius:9px;font-weight:600;font-size:12px}
.quantity-panel122 .q122-tabs button[aria-pressed=true]{color:#86e8df;background:#183e43;border-color:#139997}
.quantity-panel122 .q122-table{min-height:0;overflow:auto;overscroll-behavior:contain;margin:12px 12px 0;flex:1 1 auto;max-height:390px;scrollbar-width:thin;scrollbar-color:#596170 #131726}
.quantity-panel122 table{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed;font-size:11px;color:#e4e9f1;background:#0d1120}
.quantity-panel122 th,.quantity-panel122 td{padding:7px 6px;border:0;border-bottom:1px solid #292f40;text-align:right;vertical-align:middle;white-space:nowrap;font-variant-numeric:tabular-nums}
.quantity-panel122 th:first-child{width:51%;text-align:left;overflow:hidden;text-overflow:ellipsis}
.quantity-panel122 th:nth-child(2){width:14%}
.quantity-panel122 th:nth-child(3){width:35%}
.quantity-panel122 thead{position:sticky;top:0;z-index:1;background:#080d1b;text-transform:uppercase;color:#92a2ba}
.quantity-panel122 tbody th{font-weight:500}
.quantity-panel122 small{font-size:10px}
.quantity-panel122 tfoot{position:sticky;bottom:0;background:#070d1a;color:#8cece3;font-weight:700}
.quantity-panel122 .q122-empty{white-space:normal;text-align:center;padding:18px 8px;color:#a6b2c5}
.quantity-panel122 .q122-status{flex:none;padding:0;margin:10px 14px 0;color:#ffe47c;font-size:11px;line-height:1.6}
.quantity-panel122 .q122-note{flex:none;padding:0;margin:6px 14px 10px;color:#96a5bc;font-size:10px;line-height:1.6}
.quantity-panel122 .q122-export{flex:none;margin:0 14px 12px;padding:9px;border-radius:10px;border:1px solid #3b4353;font-weight:600}
.quantity-panel122 button:disabled{opacity:.45;cursor:default}
@media(max-width:900px){.quantity-panel122{top:8px;right:8px;width:min(400px,calc(100% - 16px));max-height:calc(100% - 16px);border-radius:12px}.quantity-panel122 header{padding:8px 12px}.quantity-panel122 .q122-tabs{margin:7px 10px 0}.quantity-panel122 .q122-table{margin:9px 8px 0}.quantity-panel122 .q122-status,.quantity-panel122 .q122-note{margin-left:10px;margin-right:10px}.quantity-panel122 .q122-export{margin:0 10px 9px}.quantity-panel122 .q122-tabs button{padding:8px 3px;font-size:11px}}
@media(max-height:500px){.quantity-panel122 header{padding:3px 10px}.quantity-panel122 .q122-tabs{margin-top:4px}.quantity-panel122 .q122-tabs button{padding:5px 3px}.quantity-panel122 .q122-table{margin-top:6px}.quantity-panel122 .q122-note{font-size:9px;line-height:1.35;margin-top:3px;margin-bottom:4px}.quantity-panel122 .q122-status{font-size:10px;margin-top:4px}.quantity-panel122 .q122-export{padding:5px;margin-bottom:6px}}
/* Keep all controls reachable in the short landscape workspace. */
@media(max-height:500px){.quantity-panel122 .q122-note{display:none}.quantity-panel122 header{padding:0 10px;min-height:28px}.quantity-panel122 header button{height:26px;width:26px}.quantity-panel122 .q122-tabs button{padding:4px 3px}.quantity-panel122 .q122-status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;margin-top:3px;margin-bottom:3px}.quantity-panel122 .q122-export{padding:4px;margin-bottom:4px}.quantity-panel122 th,.quantity-panel122 td{padding:5px 6px}}
.quantity-panel122 .q122-help{flex:none;margin:6px 14px 8px;font-size:10px;color:#96a5bc}
.quantity-panel122 .q122-help summary{cursor:pointer;padding:2px 0}
.quantity-panel122 .q122-help .q122-note{margin:5px 0 0;max-height:90px;overflow:auto}
@media(max-height:500px){#quantity-panel122 .q122-help{display:none}#quantity-panel122 header{height:28px;min-height:28px;padding:0 10px}#quantity-panel122 .q122-tabs{height:24px;padding:2px;margin-top:3px}#quantity-panel122 .q122-tabs button{padding:2px;font-size:10px;line-height:1.2}#quantity-panel122 .q122-status{font-size:9px;line-height:12px;margin-top:3px;margin-bottom:3px}#quantity-panel122 .q122-export{height:24px;padding:2px;margin-bottom:4px}#quantity-panel122 .q122-table{margin-top:5px}#quantity-panel122 th,#quantity-panel122 td{padding:4px 6px;font-size:10px;line-height:14px}}
/* v1.10.123: match the website's white surfaces and ATool yellow accent. */
#quantity-panel122{background:#fff;color:#232323;border-color:#e6e3db;box-shadow:0 12px 36px #23232326}
#quantity-panel122 header{background:#fffdf4;border-bottom-color:#e6e3db}
#quantity-panel122 header strong{color:#232323}
#quantity-panel122 button:hover{background:#f2efe5}
#quantity-panel122 button:focus-visible{outline-color:#c99e00}
#quantity-panel122 .q122-tabs{background:#f4f2eb}
#quantity-panel122 .q122-tabs button[aria-pressed=true]{background:#ffc900;color:#232323;border-color:#e0b800}
#quantity-panel122 table{background:#fff;color:#232323}
#quantity-panel122 th,#quantity-panel122 td{border-bottom-color:#eeeae1}
#quantity-panel122 thead{background:#f6f4ec;color:#77756f}
#quantity-panel122 tfoot{background:#fff5cc;color:#5d4800}
#quantity-panel122 .q122-empty{color:#77756f}
#quantity-panel122 .q122-status{color:#625b43;font-size:10px;line-height:1.6;background:#faf8f1;border-radius:7px;padding:6px 8px;white-space:normal;overflow:visible}
#quantity-panel122 .q122-note,#quantity-panel122 .q122-help{color:#77756f}
#quantity-panel122 .q122-export{display:flex;align-items:center;justify-content:center;gap:8px;background:#ffc900;color:#232323;border-color:#e0b800;border-radius:10px}
#quantity-panel122 .q122-export:hover{background:#e0b800}
#quantity-panel122 .q122-table{scrollbar-color:#c5beaa #f5f3ed}
@media(max-height:500px){#quantity-panel122 .q122-status{font-size:9px;line-height:12px;padding:3px 5px}#quantity-panel122 .q122-table{margin-top:3px}}
/* Readable default instructions even in the short landscape workspace. */
@media(max-height:500px) and (min-width:600px){#quantity-panel122{width:min(660px,calc(100% - 16px));display:grid;grid-template-columns:1fr 1fr;grid-template-rows:28px 27px minmax(0,1fr) auto;gap:0;max-height:calc(100% - 16px);height:calc(100% - 16px)}#quantity-panel122 header{grid-column:1/-1}#quantity-panel122 .q122-tabs{margin-left:8px;margin-right:8px}#quantity-panel122 .q122-table{grid-column:2;grid-row:3/5;margin:5px 8px 6px;min-height:0;max-height:none}#quantity-panel122 .q122-status{grid-column:1;grid-row:3;align-self:start;margin-left:8px;margin-right:8px;padding:3px 5px}#quantity-panel122 .q122-help{display:block;grid-column:1;grid-row:3;align-self:end;margin:34px 8px 4px;min-height:0;max-height:calc(100% - 34px);overflow:auto;font-size:9px}#quantity-panel122 .q122-help .q122-note{display:block;font-size:9px;line-height:1.35;max-height:none;margin:3px 0 0}#quantity-panel122 .q122-export{grid-column:1;grid-row:4;margin-left:8px;margin-right:8px}}
@media(max-width:360px){#quantity-panel122 header{padding:5px 10px}#quantity-panel122 header button{height:26px;width:26px}#quantity-panel122 .q122-tabs{margin-top:6px}#quantity-panel122 .q122-tabs button{padding:6px 3px;font-size:10px}#quantity-panel122 .q122-status{padding:4px 6px;font-size:9px;line-height:1.4;margin-top:6px}#quantity-panel122 .q122-help{margin:4px 10px 6px;font-size:9px}#quantity-panel122 .q122-help .q122-note{font-size:9px;line-height:1.4;max-height:58px}#quantity-panel122 .q122-export{padding:6px;margin-bottom:7px}}
@media(max-width:360px){#quantity-panel122 th,#quantity-panel122 td{padding:3px 6px;font-size:10px;line-height:14px}}
/* v1.10.125 — quantity status, elevation column and typed Excel export. */
#quantity-panel122 .q122-status{color:#16713b;background:#eaf7ee;border:1px solid #c7e7d0;font-weight:600}
#quantity-panel122 .q122-status.q125-error{color:#b42318;background:#fef0ee;border-color:#f3c4bf}
#quantity-panel122.q125-level th:first-child{width:32%}
#quantity-panel122.q125-level th:nth-child(2){width:23%}
#quantity-panel122.q125-level th:nth-child(3){width:12%}
#quantity-panel122.q125-level th:nth-child(4){width:33%}
#quantity-panel122 .q125-exports{display:flex;gap:6px;margin:0 14px 12px;flex:none}
#quantity-panel122 .q125-exports .q122-export{margin:0;flex:1;min-width:0}
#quantity-panel122 .q122-tabs button:disabled{opacity:.65;cursor:wait}
@media(max-width:900px){#quantity-panel122 .q125-exports{margin:0 10px 9px}}
@media(max-width:360px){#quantity-panel122.q125-level td,#quantity-panel122.q125-level th{padding-left:3px;padding-right:3px;font-size:9px}#quantity-panel122 .q125-exports{margin-bottom:7px}}
@media(max-height:500px) and (min-width:600px){#quantity-panel122 .q125-exports{grid-column:1;grid-row:4;margin:0 8px 4px}#quantity-panel122 .q125-exports .q122-export{grid-column:auto;grid-row:auto}}
/* v1.10.128 — keep quantity columns legible, scroll the table on narrow screens. */
#quantity-panel122{width:min(660px,calc(100% - 24px))}
#quantity-panel122 table{min-width:560px}
#quantity-panel122 th:first-child{width:28%}
#quantity-panel122 th:nth-child(2){width:10%}
#quantity-panel122 th:nth-child(3),#quantity-panel122 th:nth-child(4),#quantity-panel122 th:nth-child(5){width:20.66%}
#quantity-panel122.q125-level table{min-width:660px}
#quantity-panel122.q125-level th:first-child{width:23%}
#quantity-panel122.q125-level th:nth-child(2){width:14%}
#quantity-panel122.q125-level th:nth-child(3){width:9%}
#quantity-panel122.q125-level th:nth-child(4),#quantity-panel122.q125-level th:nth-child(5),#quantity-panel122.q125-level th:nth-child(6){width:18%}
@media(max-width:900px){#quantity-panel122{width:min(660px,calc(100% - 16px))}}
/* v1.10.129 — compact quantity panel without hiding names or numeric values. */
#quantity-panel122{width:min(560px,calc(100% - 24px))}
#quantity-panel122 .q122-table{margin-left:10px;margin-right:10px}
#quantity-panel122 table,#quantity-panel122.q125-level table{min-width:530px;font-size:10px}
#quantity-panel122 th,#quantity-panel122 td{padding-left:4px;padding-right:4px}
#quantity-panel122 th:first-child{width:29%}
#quantity-panel122 th:nth-child(2){width:9%}
#quantity-panel122 th:nth-child(3),#quantity-panel122 th:nth-child(4),#quantity-panel122 th:nth-child(5){width:20.66%}
#quantity-panel122.q125-level th:first-child{width:21%}
#quantity-panel122.q125-level th:nth-child(2){width:15%}
#quantity-panel122.q125-level th:nth-child(3){width:8%}
#quantity-panel122.q125-level th:nth-child(4),#quantity-panel122.q125-level th:nth-child(5),#quantity-panel122.q125-level th:nth-child(6){width:18.66%}
#quantity-panel122 tbody th:first-child{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
#quantity-panel122 .q129-warning{color:#c62828;font-weight:600;font-size:10px;line-height:1.5;margin:6px 0 0}
@media(max-width:900px){#quantity-panel122{width:min(560px,calc(100% - 16px))}}
@media(max-height:500px) and (min-width:600px){#quantity-panel122{width:min(560px,calc(100% - 16px))}#quantity-panel122 .q129-warning{font-size:9px}}
@media(max-width:360px){#quantity-panel122 .q129-warning{font-size:9px;line-height:1.4;margin-top:2px}#quantity-panel122 .q122-help{margin-bottom:4px}#quantity-panel122 .q122-status{line-height:1.3}}
#quantity-panel122 .q129-warning{flex:none;margin:0 14px 8px}
@media(max-width:900px){#quantity-panel122 .q129-warning{margin-left:10px;margin-right:10px}}
@media(max-width:360px){#quantity-panel122 .q129-warning{margin-bottom:4px}}
@media(max-height:500px) and (min-width:600px){#quantity-panel122{grid-template-rows:28px 27px auto minmax(0,1fr) auto auto}#quantity-panel122 .q122-table{grid-row:3/7}#quantity-panel122 .q122-status{grid-row:3;margin-top:3px;margin-bottom:3px}#quantity-panel122 .q122-help{grid-row:4;align-self:stretch;margin:0 8px 3px;max-height:none}#quantity-panel122 .q129-warning{grid-column:1;grid-row:5;margin:0 8px 3px;font-size:8px;line-height:1.3}#quantity-panel122 .q125-exports{grid-row:6}}
@media(max-width:360px){#quantity-panel122 .q129-warning{margin-bottom:2px}}

/* v1.10.130 — fit all quantity columns inside their rounded frame. */
#quantity-panel122 .q122-table{margin-left:14px;margin-right:14px;border:1px solid #e6e3db;border-radius:8px;overflow-x:hidden;box-sizing:border-box}
#quantity-panel122 table,#quantity-panel122.q125-level table{width:100%;min-width:0;table-layout:fixed}
#quantity-panel122 th,#quantity-panel122 td{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;padding-left:4px;padding-right:4px}
#quantity-panel122 small{white-space:nowrap}
@media(max-width:900px){#quantity-panel122 .q122-table{margin-left:10px;margin-right:10px}}
@media(max-width:480px){#quantity-panel122 th,#quantity-panel122 td{font-size:9px;padding-left:3px;padding-right:3px}#quantity-panel122 small{font-size:8px}}
@media(max-height:500px) and (min-width:600px){#quantity-panel122 .q122-table{margin-left:8px;margin-right:8px}#quantity-panel122 th,#quantity-panel122 td{font-size:9px;padding-left:2px;padding-right:2px}#quantity-panel122 small{font-size:8px}}
@media(max-width:360px){#quantity-panel122 .q122-table{margin-top:7px}}

/* v1.10.152: requested toast and quantity header controls. */
.toast:not(.error){background:#ffc900;color:#232323;border-color:#e0b800}
.toast:not(.error) svg{color:currentColor}
#quantity-panel122 header button[data-q-refresh],#quantity-panel122 header button[data-q-close]{background:#f0f0f0;color:#454545;border:1px solid #e1e1e1}
#quantity-panel122 header button[data-q-refresh]:hover,#quantity-panel122 header button[data-q-close]:hover{background:#e5e5e5}
#quantity-panel122 header button[data-q-close]{font-size:24px;line-height:1;font-weight:400}

/* v1.10.153: keep the quantity table clear of the navigation cube. */
#quantity-panel122{left:12px;right:auto}
#quantity-panel122 header button[data-q-close]{display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:Arial,sans-serif;line-height:1}
#quantity-panel122 .q122-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
#quantity-panel122 .q122-tabs button svg{flex:0 0 15px}
@media(max-width:480px){#quantity-panel122{left:8px;right:auto}#quantity-panel122 .q122-tabs button{gap:3px}}
/* v1.10.156 — isolated measurement interface */
.measure-panel156{position:absolute;z-index:40;left:12px;top:12px;width:294px;max-width:calc(100% - 24px);max-height:calc(100% - 24px);overflow:auto;box-sizing:border-box;border:1px solid #e4ddcd;border-radius:14px;background:#fffefb;color:#32302a;box-shadow:0 8px 30px #342e1d24;font:12px/1.5 'Be Vietnam Pro',Arial,sans-serif;pointer-events:auto;padding:13px;scrollbar-width:thin;scrollbar-color:#d6cebd transparent}
.measure-panel156[hidden],.measure-cursor156[hidden]{display:none!important}.measure-panel156 *{box-sizing:border-box}.measure-panel156 header{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #eee8dc}.measure-panel156 header strong{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;flex:1}.measure-panel156 header strong svg{color:#ab8200;flex:none}.measure-panel156 button{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid #e4dfd4;background:#f5f4f0;color:#454138;border-radius:9px;min-height:34px;padding:6px 9px;font:inherit;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s}.measure-panel156 button:hover{background:#fff4c6;border-color:#dfbf42}.measure-panel156 button:focus-visible,.measure-panel156 select:focus-visible,.measure-panel156 input:focus-visible{outline:2px solid #d19e00;outline-offset:2px}.measure-panel156 button:disabled{opacity:.4;cursor:default}.measure-panel156 header>button:last-child,.measure-result156>button{width:29px;min-height:29px;padding:0;font-size:23px;line-height:1;background:#f0efeb;border-color:transparent}.measure-panel156 header .measure-collapse156{min-height:26px;font-size:10px;padding:3px 5px;background:transparent;border:0;color:#917a35}.measure-tabs156{display:grid;grid-template-columns:1fr 1fr;gap:6px}.measure-tabs156 button{background:#fff;font-size:12px;justify-content:flex-start;padding-left:12px;min-height:36px}.measure-tabs156 button.active{background:#fff0aa;border-color:#e6bd32;font-weight:700;color:#715700;box-shadow:inset 3px 0 #ffc900}.measure-hint156{font-size:11px;color:#82785d;min-height:32px;margin:9px 0 10px;line-height:1.6}.measure-panel156 fieldset{min-width:0;border:1px solid #e7e2d7;background:#faf9f5;border-radius:10px;padding:8px 10px 10px;margin:0 0 10px}.measure-panel156 legend{font-size:11px;font-weight:600;color:#665d48;padding:0 5px}.measure-snap156{display:grid;grid-template-columns:1fr 1fr;gap:9px 8px}.measure-snap156 label{display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap;font-size:11px}.measure-snap156 input{width:16px;height:16px;margin:0;accent-color:#e1aa00;flex:none}.measure-snap156 input:disabled{opacity:.4}.snap-symbol156{font-size:16px;line-height:1}.snap-vertex{color:#d59b00}.snap-midpoint{color:#a85de2}.snap-edge{color:#00a4bf}.snap-center{color:#e655a0}.measure-locks156{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.measure-locks156 button{min-width:0;padding:5px 2px;font-size:10px;min-height:31px;background:white}.measure-locks156 button.active{background:#ffc900;border-color:#ddb200;color:#3a3000;box-shadow:0 0 0 2px #ffc90030}.measure-locks156 small{grid-column:1/-1;color:#958971;font-size:10px;line-height:1.6;margin-top:4px}.measure-settings156{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.measure-settings156 label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:500;color:#82765c}.measure-panel156 select{width:100%;min-width:0;height:36px;border:1px solid #e2ddcf;border-radius:9px;background:white;color:#3d392d;padding:0 10px;font:13px 'Be Vietnam Pro',Arial,sans-serif;line-height:normal;cursor:pointer}.measure-actions156{display:flex;gap:8px;padding-bottom:10px;border-bottom:1px solid #eee8dc}.measure-actions156>button{flex:1}.measure-actions156>button:first-child{background:#fff1b5;border-color:#e7ce6c;color:#755a00}.measure-actions156>button[hidden]{display:none}.measure-results156{max-height:215px;overflow:auto;padding:3px 0;scrollbar-width:thin}.measure-result156{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #dce7f6;border-left:3px solid #1677ff;background:#f3f8ff;border-radius:10px;padding:9px 10px;margin:7px 0}.measure-result156 span{display:flex;flex-direction:column;gap:3px;min-width:0}.measure-result156 small{font-size:10px;color:#5b7aa6}.measure-result156 strong{font-size:14px;color:#145fbf;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.measure-result156>button{background:transparent;color:#7e90aa;font-size:20px;width:25px;flex:none}.measure-empty156{text-align:center;color:#aaa18d;font-size:11px;margin:15px 0}.measure-panel156 footer{display:flex;gap:8px;border-top:1px solid #eee8dc;padding-top:10px;margin-top:5px}.measure-panel156 footer button{flex:1;background:#ffc900;border-color:#e4b500;color:#3c3200;font-size:11px;font-weight:600;min-height:35px}.measure-panel156 footer button:hover{background:#f2bd00}.measure-panel156.collapsed156>*:not(header){display:none}.measure-panel156.collapsed156 header{margin:0;padding:0;border:0}
.measure-cursor156{position:absolute;z-index:45;pointer-events:none;width:15px;height:15px;transform:translate(-50%,-50%);border:2px solid #1677ff;border-radius:50%;background:#fff9;box-shadow:0 0 0 2px #ffffffb3}.measure-cursor156[data-snap=vertex]{border-radius:2px;border-color:#d59b00}.measure-cursor156[data-snap=midpoint]{border-radius:2px;border-color:#a85de2;transform:translate(-50%,-50%) rotate(45deg);width:13px;height:13px}.measure-cursor156[data-snap=edge]{border-color:#00a4bf;border-radius:2px}.measure-cursor156[data-snap=center]{border-color:#e655a0;outline:2px solid #e655a066}.measure-cursor156[data-snap=locked]{border-radius:0;border-style:dashed}
@media(max-width:600px){.measure-panel156{left:6px;top:6px;width:270px;padding:11px;max-width:calc(100% - 12px);max-height:calc(100% - 12px)}.measure-results156{max-height:125px}.measure-panel156 select{height:34px;font-size:12px}}

/* v1.10.158: compact material measurement panel */
.measure-panel156{height:min(700px,calc(100% - 24px));display:flex;flex-direction:column;overflow:hidden;padding:10px;width:302px;gap:0}.measure-panel156>*:not(.measure-results156){flex-shrink:0}.measure-panel156 header{gap:4px;padding-bottom:7px;margin-bottom:8px}.measure-panel156 header strong{font-size:13px;gap:5px;min-width:0}.measure-panel156 header strong>svg{width:16px;height:16px}.measure-current158{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:500;margin-left:2px;white-space:nowrap}.measure-current158 svg{width:14px;height:14px}.measure-panel156 header>button,.measure-panel156 header .measure-collapse156{display:grid;place-items:center;width:26px;height:26px;min-height:26px;padding:0;border-radius:7px;background:#f1f0ec;color:#706a5d;border:0}.measure-panel156 header>button svg{display:block;width:16px;height:16px}.measure-tabs156{gap:5px}.measure-tabs156 button{min-height:30px;padding:4px 8px;gap:7px;font-size:11px}.measure-tabs156 button>svg{color:var(--mode-color);width:18px;height:18px;flex:none}.measure-tabs156 button.active{box-shadow:none!important;border-color:var(--mode-color);background:color-mix(in srgb,var(--mode-color) 9%,white);color:#35312b}.measure-hint156{margin:6px 0 7px;min-height:0;font-size:10px;line-height:1.5}.measure-panel156 fieldset{padding:5px 8px 7px;margin-bottom:7px}.measure-snap156{gap:7px}.measure-snap156 label{gap:5px;font-size:10px;min-height:18px}.measure-snap156 input{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:16px;height:16px;border:1px solid #cfc7b7;border-radius:5px;background:white;cursor:pointer;accent-color:#ffc900}.measure-snap156 input:checked{background:#ffc900;border-color:#ffc900}.measure-snap156 input:checked:after{content:'';width:8px;height:4px;border-left:2px solid #453900;border-bottom:2px solid #453900;transform:rotate(-45deg) translateY(-1px)}.snap-symbol156{display:inline-grid;place-items:center;width:18px;height:18px;flex:none}.snap-symbol156 svg{display:block;width:18px;height:18px}.snap-symbol156.snap-vertex svg rect,.snap-symbol156.snap-midpoint svg path,.snap-symbol156.snap-edge svg path{fill:currentColor;fill-opacity:.12}.measure-locks156 button{min-height:28px;font-size:10px}.measure-locks156 small{font-size:9px;line-height:1.5;margin-top:2px}.measure-settings156{margin:5px 0 8px;gap:8px}.measure-settings156 label{position:relative;display:block;padding-top:3px}.measure-field-label158{position:absolute;top:-4px;left:8px;padding:0 4px;background:#fffefb;font-size:9px;z-index:1;color:#8b7950}.measure-panel156 .measure-settings156 select{appearance:none;-webkit-appearance:none;border-radius:7px;height:34px;padding:0 25px 0 10px;background:#fffefb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23897e65' stroke-width='2'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 7px center;font-size:12px}.measure-panel156 .measure-settings156 select:focus{border-color:#daa900;box-shadow:0 0 0 2px #ffc90022;outline:none}.measure-actions156{gap:7px;padding-bottom:7px}.measure-actions156>button{min-height:31px;font-size:11px}.measure-actions156>button:first-child{background:#20a46d13;border-color:#20a46d50;color:#168753}.measure-actions156>.measure-cancel158{background:#df514113;border-color:#df514140;color:#c44a3c}.measure-actions156 button svg{width:16px;height:16px}.measure-results156{flex:1 1 auto;min-height:45px;max-height:none;padding:3px 0;overflow:auto}.measure-result156{min-height:33px;padding:4px 6px;margin:4px 0;gap:5px;cursor:pointer;background:color-mix(in srgb,var(--mode-color) 5%,white);border:1px solid color-mix(in srgb,var(--mode-color) 22%,white);border-left:2px solid var(--mode-color);border-radius:7px}.measure-result156 .measure-row-icon158{display:grid;place-items:center;flex:none;color:var(--mode-color);width:18px}.measure-result156 small{font-size:9px;color:var(--mode-color);white-space:nowrap;flex:none}.measure-result156 strong{font-size:11px;color:#414653;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;text-align:right}.measure-result156>button{width:20px;min-height:22px;padding:0;flex:none}.measure-result156>button svg{width:13px;height:13px}.measure-result156.selected158{background:#fff2a4;border-color:#e1b422;box-shadow:inset 0 0 0 1px #ffc90033}.measure-result156:focus-visible{outline:2px solid #d5a000;outline-offset:-2px}.measure-panel156>footer{display:flex!important;width:100%!important;gap:7px;justify-content:stretch!important;padding:8px 0 0!important;margin:4px 0 0!important}.measure-panel156>footer>button{flex:1 1 0!important;width:0!important;min-width:0!important;max-width:none!important;min-height:33px;white-space:nowrap;padding:5px 6px;font-size:10px}.measure-panel156 footer button svg{width:16px;height:16px}.measure-panel156.collapsed156{height:auto}.measure-cursor156[data-snap=midpoint]{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;background:#a85de2;transform:translate(-50%,-50%);border:0;width:16px;height:15px}.measure-cursor156[data-snap=edge]{transform:translate(-50%,-50%) rotate(45deg);width:12px;height:12px}.measure-cursor156[data-snap=center]:after{content:'';position:absolute;left:4px;top:4px;width:3px;height:3px;border-radius:50%;background:#e655a0}
@media(max-width:600px){.measure-panel156{width:290px;height:min(650px,calc(100% - 12px));padding:9px}.measure-panel156.collapsed156{height:auto}.measure-current158{font-size:9px}.measure-results156{max-height:none}}

@media(max-height:560px){.measure-panel156:not(.collapsed156){height:auto;overflow:auto}.measure-panel156 .measure-results156{flex:none;min-height:90px;max-height:180px}}

.measure-panel156 header .measure-current158 svg{color:inherit!important}

/* v1.10.159: custom dropdowns, compact controls and touch scrolling */
.measure-panel156 .measure-hint156{background:#f4f2eb;border:1px solid #ece6d7;border-radius:7px;padding:6px 8px;margin:6px 0 7px;color:#827454;line-height:1.5}.measure-panel156 header>button,.measure-panel156 header .measure-collapse156{box-sizing:border-box;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:0!important;display:grid!important;place-items:center;background:#f0efea!important;border:0!important;border-radius:7px!important;flex:0 0 28px!important}.measure-panel156 header>button svg{width:16px;height:16px;display:block}.measure-settings156{margin:5px 0 7px}.measure-combo159{position:relative;width:100%}.measure-combo159 select[hidden]{display:none!important}.measure-panel156 .measure-combo-trigger159{display:flex;align-items:center;justify-content:space-between;width:100%;height:31px;min-height:31px;padding:0 9px;border:1px solid #ded6c6;border-radius:7px;background:#fffefb;font-size:11px;text-align:left;color:#39372f;line-height:1}.measure-combo-trigger159>span:last-child{display:flex;color:#998b6f}.measure-combo-trigger159 svg{width:15px;height:15px}.measure-combo-trigger159[aria-expanded=true]{border-color:#d5a100;box-shadow:0 0 0 2px #ffc90025}.measure-combo-list159{position:absolute;z-index:65;top:calc(100% + 5px);left:0;right:0;background:#fffefb;border:1px solid #e4dece;border-radius:9px;padding:4px;box-shadow:0 6px 20px #493b1b26;max-height:155px;overflow:auto;scrollbar-width:none}.measure-combo-list159[hidden]{display:none!important}.measure-panel156 .measure-combo-list159>button{display:flex;justify-content:flex-start;width:100%;height:28px;min-height:28px;border:0;background:transparent;border-radius:5px;padding:0 8px;font-size:11px}.measure-panel156 .measure-combo-list159>button.selected159{background:#fff0ad;color:#735600;font-weight:600}.measure-panel156 .measure-combo-list159>button:hover,.measure-panel156 .measure-combo-list159>button:focus-visible{background:#fff7d6;outline:none}.measure-panel156.collapsed156>.measure-hint156{display:block!important;margin:8px 0 0}.measure-panel156.collapsed156>footer{display:flex!important;margin-top:7px!important}.measure-panel156.collapsed156>header{margin:0;padding:0;border:0}.measure-panel156{scrollbar-width:none;-ms-overflow-style:none}.measure-panel156::-webkit-scrollbar,.measure-combo-list159::-webkit-scrollbar{display:none}
@media(max-width:600px),(max-height:560px){.measure-panel156:not(.collapsed156){height:auto;max-height:calc(100% - 12px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.measure-panel156 .measure-results156{flex:none;min-height:65px;max-height:none;overflow:visible}.measure-panel156.collapsed156{height:auto;overflow:auto}}

.measure-guide160{margin:0;padding:6px 0;color:#8b7852;font-size:10px;line-height:1.4;flex-shrink:0}.measure-panel156.collapsed156 .measure-guide160{display:none}

/* v161: explicit viewport bound and a single scroll surface on touch screens. */
.measure-panel156{max-height:var(--measure-height161,calc(100dvh - 24px))!important}
@media(max-width:600px),(max-height:560px),(pointer:coarse){.measure-panel156:not(.collapsed156){height:var(--measure-height161,calc(100dvh - 24px))!important;overflow-y:auto!important;overflow-x:hidden!important;touch-action:pan-y!important;display:block!important}.measure-panel156 .measure-results156{overflow:visible!important;max-height:none!important;min-height:65px}.measure-panel156>*{flex-shrink:0}.measure-panel156.collapsed156{overflow-y:auto!important}}
/* v162 — isolated first-person walking interface */
.walk-hud162{position:absolute;z-index:85;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 24px);padding:10px 12px;background:#fffefbf2;border:1px solid #e4ddcd;border-radius:12px;box-shadow:0 5px 22px #302b1b25;color:#433f34;font:11px/1.5 'Be Vietnam Pro',Arial,sans-serif;pointer-events:auto}.walk-hud162>div{min-width:0;text-align:center}.walk-hud162 strong{display:block;color:#8d6b00;font-size:12px}.walk-hud162 span{display:block;font-size:10px}.walk-hud162 button,.walk-help162 button,.walk-pad162 button{border:1px solid #e0b800;background:#ffc900;color:#332b00;border-radius:7px;min-width:28px;height:28px;font:600 15px Arial;cursor:pointer;touch-action:manipulation}.walk-hud162 button{flex:none}.walk-hud162[hidden],.walk-help162[hidden],.walk-pad162[hidden]{display:none!important}.walk-help162{position:absolute;z-index:90;top:18px;left:50%;transform:translateX(-50%);width:500px;max-width:calc(100% - 24px);max-height:calc(100% - 120px);overflow:auto;scrollbar-width:none;background:#fffefb;border:1px solid #e4ddcd;border-radius:14px;box-shadow:0 8px 28px #302b1b30;padding:14px;color:#433f34;font:12px/1.5 'Be Vietnam Pro',Arial,sans-serif;touch-action:pan-y}.walk-help162 header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.walk-help162 header strong{font-size:14px}.walk-help-grid162{display:grid;grid-template-columns:1fr 1fr;gap:7px}.walk-help-grid162 article{padding:10px;background:#f5f2e9;border:1px solid #ece5d3;border-radius:9px}.walk-help-grid162 b{color:#8d6b00}.walk-help-grid162 p{margin:4px 0 0;font-size:11px}.walk-help162>small{display:block;margin-top:10px;color:#938669}.walk-pad162{display:none;position:absolute;bottom:100px;left:12px;z-index:85;grid-template-columns:repeat(3,1fr);gap:5px}.walk-pad162 button{font-size:10px;min-width:42px;height:34px;touch-action:none}@media(pointer:coarse){.walk-pad162{display:grid}.walk-hud162{bottom:10px}.walk-hud162 span{font-size:9px}}@media(max-width:430px){.walk-help-grid162{grid-template-columns:1fr 1fr}.walk-help162{padding:10px}.walk-help-grid162 article{padding:7px}}
/* v163: keyboard keycaps and clearer first-person instructions */
.walk-help162 kbd{display:inline-flex;align-items:center;justify-content:center;min-width:29px;height:29px;padding:0 8px;border:1px solid #ded8c9;border-bottom:3px solid #d2c8ad;border-radius:6px;background:#fff;color:#433d2e;font:600 12px/1 Arial;box-shadow:0 1px 2px #342e1d12}.walk-keys163{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;flex-wrap:wrap;font-size:10px}.walk-wasd163{display:flex;flex-direction:column;align-items:center;gap:4px}.walk-wasd163 span{display:flex;gap:4px}.walk-keys163 em{font-style:normal;color:#95866a;font-size:10px;padding:0 4px}.walk-help162>small kbd{min-width:20px;height:23px;font-size:10px;margin:0 2px}.walk-help-grid162 article:first-child{grid-column:1/-1}.walk-help-grid162 article p{line-height:1.65}.walk-mouse163{display:inline-flex;background:#e5dfd2;border-radius:10px;align-items:center;justify-content:center;width:20px;height:28px;color:#8d6b00;margin-right:3px;vertical-align:middle}
/* v164 — single-row walk status and wide Material help */
.walk-hidden164{display:none!important}
.walk-hud162{display:flex;flex-wrap:nowrap;width:max-content;max-width:calc(100% - 20px);gap:12px;padding:9px 12px;white-space:nowrap;overflow-x:auto;scrollbar-width:none;bottom:15px}
.walk-hud162 .walk-stat164{display:flex;align-items:center;gap:5px;flex-shrink:0;font-size:11px;text-align:left}
.walk-hud162 .walk-stat164>span{display:inline;font-size:11px;color:#82785f}
.walk-hud162 .walk-stat164>strong{display:inline;font-size:12px;border-radius:6px;padding:3px 7px;background:#fff1b5;color:#775800;line-height:1.3;font-variant-numeric:tabular-nums}
.walk-hud162 strong[data-on=true]{background:#e5f5eb;color:#18733b}.walk-hud162 strong[data-on=false]{background:#fbe8e6;color:#b1362f}
.walk-hud162 button[data-help]{font:600 11px Arial;padding:0 8px;flex-shrink:0}.walk-hud162 button[data-close]{background:#f0efea;border:0;color:#706a5d;font-size:20px;line-height:1;width:28px;height:28px;display:grid;place-items:center;padding:0}
.walk-hud162::-webkit-scrollbar,.walk-help162::-webkit-scrollbar{display:none}
.walk-help162{width:760px;max-width:calc(100% - 28px);max-height:calc(100dvh - 140px);top:20px;padding:16px;background:#fffefb;box-shadow:0 8px 32px #342e1d2b;border-radius:14px;overflow-y:auto;overscroll-behavior:contain}
.walk-help162 header{padding-bottom:10px;border-bottom:1px solid #eee8dc;gap:10px}.walk-help162 header>strong{display:flex;align-items:center;gap:8px;font-size:14px}.walk-help162 [data-walk-icon]{display:flex;color:#b08b00}.walk-help162 [data-walk-icon] svg{width:20px;height:20px}.walk-help162 header>button{box-sizing:border-box;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;display:grid;place-items:center;background:#f0efea;border:0;border-radius:7px;color:#706a5d;flex:0 0 28px}.walk-help162 header>button svg{width:16px;height:16px}
.walk-help-grid162{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.walk-help-grid162 article:first-child{grid-column:auto}.walk-help-grid162 article{padding:12px;background:#f8f6ef;border:1px solid #eae4d6;border-radius:10px}.walk-help-grid162 b{font-size:11px}.walk-help-grid162 p{font-size:10px;color:#857961;margin-top:8px}.walk-help162 kbd{min-width:26px;height:26px;padding:0 7px;font-size:11px}.walk-keys163{gap:5px;font-size:10px}.walk-action164{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:#74694f;font-size:10px;line-height:1.6}.walk-action164 svg{flex:none;color:#9c7a11}.walk-double164{font-weight:700;font-size:14px;background:#fff0b0;color:#806000;padding:2px 5px;border-radius:5px}
@media(max-width:640px){.walk-help162{width:560px;padding:10px}.walk-help-grid162{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.walk-help-grid162 article{padding:9px}.walk-hud162{gap:7px;padding:8px;max-width:calc(100% - 12px);bottom:10px}.walk-hud162 .walk-stat164,.walk-hud162 .walk-stat164>span{font-size:10px}.walk-hud162 .walk-stat164>strong{font-size:10px;padding:3px 4px}.walk-hud162 .walk-stat164{gap:3px}.walk-pad162{bottom:70px}}@media(max-width:390px){.walk-hud162{gap:5px}.walk-hud162 .walk-stat164,.walk-hud162 .walk-stat164>span{font-size:9px}.walk-hud162 button[data-help]{font-size:9px;padding:0 5px}}
.walk-error164{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:100;padding:10px 14px;max-width:calc(100% - 24px);border-radius:10px;background:#c62828;color:#fff;font:11px/1.5 Arial,sans-serif;box-shadow:0 4px 20px #0002}
.walk-hud162,.walk-help162,.walk-help162 *{box-sizing:border-box}
.walk-help162{max-height:min(calc(100% - 90px),calc(100dvh - 140px))}
/* Walking minimap: dedicated overlay, hidden and disposed with walking. */
.walk-minimap174{position:absolute;right:16px;bottom:72px;width:240px;z-index:70;background:rgba(255,255,255,.95);border:1px solid #e4e7eb;border-radius:14px;box-shadow:0 6px 24px #0002;overflow:hidden;pointer-events:auto;color:#475569;font:12px system-ui}
.walk-minimap174[hidden]{display:none!important}.walk-minimap174 header{display:flex;align-items:center;gap:8px;padding:8px 10px}.walk-minimap174 header span{margin-left:auto;font-size:11px}.walk-minimap174 button{width:26px;height:26px;padding:0;border:0;border-radius:7px;background:#f1f3f5;color:#64748b;font-size:21px;line-height:26px;cursor:pointer}.walk-minimap174 canvas{display:block;width:100%;height:auto;background:#f8fafc}.walk-minimap174 small{display:block;padding:6px 10px;font-size:10px}.walk-minimap174 small b{color:#e0b000}@media(max-width:600px){.walk-minimap174{width:170px;right:8px;bottom:76px}.walk-minimap174 small{font-size:9px}}

/* v175 passive map aligned with walking status bottom. */
.walk-minimap174{bottom:15px;width:210px;pointer-events:none}.walk-minimap174 *{pointer-events:none}.walk-minimap174 small{font-size:12px;display:flex;align-items:center;gap:5px}.walk-north175{font-weight:800;color:#475569;font-size:15px;margin-left:3px}@media(max-width:600px){.walk-minimap174{bottom:10px;width:170px}.walk-minimap174 small{font-size:11px;flex-wrap:wrap}}

/* v177 readable walking guide and look multiplier. */
.walk-hud162 [data-look]{display:inline-flex;align-items:center;gap:3px}.walk-hud162 [data-look-value]{font:inherit}.walk-hud162 .walk-look-times177{font-style:normal;font-size:16px;line-height:1;font-weight:600}.walk-help162{width:820px;padding:18px}.walk-help-grid162{gap:12px}.walk-help-grid162 article{background:#faf9f5;padding:14px;border-radius:12px}.walk-help-grid162 article>b{display:block;font-size:12px;color:#725700;padding-bottom:8px;border-bottom:1px solid #e9e3d5}.walk-help-grid162 p{font-size:11px;color:#6b6659;line-height:1.6}.walk-help-row177{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:11px;line-height:1.5}.walk-help-row177 kbd,.walk-help-row177 svg{flex:none}.walk-help-row177 span{flex:1}.walk-help162>small{padding-top:10px;border-top:1px solid #e9e3d5;font-size:11px}@media(max-width:640px){.walk-help162{padding:12px}.walk-help-grid162{gap:8px}.walk-help-grid162 article{padding:10px}.walk-help-row177{flex-wrap:wrap}.walk-hud162 .walk-look-times177{font-size:14px}}@media(max-width:360px){.walk-help-grid162{grid-template-columns:1fr}}

.walk-keyboard-note177{padding:9px 12px;margin:0 0 12px;border-radius:9px;background:#fff3b7;color:#705600;font-size:11px;line-height:1.5;border:1px solid #efdfa1}

/* v178 touch walking controls, consistent guide and display selector. */
.walk-hud162 button.walk-stat164{height:auto;min-height:30px;padding:3px 4px;border:0;background:transparent;display:flex;align-items:center;gap:4px;border-radius:7px;font:inherit;color:inherit}.walk-hud162 button.walk-stat164:hover,.walk-hud162 button.walk-stat164:focus-visible{background:#fff2ad;outline:0}.walk-key-layout178{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px}.walk-key-layout178>span{font-size:10px;color:#8b8170}.walk-key-cross178{display:grid;grid-template-columns:repeat(3,28px);gap:4px}.walk-key-cross178 kbd:first-child{grid-column:2}.walk-key-cross178 kbd:nth-child(2){grid-column:1;grid-row:2}.walk-key-cross178 kbd:nth-child(3){grid-column:2;grid-row:2}.walk-key-cross178 kbd:nth-child(4){grid-column:3;grid-row:2}.walk-help-grid162{align-items:stretch}.walk-help-grid162 article{display:flex;flex-direction:column;justify-content:flex-start}.walk-help-row177{min-height:29px}.walk-help-grid162 p:last-child{margin-bottom:0}.walk-adjust178{position:absolute;z-index:91;bottom:64px;left:50%;transform:translateX(-50%);width:240px;padding:12px;background:#fff;border:1px solid #e6dec5;border-radius:12px;box-shadow:0 8px 24px #0002;color:#514630;font:12px system-ui}.walk-adjust178[hidden]{display:none}.walk-adjust178 header,.walk-adjust178>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.walk-adjust178>div{margin-top:10px}.walk-adjust178 button{width:32px;height:32px;border:0;border-radius:8px;background:#ffc900;font-size:20px;cursor:pointer}.walk-adjust178 header button{width:26px;height:26px;background:#f2f3f5}.walk-adjust178 output{font-weight:700}.brightness-style178{flex-wrap:wrap!important}.brightness-style178 select{width:100%;min-width:0;padding:9px 10px;border:1px solid #ddd7c5;border-radius:8px;background:#fff;color:#4c473c;font-family:inherit;font-size:12px}@media(max-width:640px){.walk-key-layout178{flex-direction:column;gap:5px}.walk-hud162 button.walk-stat164{padding:2px;gap:3px}.walk-hud162{flex-wrap:wrap;overflow:visible;justify-content:center;width:calc(100% - 16px)}.walk-adjust178{bottom:90px}}
/* Align display icons by their box, never by the text baseline. */
.brightness-toggle,.brightness-settings-head,.brightness-settings-title{display:flex;align-items:center;gap:8px}.brightness-toggle .brightness-icon,.brightness-settings-title .brightness-settings-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:none;align-self:center}.brightness-settings-title .brightness-settings-icon{width:32px;height:32px}.brightness-settings-title>span:last-child{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0}.brightness-reset{display:inline-flex;align-items:center;justify-content:center;padding:0}.brightness-reset svg{display:block;margin:0;flex:none}

/* SVG icon boxes keep optical and geometric centers aligned across font sizes. */
.brightness-settings-title .brightness-settings-icon{display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;align-self:center!important;padding:0!important}.brightness-settings-icon svg{display:block!important;width:18px!important;height:18px!important;margin:0!important;flex:none!important}.brightness-toggle .brightness-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;align-self:center!important;padding:0!important}.brightness-toggle .brightness-icon svg{display:block;width:100%;height:100%;min-width:14px;margin:0}.brightness-settings-title>span:last-child{justify-content:center!important}.brightness-reset svg{display:block!important;margin:0!important}

/* v179: compact controls with matching dropdown width and centered SVG icons. */
.brightness-style178 select[hidden]{display:none!important}
.display-combo179{position:relative;width:100%;min-width:0;margin-top:7px;box-sizing:border-box}
.display-combo-trigger179{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-width:0!important;height:32px!important;padding:0 9px!important;border:1px solid #ded8c9!important;border-radius:8px!important;background:#fff!important;color:#4c473c!important;font-family:inherit;font-size:11px;font-weight:500;line-height:1.3;box-sizing:border-box;gap:8px;cursor:pointer}
.display-combo-trigger179>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-combo-trigger179 svg{display:block;width:16px;height:16px;flex:none}
.display-combo-list179{position:absolute;top:calc(100% + 4px);left:0;width:100%;box-sizing:border-box;padding:4px;border:1px solid #e3dccb;border-radius:9px;background:#fffefb;box-shadow:0 6px 20px #493b1b26;z-index:100}.display-combo-list179[hidden]{display:none!important}
.display-combo-list179>button{display:flex!important;align-items:center!important;width:100%!important;min-width:0!important;height:30px!important;padding:0 8px!important;border:0!important;border-radius:5px!important;background:transparent!important;text-align:left!important;color:#4c473c!important;font-family:inherit;font-size:11px;cursor:pointer}.display-combo-list179>button[aria-selected=true]{background:#fff0ad!important;font-weight:600}.display-combo-list179>button:hover,.display-combo-list179>button:focus-visible{background:#fff7d6!important;outline:none}
.walk-hud162{top:12px!important;bottom:auto!important;gap:5px!important;padding:5px 7px!important;max-width:calc(100% - 24px)!important}.walk-hud162 button.walk-stat164{gap:3px!important;padding:2px!important;min-height:28px!important}.walk-hud162 .walk-stat164>span{font-size:10px!important}.walk-hud162 .walk-stat164>strong{font-size:11px!important;padding:2px 5px!important}.walk-hud162 button[data-help]{height:26px!important;padding:0 6px!important;font-size:10px!important}.walk-hud162 button[data-close]{width:26px!important;height:26px!important;min-width:26px!important;display:flex!important;align-items:center!important;justify-content:center!important}.walk-help162{top:60px!important;max-height:calc(100% - 76px)!important}
.walk-adjust178{top:60px!important;bottom:auto!important;width:200px!important;box-sizing:border-box;padding:10px!important}.walk-adjust178 header{font-size:11px;gap:6px}.walk-adjust178 button{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:1!important;flex:none}.walk-adjust178 button svg{width:17px;height:17px;display:block;flex:none;margin:0}.walk-adjust178 header button{width:24px!important;height:24px!important}.walk-adjust178 header button svg{width:14px;height:14px}.walk-adjust178>div{gap:6px!important;margin-top:8px!important}.walk-adjust178 output{font-size:12px}
.walk-pad162{bottom:16px!important;grid-template-columns:repeat(3,40px)!important;gap:5px!important}.walk-pad162 button{width:40px!important;min-width:40px!important;height:36px!important;padding:0!important;display:flex;align-items:center;justify-content:center;font:600 15px/1 Arial!important;border-radius:7px!important}.walk-pad162 button[data-walk-key179=Q],.walk-pad162 button[data-walk-key179=E]{font-size:12px!important;background:#fff1b5!important}
@media(max-width:640px){.walk-hud162{top:8px!important;gap:3px!important;max-width:calc(100% - 16px)!important}.walk-hud162 .walk-stat164>span{font-size:9px!important}.walk-hud162 .walk-stat164>strong{font-size:10px!important;padding:2px 3px!important}.walk-help162,.walk-adjust178{top:86px!important}.walk-help162{max-height:calc(100% - 100px)!important}}
.brightness-setting-row>.display-combo179{display:block!important;grid-template-columns:none!important;width:100%!important;gap:0!important}

/* v181: hold-to-walk touch controls; 60% transparent yellow background. */
.walk-pad162,.walk-pad162 *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;-webkit-user-drag:none!important;touch-action:none!important}
.walk-pad162{grid-template-columns:repeat(3,56px)!important;gap:10px!important;left:16px!important;bottom:20px!important}
.walk-pad162 button{width:56px!important;min-width:56px!important;height:54px!important;font-size:20px!important;background:rgba(255,201,0,.4)!important;border:1px solid rgba(224,184,0,.45)!important;border-radius:10px!important;box-shadow:none!important;color:#3d3200!important}
.walk-pad162 button[data-walk-key181],.walk-pad162 button[data-walk-key179=Q],.walk-pad162 button[data-walk-key179=E]{background:rgba(255,201,0,.4)!important;font-size:17px!important}
.walk-pad162 button:active{background:rgba(255,201,0,.4)!important;border-color:#e0b800!important}
.walk-hud162 button.walk-stat164{padding:3px 5px!important}.walk-hud162 .walk-stat164>strong{padding:3px 7px!important}.walk-hud162 button[data-help]{padding:0 8px!important}
.walk-hud162 button{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}
@media(max-width:640px){.walk-hud162 button.walk-stat164{padding:3px 4px!important}.walk-hud162 .walk-stat164>strong{padding:3px 6px!important}}

.walk-shift181{display:none;position:absolute;right:236px;bottom:20px;z-index:85;width:56px;height:54px;padding:0;border:1px solid rgba(224,184,0,.45);border-radius:10px;background:rgba(255,201,0,.4);color:#3d3200;font:600 13px/1 Arial;align-items:center;justify-content:center;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;-webkit-user-drag:none!important;touch-action:none!important}.walk-shift181[hidden]{display:none!important}.walk-shift181[aria-pressed=true]{border-color:#e0b800}.walk-shift181::selection,.walk-pad162 *::selection{background:transparent}
@media(pointer:coarse){.walk-shift181{display:flex}}@media(max-width:600px){.walk-shift181{right:188px}}
/* Keep the enlarged pad separate from Shift and the map on narrow phones. */
@media(max-width:420px){.walk-pad162{bottom:84px!important}}
@media(max-width:380px){:has(>.walk-minimap174:not([hidden]))>.walk-pad162{bottom:210px!important}}
/* v182: compact help only on phones; touch movement controls stay full size. */
@media(max-width:640px){
 .walk-help162{padding:9px!important;width:calc(100% - 20px)!important;max-width:calc(100% - 20px)!important;font-size:10px!important}
 .walk-help162 header{padding-bottom:7px!important;margin-bottom:7px!important;gap:6px!important}
 .walk-help162 header>strong{font-size:12px!important;gap:6px!important}
 .walk-help162 [data-walk-icon] svg{width:17px!important;height:17px!important}
 .walk-help162 header>button{width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;flex-basis:26px!important}
 .walk-keyboard-note177{font-size:10px!important;line-height:1.4!important;padding:6px 8px!important;margin-bottom:7px!important}
 .walk-help-grid162{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
 .walk-help-grid162 article{padding:7px!important;border-radius:9px!important;min-width:0}
 .walk-help-grid162 article>b{font-size:10.5px!important;padding-bottom:5px!important}
 .walk-help-grid162 p{font-size:10px!important;line-height:1.45!important;margin-top:6px!important;overflow-wrap:anywhere}
 .walk-help-row177{font-size:10px!important;line-height:1.4!important;gap:4px!important;min-height:23px!important;margin-top:6px!important}
 .walk-help162 kbd{min-width:21px!important;height:23px!important;padding:0 4px!important;font-size:10px!important;border-radius:5px!important}
 .walk-key-layout178{margin-top:7px!important;gap:4px!important}
 .walk-key-cross178{grid-template-columns:repeat(3,23px)!important;gap:3px!important}
 .walk-help-row177>svg{width:17px!important;height:24px!important}
}

/* v183: passive click focus, compact map, wider mobile Shift and panel close. */
.walk-hud162 button.walk-stat164:hover,.walk-hud162 button.walk-stat164:focus{background:transparent!important;outline:none!important}.walk-hud162 button.walk-stat164:focus-visible{outline:2px solid #e0b800!important;outline-offset:1px}
.walk-minimap174{width:180px!important}.walk-minimap174 header{padding:6px 8px!important;font-size:11px!important}.walk-minimap174 header span{font-size:10px!important}.walk-minimap174 small{padding:5px 8px!important;font-size:10px!important;line-height:1.3!important}
.walk-shift181{width:84px!important;right:206px!important}
.brightness-settings-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}.brightness-settings-title{flex:1;min-width:0}.brightness-close183{display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 26px!important;width:26px!important;height:26px!important;min-width:26px!important;padding:0!important;border:0!important;border-radius:7px!important;background:#f0efea!important;color:#706a5d!important;cursor:pointer}.brightness-close183 svg{display:block!important;width:15px!important;height:15px!important;margin:0!important;flex:none!important}
@media(max-width:600px){.walk-minimap174{width:140px!important}.walk-shift181{right:158px!important}.walk-minimap174 small{font-size:9.5px!important}}
@media(max-width:360px){.walk-shift181{display:none!important}}

/* v184: sensor and run controls occupy the top corners; JS avoids the HUD. */
@media(pointer:coarse){.walk-shift181{top:8px;bottom:auto!important;right:12px!important;display:flex!important}.walk-shift181[hidden]{display:none!important}}
.walk-ar184{position:absolute;z-index:85;left:12px;top:8px;width:56px;height:54px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(224,184,0,.45);border-radius:10px;background:rgba(255,201,0,.4);color:#3d3200;font:600 15px/1 Arial;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;touch-action:manipulation}.walk-ar184[hidden]{display:none!important}.walk-ar184[aria-pressed=true]{border:2px solid #18965b;color:#176b43}
.walk-sensor-notice184{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:100;max-width:calc(100% - 24px);padding:8px 12px;border-radius:9px;background:#ffc900;color:#473b00;font:11px/1.5 Arial;pointer-events:none}

/* v184: navigation backgrounds are 70% transparent. */
.walk-pad162 button,.walk-pad162 button[data-walk-key179=Q],.walk-pad162 button[data-walk-key179=E],.walk-pad162 button:active{background:rgba(255,201,0,.3)!important}
