:root{font-synthesis:none;text-rendering:optimizelegibility;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%}body{min-width:320px;margin:0;overflow:hidden}button{font:inherit}.app-shell{--bg-page:#1a1a1a;--bg-viewer:#f5f5f3;--panel-bg:#ffffffd1;--panel-border:#0000001a;--panel-shadow:0 4px 24px #0000001a, 0 1px 4px #0000000f;--text-main:#1a1a1a;--text-muted:#0000007a;--button-hover:#0000000d;--button-active:#00000017;--button-selected:#00000026;--accent:#508cff;--accent-soft:#508cff24;--accent-outline:#508cff9e;--axis-x:#ff3b30;--axis-y:#34c759;--axis-z:#007aff;--box-line:#202020;--dag-inactive:#464646;--dag-active-label:#1a1a1a;--dag-inactive-label:#fff;--dag-progress:#fff;background:var(--bg-page);width:100vw;height:100dvh;color:var(--text-main);position:relative;overflow:hidden}.app-shell[data-theme=dark]{--bg-page:#0f0f10;--bg-viewer:#141414;--panel-bg:#1c1c1ec7;--panel-border:#ffffff1f;--panel-shadow:0 4px 24px #00000059, 0 1px 4px #00000047;--text-main:#f5f5f3;--text-muted:#f5f5f380;--button-hover:#ffffff14;--button-active:#ffffff1f;--button-selected:#ffffff2e;--accent:#7aa2ff;--accent-soft:#7aa2ff2e;--accent-outline:#7aa2ffb8;--axis-x:#ff453a;--axis-y:#30d158;--axis-z:#0a84ff;--box-line:#f5f5f3ad;--dag-inactive:#464646;--dag-active-label:#141414;--dag-inactive-label:#fff}.glass-panel{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(12px)}.three-viewer{background:var(--bg-viewer);position:fixed;inset:0;overflow:hidden}.three-canvas{width:100%;height:100%;display:block}.axis-label-layer{pointer-events:none;position:absolute;inset:0}.axis-label{text-shadow:0 1px 3px #00000038;-webkit-user-select:none;user-select:none;font-size:18px;font-weight:700;line-height:1}.viewport-readout{color:var(--text-muted);pointer-events:auto;gap:12px;font-size:11px;font-weight:700;display:flex;position:absolute;bottom:18px;right:22px}.viewport-readout a{color:inherit;text-decoration:none}.viewport-readout a:hover{color:var(--text-main)}.node-panel-anchor{z-index:20;width:min(410px,100vw - 40px);position:fixed;top:20px;left:20px}.auth-anchor{left:calc(20px + env(safe-area-inset-left));bottom:calc(20px + env(safe-area-inset-bottom));z-index:35;max-width:min(330px,100vw - 40px);position:fixed}.auth-panel{border-radius:12px;gap:9px;width:max-content;max-width:100%;padding:8px;display:grid}.auth-panel--model_access_required,.auth-panel--error{width:min(330px,100vw - 40px);padding:11px}.auth-status{color:var(--text-muted);padding:2px 4px;font-size:11px;font-weight:700}.auth-sign-in{background:var(--text-main);min-height:34px;color:var(--bg-viewer);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 11px;font-size:11px;font-weight:800;display:flex}.auth-sign-in:hover{opacity:.86}.auth-user-row{grid-template-columns:30px minmax(0,1fr) 28px;align-items:center;gap:8px;min-width:210px;display:grid}.auth-avatar{object-fit:cover;border:1px solid var(--panel-border);background:var(--button-hover);border-radius:50%;width:30px;height:30px}.auth-user-name{min-width:0;line-height:1.15;display:grid}.auth-user-name strong,.auth-user-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-user-name strong{color:var(--text-main);font-size:11px}.auth-user-name span{color:var(--text-muted);font-size:9px;font-weight:700}.auth-sign-out{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.auth-sign-out:hover{background:var(--button-hover);color:var(--text-main)}.auth-message{color:var(--text-main);gap:3px;font-size:10px;line-height:1.35;display:grid}.auth-message span{color:var(--text-muted);overflow-wrap:anywhere}.auth-model-links{gap:5px;display:grid}.auth-model-links a{background:var(--button-hover);min-height:30px;color:var(--text-main);border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:0 9px;font-size:10px;font-weight:800;text-decoration:none;display:flex}.auth-model-links a:hover{background:var(--button-active)}.node-panel,.pre-dag-panel{border-radius:14px;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 100px);display:grid;overflow:hidden}.node-panel-header,.pre-dag-panel-header{border-bottom:1px solid var(--panel-border);gap:8px;padding:14px 14px 12px;display:grid}.node-panel-title-row{align-items:center;gap:10px;display:flex}.node-back-button{width:30px;height:30px;color:var(--text-main);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.node-back-button:hover{background:var(--button-hover)}.node-back-button:disabled{cursor:default;opacity:.42}.node-back-button:disabled:hover{background:0 0}.node-panel h1,.pre-dag-panel h1{margin:0;font-size:17px;line-height:1.18}.node-instruction{color:var(--text-muted);margin:0;font-size:11px;font-weight:600;line-height:1.35}.node-panel-body,.pre-dag-panel-body{min-height:0;padding:14px 16px 16px;overflow:hidden auto}.node-panel *,.pre-dag-panel *{min-width:0}.node-panel,.pre-dag-panel{overflow-wrap:anywhere}.node-panel button,.pre-dag-panel button,.node-panel input,.pre-dag-panel input,.node-panel select,.pre-dag-panel select,.node-panel textarea,.pre-dag-panel textarea{max-width:100%}.pre-dag-panel-body,.node-panel-stack{gap:12px;display:grid}.node-section{gap:10px;display:grid}.node-section-divider{background:var(--panel-border);opacity:.72;width:72%;height:1px;margin:0 auto}.field-stack{gap:8px;display:grid}.field-row{grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.field-row--scalar{grid-template-columns:76px 86px}.field-row--no-action{grid-template-columns:76px minmax(0,1fr)}.generation-field-row{grid-template-columns:minmax(150px,1fr) 86px}.field-label{color:var(--text-muted);font-size:11px;font-weight:700}.vector-inputs{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.axis-shortcuts{grid-template-columns:repeat(3,30px);gap:4px;display:grid}.axis-shortcut{min-height:30px;padding:0}.field-row input{border:1px solid var(--panel-border);width:100%;min-width:0;height:30px;color:var(--text-main);font:inherit;background:#ffffff57;border-radius:8px;outline:none;padding:0 7px;font-size:11px}.app-shell[data-theme=dark] .field-row input{background:#ffffff12}.field-row input:disabled{color:var(--text-muted);opacity:.58}.field-row input[type=number]{appearance:textfield}.field-row input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-row input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.integer-stepper-row{grid-template-columns:minmax(150px,1fr) auto;align-items:center;gap:8px;display:grid}.integer-stepper-wrap{grid-auto-columns:max-content;grid-auto-flow:column;justify-content:end;gap:6px;display:grid}.integer-stepper{grid-template-columns:30px 74px 30px;gap:4px;display:grid}.integer-stepper .button,.integer-stepper-side-action{min-height:30px}.integer-stepper input,.duration-inputs input,.shape-token-row input{border:1px solid var(--panel-border);width:100%;min-width:0;height:30px;color:var(--text-main);font:inherit;background:#ffffff57;border-radius:8px;outline:none;padding:0 7px;font-size:11px}.app-shell[data-theme=dark] .integer-stepper input,.app-shell[data-theme=dark] .duration-inputs input,.app-shell[data-theme=dark] .shape-token-row input{background:#ffffff12}.integer-stepper input:disabled,.duration-inputs input:disabled,.shape-token-row input:disabled{color:var(--text-muted);opacity:.58}.integer-stepper input[type=number],.duration-inputs input[type=number],.shape-token-row input[type=number]{appearance:textfield}.integer-stepper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.integer-stepper input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.duration-inputs input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.duration-inputs input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.shape-token-row input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.shape-token-row input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.duration-row,.duration-control{gap:8px;display:grid}.duration-inputs{grid-template-columns:repeat(2,78px);gap:6px;display:grid}.duration-slider,.shape-token-slider{touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;height:24px;display:flex;position:relative}.duration-slider-track{background:var(--button-hover);border-radius:999px;flex:1;height:5px;position:relative;overflow:hidden}.duration-slider-range{background:var(--accent);border-radius:999px;height:100%;position:absolute}.duration-slider-thumb{border:1px solid var(--panel-border);background:var(--text-main);border-radius:50%;outline:none;width:14px;height:14px;display:block;box-shadow:0 1px 4px #0000002e}.duration-slider-thumb:focus-visible{box-shadow:0 0 0 3px var(--accent-soft)}.shape-mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.shape-mode-options .choice-button{align-content:center;gap:3px;min-height:44px;display:grid}.shape-mode-options small{color:var(--text-muted);font-size:9px;font-weight:700;line-height:1.15}.shape-token-panel{border:1px solid var(--panel-border);background:#ffffff47;border-radius:10px;gap:8px;padding:10px;display:grid}.app-shell[data-theme=dark] .shape-token-panel{background:#ffffff0f}.shape-token-row{grid-template-columns:minmax(92px,1fr) 94px minmax(112px,auto);align-items:center;gap:8px;display:grid}.shape-vram-est{color:var(--text-main);white-space:nowrap;font-size:11px;font-weight:700}.generation-status{border:1px solid var(--panel-border);background:#ffffff47;border-radius:10px;padding:10px}.app-shell[data-theme=dark] .generation-status{background:#ffffff0f}.generation-status>p{color:var(--text-muted);overflow-wrap:anywhere;margin:0;font-size:11px;font-weight:600;line-height:1.35}.generation-progress-row{color:var(--text-main);grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:10px;font-size:11px;font-weight:700;display:grid}.generation-progress-track{background:var(--button-hover);border-radius:999px;height:7px;overflow:hidden}.generation-progress-fill{border-radius:inherit;background:var(--text-main);height:100%}.generation-metadata{gap:6px;margin:0;display:grid}.generation-metadata div{grid-template-columns:132px minmax(0,1fr);gap:8px;display:grid}.generation-metadata dt{color:var(--text-muted);font-size:11px;font-weight:700}.generation-metadata dd{color:var(--text-main);margin:0;font-size:11px;font-weight:700}.export-section{border-top:1px solid var(--panel-border);padding-top:10px}.export-checkbox-row{grid-template-columns:minmax(150px,1fr) 30px;align-items:center;gap:8px;display:grid}.export-checkbox-row input{width:16px;height:16px;accent-color:var(--accent);justify-self:end}.export-progress{gap:6px;display:grid}.export-progress p{color:var(--text-muted);margin:0;font-size:11px;font-weight:700}.export-download{place-items:center;text-decoration:none;display:grid}.export-error{color:var(--text-muted);margin:0;font-size:11px;font-weight:700}.empty-state{border:1px dashed var(--panel-border);min-height:34px;color:var(--text-muted);border-radius:10px;padding:9px 10px;font-size:11px}.family-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.manual-family-section .family-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.choice-button{border:1px solid var(--panel-border);background:var(--button-hover);min-height:32px;color:var(--text-main);cursor:pointer;border-radius:8px;font-size:11px;font-weight:700}.choice-button:hover{background:var(--button-active)}.choice-button:disabled{cursor:default;opacity:.45}.choice-button--selected{border-color:var(--panel-border);background:var(--button-selected)}.select-row{grid-template-columns:132px minmax(0,1fr);align-items:center;gap:8px;display:grid}.point-group-select,.point-group-value{border:1px solid var(--panel-border);background:var(--button-hover);width:100%;height:32px;color:var(--text-main);font:inherit;border-radius:8px;outline:none;padding:0 8px;font-size:11px;font-weight:700}.point-group-value{align-items:center;display:flex}.point-group-select option{color:#1a1a1a;background:#fff}.app-shell[data-theme=dark] .point-group-select,.app-shell[data-theme=dark] .point-group-value{color:#f5f5f3;background:#f5f5f31f}.app-shell[data-theme=dark] .point-group-select option{color:#f5f5f3;background:#1c1c1e}.symmetry-overlay-label{text-shadow:0 1px 3px #0000003d;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:700;line-height:1}.proposed-symmetry{border:1px solid var(--panel-border);background:#ffffff47;border-radius:10px;padding:10px}.app-shell[data-theme=dark] .proposed-symmetry{background:#ffffff0f}.proposed-tuple{gap:7px;margin:0;display:grid}.proposed-row{grid-template-columns:132px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.proposed-row dt{color:var(--text-muted);font-size:11px;font-weight:700}.proposed-row dd{color:var(--text-main);margin:0;font-size:11px;font-weight:700}.model-options{gap:8px;display:grid}.model-option{border:1px solid var(--panel-border);background:var(--button-hover);min-height:40px;color:var(--text-main);cursor:pointer;font:inherit;border-radius:10px;font-size:12px;font-weight:800}.model-option--selected{background:var(--button-active);box-shadow:0 0 0 3px var(--accent-soft)}.model-option:disabled{cursor:default;opacity:.42}.button{border:1px solid var(--panel-border);background:var(--button-hover);min-height:32px;color:var(--text-main);cursor:pointer;border-radius:8px;padding:0 10px;font-size:11px;font-weight:700}.button:hover{background:var(--button-active)}.button:disabled{cursor:default;opacity:.45}.button-primary{background:var(--text-main);color:var(--bg-viewer);border:1px solid #0000}.button-primary:hover{background:var(--text-main)}.button-neutral{border:1px solid var(--panel-border);background:var(--button-hover)}.button-neutral:hover{background:var(--button-active)}.button-compact{min-height:30px;padding:0 8px}.upload-box{border:1px dashed var(--panel-border);cursor:pointer;text-align:center;background:#ffffff47;border-radius:12px;place-items:center;gap:6px;min-height:116px;padding:18px;display:grid}.app-shell[data-theme=dark] .upload-box{background:#ffffff0f}.upload-box input{display:none}.upload-preview{border:1px solid var(--panel-border);background:var(--button-hover);border-radius:10px;width:100%;display:block;overflow:hidden}.upload-preview img{object-fit:contain;width:100%;max-height:180px;display:block}.upload-box-title{color:var(--text-main);overflow-wrap:anywhere;font-size:13px;font-weight:800}.upload-box-detail{color:var(--text-muted);font-size:11px;font-weight:600}.theme-switch-anchor{top:calc(80px + env(safe-area-inset-top));right:calc(18px + env(safe-area-inset-right));z-index:40;position:fixed}.theme-switch{border:1px solid var(--panel-border);width:56px;height:28px;color:var(--text-main);cursor:pointer;background:#0000001a;border-radius:999px;justify-content:space-between;align-items:center;padding:0;display:flex;position:relative}.app-shell[data-theme=dark] .theme-switch{background:#ffffff17}.theme-switch-thumb{z-index:1;background:var(--dag-progress);border-radius:50%;width:24px;height:24px;transition:transform .16s;position:absolute;top:50%;left:1px;transform:translateY(-50%);box-shadow:0 2px 8px #0000002e}.theme-switch[data-state=checked] .theme-switch-thumb{transform:translate(28px,-50%)}.theme-switch-icon{z-index:2;color:#111;opacity:0;pointer-events:none;place-items:center;width:24px;height:24px;transition:opacity .14s;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%)}.theme-switch-icon--sun{left:13px}.theme-switch-icon--moon{left:41px}.theme-switch[data-state=unchecked] .theme-switch-icon--sun,.theme-switch[data-state=checked] .theme-switch-icon--moon{opacity:1}.dag-anchor{top:calc(236px + env(safe-area-inset-top));right:calc(18px + env(safe-area-inset-right));z-index:30;pointer-events:none;position:fixed}.dag-panel{color:var(--text-main);position:relative}.dag-edges,.dag-progress-edges{position:absolute;inset:0;overflow:visible}.dag-nodes{position:absolute;inset:0}.dag-edge{fill:none;stroke-linecap:round;stroke-linejoin:round}.dag-edge--base{stroke:var(--dag-inactive);stroke-width:6px}.dag-edge--progress{stroke:var(--dag-progress);stroke-width:3.5px}.dag-node{background:var(--dag-inactive);color:var(--dag-progress);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:800;line-height:1;display:flex;position:absolute;overflow:hidden}.dag-node--completed,.dag-node--current{box-shadow:inset 0 0 0 4px var(--dag-inactive)}.dag-node--completed:after,.dag-node--current:after{content:"";border-radius:inherit;background:var(--dag-progress);position:absolute;inset:3.5px}.dag-node-label{z-index:1;color:var(--dag-active-label);position:relative}.dag-node--inactive .dag-node-label{color:var(--dag-inactive-label)}.dag-node-dot{display:none}@media (width<=1279px){.app-shell{height:100dvh}.node-panel-anchor{top:auto;right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));left:calc(12px + env(safe-area-inset-left));width:auto}.node-panel,.pre-dag-panel{border-radius:16px;max-height:40dvh}.auth-anchor{left:calc(12px + env(safe-area-inset-left));bottom:calc(40dvh + 24px + env(safe-area-inset-bottom));max-width:min(330px,100vw - 24px)}.auth-panel--model_access_required,.auth-panel--error{width:min(330px,100vw - 24px)}.node-panel-header,.pre-dag-panel-header{padding:12px 14px 10px}.node-panel h1,.pre-dag-panel h1{font-size:16px}.node-panel-body,.pre-dag-panel-body{padding:12px 14px 14px}.theme-switch-anchor{top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right))}.dag-anchor{top:calc(12px + env(safe-area-inset-top));right:auto;left:calc(12px + env(safe-area-inset-left))}.theme-switch{width:56px;height:28px}.dag-edge--base{stroke-width:6px}.dag-edge--progress{stroke-width:3.8px}.dag-node{border-radius:50%}.dag-node-label{display:none}.dag-node-dot{z-index:1;background:var(--dag-progress);opacity:0;border-radius:50%;width:5.5px;height:5.5px;display:block;position:relative}.dag-node--completed .dag-node-dot,.dag-node--current .dag-node-dot{opacity:1}.dag-node--completed:after,.dag-node--current:after{inset:3px}.viewport-readout{display:none}.button,.choice-button{min-height:40px}.axis-shortcut{min-height:30px}}@media (pointer:coarse){.button,.choice-button{min-height:40px}.axis-shortcut{min-height:30px}}
