*{box-sizing:border-box}body{margin:0;background:#faf7f0;color:#463344;font:15px/1.6 system-ui,sans-serif}a{color:inherit}main{max-width:1400px;margin:auto;padding:45px 24px}h1{font:clamp(34px,5vw,56px)/1.12 Georgia;margin:12px 0 20px}h2{font:28px Georgia}h3{font-size:16px}.eyebrow{font-size:11px;letter-spacing:2px;color:#926656}.intro{max-width:760px;color:#786d74}.studio-heading{display:flex;justify-content:space-between;gap:25px;align-items:end;flex-wrap:wrap;margin-bottom:24px}button,input,select,textarea{font:inherit;color:inherit}button,.upload{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 14px;border:1px solid #d7ccc1;border-radius:6px;background:#fffdf8;cursor:pointer;text-decoration:none;font-size:13px}button:hover,.upload:hover{background:#eee4dc}button.primary{background:#463344;color:white;border-color:#463344}button:disabled{opacity:.5;cursor:wait}input,select,textarea{width:100%;border:1px solid #d7ccc1;background:#fffefb;border-radius:5px;padding:9px;display:block;margin-top:6px;min-width:0}input[type=checkbox]{width:auto;display:inline-block;margin:0 7px 0 0}input[type=color]{height:40px;padding:3px}input[type=range]{padding:0}.upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.upload:focus-within{outline:3px solid #b65f4c}label{font-size:12px;display:block;margin:10px 0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row label{flex:1;min-width:100px}.editor{display:grid;grid-template-columns:290px minmax(0,1fr);gap:22px}.panel{background:#fffdf8;border:1px solid #e1d7cd;border-radius:12px;padding:20px}.settings{align-self:start}.settings details{padding:12px 0;border-top:1px solid #e1d7cd}.settings summary{cursor:pointer;font-weight:600}.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.muted{color:#786d74;font-size:12px}.status{padding:14px 18px;border-radius:7px;background:#e6eadf;font-size:13px;min-height:48px}.error{background:#f4ded6;color:#8d3129}.tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:15px}.tools label{max-width:180px;flex:1}.chart-wrap{background:#ede6dc;border:1px solid #d7ccc1;border-radius:7px;overflow:auto;max-height:650px;min-height:180px;overscroll-behavior:contain}canvas{display:block;touch-action:none;max-width:none}#palette{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}#palette button{font-size:12px;padding:7px 10px}#palette button::before{content:'';width:18px;height:18px;border-radius:3px;background:var(--swatch);border:1px solid #0002}#palette button[aria-pressed=true]{outline:2px solid #b65f4c;outline-offset:1px}.count-table{overflow:auto;margin-top:20px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:10px;text-align:left;border-bottom:1px solid #e1d7cd}textarea{resize:vertical;min-height:145px;font:12px/1.5 monospace}#row-instructions{max-height:340px;overflow:auto;list-style:none;padding:0;font:13px/1.7 monospace}#row-instructions li{padding:8px;border-bottom:1px solid #ddd}#assumptions{font-size:13px;padding-left:22px}#assumptions li{margin:12px 0}.guide{max-width:850px;margin:45px auto}.guide p,.guide li{color:#756a72}.guide a{text-decoration:underline}footer{padding:25px 5%;border-top:1px solid #e1d7cd;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:15px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b65f4c;outline-offset:3px}[hidden]{display:none!important}@media(max-width:850px){.editor{grid-template-columns:1fr}.settings{order:0}.chart-wrap{max-height:500px}main{padding:28px 16px}.studio-heading{gap:12px}.panel{padding:16px}}@media print{header,.settings,.tools,.exports,footer{display:none!important}.editor{display:block}.chart-wrap{max-height:none;overflow:visible}canvas{max-width:100%;height:auto}}
.editor>.panel{min-width:0}.chart-wrap{width:100%}.settings p{overflow-wrap:anywhere}
.studio-heading>.row>button,.studio-heading>.row>.upload{height:44px;min-height:44px;margin:0;padding:0 14px;font:500 13px/1 system-ui,sans-serif}
