:root{font-family:Segoe UI,Arial,sans-serif;color:#173c3d;background:#f2f4f3;font-size:16px;--ink:#173c3d;--line:#d5dedb;--muted:#58716e;--accent:#d6a449}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 13px;border-radius:7px;font-size:.875rem;text-decoration:none}button:hover,.button:hover{background:#e9efeb;border-color:#92aaa0}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.primary{background:var(--ink);color:white}input,select,textarea{width:100%;border:1px solid #b8c9c1;border-radius:6px;padding:9px;color:var(--ink);background:white;min-width:0}input[type=checkbox]{width:auto;accent-color:var(--ink)}input:disabled{background:#ecf0ed}label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;color:var(--muted)}header{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:12px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:1.45rem}.brand strong{letter-spacing:3px}.brand span{font-size:.85rem;border-left:1px solid var(--line);padding-left:15px}#saveState{margin-left:auto;font-size:.85rem;color:var(--muted)}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 74px)}aside{background:#153b3d;color:#e8efea;padding:28px 20px}aside label{color:#d8e5df}aside button{background:transparent;color:#e8efea;border-color:#486766}aside select{margin-bottom:10px}aside>button{width:100%;margin-top:8px}aside button:hover{background:#315556;color:#fff}nav{display:grid;gap:8px;margin-top:34px}nav button{text-align:left;border:0;padding:14px 12px;color:#a2bbb5}nav span{margin-left:12px;color:white}nav button.active{background:#315657;color:#e7c481}.aside-note{margin-top:55px;font-size:.8rem;line-height:1.7;color:#a6c0b8}.eyebrow{letter-spacing:2px;font-size:.75rem;font-weight:700;margin-bottom:12px;color:#65817a}aside .eyebrow{color:#b4c9c1}main{padding:32px 36px 140px;max-width:1650px;width:100%;margin:auto}h1{font-size:1.8rem;letter-spacing:-.7px;margin:0;font-weight:600}h2{font-size:1.12rem;margin:0 0 20px}h3{font-size:1rem}.titlebar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.buttonrow{display:flex;flex-wrap:wrap;gap:8px}.notice{font-size:.875rem;background:#f7eccc;border-left:3px solid #b9801b;padding:12px 16px;color:#715518;margin:0 0 24px}.grid{display:grid;grid-template-columns:minmax(310px,.85fr) minmax(400px,1.3fr);gap:22px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:22px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wide{grid-column:1/-1}.muted,small{color:var(--muted);line-height:1.6}small{font-size:.8rem}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.chip{background:#edf3ef;border:1px solid #d3e2d8;border-radius:7px;padding:9px 12px}.chip strong{display:block}.chip small{font-variant-numeric:tabular-nums}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{border-right:1px solid var(--line)}.stat:last-child{border:0}.stat strong{display:block;font-size:1.5rem;font-weight:500}.stat span{font-size:.8rem;color:var(--muted)}.diagram{background:#f4f7f5;border:1px solid #dbe5de;border-radius:8px;margin:20px 0}.diagram svg{display:block;width:100%;height:330px}table{width:100%;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums}th{text-align:left;font-weight:600;color:var(--muted);background:#f2f6f3}th,td{padding:12px 10px;border-bottom:1px solid #e3e9e5;white-space:nowrap}.tablewrap{overflow:auto}table input{width:85px;padding:6px}.fingers{letter-spacing:3px;color:#356858}.error{background:#fae9e4;color:#8b3425;border:1px solid #ddaea4;padding:14px;border-radius:8px;margin:12px 0}.warning{color:#805713;background:#fbf3df;padding:12px;border-radius:8px;margin:12px 0}.success{background:#dcece3;padding:12px;border-radius:6px;margin:12px 0}.audio{position:fixed;bottom:0;left:230px;right:0;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 25px;background:#fff;border-top:1px solid #c9d7ce;box-shadow:0 -3px 20px #153b3d09;z-index:5}.audio label{flex-direction:row;align-items:center}.audio input[type=number]{width:65px}.audio input[type=range]{width:90px}.audio small{font-size:.75rem}.scale-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:20px}.scale-card{border:1px solid var(--line);padding:18px;border-radius:8px}.scale-card.selected{border-color:#356f61;background:#eef5ef}.scale-card h3{margin:0 0 8px}.scale-card p{font-size:.875rem}.scale-card .buttonrow{margin-top:15px}.tag{display:inline-block;background:#dcebe3;font-size:.75rem;padding:4px 7px;border-radius:4px}.check{flex-direction:row;align-items:center;gap:8px}details{margin-top:20px}summary{cursor:pointer;font-size:.9rem;margin-bottom:18px}dialog{border:1px solid var(--line);border-radius:12px;padding:28px;max-width:450px;width:90%}dialog::backdrop{background:#122c3266}dialog .buttonrow{margin-top:20px}.prose{max-width:880px;line-height:1.75}.prose a{color:#246852}a{color:#246852}#message:empty{display:none}textarea{min-height:90px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d6a449;outline-offset:3px}
@media(max-width:1100px){.grid{grid-template-columns:1fr}.shell{grid-template-columns:200px minmax(0,1fr)}.audio{left:200px}main{padding:24px 24px 180px}.titlebar{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){header{height:auto;min-height:65px;padding:14px;flex-wrap:wrap}.brand span{display:none}#saveState{font-size:.75rem}.shell{display:block}aside{padding:16px}aside>.eyebrow,.aside-note{display:none}aside>label{max-width:none}aside>.buttonrow,aside>button{display:none}nav{display:flex;overflow:auto;margin:16px -4px 0;gap:4px}nav button{flex:none;padding:10px;font-size:.8rem}nav span{margin-left:5px}main{padding:24px 14px 240px}h1{font-size:1.5rem}.card{padding:18px}.audio{left:0;padding:12px;gap:8px}.audio strong{display:none}.audio small{width:100%}.stats{gap:6px}.stat strong{font-size:1.2rem}.fields{gap:12px}.titlebar{gap:12px}th,td{padding:10px 8px}.diagram svg{height:300px}}
@media(max-width:700px){aside>.buttonrow{display:flex;margin-top:8px}aside>button{display:block;width:auto}.diagram{overflow-x:auto}.diagram svg{min-width:620px;height:300px}.diagram:before{content:"Desliza el plano para ver todas las cotas";display:block;font-size:12px;padding:10px;color:#58716e}}
.grid>div,.card{min-width:0}@media(max-width:1100px){.grid{grid-template-columns:minmax(0,1fr)}}
.hole-panel{margin:18px 0 8px;padding:18px;background:#edf4ef;border:1px solid #c8dbce;border-radius:9px}.hole-panel h3{margin:0 0 5px;font-size:1.05rem}.hole-panel>.muted{margin:0 0 12px;font-size:.82rem}.hole-panel>p:empty{display:none}.hole-panel .fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hole-panel .check{font-weight:600;color:var(--ink)}.hole-panel label{font-variant-numeric:tabular-nums}.hole-panel #holePreviewStatus:not(:empty){margin:10px 0;padding:8px 10px;border-radius:6px}.hole-panel #holePreviewStatus.error{margin:10px 0}.hole-panel #holePreviewStatus.muted{background:#dcece3;color:#244e40}
@media(max-width:1450px){.hole-panel .fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.hole-panel{padding:14px}.hole-panel .fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Printable previews use the same 300 dpi page images embedded in the PDF. */
.printable-layout{display:grid;grid-template-columns:minmax(280px, .85fr) minmax(0,1.15fr);gap:24px;align-items:start}
.printable-preview{background:#e7ece8;min-width:0}
#printablePages canvas{display:block;width:100%;height:auto;background:white;box-shadow:0 4px 20px #163d3b20;margin:auto}
#printablePages .label-page{max-width:340px}
#printables a{padding:10px 12px;color:#18513d;font-weight:700}
#printables [hidden]{display:none!important}
@media(max-width:900px){.printable-layout{grid-template-columns:minmax(0,1fr)}}
.length-panel{padding:16px;margin:12px 0 22px;background:#f2f6f3;border:1px solid #ccdcd4;border-radius:10px}
.length-panel details{margin:12px 0}
.length-panel input[type=checkbox]{flex-shrink:0}
button.danger{border-color:#af746d;color:#842f27;background:#fff5f3}button.danger:hover{background:#f8ded9;border-color:#842f27}aside #deleteProject{border-color:#8d6a65;color:#ffe8e5}aside #deleteProject:disabled{opacity:.4}

.suggestion-panel{margin:0 0 1.1rem;padding:1rem;border:1px solid #9bbdac;border-radius:14px;background:#edf5ee}.suggestion-panel h3{margin:0 0 .5rem}.suggestion-panel .stats{margin:.4rem 0}.suggestion-panel p{margin:.5rem 0}.suggestion-panel button{margin:.4rem 0}.suggestion-panel small{display:block;margin-top:.4rem}

.center-handle{cursor:grab;touch-action:none}.center-handle:focus{outline:none}.center-handle:focus .center-hit{stroke:#d6a449;stroke-width:3}.center-handle.dragging{cursor:grabbing}.center-controls{margin:12px 0;padding:12px;border:1px solid #c8dbce;border-radius:8px}.center-controls .fields{grid-template-columns:repeat(2,minmax(0,1fr))}.center-controls button{margin-top:6px}.pattern-panel{margin:16px 0;border:1px solid #9bbdac;background:#edf5ee;border-radius:12px;padding:16px}.pattern-panel h3{margin-top:0}.pattern-panel .buttonrow{margin:12px 0}.pattern-panel small{display:block}.center-preview{font-variant-numeric:tabular-nums}.center-hit{pointer-events:all}
.pattern-holes{font-size:.82rem}.pattern-holes th,.pattern-holes td{padding:9px 5px}.pattern-holes th{white-space:normal}

/* One proportional view and paired editing fields keep both chambers in sight. */
#designResults > .card:first-child .diagram{margin:8px 0;padding:8px;background:#f5f8f6;border:1px solid #cfddd5;border-radius:8px}
#designResults > .card:first-child .diagram svg{display:block;width:100%;height:auto}
#designResults .hole-panel{margin-top:10px;padding:12px}
#designResults .hole-panel h3{margin:0 0 6px}
#designResults .hole-panel p{margin:6px 0}
#designResults .hole-panel > .fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#designResults .hole-panel > .fields label{gap:4px}
#designResults .hole-panel > .fields input{padding:7px 9px}
#designResults .center-controls{border:0;padding:0;margin:6px 0 0}
#designResults .center-controls > small{display:none}
#designResults > .card:first-child .stats{margin:8px 0}
@media(max-width:650px){#designResults .hole-panel > .fields{grid-template-columns:repeat(2,minmax(0,1fr))}}

.fabrication-panel{margin:18px 0;padding:14px;border:1px solid #c8dbce;border-radius:10px}.fabrication-panel h3{margin-top:0}.fabrication-panel small{display:block;margin:8px 0}.fabrication-views{margin:12px 0}.fabrication-views svg{display:block;width:100%;height:auto}

/* Compact audio dock, with an independent toggle that remains available. */
#toggleAudio{position:fixed;right:12px;bottom:10px;z-index:8;padding:7px 12px;font-size:12px;box-shadow:0 2px 12px #153b3d20}
footer.audio{left:auto;right:12px;bottom:49px;width:max-content;max-width:calc(100vw - 24px);padding:7px 10px;gap:9px;border:1px solid var(--line);border-radius:9px;box-shadow:0 3px 18px #153b3d20;z-index:7}
.audio[hidden]{display:none!important}.audio>strong{display:none}.audio button{padding:5px 10px;font-size:13px;min-width:32px}.audio label{font-size:12px;gap:4px}.audio input[type=number]{width:58px;padding:5px;font-size:12px}.audio input[type=range]{width:72px;padding:0}
.audio #audioState{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.audio #audioState{line-height:1}
@media(max-width:700px){footer.audio{justify-content:flex-start;gap:7px;width:calc(100vw - 24px)}.audio label{font-size:11px}.audio input[type=range]{width:65px}#toggleAudio{padding:7px 10px}}
@media print{footer.audio,#toggleAudio{display:none!important}}


/* Bottom dock contains only the two live drawings. Editing and exports stay in document flow. */
.plan-top{background:white;min-width:0}.plan-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.plan-bar h2{margin:0;font-size:1.05rem}.plan-bar .tag{display:none}.plan-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.plan-toolbar button{padding:6px 10px;font-size:12px}.plan-size{display:none;align-items:center;flex-direction:row;gap:8px;font-size:12px}.plan-size input{width:110px;padding:0}.plan-toolbar #collapsePlan{display:none}.plan-visuals{min-width:0}.plan-front{min-width:0;border-top:1px solid var(--line);padding:8px}.plan-front h3{font-size:.85rem;margin:0 0 4px}.plan-front svg{display:block;width:100%;height:180px}.front-values{display:grid;gap:6px;font-size:12px;color:var(--muted);line-height:1.4}
.plan-pinned .plan-top{position:fixed;inset:auto 0 0;z-index:6;height:var(--pin-size);max-height:65dvh;display:flex;flex-direction:column;padding:8px 16px;background:#fff;border-top:1px solid #9bb6ab;box-shadow:0 -4px 22px #153b3d20}
.plan-pinned .plan-size{display:flex}.plan-pinned .plan-toolbar #collapsePlan{display:block}.plan-pinned .plan-bar{flex-shrink:0;margin-bottom:6px}.plan-pinned .plan-visuals{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:14px;min-height:0;flex:1;overflow:auto}
#designResults.plan-pinned .plan-top .diagram{margin:0;min-width:0;min-height:0;display:flex;align-items:center;overflow:auto;padding:4px}#designResults.plan-pinned .plan-top .diagram svg{width:100%;height:100%;min-width:0;min-height:0}#designResults.plan-pinned .plan-top .diagram:before{display:none}
.plan-pinned .plan-front{border-top:0;border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:auto;padding:4px 10px}.plan-pinned .plan-front svg{flex:1;min-height:100px;width:100%;height:0}.plan-pinned .front-values{flex-shrink:0;margin-top:6px}
.plan-pinned.plan-collapsed .plan-top{height:auto}.plan-pinned.plan-collapsed .plan-visuals,.plan-pinned.plan-collapsed .plan-size{display:none}
body{padding-bottom:var(--plan-dock-height,0px)}html{scroll-padding-top:16px;scroll-padding-bottom:calc(var(--plan-dock-height,0px) + 120px)}
.has-plan-dock #toggleAudio{bottom:calc(var(--plan-dock-height) + 10px)}.has-plan-dock footer.audio{bottom:calc(var(--plan-dock-height) + 49px)}
@media(max-width:700px){.plan-pinned .plan-top{padding:7px 10px}.plan-bar{gap:5px}.plan-bar h2{font-size:14px}.plan-toolbar{gap:6px}.plan-size input{width:70px}.plan-pinned .plan-visuals{grid-template-columns:1fr;grid-template-rows:180px auto;gap:6px}#designResults.plan-pinned .plan-top .diagram svg{min-width:580px;min-height:180px}.plan-pinned .plan-front{display:grid;grid-template-columns:1fr 1fr;overflow:visible;border-left:0;border-top:1px solid var(--line)}.plan-pinned .plan-front h3{grid-column:1/-1}.plan-pinned .plan-front svg{height:130px}.plan-pinned .front-values{font-size:11px}.plan-pinned.plan-collapsed .plan-visuals{display:none}}
@media print{.plan-pinned .plan-top{position:static;height:auto;max-height:none;box-shadow:none}.plan-toolbar{display:none}body{padding-bottom:0}}
.plan-edit-point{cursor:grab;touch-action:none}.plan-edit-point:focus{outline:none}.plan-edit-point:focus circle:last-child{stroke:#a37314;stroke-width:2}.plan-front svg,.plan-side svg{touch-action:none}.plan-side{min-width:0;border-top:1px solid var(--line);padding:4px 8px}.plan-side h3{font-size:.85rem;margin:0 0 4px}.plan-side svg{display:block;width:100%;height:210px}.plan-pinned .plan-visuals{grid-template-rows:minmax(120px,1fr) minmax(120px,1fr)}.plan-pinned .plan-top .diagram{grid-column:1;grid-row:1}.plan-pinned .plan-front{grid-column:2;grid-row:1 / span 2}.plan-pinned .plan-side{grid-column:1;grid-row:2;display:flex;flex-direction:column;min-height:0}.plan-pinned .plan-side svg{flex:1;height:0;min-height:95px}.studio-planbar select{font-size:12px;width:auto;padding:3px;margin:0}
@media(max-width:700px){.plan-pinned .plan-visuals{grid-template-rows:180px auto 170px}.plan-pinned .plan-front{grid-column:1;grid-row:2}.plan-pinned .plan-side{grid-column:1;grid-row:3}.plan-pinned .plan-side svg{height:145px;min-width:580px}.plan-pinned .plan-side{overflow:auto}}

/* Shared document viewer */
.documents-dialog{width:96vw;max-width:1400px;height:94dvh;max-height:94dvh;padding:16px;border:0;border-radius:12px;color:#173c3d;background:#f2f5f2;overflow:auto}.documents-dialog::backdrop{background:#142a2dbb}.documents-bar{display:flex;justify-content:space-between;align-items:center;gap:12px}.documents-bar h2{margin:0}.documents-tools{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:12px}.documents-tools label{flex:1;min-width:200px}.documents-tools details,.document-more,.project-more{position:relative}.documents-tools summary,.document-more summary,.project-more summary{cursor:pointer;padding:9px;border:1px solid #c9d8d5;border-radius:6px;background:white}.documents-tools details[open] .buttonrow,.document-more[open] .buttonrow,.project-more[open]>button{position:absolute;right:0;top:100%;z-index:4;min-width:180px;background:white;padding:12px;box-shadow:0 4px 20px #0002}.documents-pages{display:grid;justify-items:center;gap:20px}.documents-pages canvas{max-width:100%;height:auto;box-shadow:0 2px 10px #0002}.document-frame{width:100%;height:70dvh;border:0;background:white}.document-table{width:100%;overflow:auto;padding:15px;background:white;white-space:pre;font-size:13px}.geometry-defaults p{font-size:13px}.documents-dialog a,.document-more a{display:block;padding:8px}.project-more>button{white-space:nowrap}#printablePages .document-frame{height:75dvh}.printable-layout{grid-template-columns:minmax(260px,360px) minmax(0,1fr)}@media(max-width:800px){.printable-layout{grid-template-columns:1fr}.documents-dialog{padding:10px}.documents-tools{gap:6px}.documents-tools label{width:100%}.documents-pages canvas{width:100%}}

.documents-pages.fit-page canvas{width:min(100%,calc(65dvh * var(--document-ratio,.707)));height:auto}.documents-tools .document-fit-label{flex:0 1 170px;min-width:145px}
