:root{--bg: #0d1117;--panel: #161b22;--line: #263040;--ink: #e6edf3;--dim: #8b98a8;--copper: #d9822b;--ok: #3fb950;--warn: #d29922;--bad: #f85149;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit;color:inherit}.app{display:grid;height:100vh;grid-template-columns:290px 1fr 330px;grid-template-rows:auto 1fr;grid-template-areas:"head head head" "left main right"}header{grid-area:head;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--panel)}header h1{margin:0;font-size:20px;letter-spacing:-.01em}header h1:before{content:"▦ ";color:var(--copper)}header p{margin:2px 0 0;color:var(--dim);font-size:13px}.headline{text-align:right}.headline strong{display:block;color:var(--copper);font-size:18px}.headline span{color:var(--dim);font-size:12px}.headline.busy{opacity:.45}aside{padding:16px;overflow-y:auto;background:var(--panel)}aside.left{grid-area:left;border-right:1px solid var(--line)}aside.right{grid-area:right;border-left:1px solid var(--line)}aside h2{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:18px 0 8px}aside h2:first-child{margin-top:0}aside h2 em{color:var(--warn);font-style:normal}.samples{list-style:none;margin:0;padding:0;display:grid;gap:6px}.samples button{width:100%;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer;background:#1b2230;border:1px solid var(--line)}.samples button:hover{border-color:#3a4761}.samples button.on{border-color:var(--copper);background:#24201c}.samples strong{display:block;font-size:13px}.samples span{display:block;color:var(--dim);font-size:11.5px;margin-top:2px}.upload{display:block;margin-top:10px;padding:10px;border:1px dashed var(--line);border-radius:8px;cursor:pointer}.upload input{display:none}.upload span{color:var(--dim);font-size:12px}.fields{display:grid;gap:12px}.field label{display:block;font-size:12.5px;margin-bottom:4px}.field .row{display:flex;align-items:center;gap:8px}.field input[type=range]{flex:1;accent-color:var(--copper)}.field output{min-width:62px;text-align:right;color:var(--dim);font-variant-numeric:tabular-nums;font-size:12px}.field select{width:100%;padding:5px;background:#1b2230;border:1px solid var(--line);border-radius:6px}.reset{margin-top:4px;padding:7px;background:#1b2230;border:1px solid var(--line);border-radius:7px;cursor:pointer;color:var(--dim)}main{grid-area:main;display:flex;flex-direction:column;min-width:0}.tabs{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);align-items:center}.tabs button{padding:5px 12px;border-radius:999px;background:transparent;border:1px solid var(--line);cursor:pointer}.tabs button.on{background:var(--copper);border-color:var(--copper);color:#1b1300;font-weight:600}.tabs .share{margin-left:auto;color:var(--dim);font-size:12px;cursor:pointer;text-decoration:underline}.viewer{position:relative;flex:1;min-height:0}.viewer canvas{display:block}.viewer-controls{position:absolute;left:12px;bottom:12px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:8px 12px;background:#0d1117d1;border:1px solid var(--line);border-radius:10px;font-size:12px}.viewer-controls label{display:flex;align-items:center;gap:5px}.viewer-controls .slice input{width:110px;accent-color:var(--copper)}.viewer-controls .hint{color:var(--dim)}.preview{flex:1;overflow:auto;display:grid;place-items:center;background:#fff}.preview img{max-width:100%;max-height:100%}.error{margin:10px 12px;padding:10px 12px;border-radius:8px;background:#2a1618;border:1px solid var(--bad);color:#ffb4ae;font-size:13px}.stages{list-style:none;margin:0;padding:0;display:grid;gap:8px}.stages li{display:flex;gap:8px;opacity:.4;font-size:12.5px}.stages li.done,.stages li.running{opacity:1}.stages .tick{width:14px;color:var(--ok)}.stages li.running .tick{color:var(--copper)}.stages strong{display:block;font-weight:600}.stages span{color:var(--dim)}.stats{display:grid;gap:4px;margin:0}.stats>div{display:flex;justify-content:space-between;font-size:12.5px;border-bottom:1px solid #1d2532;padding:3px 0}.stats dt{color:var(--dim)}.stats dd{margin:0;font-variant-numeric:tabular-nums}.warnings{list-style:none;margin:0;padding:0;display:grid;gap:6px}.warnings li{font-size:12px;color:var(--warn);background:#1f1b12;border:1px solid #3a2f16;border-radius:7px;padding:7px 9px}.warnings li.clickable{cursor:pointer}.warnings li.clickable:hover{border-color:var(--warn)}.warnings em{color:var(--dim);font-style:normal}.ok{color:var(--ok);font-size:12.5px;margin:0}.downloads{display:flex;flex-wrap:wrap;gap:6px}.downloads a{font-size:12px;padding:6px 9px;border-radius:7px;background:#1b2230;border:1px solid var(--line);color:var(--ink);text-decoration:none}.downloads a:hover{border-color:var(--copper)}.tip{color:var(--dim);font-size:11.5px;margin-top:8px}@media (max-width: 1100px){.app{grid-template-columns:1fr;grid-template-rows:auto auto 60vh auto;grid-template-areas:"head" "left" "main" "right";height:auto}aside{border:0;border-bottom:1px solid var(--line)}}
