@font-face{font-family:Londrina Solid;src:url(/theme-assets/fonts/LondrinaSolid-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Londrina Solid;src:url(/theme-assets/fonts/LondrinaSolid-Black.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Abhaya Libre;src:url(/theme-assets/fonts/AbhayaLibre-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Abhaya Libre;src:url(/theme-assets/fonts/AbhayaLibre-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Abril Fatface;src:url(/theme-assets/fonts/AbrilFatface-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Allan;src:url(/theme-assets/fonts/Allan-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Allan;src:url(/theme-assets/fonts/Allan-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Allura;src:url(/theme-assets/fonts/Allura-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Allerta;src:url(/theme-assets/fonts/Allerta-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Bitter;src:url(/theme-assets/fonts/Bitter-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Bitter;src:url(/theme-assets/fonts/Bitter-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Capriola;src:url(/theme-assets/fonts/Capriola-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Changa;src:url(/theme-assets/fonts/Changa-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Coming Soon;src:url(/theme-assets/fonts/ComingSoon-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cookie;src:url(/theme-assets/fonts/Cookie-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Delius Swash Caps;src:url(/theme-assets/fonts/DeliusSwashCaps-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Didact Gothic;src:url(/theme-assets/fonts/DidactGothic-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Grand Hotel;src:url(/theme-assets/fonts/GrandHotel-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Maitree;src:url(/theme-assets/fonts/Maitree-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Maitree;src:url(/theme-assets/fonts/Maitree-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Marcellus SC;src:url(/theme-assets/fonts/MarcellusSC-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/theme-assets/fonts/Roboto-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/theme-assets/fonts/Roboto-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Satisfy;src:url(/theme-assets/fonts/Satisfy-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sofia;src:url(/theme-assets/fonts/Sofia-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Comic Neue;src:url(/theme-assets/fonts/ComicNeue-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Comic Neue;src:url(/theme-assets/fonts/ComicNeue-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Comic Neue;src:url(/theme-assets/fonts/ComicNeue-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Comic Neue;src:url(/theme-assets/fonts/ComicNeue-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}:root{--paper: #faf8f3;--surface: #ffffff;--surface-alt: #f2ede3;--surface-strong: #e8ddc8;--surface-muted: #efe9dc;--border: #d8c6a5;--border-strong: #c9b48a;--border-soft: #e3d6be;--ink: #303b38;--text-secondary: #64736d;--text-tertiary: #7e8b85;--text-muted: #98a29d;--accent: #19382f;--accent-dark: #102019;--accent-soft: #e2e8e5;--accent-disabled: #8ca39a;--coral: #d8c6a5;--coral-soft: #f3ead8;--success: #3f7a4f;--danger: #c0332a;--danger-soft: #fbe4e0;--warning-text: #8a5a1a;--warning-bg: #faf1d4;--shadow-sm: 0 1px 2px rgba(25, 56, 47, .05), 0 1px 2px rgba(25, 56, 47, .05);--shadow-md: 0 3px 10px rgba(25, 56, 47, .08), 0 1px 2px rgba(25, 56, 47, .05);--shadow-lg: 0 10px 24px rgba(25, 56, 47, .12), 0 2px 8px rgba(25, 56, 47, .06);--shadow-card: 0 6px 16px rgba(25, 56, 47, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--font-display: "Montserrat", Arial, sans-serif;--font-body: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ease: cubic-bezier(.22, .8, .22, 1)}*{box-sizing:border-box}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body{margin:0;font-family:var(--font-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent)}button,input,select,textarea{font-family:inherit}.app{max-width:1320px;margin:0 auto;padding:0 24px 48px}.app-editing{max-width:1600px;padding-bottom:180px}.app-header{position:sticky;top:0;z-index:500;padding:20px 0;display:flex;align-items:center;gap:24px;background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:box-shadow .2s var(--ease),border-color .2s var(--ease)}.app-header-scrolled{box-shadow:var(--shadow-sm);border-bottom-color:var(--border)}.app-header h1{margin:0}.brand-home-btn{display:flex;align-items:center;gap:8px;border:none;background:none;padding:0;margin:0;font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;color:var(--accent);cursor:pointer;transition:opacity .15s var(--ease)}.brand-home-btn:hover{opacity:.8}.brand-mark{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0}.brand-mark-logo{width:100%;height:100%;display:block}.tab-nav{display:flex;gap:4px}.tab-nav button{border:none;background:none;padding:8px 16px;border-radius:8px;font-size:15px;color:var(--text-secondary);cursor:pointer}.tab-nav button.tab-active{background:var(--surface-strong);color:var(--accent);font-weight:600}.error-text{color:var(--danger);background:var(--danger-soft);padding:10px 14px;border-radius:8px}.empty-state{color:var(--text-secondary);text-align:center;padding:40px 0}.theme-preselected-note{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface-alt);color:var(--accent-dark);border-radius:10px;padding:10px 16px;margin:0 0 16px;font-weight:600}.theme-preselected-note .link-btn{font-weight:400;color:var(--text-secondary)}.new-album-form{display:flex;gap:8px;margin-bottom:24px}.new-album-form input{flex:1;padding:10px 14px;border-radius:8px;border:1px solid var(--border);font-size:14px}.new-album-form button,.dropzone,.back-btn{cursor:pointer}.new-album-form button{padding:10px 18px;border-radius:8px;border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:500}.new-album-form button:disabled{background:var(--accent-disabled);cursor:default}.album-grid,.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.album-card{position:relative;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #17392f14;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;animation:fade-in-up .25s ease-out backwards}.album-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #17392f24}.album-cover{aspect-ratio:1;background:var(--surface-muted)}.album-cover img{width:100%;height:100%;object-fit:cover;display:block}.album-cover-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:13px}.album-meta{display:flex;flex-direction:column;padding:10px 12px}.album-name{font-weight:600;font-size:17px}.album-count{font-size:12px;color:var(--text-secondary)}.album-delete-btn,.photo-delete-btn{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:none;background:#17392f8c;color:#fff;font-size:16px;line-height:1;cursor:pointer}.album-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.album-header h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0;color:var(--accent)}.back-btn{border:none;background:none;font-size:14px;color:var(--accent);padding:0}.dropzone{border:2px dashed var(--border-strong);border-radius:12px;padding:28px;text-align:center;color:var(--text-secondary);margin-bottom:20px;transition:border-color .15s ease,background .15s ease}.dropzone-active{border-color:var(--accent);background:var(--accent-soft)}.photo-thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--surface-muted)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#17392fe6;display:flex;align-items:center;justify-content:center;z-index:1000;animation:backdrop-in .2s ease-out}.lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain;animation:modal-pop-in .22s var(--ease)}.lightbox-close,.lightbox-nav{position:absolute;z-index:3;background:none;border:none;color:#fff;font-size:32px;cursor:pointer}.lightbox-close{top:16px;right:24px}.preview-zoom-viewport{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:safe center;justify-content:safe center;overflow:auto}.preview-zoom-stage{margin:auto}.preview-zoom-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:999px;background:#ffffff24;color:#fff}.preview-zoom-controls button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:none;color:#fff;cursor:pointer}.preview-zoom-controls button:hover:not(:disabled){background:#ffffff2e}.preview-zoom-controls button:disabled{opacity:.35;cursor:default}.preview-zoom-value{width:auto!important;min-width:56px;padding:0 6px;border-radius:999px!important;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.lightbox-page-label{position:absolute;z-index:3;top:16px;left:50%;transform:translate(-50%);color:#fff;font-size:13px;font-weight:600;letter-spacing:.02em;background:#ffffff1f;padding:6px 16px;border-radius:999px}.lightbox-prev{left:24px;top:50%;transform:translateY(-50%)}.lightbox-next{right:24px;top:50%;transform:translateY(-50%)}.books-home{animation:fade-in-up .25s ease-out}.wizard-panel{animation:fade-in-up .28s var(--ease)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.section-heading{font-size:14px;color:var(--text-secondary);margin:0 0 12px}.section-heading-accent{font-family:var(--font-display);font-size:32px;font-weight:500;color:var(--accent);margin:48px 0 20px;letter-spacing:-.01em}@media (max-width: 600px){.section-heading-accent{font-size:26px}}.section-heading-accent:first-of-type{margin-top:0}.mongolia-intro{margin:-8px 0 14px;color:var(--text-secondary);font-size:13px}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:28px}.products-intro{color:var(--text-secondary);margin:-8px 0 16px}.product-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:20px}.product-option-card{position:relative;display:flex;flex-direction:column;text-align:left;padding:0;overflow:hidden;border-radius:var(--radius-md);border:2px solid var(--border);background:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s var(--ease),box-shadow .15s var(--ease),border-color .15s var(--ease);animation:fade-in-up .3s ease-out backwards}.product-option-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--accent)}.product-option-card-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-md)}.product-option-check{position:absolute;top:10px;left:10px;z-index:2;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.product-option-cover{position:relative;width:100%;padding:10%;box-sizing:border-box;border-top-left-radius:calc(var(--radius-md) - 2px);border-top-right-radius:calc(var(--radius-md) - 2px);overflow:hidden}.product-option-body{display:flex;flex-direction:column;gap:6px;padding:14px 18px 18px}.product-option-name{font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--accent)}.product-option-tagline{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.4;min-height:2.8em}.product-option-specs{display:flex;flex-direction:column;gap:3px;margin:4px 0 2px;padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.product-option-spec-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px}.product-option-spec-label{color:var(--text-secondary)}.product-option-spec-value{font-weight:600;color:var(--ink);text-align:right}.product-option-price{margin-top:6px;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--accent-dark)}.products-continue-btn{display:block;margin:4px 0 28px}.toolbar-product-badge{font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--surface-muted);padding:4px 10px;border-radius:999px;white-space:nowrap}.toolbar-reference-badge{font-family:var(--font-mono, monospace);font-variant-numeric:tabular-nums;letter-spacing:.02em}.toolbar-expiry-badge-warning{color:var(--warning-text);background:var(--warning-bg)}.toolbar-expiry-badge-urgent{color:var(--danger);background:var(--danger-soft)}.section-heading-flag{display:inline-block;width:22px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #17392f1a;vertical-align:middle;margin-right:6px;margin-bottom:2px}.theme-card-featured{position:relative}.theme-card-badge{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;gap:3px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:3px 9px 3px 7px;border-radius:999px;z-index:1;text-transform:uppercase;letter-spacing:.03em;box-shadow:var(--shadow-sm)}.theme-card{display:flex;flex-direction:column;align-items:flex-start;padding:0;border:none;border-radius:0;background:none;cursor:pointer;transition:transform .15s var(--ease);animation:fade-in-up .3s ease-out backwards}.theme-card:hover .theme-card-preview{transform:translateY(-2px)}.theme-card:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:4px}.theme-card-preview{position:relative;width:100%;aspect-ratio:1 / 1;background:transparent;transition:transform .15s var(--ease);container-type:inline-size}.theme-card-view-affordance{position:absolute;right:8px;bottom:8px;width:28px;height:28px;border-radius:50%;background:#faf8f3eb;color:var(--accent);display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(4px);transition:opacity .15s var(--ease),transform .15s var(--ease);box-shadow:var(--shadow-sm)}.theme-card:hover .theme-card-view-affordance,.theme-card:focus-visible .theme-card-view-affordance{opacity:1;transform:none}.theme-card-name{font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--ink);text-align:left;width:100%;margin-top:12px;min-height:2.6em;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wizard-steps-full{display:flex;align-items:center;margin-bottom:24px;flex-wrap:wrap}.wizard-step{display:flex;align-items:center}.wizard-step-btn{display:flex;align-items:center;gap:8px;border:none;background:none;padding:6px 4px;cursor:pointer;font-size:13px;color:var(--text-secondary)}.wizard-step-btn:disabled{cursor:default}.wizard-step-num{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--surface-strong);color:var(--text-secondary);flex-shrink:0}.wizard-step-label{white-space:nowrap}.wizard-step-done .wizard-step-btn{color:var(--ink)}.wizard-step-done .wizard-step-num{background:var(--accent-soft);color:var(--accent);border:1.5px solid var(--accent)}.wizard-step-done .wizard-step-connector{background:var(--accent)}.wizard-step-active .wizard-step-btn{color:var(--accent);font-weight:700}.wizard-step-active .wizard-step-num{background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}.wizard-step-connector{width:28px;height:2px;background:var(--surface-muted);margin:0 4px}.wizard-steps-compact{display:none;margin-bottom:20px}.wizard-steps-compact-count{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.wizard-steps-compact-label{margin-left:6px;font-size:13px;color:var(--text-secondary)}.wizard-steps-compact-bar{margin-top:6px;height:4px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.wizard-steps-compact-bar span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .2s var(--ease)}@media (max-width: 600px){.wizard-steps-full{display:none}.wizard-steps-compact{display:block}}.new-book-form{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.new-book-form select,.new-book-form input{padding:10px 14px;border-radius:8px;border:1px solid var(--border);font-size:14px}.new-book-form input{flex:1;min-width:160px}.new-book-form button{padding:10px 18px;border-radius:8px;border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:500;cursor:pointer}.new-book-form button:disabled{background:var(--accent-disabled);cursor:default}.editor-toolbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--paper);padding:12px 0;margin-bottom:12px;border-bottom:1px solid var(--surface-muted)}.toolbar-title{margin:0;font-family:var(--font-display);font-size:19px;font-weight:600;cursor:text;color:var(--accent)}.toolbar-title-input{font-family:var(--font-display);font-size:19px;font-weight:600;padding:4px 8px;border-radius:6px;border:1px solid var(--accent);color:var(--accent)}.toolbar-tools{display:flex;gap:8px;flex-wrap:wrap}.toolbar-tools button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;color:var(--ink);font-size:13px;cursor:pointer;transition:border-color .15s var(--ease),background-color .15s var(--ease),transform .15s var(--ease)}.toolbar-tools button .icon{flex-shrink:0}.toolbar-tools button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.toolbar-tools button:disabled{opacity:.4;cursor:default}.toolbar-popover-wrap{position:relative}.popover{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:10px;z-index:200;animation:fade-in-up .15s ease-out}.emoji-popover{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;width:280px}.emoji-choice{border:none;background:none;font-size:20px;padding:4px;border-radius:6px;cursor:pointer}.emoji-choice:hover{background:var(--surface-alt)}.photo-add-popover{width:220px}.photo-add-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:260px;overflow-y:auto}.photo-add-choice{border:none;padding:0;background:none;cursor:pointer;aspect-ratio:1;border-radius:6px;overflow:hidden}.photo-add-choice img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s var(--ease)}.photo-add-choice:hover img{transform:scale(1.08)}.shape-popover{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;width:140px}.shape-choice{border:none;background:none;padding:6px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center}.shape-choice:hover{background:var(--surface-alt)}.swatch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:140px}.swatch{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center}.swatch-none{color:var(--danger);font-size:14px}.swatch-custom{width:100%;margin-top:8px;height:30px;cursor:pointer}.popover-section-label{display:block;margin:10px 0 6px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.pattern-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;width:140px}.pattern-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;font-size:10px;color:var(--text-secondary)}.pattern-swatch:hover{border-color:var(--accent)}.pattern-swatch-preview{width:100%;height:28px;border-radius:4px;background-color:#f5f5f7;border:1px solid var(--border)}.pattern-preview-dots,.page-canvas-pattern-dots{background-image:radial-gradient(circle,rgba(0,0,0,.14) 1.4px,transparent 1.6px);background-size:14px 14px}.pattern-preview-stripes,.page-canvas-pattern-stripes{background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 2px,transparent 2px,transparent 14px)}.pattern-preview-grid,.page-canvas-pattern-grid{background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) .5px,transparent .5px,transparent 22px),repeating-linear-gradient(90deg,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) .5px,transparent .5px,transparent 22px)}.toolbar-actions{margin-left:auto;display:flex;gap:8px}.preview-btn,.save-btn{padding:9px 18px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;color:var(--ink);font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:border-color .15s var(--ease),background-color .15s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease),color .15s var(--ease)}.preview-btn:hover{border-color:var(--accent);color:var(--accent)}.save-btn{border-color:var(--accent);color:var(--accent);font-weight:600;min-width:80px}.save-btn:hover{background:var(--accent-soft)}.publish-btn{padding:9px 18px;border-radius:var(--radius-sm);border:1px solid var(--success);background:var(--success);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm)}.publish-btn:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:var(--shadow-md)}.book-editor-body{display:flex;justify-content:center;align-items:flex-start}.book-spread{display:flex;align-items:flex-start;gap:0;flex:1;min-width:0}.book-spread>*{flex:1;min-width:0}.book-spread>*:first-child .page-canvas{margin-left:auto;margin-right:0;border-radius:10px 0 0 10px;box-shadow:inset -10px 0 14px -12px #17392f73,0 2px 10px #17392f1f}.book-spread>*:last-child .page-canvas{margin-right:auto;margin-left:0;border-radius:0 10px 10px 0;box-shadow:inset 10px 0 14px -12px #17392f73,0 2px 10px #17392f1f}@media (max-width: 640px){.book-spread{flex-direction:column;align-items:stretch;gap:0}.book-spread>*:first-child .page-canvas{border-radius:10px 10px 0 0;box-shadow:inset 0 -10px 14px -12px #17392f73,0 2px 10px #17392f1f}.book-spread>*:last-child .page-canvas{border-radius:0 0 10px 10px;box-shadow:inset 0 10px 14px -12px #17392f73,0 2px 10px #17392f1f}.book-spread>*:last-child .page-type-badge-row{display:none}}.toolbar-toggle-active{border-color:var(--accent)!important;background:var(--accent-soft)!important}.photo-tray{flex-shrink:0}.tray-hint{color:var(--accent);font-weight:400}.tray-hint-block{color:var(--accent);font-size:12px;margin:-4px 0 10px}.tray-empty-hint{color:var(--text-secondary);font-size:12px;margin:8px 0 0}.editor-panel{background:#fff;border:1px solid var(--surface-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px;margin-bottom:16px}.editor-panel-title{margin:0 0 10px;font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.page-type-badge-row{width:min(100%,calc(max(320px,100vh - 350px) * var(--page-ratio, 1)));margin:0 auto 10px}.book-spread>*:first-child .page-type-badge-row{margin-left:auto;margin-right:0}.book-spread>*:last-child .page-type-badge-row{margin-right:auto;margin-left:0}.page-type-badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:5px 12px;border-radius:999px;color:#fff}.page-type-badge-cover{background:var(--coral);color:var(--accent)}.page-type-badge-endpaper{background:var(--text-secondary)}.photo-tray-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.tray-photo{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:grab;border:2px solid transparent;touch-action:none}.tray-photo img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.tray-photo-dragging{opacity:.5}.tray-photo-selectable{border-color:var(--accent)}.tray-photo-delete{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;background:#17392f99;color:#fff;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.tray-photo-delete:hover{background:var(--danger)}.photo-tray-upload-btn{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:8px 10px;margin-bottom:10px;border-radius:8px;border:1px dashed var(--accent);background:var(--accent-soft);color:var(--accent-dark);font-size:12px;font-weight:600;cursor:pointer}.photo-tray-upload-btn:hover:not(:disabled){background:var(--accent-soft);filter:brightness(.97)}.photo-tray-upload-btn:disabled{opacity:.6;cursor:default}.page-editor{flex:1;min-width:0}.book-single{display:flex;justify-content:center;flex:1;min-width:0}.layout-picker-panel{margin-top:20px}.layout-picker{display:flex;flex-direction:row;flex-wrap:wrap;gap:18px;padding:4px;box-sizing:border-box}.layout-group{display:flex;flex-direction:column;gap:6px}.layout-group-label{font-size:11px;color:var(--text-secondary)}.layout-group-row{display:flex;gap:8px;flex-wrap:wrap}.layout-picker button{width:40px;height:40px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;padding:4px}.layout-picker button.layout-btn-active{border-color:var(--accent);background:var(--accent-soft)}.layout-icon{position:relative;display:block;width:100%;height:100%}.layout-icon span{position:absolute;background:var(--text-muted);border-radius:1px}.layout-btn-active .layout-icon span{background:var(--accent)}.floating-toolbar{position:absolute;top:8px;left:8px;z-index:96;max-width:calc(100% - 16px);background:#fffffffa;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--surface-muted);border-radius:10px;box-shadow:var(--shadow-lg);padding:8px;max-height:calc(100% - 16px);overflow-y:auto}.floating-toolbar-actions{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.editor-panel .photo-add-grid{margin:2px 0 10px}.floating-toolbar-tabs{display:flex;flex-wrap:wrap;gap:3px;border-top:1px solid var(--surface-muted);padding-top:6px;margin-bottom:6px}.floating-toolbar-tab{padding:4px 9px;border-radius:6px;border:1px solid transparent;background:none;font-size:11px;font-weight:600;color:var(--text-secondary);cursor:pointer}.floating-toolbar-tab-active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.floating-toolbar-panel .slot-tools-group{margin-bottom:5px}.floating-toolbar-panel .slot-tools-group:last-child{margin-bottom:0}.slot-tools-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.slot-tools-group-block{flex-direction:column;align-items:stretch}.slot-tools-group-block .mask-frame-grid{grid-template-columns:repeat(3,1fr)}.slot-tools-label{font-size:12px;color:var(--text-secondary)}.floating-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 9px;border-radius:6px;border:1px solid var(--border);background:#fff;font-size:11px;cursor:pointer;text-transform:capitalize}.floating-toolbar button.filter-btn-active{border-color:var(--accent);background:var(--accent-soft)}.floating-toolbar button:disabled{opacity:.55;cursor:default}.auto-enhance-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:100%;font-size:12px!important;font-weight:600;padding:7px 10px!important;background:linear-gradient(135deg,var(--accent-soft),white)!important;border-color:var(--accent)!important;color:var(--accent-dark)}.auto-enhance-btn:hover:not(:disabled){background:var(--accent-soft)!important}.make-spread-btn{width:100%;font-size:11px!important}.floating-toolbar-delete{color:var(--danger);border-color:currentColor!important}.floating-toolbar-delete:hover{background:var(--danger-soft)!important}.floating-toolbar input[type=range]{width:72px;vertical-align:middle}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:999px;background:var(--surface-strong);outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--accent);border:2px solid white;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s var(--ease)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--accent);border:2px solid white;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s var(--ease)}input[type=range]::-moz-range-thumb:hover{transform:scale(1.2)}input[type=range]::-moz-range-track{height:4px;border-radius:999px;background:var(--surface-strong)}.position-input{width:48px;padding:3px 5px;border-radius:5px;border:1px solid var(--border);font-size:12px}.alt-text-input{flex:1;min-width:200px;padding:6px 9px;border-radius:6px;border:1px solid var(--border);font-size:12px}.zoom-control{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.mini-layout-btn{width:32px;height:32px;padding:3px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer}.mini-layout-btn .layout-icon span{background:var(--text-muted)}.page-slot-resize{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid white;box-shadow:0 1px 3px #17392f66;touch-action:none;z-index:5}.page-slot-resize-nw{top:-6px;left:-6px;cursor:nwse-resize}.page-slot-resize-ne{top:-6px;right:-6px;cursor:nesw-resize}.page-slot-resize-sw{bottom:-6px;left:-6px;cursor:nesw-resize}.page-slot-resize-se{bottom:-6px;right:-6px;cursor:nwse-resize}.page-slot-move{position:absolute;top:4px;left:4px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--success);border:2px solid white;box-shadow:0 1px 3px #17392f66;cursor:move;touch-action:none;z-index:5}.page-slot-rotate{position:absolute;bottom:4px;right:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--success);color:#fff;box-shadow:0 1px 3px #17392f66;cursor:grab;touch-action:none;z-index:5}.page-canvas-wrap{position:relative}.page-canvas{position:relative;isolation:isolate;width:min(100%,calc(max(320px,100vh - 350px) * var(--page-ratio, 1)));aspect-ratio:1;margin:0 auto;background:#fff;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-md);cursor:default;container-type:inline-size}.page-canvas-pattern-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-9999;pointer-events:none}.page-canvas-endpaper{background:#2c2c2e;display:flex;align-items:center;justify-content:center;cursor:default}.page-canvas-endpaper-label{color:#fff;text-align:center;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:0 12%}.page-canvas-endpaper-label span{display:block;margin-top:6px;font-size:11px;font-weight:400;text-transform:none;color:#ffffffa6}.page-canvas-focused{outline:3px solid var(--accent);outline-offset:3px}.page-slot{position:absolute;background:var(--surface-alt);cursor:pointer;overflow:hidden;touch-action:none}.slot-photo{width:100%;height:100%;object-fit:cover;display:block;transform-origin:center}.slot-photo-spread{position:absolute;top:0;width:200%;height:100%}.page-slot-selected .slot-photo{cursor:move}.page-slot-over{outline:3px solid var(--accent);outline-offset:-3px}.page-slot-selected{outline:3px solid var(--success);outline-offset:-3px}.page-slot-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--border-strong);font-size:28px;box-sizing:border-box;border:2px dashed var(--border-strong);border-radius:4px}.page-slot-clear{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:#17392f8c;color:#fff;cursor:pointer}.page-element{position:absolute}.page-element-body{width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:grab;overflow:visible;touch-action:none}.page-element-selected .page-element-body{outline:2px dashed var(--accent);outline-offset:2px}.sticker-glyph{line-height:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3vw;-webkit-user-select:none;user-select:none}.sticker-image{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.photo-element-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:2px}.text-element-display,.text-element-input{width:100%;display:block;word-wrap:break-word;white-space:pre-wrap}.text-element-display{overflow:visible}.text-element-input{height:100%;overflow:hidden;border:none;background:#ffffffd9;resize:none;font-family:inherit}.page-element-delete{position:absolute;top:-26px;right:-6px;width:20px;height:20px;border-radius:50%;border:none;background:#17392fa6;color:#fff;cursor:pointer;z-index:10}.page-element-resize{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid white;touch-action:none}.page-element-resize-nw{top:-8px;left:-8px;cursor:nwse-resize}.page-element-resize-ne{top:-8px;right:-8px;cursor:nesw-resize}.page-element-resize-sw{bottom:-8px;left:-8px;cursor:nesw-resize}.page-element-resize-se{bottom:-8px;right:-8px;cursor:nwse-resize}.page-element-rotate{position:absolute;top:-26px;left:-6px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--success);border:2px solid white;color:#fff;cursor:grab;touch-action:none;z-index:10}.page-caption-band{position:absolute;left:0;right:0;bottom:0;height:6%;display:flex;align-items:center;justify-content:center;background:#ffffffd9;font-size:13px;color:var(--ink);padding:0 12px;text-align:center}.page-safe-guide{position:absolute;border:1.5px dashed rgba(196,58,44,.55);border-radius:2px;pointer-events:none;z-index:50}.page-thumb-strip{border-top:1px solid var(--surface-muted);padding:8px 24px}.book-editor-dock{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--paper);box-shadow:0 -2px 8px #0000000f}.page-thumb-strip-row{display:flex;gap:12px;overflow-x:auto;max-width:1600px;margin:0 auto;padding-bottom:4px}.page-thumb-unit{display:flex;flex-shrink:0;border-radius:var(--radius-sm);border:2px solid transparent;overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease);cursor:grab;touch-action:none}.page-thumb-unit:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.page-thumb-unit-active{border-color:var(--accent)}.page-thumb-unit-fixed{cursor:default;touch-action:auto}.page-thumb-unit-spread .page-thumb:first-child{border-right:1px solid var(--surface-muted)}.page-thumb{position:relative;width:64px;height:64px;flex-shrink:0;overflow:hidden;background:#fff}.page-thumb-placeholder{width:64px;height:64px;flex-shrink:0;background:#2c2c2e}.page-thumb-preview{position:relative;width:100%;height:100%}.page-thumb-preview img,.page-thumb-empty-slot{position:absolute;object-fit:cover}.page-thumb-preview img{display:block}.page-thumb-empty-slot{background:var(--surface-alt)}.page-thumb-number{position:absolute;bottom:2px;left:4px;font-size:10px;color:#fff;text-shadow:0 0 3px rgba(23,57,47,.8)}.page-thumb-tag{font-weight:700;text-transform:uppercase;letter-spacing:.03em}.book-editor-main{display:flex;align-items:flex-start;gap:16px}.book-editor-canvas-area{flex:1;min-width:0}.editor-rail-wrap{display:flex;flex-direction:column;gap:8px;flex-shrink:0;position:sticky;top:90px}.editor-rail-row{display:flex;align-items:flex-start}.editor-rail-persistent-layer-bar{background:#fff;border:1px solid var(--surface-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:8px 10px}.editor-rail{display:flex;flex-direction:column;gap:4px;width:76px;flex-shrink:0;background:#fff;border:1px solid var(--surface-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:8px 6px}.editor-rail-btn{display:flex;flex-direction:column;align-items:center;gap:4px;border:none;background:none;border-radius:var(--radius-sm);padding:9px 4px;color:var(--text-secondary);font-size:10.5px;cursor:pointer;transition:background-color .15s var(--ease),color .15s var(--ease)}.editor-rail-btn:hover{background:var(--surface-alt);color:var(--ink)}.editor-rail-text-icon{display:flex;align-items:center;justify-content:center;height:20px;font-family:var(--font-display);font-weight:700;font-size:14px;color:inherit}.editor-rail-btn-active{background:var(--accent-soft);color:var(--accent)}.editor-rail-panel{width:250px;max-height:calc(100vh - 130px);overflow-y:auto;margin-left:10px;background:#fff;border:1px solid var(--surface-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px}.editor-rail-panel-sheet-header{display:none;align-items:center;justify-content:center;position:relative;margin:-14px -14px 10px;padding:14px 40px 10px;border-bottom:1px solid var(--surface-muted)}.editor-rail-panel-sheet-handle{position:absolute;top:6px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:2px;background:var(--surface-muted)}.editor-rail-panel-sheet-title{font-weight:600;font-size:13px;color:var(--text-secondary)}.editor-rail-panel-sheet-close{position:absolute;right:10px;top:10px;border:none;background:var(--surface-alt);width:28px;height:28px;border-radius:50%;font-size:14px;line-height:1;color:var(--text-secondary);cursor:pointer}.editor-rail-panel .editor-panel,.editor-rail-panel .photo-tray,.editor-rail-panel .layout-picker-panel{box-shadow:none;border:none;padding:0;margin:0}.editor-rail-panel .layout-picker{flex-direction:column}.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:2px}.sticker-image-choice{padding:2px}.sticker-image-choice img{width:100%;height:100%;object-fit:contain;pointer-events:none}.sticker-category-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.sticker-category-tab{border:1px solid var(--border);background:#fff;border-radius:var(--radius-pill);padding:3px 9px;font-size:11px;cursor:pointer;color:var(--text-secondary)}.sticker-category-tab:hover{background:var(--surface-alt)}.sticker-category-tab-active{background:var(--accent);border-color:var(--accent);color:#fff}.swatch-custom-trigger{color:var(--text-secondary)}.frame-custom-controls{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt)}.frame-custom-row{display:flex;align-items:center;gap:8px}.frame-custom-label{width:42px;flex-shrink:0;font-size:12px;color:var(--text-secondary)}.frame-custom-row input[type=color]{width:32px;height:28px;padding:0;border:1px solid var(--border);border-radius:4px;cursor:pointer}.frame-custom-row input[type=range]{flex:1}.frame-custom-value{width:32px;flex-shrink:0;font-size:12px;color:var(--text-secondary);text-align:right}.frame-style-row{display:flex;gap:6px;flex:1}.frame-style-btn{flex:1;padding:5px 0;font-size:11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;color:var(--text-secondary)}.frame-style-btn:disabled{opacity:.5;cursor:default}.frame-style-btn-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.mask-frame-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.mask-frame-choice{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:11px;color:var(--text-secondary)}.mask-frame-choice:hover{border-color:var(--accent)}.mask-frame-choice-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.mask-frame-preview{width:40px;height:40px;background:var(--text-tertiary)}.mask-preview-none{background:var(--surface-alt);border:1px dashed var(--border-strong)}.text-block-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.text-block-chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;color:var(--ink);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-block-chip-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.text-block-chip-add{border-style:dashed;color:var(--text-secondary)}.editor-rail-text-input{width:100%;resize:vertical;font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:8px;box-sizing:border-box}.swatch-active{outline:2px solid var(--accent);outline-offset:2px}.design-quote-library{margin-top:12px;padding-top:12px;border-top:1px solid var(--surface-muted)}.design-quote-library-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--text-secondary);margin-bottom:6px}.design-quote-list{list-style:none;margin:0;padding:0;max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.design-quote-item{display:flex}.design-quote-pick{flex:1;text-align:left;border:none;background:none;padding:4px 0;font-size:12px;color:var(--ink);cursor:pointer}.design-quote-pick:hover{color:var(--accent);text-decoration:underline}.font-picker-select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;font-size:14px;color:var(--ink)}.font-picker-preview{margin-top:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);font-size:20px;color:var(--ink);overflow:hidden}.text-style-toggle-row{display:flex;gap:4px;margin-top:6px}.text-style-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);background:#fff;border-radius:var(--radius-sm);cursor:pointer;color:var(--ink)}.text-style-btn-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.shape-kind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.shape-kind-choice{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:12px;color:var(--text-secondary)}.shape-kind-choice:hover{border-color:var(--accent);color:var(--accent)}.shape-kind-choice svg{width:28px;height:28px}.layer-controls-row{margin-top:10px}.layer-controls-label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.layer-controls-buttons{display:flex;gap:4px}.layer-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);background:#fff;border-radius:var(--radius-sm);cursor:pointer;color:var(--ink);font-size:15px;line-height:1}.layer-btn:hover{border-color:var(--accent);color:var(--accent)}.layer-btn:disabled{opacity:.4;cursor:default;border-color:var(--border);color:var(--ink)}.mask-preview-circle{clip-path:circle(50%)}.mask-preview-oval{clip-path:ellipse(50% 40%)}.mask-preview-rounded{border-radius:8px}.mask-preview-heart{clip-path:url(#mask-heart)}.mask-preview-arch{clip-path:url(#mask-arch)}.editor-bottom-bar{border-top:1px solid var(--surface-muted);padding:6px 24px;max-width:1600px;margin:0 auto}.editor-bottom-bar-row{display:flex;align-items:center;gap:14px;padding:3px 0;flex-wrap:wrap}.editor-bottom-bar-spacer{flex:1}.view-mode-toggle{display:flex;gap:2px;background:var(--surface-alt);border-radius:var(--radius-pill, 999px);padding:3px}.view-mode-toggle button{border:none;background:none;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer}.view-mode-active{background:var(--accent)!important;color:#fff!important}.page-nav{display:flex;align-items:center;gap:10px;font-size:12px}.page-nav-label{font-weight:600;color:var(--ink);white-space:nowrap}.zoom-control{display:flex;align-items:center;gap:8px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.zoom-control button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;color:var(--ink)}.zoom-control button:disabled{opacity:.4;cursor:default}.zoom-control span{min-width:36px;text-align:center}.all-pages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;padding:8px 4px}.all-pages-unit{display:flex;flex-direction:column;align-items:center;gap:8px;border:2px solid transparent;border-radius:var(--radius-md);background:none;padding:8px;cursor:pointer}.all-pages-unit:hover{background:var(--surface-alt)}.all-pages-unit-active{border-color:var(--accent)}.all-pages-unit-faces{display:flex;box-shadow:var(--shadow-sm);border-radius:6px;overflow:hidden;pointer-events:none}.all-pages-unit-faces .all-pages-face{width:200px}.all-pages-unit-faces-spread .all-pages-face{width:100px}.all-pages-unit-label{font-size:11px;color:var(--text-secondary)}@media (max-width: 860px){.book-editor-main{flex-direction:column;align-items:stretch}.editor-rail-wrap{position:static;width:100%}.editor-rail{flex-direction:row;width:100%;overflow-x:auto}.editor-rail-btn{flex-shrink:0;min-width:58px}.editor-rail-panel{position:fixed;left:0;right:0;bottom:0;width:auto;max-height:40vh;margin:0;border-radius:16px 16px 0 0;z-index:96;box-shadow:0 -6px 24px #0000002e}.editor-rail-panel-sheet-header{display:flex}.toolbar-btn-label{display:none}.toolbar-tools button{padding:8px 10px}}.preview-page{position:relative;isolation:isolate;width:min(96vh,96vw);aspect-ratio:1;background:#fff;container-type:inline-size}.preview-spread{display:flex;align-items:stretch;box-shadow:0 8px 30px #17392f80;border-radius:8px}.preview-spread .preview-page{width:min(48vh,48vw)}.preview-page-left{border-radius:8px 0 0 8px;box-shadow:inset -10px 0 14px -12px #17392f80}.preview-page-right{border-radius:0 8px 8px 0;box-shadow:inset 10px 0 14px -12px #17392f80}.preview-page-endpaper{background:#2c2c2e;display:flex;align-items:center;justify-content:center}.preview-page-endpaper-label{color:#fff;text-align:center;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:0 14%}.preview-page-photo-wrap{position:absolute;background:var(--surface-alt);overflow:hidden}.preview-page-photo{display:block;width:100%;height:100%;object-fit:cover}.preview-page-element{position:absolute;display:flex;align-items:center;justify-content:center;overflow:hidden}.preview-page-element .sticker-glyph{font-size:2.5vw}@media (max-width: 860px){.book-editor-body{flex-direction:column;align-items:stretch}.photo-tray{width:100%}.photo-tray-grid{grid-template-columns:repeat(5,1fr)}.toolbar-actions{margin-left:0;width:100%;justify-content:flex-end}.lightbox-prev,.lightbox-next{font-size:24px}.preview-page{width:min(90vh,90vw)}.preview-spread .preview-page{width:min(45vh,45vw)}}@media (max-width: 600px){.app{padding:0 20px 32px}.app-header{gap:8px;flex-wrap:wrap}.app-header h1{font-size:18px}.header-actions{gap:10px;width:auto}.header-actions>.lang-switcher{display:none}.user-badge-name{display:none}.mobile-nav-wrap{position:relative;display:block}.tab-nav button{padding:8px 10px;font-size:15px}.album-grid,.photo-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.theme-grid{grid-template-columns:repeat(2,1fr);gap:16px}.new-album-form,.new-book-form{flex-direction:column;align-items:stretch}.editor-toolbar{gap:8px;padding:8px 0}.toolbar-title,.toolbar-title-input{font-size:16px}.toolbar-tools button,.preview-btn{padding:8px 10px;font-size:12px}.photo-tray-grid{grid-template-columns:repeat(4,1fr)}.slot-tools{flex-direction:column;align-items:flex-start;gap:10px}.page-thumb,.page-thumb-placeholder{width:54px;height:54px}.page-thumb-strip{padding:6px 12px}.app-editing{padding-bottom:160px}.page-slot-clear,.page-element-delete{width:26px;height:26px;font-size:15px}.page-slot-resize,.page-element-resize,.page-element-rotate,.page-slot-rotate{width:30px;height:30px}.page-slot-move{width:36px;height:36px}.preview-page{width:min(80vh,80vw)}.preview-spread .preview-page{width:min(40vh,40vw)}.lightbox-close{top:10px;right:12px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}.header-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 14px;width:300px;flex-shrink:1;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.header-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.header-search-icon{flex-shrink:0;color:var(--text-tertiary)}.mobile-search-toggle{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.mobile-search-toggle:hover{color:var(--accent);background:var(--surface-alt)}@media (max-width: 600px){.header-search{position:absolute;right:0;top:100%;margin-top:8px;width:min(300px,calc(100vw - 40px));display:none;box-shadow:var(--shadow-md);z-index:10}.header-search-open,.mobile-search-toggle{display:flex}}.lang-switcher{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364736d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right center / 13px transparent;padding:4px 20px 4px 0;font-family:var(--font-body);font-size:15px;color:var(--text-secondary);cursor:pointer;transition:color .15s var(--ease)}.lang-switcher:hover,.lang-switcher:focus-visible{color:var(--accent)}.header-search input{border:none;outline:none;font-size:15px;width:100%}.signin-link{border:none;background:none;padding:4px 0;font-size:15px;font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:color .15s var(--ease)}.signin-link:hover{color:var(--accent)}.mobile-nav-wrap{display:none}.mobile-nav-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.mobile-nav-toggle:hover{color:var(--accent);background:var(--surface-alt)}.mobile-nav-popover{left:auto;right:0;min-width:160px;display:flex;flex-direction:column;gap:8px}.mobile-nav-label{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.lang-switcher-mobile{color:var(--ink)}.header-actions{display:flex;align-items:center;gap:16px;margin-left:auto;position:relative}.header-cart-wrap{position:relative}.cart-btn{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:none;border-radius:10px;color:var(--ink);cursor:pointer;transition:background-color .15s var(--ease),color .15s var(--ease)}.cart-btn:hover{background:var(--surface-strong);color:var(--accent)}.cart-badge{position:absolute;top:0;right:2px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:1;padding:3px 5px;border-radius:999px}.cart-popover{left:auto;right:0;width:200px;font-size:13px}.cart-popover p{margin:0 0 6px}.cart-note{color:var(--text-secondary);font-size:12px}.app-body{display:block}.category-tabs{display:flex;align-items:center;gap:28px;margin-bottom:36px;overflow-x:auto;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tab{flex:none;border:none;background:none;padding:4px 0 10px;font-size:15px;font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:color .15s var(--ease),border-color .15s var(--ease)}.category-tab:hover{color:var(--ink)}.category-tab-active{color:var(--accent);font-weight:600;border-bottom-color:var(--accent)}@media (max-width: 600px){.category-tabs{gap:20px;margin-bottom:24px}.category-tab{font-size:14px}}.home-hero{position:relative;border-radius:16px;overflow:hidden;margin-bottom:24px;aspect-ratio:1600 / 780;box-shadow:0 4px 20px #17392f1f}.home-hero-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:70% center;display:block;opacity:0;transition:opacity 1.2s ease}.home-hero-photo-active{opacity:1}.home-hero-dots{position:absolute;z-index:2;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:8px}.home-hero-dot{width:7px;height:7px;padding:0;border:none;border-radius:50%;background:#ffffff73;cursor:pointer}.home-hero-dot-active{background:var(--paper)}.home-hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,rgba(15,24,20,.8) 0%,rgba(15,24,20,.6) 30%,rgba(15,24,20,.1) 54%,transparent 68%)}.home-hero-copy{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:0 8% 0 5%;max-width:520px}.home-hero-copy h1{font-family:var(--font-display);font-size:clamp(32px,3.4vw,48px);font-weight:700;line-height:1.08;color:var(--paper);margin:0;text-wrap:balance}.home-hero-copy p{font-size:clamp(16px,1.3vw,18px);line-height:1.55;color:#faf8f3e6;margin:0;max-width:42ch}.home-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:4px}.home-hero-primary{border:none;background:var(--accent);color:var(--paper);font-family:var(--font-body);font-size:16px;font-weight:600;padding:13px 26px;border-radius:var(--radius-pill);cursor:pointer;box-shadow:0 6px 16px #0f181459;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.home-hero-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px #0f181466}.home-hero-secondary{border:none;background:none;color:var(--paper);font-family:var(--font-body);font-size:16px;font-weight:600;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#faf8f380}.home-hero-secondary:hover{text-decoration-color:var(--paper)}@media (max-width: 640px){.home-hero{aspect-ratio:3 / 4.2}.home-hero-scrim{background:linear-gradient(180deg,#0f18141a,#0f181459 38%,#0f1814e0 62%,#0f1814f0)}.home-hero-copy{justify-content:flex-end;padding:0 20px 26px;max-width:none;gap:12px}.home-hero-copy h1{font-size:clamp(34px,8vw,40px)}.home-hero-copy p{font-size:16px}.home-hero-actions{flex-direction:column;align-items:flex-start;gap:12px}.home-hero-primary{width:100%;text-align:center}}.theme-card-photo{width:100%;height:100%;object-fit:cover;display:block}.theme-card-preview .theme-card-photo{display:block;width:100%;height:100%;object-fit:contain;object-position:center}.template-detail-body{display:flex;gap:32px;margin-top:16px;align-items:flex-start}.template-detail-gallery{display:flex;flex-direction:column;gap:10px;width:320px;max-width:40vw;flex-shrink:0}.template-detail-preview{position:relative;width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--paper);padding:10%;box-sizing:border-box;transition:aspect-ratio .2s ease}.gallery-zoom-btn{position:absolute;top:8px;right:8px;width:30px;height:30px;border:none;border-radius:50%;background:#ffffffe6;color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s var(--ease)}.gallery-zoom-btn:hover{transform:scale(1.08)}.gallery-page-panel{width:100%;height:100%;padding:10%;box-sizing:border-box;position:relative;isolation:isolate;container-type:inline-size}.gallery-page-panel .layout-icon span,.template-detail-thumb .layout-icon span{box-shadow:inset 0 0 0 1.5px var(--paper)}.gallery-page-sticker{position:absolute;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1}.gallery-page-sticker img{width:100%;height:100%;object-fit:contain}.gallery-page-text{position:absolute;display:flex;align-items:center;font-size:11px;line-height:1.2;overflow:visible}.template-detail-thumb .gallery-page-sticker{font-size:9px}.gallery-fine-note{margin:0;font-size:11px;line-height:1.4;color:var(--text-tertiary)}.gallery-note{margin:2px 0 0;font-size:11px;line-height:1.4;color:var(--text-tertiary)}.template-detail-thumbs{display:flex;flex-wrap:wrap;gap:8px}.template-detail-thumb{width:52px;height:52px;padding:0;border:2px solid var(--border);border-radius:8px;overflow:hidden;background:#fff;cursor:pointer;transition:border-color .15s var(--ease),transform .15s var(--ease)}.template-detail-thumb:hover{transform:translateY(-1px)}.template-detail-thumb-active{border-color:var(--accent)}.template-detail-thumb img{width:100%;height:100%;object-fit:cover;display:block}.template-detail-thumb .layout-icon{padding:15%;box-sizing:border-box}.template-detail-thumb-fallback{display:block;width:100%;height:100%;background:var(--surface-alt)}.book-cover-mockup{display:flex;align-items:center;justify-content:center;box-sizing:border-box}.book-cover-photo-window{position:relative;width:100%;height:100%;overflow:hidden;container-type:inline-size}.book-cover-photo-window .theme-card-photo{object-fit:contain}.book-cover-design-panel{position:relative;isolation:isolate;width:100%;height:100%}.book-cover-label{position:absolute;bottom:8px;right:8px;background:#17392f8c;color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.template-detail-options{flex:1;min-width:0}.template-detail-title{margin:0 0 18px;font-family:var(--font-display);font-size:34px;font-weight:700;letter-spacing:-.01em;color:var(--accent)}@media (max-width: 600px){.template-detail-title{font-size:27px}}.detail-section-label{margin:0 0 8px;font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.option-card-grid{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}.option-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;width:104px;padding:12px 8px 10px;border-radius:var(--radius-md);border:2px solid var(--border);background:#fff;cursor:pointer;text-align:center;transition:border-color .15s var(--ease),background-color .15s var(--ease),transform .15s var(--ease);animation:fade-in-up .25s ease-out backwards}.option-card:hover{border-color:var(--accent);transform:translateY(-2px)}.option-card-selected{border-color:var(--accent);background:var(--accent-soft)}.option-card-check{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.option-card-shape-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:40px}.option-card-shape{display:block;width:auto;height:100%;max-width:100%;border:1.5px solid var(--text-tertiary);border-radius:2px;background:transparent}.option-card-selected .option-card-shape{border-color:var(--accent)}.option-card-page-num{display:flex;align-items:center;justify-content:center;height:40px;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--accent)}.option-card-swatch{width:100%;height:40px;border-radius:6px;background-size:cover;background-position:center;background-color:var(--surface-alt)}.option-card-name{font-size:12px;font-weight:700;color:var(--ink);line-height:1.25}.option-card-sub{font-size:11px;color:var(--text-secondary)}.price-box{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.price-label{font-size:12px;color:var(--text-secondary)}.price-value{font-family:var(--font-display);font-size:32px;font-weight:600;color:var(--accent-dark)}.price-note{font-size:11px;color:var(--text-tertiary)}.product-builder-footer{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:4px}.start-book-btn{border:none;background:var(--accent);color:#fff;font-size:15px;font-weight:600;padding:14px 28px;min-height:48px;border-radius:var(--radius-pill);cursor:pointer;box-shadow:var(--shadow-card);transition:background-color .15s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease)}.start-book-btn:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.start-book-btn:disabled{background:var(--accent-disabled);cursor:default}.start-book-btn:focus-visible,.option-card:focus-visible,.template-detail-thumb:focus-visible,.template-detail-thumbs-arrow:focus-visible,.gallery-zoom-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.section-heading-lg{font-family:var(--font-display);font-weight:700;font-size:34px;margin:16px 0 20px}@media (max-width: 600px){.section-heading-lg{font-size:26px}}.chosen-theme-strip{display:flex;align-items:center;gap:12px;margin:16px 0 4px}.chosen-theme-strip .section-heading-lg{margin:0}.chosen-theme-preview{width:52px;height:52px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;border:1px solid var(--border);background-size:cover}.chosen-theme-preview img{width:100%;height:100%;object-fit:cover;display:block}.start-method-row{display:flex;gap:20px;flex-wrap:wrap}.start-method-card{flex:1;min-width:220px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;background:#fff;border:2px solid transparent;border-radius:var(--radius-lg);padding:28px 20px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.start-method-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.start-method-emoji{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark)}.start-method-name{font-size:17px;font-weight:600}.start-method-desc{font-size:13px;color:var(--text-secondary);line-height:1.4}.upload-step-nav{display:flex;justify-content:space-between;align-items:center}.link-btn{border:none;background:none;color:var(--text-secondary);font-size:14px;cursor:pointer;text-decoration:underline}.field-label{display:block;font-size:13px;color:var(--text-secondary);margin:18px 0 6px}.upload-title-input,.upload-album-select{width:100%;max-width:420px;padding:10px 14px;border-radius:8px;border:1px solid var(--border);font-size:14px;display:block}.upload-source-row{display:flex;flex-wrap:wrap;gap:10px}.upload-source-btn{border:2px solid var(--border);background:#fff;border-radius:10px;padding:12px 18px;font-size:14px;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;gap:6px}.upload-source-btn:hover{border-color:var(--accent)}.upload-source-active{border-color:var(--accent);background:var(--accent-soft)}.coming-soon-note{margin-top:12px;font-size:13px;color:var(--warning-text);background:var(--warning-bg);padding:10px 14px;border-radius:8px;max-width:480px}.upload-photo-requirement{margin:16px 0;font-size:13px;font-weight:600;color:var(--warning-text);background:var(--warning-bg);padding:8px 14px;border-radius:8px;display:inline-block}.upload-photo-requirement-met{color:var(--success);background:#e8f3ea}.upload-photos-heading{margin-top:28px}.upload-max-note{margin:-8px 0 14px;font-size:13px;color:var(--text-secondary)}.upload-expiry-note{margin:4px 0 14px;padding:8px 12px;background:var(--surface-alt);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary)}.upload-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-top:16px;max-width:480px;max-height:420px;overflow-y:auto;padding-right:4px}.upload-preview-item{position:relative}.upload-preview-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}.upload-preview-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;background:#17392fa6;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s ease,transform .15s ease}.upload-preview-remove:hover{background:var(--danger);transform:scale(1.1)}.upload-step .start-book-btn{margin-top:24px}@media (max-width: 860px){.template-detail-body{flex-direction:column}.template-detail-gallery{width:100%;max-width:100%}}@media (max-width: 600px){.start-method-row{flex-direction:column}.template-detail-body{padding-bottom:128px}.product-builder-footer{position:fixed;left:0;right:0;bottom:0;z-index:20;flex-direction:column;align-items:stretch;gap:8px;margin-top:0;background:var(--paper);border-top:1px solid var(--border);box-shadow:0 -4px 16px #17392f1f;padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.product-builder-footer .price-box{flex-direction:row;align-items:baseline;gap:8px}.product-builder-footer .price-value{font-size:22px}.product-builder-footer .price-note{display:none}.product-builder-footer .start-book-btn{width:100%;text-align:center;padding:13px 16px;min-height:46px}}.user-badge-wrap{position:relative}.user-badge{display:flex;align-items:center;gap:8px;border:none;background:none;border-radius:999px;padding:4px 10px 4px 4px;cursor:pointer}.user-badge:hover{background:var(--surface-strong)}.user-badge-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.user-badge-name{font-size:14px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-popover{left:auto;right:0;width:200px}.user-menu-storage{margin:8px 0}.storage-bar{height:6px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.storage-bar-fill{height:100%;background:var(--accent);border-radius:999px}.storage-bar-label{display:block;margin-top:4px;font-size:11px;color:var(--text-secondary)}.user-menu-quota{font-size:11px;color:var(--text-secondary);margin:0 0 8px}.user-menu-email{margin:0 0 10px;font-size:12px;color:var(--text-secondary);word-break:break-all}.user-menu-orders-link,.user-menu-signout{width:100%;border:1px solid var(--border);background:#fff;border-radius:8px;padding:8px;font-size:13px;cursor:pointer}.user-menu-orders-link{margin-bottom:8px}.user-menu-orders-link:hover,.user-menu-signout:hover{background:var(--surface-alt)}.orders-list{display:flex;flex-direction:column;gap:12px;max-width:480px}.order-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;background:#fff;box-shadow:var(--shadow-sm)}.order-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.order-card-amount{font-weight:700}.order-card-items{font-size:13px;color:var(--text-secondary);margin:0 0 4px}.order-card-date{font-size:12px;color:var(--text-tertiary);margin:0}.order-status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase}.order-status-pending{background:#fff4e0;color:#8a5a00}.order-status-paid{background:#e8f3ea;color:#3f7a4f}.order-status-failed{background:#fbe7e5;color:#a13a2f}.auth-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17392f66;z-index:600;display:flex;align-items:center;justify-content:center;padding:20px;animation:backdrop-in .2s ease-out}.auth-modal{position:relative;background:#fff;border-radius:16px;padding:32px;width:100%;max-width:380px;box-shadow:0 12px 40px #17392f40;animation:modal-pop-in .25s var(--ease)}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-modal-close{position:absolute;top:14px;right:14px;border:none;background:none;font-size:22px;cursor:pointer;color:var(--text-secondary);line-height:1}.auth-modal-title{margin:0 0 20px;font-family:var(--font-display);font-size:24px;font-weight:600;text-align:center;color:var(--accent)}.auth-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--border);background:#fff;border-radius:8px;padding:11px;font-size:14px;font-weight:500;cursor:pointer;margin-bottom:12px}.auth-google-btn:hover{background:var(--surface-alt)}.auth-google-icon{font-weight:700;color:var(--accent)}.auth-alt-actions{display:flex;justify-content:space-between;margin-top:10px}.auth-alt-actions .link-btn{font-size:12px}.auth-help-text{font-size:13px;color:var(--text-secondary);margin:0 0 14px;text-align:center}.auth-context-note{font-size:13px;color:var(--accent-dark, var(--accent));background:var(--surface-alt);border-radius:8px;padding:8px 12px;margin:0 0 14px;text-align:center}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--text-tertiary);font-size:12px;margin:16px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--surface-muted)}.auth-field{width:100%;padding:11px 14px;border-radius:8px;border:1px solid var(--border);font-size:14px;margin-bottom:10px;box-sizing:border-box}.auth-submit-btn{width:100%;border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:600;padding:12px;min-height:48px;border-radius:var(--radius-pill);cursor:pointer;margin-top:4px}.auth-switch-link{text-align:center;font-size:13px;color:var(--text-secondary);margin:18px 0 0}.checkout-modal{max-width:340px;text-align:center}.checkout-amount{font-size:26px;font-weight:700;font-family:var(--font-display);margin:4px 0 16px;color:var(--accent)}.checkout-qr{width:220px;height:220px;object-fit:contain;margin:0 auto 16px;display:block;border:1px solid var(--border);border-radius:8px;padding:10px;background:#fff}.checkout-bank-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}.checkout-bank-link{border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:12px;color:var(--ink);text-decoration:none}.checkout-bank-link:hover{border-color:var(--accent);color:var(--accent)}.checkout-waiting{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--text-secondary)}.spinner{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid var(--surface-muted);border-top-color:var(--accent);animation:spin .8s linear infinite;flex-shrink:0}.spinner-lg{width:30px;height:30px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:64px 0;color:var(--text-secondary);font-size:14px}.cart-checkout-error{font-size:12px;margin:0 0 8px}.auth-switch-link button{border:none;background:none;color:var(--accent);font-weight:600;cursor:pointer;padding:0;font-size:13px}.cart-popover{left:auto;right:0;width:260px}.cart-popover-title{margin:0 0 10px;font-size:14px}.cart-empty-text{color:var(--text-secondary);font-size:13px;margin:0 0 10px}.cart-item-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;margin-bottom:12px}.cart-item{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px;border-radius:8px}.cart-item:hover{background:var(--surface-alt)}.cart-item-thumb{width:36px;height:36px;border-radius:6px;overflow:hidden;flex-shrink:0;background:var(--surface-muted);display:flex;align-items:center;justify-content:center}.cart-item-thumb img{width:100%;height:100%;object-fit:cover}.cart-item-thumb-placeholder{font-size:16px}.cart-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cart-item-title{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item-reference{font-family:var(--font-mono, monospace);font-variant-numeric:tabular-nums;font-size:11px;color:var(--text-tertiary)}.cart-item-expiry{font-size:11px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item-expiry-soon{color:var(--danger)}.cart-item-expiry-published{color:var(--success)}.cart-item-remove{border:none;background:none;color:var(--text-tertiary);font-size:16px;cursor:pointer;line-height:1;padding:2px 4px}.cart-item-remove:hover{color:var(--danger)}.cart-checkout-btn{width:100%;border:none;background:var(--accent);color:#fff;font-size:15px;font-weight:600;padding:10px;min-height:48px;border-radius:var(--radius-pill);cursor:pointer}.cart-checkout-btn:disabled{background:var(--accent-disabled);cursor:default}.app-footer{margin-top:48px;padding-top:40px;border-top:1px solid var(--surface-muted)}.app-footer-columns{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;margin-bottom:28px}.app-footer-col{min-width:0}.app-footer-brand{max-width:340px}.app-footer-logo{display:flex;align-items:center;gap:8px;margin-bottom:14px}.app-footer-logo-mark{display:flex;width:28px;height:28px;flex-shrink:0}.app-footer-logo-mark img{width:100%;height:100%;display:block}.app-footer-logo-text{font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--accent)}.app-footer-line{margin:0 0 8px;font-size:15px;font-weight:500;line-height:1.4;color:var(--ink)}.app-footer-description{margin:0;font-size:14px;font-weight:400;line-height:1.6;color:var(--text-secondary);max-width:320px}.app-footer-col h4{margin:0 0 14px;font-size:13px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.app-footer-col a{display:block;width:fit-content;color:var(--ink);font-size:14px;font-weight:400;line-height:1.6;text-decoration:none;padding:6px 0;border-radius:4px}.app-footer-col a:hover{color:var(--accent)}.app-footer-col a:focus-visible,.app-footer-legal a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;border-top:1px solid var(--surface-muted);padding:16px 0 0;font-size:13px;color:var(--text-tertiary)}.app-footer-legal{display:flex;gap:20px}.app-footer-legal a{color:var(--text-tertiary);font-size:13px;text-decoration:none;padding:4px 0;border-radius:4px}.app-footer-legal a:hover{color:var(--accent)}@media (max-width: 600px){.app-footer-columns{grid-template-columns:1fr 1fr;row-gap:28px}.app-footer-brand{grid-column:1 / -1;max-width:none}.app-footer-bottom{flex-direction:column;align-items:flex-start}}.footer-page-view{max-width:640px;margin:0 auto;padding:24px 0 48px}.footer-page-title{margin:20px 0 16px}.footer-page-content p{color:var(--text-secondary);line-height:1.7;margin:0 0 16px}.start-book-btn:active:not(:disabled),.new-album-form button:active:not(:disabled),.upload-source-btn:active,.auth-submit-btn:active:not(:disabled),.toolbar-tools button:active:not(:disabled),.floating-toolbar button:active:not(:disabled),.product-option-card:active,.theme-card:active,.start-method-card:active,.back-btn:active,.cart-btn:active,.album-card:active,.wizard-step-btn:not(:disabled):active{transform:scale(.97)}.product-builder-row{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}.product-builder-choices{flex:0 1 auto;min-width:0}.product-builder-details{flex:0 1 260px;min-width:0}.template-detail-thumbs-slider{display:flex;align-items:center;gap:6px;margin-bottom:12px}.template-detail-thumbs{flex:1;min-width:0;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:2px}.template-detail-thumbs::-webkit-scrollbar{display:none}.template-detail-thumbs>*{flex-shrink:0}.template-detail-thumbs-fade-right .template-detail-thumbs{mask-image:linear-gradient(to right,black calc(100% - 28px),transparent 100%);-webkit-mask-image:linear-gradient(to right,black calc(100% - 28px),transparent 100%)}.template-detail-thumbs-fade-left .template-detail-thumbs{mask-image:linear-gradient(to left,black calc(100% - 28px),transparent 100%);-webkit-mask-image:linear-gradient(to left,black calc(100% - 28px),transparent 100%)}.template-detail-thumbs-fade-left.template-detail-thumbs-fade-right .template-detail-thumbs{mask-image:linear-gradient(to right,transparent 0%,black 28px,black calc(100% - 28px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,black 28px,black calc(100% - 28px),transparent 100%)}.template-detail-thumbs-arrow{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer}.template-detail-thumbs-arrow:hover{border-color:var(--accent)}
