@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#0b1018;--deep:#070c13;--panel:#111924;--panel2:#141e2a;--border:#273342;--border2:#354250;--gold:#e7bd67;--gold2:#f5d999;--blue:#58b5ff;--text:#f5f5f1;--muted:#91a1ae;--red:#ff8e8e;--green:#9adc9c;font-family:Inter,system-ui,sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--deep);color:var(--text);overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled,input:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.masthead{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:linear-gradient(90deg,#131d28 0%,#0c121b 70%);border-bottom:1px solid #354255;gap:10px}
.brand{display:flex;align-items:center;gap:13px}.brand-mark{display:grid;place-items:center;width:41px;height:41px;border:1.5px solid var(--gold);color:var(--gold);clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%);background:#282316;font-family:Rajdhani,sans-serif;font-size:30px;font-weight:700}
.brand strong{display:block;font:700 23px/1 Rajdhani,Inter,sans-serif;letter-spacing:1.7px}.brand strong span{color:var(--gold)}.brand small{display:block;font-size:9px;color:#94a7ba;letter-spacing:2.3px;margin-top:4px}.mast-actions{display:flex;gap:8px;align-items:center}
.pill{background:#13271d;color:var(--green);font-size:11px;font-weight:700;border:1px solid #395b45;border-radius:30px;padding:7px 11px}
.btn{background:#232e3b;color:#f1f2ee;border:1px solid #354455;border-radius:7px;padding:10px 13px;font-size:12px;font-weight:700;transition:.16s ease;white-space:nowrap}
.btn:hover{background:#344252;border-color:#647083}.btn.primary{background:linear-gradient(135deg,#e8bd68,#c89a45);color:#141514;border-color:#ffdda2;box-shadow:0 2px 18px #e2b45d15}.btn.primary:hover{filter:brightness(1.12)}.btn.ghost{background:#16202b}.btn.subtle{background:#1b2935}.btn.outline{background:transparent;border-color:#8a754f;color:var(--gold)}.btn.compact{padding:7px 10px}.btn.large{padding:13px 24px}.btn.full{width:100%;display:block;margin:8px 0}.text-button{font-size:11px;color:var(--gold);background:none;border:none;padding:0}.muted{color:var(--muted)}
.app-shell{height:calc(100dvh - 93px);display:grid;grid-template-columns:minmax(225px,246px) minmax(0,1fr) minmax(260px,302px);min-height:0}
.library-pane,.inspector{background:var(--panel);min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:0 15px 30px;scrollbar-color:#4f5c6b transparent}
.library-pane{border-right:1px solid var(--border)}.inspector{border-left:1px solid var(--border)}
.pane-heading{height:50px;display:flex;align-items:center;justify-content:space-between;font:700 14px Rajdhani,sans-serif;letter-spacing:1.5px;color:#dce1e7}.pane-heading .muted{font-size:11px}
.upload-zone{display:flex;width:100%;align-items:center;flex-direction:column;justify-content:center;text-align:center;padding:18px 9px;border:1px dashed #846d43;border-radius:9px;background:linear-gradient(135deg,#2b261a,#171f2a);color:var(--text);gap:7px}.upload-zone:hover{border-color:var(--gold);background:#302b23}.upload-icon{font-size:31px;color:var(--gold);line-height:1}.upload-zone strong{font-size:13px}.upload-zone small{font-size:11px;color:#aebbc5;max-width:160px;line-height:1.5}
.section-title{display:flex;justify-content:space-between;margin:22px 0 10px;font-size:10px;font-weight:800;letter-spacing:1.35px;color:#b5c2cc}.record-list{display:flex;flex-direction:column;gap:6px}.record{border:1px solid var(--border);background:#151f2b;color:var(--text);border-radius:6px;padding:10px;cursor:pointer;display:flex;gap:9px;align-items:center;text-align:left;width:100%}.record:hover{border-color:var(--gold)}.record .record-icon{color:var(--gold);font-size:19px}.record strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;max-width:156px;white-space:nowrap}.record small{color:var(--muted);display:block;margin-top:4px;font-size:10px}.empty,.fine-print{font-size:11px;line-height:1.6;color:var(--muted)}.fine-print{border-top:1px solid var(--border);padding-top:12px}.record-list .empty{padding:8px 0}
.workspace{min-width:0;min-height:0;display:flex;flex-direction:column;background:#090f18;position:relative}.workspace-toolbar{height:52px;flex-shrink:0;padding:0 13px;display:flex;align-items:center;justify-content:space-between;background:#101923;border-bottom:1px solid var(--border);gap:8px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:10px;min-width:0}.workspace-badge{color:var(--gold);font:700 11px Rajdhani,sans-serif;letter-spacing:1px;white-space:nowrap}.model-name{color:#c0cbd5;max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.workspace-toolbar select,.timeline select{font-size:11px;background:#1b2633;color:var(--text);border:1px solid #405064;border-radius:6px;min-height:32px;padding:0 6px;max-width:180px}.icon-button{border:1px solid var(--border);background:#1a2935;color:var(--text);border-radius:6px;height:32px;width:32px;font-size:22px;line-height:1}
.view-grid{flex:1;min-height:175px;display:flex;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#22303b 0%,#101823 47%,#060a11 95%)}.viewport-cell{flex:1;min-width:0;position:relative}.viewport{position:absolute;inset:0;touch-action:none;overflow:hidden}.viewport canvas{display:block;width:100%;height:100%}.view-label{position:absolute;left:14px;top:14px;background:#09111cc7;border:1px solid #64778d55;color:var(--gold);font-size:10px;font-weight:800;padding:7px 9px;letter-spacing:1px;pointer-events:none;border-radius:4px}.view-grid.comparing .viewport-cell{width:50%}.view-grid.comparing .viewport-cell.secondary{display:block;border-left:2px solid var(--gold)}
.empty-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:20px;background:radial-gradient(circle at 50% 50%,#111b28bd,#080e18ef);pointer-events:auto}.empty-overlay[hidden]{display:none}.empty-emblem{display:grid;place-items:center;width:86px;height:86px;border:2px solid var(--gold);box-shadow:0 0 45px #c49a4544,inset 0 0 35px #c49a4527;color:var(--gold);font:700 69px Rajdhani,sans-serif;transform:rotate(45deg);border-radius:12px;margin-bottom:17px}.empty-emblem::first-letter{transform:rotate(-45deg)}.empty-overlay h1{font:700 clamp(19px,2vw,29px) Rajdhani,sans-serif;letter-spacing:2px;margin:0}.empty-overlay p{font-size:12px;line-height:1.65;max-width:360px;color:#aebac5;margin:2px 0 10px}
.viewport-controls{display:flex;align-items:center;gap:12px;background:#101923;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:9px 12px;min-height:51px;flex-wrap:wrap}.control-group{display:flex;gap:6px;align-items:center}.chip{background:#1c2632;border:1px solid #354355;border-radius:5px;color:#becbd4;padding:7px 10px;font-size:11px;font-weight:700}.chip.active{color:var(--gold);border-color:#c8a366;background:#3d3527}.divider{height:20px;width:1px;background:#3d4d59}.check{font-size:11px;color:#c1ccd5;display:flex;align-items:center;gap:6px;cursor:pointer}.check input{accent-color:var(--gold);height:15px;width:15px}
.timeline{padding:11px 13px 13px;background:#0e1620}.timeline-head{display:flex;justify-content:space-between;font:700 11px Rajdhani,sans-serif;letter-spacing:1px;color:var(--gold);margin-bottom:9px}.timeline-head .muted{font:400 10px Inter,sans-serif}.timeline-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.range-label{display:flex;align-items:center;gap:7px;font-size:11px;color:#c3cdd6}.range-label input{width:80px}.range-label output{font-size:10px;color:var(--gold)}input[type=range]{accent-color:var(--gold)}
.tab-bar{display:flex;border-bottom:1px solid var(--border);margin-bottom:13px}.tab{flex:1;font:700 13px Rajdhani,sans-serif;letter-spacing:.5px;border:none;background:transparent;color:#96a6b5;border-bottom:2px solid transparent;padding:10px 1px}.tab.active{color:var(--gold);border-bottom-color:var(--gold)}.tab-panel{display:none}.tab-panel.active{display:block}.field-title{display:flex;align-items:center;justify-content:space-between;margin:19px 0 10px;color:#cbd4dd;font:700 11px Rajdhani,sans-serif;letter-spacing:1.5px}.field-title:first-child{margin-top:4px}.field-title span{font:400 10px Inter,sans-serif;color:var(--muted);letter-spacing:0}.mesh-list{max-height:190px;overflow:auto;border:1px solid var(--border);border-radius:6px;background:#0d1520;padding:4px}.mesh-row{background:transparent;border:0;color:#b9c9d7;text-align:left;width:100%;padding:8px;font-size:11px;display:flex;justify-content:space-between;gap:6px;align-items:center;border-radius:4px}.mesh-row:hover{background:#273443}.mesh-row.active{background:#3b3221;color:var(--gold)}.mesh-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-row small{color:#879bac}.note{color:#92a4b0;background:#151f2a;border-left:2px solid #7e6848;padding:11px;margin-top:12px;font-size:11px;line-height:1.65;border-radius:3px}.reference-wrap{display:grid;gap:7px;margin-top:7px}.reference-wrap img{width:100%;border-radius:5px;border:1px solid var(--border);max-height:220px;object-fit:contain;background:#0b1018}.selected-summary{padding:12px;background:#1d2835;border:1px solid #394757;border-radius:6px}.selected-summary strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis}.selected-summary small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.object-visible{margin-top:15px}
.triple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.triple label{font-size:10px;color:var(--muted)}.triple input{width:100%;margin-top:4px;border:1px solid #344659;border-radius:4px;background:#0b1420;color:var(--text);padding:8px 5px;font-size:11px}.field-row,.slider-row{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#bac8d5;font-size:11px;margin:13px 0}.field-row input[type=color]{width:43px;height:28px;border:none;background:transparent}.slider-row input[type=range]{width:47%;min-width:0}.slider-row output{color:var(--gold);min-width:35px;text-align:right;font-size:10px}.action-row{display:flex;gap:10px;margin-top:22px}.action-row .btn{flex:1}
.full-select{width:100%;background:#182332;color:#ebf0f3;border:1px solid #38495a;padding:10px;border-radius:5px}.repair-warning{border:1px solid #705d39;background:#2a261d;border-radius:5px;padding:12px;color:#f2dcab;font-size:11px;line-height:1.65}.repair-warning strong{font-size:12px}.repair-warning p{margin:4px 0}.segmented{display:flex;border:1px solid #4a5968;border-radius:6px;overflow:hidden}.segmented label{padding:9px;flex:1;text-align:center;display:flex;justify-content:center;gap:8px;font-size:11px}.segmented label+label{border-left:1px solid #4a5968}.segmented input{accent-color:var(--gold)}.validation{color:#afc0cf;background:#0c1520;border:1px solid #2c3d4b;border-radius:5px;padding:11px;font-size:11px;line-height:1.7;white-space:pre-wrap;max-height:250px;overflow:auto}
.status-bar{height:25px;border-top:1px solid #384656;background:#080d14;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#95a7b5;font-size:10px;gap:15px}.status-bar span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-bar span:last-child{white-space:nowrap;color:#bc995b;letter-spacing:1px;font:700 10px Rajdhani,sans-serif}
.toast{position:fixed;bottom:48px;left:50%;transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:.24s ease;background:#273443;border:1px solid var(--gold);color:#f4e5be;padding:13px 17px;border-radius:7px;font-size:12px;max-width:min(500px,calc(100vw - 40px));box-shadow:0 10px 38px #0008;z-index:20;line-height:1.6}.toast.show{opacity:1;transform:translate(-50%,0)}
.mobile-only{display:none}
@media(max-width:1120px){.app-shell{grid-template-columns:190px minmax(0,1fr) 246px}.library-pane,.inspector{padding-left:10px;padding-right:10px}.workspace-badge{display:none}.model-name{max-width:145px}.btn.compact{padding:7px}.viewport-controls{gap:7px}.control-group.wrap{flex-wrap:wrap}.workspace-toolbar{padding:0 7px;gap:4px}.toolbar-right{gap:5px}}
@media(max-width:850px){
 body{overflow:auto}.masthead{height:59px;padding:0 11px;position:sticky;top:0;z-index:9}.brand-mark{width:34px;height:34px;font-size:24px}.brand strong{font-size:18px}.brand small{font-size:7px}.pill{display:none}.mast-actions{gap:5px}.mast-actions .btn{font-size:10px;padding:8px}.mobile-only{display:block}
 .app-shell{height:auto;display:flex;flex-direction:column}.library-pane{order:2;display:none;padding:0 15px 25px;border-right:0;border-top:1px solid var(--border)}.library-pane.open{display:block}.inspector{order:3;max-height:none;overflow:visible;border-left:0;border-top:1px solid var(--border);padding:0 15px 26px}.workspace{order:1;min-height:0}.workspace-toolbar{height:49px;padding:0 9px}.workspace-toolbar .toolbar-left{max-width:120px}.workspace-toolbar select{max-width:105px}.toolbar-right{gap:4px}.toolbar-right .btn{font-size:10px}.view-grid{height:50dvh;min-height:310px;flex:none}.view-grid.comparing{height:45dvh;min-height:260px}.viewport-controls{padding:7px}.timeline{padding:10px}.timeline-controls{gap:7px}.inspector .pane-heading{height:43px}.mesh-list{max-height:180px}.status-bar{position:relative}.status-bar span:last-child{display:none}.reference-wrap img{max-height:350px}.empty-overlay p{max-width:280px}
}
@media(max-width:420px){.brand strong{font-size:16px}.mast-actions .btn{font-size:10px;padding:7px}.mast-actions #saveLocalBtn{display:none}.toolbar-right .btn{font-size:10px}.model-name{max-width:85px}.control-group.wrap{gap:7px}.check{font-size:10px}.chip{font-size:10px;padding:7px}.view-grid{height:47dvh}.empty-emblem{width:65px;height:65px;font-size:50px}.empty-overlay h1{font-size:20px}}

.cloud-versions{padding:5px 0 8px 15px;display:flex;flex-direction:column;gap:4px}.version-item{font-size:10px;color:#d4c6a7;background:#202c38;border:1px solid #455365;text-align:left;border-radius:4px;padding:8px;line-height:1.5}.version-item:hover{border-color:var(--gold)}

/* Keep reference uploads hidden until an image is selected. */
.reference-wrap[hidden]{display:none!important}

.btn.mobile-save-only{display:none}
@media(max-width:850px){.btn.mobile-save-only{display:block}}

@media(max-width:420px){.workspace-toolbar .toolbar-right .btn{padding-left:5px;padding-right:5px}}


/* v1.2 — dedicated still render studio (touch-friendly, no destructive overlays) */
.still-render-panel{border:1px solid #6a5736;border-radius:9px;background:linear-gradient(155deg,#211e1a,#101a25 78%);padding:13px;margin:17px -3px 9px}
.still-render-panel .field-title{margin-top:3px;color:var(--gold)}
.render-field{display:block;font-size:11px;color:#cbd4dd;margin:14px 0}
.render-field select{display:block;margin-top:6px;min-height:42px}
.render-check{padding:7px 0;line-height:1.5}
.render-check input{min-width:16px;min-height:16px}
.render-output-info{margin-top:14px;font:700 12px Rajdhani,Inter,sans-serif;letter-spacing:.7px;color:var(--gold);padding:9px 10px;background:#0a121c;border:1px solid #34475a;border-radius:5px}
.render-progress-wrap{margin-top:13px;padding:12px;background:#0a141e;border:1px solid #56708b;border-radius:7px}
.render-progress-wrap[hidden]{display:none}
.render-progress-wrap label{font-size:12px;color:#d5e6f5}
.render-progress-wrap progress{display:block;width:100%;height:16px;margin:10px 0;accent-color:var(--gold)}
.render-note{font-size:11px;color:#a8b8c5;line-height:1.7;margin:12px 0 3px}
.rendering-active .library-pane,.rendering-active .workspace,.rendering-active .tab-bar{pointer-events:none;opacity:.84}
.rendering-active .inspector>.tab-panel:not(#tab-render){pointer-events:none}
@media(max-width:700px){
  .still-render-panel{margin-left:0;margin-right:0;padding:11px}
  .still-render-panel .btn{min-height:42px}
}

/* v1.3 — touch-first photoreal lighting presets */
.look-presets{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0 12px}
.look-presets .btn{min-height:44px;white-space:normal;font-size:11px;line-height:1.2;padding:7px}
.look-presets .btn:first-child{grid-column:span 2}
.look-presets .btn[aria-pressed="true"]{border-color:#f3cc83;background:#574127;color:#fff0d1}

/* Studio 2.0 — premium private path-tracing workspace, accessible on iPhone */
.cycles-panel{border:1px solid #a17e43;border-radius:10px;background:linear-gradient(145deg,#292317 0%,#101923 65%,#101b28 100%);padding:14px;margin:19px -3px 11px;box-shadow:0 4px 23px #0003}
.cycles-panel .field-title{color:#ffe0a5;margin-top:5px;letter-spacing:.6px;line-height:1.5}
.cycles-panel .field-title span{font-size:10px;color:#e1bc77}
.cycles-panel .render-note strong{color:#f1d398}
.render-pair{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.render-pair .render-field{min-width:0}
.render-pair .render-field select,.render-pair .render-field input{display:block;width:100%;min-width:0;background:#101821;border:1px solid #3b4b5f;border-radius:5px;color:#f1f3f5;padding:10px;min-height:42px}
.render-pair .render-field input{margin-top:6px}
.render-pair .render-field select{font-size:11px}
.render-check-list{display:flex;flex-direction:column;gap:12px;margin:12px 0}
.cycles-panel>.btn{margin-top:10px;min-height:45px}
.render-job{display:flex;flex-direction:column;gap:6px;padding:12px 10px;background:#121e2a;border:1px solid #405064;border-radius:7px;margin:9px 0}
.render-job strong{color:#f3d293;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.render-job small{font-size:10px;color:#abb9c6;line-height:1.5}
.render-job-status{color:#b0d5ed;font-size:11px;align-self:center}
.job-error{color:#ffb5a8;font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.cycles-panel .record-list{max-height:360px;overflow:auto}
.cycles-panel .action-row{align-items:center;flex-wrap:wrap}
.cycles-panel .action-row .btn{min-height:38px}
#textureSlotStatus{font-size:11px;overflow-wrap:anywhere}
#realismAuditResult{white-space:pre-wrap;max-height:330px;overflow:auto;line-height:1.55}
@media(max-width:420px){.cycles-panel{margin-left:0;margin-right:0;padding:11px}.render-pair{gap:7px}.render-pair .render-field{font-size:10px}.render-pair .render-field select{padding:8px 5px;font-size:10px}}

.review-section{padding:12px 1px 6px;margin:16px 0;border-top:1px solid #34475a}
.review-board{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.review-board[hidden]{display:none!important}
.review-board figure{margin:0;min-width:0;background:#080f16;border:1px solid #445363;border-radius:6px;overflow:hidden}
.review-board img{display:block;width:100%;height:175px;object-fit:contain;background:#0d151c}
.review-board figcaption{color:#e8c786;font-family:Rajdhani,Inter,sans-serif;font-weight:700;font-size:10px;letter-spacing:1px;padding:9px 6px;text-align:center}
@media(max-width:420px){.review-board img{height:145px}}

.recipe-tip{display:block;font-size:10px;line-height:1.5;margin-top:7px}

/* Narrow iPhone portrait: keep both render/compare actions reachable. */
@media(max-width:430px){
  .masthead{padding:0 6px;gap:4px}
  .masthead .brand{gap:5px;min-width:0}
  .masthead .brand-mark{width:29px;height:29px;font-size:20px;flex-shrink:0}
  .masthead .brand strong{font-size:13px;white-space:nowrap}
  .masthead .brand small{display:none}
  .masthead .mast-actions{gap:3px;flex-shrink:0}
  .masthead .mast-actions .btn{padding:6px 5px;font-size:9px}
  .workspace-toolbar{height:auto;min-height:78px;flex-direction:column;align-items:stretch;justify-content:center;gap:5px;padding:6px 8px}
  .workspace-toolbar .toolbar-left{max-width:none;width:100%;height:19px}
  .workspace-toolbar .toolbar-right{width:100%;justify-content:space-between;gap:4px}
  .workspace-toolbar .toolbar-right select{min-width:0;max-width:94px;font-size:10px}
  .workspace-toolbar .toolbar-right .btn{min-width:0;padding:6px 5px;font-size:9px;white-space:nowrap}
  .workspace-toolbar .toolbar-right .icon-button{min-width:29px;width:29px;height:30px;padding:2px}
}
