:root{--bg: #060b16;--bg-2: #0f1f2e;--surface: #111d2c;--surface-alt: #18283c;--border: rgba(255, 255, 255, .1);--text: #f3f7fc;--text-dim: #9fb1c4;--accent-1: #ff8a00;--accent-2: #ff3d68;--ok: #22c55e;--danger: #f87171}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--text);background:radial-gradient(900px 500px at 12% 0%,#1c3250 0%,transparent 60%),radial-gradient(700px 500px at 90% 100%,#422136 0%,transparent 70%),linear-gradient(160deg,var(--bg),var(--bg-2))}.shell{width:100%;max-width:1400px;margin:0 auto;padding:24px;display:grid;gap:18px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px}.header h1{margin:0;font-size:1.6rem}.subtitle{margin:4px 0 0;color:var(--text-dim);font-size:.92rem}.header a{color:#9ce3ff}.header-user{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-dim)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-panel{width:100%;max-width:380px;display:flex;flex-direction:column}.login-panel button[type=submit]{margin-top:20px}.login-panel h1{margin:0 0 4px;font-size:1.3rem}.password-field{position:relative}.password-field input{padding-right:42px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--text-dim);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center}.password-toggle:hover{color:var(--text)}.form-links{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px}.link-btn{border:0;background:transparent;color:var(--text-dim);font:inherit;cursor:pointer;padding:6px 0}.link-btn:hover:not(:disabled){color:var(--text)}.link-btn:disabled{opacity:.5;cursor:default}.layout{display:grid;gap:18px;grid-template-columns:1fr}@media (min-width: 1000px){.layout{grid-template-columns:380px 1fr;align-items:start}}.layout,.form-panel,.editor-panel,.editor-grid>*{min-width:0}.panel{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent),var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px}.form-panel h2{margin:0 0 12px;font-size:1.05rem}.form-panel h2:not(:first-child){margin-top:20px}.collapsible-header{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:left}.collapsible-header h2{margin:20px 0 0}.collapsible-header .chevron{margin-top:20px;font-size:.7rem;color:var(--text-dim);transition:transform .15s;display:inline-block}.collapsible-header .chevron.open{transform:rotate(90deg)}.form-panel h3{margin:0 0 10px;font-size:.95rem}label{display:block;font-size:.82rem;color:var(--text-dim);margin:10px 0 6px}textarea,input[type=text],input[type=email],input[type=password],input:not([type]),select{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 11px;font:inherit;color:var(--text);background:var(--surface-alt)}textarea{min-height:100px;resize:vertical}.change-template-link{display:block;background:none;border:0;color:var(--text-dim);font-size:.8rem;padding:0;margin-bottom:16px;cursor:pointer;text-align:left}.change-template-link:hover{color:var(--text)}.gallery-tabs{display:flex;gap:8px;border-bottom:1px solid var(--border);margin-bottom:4px}.gallery-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--text-dim);font:inherit;font-size:1.05rem;font-weight:600;padding:10px 14px;cursor:pointer}.gallery-tabs button:hover{color:var(--text)}.gallery-tabs button.active{color:var(--text);border-bottom-color:var(--accent-1)}.gallery{padding:8px 0 24px}.gallery h1{margin:0 0 4px;font-size:1.5rem}.gallery-row{display:flex;flex-wrap:wrap;gap:18px;padding:22px 4px 12px}.gallery-card{flex-shrink:0;background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit;text-align:left;display:flex;flex-direction:column;gap:10px;transition:transform .15s}.gallery-card:hover{transform:translateY(-4px)}.gallery-card-preview{position:relative;border-radius:14px;overflow:hidden;background:var(--surface);border:1px solid var(--border);box-shadow:0 16px 40px -18px #000000b3}.ai-badge{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));box-shadow:0 4px 12px #00000073}.gallery-card-preview iframe{border:0;pointer-events:none;transform-origin:top left;display:block}.gallery-card-loading{width:100%;height:100%;background:linear-gradient(120deg,var(--surface-alt),var(--surface),var(--surface-alt));background-size:200% 100%;animation:gallery-shimmer 1.4s infinite}@keyframes gallery-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gallery-card-info{max-width:220px}.gallery-card-info .name{display:block;font-weight:700;font-size:.92rem}.gallery-card-info .desc{display:block;font-size:.78rem;color:var(--text-dim);margin-top:2px}.saved-posts{padding:8px 0 24px;border-top:1px solid var(--border)}.saved-posts h2{margin:20px 0 4px;font-size:1.2rem}.saved-row{display:flex;flex-wrap:wrap;gap:18px;padding:16px 4px 0}.saved-card{flex-shrink:0;width:180px;display:flex;flex-direction:column;gap:4px}.saved-card-preview{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface);padding:0;cursor:pointer;display:block;transition:transform .15s,border-color .15s}.saved-card-preview:hover{transform:translateY(-4px);border-color:var(--accent-1)}.saved-card-preview img{display:block;width:100%;aspect-ratio:4 / 5;object-fit:cover}.saved-card-title{font-weight:600;font-size:.85rem;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.saved-card-meta{font-size:.75rem;color:var(--text-dim)}.saved-card-actions{display:flex;gap:6px;margin-top:4px}.saved-card-actions button,.saved-card-actions a{flex:1;border:1px solid var(--border);background:var(--surface-alt);color:var(--text);border-radius:8px;padding:5px 0;font:inherit;font-size:.78rem;text-align:center;text-decoration:none;cursor:pointer}.saved-card-actions button:hover,.saved-card-actions a:hover{color:var(--accent-1);border-color:var(--accent-1)}.chat-panel{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}.chat-panel h3{margin:0 0 10px;font-size:.95rem}.chat-messages{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto;margin-bottom:10px}.chat-msg{font-size:.82rem;padding:8px 11px;border-radius:10px;line-height:1.4}.chat-msg-user{background:var(--surface-alt)}.chat-msg-assistant{background:#ff8a001a;border:1px solid rgba(255,138,0,.25)}.chat-msg-loading{color:var(--text-dim);font-style:italic}.chat-input-row{display:flex;flex-direction:column;gap:8px}.chat-input-row textarea{width:100%;min-height:84px;resize:vertical}.chat-input-actions{display:flex;align-items:center;gap:8px}.chat-input-hint{flex:1;font-size:.72rem;color:var(--text-dim);text-align:center}.send-btn{flex-shrink:0;width:38px;height:38px;border-radius:999px;border:0;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.send-btn:disabled{opacity:.45;cursor:default}.mic-btn{flex-shrink:0;width:38px;height:38px;border-radius:999px;border:1px solid var(--border);background:var(--surface-alt);color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center}.mic-btn:hover{color:var(--text)}.mic-btn.recording{background:var(--danger);border-color:var(--danger);color:#fff;animation:mic-pulse 1.2s infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #f8717180}50%{box-shadow:0 0 0 6px #f8717100}}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:999px;padding:10px 16px;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));font-weight:600;font:inherit}.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--text)}.btn:disabled{opacity:.6;cursor:wait}.error{color:var(--danger);margin-top:10px;white-space:pre-wrap;overflow-wrap:anywhere}.hint{color:var(--text-dim);font-size:.85rem;margin-top:10px;overflow-wrap:anywhere}.empty{color:var(--text-dim);font-size:.85rem}.history-item{border:1px solid var(--border);border-radius:10px;padding:10px;margin-bottom:10px;background:#00000029}.history-open{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}.history-item:has(.history-open:hover:not(:disabled)){border-color:var(--accent-1)}.history-open:disabled{cursor:default;opacity:.65}.history-download{display:inline-block;margin-top:8px;font-size:.78rem;color:var(--text-dim);text-decoration:none;border-bottom:1px solid var(--border)}.history-download:hover{color:var(--text);border-bottom-color:var(--accent-1)}.history-tag{float:right;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim)}.history-tag.saved{border-color:transparent;background:#22c55e2e;color:var(--ok)}.history-item p{margin:6px 0;font-size:.85rem}.history-item .meta{color:var(--text-dim);font-size:.78rem}.preview-img{display:block;max-width:100%;border-radius:10px;border:1px solid var(--border);margin:0 0 8px}.editor-panel{display:grid;gap:14px}.editor-grid{display:grid;gap:18px;grid-template-columns:1fr;align-items:start;max-width:954px}@media (min-width: 760px){.editor-grid{grid-template-columns:1fr 260px}}.canvas-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;justify-content:center;overflow:hidden}.canvas-wrapper.touch{justify-content:flex-start;overflow:auto;max-height:70vh;-webkit-overflow-scrolling:touch}.canvas-frame{overflow:hidden;border-radius:8px;box-shadow:0 20px 60px -20px #0009}.canvas-frame iframe{border:0;transform-origin:top left;display:block}.caption-panel{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.caption-panel h3{margin:0 0 4px;font-size:1rem}.caption-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{border:1px solid var(--border);background:var(--surface-alt);color:var(--text-dim);border-radius:999px;padding:7px 16px;font:inherit;font-size:.82rem;cursor:pointer}.chip:hover{color:var(--text)}.chip.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--accent-1),var(--accent-2))}.caption-extra{width:100%;min-height:64px;margin-top:12px;resize:vertical}.caption-result{width:100%;min-height:180px;margin-top:10px;resize:vertical;line-height:1.55;white-space:pre-wrap}.caption-history{margin-top:20px}.caption-history h4{margin:0 0 10px;font-size:.9rem;color:var(--text-dim)}.caption-card{border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:12px;background:#00000029}.caption-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.caption-card-head .btn{padding:6px 14px;font-size:.78rem}.caption-count{flex:1;font-size:.76rem;color:var(--text-dim)}.caption-count.over{color:var(--danger);font-weight:700}.btn.secondary.danger{color:var(--danger);border-color:var(--danger)}.icon-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#03060eb8;display:flex;align-items:center;justify-content:center;padding:24px}.icon-picker{width:100%;max-width:620px;max-height:80vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px}.icon-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.icon-picker-head h3{margin:0;font-size:1rem}.icon-picker-head button{background:none;border:0;color:var(--text-dim);font-size:1.4rem;line-height:1;cursor:pointer}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.icon-grid button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;color:var(--text-dim);font:inherit;font-size:.7rem;cursor:pointer}.icon-grid button:hover{color:var(--text);border-color:var(--accent-1)}.icon-preview svg{width:26px;height:26px;display:block}.icon-name{text-align:center}.html-panel{display:grid;gap:10px}.html-tab{justify-self:start;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font:inherit;font-size:.82rem;padding:6px 16px;cursor:pointer}.html-tab:hover,.html-tab.open{color:var(--text);border-color:var(--accent-1)}.html-tab .chevron{font-size:.7rem;transition:transform .15s;display:inline-block}.html-tab .chevron.open{transform:rotate(90deg)}.html-editor{width:100%;min-height:320px;resize:vertical;font-family:Cascadia Code,Consolas,monospace;font-size:.78rem;line-height:1.5;white-space:pre;overflow-wrap:normal;overflow-x:auto}.html-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.html-panel-actions .hint{margin-top:0}.style-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px}.style-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px}.style-panel h3{margin:0;font-size:.95rem}.undo-btn{border:1px solid var(--border);background:var(--surface-alt);color:var(--text-dim);border-radius:999px;padding:4px 10px;font:inherit;font-size:.75rem;cursor:pointer}.undo-btn:hover:not(:disabled){color:var(--text);border-color:var(--accent-1)}.undo-btn:disabled{opacity:.4;cursor:default}.style-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;font-size:.82rem;color:var(--text-dim)}.style-row input[type=color]{width:36px;height:28px;border:1px solid var(--border);border-radius:6px;background:var(--surface-alt);padding:2px;cursor:pointer}.carousel-builder{padding:8px 0 24px}.carousel-header h2{margin:4px 0 0;font-size:1.3rem}.carousel-picker{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}.carousel-picker-card{display:flex;flex-direction:column;align-items:center;gap:6px;width:140px;background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit}.carousel-picker-preview{position:relative;border-radius:12px;overflow:hidden;background:var(--surface);border:1px solid var(--border);transition:border-color .15s,transform .15s}.carousel-picker-card:hover .carousel-picker-preview{border-color:var(--accent-1);transform:translateY(-3px)}.carousel-picker-preview iframe{border:0;pointer-events:none;transform-origin:top left;display:block}.carousel-picker-preview img{width:100%;height:100%;object-fit:cover;display:block}.carousel-saved-picker{margin-top:4px}.carousel-saved-picker h3{margin:0 0 4px;font-size:.85rem;font-weight:600;color:var(--text-dim)}.carousel-picker-add{position:absolute;bottom:6px;right:6px;width:26px;height:26px;border-radius:999px;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;line-height:1;box-shadow:0 4px 10px #0006}.carousel-picker-label{font-size:.78rem;color:var(--text-dim);text-align:center}.carousel-strip{display:flex;flex-wrap:wrap;gap:16px;padding:8px 4px 16px}.carousel-slide{flex:0 0 auto;display:flex;flex-direction:column;gap:8px}.carousel-slide-preview{display:block;border-radius:14px;overflow:hidden;background:var(--surface);border:2px solid var(--border);padding:0;cursor:pointer;position:relative;box-shadow:0 16px 40px -18px #000000b3}.carousel-slide.active .carousel-slide-preview{border-color:var(--accent-1)}.carousel-slide-preview iframe{border:0;pointer-events:none;transform-origin:top left;display:block}.carousel-slide-number{position:absolute;top:8px;left:8px;background:#0000008c;color:#fff;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px}.carousel-slide-controls{display:flex;gap:6px}.carousel-slide-controls button{flex:1;border:1px solid var(--border);background:var(--surface-alt);color:var(--text);border-radius:8px;padding:4px 0;cursor:pointer}.carousel-slide-controls button:hover:not(:disabled){color:var(--accent-1)}.carousel-slide-controls button:disabled{opacity:.35;cursor:default}.carousel-editor{margin-top:24px;border-top:1px solid var(--border);padding-top:20px}.carousel-editor h3{margin:0 0 12px;font-size:1rem}.saved-carousels{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border)}.saved-carousels h3{margin:0 0 4px;font-size:1rem}.deck-hint{margin:0 0 12px;font-size:.82rem;color:var(--text-dim, #8a90a6);max-width:68ch}.deck-hint code{padding:1px 5px;border-radius:4px;background:#7f7fa029;font-size:.95em}.deck-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap}.deck-badge.draft{background:#f6b93b2e;color:#d99b12}.deck-badge.saved{background:#34c77b2e;color:#2b9c63}.deck-badge.stale{background:#f6b93b2e;color:#d99b12}.carousel-editor-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.carousel-editor-head h3{margin:0}.carousel-theme-picker{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:.82rem;color:var(--text-dim)}.carousel-theme-picker select{width:auto}.carousel-refresh-link{background:none;border:0;color:var(--text-dim);font-size:.8rem;padding:0;cursor:pointer}.carousel-refresh-link:hover{color:var(--accent-1)}.carousel-ai-block{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:12px;background:#00000029}.carousel-ai-block h3{margin:0 0 4px;font-size:1rem}
