:root{--bg: #0a0a0a;--surface: #141414;--border: #222222;--text: #d0d0d0;--text-dim: #777777;--accent: #e040a0;--accent-hover: #f050b8;--danger: #e52521}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,Work Sans,system-ui,sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.app{display:grid;grid-template-columns:340px 1fr;grid-template-rows:48px auto 1fr;height:100vh}.header{grid-column:1 / -1;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:16px;position:relative}.logo{font-family:DM Mono,monospace;font-size:17px;letter-spacing:1px;color:#fff}.logo span{color:var(--accent)}.subtitle{font-size:10px;color:var(--text-dim);letter-spacing:2px;font-family:DM Mono,monospace}.export-btn{background:var(--accent);color:#0a0a0a;border:none;padding:8px 20px;font-family:DM Mono,monospace;font-size:11px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .15s}.export-btn:hover{background:var(--accent-hover)}.header-link{background:none;border:none;padding:6px 12px;font-family:DM Mono,monospace;font-size:10px;font-weight:600;letter-spacing:1.5px;cursor:pointer;text-decoration:none;text-transform:uppercase;transition:color .15s,border-color .15s}.header-link--subtle{color:var(--text-dim)}.header-link--subtle:hover{color:var(--text)}.header-link--ai{color:#a78bfa;border:1px solid rgba(167,139,250,.3);border-radius:3px;padding:5px 12px}.header-link--ai:hover{color:#c4b5fd;border-color:#a78bfa99;background:#a78bfa14}.header-link--action{color:var(--text-dim);border:1px solid var(--border);border-radius:3px;padding:5px 12px}.header-link--action:hover{color:var(--accent);border-color:var(--accent)}.header-dropdown-wrap{position:relative}.header-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:4px;min-width:180px;z-index:9999;box-shadow:0 8px 24px #0006;padding:4px 0}.header-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-family:DM Mono,monospace;font-size:11px;letter-spacing:1px;color:var(--text);cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .1s}.header-dropdown-item:hover{background:#ffffff0d;color:var(--accent)}.header-dropdown-item--disabled{color:var(--text-dim);cursor:default}.header-dropdown-badge{font-size:8px;letter-spacing:.5px;padding:2px 6px;border-radius:2px;background:#a78bfa26;color:#a78bfa}.signin-btn{background:transparent;color:var(--text);border:1px solid var(--border)}.signin-btn:hover{border-color:var(--accent);color:var(--accent);background:transparent}.user-menu{position:relative}.user-menu-trigger{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-family:DM Mono,monospace;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:box-shadow .15s}.user-menu-trigger:hover{box-shadow:0 0 0 2px var(--accent-hover)}.user-dropdown{position:fixed;z-index:9000;background:var(--surface);border:1px solid var(--border);min-width:200px;box-shadow:0 4px 20px #00000080}.user-dropdown a,.user-dropdown button{display:block;width:100%;padding:8px 14px;text-align:left;color:var(--text);font-family:DM Mono,monospace;font-size:11px;text-decoration:none;letter-spacing:1px;background:none;border:none;cursor:pointer;transition:background .15s,color .15s}.user-dropdown a:hover,.user-dropdown button:hover{background:var(--bg);color:var(--accent)}.user-dropdown .tier-badge{display:inline-block;padding:2px 6px;font-size:9px;letter-spacing:1px;border-radius:2px;margin-left:6px}.tier-designer{background:#e040a033;color:var(--accent)}.tier-ultra{background:#ffb43233;color:#ffb432}.auth-banner{grid-column:1 / -1;background:var(--accent);border-bottom:none;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:DM Mono,monospace}.auth-banner-text{font-size:11px;color:#0a0a0a;letter-spacing:.5px;font-weight:600}.auth-banner-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.auth-banner-btn{background:#0a0a0a;color:var(--accent);border:none;padding:5px 14px;font-family:DM Mono,monospace;font-size:10px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .15s}.auth-banner-btn:hover{background:#1a1a1a}.auth-banner-close{background:none;border:none;color:#0a0a0a;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.auth-banner-close:hover{color:#fff}.signin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#000000b3;display:flex;align-items:center;justify-content:center}.signin-modal{background:var(--surface);border:1px solid var(--border);padding:32px;min-width:360px;max-width:420px;box-shadow:0 8px 40px #0009}.signin-modal h2{font-family:DM Mono,monospace;font-size:16px;letter-spacing:2px;color:#fff;margin-bottom:20px;text-align:center}.signin-modal .social-btn{display:block;width:100%;padding:10px;margin-bottom:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:DM Mono,monospace;font-size:12px;letter-spacing:1px;cursor:pointer;transition:border-color .15s,color .15s;text-align:center}.signin-modal .social-btn:hover{border-color:var(--accent);color:var(--accent)}.signin-modal .divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-dim);font-size:10px;letter-spacing:1px;font-family:DM Mono,monospace}.signin-modal .divider:before,.signin-modal .divider:after{content:"";flex:1;height:1px;background:var(--border)}.signin-modal .field{margin-bottom:10px}.signin-modal .field input{width:100%;padding:9px 12px;background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:DM Mono,monospace;font-size:12px;outline:none;transition:border-color .15s}.signin-modal .field input:focus{border-color:var(--accent)}.signin-modal .submit-btn{display:block;width:100%;padding:10px;margin-top:14px;background:var(--accent);color:#0a0a0a;border:none;font-family:DM Mono,monospace;font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .15s}.signin-modal .submit-btn:hover{background:var(--accent-hover)}.signin-modal .toggle-mode{display:block;margin-top:12px;text-align:center;color:var(--text-dim);font-size:10px;font-family:DM Mono,monospace;letter-spacing:.5px;cursor:pointer;background:none;border:none;transition:color .15s;width:100%}.signin-modal .toggle-mode:hover{color:var(--accent)}.signin-modal .error-msg{color:var(--danger);font-size:10px;margin-top:6px;font-family:DM Mono,monospace}.signin-modal .success-msg{color:var(--accent);font-size:10px;margin-top:6px;font-family:DM Mono,monospace}.controls{background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;padding:14px;min-height:0}.controls::-webkit-scrollbar{width:4px}.controls::-webkit-scrollbar-track{background:transparent}.controls::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.section{margin-bottom:16px}.section-title{font-family:DM Mono,monospace;font-size:10px;letter-spacing:2px;color:var(--accent);text-transform:uppercase;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--border)}.template-cards{display:flex;flex-wrap:wrap;gap:6px}.template-card{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:6px 10px;font-family:Inter,sans-serif;font-size:11px;cursor:pointer;transition:all .15s}.template-card:hover{border-color:var(--accent);color:var(--text)}.template-card.active{border-color:var(--accent);color:var(--accent);background:#e040a01a}.scheme-select{margin-bottom:6px}.scheme-preview{height:6px;border-radius:3px;margin-top:4px}.size-grid{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.size-card{display:flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:6px;cursor:pointer;transition:all .15s;position:relative}.size-card:hover{border-color:var(--accent)}.size-card.active{border-color:var(--accent);background:#e040a01a}.size-preview{background:var(--border);border:1px solid var(--text-dim);flex-shrink:0}.size-card.active .size-preview{background:var(--accent);border-color:var(--accent);opacity:.5}.field-label{display:block;font-size:10px;color:var(--text-dim);letter-spacing:1px;margin:8px 0 3px;text-transform:uppercase;font-family:DM Mono,monospace}.field-select,.field-input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:7px 9px;font-family:Inter,sans-serif;font-size:12px;outline:none;transition:border-color .15s}.field-select:focus,.field-input:focus{border-color:var(--accent)}.field-textarea{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:7px 9px;font-family:Inter,sans-serif;font-size:12px;outline:none;resize:vertical;min-height:60px;transition:border-color .15s}.field-textarea:focus{border-color:var(--accent)}.field-range{width:100%;accent-color:var(--accent);margin:4px 0}.field-color{width:40px;height:28px;border:1px solid var(--border);background:var(--bg);cursor:pointer;padding:2px}.check-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.checkbox-label{font-size:12px;color:var(--text);cursor:pointer}.seed-row{display:flex;gap:6px;align-items:center}.seed-row .field-input{flex:1}.btn-small{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:6px 10px;font-family:DM Mono,monospace;font-size:10px;cursor:pointer;letter-spacing:1px;white-space:nowrap;transition:all .15s}.btn-small:hover{border-color:var(--accent);color:var(--accent)}.btn-small.active{border-color:var(--accent);color:var(--accent);background:#e040a01a}.section-arrow{font-size:8px;color:var(--text-dim);transition:color .15s}.section-title:hover .section-arrow{color:var(--accent)}.section-group{border-left:2px solid var(--accent);padding-left:0}.section-group-title{font-weight:700;font-size:11px;letter-spacing:2.5px;color:var(--accent)}.section-group-children{padding-left:10px;border-left:1px solid var(--border);margin-left:4px}.section-group-children .section{margin-bottom:10px}.section-group-children .section-title{font-size:9px;letter-spacing:1.5px;color:var(--text-dim)}.section-group-children .section-title:hover{color:var(--accent)}.hint{font-size:11px;color:var(--text-dim);font-style:italic}.has-tooltip{position:relative}.custom-tooltip{visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#1a1a1a;border:1px solid var(--border);color:var(--text);padding:6px 10px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.5px;line-height:1.5;white-space:pre;z-index:100;pointer-events:none;transition:opacity .15s,visibility .15s}.custom-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--border)}.has-tooltip:hover .custom-tooltip{visibility:visible;opacity:1}.feedback-btn{position:fixed;bottom:16px;right:16px;background:var(--accent);color:#fff;border:none;padding:8px 16px;font-family:DM Mono,monospace;font-size:11px;font-weight:600;letter-spacing:1px;cursor:pointer;z-index:200;transition:background .15s,transform .15s;box-shadow:0 2px 12px #e040a04d}.feedback-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.feedback-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:300;display:flex;align-items:center;justify-content:center}.feedback-modal{background:var(--surface);border:1px solid var(--border);padding:24px;width:420px;max-width:90vw}.feedback-modal h3{font-family:DM Mono,monospace;font-size:14px;color:var(--accent);letter-spacing:1px;margin-bottom:12px}.feedback-modal textarea{width:100%;min-height:120px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px;font-family:Inter,sans-serif;font-size:13px;resize:vertical;outline:none;margin-bottom:12px}.feedback-modal textarea:focus{border-color:var(--accent)}.feedback-modal-actions{display:flex;gap:8px;justify-content:flex-end}.feedback-modal-actions button{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:6px 16px;font-family:DM Mono,monospace;font-size:11px;cursor:pointer;transition:all .15s}.feedback-modal-actions button:hover{border-color:var(--accent);color:var(--accent)}.feedback-modal-actions .submit-btn{background:var(--accent);border-color:var(--accent);color:#fff}.feedback-modal-actions .submit-btn:hover{background:var(--accent-hover)}.feedback-modal-actions .submit-btn:disabled{opacity:.5;cursor:not-allowed}.qa-reports-btn{background:#8b5cf6e6;box-shadow:0 2px 12px #8b5cf64d}.qa-reports-btn:hover{background:#8b5cf6}.qa-reports-panel{max-width:640px!important}.canvas-area{display:flex;align-items:center;justify-content:center;background:var(--bg);overflow:hidden;position:relative;min-height:0}.canvas-wrapper{display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%}.canvas-wrapper .canvas-container{box-shadow:0 4px 40px #00000080;border:1px solid var(--border)}@media(max-width:800px){.app{grid-template-columns:1fr;grid-template-rows:44px auto 1fr;overflow:hidden}.header{padding:0 8px;gap:4px;overflow-x:auto;flex-wrap:nowrap;height:44px}.header .export-btn,.header .pro-btn,.header .signin-btn{padding:5px 8px;font-size:9px;flex-shrink:0}.logo{font-size:13px}.subtitle{display:none}.controls{display:none!important}.canvas-area{grid-row:3;padding-bottom:52px}.mobile-drawer-toggle,#docs-btn,#batch-export-btn{display:none!important}.mobile-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:52px;background:var(--surface);border-top:1px solid var(--border);z-index:200;font-family:DM Mono,monospace;align-items:stretch}.mobile-tab-bar .tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:var(--text-dim);font-family:DM Mono,monospace;font-size:8px;letter-spacing:.5px;cursor:pointer;padding:4px 0;transition:color .15s;-webkit-tap-highlight-color:transparent}.mobile-tab-bar .tab-btn .tab-icon{font-size:18px;line-height:1}.mobile-tab-bar .tab-btn.active{color:var(--accent)}.mobile-tab-bar .tab-btn:active{background:#ffffff08}.mobile-sheet{position:fixed;left:0;right:0;bottom:52px;z-index:190;background:var(--surface);border-top:1px solid var(--border);border-radius:12px 12px 0 0;box-shadow:0 -4px 30px #00000080;transform:translateY(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);overflow:hidden;display:flex;flex-direction:column;max-height:70vh}.mobile-sheet.open{transform:translateY(0)}.mobile-sheet.peek{max-height:40vh}.mobile-sheet-handle{width:36px;height:4px;background:#fff3;border-radius:2px;margin:8px auto 4px;flex-shrink:0}.mobile-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:4px 14px 8px;flex-shrink:0}.mobile-sheet-title{font-family:DM Mono,monospace;font-size:10px;letter-spacing:1px;color:var(--accent);text-transform:uppercase}.mobile-sheet-close{background:none;border:none;color:var(--text-dim);font-size:18px;cursor:pointer;padding:4px;-webkit-tap-highlight-color:transparent}.mobile-sheet-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 12px 16px}.mobile-tab-panel{display:none}.mobile-tab-panel.active{display:block}.mobile-sheet .field-range{height:36px;cursor:pointer}.mobile-sheet .btn-small{padding:10px 12px;font-size:11px;min-height:40px}.mobile-sheet .field-select,.mobile-sheet .field-input{padding:10px 12px;font-size:13px;min-height:40px}.mobile-sheet .check-row{gap:10px;margin-bottom:10px;min-height:40px;align-items:center}.mobile-sheet .check-row input[type=checkbox]{width:20px;height:20px}.mobile-sheet .section{margin-bottom:12px}.mobile-sheet .section-title{padding:8px 0}.mobile-sheet .size-group{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mobile-sheet .size-group::-webkit-scrollbar{display:none}.mobile-sheet .size-card{flex-shrink:0;padding:10px;min-width:56px}.mobile-sheet .template-row{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mobile-sheet .template-row::-webkit-scrollbar{display:none}.mobile-sheet .template-card{flex-shrink:0;padding:10px 14px}.mobile-sheet #object-properties{padding:0}}@media(min-width:801px){.mobile-drawer-toggle{display:none}.mobile-tab-bar,.mobile-sheet{display:none!important}}@media(min-width:801px)and (max-width:1100px){.app{grid-template-columns:280px 1fr}.controls{padding:10px}}@media(pointer:coarse){.btn-small{padding:10px 12px;font-size:11px}.template-card{padding:10px 12px}.size-card{padding:10px}.field-select,.field-input{padding:10px 12px;font-size:13px}.check-row{gap:10px;margin-bottom:10px}.check-row input[type=checkbox]{width:20px;height:20px}}.pro-btn{background:none!important;border:1px solid var(--border)!important;color:var(--text-dim)!important;transition:border-color .15s,color .15s}.pro-btn:hover{border-color:var(--accent)!important;color:var(--accent)!important}.scheduler-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d1;z-index:200;display:flex;align-items:center;justify-content:center}.scheduler-panel{background:var(--surface);border:1px solid var(--border);width:90%;max-width:700px;max-height:80vh;overflow-y:auto;padding:24px;font-family:DM Mono,monospace}.scheduler-panel h3{font-size:14px;letter-spacing:2px;color:var(--accent);margin-bottom:12px;text-transform:uppercase;font-weight:400}.scheduler-status{font-size:10px;color:var(--text-dim);margin-bottom:14px;line-height:1.7}.scheduler-status .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px;vertical-align:middle}.scheduler-status .dot.green{background:#4caf50}.scheduler-status .dot.yellow{background:#ffc107}.scheduler-status .dot.grey{background:#666}.scheduler-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.scheduler-actions button{background:none;border:1px solid var(--border);color:var(--text-dim);padding:6px 14px;font-family:DM Mono,monospace;font-size:11px;letter-spacing:.5px;cursor:pointer;transition:all .15s}.scheduler-actions button:hover,.scheduler-actions button.primary{border-color:var(--accent);color:var(--accent)}.scheduler-empty{color:var(--text-dim);font-size:11px;padding:24px 0;text-align:center}.sched-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:11px}.sched-item:last-child{border-bottom:none}.sched-item-date{color:var(--accent);min-width:64px;font-size:11px;letter-spacing:.5px}.sched-item-info{flex:1;min-width:0}.sched-item-info .title{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-item-badge{font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:2px 6px;border:1px solid}.sched-item-badge.live{color:#4caf50;border-color:#4caf50}.sched-item-badge.upcoming{color:var(--accent);border-color:var(--accent)}.sched-item-badge.past{color:var(--text-dim);border-color:var(--border)}.sched-item-badge.expired{color:#666;border-color:#444}.sched-item-actions{display:flex;gap:4px}.sched-item-actions button{background:none;border:1px solid var(--border);color:var(--text-dim);padding:3px 8px;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.5px;cursor:pointer;transition:all .15s}.sched-item-actions button:hover{border-color:var(--accent);color:var(--accent)}.sched-item-actions button.del:hover{border-color:var(--danger);color:var(--danger)}.action-log-toggle{position:fixed;bottom:16px;left:356px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);padding:5px 12px;font-family:DM Mono,monospace;font-size:9px;letter-spacing:1px;cursor:pointer;z-index:100;transition:all .15s}.action-log-toggle:hover{border-color:var(--accent);color:var(--accent)}.action-log-panel{position:fixed;bottom:38px;left:356px;width:280px;max-height:220px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);padding:8px 10px;z-index:100;box-shadow:0 -2px 16px #0006}.action-log-panel::-webkit-scrollbar{width:3px}.action-log-panel::-webkit-scrollbar-thumb{background:var(--border)}.ai-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d1;z-index:200;display:flex;align-items:center;justify-content:center}.ai-panel{background:var(--surface);border:1px solid var(--border);width:90%;max-width:560px;max-height:80vh;overflow-y:auto;padding:24px;font-family:DM Mono,monospace}.ai-panel h3{font-size:14px;letter-spacing:2px;color:var(--accent);margin-bottom:12px;text-transform:uppercase;font-weight:400}.ai-prompt-input{width:100%;min-height:80px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px;font-family:DM Mono,monospace;font-size:12px;resize:vertical;outline:none;margin-bottom:10px}.ai-prompt-input:focus{border-color:var(--accent)}.ai-suggestions{margin-top:12px}.ai-suggestion-card{border:1px solid var(--border);padding:12px;margin-bottom:8px;transition:border-color .15s;cursor:pointer}.ai-suggestion-card:hover{border-color:var(--accent)}.ai-suggestion-card .label{font-size:10px;color:var(--accent);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}.ai-suggestion-card .value{font-size:11px;color:var(--text);line-height:1.5}.ai-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ai-preset-btn{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:5px 10px;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.5px;cursor:pointer;transition:all .15s}.ai-preset-btn:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:800px){.action-log-toggle,.action-log-panel{left:16px;bottom:56px}.feedback-btn{bottom:56px}}
