:root{--color-primary:#1e88e5;--color-primary-light:#64b5f6;--color-accent:#e3f2fd;--color-surface:#fafafa;--color-surface-dark:#1a1a2e;--color-error:#ef5350;--color-success:#66bb6a;--color-text:#212121;--color-text-secondary:#757575;--color-border:#e0e0e0;--color-control-bg:#fff;--toolbar-height:56px;--header-height:48px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-accent:#16324f;--color-surface:#1a1a2e;--color-text:#fafafa;--color-text-secondary:#bdbdbd;--color-border:#424242;--color-control-bg:#23233a}}:root[data-theme=dark]{--color-accent:#16324f;--color-surface:#1a1a2e;--color-text:#fafafa;--color-text-secondary:#bdbdbd;--color-border:#424242;--color-control-bg:#23233a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{color:var(--color-text);background-color:var(--color-surface);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}body{min-height:100dvh;overflow:hidden}.app{flex-direction:column;height:100dvh;display:flex}.app-header{height:var(--header-height);background-color:var(--color-primary);color:#fff;flex-shrink:0;align-items:center;padding:0 1rem;display:flex}.app-header h1{flex:1;font-size:1.25rem;font-weight:600}.header-actions{align-items:center;gap:.375rem;display:flex}.header-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:8px;min-width:40px;min-height:40px;padding:0;font-size:1.125rem;transition:background-color .15s}.header-btn:hover:not(:disabled){background:#ffffff40}.header-btn:disabled{opacity:.35;cursor:default}.unfold-trigger-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:20px;min-width:48px;min-height:40px;padding:0 .75rem;font-size:1.25rem;transition:background-color .2s,transform .15s}.unfold-trigger-btn:hover:not(:disabled){background:#ffffff40;transform:scale(1.1)}.unfold-trigger-btn:disabled{opacity:.35;cursor:default}.app-main{flex:1;overflow:hidden}.editor-layout{height:100%;display:flex}.wedge-container,.preview-container{flex:1;position:relative;overflow:hidden}.wedge-canvas,.preview-canvas{width:100%;height:100%;display:block}.preview-container{border-left:1px solid var(--color-border)}.toolbar{height:var(--toolbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:.75rem;padding:0 .75rem;display:flex;overflow-x:auto}.toolbar-group{align-items:center;gap:.375rem;display:flex}.toolbar-label{color:var(--color-text-secondary);margin-right:.25rem;font-size:.8125rem}.toolbar-btn{border:1px solid var(--color-border);background:var(--color-control-bg);cursor:pointer;min-width:48px;min-height:48px;color:var(--color-text);border-radius:8px;justify-content:center;align-items:center;font-size:1.25rem;transition:background-color .15s;display:flex}.toolbar-btn:hover:not(:disabled){background-color:var(--color-accent)}.toolbar-btn:disabled{opacity:.35;cursor:default}.toolbar-btn--danger:hover:not(:disabled){color:var(--color-error);background-color:#ffebee}.toolbar-select{border:1px solid var(--color-border);background:var(--color-control-bg);min-height:40px;color:var(--color-text);border-radius:6px;padding:0 .5rem;font-size:.875rem}.toolbar-colors{gap:.25rem}.color-swatch{border:2px solid var(--color-border);cursor:pointer;border-radius:50%;width:32px;height:32px;padding:0;transition:transform .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.gallery{flex-direction:column;height:100%;display:flex;overflow:hidden}.gallery-header{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.75rem;display:flex}.gallery-header h2{flex:1;font-size:1.125rem}.gallery-count{color:var(--color-text-secondary);font-size:.8125rem}.gallery-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:max-content;align-content:start;gap:.75rem;padding:.75rem;display:grid;overflow-y:auto}.gallery-card{border:1px solid var(--color-border);background:var(--color-control-bg);border-radius:10px;transition:box-shadow .2s;overflow:hidden}.gallery-card:hover{box-shadow:0 2px 8px #0000001a}.gallery-card-preview{aspect-ratio:1;background:var(--color-accent);justify-content:center;align-items:center;display:flex}.gallery-card-img{object-fit:contain;width:100%;height:100%}.gallery-card-placeholder{color:var(--color-primary-light);font-size:3rem}.gallery-card-info{flex-direction:column;padding:.5rem;display:flex}.gallery-card-name{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.gallery-card-date{color:var(--color-text-secondary);font-size:.75rem}.gallery-card-actions{border-top:1px solid var(--color-border);display:flex}.gallery-action-btn{cursor:pointer;min-height:40px;color:var(--color-text-secondary);background:0 0;border:none;flex:1;font-size:1rem;transition:background-color .15s}.gallery-action-btn:hover{background:var(--color-accent)}.gallery-action-btn--danger:hover{color:var(--color-error);background:#ffebee}.gallery-empty,.gallery-loading{color:var(--color-text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;display:flex}.color-picker,.color-panel{align-items:center;gap:.5rem;display:flex}.color-trigger,.color-backdrop{display:none}.color-trigger{padding:0}.color-trigger-dot{border:2px solid var(--color-border);border-radius:50%;width:1.75rem;height:1.75rem}.color-picker-swatches{flex-wrap:wrap;gap:.25rem;display:flex}.color-picker-custom{align-items:center;gap:.25rem;display:flex}.color-input{border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:50%;width:32px;height:32px;padding:0}.stamp-palette{border-bottom:1px solid var(--color-border);align-items:center;gap:.25rem;padding:.5rem .75rem;display:flex;overflow-x:auto}.stamp-btn{border:1px solid var(--color-border);background:var(--color-control-bg);min-width:44px;min-height:44px;color:var(--color-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:1.25rem;transition:all .15s;display:flex}.stamp-btn:hover{background:var(--color-accent)}.stamp-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.polygon-tool-hint{color:#fff;text-align:center;background:#000000b3;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.375rem;max-width:calc(100% - 1rem);padding:.375rem .75rem;font-size:.8125rem;display:flex;position:absolute;bottom:.5rem;left:50%;transform:translate(-50%)}.settings{flex-direction:column;height:100%;display:flex;overflow:hidden}.settings-content{flex-direction:column;flex:1;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.settings-group{align-items:center;gap:.75rem;display:flex}.settings-label{align-items:center;gap:.5rem;min-width:120px;font-size:.9375rem;display:flex}.settings-about{border-top:1px solid var(--color-border);color:var(--color-text-secondary);margin-top:auto;padding-top:1rem;font-size:.8125rem;line-height:1.6}.template-filters{border-bottom:1px solid var(--color-border);gap:.5rem;padding:.5rem .75rem;display:flex}.template-filter-btn{border:1px solid var(--color-border);background:var(--color-control-bg);color:var(--color-text);cursor:pointer;border-radius:16px;padding:.375rem .75rem;font-size:.8125rem;transition:all .15s}.template-filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.onboarding-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--color-control-bg);text-align:center;border-radius:20px;width:90%;max-width:360px;padding:2.5rem 2rem}.onboarding-icon{margin-bottom:1rem;font-size:4rem}.onboarding-title{color:var(--color-primary);margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.onboarding-description{color:var(--color-text-secondary);margin-bottom:1.5rem}.onboarding-dots{justify-content:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.onboarding-dot{background:var(--color-border);border-radius:50%;width:8px;height:8px;transition:background .2s}.onboarding-dot.active{background:var(--color-primary)}.onboarding-actions{justify-content:center;gap:.75rem;display:flex}.parental-gate-form{flex-direction:column;align-items:center;gap:1rem;display:flex}.parental-gate-problem{color:var(--color-primary);font-size:2rem;font-weight:700}.parental-gate-input{text-align:center;border:2px solid var(--color-border);border-radius:10px;outline:none;width:120px;height:48px;font-size:1.5rem}.parental-gate-input:focus{border-color:var(--color-primary)}.parental-gate-error{color:var(--color-error);font-size:.875rem}.unfold-overlay{z-index:100;background:radial-gradient(#1a237e 0%,#0d1b2a 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.unfold-canvas{max-width:100%;max-height:80vh;display:block}.unfold-controls{gap:.75rem;display:flex;position:absolute;bottom:2rem}.unfold-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1a;border:1px solid #ffffff4d;border-radius:24px;min-width:80px;min-height:48px;padding:.5rem 1.5rem;font-size:.9375rem;transition:background-color .2s,transform .15s}.unfold-btn:hover{background:#fff3;transform:scale(1.05)}.unfold-btn--primary{background:var(--color-primary);border-color:var(--color-primary)}.unfold-btn--primary:hover{background:var(--color-primary-light)}@media (width<=768px){.editor-layout{flex-direction:column}.wedge-container{flex:3}.preview-container{border-left:none;border-top:1px solid var(--color-border);flex:2}.toolbar{border-top:1px solid var(--color-border);border-bottom:none;order:3}.app-main{order:2}}.app-status{background:var(--color-text);width:fit-content;max-width:min(90vw,28rem);color:var(--color-surface);text-align:center;pointer-events:none;opacity:0;z-index:50;border-radius:12px;margin:0 auto;padding:.625rem 1rem;font-size:.9rem;transition:opacity .2s;position:fixed;bottom:1.25rem;left:0;right:0}.app-status[data-visible=true]{opacity:.92}.polygon-tool-done{margin-left:.25rem}.gallery-action-btn--wide{flex:1}.snowflake-thumb{border-radius:50%;display:block}.gallery-card-preview-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:100%;height:100%;padding:0;display:flex}.gallery-card-preview-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.gallery-card-name-btn{width:100%;color:inherit;font:inherit;text-align:left;cursor:text;background:0 0;border:none;padding:0;font-weight:500}.gallery-card-name-btn:hover,.gallery-card-name-btn:focus-visible{-webkit-text-decoration:underline dotted var(--color-primary-light);text-decoration:underline dotted var(--color-primary-light);outline:none}.gallery-card-name-input{border:1px solid var(--color-primary);background:var(--color-control-bg);width:100%;color:var(--color-text);font:inherit;border-radius:4px;padding:.125rem .25rem;font-size:.875rem}.gallery-action-btn--confirm{background:var(--color-error);color:#fff;border-radius:6px;padding:0 .5rem;font-size:.75rem;font-weight:600}.guided-banner{background:var(--color-accent);border-bottom:1px solid var(--color-border);color:#0d47a1;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.5rem 1rem;font-size:.875rem;display:flex}:root[data-theme=dark] .guided-banner{color:#e3f2fd;background:#16324f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .guided-banner{color:#e3f2fd;background:#16324f}}.guided-banner-text{flex-direction:column;flex:1;min-width:10rem;display:flex}.guided-banner-hint{opacity:.85;font-size:.8rem}.guided-progress{background:#1e88e533;border-radius:.25rem;flex:2;min-width:6rem;height:.5rem;overflow:hidden}.guided-progress-fill{background:var(--color-primary);height:100%;transition:width .25s}.guided-count{font-variant-numeric:tabular-nums;font-weight:600}.guided-stars{color:#f9a825;letter-spacing:.1em;font-size:1.25rem}.guided-btn{min-height:36px;padding:0 .75rem;font-size:.875rem}.export-menu{position:relative}.export-menu-list{z-index:40;border:1px solid var(--color-border);background:var(--color-control-bg);min-width:15rem;max-width:calc(100vw - 2rem);color:var(--color-text);border-radius:12px;flex-direction:column;padding:.375rem;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0000002e}.export-menu-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.625rem;padding:.5rem .625rem;font-size:.9375rem;display:flex}.export-menu-item:hover,.export-menu-item:focus-visible{background:var(--color-border);outline:none}.export-menu-badge{background:var(--color-primary);color:#fff;letter-spacing:.04em;border-radius:6px;justify-content:center;min-width:2.75rem;padding:.125rem .375rem;font-size:.6875rem;font-weight:700;display:inline-flex}@media (width<=440px){.app-header:has(.header-actions) h1{display:none}.header-actions{flex:1;justify-content:flex-end}}@media (width<=1099px){.toolbar{position:relative;overflow:visible}.toolbar-group--end{margin-left:auto}.color-picker{position:relative}.color-trigger{display:flex}.color-backdrop{z-index:39;display:block;position:fixed;inset:0}.color-panel{z-index:40;border:1px solid var(--color-border);background:var(--color-control-bg);border-radius:12px;flex-direction:column;align-items:stretch;gap:.75rem;width:22rem;padding:.75rem;display:none;position:absolute;top:calc(100% + .5rem);left:0;box-shadow:0 8px 24px #0000002e}.color-picker[data-open=true] .color-panel{display:flex}.color-picker-swatches{grid-template-columns:repeat(7,1fr);gap:.375rem;display:grid}.color-swatch{aspect-ratio:1;width:auto;height:auto}.color-picker-custom{justify-content:flex-end;gap:.5rem}.color-input{width:2.5rem;height:2.5rem}}@media (width<=768px){.color-picker{position:static}.color-panel{width:min(22rem,100% - 1rem);top:auto;bottom:calc(100% + .5rem);left:.5rem}.app-status{bottom:calc(var(--toolbar-height) + .75rem)}}@media (width<=480px){.toolbar{gap:.5rem;padding:0 .5rem}.toolbar-group--fold .toolbar-label{display:none}.toolbar-group--fold,.toolbar-group--fold .toolbar-select{min-width:0}}
