
:root{--c950:#0b0908;--c900:#110e0c;--c850:#161210;--c800:#1d1815;--c700:#2a2320;--line:rgba(236,228,216,.12);--line2:rgba(236,228,216,.24);
  --bone:#ece4d8;--mut:#b8ad9f;--steel:#8f99a2;--fire:#e8692c;--fire2:#ff8a3d;--deep:#b8461a;--ok:#8fc79a;--bad:#ff7a66;--warn:#f2c46b;
  --disp:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",Georgia,serif;--body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --panel:#15110f;--panel2:#1b1613;--txt:var(--bone)}
*{box-sizing:border-box}
body{margin:0;color:var(--bone);font:14px/1.5 var(--body);min-height:100vh;-webkit-font-smoothing:antialiased;
  background:radial-gradient(1200px 500px at 50% -120px,rgba(232,105,44,.13),transparent 70%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='120'%3E%3Cg fill='none' stroke='%23ece4d8' stroke-opacity='.035' stroke-width='1'%3E%3Cpath d='M0 20 Q60 0 120 20 T240 20'/%3E%3Cpath d='M0 40 Q60 20 120 40 T240 40'/%3E%3Cpath d='M0 60 Q60 40 120 60 T240 60'/%3E%3Cpath d='M0 80 Q60 60 120 80 T240 80'/%3E%3Cpath d='M0 100 Q60 80 120 100 T240 100'/%3E%3C/g%3E%3C/svg%3E"),var(--c900)}
header{display:flex;align-items:center;gap:22px;padding:12px 22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(11,9,8,.95),rgba(17,14,12,.85));flex-wrap:wrap;position:relative}
header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--fire),transparent);opacity:.55}
.logo{display:flex;flex-direction:column;gap:3px}.logo img{height:38px;width:auto;display:block}
.logo small{font:600 10px/1 var(--body);letter-spacing:.32em;color:var(--mut);text-transform:uppercase}
.order{flex:1;min-width:260px;background:rgba(255,255,255,.02);border:1px solid var(--line);border-left:2px solid var(--fire);border-radius:4px;padding:7px 14px;font-size:13px;color:var(--mut)}
.order b{color:var(--bone);font-weight:600}
.ctrls{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
button{background:transparent;color:var(--bone);border:1px solid var(--line2);border-radius:3px;padding:7px 12px;font:600 12px var(--body);letter-spacing:.04em;cursor:pointer;transition:all .2s cubic-bezier(.2,.7,.2,1)}
button:hover:not(:disabled){border-color:var(--fire2);color:#fff;background:rgba(232,105,44,.08)}
button:disabled{opacity:.35;cursor:not-allowed}
button.pri{background:linear-gradient(180deg,#ef7a36,#b8461a);border-color:#ff9a55;color:#140c08;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 0 .6rem rgba(255,138,61,.25)}
button.pri:hover:not(:disabled){color:#000;background:linear-gradient(180deg,#ff8a3d,#c8521f)}
button.on{border-color:var(--fire);color:#fff;background:rgba(232,105,44,.16)}
input[type=range]{accent-color:var(--fire);width:100%}
select{background:var(--c800);color:var(--bone);border:1px solid var(--line2);border-radius:3px;padding:5px 6px;font:13px var(--body)}
.steps{display:flex;gap:0;padding:10px 22px;overflow-x:auto}
.step{flex:1;min-width:92px;text-align:center;font:500 12.5px var(--disp);letter-spacing:.03em;padding:8px 4px;color:var(--mut);border-bottom:2px solid var(--line);white-space:nowrap}
.step.done{color:var(--ok);border-bottom-color:rgba(143,199,154,.45)}
.step.cur{color:#fff;border-bottom-color:var(--fire);background:linear-gradient(0deg,rgba(232,105,44,.14),transparent)}
main{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;padding:8px 22px 22px}
@media(max-width:1150px){main{grid-template-columns:1fr}}
body.noside main{grid-template-columns:minmax(0,1fr)}body.noside aside{display:none}
aside .card h3{cursor:pointer;user-select:none}aside .card h3 .tg{float:right;margin-top:2px}
aside .card h3 .tg{font:600 11px var(--body);color:var(--mut);border:1px solid var(--line2);border-radius:3px;padding:2px 7px;letter-spacing:.06em;transition:all .2s}
aside .card h3:hover .tg{border-color:var(--fire2);color:#fff}
aside .card.closed>*:not(h3){display:none}aside .card.closed h3{margin-bottom:0}aside .card.closed h3:after{display:none}
#sideTab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:30;writing-mode:vertical-rl;padding:14px 7px;border-radius:4px 0 0 4px;border-right:0;background:rgba(21,17,15,.95);display:none}
body.noside #sideTab{display:block}
.card{background:linear-gradient(180deg,#171310,#120f0d);border:1px solid var(--line);border-radius:4px;padding:14px;margin-bottom:14px;position:relative;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.card:before{content:"";position:absolute;left:14px;right:14px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,138,61,.6),transparent)}
.card h3{margin:0 0 10px;font:600 17px var(--disp);letter-spacing:.04em;color:var(--bone)}
.card h3:after{content:"";display:block;width:34px;height:2px;margin-top:6px;background:var(--fire)}
canvas{display:block;max-width:100%;height:auto;border-radius:3px;background:#0c0a08;touch-action:none;border:1px solid rgba(236,228,216,.06)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}
.ctl{display:flex;flex-direction:column;gap:3px;min-width:150px;flex:1}
.ctl label{font-size:12px;color:var(--mut)}
.btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.col{flex-direction:column}
.kv{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid rgba(236,228,216,.06);font-size:13px}
.kv span:first-child{color:var(--mut)}
.bar{height:6px;background:#2a2320;border-radius:3px;overflow:hidden;margin-top:2px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--deep),var(--fire2))}
.swatch{display:inline-block;width:46px;height:14px;border-radius:2px;vertical-align:middle;border:1px solid #000;margin-right:6px}
#meister{font-size:13.5px;background:rgba(232,105,44,.06);border-left:2px solid var(--fire);padding:10px 12px;border-radius:2px;min-height:70px;font-family:var(--disp);font-style:italic}
#log{font-size:12.5px;max-height:260px;overflow:auto}
#log div{padding:4px 0;border-bottom:1px solid rgba(236,228,216,.06)}
#log .bad{color:var(--bad)}#log .ok{color:var(--ok)}#log .warn{color:var(--warn)}
.view{display:none}.view.act{display:block;animation:fade .35s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1}}
.steel{background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:3px;padding:9px 11px;font-size:12.5px;flex:1;min-width:220px;color:var(--mut)}
.steel b{font:600 14px var(--disp);color:var(--bone)}
.note{font-size:12px;color:var(--mut)}
.score{border-collapse:collapse;width:100%;font-size:13px}.score td{padding:5px 8px;border-bottom:1px solid rgba(236,228,216,.07)}.score td:last-child{text-align:right;font-weight:600;white-space:nowrap}
.grade{font:600 32px var(--disp);color:var(--fire2);letter-spacing:.02em}
.sub{background:rgba(255,255,255,.015);border:1px solid var(--line);border-radius:3px;padding:10px 12px;margin-top:8px}
.sub h4{margin:0 0 6px;font:600 14px var(--disp);letter-spacing:.03em;color:#f0c9a0}
.duo{display:grid;grid-template-columns:minmax(0,440fr) minmax(0,620fr);gap:14px;align-items:start}
.duo canvas{width:100%}
@media(max-width:760px){.duo{grid-template-columns:1fr}}
.modal{position:fixed;inset:0;background:rgba(5,4,3,.8);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:50}
.modal.open{display:flex}
.mbox{background:linear-gradient(180deg,#181411,#110e0c);border:1px solid rgba(255,138,61,.45);border-radius:4px;padding:14px;width:min(1260px,97vw);max-height:97vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.mhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.mhead h3{margin:0;font:600 19px var(--disp);letter-spacing:.03em;color:var(--bone)}
.stgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px}
@media(max-width:900px){.stgrid{grid-template-columns:1fr}}
#stCv{width:100%}
kbd{background:var(--c800);border:1px solid var(--line2);border-radius:2px;padding:0 4px;font-size:11px}
#todo b{font-weight:600}

/* ---- Feinschliff: Material, Tiefe, Licht ---- */
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
header,main,.steps{position:relative;z-index:1}
.card{background:linear-gradient(180deg,rgba(30,25,21,.97),rgba(15,12,10,.97));border:1px solid rgba(236,228,216,.09);box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 -1px 0 rgba(0,0,0,.6) inset,0 18px 40px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.4)}
.card h3{font-size:18px;text-shadow:0 1px 0 rgba(0,0,0,.6)}
canvas{border:1px solid rgba(0,0,0,.9);box-shadow:0 0 0 1px rgba(236,228,216,.07),0 0 0 4px #0d0b09,0 0 0 5px rgba(236,228,216,.08),0 12px 30px rgba(0,0,0,.55);border-radius:2px;margin:5px 0}
button{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,0) 60%),#1a1613;box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 2px 4px rgba(0,0,0,.4)}
button:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 2px rgba(0,0,0,.6) inset}
button.on{background:linear-gradient(180deg,rgba(255,138,61,.22),rgba(232,105,44,.08));box-shadow:0 0 .5rem rgba(255,138,61,.18),0 1px 0 rgba(255,255,255,.08) inset}
button.pri{box-shadow:0 0 .7rem rgba(255,138,61,.3),0 1px 0 rgba(255,255,255,.35) inset,0 3px 6px rgba(0,0,0,.45)}
.sub{background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008));box-shadow:0 1px 0 rgba(255,255,255,.03) inset}
input[type=range]{-webkit-appearance:none;appearance:none;height:22px;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(180deg,#0b0908,#2a2320);box-shadow:0 1px 0 rgba(255,255,255,.06),0 1px 2px rgba(0,0,0,.8) inset}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3e6,#ff9a55 35%,#b8461a 80%);box-shadow:0 0 6px rgba(255,138,61,.5),0 2px 4px rgba(0,0,0,.6);border:1px solid #2a1206}
input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:#1c1714}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3e6,#ff9a55 35%,#b8461a 80%);border:1px solid #2a1206}
select{background:linear-gradient(180deg,#221c18,#161210);box-shadow:0 1px 0 rgba(255,255,255,.05) inset}
.step{transition:all .3s}.step.cur{text-shadow:0 0 12px rgba(255,138,61,.5)}
.order{background:linear-gradient(90deg,rgba(232,105,44,.08),rgba(255,255,255,.01));box-shadow:0 1px 0 rgba(255,255,255,.03) inset}
header{box-shadow:0 10px 30px rgba(0,0,0,.5)}
#meister{background:linear-gradient(90deg,rgba(232,105,44,.1),rgba(232,105,44,.02))}
#todo>div{transition:color .3s}

.stage3d{position:relative;height:460px;border-radius:3px;overflow:hidden;background:radial-gradient(ellipse 70% 60% at 50% 42%,#3b2d23 0%,#1a1410 55%,#0b0908 100%);box-shadow:0 0 0 1px rgba(236,228,216,.08),0 0 0 4px #0d0b09,0 0 0 5px rgba(236,228,216,.08),0 14px 34px rgba(0,0,0,.6) inset,0 12px 30px rgba(0,0,0,.55)}
.stage3d:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 0%,rgba(255,170,110,.12),transparent 60%)}
#cv3d{width:100%;height:100%!important;display:block;border:0;box-shadow:none;margin:0;cursor:grab;background:transparent}
#cv3d:active{cursor:grabbing}
.st3dlogo{position:absolute;right:14px;bottom:12px;width:150px;height:27px;background-size:contain;background-repeat:no-repeat;opacity:.8;pointer-events:none}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#2a2320;border-radius:4px}
