/* The Forge Studio — professional console shell */
.forge-studio-page{min-height:100vh;background:radial-gradient(circle at 50% -10%,rgba(217,4,22,.08),transparent 34rem),#040404;color:#e9e9e9}.forge-console-wrap{max-width:1700px!important}.studio-page-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1rem}.studio-kicker{display:flex;align-items:center;gap:.5rem;color:#666;font:500 .54rem "IBM Plex Mono",monospace;letter-spacing:.12em}.studio-kicker i{width:6px;height:6px;border-radius:50%;background:#5cff3f;box-shadow:0 0 8px rgba(92,255,63,.7)}.studio-page-heading h1{margin-top:.35rem;font:500 clamp(2.6rem,4vw,4.4rem)/.9 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:-.025em}.studio-status-rail{display:grid;grid-template-columns:repeat(4,1fr);min-width:520px;border:1px solid #222;background:#080808}.studio-status-rail span{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:38px;border-right:1px solid #1a1a1a;color:#626262;font:500 .42rem "IBM Plex Mono",monospace;letter-spacing:.08em}.studio-status-rail span:last-child{border-right:0}.studio-status-rail i{width:5px;height:5px;border-radius:50%;background:#5cff3f;box-shadow:0 0 6px rgba(92,255,63,.55)}
.pro-studio-shell{border:1px solid #252525;background:#080808;box-shadow:0 35px 90px rgba(0,0,0,.62);overflow:hidden}.pro-topbar{min-height:50px;display:grid;grid-template-columns:1fr auto auto auto;gap:.8rem;align-items:center;padding:0 .8rem;border-bottom:1px solid #202020;background:linear-gradient(180deg,#121212,#090909)}.pro-project{display:flex;align-items:baseline;gap:.7rem}.pro-project strong{font:500 .6rem "IBM Plex Mono",monospace;letter-spacing:.08em}.pro-project span{font:500 .44rem "IBM Plex Mono",monospace;color:#535353}.workspace-tabs{display:flex;height:100%}.workspace-tabs button{min-width:70px;border:0;border-left:1px solid #1d1d1d;background:transparent;color:#656565;font:500 .46rem "IBM Plex Mono",monospace;letter-spacing:.08em}.workspace-tabs button.active{color:#efefef;background:#151515;box-shadow:inset 0 -2px 0 #d90416}.pro-transport{display:flex;gap:4px}.pro-transport button{width:31px;height:28px;border:1px solid #2b2b2b;background:#111;color:#747474}.pro-transport button:hover,.pro-transport button.active{color:#fff;border-color:#4b4b4b;background:#181818}.pro-transport button.is-on{border-color:#8d1c28;box-shadow:0 0 10px rgba(217,4,22,.16)}.pro-transport svg{width:12px;height:12px;fill:currentColor}.pro-transport .record span{display:block;width:8px;height:8px;margin:auto;border-radius:50%;background:#8c1622}.pro-transport .record.is-on span{background:#ff2638;box-shadow:0 0 8px #ff2638}.pro-readout{white-space:nowrap;color:#5d5d5d;font:500 .44rem "IBM Plex Mono",monospace}.pro-readout b{font-size:.56rem;color:#ddd}.pro-readout strong{font-weight:500;color:#888}
.session-media-bus{display:grid;grid-template-columns:auto minmax(220px,1fr) minmax(360px,1.4fr) auto;align-items:center;gap:.7rem;min-height:50px;padding:.45rem .7rem;border-bottom:1px solid #1d1d1d;background:#090909}.session-load{height:31px;padding:0 .8rem;border:1px solid #5a1520;background:#16090b;color:#e0e0e0;font:500 .42rem "IBM Plex Mono",monospace;letter-spacing:.07em}.session-load:hover{border-color:#d90416;box-shadow:0 0 14px rgba(217,4,22,.18)}.session-source{display:flex;align-items:center;gap:.6rem;min-width:0;font-family:"IBM Plex Mono",monospace}.session-source span{font-size:.33rem;color:#4c4c4c}.session-source strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a7a7a7;font-size:.42rem;font-weight:500}.session-route{display:flex;align-items:center;gap:4px;overflow:auto}.session-route span{margin-right:2px;color:#4a4a4a;font:500 .32rem "IBM Plex Mono",monospace}.session-route b{padding:.22rem .34rem;border:1px solid #202020;background:#0c0c0c;color:#4d4d4d;font:500 .3rem "IBM Plex Mono",monospace}.session-route b.is-live{color:#e1e1e1;border-color:#4d151d;background:#15090b;box-shadow:inset 0 -1px 0 #d90416}.session-status{display:flex;align-items:center;gap:.4rem;white-space:nowrap;color:#6b6b6b;font:500 .35rem "IBM Plex Mono",monospace}.session-status i{width:6px;height:6px;border-radius:50%;background:#5cff3f;box-shadow:0 0 8px rgba(92,255,63,.65)}.session-status.is-playing{color:#c3c3c3}.session-status.is-playing i{background:#ff2638;box-shadow:0 0 9px rgba(255,38,56,.8)}
.pro-workspace{display:grid;grid-template-columns:190px minmax(690px,1fr) 390px;min-height:690px}.pro-left-panel{border-right:1px solid #1c1c1c;background:#080808}.panel-tabs{display:grid;grid-template-columns:1fr 1fr;height:34px;border-bottom:1px solid #1c1c1c}.panel-tabs button{border:0;background:#0b0b0b;color:#555;font:500 .44rem "IBM Plex Mono",monospace}.panel-tabs button.active{color:#bbb;background:#121212;box-shadow:inset 0 -1px 0 #d90416}.pro-track{height:62px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:.5rem;padding:0 .6rem;border-bottom:1px solid #141414;color:#6f6f6f;font:500 .45rem "IBM Plex Mono",monospace}.pro-track>b{font-weight:500;color:#3f3f3f}.pro-track>span{display:flex;flex-direction:column;color:#aaa;font-size:.5rem}.pro-track small{color:#464646;font-size:.38rem}.pro-track em{font-style:normal;letter-spacing:.12em;color:#444}.pro-track.active{background:linear-gradient(90deg,rgba(217,4,22,.1),#0b0b0b 45%);box-shadow:inset 2px 0 0 #d90416}.pro-track.ai-track span{color:#c79da3}.add-track{width:calc(100% - 1.2rem);margin:.7rem .6rem;height:32px;border:1px dashed #2c2c2c;background:transparent;color:#5f5f5f;font:500 .44rem "IBM Plex Mono",monospace}.add-track:hover{color:#ccc;border-color:#555}
.pro-arrange-panel{display:grid;grid-template-rows:34px 355px 1fr;min-width:0;background:#060606}.arrange-toolbar{display:flex;align-items:center;gap:1rem;padding:0 .7rem;border-bottom:1px solid #181818;background:#0a0a0a;color:#535353;font:500 .4rem "IBM Plex Mono",monospace}.arrange-toolbar b{margin-left:auto;color:#666;font-weight:500}.pro-timeline{position:relative;overflow:hidden;background-color:#070707;background-image:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:56px 100%}.timeline-ruler{height:26px;display:grid;grid-template-columns:repeat(7,1fr);align-items:center;padding:0 .45rem;border-bottom:1px solid #191919;color:#444;font:500 .34rem "IBM Plex Mono",monospace}.pro-timeline .lane{position:relative;height:54px;border-bottom:1px solid rgba(255,255,255,.04)}.playhead{position:absolute;z-index:8;top:0;bottom:0;left:38%;width:1px;background:#ff2d40;box-shadow:0 0 6px rgba(255,45,64,.45)}.pro-timeline .clip{position:absolute;top:7px;height:40px;padding:.35rem .45rem;border:1px solid #292929;background:#111;color:#818181;font:500 .4rem "IBM Plex Mono",monospace;overflow:hidden}.pro-timeline .clip:after{content:"";position:absolute;left:5px;right:5px;bottom:6px;height:10px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0 2px,transparent 2px 5px);opacity:.35}.clip-drums{background:#1a0d10!important;border-color:#4d161d!important}.clip-bass{background:#0d1510!important}.clip-vocal{background:#141019!important}.clip-ai{background:#160f11!important}
.editor-dock{display:grid;grid-template-rows:30px 42px minmax(205px,1fr);min-height:285px;border-top:1px solid #1a1a1a;background:#080808}.editor-tabs{display:flex;border-bottom:1px solid #171717}.editor-tabs button{min-width:82px;border:0;border-right:1px solid #171717;background:#0a0a0a;color:#555;font:500 .4rem "IBM Plex Mono",monospace}.editor-tabs button.active{color:#ddd;background:#111;box-shadow:inset 0 -1px 0 #d90416}.eq-console-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 .55rem;border-bottom:1px solid #191919;background:#090909}.eq-console-head>div:first-child{display:flex;align-items:baseline;gap:.65rem}.eq-console-head b{font:500 .46rem "IBM Plex Mono",monospace;color:#aaa}.eq-console-head span{font:500 .33rem "IBM Plex Mono",monospace;color:#4f4f4f}.eq-side-controls{display:flex;align-items:center;gap:4px}.eq-side-controls button{height:24px;padding:0 .45rem;border:1px solid #303030;background:#101010;color:#727272;font:500 .34rem "IBM Plex Mono",monospace}.eq-side-controls button.active,.eq-side-controls button.is-on{color:#fff;border-color:#6a1822;background:#1a0a0d}.eq-side-controls div{display:flex;align-items:center;gap:.35rem;padding-left:.35rem;border-left:1px solid #1b1b1b}.eq-side-controls strong{font:500 .35rem "IBM Plex Mono",monospace;color:#999}
.eq-slider-bank{display:grid;grid-template-columns:repeat(31,minmax(25px,1fr));min-width:840px;padding:.55rem .45rem .35rem;overflow-x:auto;background:linear-gradient(180deg,#0a0a0a,#070707)}.eq-band{display:grid;grid-template-rows:13px 1fr 16px 12px 14px;justify-items:center;color:#4d4d4d;font:500 .29rem "IBM Plex Mono",monospace}.eq-band em{font-style:normal;color:#8a8a8a;white-space:nowrap}.eq-band small{font-size:.28rem;color:#393939}.eq-band output{font-size:.26rem;color:#5c5c5c;white-space:nowrap}
.pro-monitor-panel{padding:.65rem;border-left:1px solid #1d1d1d;background:#080808}.monitor-head{height:29px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #191919;color:#606060;font:500 .42rem "IBM Plex Mono",monospace}.monitor-head b{font-weight:500;color:#858585}.visual-monitor{--visual-gain:1;--visual-sens:1;position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid #292929;background:radial-gradient(circle at 50% 48%,rgba(217,4,22,.2),transparent 28%),#070707;box-shadow:inset 0 0 60px rgba(0,0,0,.9)}.session-video{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;background:#000;opacity:0;pointer-events:none}.visual-monitor.has-video .session-video{opacity:1}.monitor-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;opacity:.16}.monitor-vignette{position:absolute;inset:0;background:radial-gradient(circle,transparent 32%,rgba(0,0,0,.78) 100%)}.monitor-spectrum{position:absolute;z-index:2;left:7%;right:7%;bottom:12%;height:36%;display:flex;align-items:end;gap:3px;transform:scaleY(var(--visual-gain));transform-origin:bottom}.monitor-spectrum i{flex:1;height:var(--h);background:linear-gradient(180deg,#ff3247,#650008);box-shadow:0 0 calc(4px * var(--visual-sens)) rgba(217,4,22,.25)}.monitor-title{position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.monitor-title small,.monitor-title span{color:#5f5f5f;font:500 .4rem "IBM Plex Mono",monospace;letter-spacing:.12em}.monitor-title strong{font:500 clamp(1.7rem,2.6vw,2.7rem) "Barlow Condensed",sans-serif;letter-spacing:.08em}.visual-monitor.has-video .monitor-grid,.visual-monitor.has-video .monitor-vignette,.visual-monitor.has-video .monitor-spectrum,.visual-monitor.has-video .monitor-title{opacity:.08}.monitor-controls{margin-top:.55rem;padding:.55rem;border:1px solid #1e1e1e;background:#0a0a0a}.monitor-scrub{height:5px;background:#202020;cursor:pointer}.monitor-scrub span{display:block;width:0;height:100%;background:#d90416;box-shadow:0 0 8px rgba(217,4,22,.45)}.monitor-time{margin-top:.4rem;color:#555;font:500 .38rem "IBM Plex Mono",monospace}.monitor-buttons{display:flex;flex-wrap:wrap;gap:4px;margin-top:.45rem}.monitor-buttons button,.visualizer-button-bank button{height:24px;border:1px solid #303030;background:#101010;color:#737373;font:500 .33rem "IBM Plex Mono",monospace}.monitor-buttons button{padding:0 .48rem}.monitor-buttons button.active,.visualizer-button-bank button.active{color:#fff;border-color:#6f1a24;background:#1a0a0e;box-shadow:inset 0 -1px 0 #d90416}.visualizer-button-bank{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:.45rem}.visualizer-button-bank button{padding:0 .15rem}.visualizer-mini-sliders{display:grid;grid-template-columns:1fr 1fr;gap:.45rem .7rem;margin-top:.55rem;padding-top:.55rem;border-top:1px solid #191919}.visualizer-mini-sliders label{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:.4rem;color:#515151;font:500 .34rem "IBM Plex Mono",monospace}.visual-range{width:100%;accent-color:#d90416}.inspector-panel{margin-top:.55rem;border:1px solid #1c1c1c;background:#090909}.inspector-row{min-height:32px;display:grid;grid-template-columns:88px 1fr;align-items:center;padding:0 .5rem;border-bottom:1px solid #151515;font:500 .4rem "IBM Plex Mono",monospace}.inspector-row:last-child{border-bottom:0}.inspector-row span{color:#4f4f4f}.inspector-row strong{color:#898989;font-weight:500}
.pro-mixer-dock{min-height:340px;display:grid;grid-template-columns:42px minmax(720px,1fr) 170px;border-top:1px solid #1f1f1f;background:#080808}.mixer-label{display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;transform:rotate(180deg);border-right:1px solid #1b1b1b;color:#505050;font:500 .42rem "IBM Plex Mono",monospace;letter-spacing:.12em}.pro-mixer-bank{display:grid;grid-template-columns:repeat(6,minmax(108px,1fr))}.pro-channel{display:grid;grid-template-rows:22px 25px 66px 42px 70px 88px 22px;align-items:center;padding:.55rem .5rem;border-right:1px solid #171717;background:linear-gradient(180deg,#0b0b0b,#080808)}.channel-name{color:#aaa;font:500 .48rem "IBM Plex Mono",monospace;letter-spacing:.06em}.channel-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.channel-buttons button{height:20px;border:1px solid #2e2e2e;background:#101010;color:#696969;font:500 .32rem "IBM Plex Mono",monospace}.channel-buttons button.is-on[data-control="mute"]{color:#e3b23c;border-color:#66521f}.channel-buttons button.is-on[data-control="solo"]{color:#5cff3f;border-color:#285d28}.channel-buttons button.is-on[data-control="record"]{color:#ff2638;border-color:#6f1922}.channel-knobs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.mini-knob{position:relative;display:grid;justify-items:center;gap:2px}.mini-knob input,.pan-knob input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ns-resize}.mini-knob i,.pan-knob i{position:relative;display:block;width:22px;height:22px;border:1px solid #343434;border-radius:50%;background:radial-gradient(circle at 38% 32%,#252525,#090909 72%);box-shadow:inset 0 0 5px #000}.mini-knob i:after,.pan-knob i:after{content:"";position:absolute;left:50%;top:2px;width:1px;height:7px;background:#ff4054;transform-origin:50% 9px;transform:translateX(-50%) rotate(var(--rot,0deg));box-shadow:0 0 4px rgba(255,64,84,.6)}.mini-knob small{font:500 .27rem "IBM Plex Mono",monospace;color:#474747}.mini-knob output{font:500 .25rem "IBM Plex Mono",monospace;color:#5d5d5d}.pan-knob{position:relative;display:grid;justify-items:center;align-items:center;gap:2px}.pan-knob i{width:27px;height:27px}.pan-knob output{font:500 .26rem "IBM Plex Mono",monospace;color:#5e5e5e}.meter{position:relative;width:12px;height:60px;margin:auto;border:1px solid #252525;background:#070707;overflow:hidden}.meter i{position:absolute;left:1px;right:1px;bottom:1px;height:0;background:linear-gradient(180deg,#ff2638 0 15%,#d5a735 16% 30%,#5cff3f 31% 100%);box-shadow:0 0 6px rgba(92,255,63,.25)}.fader{--level:75%;position:relative;width:8px;height:84px;margin:auto;background:linear-gradient(90deg,#080808,#2f0f14 48%,#70101b 50%,#2f0f14 52%,#080808)}.fader input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ns-resize;writing-mode:vertical-lr;direction:rtl}.fader b{position:absolute;left:50%;bottom:var(--level);width:24px;height:9px;transform:translate(-50%,50%);border:1px solid #d6d6d6;background:linear-gradient(#d8d8d8 0 34%,#ff3147 35% 60%,#666 61%);box-shadow:0 0 7px rgba(255,38,58,.6),0 1px 4px #000}.channel-value{justify-self:center;color:#666;font:500 .3rem "IBM Plex Mono",monospace}.pro-master{display:grid;grid-template-rows:28px 1fr auto 26px;gap:.55rem;padding:.65rem;border-left:1px solid #1b1b1b;background:#070707}.pro-master .module-label{color:#aaa;font:500 .42rem "IBM Plex Mono",monospace;letter-spacing:.1em}.master-meter{display:flex;justify-content:center;align-items:end;gap:5px;height:128px}.master-meter i{width:13px;height:2%;border:1px solid #232323;background:linear-gradient(180deg,#ff2638 0 14%,#d2a62f 15% 30%,#5cff3f 31% 100%);box-shadow:0 0 7px rgba(92,255,63,.25)}.master-output{display:grid;gap:.5rem}.master-output label{display:grid;gap:.3rem}.master-output span,.master-output output{font:500 .31rem "IBM Plex Mono",monospace;color:#5f5f5f}.master-output-range{width:100%;accent-color:#d90416}.master-output button{height:27px;border:1px solid #313131;background:#101010;color:#777;font:500 .35rem "IBM Plex Mono",monospace}.master-output button.is-on{color:#ff6875;border-color:#6e1822;background:#19090c}.master-value{color:#8b8b8b;font:500 .35rem "IBM Plex Mono",monospace}.studio-build-note{display:flex;align-items:flex-start;gap:1rem;padding:.75rem .9rem;border:1px solid #1d1d1d;border-top:0;background:#070707}.studio-build-note span{white-space:nowrap;color:#d90416;font:500 .37rem "IBM Plex Mono",monospace;letter-spacing:.08em}.studio-build-note p{margin:0;color:#555;font:400 .78rem/1.5 "Barlow Condensed",sans-serif}
@media(max-width:1280px){.studio-status-rail{min-width:0}.pro-workspace{grid-template-columns:170px minmax(650px,1fr) 340px}.visualizer-button-bank{grid-template-columns:repeat(4,1fr)}}@media(max-width:1040px){.studio-page-heading{align-items:flex-start;flex-direction:column}.studio-status-rail{width:100%}.pro-topbar{grid-template-columns:1fr auto}.workspace-tabs{grid-column:1/-1;height:35px}.pro-readout{display:none}.pro-workspace{grid-template-columns:155px minmax(650px,1fr);overflow-x:auto}.pro-monitor-panel{grid-column:1/-1;border-left:0;border-top:1px solid #1d1d1d}.session-media-bus{grid-template-columns:auto 1fr}.session-route{grid-column:1/-1}.pro-mixer-dock{overflow-x:auto}}@media(max-width:680px){.studio-status-rail{grid-template-columns:1fr 1fr}.pro-topbar{grid-template-columns:1fr;padding:.55rem}.workspace-tabs{overflow-x:auto}.session-media-bus{grid-template-columns:1fr}.session-load{width:100%}.pro-workspace{grid-template-columns:125px minmax(620px,1fr)}.pro-monitor-panel{min-width:100vw}.studio-build-note{display:block}.studio-build-note p{margin-top:.4rem}.pro-mixer-dock{grid-template-columns:34px minmax(700px,1fr) 150px}}
