@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#34423f;background:#eef0ef;font-size:13px;--teal:#098b80;--line:#e7ebe9;--muted:#87908b;--ink:#283a34}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:0;background:transparent;color:inherit;cursor:pointer;padding:10px 13px;border-radius:8px;transition:background .15s}button:hover{background:#e7eeeb}button:disabled{opacity:.35;cursor:default}input,select{border:1px solid #dfe5e1;border-radius:7px;padding:9px;background:white;color:var(--ink);min-width:0}input:focus,select:focus{outline:2px solid #57b5a566;outline-offset:1px}button:focus-visible{outline:2px solid var(--teal)}h1,h2,h3,p{margin-top:0}h1{font-size:30px;font-weight:500;letter-spacing:-1px}h2{font-size:17px;font-weight:600}h3{font-size:13px}small{font-size:10px}header{height:68px;background:#fff;display:flex;align-items:center;gap:5px;padding:0 18px;border-bottom:1px solid var(--line);position:relative;z-index:4}header .brand{display:flex;align-items:center;gap:9px;padding:0 10px 0 0}.brand-icon{width:33px;height:36px;border-radius:11px 11px 11px 2px;background:var(--teal);color:white;font-size:23px;font-weight:450;display:grid;place-items:center}.brand b{font-size:17px;letter-spacing:-.7px}.brand b span{display:block;font-size:9px;font-weight:500;letter-spacing:3px;text-align:left;color:#8b9790}.divider{height:25px;width:1px;background:var(--line);display:inline-block;margin:0 9px}#projectName{border:0;width:145px;background:transparent}nav{display:flex;background:#f1f3f2;border:1px solid #e5e9e6;padding:3px;border-radius:10px;margin:auto;gap:3px}nav button{padding:8px 19px;color:#7f8883}nav button.active{background:#fff;color:#263b33;box-shadow:0 1px 5px #182f1817}.soft{background:#f3f5f4}.primary{background:var(--teal);color:white}.primary:hover{background:#08766c}em{font-style:normal;background:#e6efeb;padding:2px 5px;border-radius:5px;margin-left:6px;font-size:10px}#estimate{padding:0 18px;border-left:1px solid var(--line);margin-left:12px;text-align:left;border-radius:0}#estimate small{display:block;font-size:8px;letter-spacing:1px;color:#7f8d85}#estimate strong{font-size:17px}.avatar{background:#d9e7df;border-radius:50%;width:34px;height:34px;padding:0;margin-left:7px}#designView{display:flex;height:calc(100dvh - 68px)}#viewport{flex:1;min-width:0;position:relative;overflow:hidden;background:#e9ede9}#viewport canvas{display:block;width:100%;height:100%;touch-action:none}.view-top{position:absolute;left:95px;top:30px;pointer-events:none;z-index:1}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:var(--teal)}.view-top h1{font-size:24px;margin:9px 0 6px}.view-top p{font-size:11px;color:#859188}.tools{position:absolute;top:29px;left:18px;background:#fff;border:1px solid white;border-radius:13px;padding:5px;box-shadow:0 4px 18px #182f1810;z-index:2;display:flex;gap:3px}.vertical{flex-direction:column}.tools button{font-size:23px;line-height:1;width:49px;padding:11px 4px;color:#78867c}.tools small{display:block;font-size:8px;line-height:1.6;margin-top:5px}.tools button.active{background:#eaf3ef;color:var(--teal)}.orientation{position:absolute;top:25px;right:22px;display:flex;border:1px solid #d0dbd2;border-radius:8px;background:#ffffffbb;padding:3px}.orientation button{font-size:10px;padding:7px 10px}.bottom-bar{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;background:#fffc;padding:7px;border-radius:13px;white-space:nowrap;box-shadow:0 5px 24px #25382c18;border:1px solid #fff;backdrop-filter:blur(12px)}.bottom-bar button{font-size:11px}.scene-footer{position:absolute;bottom:14px;left:23px;right:23px;display:flex;justify-content:space-between;font-size:10px;color:#7e8c83}.scene-footer i{display:inline-block;width:5px;height:5px;background:var(--teal);border-radius:50%;margin-right:6px}aside{width:310px;background:#fff;border-left:1px solid var(--line);overflow:auto;flex-shrink:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:25px 22px 19px;border-bottom:1px solid var(--line)}.panel-heading small{font-size:8px;letter-spacing:1.6px;color:#8c988f}.panel-heading h2{font-size:16px;margin:6px 0 0}.panel-heading button{font-size:21px}#panelContent{padding:20px 22px}.field{display:block;margin-bottom:16px}.field>span{font-size:11px;color:#758378;display:block;margin-bottom:7px}.field .input-wrap{display:flex;align-items:center;gap:8px}.field input,.field select{width:100%}.field small{color:#8d988f}.field input[type=color]{height:37px;padding:4px}.section-label{font-size:9px;letter-spacing:1.5px;color:#849389;border-top:1px solid var(--line);padding-top:20px;margin:23px 0 16px}.segmented{display:flex;gap:4px;padding:3px;background:#f1f4f1;border-radius:8px}.segmented button{flex:1;padding:8px}.segmented .active{background:white;color:var(--teal);box-shadow:0 1px 4px #0001}.hint{color:#8a958e;line-height:1.6;font-size:11px}.wide{width:100%}.danger{color:#b24f45}.module-tag{font-size:10px;background:#eaf3ee;color:var(--teal);padding:5px 8px;border-radius:5px}.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 20px}.swatch{height:48px;border:2px solid white;box-shadow:0 0 0 1px #dfe6e0;border-radius:7px;position:relative}.swatch.selected{box-shadow:0 0 0 2px var(--teal)}.swatch span{position:absolute;bottom:-16px;left:0;font-size:8px;white-space:nowrap;color:#7b887f}.material-group{margin-bottom:34px}#dimensionLayer{pointer-events:none;position:absolute;inset:0}.dim{position:absolute;font-size:9px;color:#577b6e;background:#ffffffe0;padding:3px 7px;border-radius:4px;white-space:nowrap;border:1px solid #d7e4db;transform:translate(-50%,-50%)}.hidden{display:none!important}.document-view{padding:42px max(30px,calc((100vw - 1300px)/2));min-height:calc(100vh - 68px);background:#f4f6f3}.doc-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.doc-heading h1{margin:9px 0}.doc-heading p{color:#879189;margin-bottom:0}.doc-heading button{margin-left:7px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.metric{border:1px solid #e1e7e0;background:white;border-radius:12px;padding:21px}.metric small{display:block;color:#849187}.metric strong{font-size:25px;font-weight:500;display:block;margin-top:10px}.cut-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:20px 0}.cut-options input[type=number]{width:85px;margin:0 4px}.cut-options label{font-size:11px;color:#718176}#sheets{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.sheet{background:white;border:1px solid #e1e7e0;border-radius:12px;padding:20px}.sheet h3{display:flex;justify-content:space-between;margin-bottom:15px}.sheet h3 span{font-size:10px;color:#849488;font-weight:400}.sheet svg{width:100%;max-height:390px}.table-card{background:white;border:1px solid #e1e7e0;border-radius:12px;padding:25px;margin:24px 0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:11px}td,th{padding:12px 10px;border-bottom:1px solid #edf0eb}th{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#869288;font-weight:500}td:nth-child(n+4){font-variant-numeric:tabular-nums}.notice{font-size:11px;color:#8b968d;line-height:1.7}.cost-grid{display:grid;grid-template-columns:1fr 330px;gap:25px}.cost-grid .table-card{margin-top:0}.cost-row{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);gap:20px}.cost-row small{display:block;color:#8a968b;margin-top:5px}.cost-row strong{font-weight:500;white-space:nowrap}.cost-row.total{color:var(--teal);font-weight:700;border-bottom:0;font-size:18px}.price-card p{font-size:11px;color:#8b958c;line-height:1.7}.grand-total{padding-top:25px;border-top:1px solid var(--line);margin-top:25px}.grand-total small{display:block;color:#849087;letter-spacing:1px}.grand-total strong{display:block;font-size:30px;margin:8px 0 20px;color:var(--teal)}dialog{border:0;border-radius:17px;padding:0;max-width:850px;width:calc(100% - 40px);max-height:85vh;box-shadow:0 20px 100px #162d3140;color:var(--ink)}dialog::backdrop{background:#1e332d66;backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;padding:25px 30px;border-bottom:1px solid var(--line)}.modal-heading h2{margin:0;font-size:22px}.modal-heading button{font-size:22px}.modal-content{padding:25px 30px;max-height:65vh;overflow:auto}.catalog{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.catalog button{border:1px solid var(--line);text-align:left;padding:0;overflow:hidden}.catalog button:hover{border-color:var(--teal);background:#f7fbf7}.cabinet-thumb{height:100px;display:grid;place-items:center;background:#f3f5f1}.cabinet-thumb svg{width:85px;height:85px}.catalog strong{display:block;font-size:11px;padding:13px 12px 4px;font-weight:500}.catalog small{display:block;color:#8a978d;padding:0 12px 13px}.catalog-filters{display:flex;gap:5px;margin-bottom:20px}.catalog-filters button.active{background:#e5f1ea;color:var(--teal)}.project-card{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:9px;padding:15px;margin:10px 0}.project-card small{display:block;color:#8a978d;margin-top:4px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;background:#284139;color:white;padding:13px 23px;border-radius:10px;z-index:20;transition:.2s;pointer-events:none;max-width:90vw}#toast.show{transform:translate(-50%,0);opacity:1}.check-item{padding:15px;border:1px solid var(--line);margin:9px 0;border-radius:8px}.check-item.ok{color:var(--teal)}.check-item.warn{color:#9b6f35;background:#fffaf1}.auth{max-width:350px;margin:auto}.auth h2{margin-bottom:9px}.auth p{color:#8a978d;font-size:12px;line-height:1.7}.empty-state{text-align:center;padding:55px;color:#7d9082}.empty-state h2{color:#3d5947}body.night #viewport{background:#e8ede7}.layout-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.layout-choices button{border:1px solid var(--line);padding:30px 15px}.layout-choices b{display:block;font-size:35px;color:var(--teal);margin-bottom:15px}.selection-actions{display:flex;gap:5px;margin:16px 0}.selection-actions button{flex:1;border:1px solid var(--line);font-size:11px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline-info{background:#edf5ef;border-radius:8px;padding:14px;font-size:11px;line-height:1.7;color:#587969}
@media(min-width:1700px){aside{width:335px}.view-top{left:110px;top:40px}}@media(max-width:1200px){.brand b,header .divider,#checks span,#save span{display:none}header{padding:0 10px}#projectName{width:110px}nav button{padding:8px 12px}#estimate{padding:0 10px}aside{width:280px}.bottom-bar{gap:0}.bottom-bar button{padding:10px}.bottom-bar .divider{display:none}}@media(max-width:850px){header{height:60px;gap:0;flex-wrap:wrap}#designView{height:calc(100dvh - 60px)}.brand{display:none!important}#projectName{width:110px;font-size:11px}#undo,#redo,#checks,#theme,.avatar{display:none}#params{font-size:0;padding:9px}#params::before{content:'☷';font-size:17px}nav{margin:auto}nav button{font-size:11px;padding:8px}#estimate strong{font-size:13px}#estimate small{font-size:6px}#inspector{position:absolute;right:0;top:60px;bottom:0;z-index:3;width:280px;box-shadow:-10px 0 40px #142d2110}.view-top{left:80px;top:23px}.view-top h1{font-size:18px}.view-top p{max-width:190px;line-height:1.5;font-size:9px}.orientation{top:130px;right:12px}.bottom-bar{width:max-content;bottom:42px;max-width:95%;overflow:auto}.bottom-bar button{font-size:10px;padding:10px}.tools{left:10px}.tools button{width:42px}.scene-footer{font-size:8px}.document-view{padding:25px 18px}.doc-heading{align-items:flex-start;flex-direction:column}.metrics{grid-template-columns:repeat(2,1fr)}.metric{padding:15px}#sheets,.cost-grid{grid-template-columns:1fr}.catalog{grid-template-columns:repeat(2,1fr)}.catalog-filters{overflow:auto}.layout-choices{grid-template-columns:1fr}.modal-content{padding:20px}.scene-footer #sceneStats{max-width:130px;text-align:right}}@media print{header,.cut-options,.doc-heading button,#designView,#modal,#toast{display:none!important}.document-view{padding:0;background:white}.sheet,.table-card{break-inside:avoid;border-color:#ccc}.metrics{gap:8px}.cost-grid{grid-template-columns:1fr}.price-card{display:none}.document-view.hidden{display:none!important}body{background:white}#sheets{grid-template-columns:1fr 1fr}.sheet svg{max-height:260px}}

.settings-anchor{position:relative}#settingsMenu{font-size:21px}#settingsDropdown{position:absolute;right:0;top:46px;width:225px;padding:8px;background:white;border:1px solid var(--line);box-shadow:0 12px 40px #18352d25;border-radius:12px;z-index:12}#settingsDropdown[hidden]{display:none}#settingsDropdown button{display:block;text-align:left;width:100%}dialog:has(.workshop){width:min(1260px,96vw);max-width:1260px}dialog:has(.workshop) .modal-content{padding:0}.workshop{display:grid;grid-template-columns:210px 1fr;min-height:60vh;max-height:77vh;background:#fff}.workshop-side{padding:25px 15px;border-right:1px solid var(--line);background:#f7f9f7;overflow:auto}.workshop-side small{display:block;letter-spacing:1px;color:var(--muted);margin:0 12px 18px}.workshop-side button{display:block;width:100%;text-align:left;margin:3px 0}.workshop .active{background:#e3f1eb;color:#087c70}.workshop-side p{font-size:11px;color:var(--muted);line-height:1.7;margin:25px 12px}.workshop-main{overflow:auto;padding:28px 32px}.workshop-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.workshop-title h3{font-size:23px;font-weight:500;margin:8px 0}.workshop-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0 20px}.workshop-tabs button{border:1px solid var(--line);padding:9px 12px}.workshop-tabs small{margin-left:4px;color:var(--muted)}.workshop-search{display:flex;gap:12px;margin-bottom:20px}.workshop-search>input{flex:1}.workshop-table{overflow:auto;max-height:45vh;border:1px solid var(--line);border-radius:10px}.workshop-table table{width:100%;border-collapse:collapse}.workshop-table th{position:sticky;top:0;background:#f5f8f6;z-index:1}.workshop-table th,.workshop-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.workshop-table td strong{font-weight:500;display:block}.workshop-table td small{display:block;color:var(--muted);margin-top:5px}.workshop-table input{width:110px}.workshop-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;position:sticky;bottom:-28px;padding:18px 0;background:white;border-top:1px solid var(--line);margin-top:18px}.workshop-footer span{color:var(--muted);font-size:11px}.technical-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}.technical-diagram{margin:0 0 20px;padding:12px;background:#f8faf8;border:1px solid var(--line);border-radius:10px}.technical-diagram svg{display:block;width:100%;height:auto}.technical-diagram figcaption{font-size:10px;text-align:right;color:var(--muted)}.workshop-custom{display:grid;gap:10px;padding:15px;border:1px solid var(--line)}.workshop-custom label{display:grid;gap:5px}@media(max-width:850px){.workshop{grid-template-columns:1fr;max-height:80vh}.workshop-side{display:flex;flex-wrap:wrap;padding:10px;border-right:0}.workshop-side button{width:auto}.workshop-side p,.workshop-side small{display:none}.workshop-main{padding:20px}.technical-grid{grid-template-columns:1fr}.workshop-table input{width:90px}.workshop-footer{bottom:-20px}.workshop-title{align-items:flex-start;flex-direction:column}.settings-anchor{margin-left:auto}}
.workshop-side{width:auto;min-width:0;border-left:0}.workshop-main{min-width:0}.workshop{height:65vh;max-height:65vh}.workshop-table{max-height:max(160px,calc(65vh - 335px))}.workshop-main>.workshop-title{margin-top:0}

.brand-icon.has-logo{width:100px;max-width:120px;background:transparent;border-radius:0}.company-logo{display:block;width:100%;height:38px;object-fit:contain}.primary{color:var(--company-contrast,#fff)}.primary:hover{background:var(--teal);filter:brightness(.94)}#companyDocumentHeader{padding:15px 0 24px;color:var(--company-accent,var(--ink));font-size:12px;line-height:1.7}.phase1-actions{display:flex;gap:8px;flex-wrap:wrap}

.arQR{width:min(280px,90%);margin:20px auto;background:#fff;padding:10px}.arQR svg{width:100%;height:auto}.arQR input{width:100%}

.catalog-drawing{display:grid;place-items:center;height:110px;font-size:72px;color:#506b53}
.surface-editor{border:1px solid #dce5e2;border-radius:9px;padding:14px;margin:18px 0;min-width:0}.surface-editor legend{font-size:12px;font-weight:650;padding:0 6px}.surface-size{display:grid;grid-template-columns:1fr 1fr;gap:10px}.surface-size label{font-size:10px;line-height:1.5}.surface-size input{width:100%;min-width:0;padding:8px;border:1px solid #d5ded9;border-radius:5px;margin-top:5px}.surface-preview{display:block;width:100%;height:90px;object-fit:cover;border-radius:6px;margin:10px 0}.surface-editor input[type=file]{max-width:100%;font-size:10px}.surface-editor .hint{font-size:10px}
.module-preview{display:block;width:100%;aspect-ratio:5/4;background-repeat:no-repeat;border-radius:9px}.cabinet-thumb{height:auto!important;min-height:140px;background:#f3f6f5}.catalog>button{padding:13px!important;border-radius:12px!important}.catalog strong{display:block;margin-top:11px}
/* Liquid glass: shared palette, translucent surfaces and accessible fallbacks. */
:root{--theme-bg:#eaf1ee;--theme-surface:#fff;--theme-text:#203b37}body{background:var(--theme-bg);color:var(--theme-text)}body>header,.tool-dock,.floating-toolbar,.view-controls,#inspector,dialog,.table-card,.doc-heading,.price-card{background:color-mix(in srgb,var(--theme-surface) 76%,transparent)!important;backdrop-filter:blur(26px) saturate(145%);-webkit-backdrop-filter:blur(26px) saturate(145%);border:1px solid color-mix(in srgb,var(--theme-surface) 85%,transparent)!important;box-shadow:inset 0 1px 0 #ffffffc9,0 12px 36px #233c3a12!important}.tool-dock,.floating-toolbar,.view-controls{border-radius:24px!important}body>header{box-shadow:0 3px 22px #244c3e0a!important}dialog{border-radius:24px!important}dialog::backdrop{background:#1a393852;backdrop-filter:blur(9px)}button{border-radius:12px!important;transition:background .18s,box-shadow .18s}button:hover{box-shadow:inset 0 1px 0 #fff9,0 4px 12px #1e3d3610}button.primary{background:var(--company-primary,var(--teal))!important;color:var(--company-contrast,#fff)!important}.surface-editor,.catalog>button,.auth,.settings-anchor{border-radius:15px}.catalog>button{background:color-mix(in srgb,var(--theme-surface) 82%,transparent)!important}input,select,textarea{border-radius:10px!important;color:var(--theme-text);background:color-mix(in srgb,var(--theme-surface) 90%,transparent)}.google-signin{background:#fff;border:1px solid #d4dce5;color:#283e50;padding:13px 20px;margin:12px 0;display:block}.companyCheck{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.5;margin:15px 0}.companyCheck input{width:auto!important;flex:0 0 auto}.totp-qr{width:230px;max-width:100%;padding:8px;background:white;border-radius:12px;margin:15px auto}.totp-qr svg{width:100%;height:auto}.recovery-codes{padding:18px;background:#fff;border:1px solid #d9e2de;border-radius:12px;font:15px/1.8 monospace;user-select:all}.danger{color:#a33e38}.module-preview{border-radius:12px}
@media(prefers-reduced-transparency:reduce){body>header,.tool-dock,.floating-toolbar,.view-controls,#inspector,dialog,.table-card{background:var(--theme-surface)!important;backdrop-filter:none!important}}@supports not (backdrop-filter:blur(1px)){body>header,.tool-dock,.floating-toolbar,.view-controls,#inspector,dialog{background:var(--theme-surface)!important}}@media(prefers-reduced-motion:reduce){button{transition:none!important}}
#viewport{background:radial-gradient(ellipse at 20% 0%,color-mix(in srgb,var(--theme-surface) 80%,transparent),var(--theme-bg))}body{background:radial-gradient(ellipse at 8% 2%,color-mix(in srgb,var(--company-primary) 12%,transparent),transparent 50%),var(--theme-bg)}
/* Panel 3D: herramientas flotantes y controles accesibles. */
.glass{background:color-mix(in srgb,var(--theme-surface,#fff) 86%,transparent);backdrop-filter:blur(18px) saturate(140%);border:1px solid #ffffffaa;box-shadow:0 8px 25px #183e4020;border-radius:18px;color:var(--theme-text,#263c38)}
.studio-top{position:absolute;z-index:6;top:14px;right:14px;display:flex;gap:3px;padding:6px;max-width:calc(100% - 110px);flex-wrap:wrap}.studio-top button,.studio-camera button,#studioCard button{border:0;background:transparent;color:inherit;padding:8px;border-radius:10px;font-size:12px}.studio-top button:hover,.studio-camera button:hover,#studioCard button:hover{background:#149cdb20}.studio-camera{position:absolute;z-index:6;right:16px;bottom:114px;display:flex;max-width:calc(100% - 110px);flex-wrap:wrap;padding:5px}#studioCard{position:absolute;z-index:7;width:275px;padding:12px;max-height:210px;overflow:auto}#studioCard strong,#studioCard small{display:block;margin-bottom:6px}#studioCard small{opacity:.7}#studioDragHint{position:absolute;z-index:8;bottom:165px;left:100px;padding:12px;max-width:70%}.studio-module-list{display:grid;gap:8px;max-height:230px;overflow:auto;margin-bottom:15px}.studio-module-list label{display:flex;gap:10px}.studio-moving canvas{cursor:move!important}.studio-presentation .view-top,.studio-presentation .vertical.tools,.studio-presentation .orientation,.studio-presentation .scene-footer{display:none}.studio-presentation .studio-camera{opacity:.7}.view-top{pointer-events:none;max-width:40%}.studio-top~#studioCard[hidden]{display:none}#studioGroupForm{display:grid;gap:10px}#studioGroupForm input,#studioGroupForm select{width:100%}
@media(max-width:850px){.studio-top{left:80px;right:6px;top:8px}.studio-top button{padding:6px;font-size:11px}.studio-camera{bottom:150px;right:8px;left:80px}#studioCard{width:225px;max-width:calc(100% - 95px)}.view-top{display:none}.studio-camera button{padding:6px;font-size:11px}}
@media(prefers-reduced-transparency:reduce){.glass{background:var(--theme-surface,#fff);backdrop-filter:none}}
.studio-finish-samples{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin:12px 0}.studio-finish-samples>div{border:1px solid #ccd8d4;border-radius:9px;overflow:hidden}.studio-finish-samples small{display:block;padding:5px}
/* PWA: navegación móvil y hojas inferiores, sin restringir el zoom del navegador. */
#mobileDock{display:none}#connectionStatus{position:fixed;z-index:60;top:70px;left:50%;transform:translateX(-50%);padding:9px 16px;border-radius:12px;background:#fff0cf;color:#6b4b19;font-size:12px;max-width:90%;text-align:center}#pwaUpdate{position:fixed;z-index:61;right:16px;bottom:20px;background:var(--teal);color:white;box-shadow:0 5px 20px #2344}.mobile-menu{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-menu button{padding:16px;text-align:left;background:var(--theme-background,#f0f6f3);border:1px solid var(--line);border-radius:14px;min-height:50px}
@media(max-width:850px){
 body{height:100dvh;overflow:hidden}body>header{height:108px;padding:calc(5px + env(safe-area-inset-top)) 12px 5px;display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;grid-template-rows:44px 42px;gap:4px;box-sizing:border-box;position:relative;z-index:10}#projectName{width:100%;min-width:0;font-size:14px;padding:8px;grid-column:1;grid-row:1}#save{display:block;grid-column:2;grid-row:1;width:44px;height:44px;padding:0;font-size:20px}#save span{display:none}header #account{display:block;grid-column:3;grid-row:1;width:40px;height:40px;padding:0}header #tabs{grid-row:2;grid-column:1 / -1;display:flex;width:100%;margin:0;box-sizing:border-box;align-self:center}header #tabs button{flex:1;min-height:38px;font-size:12px;padding:8px}header #params,header #estimate,header .settings-anchor,header #newDesignBtn,header #newProject,header #createDesign{display:none!important}body>header>button:not(#save):not(#account),body>header>.divider{display:none!important}
 #designView{height:calc(100dvh - 108px - 68px - env(safe-area-inset-bottom));position:relative}#viewport{width:100%;min-width:0;height:100%}#mobileDock{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:20;left:0;right:0;bottom:0;margin:0;padding:5px 6px calc(5px + env(safe-area-inset-bottom));height:calc(68px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;box-sizing:border-box;background:color-mix(in srgb,var(--theme-surface,#fff) 95%,transparent);backdrop-filter:blur(20px);box-shadow:0 -4px 24px #2342;border:1px solid #ffffffa0}#mobileDock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;min-width:0;padding:5px 2px;color:var(--muted);border-radius:13px}#mobileDock button span{font-size:23px;line-height:24px}#mobileDock button.active{background:color-mix(in srgb,var(--teal) 12%,transparent);color:var(--teal)}
 #viewport .bottom-bar,#viewport .vertical.tools,#viewport .studio-top,#viewport .orientation,#viewport .view-top{display:none!important}.studio-camera{left:auto;right:10px;bottom:12px;max-width:calc(100% - 20px);padding:5px;border-radius:15px}.studio-camera button{min-height:36px;min-width:38px;font-size:11px}.studio-camera [data-camera=left],.studio-camera [data-camera=right],.studio-camera [data-camera=back]{display:none}.scene-footer{left:12px;right:12px;bottom:65px}.scene-footer #sceneStats{display:none}.scene-footer{pointer-events:none}.scene-footer>span{font-size:10px}.studio-presentation .studio-camera{opacity:1}#studioCard{left:10px!important;top:auto!important;bottom:110px;width:calc(100% - 20px);max-width:none;box-sizing:border-box;max-height:190px;padding:12px}#studioCard strong{font-size:14px}#studioCard>div{display:flex;flex-wrap:wrap;gap:4px}#studioCard button{min-height:40px;padding:9px;font-size:12px}#studioDragHint{bottom:68px;left:10px;max-width:calc(100% - 20px);font-size:12px}
 #inspector{position:fixed;left:0;right:0;top:auto;bottom:calc(68px + env(safe-area-inset-bottom));width:100%;height:min(68dvh,650px);z-index:18;border-radius:24px 24px 0 0;box-shadow:0 -12px 45px #16382f35;box-sizing:border-box;overflow:hidden}#inspector .panel-heading{padding:18px 20px 12px}#inspector .panel-heading h2{font-size:18px}#panelContent{overflow-y:auto;overscroll-behavior:contain;max-height:calc(100% - 85px);padding:12px 20px 30px;box-sizing:border-box}#closePanel{min-width:44px;min-height:44px;font-size:25px}input,select,textarea{font-size:16px!important}button{touch-action:manipulation}input[type=checkbox]{min-width:22px;min-height:22px}#modal{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:100%;height:auto;max-height:92dvh;border-radius:24px 24px 0 0;padding:0;box-sizing:border-box}#modal .modal-heading{padding:18px 20px;position:sticky;top:0;background:var(--theme-surface,#fff);z-index:2}#modal .modal-heading h2{font-size:19px}#modalClose{min-width:44px;min-height:44px;font-size:25px}#modal .modal-content{padding:16px 18px calc(24px + env(safe-area-inset-bottom));max-height:calc(92dvh - 88px);overflow:auto;overscroll-behavior:contain}.catalog-filters{display:flex;gap:5px;overflow-x:auto;padding-bottom:8px;flex-wrap:nowrap}.catalog-filters button{flex:none;min-height:40px}.catalog{gap:10px}.catalog button{min-width:0}.catalog small{font-size:11px}.catalog .cabinet-thumb{height:100px}.document-view{height:calc(100dvh - 108px - 68px - env(safe-area-inset-bottom));overflow:auto;padding:20px 14px 35px;box-sizing:border-box}.workshop{max-height:none}.workshop-main{overflow:visible;padding:15px}.workshop-footer{position:static;flex-wrap:wrap}.workshop-side{position:sticky;top:0;z-index:1}.table-scroll,.workshop-table{overscroll-behavior-x:contain}#connectionStatus{top:110px;font-size:11px}#pwaUpdate{bottom:calc(78px + env(safe-area-inset-bottom));right:10px;font-size:12px}#toast{bottom:calc(84px + env(safe-area-inset-bottom));max-width:85%;width:max-content;box-sizing:border-box}.mobile-menu{gap:8px}.mobile-menu button{font-size:13px}.security-dialog{max-height:90dvh;overflow:auto}
}
@media(max-width:850px) and (orientation:landscape) and (max-height:550px){body>header{height:58px;grid-template-columns:minmax(100px,1fr) minmax(220px,1.5fr) 44px 44px;grid-template-rows:44px}#projectName{grid-column:1}header #tabs{grid-row:1;grid-column:2}#save{grid-column:3}header #account{grid-column:4}#designView,.document-view{height:calc(100dvh - 58px - 68px - env(safe-area-inset-bottom))}#connectionStatus{top:60px}.studio-camera{bottom:8px}#studioCard{max-height:120px;bottom:60px}#inspector{height:78dvh}}
@media print{#mobileDock,#connectionStatus,#pwaUpdate{display:none!important}}

[hidden]{display:none!important}
#rulePartFields svg{display:block;width:100%;max-width:300px;height:auto;margin:10px auto}#rulePartFields{display:grid;gap:10px}#rulePartFields label{display:grid;gap:5px}#rulePartFields select{width:100%}

.project-card{flex-wrap:wrap;gap:12px}.project-card>.phase1-actions{display:flex;flex-wrap:wrap;gap:6px}#plannerAdmin{font-size:12px;padding:10px;border-radius:12px;text-decoration:none;white-space:nowrap}#plannerAdmin[hidden]{display:none}@media(max-width:700px){.project-card>.phase1-actions{width:100%}#plannerAdmin{font-size:10px;padding:6px}}

/* Shared interface review: keyboard access, readable dialogs and resilient labels. */
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--company-primary,var(--teal));outline-offset:3px}
.modal-heading h2{min-width:0;overflow-wrap:anywhere}.modal-heading>button{flex-shrink:0;min-width:42px;min-height:42px}.field{min-width:0}.field select,.field input,.field textarea{max-width:100%;box-sizing:border-box}.modal-content{overflow-wrap:anywhere}.modal-content .hint{line-height:1.6}.eq-choice select{width:100%;min-width:0}
@media(prefers-reduced-transparency:reduce){#mobileDock,.studio-top,.studio-camera{background:var(--theme-surface,#fff)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}

.island-list,.island-end-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.island-list button{flex:1;min-height:44px}.island-end-actions button{flex:1;min-height:48px}.island-members{display:grid;gap:6px;margin:12px 0}.island-members button{text-align:left;white-space:normal;padding:12px}.island-members small{display:block;color:var(--muted);margin-top:5px}#islandEditForm .field select,#islandCreateForm .field select{max-width:100%;min-width:0}#islandCreateForm fieldset{display:grid;gap:8px;margin:12px 0}#islandCreateForm .companyCheck{display:flex;gap:8px;align-items:center}

#demoEditorBanner{position:absolute;left:24px;top:140px;z-index:5;display:grid;gap:5px;max-width:360px;padding:14px 18px;border-radius:18px;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 8px 30px #173d3215;font-size:12px}#demoEditorBanner a{color:var(--teal)}@media(max-width:850px){#demoEditorBanner{left:12px;right:12px;top:90px;max-width:none;font-size:11px;padding:9px 12px}}

.installationViews{display:grid;grid-template-columns:1fr 1fr;gap:16px}.installationViews figure{margin:16px 0;min-width:0}.installationViews figcaption{margin-bottom:8px}.installationViews svg{border-radius:12px}.installationViews text{fill:#183943}#installationForm label{display:grid;gap:6px;margin:12px 0}#installationForm .companyFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#installationForm input,#installationForm select{max-width:100%;box-sizing:border-box}@media(max-width:700px){.installationViews{grid-template-columns:1fr}#installationForm .companyFields{grid-template-columns:1fr}}
