:root{color:#1f1f1f;background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) 360px;min-height:100vh;background:#fff}.viewport-shell{position:relative;min-width:0;background:#fff}.viewport-shell canvas{width:100%;height:100vh;display:block;outline:none;touch-action:none}.model-toolbar{position:absolute;z-index:2;left:16px;right:16px;top:16px;display:grid;grid-template-columns:minmax(180px,.32fr) minmax(260px,1fr) auto;gap:10px;align-items:stretch}.model-toolbar input,.model-toolbar button,.model-source,.model-file-row,.controls-panel select,.control-row button{border:1px solid rgba(244,241,234,.18);background:#181818d1;color:#f4f1ea;border-radius:6px}.model-source{display:grid;align-content:center;min-width:0;padding:8px 10px}.model-source span,.model-file-row span{color:#aaa49a;font-size:12px}.model-source strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650}.model-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0}.model-file-row{display:grid;grid-template-columns:auto minmax(120px,auto);gap:8px 10px;align-items:center;padding:6px}.model-file-row input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.model-toolbar input{min-width:0;padding:10px 12px}.model-toolbar button,.control-row button{padding:10px 14px;cursor:pointer}.drop-overlay{position:absolute;z-index:4;top:86px;right:16px;bottom:16px;left:16px;display:grid;place-items:center;border:2px dashed rgba(244,241,234,.5);border-radius:8px;color:#f4f1ea;background:#0c0c0ca3;font-size:18px;font-weight:650;pointer-events:none}.viewport-shell.is-dragging-model canvas{filter:brightness(.72)}.error-banner{position:absolute;z-index:3;top:86px;left:16px;right:16px;padding:10px 12px;border-radius:6px;color:#fff0e6;background:#962f1eeb}.warning-banner{position:absolute;z-index:3;top:86px;left:16px;right:16px;max-width:680px;padding:10px 12px;border:1px solid rgba(140,98,0,.24);border-radius:6px;color:#332400;background:#fff7d6f0}.warning-banner strong{display:block;margin-bottom:4px;font-size:13px}.warning-banner ul{margin:0;padding-left:18px;font-size:12px}.side-panel{overflow-y:auto;max-height:100vh;border-left:1px solid rgba(244,241,234,.1);background:#20201f}.controls-panel,.lighting-panel{padding:18px}.lighting-panel{display:grid;gap:13px;border-top:1px solid rgba(244,241,234,.1)}.controls-panel.empty{display:grid;align-content:center;color:#aaa49a}.controls-panel header{display:grid;gap:4px;margin-bottom:22px}.controls-panel header span{color:#aaa49a;font-size:12px;text-transform:uppercase}.controls-panel header strong{font-size:21px;font-weight:650}.control-group{display:grid;gap:14px;padding:18px 0;border-top:1px solid rgba(244,241,234,.1)}.control-group h2{margin:0;color:#cbc6bd;font-size:13px;font-weight:650;text-transform:uppercase}.lighting-panel header{display:grid;gap:10px}.lighting-panel header p{margin:4px 0 0;color:#aaa49a;font-size:12px}.lighting-panel h2{margin:0;color:#cbc6bd;font-size:13px;font-weight:650;text-transform:uppercase}.preset-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.preset-row button{border:1px solid rgba(244,241,234,.18);background:#181818d1;color:#f4f1ea;border-radius:6px;padding:9px 10px;cursor:pointer;text-transform:capitalize}.lighting-toggle{border:1px solid rgba(244,241,234,.18);background:#f4f1ea14;color:#f4f1ea;border-radius:6px;padding:9px 10px;cursor:pointer}.control-row,.lighting-slider,.lighting-color,.lighting-select{display:grid;gap:8px}.control-row span,.lighting-slider span,.lighting-color span,.lighting-select span{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:#f4f1ea}.lighting-select span{display:grid;gap:2px}.control-row small,.lighting-slider small,.lighting-select small{color:#aaa49a}.control-row select{min-width:0;width:100%;padding:10px 12px;color:#f4f1ea;background-color:#242424;color-scheme:dark}.control-row select option{color:#f4f1ea;background-color:#242424}.slider-row input,.lighting-slider input{width:100%;accent-color:#c8a96a}.lighting-slider-control{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:10px;align-items:center}.lighting-slider-control input[type=number],.lighting-select select{min-width:0;width:100%;border:1px solid rgba(244,241,234,.18);background:#181818d1;color:#f4f1ea;border-radius:6px}.lighting-slider-control input[type=number]{padding:7px 8px}.lighting-select select{padding:10px 12px}.lighting-color input{width:100%;min-height:36px;padding:3px;border:1px solid rgba(244,241,234,.18);border-radius:6px;background:#181818d1}.toggle-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}@media (max-width: 840px){body{overflow:auto}.app-shell{grid-template-columns:1fr;grid-template-rows:62vh auto}.viewport-shell canvas{height:62vh}.model-toolbar{grid-template-columns:1fr}.model-file-row{grid-template-columns:auto minmax(0,1fr)}.drop-overlay{top:168px;right:16px;bottom:16px;left:16px;font-size:15px}.error-banner,.warning-banner{top:168px}.side-panel{max-height:none;border-left:0;border-top:1px solid rgba(244,241,234,.1)}}
