*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f2f2f7;--surface: #ffffff;--border: #d1d1d6;--text: #1d1d1f;--text-muted: #6e6e73;--primary: #007aff;--primary-hover: #0066d6;--danger: #ff3b30;--radius: 12px;--radius-sm: 10px;--radius-lg: 18px;--input-bg: #f2f2f7;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-card: 0 2px 10px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .06);--focus-ring: 0 0 0 4px rgba(0, 122, 255, .22)}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}.app{display:flex;flex-direction:column;height:100vh}.header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#ffffffd1;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.06);box-shadow:none;flex-shrink:0;z-index:10}.header-logo{font-size:1.25rem;font-weight:700;color:var(--text);text-decoration:none}.header-nav{display:flex;align-items:center;gap:24px}.header-user{display:flex;align-items:center;gap:8px}.header-avatar{width:28px;height:28px;border-radius:50%;background:var(--border);border:1px solid #aaa}.btn-link{background:none;border:none;color:var(--text-muted);font-size:.85rem}.btn-link:hover{color:var(--text)}.lang-switcher{display:inline-flex;border:none;border-radius:980px;overflow:hidden;background:var(--input-bg)}.lang-switcher__btn{padding:5px 12px;border:none;background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:600;cursor:pointer}.lang-switcher__btn--active{background:var(--primary);color:#fff;border-radius:980px}.lang-switcher__btn:hover:not(.lang-switcher__btn--active){color:var(--text)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;position:relative}.auth-lang{position:absolute;top:16px;right:24px}.auth-form{background:var(--surface);padding:40px;border-radius:var(--radius-lg);border:none;box-shadow:var(--shadow-card);width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px}.auth-form h1{text-align:center}.auth-subtitle{text-align:center;color:var(--text-muted);margin-bottom:8px}.auth-form input{padding:12px 14px;border:none;border-radius:var(--radius-sm);font-size:1rem;background:var(--input-bg);color:var(--text);transition:box-shadow .15s,background .15s}.auth-form input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.auth-form button[type=submit]{padding:12px 18px;background:var(--primary);color:#fff;border:none;border-radius:980px;font-size:1rem;font-weight:600;margin-top:4px;transition:background .15s,transform .1s}.auth-form button[type=submit]:hover{background:var(--primary-hover)}.auth-form button[type=submit]:active{transform:scale(.98)}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:#fef2f2;color:var(--danger);padding:8px 12px;border-radius:var(--radius);font-size:.9rem}.auth-success{background:#f0fdf4;color:#15803d;padding:8px 12px;border-radius:var(--radius);font-size:.9rem}.auth-link{text-align:center;font-size:.9rem;color:var(--text-muted)}.sites-page{padding:32px;max-width:1000px;margin:0 auto;width:100%}.sites-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.sites-empty{color:var(--text-muted);text-align:center;padding:48px}.sites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.site-card{background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px}.site-card h3{margin-bottom:4px}.site-subdomain{color:var(--text-muted);font-size:.9rem}.site-link{margin-left:8px;font-size:.85rem}.site-status{font-size:.85rem;margin:8px 0 16px}.site-actions{display:flex;gap:8px}.create-form{background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px;margin-bottom:24px;display:flex;flex-direction:column;gap:14px}.create-form>input,.create-form .nft-field input{width:100%;padding:12px 14px;border:none;border-radius:var(--radius-sm);font-size:1rem;font-family:inherit;color:var(--text);background:var(--input-bg);transition:box-shadow .15s,background .15s;box-sizing:border-box}.create-form>input:focus,.create-form .nft-field input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.subdomain-input{display:flex;align-items:center;gap:4px}.subdomain-input input{flex:1;padding:12px 14px;border:none;border-radius:var(--radius-sm);background:var(--input-bg);font-size:1rem;color:var(--text);transition:box-shadow .15s,background .15s}.subdomain-input input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.subdomain-input--optional{opacity:.9}.zone-select-row{display:flex;align-items:center;gap:8px}.zone-select{flex:1;padding:11px 14px;border:none;border-radius:var(--radius-sm);font-size:.95rem;background:var(--input-bg);color:var(--text);font-family:inherit}.zone-select:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.zone-suffix{font-size:.9rem;color:#475569;white-space:nowrap}.subdomain-label{font-size:.82rem;color:#64748b;white-space:nowrap}.subdomain-hint{font-size:.82rem;color:#16a34a;padding:6px 10px;background:#f0fdf4;border-radius:6px;border:1px solid #bbf7d0}.subdomain-note{font-size:.8rem;color:#94a3b8;margin:0}.site-urls{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}.site-subdomain--assigned .site-url-label,.site-subdomain--custom .site-url-label{font-size:.75rem;color:#94a3b8;margin-right:4px}.site-pending{font-size:.82rem;color:#f59e0b}.deploy-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#f0fdf4;border-bottom:1px solid #bbf7d0;color:#166534;font-size:.9rem;gap:12px}.deploy-banner-close{background:none;border:none;cursor:pointer;color:#166534;font-size:1rem;padding:0 4px;opacity:.7;flex-shrink:0}.deploy-banner-close:hover{opacity:1}.create-actions{display:flex;gap:8px}.btn-primary{padding:10px 18px;background:var(--primary);color:#fff;border:none;border-radius:980px;font-size:.95rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,transform .1s,opacity .15s}.btn-primary:hover{background:var(--primary-hover);text-decoration:none}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-secondary{padding:10px 18px;background:var(--input-bg);color:var(--text);border:none;border-radius:980px;font-size:.95rem;font-weight:600;letter-spacing:-.01em;transition:background .15s,transform .1s}.btn-secondary:hover{background:#e5e5ea}.btn-secondary:active{transform:scale(.98)}.btn-danger{padding:10px 18px;background:#ff3b301a;color:var(--danger);border:none;border-radius:980px;font-size:.95rem;font-weight:600;letter-spacing:-.01em;transition:background .15s,transform .1s}.btn-danger:hover{background:#ff3b3029}.btn-danger:active{transform:scale(.98)}.editor-layout{display:flex;flex:1;overflow:hidden}.chat-panel{width:380px;min-width:320px;max-width:460px;display:flex;flex-direction:column;border-right:1px solid var(--border);background:#fafafa}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.chat-panel-header__info{display:flex;flex-direction:column;gap:1px;min-width:0}.chat-panel-header__name{font-size:.88rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-panel-header__url{font-size:.75rem;color:var(--primary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.chat-panel-header__url:hover{text-decoration:underline}.chat-panel-header__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn-download-header{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--input-bg);color:var(--text);border:none;border-radius:980px;font-size:.82rem;font-weight:600;white-space:nowrap;transition:background .15s,color .15s,opacity .15s}.btn-download-header:hover:not(:disabled){background:#e5e5ea;color:var(--text)}.btn-download-header:disabled{opacity:.4;cursor:not-allowed}.btn-publish-header{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:#34c759;color:#fff;border:none;border-radius:980px;font-size:.82rem;font-weight:600;white-space:nowrap;flex-shrink:0;transition:background .15s,opacity .15s,transform .1s}.btn-publish-header:hover{background:#2db14e}.btn-publish-header--republish{background:var(--input-bg);color:var(--text);border:none}.btn-publish-header--republish:hover{background:#e5e5ea;color:var(--text)}.btn-publish-header:disabled{opacity:.55;cursor:not-allowed}.btn-publish-spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chat-messages{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:#ddd transparent}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 16px;flex:1}.chat-empty-icon{font-size:1.6rem;color:#c7d2fe}.chat-empty p{font-size:.88rem;color:var(--text-muted);text-align:center;max-width:240px;line-height:1.55}.chat-message{display:flex;gap:8px;align-items:flex-start;max-width:92%;font-size:.875rem;line-height:1.6}.chat-message--user{flex-direction:row-reverse;align-self:flex-end}.chat-message--assistant{align-self:flex-start}.chat-message__avatar{flex-shrink:0;width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;margin-top:2px}.chat-message__avatar--ai{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.chat-message__body{padding:10px 14px;border-radius:12px;white-space:pre-wrap;word-break:break-word}.chat-message--user .chat-message__body{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.chat-message--assistant .chat-message__body{background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}.chat-message--register .chat-message__body{background:#fffbeb;border-color:#fcd34d}.chat-message--register a{font-weight:600;color:#92400e}.chat-message--streaming .chat-message__body{display:flex;flex-direction:column;gap:8px}.streaming-thinking{white-space:pre-wrap;color:var(--text)}.streaming-phases{display:flex;flex-direction:column;gap:8px}.streaming-comment{white-space:pre-wrap;color:var(--text);font-size:.875rem;line-height:1.6}.chat-locked{padding:12px 14px;border-top:1px solid var(--border);background:var(--surface)}.chat-locked-btn{width:100%;text-align:center}.streaming-cursor{display:inline-block;width:2px;height:1em;background:var(--primary);border-radius:1px;animation:blink .9s step-end infinite;vertical-align:text-bottom;flex-shrink:0}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.streaming-code-badge{display:inline-flex;align-items:center;gap:6px;background:#eff6ff;color:var(--primary);border:1px solid #bfdbfe;border-radius:20px;padding:5px 12px;font-size:.8rem;font-weight:500;align-self:flex-start}.streaming-code-badge--css{background:#fdf4ff;color:#7e22ce;border-color:#e9d5ff}.streaming-code-badge--html{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.streaming-code-badge--js{background:#fefce8;color:#a16207;border-color:#fef08a}.streaming-phase-icon{font-size:.9rem;line-height:1}.streaming-code-dot{width:7px;height:7px;border-radius:50%;background:var(--primary);animation:pulse-dot 1.2s ease-in-out infinite;flex-shrink:0}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.asset-gallery{display:flex;align-items:center;gap:8px;padding:8px 14px;border-top:1px solid var(--border);background:var(--surface)}.asset-gallery__label{font-size:.75rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.asset-gallery__list{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin}.asset-thumb-wrap{position:relative;flex-shrink:0}.asset-thumb-wrap:hover .asset-thumb-delete{opacity:1}.asset-thumb{display:block;width:40px;height:40px;border:1.5px solid var(--border);border-radius:6px;overflow:hidden;cursor:pointer;padding:0;background:var(--bg);transition:border-color .15s,transform .1s}.asset-thumb:hover{border-color:var(--primary);transform:scale(1.08)}.asset-thumb img{width:100%;height:100%;object-fit:cover;display:block}.asset-thumb-delete{position:absolute;top:-5px;right:-5px;width:16px;height:16px;border-radius:50%;background:#ef4444;color:#fff;border:none;font-size:9px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;padding:0;z-index:1}.chat-composer{margin:12px 14px 14px;border:none;border-radius:var(--radius);background:var(--input-bg);display:flex;flex-direction:column;transition:box-shadow .15s,background .15s;flex-shrink:0}.chat-composer:focus-within{background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.chat-composer-field{position:relative}.chat-composer-placeholder{position:absolute;top:10px;left:12px;right:12px;color:#aab4c4;font-size:.875rem;line-height:1.55;pointer-events:none;-webkit-user-select:none;user-select:none}.chat-composer-input{width:100%;min-height:4.65em;max-height:160px;overflow-y:auto;padding:10px 12px 6px;border:none;background:transparent;resize:none;font-family:inherit;font-size:.875rem;color:var(--text);line-height:1.55;outline:none;white-space:pre-wrap;word-break:break-word}.composer-mention{display:inline;padding:1px 7px;margin:0 1px;border-radius:6px;background:#007aff1f;color:var(--primary);font-weight:500;font-size:.84em;white-space:nowrap;vertical-align:baseline;box-shadow:0 0 0 1px #007aff47;-webkit-user-select:none;user-select:none;cursor:default}.chat-composer-actions{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px}.chat-composer-attach{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;background:none;border:none;border-radius:6px;font-size:.78rem;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.chat-composer-attach:hover{background:var(--bg);color:var(--text)}.chat-composer-attach svg{flex-shrink:0}.chat-composer-send{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,opacity .15s,transform .1s;flex-shrink:0}.chat-composer-send:hover{background:var(--primary-hover)}.chat-composer-send:active:not(:disabled){transform:scale(.94)}.chat-composer-send:disabled{opacity:.35;cursor:not-allowed}.preview-panel{flex:1;background:#e8eaed;display:flex;flex-direction:column;overflow:hidden}.preview-toolbar{display:flex;align-items:center;gap:10px;padding:0 14px;height:40px;background:#f0f2f5;border-bottom:1px solid #d1d5db;flex-shrink:0}.preview-toolbar__dots{display:flex;gap:5px;flex-shrink:0}.preview-toolbar__dots span{width:10px;height:10px;border-radius:50%}.preview-toolbar__dots span:nth-child(1){background:#fc5f57}.preview-toolbar__dots span:nth-child(2){background:#fdbc2c}.preview-toolbar__dots span:nth-child(3){background:#28c941}.preview-toolbar__url-bar{flex:1;background:var(--surface);border:1px solid #d1d5db;border-radius:6px;padding:3px 10px;font-size:.78rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.preview-toolbar__url-link{color:#374151;text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis}.preview-toolbar__url-link:hover{text-decoration:underline;color:var(--primary)}.preview-toolbar__url-placeholder{color:#9ca3af}.preview-toolbar__actions{display:flex;gap:2px;flex-shrink:0}.preview-toolbar__btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:5px;color:#6b7280;cursor:pointer;text-decoration:none;transition:background .12s,color .12s}.preview-toolbar__btn:hover{background:#e5e7eb;color:#111827}.preview-toolbar__btn--active{background:#007aff1f;color:var(--primary)}.preview-toolbar__btn--active:hover{background:#007aff2e;color:var(--primary-hover)}.picker-hint{display:flex;align-items:center;gap:6px;padding:5px 14px;background:#eff6ff;border-bottom:1px solid #bfdbfe;font-size:.78rem;color:#1d4ed8;font-weight:500;flex-shrink:0}.preview-iframe--picker{cursor:crosshair}.preview-mobile-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:12px;background:#d1d5db;overflow:hidden;min-height:0}.phone-scale{width:287px;height:602px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.phone-frame{position:relative;width:399px;flex-shrink:0;background:linear-gradient(160deg,#2c2c2e,#1c1c1e);border-radius:48px;padding:12px;transform:scale(.72);transform-origin:center center;box-shadow:0 0 0 1.5px #3a3a3c,0 0 0 3px #1c1c1e,0 0 0 4px #ffffff0f,0 32px 72px #0000008c,inset 0 1px #ffffff14,inset 0 -1px #0006}.phone-frame:before{content:"";position:absolute;left:-3px;top:120px;width:3px;height:28px;background:#3a3a3c;border-radius:2px 0 0 2px;box-shadow:0 44px #3a3a3c,0 84px #3a3a3c}.phone-frame:after{content:"";position:absolute;right:-3px;top:168px;width:3px;height:72px;background:#3a3a3c;border-radius:0 2px 2px 0}.phone-frame__screen{position:relative;background:#000;border-radius:38px;overflow:hidden;display:flex;flex-direction:column;width:375px}.phone-frame__island{position:absolute;top:10px;left:50%;transform:translate(-50%);width:110px;height:30px;background:#000;border-radius:20px;z-index:10;pointer-events:none;box-shadow:0 0 0 2px #0a0a0a}.phone-frame__home{position:absolute;bottom:7px;left:50%;transform:translate(-50%);width:110px;height:4px;background:#ffffff47;border-radius:2px;z-index:10;pointer-events:none}.preview-iframe{flex:1;border:none;background:#fff}.preview-iframe--mobile{flex:none;width:375px;height:812px;border:none;background:#fff;display:block;scrollbar-width:none;-ms-overflow-style:none}.preview-iframe--mobile::-webkit-scrollbar{display:none;width:0;height:0}.loading{padding:32px;text-align:center;color:var(--text-muted)}.admin-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:#1e293b;color:#fff;flex-shrink:0}.admin-header__title{font-weight:600;font-size:1rem;letter-spacing:.02em}.admin-logout{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:5px 14px;border-radius:var(--radius);cursor:pointer;font-size:.85rem;transition:background .15s}.admin-logout:hover{background:#ffffff1a}.admin-tabs{display:flex;gap:2px;padding:0 24px;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0}.admin-tab{padding:12px 20px;border:none;background:transparent;cursor:pointer;font-size:.9rem;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.admin-tab--active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}.admin-content{flex:1;padding:24px;max-width:1400px;width:100%;margin:0 auto;overflow:hidden;display:flex;flex-direction:column}.admin-sites-layout{display:flex;flex-direction:column;gap:0;flex:1;overflow:hidden}.admin-sites-layout--split{flex-direction:row;gap:16px;overflow:hidden}.admin-sites-list{flex:1;min-width:0;overflow:auto}.admin-sites-layout--split .admin-sites-list{flex:0 0 52%;overflow:auto}.admin-site-row{cursor:pointer;transition:background .1s}.admin-site-row:hover{background:#f8fafc}.admin-site-row--selected{background:#eff6ff!important}.admin-site-detail{flex:0 0 46%;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;min-height:0}.admin-site-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:#f8fafc;flex-shrink:0}.admin-site-detail-title{display:flex;flex-direction:column;gap:2px;font-weight:600;font-size:.92rem;min-width:0}.admin-detail-close{background:none;border:none;color:var(--text-muted);font-size:.9rem;cursor:pointer;padding:4px 8px;border-radius:4px;flex-shrink:0}.admin-detail-close:hover{background:var(--bg);color:var(--text)}.admin-detail-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.admin-detail-tab{padding:8px 18px;border:none;background:none;font-size:.85rem;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.admin-detail-tab--active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}.admin-detail-loading,.admin-detail-empty{padding:32px;text-align:center;color:var(--text-muted);font-size:.9rem}.admin-chat-history{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}.admin-chat-msg{display:flex;gap:8px;align-items:flex-start;max-width:94%;font-size:.82rem;line-height:1.55}.admin-chat-msg--user{align-self:flex-end;flex-direction:row-reverse}.admin-chat-msg__role{flex-shrink:0;font-size:.9rem;margin-top:2px}.admin-chat-msg__body{padding:8px 12px;border-radius:10px;white-space:pre-wrap;word-break:break-word}.admin-chat-msg--user .admin-chat-msg__body{background:var(--primary);color:#fff;border-bottom-right-radius:3px}.admin-chat-msg--assistant .admin-chat-msg__body{background:#f1f5f9;color:var(--text);border-bottom-left-radius:3px;max-width:100%}.admin-preview-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#e8eaed}.admin-preview-iframe{flex:1;border:none;background:#fff;width:100%}.admin-section-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.admin-section-header h2{font-size:1.1rem;font-weight:600}.admin-count{background:#e2e8f0;color:#475569;border-radius:10px;padding:1px 8px;font-size:.8rem;font-weight:500}.admin-loading{color:var(--text-muted);padding:16px 0}.admin-zone-select{padding:8px 12px;border:none;border-radius:var(--radius-sm);font-size:.9rem;background:var(--input-bg);color:var(--text);font-family:inherit}.admin-zone-select:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.admin-btn-add{margin-left:auto}.admin-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:none;box-shadow:var(--shadow-card);background:var(--surface)}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table th{padding:12px 14px;text-align:left;font-weight:600;color:var(--text-muted);background:var(--input-bg);border-bottom:1px solid rgba(0,0,0,.06);white-space:nowrap}.admin-table td{padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.04);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#f8fafc}.admin-td-name{font-weight:500;display:flex;align-items:center;gap:6px}.admin-site-link{font-size:.75rem;color:var(--primary);opacity:.6}.admin-site-link:hover{opacity:1}.admin-td-date{color:var(--text-muted);white-space:nowrap}.admin-td-muted{color:var(--text-muted);font-size:.8rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-td-actions{white-space:nowrap;display:flex;gap:6px}.admin-empty{text-align:center;color:var(--text-muted);padding:24px!important}.admin-btn-edit{padding:6px 12px;font-size:.8rem;font-weight:600;border:none;border-radius:980px;background:var(--input-bg);color:var(--text);cursor:pointer;transition:background .15s}.admin-btn-edit:hover{background:#e5e5ea}.admin-btn-delete{padding:6px 12px;font-size:.8rem;font-weight:600;border:none;border-radius:980px;background:#ff3b301a;color:var(--danger);cursor:pointer;transition:background .15s}.admin-btn-delete:hover{background:#ff3b3029}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:500}.badge--green{background:#dcfce7;color:#166534}.badge--gray,.badge--grey{background:#f1f5f9;color:#64748b}.badge--blue{background:#dbeafe;color:#1e40af}.dns-type-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.75rem;font-weight:600;background:#eff6ff;color:var(--primary);font-family:monospace}.dns-content{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:.8rem}.dns-form{background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px;margin-bottom:20px}.dns-form h3{font-size:1rem;font-weight:600;margin-bottom:16px}.dns-form-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.dns-form-grid label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--text-muted)}.dns-form-grid input,.dns-form-grid select{padding:10px 12px;border:none;border-radius:var(--radius-sm);font-size:.875rem;background:var(--input-bg);color:var(--text);min-width:90px;font-family:inherit;transition:box-shadow .15s,background .15s}.dns-form-grid input:focus,.dns-form-grid select:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.dns-form-content{flex:1;min-width:200px}.dns-form-content input{width:100%}.dns-form-proxied{flex-direction:row!important;align-items:center;gap:6px!important}.dns-form-proxied input{min-width:unset}.dns-form-comment{flex:1;min-width:180px}.dns-form-comment input{width:100%}.dns-form-actions{display:flex;gap:8px;margin-top:16px}.btn-cancel{padding:10px 18px;border:none;border-radius:980px;background:var(--input-bg);color:var(--text);cursor:pointer;font-size:.95rem;font-weight:600;letter-spacing:-.01em;transition:background .15s,transform .1s}.btn-cancel:hover{background:#e5e5ea}.btn-cancel:active{transform:scale(.98)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fff;border-radius:var(--radius-lg);padding:28px 32px;position:relative;box-shadow:0 16px 48px #0000002e;max-width:420px;width:90%}.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.1rem;cursor:pointer;color:#94a3b8}.modal-close:hover{color:#475569}.payment-title{font-size:1.2rem;font-weight:600;margin:0 0 4px;color:#1e293b}.payment-free-note{font-size:.88rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:8px 12px;margin:0 0 12px}.payment-price{font-size:.95rem;color:#64748b;margin:0 0 20px}.payment-price strong{font-size:1.1rem;color:#1e293b}.payment-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:2px solid #f1f5f9;padding-bottom:0}.payment-tab{padding:8px 18px;border:none;background:none;cursor:pointer;font-size:.95rem;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.payment-tab--active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.payment-kaspi{display:flex;flex-direction:column;gap:12px}.kaspi-badge{display:inline-block;padding:4px 12px;background:#ef4444;color:#fff;border-radius:6px;font-size:.85rem;font-weight:600;letter-spacing:.5px}.kaspi-instructions{font-size:.9rem;color:#475569;margin:0}.kaspi-phone{font-size:1.3rem;font-weight:700;color:#1e293b;letter-spacing:.5px}.kaspi-note{font-size:.82rem;color:#94a3b8;line-height:1.5;margin:0}.btn-kaspi{padding:10px 20px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-kaspi:hover{background:#dc2626}.btn-kaspi--clicked{background:#16a34a}.btn-kaspi--clicked:hover{background:#15803d}.btn-kaspi--soon{opacity:.45;cursor:not-allowed}.kaspi-after{font-size:.85rem;color:#16a34a;background:#f0fdf4;padding:8px 12px;border-radius:6px;border:1px solid #bbf7d0;margin:0}.payment-promo-form{display:flex;flex-direction:column;gap:12px}.promo-hint{font-size:.88rem;color:#64748b;margin:0}.promo-input-row{display:flex;gap:8px}.promo-input{flex:1;padding:12px 14px;border:none;border-radius:var(--radius-sm);font-size:1rem;letter-spacing:1px;text-transform:uppercase;background:var(--input-bg);color:var(--text);transition:box-shadow .15s,background .15s}.promo-input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.promo-error{font-size:.85rem;color:#ef4444;margin:0}.admin-btn-pay{padding:6px 12px;background:#34c7591f;border:none;color:#248a3d;border-radius:980px;cursor:pointer;font-size:.8rem;font-weight:600;transition:background .15s}.admin-btn-pay:hover{background:#34c75933}.promo-create-form{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}.promo-create-input{padding:10px 12px;border:none;border-radius:var(--radius-sm);font-size:.9rem;letter-spacing:1px;text-transform:uppercase;width:180px;background:var(--input-bg);color:var(--text)}.promo-create-input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.promo-amount-row{display:flex;align-items:center;gap:4px}.promo-amount-input{width:90px;padding:10px 12px;border:none;border-radius:var(--radius-sm);font-size:.9rem;background:var(--input-bg);color:var(--text)}.promo-amount-input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.promo-create-error{font-size:.85rem;color:#ef4444}.promo-code-cell{font-size:.9rem;letter-spacing:.5px}.promo-row--used td{opacity:.55}.subdomain-filter{display:flex;gap:6px;margin-left:auto}.subdomain-filter-btn{padding:6px 14px;border-radius:980px;border:none;background:var(--input-bg);color:var(--text-muted);cursor:pointer;font-size:.85rem;font-weight:600;transition:background .15s,color .15s}.subdomain-filter-btn:hover{background:#e5e5ea;color:var(--text)}.subdomain-filter-btn--active{background:var(--primary);color:#fff;border-color:var(--primary)}.provision-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:12px}.provision-form__title{font-size:.85rem;font-weight:500;color:#475569;margin-right:4px}.provision-input{height:36px;border:none;border-radius:var(--radius-sm);padding:0 12px;font-size:.9rem;background:var(--input-bg);color:var(--text)}.provision-input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.provision-input--count{width:70px}.provision-input--content{width:200px}.provision-select{height:36px;border:none;border-radius:var(--radius-sm);padding:0 10px;background:var(--input-bg);color:var(--text);font-family:inherit}font-size: .9rem; background: #fff; } .provision-proxied{display:flex;align-items:center;gap:5px;font-size:.88rem;color:#475569;cursor:pointer}.provision-result{padding:10px 14px;border-radius:6px;font-size:.88rem;margin-bottom:12px;word-break:break-all}.provision-result--ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.provision-result--err{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.subdomain-stats{display:flex;gap:16px;margin-bottom:12px;font-size:.9rem}.subdomain-stat{padding:4px 12px;border-radius:6px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569}.subdomain-stat--free{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.subdomain-stat--taken{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.subdomain-row--free td{background:#f0fdf4}.mod-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f4ff,#faf5ff);padding:24px}.mod-login-card{background:#fff;border-radius:16px;border:1px solid var(--border);box-shadow:0 8px 32px #00000014;padding:48px 40px 40px;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:0}.mod-login-icon{font-size:2.5rem;margin-bottom:16px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.mod-login-title{font-size:1.5rem;font-weight:700;color:var(--text);margin:0 0 6px;text-align:center}.mod-login-subtitle{font-size:.9rem;color:var(--text-muted);margin:0 0 28px;text-align:center}.mod-login-form{width:100%;display:flex;flex-direction:column;gap:16px}.mod-field{display:flex;flex-direction:column;gap:6px}.mod-label{font-size:.85rem;font-weight:600;color:var(--text);letter-spacing:.01em}.mod-input{width:100%;padding:12px 14px;border:none;border-radius:var(--radius-sm);font-size:.95rem;color:var(--text);background:var(--input-bg);transition:box-shadow .15s,background .15s;box-sizing:border-box}.mod-input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.mod-login-error{background:#fff5f5;color:#c53030;border:1px solid #fed7d7;border-radius:8px;padding:10px 14px;font-size:.88rem;display:flex;align-items:center;gap:6px}.mod-login-btn{width:100%;padding:12px 18px;background:var(--primary);color:#fff;border:none;border-radius:980px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:4px;transition:background .15s,transform .1s;box-shadow:none}.mod-login-btn:hover:not(:disabled){background:var(--primary-hover);box-shadow:none;transform:scale(.99)}.mod-login-btn:active:not(:disabled){transform:scale(.97)}.mod-login-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.mod-login-loading{display:flex;align-items:center;justify-content:center;gap:8px}@keyframes mod-spin{to{transform:rotate(360deg)}}.mod-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:mod-spin .7s linear infinite}.landing{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#eef2ff 0%,var(--bg) 40%)}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;max-width:1080px;margin:0 auto;width:100%}.landing-logo{font-size:1.35rem;font-weight:700;color:var(--text);text-decoration:none}.landing-logo:hover{text-decoration:none}.landing-nav{display:flex;align-items:center;gap:20px}.landing-nav a:not(.landing-btn){color:var(--text-muted);font-size:.95rem}.landing-nav a:not(.landing-btn):hover{color:var(--text)}.landing main{flex:1;max-width:1080px;margin:0 auto;width:100%;padding:0 32px}.landing-hero{text-align:center;padding:64px 0 80px}.landing-badge{display:inline-block;padding:6px 14px;background:#dbeafe;color:#1e40af;border-radius:999px;font-size:.85rem;font-weight:500;margin-bottom:24px}.landing-hero h1{font-size:clamp(2rem,5vw,3rem);line-height:1.15;letter-spacing:-.02em;margin-bottom:20px}.landing-lead{font-size:1.15rem;color:var(--text-muted);max-width:520px;margin:0 auto 36px}.landing-lead--below{margin-top:28px;margin-bottom:0;font-size:.95rem}.landing-wizard{max-width:560px;margin:32px auto 0;text-align:left}.landing-wizard-form{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:12px;box-shadow:0 4px 24px #0000000f}.landing-wizard-label{font-weight:600;font-size:1rem}.landing-prompt-input{width:100%;padding:14px 16px;border:none;border-radius:var(--radius);font-size:1rem;font-family:inherit;line-height:1.5;resize:vertical;min-height:120px;background:var(--input-bg);color:var(--text);transition:box-shadow .15s,background .15s}.landing-prompt-input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.landing-subdomain-row{display:flex;align-items:center;border:none;border-radius:var(--radius);overflow:hidden;background:var(--input-bg);transition:box-shadow .15s,background .15s}.landing-subdomain-row:focus-within{background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.landing-subdomain-input{flex:1;border:none;padding:14px 16px;font-size:1rem;min-width:0}.landing-subdomain-input:focus{outline:none}.landing-subdomain-suffix{padding:14px 16px;background:#f3f4f6;color:var(--text-muted);font-size:.95rem;white-space:nowrap;border-left:1px solid var(--border)}.landing-zone-select{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;font-family:inherit}.landing-wizard-hint{font-size:.85rem;color:var(--text-muted);margin:0}.landing-wizard-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:4px}.landing-btn--wide{width:100%;margin-top:4px}.landing-wizard-form .auth-error{margin:0}.landing-wizard-form button[type=submit],.landing-wizard-form button[type=button].landing-btn{border:none;cursor:pointer}.landing-cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.landing-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:980px;font-size:1rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;border:1px solid transparent;transition:background .15s,color .15s,transform .1s}.landing-btn:hover{text-decoration:none}.landing-btn:active{transform:scale(.98)}.landing-btn--primary{background:var(--primary);color:#fff}.landing-btn--primary:hover{background:var(--primary-hover);color:#fff}.landing-btn--ghost{background:var(--input-bg);color:var(--text);border-color:transparent}.landing-btn--ghost:hover{background:#e5e5ea;color:var(--text)}.landing-btn--sm{padding:8px 16px;font-size:.9rem}.landing-features{padding:48px 0 72px}.landing-features h2{text-align:center;font-size:1.5rem;margin-bottom:36px}.landing-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}.landing-feature{background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:28px 24px}.landing-feature-step{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:#007aff1f;color:var(--primary);border-radius:50%;font-weight:700;font-size:.9rem;margin-bottom:16px}.landing-feature h3{font-size:1.1rem;margin-bottom:8px}.landing-feature p{color:var(--text-muted);font-size:.95rem;line-height:1.55}.landing-bottom-cta{text-align:center;padding:56px 24px;background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:48px}.landing-bottom-cta h2{font-size:1.5rem;margin-bottom:8px}.landing-bottom-cta p{color:var(--text-muted);margin-bottom:24px}.landing-footer{text-align:center;padding:32px 24px;color:var(--text-muted);font-size:.85rem;border-top:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:16px}.landing-contacts{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.9rem}.landing-contacts a{color:var(--primary)}.landing-footer-nav{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.landing-footer-nav a{color:var(--text-muted);text-decoration:none;font-size:.88rem;transition:color .15s}.landing-footer-nav a:hover{color:var(--primary)}.pricing-page{max-width:900px;margin:0 auto;padding:0 24px 80px}.pricing-hero{text-align:center;padding:72px 0 48px}.pricing-hero h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--text);margin:12px 0 16px}.pricing-subtitle{font-size:1.1rem;color:var(--text-muted);max-width:480px;margin:0 auto}.pricing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:64px}.pricing-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 16px #00000014;display:flex;flex-direction:column;gap:0}.pricing-card--highlight{border:2px solid var(--primary);box-shadow:0 4px 32px #007aff26}.pricing-card__header{margin-bottom:24px}.pricing-card__label{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:20px;margin-bottom:16px}.pricing-card__label--free{background:#f0fdf4;color:#166534}.pricing-card__label--pro{background:#ede9fe;color:#5b21b6}.pricing-card__price{display:flex;align-items:baseline;gap:2px;margin-bottom:8px}.pricing-card__amount{font-size:2.8rem;font-weight:800;color:#1e293b;line-height:1}.pricing-card__currency{font-size:1.4rem;font-weight:600;color:#64748b}.pricing-card__per{font-size:.9rem;color:#94a3b8;margin-left:4px}.pricing-card__desc{font-size:.9rem;color:#64748b;margin:0}.pricing-card__features{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:10px;flex:1}.pricing-card__features li{font-size:.95rem;color:#334155}.pricing-card__cta{display:block;text-align:center;padding:12px;font-size:.95rem;font-weight:600;border-radius:10px;text-decoration:none}.pricing-faq{background:#f1f5f9;border-radius:16px;padding:40px}.pricing-faq h2{font-size:1.5rem;font-weight:700;color:var(--text);margin:0 0 28px;text-align:center}.pricing-faq__list{display:flex;flex-direction:column;gap:20px}.pricing-faq__item{background:#fff;border-radius:10px;padding:20px 24px;box-shadow:0 1px 4px #0000000f}.pricing-faq__item h3{font-size:1rem;font-weight:600;color:var(--text);margin:0 0 8px}.pricing-faq__item p{font-size:.92rem;color:var(--text-muted);margin:0;line-height:1.6}.examples-page{max-width:1100px;margin:0 auto;padding:0 24px 80px}.examples-hero{text-align:center;padding:72px 0 48px}.examples-hero h1{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;color:var(--text);margin:12px 0 16px}.examples-subtitle{font-size:1.05rem;color:var(--text-muted)}.examples-loading,.examples-empty{text-align:center;color:var(--text-muted);padding:60px 0;font-size:1rem}.examples-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.example-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 16px #0000001a;text-decoration:none;display:block;transition:transform .18s,box-shadow .18s}.example-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #0000002e}.example-preview{width:100%;height:180px;overflow:hidden;position:relative;background:#f8fafc;border-bottom:1px solid #e2e8f0}.example-iframe{position:absolute;top:0;left:0;width:400%;height:800px;transform:scale(.25);transform-origin:top left;pointer-events:none;border:none}.example-preview__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent}.example-card__footer{padding:14px 18px;display:flex;justify-content:space-between;align-items:center}.example-card__name{font-size:.95rem;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.example-card__link{font-size:.85rem;color:var(--primary);font-weight:500;white-space:nowrap}.legal-page{max-width:780px;margin:0 auto;padding:48px 24px 80px}.legal-content{background:#fff;border-radius:16px;padding:48px 52px;box-shadow:0 2px 24px #00000014;line-height:1.75}.legal-content h1{font-size:2rem;font-weight:800;color:#0f172a;margin:0 0 8px}.legal-updated{font-size:.85rem;color:#94a3b8;margin:0 0 36px}.legal-content section{margin-bottom:28px}.legal-content h2{font-size:1.15rem;font-weight:700;color:#1e293b;margin:0 0 10px}.legal-content p{font-size:.95rem;color:#334155;margin:0 0 10px}.legal-content ul{padding-left:20px;margin:8px 0}.legal-content li{font-size:.95rem;color:#334155;margin-bottom:4px}.legal-content a{color:var(--primary)}.legal-content code{background:#f1f5f9;padding:1px 6px;border-radius:4px;font-size:.88em}@media (max-width: 600px){.legal-content{padding:28px 20px}.pricing-faq{padding:24px 16px}}.nft-page,.nft-editor{max-width:1100px;margin:0 auto;padding:24px 24px 64px;width:100%}.nft-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.nft-page-header h1,.nft-editor-top h1{font-size:1.6rem;margin:0 0 4px}.nft-page-lead,.nft-hint{color:var(--text-muted);font-size:.9rem;margin:0}.nft-create-form{margin-bottom:24px}.nft-field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--text-muted)}.nft-form-actions{display:flex;gap:8px;justify-content:flex-end}.nft-empty{padding:48px 16px;text-align:center;color:var(--text-muted);background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.nft-collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.nft-collection-card{background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px;display:flex;flex-direction:column;gap:12px}.nft-collection-card__main{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px;flex:1}.nft-collection-card__main h3{margin:0;font-size:1.05rem}.nft-collection-card__main p{margin:0;color:var(--text-muted);font-size:.85rem}.nft-job-badge{display:inline-block;align-self:flex-start;font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:999px;background:#e2e8f0;color:#475569}.nft-job-badge--queued,.nft-job-badge--running{background:#007aff1f;color:var(--primary)}.nft-job-badge--completed{background:#dcfce7;color:#166534}.nft-job-badge--failed{background:#fee2e2;color:#b91c1c}.nft-editor-top{margin-bottom:20px}.nft-back{display:inline-block;margin-bottom:8px;font-size:.88rem;color:var(--text-muted);text-decoration:none}.nft-back:hover{color:var(--primary)}.nft-editor-layout{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}@media (max-width: 900px){.nft-editor-layout{grid-template-columns:1fr}}.nft-settings-card,.nft-layer-card{background:var(--surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px}.nft-settings-card h2,.nft-layers-header h2{margin:0 0 12px;font-size:1.05rem}.nft-settings-form{display:flex;flex-direction:column;gap:12px}.nft-settings-form label,.nft-settings-row label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--text-muted)}.nft-settings-form input,.nft-settings-form textarea,.nft-add-layer input,.nft-trait-name,.nft-trait-weight input{border:none;border-radius:var(--radius-sm);padding:10px 12px;font:inherit;color:var(--text);background:var(--input-bg);transition:box-shadow .15s,background .15s}.nft-settings-form input:focus,.nft-settings-form textarea:focus,.nft-add-layer input:focus,.nft-trait-name:focus,.nft-trait-weight input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 1px var(--primary),var(--focus-ring)}.nft-settings-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.nft-extra-attrs{display:flex;flex-direction:column;gap:8px}.nft-extra-attrs__head span{font-size:.8rem;color:var(--text-muted)}.nft-extra-attrs__head .nft-hint{margin-top:2px;font-size:.78rem}.nft-extra-attrs__row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}.nft-extra-attrs__row input{min-width:0}.nft-generate-box{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.nft-generate-btn{width:100%}.nft-job-status{display:flex;flex-direction:column;gap:8px}.nft-job-status__row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.nft-progress{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden}.nft-progress__bar{height:100%;background:var(--primary);transition:width .25s ease}.nft-job-error{margin:0;color:var(--danger);font-size:.85rem}.nft-layers-panel{display:flex;flex-direction:column;gap:14px}.nft-add-layer{display:flex;gap:8px}.nft-add-layer input{flex:1}.nft-layer-card__header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.nft-layer-order{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:980px;background:#007aff1f;color:var(--primary);font-size:.75rem;font-weight:700;margin-right:8px}.nft-layer-card__actions{display:flex;gap:8px;align-items:center}.nft-traits-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.nft-trait-card{position:relative;border:none;border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:6px;background:var(--input-bg);min-width:0;overflow:hidden}.nft-trait-thumb{width:100%;aspect-ratio:1;object-fit:contain;border-radius:8px;background:repeating-conic-gradient(#e5e7eb,#e5e7eb 25%,#fff 0%,#fff 50%) 50% / 16px 16px}.nft-trait-thumb--empty{background:#e5e7eb}.nft-trait-name{font-size:.8rem;padding:4px 6px!important;width:100%;min-width:0;box-sizing:border-box}.nft-trait-weight{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:var(--text-muted);min-width:0}.nft-trait-weight__row{display:flex;align-items:center;gap:6px;min-width:0}.nft-trait-weight input{flex:1;min-width:0;width:100%;max-width:100%;box-sizing:border-box;padding:4px 6px!important;font-size:.8rem}.nft-trait-weight em{font-style:normal;color:var(--primary);font-weight:600;flex-shrink:0;font-size:.75rem}.nft-trait-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:10px;cursor:pointer}
