/* Crystal Studio (glb.petes.casa) - phone first, same building blocks as Fix. */
[hidden]{display:none !important}
:root{--ground:#F2F4F8;--card:#FFFFFF;--ink:#0F172A;--muted:#526077;--line:#DCE2EC;--field:#C3CCDA;--chip:#E8EDF5;
  --blue:#1D4ED8;--blue-ink:#1E3A8A;--blue-soft:#E0E9FF;--ice:#67E8F9;--bad:#B42318;--bad-bg:#FDECEA;--warn:#92400E;--warn-bg:#FEF3C7;
  --stage:#060A14}
@media (prefers-color-scheme: dark){:root{--ground:#0B1020;--card:#121A2E;--ink:#E5ECF8;--muted:#9AA8C0;--line:#24304A;--field:#33415E;
  --chip:#1B2540;--blue:#3B6CF0;--blue-ink:#A9C1FF;--blue-soft:#1B2A52;--bad:#F97066;--bad-bg:#3A1A17;--warn:#FBBF24;--warn-bg:#33290F}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:16px/1.45 "Barlow",system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--blue-ink)}
@media (prefers-color-scheme: light){a{color:var(--blue)}}
h1,h2,.cond{font-family:"Barlow Condensed","Barlow",system-ui,sans-serif}
h1{font-size:30px;line-height:1.05;margin:2px 0 6px}
h2{font-size:19px;letter-spacing:.4px;text-transform:uppercase;margin:0 0 8px}
.wrap{max-width:1100px;margin:0 auto;padding:12px 16px 28px;display:flex;flex-direction:column;gap:16px}
.top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;flex-wrap:wrap}
.brand{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:24px;text-decoration:none;color:var(--ink);display:flex;gap:10px;align-items:center}
.brand img{border-radius:7px;display:block}
.nav{display:flex;gap:14px;align-items:center;font-weight:600}
.nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.muted{color:var(--muted)} .small{font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}
.list{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--chip);text-decoration:none;color:inherit;min-height:64px}
.row:last-child{border-bottom:0}
.row img{width:48px;height:48px;object-fit:cover;border-radius:8px;flex:none;background:var(--chip)}
.row .main{flex:1;min-width:0} .row .t{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .row .s{font-size:14px;color:var(--muted)}
.chip{display:inline-block;font-size:13px;font-weight:700;border-radius:99px;padding:4px 10px;background:var(--chip);white-space:nowrap}
.chip.ready{background:var(--blue-soft);color:var(--blue-ink)} .chip.error{background:var(--bad-bg);color:var(--bad)}
.chip.queued,.chip.ai,.chip.building{background:var(--warn-bg);color:var(--warn)}
label.f{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}
input,select{font:inherit;font-size:16px;color:var(--ink);background:var(--card);border:1px solid var(--field);border-radius:10px;padding:10px 12px;min-height:48px;width:100%}
input[type=range]{padding:0;min-height:32px;border:0;background:transparent;accent-color:var(--blue)}
input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--blue)}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:1px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.btn{font:inherit;font-weight:700;font-size:17px;min-height:52px;border-radius:14px;border:0;background:var(--blue);color:#fff;padding:0 18px;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;width:100%}
.btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--field);font-weight:600;font-size:16px;min-height:46px}
.btn.danger{background:transparent;color:var(--bad);border:1px solid var(--bad);font-size:15px;min-height:44px}
.btn.small{width:auto;min-height:40px;font-size:14px;padding:0 12px;border-radius:10px}
.drop{border:2px dashed var(--field);border-radius:16px;padding:22px 16px;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:6px;align-items:center;background:var(--card)}
.drop.over{border-color:var(--blue);background:var(--blue-soft)}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.drop img{max-height:220px;max-width:100%;border-radius:10px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:4px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-weight:600;font-size:14px;cursor:pointer}
.seg input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.seg input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--blue) 45%,transparent)}
.layout{display:grid;gap:16px}
@media (min-width:900px){.layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}}
.stage{position:relative;background:var(--stage);border-radius:16px;overflow:hidden;aspect-ratio:4/5;min-height:320px}
.stage canvas{display:block;width:100%;height:100%;touch-action:none}
.stage .tabs{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:6px;z-index:2}
.stage .tabs button{font:inherit;font-weight:700;font-size:14px;border-radius:99px;border:1px solid #2A3A5C;background:#0E1730cc;color:#C9D7F2;padding:6px 12px;min-height:36px;cursor:pointer}
.stage .tabs button.on{background:#DCE7FF;color:#0B1430;border-color:#DCE7FF}
.stage .msg{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#C9D7F2;text-align:center;padding:24px}
.stage .hint{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:12px;color:#8193B5}
.spinner{width:42px;height:42px;border-radius:50%;border:4px solid #23345A;border-top-color:var(--ice);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.spinner{animation:none}}
.slider{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;font-weight:600;font-size:14px}
.slider input{grid-column:1/-1}
.slider output{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.dl{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--chip);text-decoration:none;color:inherit;min-height:56px}
.dl:last-child{border-bottom:0}
.dl .main{flex:1;min-width:0} .dl b{display:block} .dl .s{font-size:13px;color:var(--muted)}
.dl.primary{background:var(--blue-soft)}
.stats{display:flex;flex-wrap:wrap;gap:6px}
.flash{border-radius:12px;padding:10px 12px;font-weight:600}
.flash.ok{background:var(--blue-soft);color:var(--blue-ink)} .flash.error,.error{background:var(--bad-bg);color:var(--bad);border-radius:12px;padding:10px 12px;font-weight:600}
details summary{cursor:pointer;font-weight:700;min-height:32px;display:flex;align-items:center}
.empty{color:var(--muted);text-align:center;padding:18px 12px}
footer{text-align:center;color:var(--muted);font-size:13px;padding:8px 16px 18px}
.login{max-width:380px;margin:10vh auto 0}
table{width:100%;border-collapse:collapse;font-size:14px} td,th{padding:6px 4px;border-bottom:1px solid var(--chip);text-align:left}
