:root{color:var(--tg-theme-text-color,#111827);background:var(--tg-theme-bg-color,#f5f7fb);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--tg-theme-bg-color,#f5f7fb);min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:48px}button:disabled{cursor:not-allowed;opacity:.45}main{width:min(100%,560px);min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) 18px calc(96px + env(safe-area-inset-bottom));margin:0 auto}header{margin:8px 0 24px}h1{margin:6px 0;font-size:28px;line-height:1.1}h2{margin:0;font-size:17px}.eyebrow{color:var(--tg-theme-hint-color,#64748b);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.stack,section{gap:14px;display:grid}.primary,.secondary,.upload{border-radius:16px;place-items:center;width:100%;min-height:54px;padding:12px 18px;font-weight:700;display:grid}.primary{color:var(--tg-theme-button-text-color,white);background:var(--tg-theme-button-color,#1769e0);border:0;box-shadow:0 8px 20px #1769e038}.secondary{color:var(--tg-theme-text-color,#172033);background:var(--tg-theme-secondary-bg-color,white);border:1px solid #d9e1ec}.sticky{z-index:5;right:max(18px,50vw - 262px);bottom:max(16px, env(safe-area-inset-bottom));width:min(100vw - 36px,524px);position:fixed}.text-button{min-height:40px;color:var(--tg-theme-link-color,#1769e0);background:0 0;border:0}label{gap:7px;font-weight:650;display:grid}input,select,textarea{width:100%;min-height:50px;color:inherit;background:var(--tg-theme-secondary-bg-color,white);border:1px solid #cbd5e1;border-radius:13px;outline:none;padding:12px 14px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#1769e0;box-shadow:0 0 0 3px #1769e01f}.hint{color:var(--tg-theme-hint-color,#64748b);margin:0}.upload{color:#1769e0;background:#1769e00f;border:1px dashed #8baee0;position:relative}.upload input{opacity:0;width:1px;height:1px;position:absolute}.gallery,.result-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}figure{background:#dbe3ee;border-radius:16px;margin:0;position:relative;overflow:hidden}figure img,.image-placeholder{aspect-ratio:1;object-fit:cover;width:100%;display:block}figure button{color:#fff;background:#0f172abf;border:0;border-radius:50%;min-width:38px;min-height:38px;font-size:24px;position:absolute;top:6px;right:6px}figcaption{background:var(--tg-theme-secondary-bg-color,white);padding:10px;font-size:13px}.design-list{gap:12px}.design-card{background:var(--tg-theme-secondary-bg-color,white);border:1px solid #dde5ef;border-radius:18px;gap:14px;padding:16px;display:grid;box-shadow:0 4px 16px #0f172a0d}.card-head,.counter{justify-content:space-between;align-items:center;gap:12px;display:flex}.mode{color:#1769e0;background:#1769e014;border:0;border-radius:12px;min-height:40px;padding:8px 12px}.editor{gap:12px;display:grid}.counter{color:var(--tg-theme-hint-color,#64748b);font-size:13px}.counter .text-button{padding:0}.error,.field-error{color:#b42318}.error{background:#fff0ed;border-radius:12px;margin-bottom:14px;padding:12px}.project-row{text-align:left;width:100%;color:inherit;background:var(--tg-theme-secondary-bg-color,white);border:1px solid #d9e1ec;border-radius:16px;gap:5px;padding:14px;display:grid}.project-row small{color:var(--tg-theme-hint-color,#64748b)}.save-saving{color:#1769e0}.save-saved{color:#15803d}.save-error{color:#b42318}.lightbox{z-index:50;padding:max(56px, env(safe-area-inset-top)) 16px max(18px, env(safe-area-inset-bottom));color:#fff;background:#000000f0;grid-template-rows:1fr auto auto;place-items:center;gap:10px;display:grid;position:fixed;inset:0;overflow:hidden}.lightbox>img{object-fit:contain;touch-action:none;max-width:92vw;max-height:68dvh;transition:transform .12s}.lightbox-close{top:max(12px, env(safe-area-inset-top));color:#fff;background:#ffffff2e;border:0;border-radius:50%;min-width:44px;font-size:28px;position:absolute;right:14px}.lightbox input{max-width:360px;min-height:30px}.lightbox-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.lightbox-actions button{border:0;border-radius:12px;min-height:42px;padding:8px 12px}.access-denied{text-align:center;padding-top:24vh}.status{text-align:center;place-items:center;padding-top:20vh}.spinner{border:5px solid #dbeafe;border-top-color:#1769e0;border-radius:50%;width:52px;height:52px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=370px){main{padding-inline:12px}.gallery{gap:8px}}
