/* LandMark studio */
body.studio{min-height:100vh}
.sbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:22px;height:62px;padding:0 22px;background:rgba(4,20,28,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.sbar nav{display:flex;gap:4px}
.sbar nav a{text-decoration:none;color:var(--mut);font-size:14px;padding:8px 12px;border-radius:8px}
.sbar nav a.on,.sbar nav a:hover{color:var(--fg);background:rgba(58,215,240,.08)}
.sbar .who{margin-left:auto}
.view{padding:34px 0 80px;outline:none}
.view .wrap{width:min(1320px,94vw)}
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.ph h1{font-size:clamp(30px,3.4vw,46px)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}
.pcard{padding:0;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:transform .3s var(--ease),border-color .2s}
.pcard:hover{transform:translateY(-3px);border-color:var(--line2)}
.pcard .th{aspect-ratio:16/10;background:var(--abyss) center/cover;border-bottom:1px solid var(--line);position:relative}
.pcard .th .st{position:absolute;left:12px;top:12px}
.pcard .bd{padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.pcard b{font:700 17px var(--hf)}
.empty-state{padding:60px;text-align:center}
/* wizard */
.steps-bar{display:flex;gap:8px;margin-bottom:26px;flex-wrap:wrap}
.steps-bar span{font:500 12px var(--mf);letter-spacing:.08em;text-transform:uppercase;padding:7px 12px;border-radius:7px;border:1px solid var(--line);color:var(--dim)}
.steps-bar span.on{color:var(--bea2);border-color:rgba(255,138,61,.5)}
.steps-bar span.done{color:var(--sig)}
.kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.kind{all:unset;box-sizing:border-box;cursor:pointer;padding:18px;border-radius:12px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;gap:6px;transition:border-color .2s,transform .2s}
.kind:hover{border-color:var(--line2);transform:translateY(-2px)}
.kind[aria-pressed=true]{border-color:var(--bea);background:rgba(255,138,61,.08)}
.kind b{font:700 16px var(--hf)}.kind small{color:var(--mut);font-size:13px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .full{grid-column:1/-1}
.f{display:flex;flex-direction:column;gap:6px}
.f label{font:500 12px var(--mf);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.f small{color:var(--dim);font-size:12.5px}
input,select,textarea{font:15px var(--bf);color:var(--fg);background:var(--abyss);border:1px solid var(--line2);border-radius:10px;padding:12px 13px;width:100%}
textarea{min-height:92px;resize:vertical}
input[type=color]{padding:3px;height:44px;width:64px}
input[type=checkbox]{width:auto}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.swatches{display:flex;gap:6px}.swatches i{width:26px;height:26px;border-radius:6px;border:1px solid var(--line2)}
.themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.theme{all:unset;box-sizing:border-box;cursor:pointer;border-radius:10px;border:1px solid var(--line);overflow:hidden;font-size:13px}
.theme .pv{height:54px;display:flex;align-items:flex-end;gap:5px;padding:8px}
.theme .pv i{width:16px;height:16px;border-radius:4px}
.theme span{display:block;padding:7px 9px;background:var(--card)}
.theme[aria-pressed=true]{border-color:var(--bea);box-shadow:0 0 0 1px var(--bea)}
.wiz-actions{display:flex;justify-content:space-between;margin-top:26px;gap:12px}
.drop{border:1.5px dashed var(--line2);border-radius:12px;padding:18px;text-align:center;color:var(--mut);cursor:pointer}
.drop.has{border-color:var(--sig);color:var(--fg)}
.tabs-mode{display:flex;gap:8px;margin-bottom:18px}
/* live crew */
.crew{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}
.crewmap{position:relative;min-height:470px;padding:0;overflow:hidden}
.crewmap svg{position:absolute;inset:0;width:100%;height:100%}
.crewmap .node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;width:150px;text-align:center}
.crewmap .node i{width:22px;height:22px;border-radius:50%;border:2px solid var(--dim);background:var(--abyss);transition:all .4s}
.crewmap .node b{font:700 13.5px var(--hf);color:var(--mut)}
.crewmap .node small{font:400 11px var(--mf);color:var(--dim);max-width:150px}
.crewmap .node.running i{border-color:var(--bea);background:var(--bea);box-shadow:0 0 0 8px rgba(255,138,61,.18),0 0 30px var(--bea);animation:pulse 1.4s ease-in-out infinite}
.crewmap .node.running b{color:var(--fg)}
.crewmap .node.done i{border-color:var(--sig);background:var(--sig);box-shadow:0 0 18px var(--sig)}
.crewmap .node.done b{color:var(--fg)}
.crewmap .node.failed i{border-color:#FF5A5A;background:#FF5A5A}
.crewmap .node.skipped i{border-color:var(--mut)}
@keyframes pulse{50%{box-shadow:0 0 0 14px rgba(255,138,61,.05),0 0 40px var(--bea)}}
.log{padding:22px;display:flex;flex-direction:column;gap:10px}
.log li{font-size:14px;color:var(--mut);list-style:none;padding:8px 0;border-bottom:1px dashed var(--line)}
.log li b{color:var(--fg)}
.log ul{padding:0;margin:0}
/* editor */
.ed{display:grid;grid-template-columns:260px 1fr 340px;gap:14px;height:calc(100vh - 62px - 120px);min-height:560px}
.ed .col{overflow:auto;padding:14px}
.seclist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.seclist li{display:flex;align-items:center;gap:6px;padding:8px 9px;border-radius:9px;border:1px solid var(--line);font-size:13.5px;cursor:pointer;background:var(--abyss)}
.seclist li.on{border-color:var(--bea)}
.seclist li.hid{opacity:.45}
.seclist li .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seclist li .ix{font:400 10.5px var(--mf);color:var(--dim);width:18px}
.mini{all:unset;cursor:pointer;width:26px;height:26px;display:grid;place-items:center;border-radius:6px;color:var(--mut);font-size:13px}
.mini:hover{background:rgba(58,215,240,.12);color:var(--fg)}
.mini:focus-visible{outline:2px solid var(--bea)}
.stage-wrap{display:flex;flex-direction:column;gap:10px;min-width:0}
.devbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.devbar .seg{display:inline-flex;border:1px solid var(--line2);border-radius:9px;overflow:hidden}
.devbar .seg button{all:unset;cursor:pointer;padding:7px 12px;font:500 12.5px var(--mf);color:var(--mut)}
.devbar .seg button[aria-pressed=true]{background:rgba(58,215,240,.14);color:var(--fg)}
.frame{flex:1;border-radius:12px;border:1px solid var(--line2);background:#fff;overflow:hidden;display:flex;justify-content:center;background:repeating-linear-gradient(45deg,#061a23 0 10px,#04141C 10px 20px)}
.frame iframe{border:0;width:100%;height:100%;background:#fff;transition:width .4s var(--ease)}
.frame.tablet iframe{width:820px}.frame.phone iframe{width:390px}
.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}
.tabs button{all:unset;cursor:pointer;padding:6px 10px;border-radius:7px;font:500 12px var(--mf);color:var(--mut);border:1px solid transparent}
.tabs button[aria-selected=true]{color:var(--fg);border-color:var(--line2);background:var(--abyss)}
.pane h3{font-size:18px;margin:6px 0 10px}
.pane p,.pane li{font-size:14px}
.pane .kv{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:13.5px}
.pane .kv span{color:var(--dim);font-family:var(--mf);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;padding-top:2px}
.scores{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
.scores div{padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--abyss)}
.scores b{display:block;font:700 26px var(--hf)}.scores small{font:400 11px var(--mf);color:var(--dim);text-transform:uppercase;letter-spacing:.08em}
.issues{list-style:none;padding:0;margin:0}.issues li{padding:7px 0;border-bottom:1px dashed var(--line);color:var(--mut)}
.issues li b{color:var(--bea2);font:500 11px var(--mf);text-transform:uppercase;margin-right:6px}
.hl{display:flex;flex-direction:column;gap:6px}.hl button{all:unset;cursor:pointer;padding:10px 12px;border-radius:9px;border:1px solid var(--line);font-size:14px}
.hl button:hover{border-color:var(--sig)}
table.lt{width:100%;border-collapse:collapse;font-size:13px}table.lt td,table.lt th{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;transition:all .3s var(--ease);background:var(--card2);border:1px solid var(--line2);padding:12px 18px;border-radius:10px;z-index:90;font-size:14px;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{border-color:#FF5A5A}
.busy{opacity:.6;pointer-events:none}
.ab{display:grid;gap:10px}.ab .v{display:grid;grid-template-columns:80px 1fr;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px}
.ab .v img{width:80px;aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:6px}
.billing{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
@media (max-width:1150px){.ed{grid-template-columns:220px 1fr;height:auto}.ed .side-r{grid-column:1/-1}.ed .frame{min-height:620px}}
@media (max-width:800px){.ed{grid-template-columns:1fr}.crew,.form{grid-template-columns:1fr}.sbar{gap:10px;padding:0 12px;overflow-x:auto}.sbar .who{display:none}.crewmap{min-height:560px}
  .frame.tablet iframe{width:100%}}
