*{box-sizing:border-box}body{margin:0;font:16px/1.5 Arial,sans-serif;color:#193f2d;background:#edf3ed}header{display:flex;align-items:center;gap:24px;background:#fff;border-bottom:1px solid #cddbd1;padding:16px 24px}a{color:#245f43}.brand{font-size:25px;font-weight:bold;text-decoration:none}nav{margin-left:auto;display:flex;gap:20px}main{display:grid;grid-template-columns:340px minmax(0,1fr);max-width:1600px;margin:auto}aside{background:white;padding:24px}h1{font-size:26px;line-height:1.2}h2{font-size:18px}section+section{margin-top:24px}aside section{border-top:1px solid #d7e0d9;padding-top:16px}label{display:block;margin:12px 0;font-size:14px;font-weight:600}input,select,button{font:inherit;border:1px solid #bacdbf;border-radius:7px;padding:10px;color:#193f2d;background:white}input[type=number],select{display:block;width:100%;margin-top:6px}input[type=file]{display:block;width:100%;font-size:13px;padding:8px;margin-top:6px}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8ba975;outline-offset:3px}.primary{background:#193f2d;color:white;width:100%;font-weight:bold}.hint{font-size:14px;color:#5a7061}.upload{padding:12px;border:1px dashed #87a78e;border-radius:8px;background:#f6f9f5}.workspace{padding:24px;min-width:0}.toolbar{display:flex;justify-content:space-between;gap:12px}.toolbar button[aria-pressed=true]{background:#193f2d;color:white}#viewport{position:relative;height:clamp(320px,65vh,720px);margin-top:16px;background:#dce8d9;border:1px solid #c0d0bf;border-radius:12px;overflow:hidden}#flat,#three,#fallback{position:absolute;inset:0}#drawing{width:100%;height:100%;padding:30px}#empty{position:absolute;inset:45% 16px auto;text-align:center;color:#587361}#three canvas{display:block}#fallback{padding:24px;text-align:center;display:flex;flex-direction:column}#still{width:100%;height:0;min-height:0;object-fit:contain;flex:1}.legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;margin:14px 0}.legend span:nth-child(2){color:#8d6515}#report,#status{font-size:14px}details{margin-top:24px}summary{cursor:pointer;font-weight:bold}details button{width:100%;margin-top:8px}[hidden]{display:none!important}@media(min-width:1000px){body{height:100dvh;overflow:hidden;display:flex;flex-direction:column}main{flex:1;min-height:0;width:100%}aside{overflow:auto;overscroll-behavior:contain}.workspace{overflow:auto;min-height:0}#viewport{height:clamp(220px,52vh,660px)}}@media(max-width:750px){header{flex-wrap:wrap;gap:10px;padding:14px}nav{font-size:14px}main{grid-template-columns:1fr}.workspace{padding:16px}#viewport{height:380px}aside{padding:20px}}

.layer-lesson{padding:16px 18px;border:1px solid #c2d5c8;border-radius:9px;background:#f9fcf9}.layer-lesson p{font-size:16px;line-height:1.65}.layer-lesson svg{width:100%;max-height:300px;display:block}.layer-lesson a{font-size:15px}#empty{inset:38% 16px auto}#empty button{font-size:16px}#layerHeightEquation{font-weight:600}

.color-export{margin:22px 0 16px;padding:18px;border:1px solid #bacdbf;border-radius:10px;background:#f8fbf8}.color-export h2{margin:0 0 8px}.color-export p{margin:10px 0}.color-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.color-pickers label{font-size:15px}.color-pickers input{display:block;width:100%;height:44px;margin-top:8px;padding:4px;cursor:pointer}.color-export details{margin-top:16px}.color-export li{margin:12px 0}.color-export ol{padding-left:24px}#download{width:100%}.legend span:nth-child(2){color:inherit}

#baseLegend::before,#topLegend::before{content:'';display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;border:1px solid #6b796f;border-radius:3px;background:var(--layer-color)}

.filament-palette{margin:8px 0;padding:12px;border:1px solid #b6cbbf;border-radius:8px;min-width:0}.filament-palette legend{font-size:15px;font-weight:700;padding:0 5px}.filament-swatches{display:grid;grid-template-columns:1fr 1fr;gap:8px}.filament-choice{position:relative;display:flex;align-items:center;gap:8px;margin:0!important;padding:10px 8px;border:1px solid #bdcfc3;border-radius:7px;min-height:50px;cursor:pointer;background:white;font-size:14px!important}.filament-choice input{position:absolute;opacity:0;width:1px!important;height:1px!important;padding:0!important;margin:0!important}.filament-choice:has(input:checked){border:2px solid #193f2d;padding:9px 7px;background:#e5efe8}.filament-choice:has(input:focus-visible){outline:3px solid #4b9cd3;outline-offset:3px}.filament-chip{width:24px;height:24px;flex-shrink:0;border:1px solid #68796e;border-radius:50%}.color-export .custom-colors{margin:8px 0 16px}.custom-colors summary{font-size:14px;font-weight:400}.custom-color-pickers{display:grid;grid-template-columns:1fr 1fr;gap:16px}.custom-color-pickers input{display:block;width:100%;height:44px;margin-top:8px;padding:4px;cursor:pointer}.layer-lesson>details{margin:20px 0}@media(max-width:850px){.color-pickers{grid-template-columns:1fr}}

.filament-settings .color-pickers{grid-template-columns:1fr;gap:6px}.filament-settings .custom-colors{margin:12px 0}.filament-settings .custom-color-pickers{gap:10px}.filament-settings>.hint{margin:10px 0}.workspace>.layer-lesson{margin-top:24px}.filament-settings .color-pickers input{cursor:pointer}

/* Editable-project tools stay secondary to layer design. */
.layer-project{margin:18px 0;padding:14px 0;border-top:1px solid #cedbd2;border-bottom:1px solid #cedbd2}.layer-project summary{font-size:14px;font-weight:600;cursor:pointer}.layer-project-actions{display:flex;flex-wrap:wrap;gap:8px}.layer-project-actions button,.layer-project-open{font-size:14px;padding:9px 12px;border:1px solid #aec4b6;border-radius:6px;background:#f6f9f6;color:#214d39;margin:0;cursor:pointer}.layer-project-open{position:relative;display:block}.layer-project-open input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.layer-project-open:focus-within{outline:3px solid #78a991;outline-offset:3px}.layer-project-open:has(input:disabled){opacity:.5;cursor:default}
