:root{--primary:#6366f1;--primary-hover:#4f46e5;--primary-border:#4338ca;--bg:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text:#e2e8f0;--text-muted:#94a3b8;--border:#475569;--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--canvas-bg:#1a1a2e;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}button{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}input[type=text],input[type=number],textarea{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;padding:10px 14px;font-family:inherit;font-size:14px}input:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}label{color:var(--text-muted);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:20px}.slider-container{align-items:center;gap:12px;display:flex}input[type=range]{background:var(--bg-tertiary);appearance:none;cursor:pointer;border-radius:3px;flex:1;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:background .2s}input[type=range]::-webkit-slider-thumb:hover{background:var(--primary-hover)}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:100%;max-width:500px;max-height:80vh;padding:24px;overflow-y:auto}.modal-title{color:var(--text);margin-bottom:16px;font-size:18px;font-weight:600}.modal-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}@font-face{font-family:RozoviiChulok;src:url(/fonts/RozoviiChulok.ttf)format("truetype");font-weight:400;font-style:normal}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:linear-gradient(135deg, var(--primary) 0%, #8b5cf6 100%);text-align:center;padding:30px 20px;box-shadow:0 4px 20px #6366f14d}.app-header h1{color:#fff;letter-spacing:-.5px;margin-bottom:8px;font-size:32px;font-weight:700}.subtitle{color:#ffffffd9;font-size:14px}.app-main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:30px 20px}.app-footer{background:var(--bg-secondary);border-top:1px solid var(--border);text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.error-banner{border:1px solid var(--error);color:#fca5a5;background:#ef444426;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.btn-close{color:#fca5a5;background:0 0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:20px;display:flex}.btn-close:hover{background:#ef444433}.step-container{max-width:900px;margin:0 auto}.upload-card{text-align:center;padding:40px}.upload-card h2{color:var(--text);margin-bottom:12px;font-size:24px}.hint{color:var(--text-muted);margin-bottom:30px;font-size:14px;line-height:1.6}.upload-area{border:2px dashed var(--border);background:var(--bg-tertiary);border-radius:16px;padding:60px 20px;transition:all .3s;position:relative}.upload-area:hover{border-color:var(--primary);background:#6366f10d}.upload-area.drag-over{border-color:var(--primary);background:#6366f126;transform:scale(1.02)}.upload-area input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-area input[type=file]:disabled{cursor:default}.upload-label{cursor:pointer;flex-direction:column;align-items:center;gap:12px;display:flex}.upload-icon{font-size:48px}.upload-label span:first-of-type{color:var(--text);font-size:18px;font-weight:600}.upload-hint{color:var(--text-muted);font-size:13px}.loading{color:var(--text-muted);margin-top:16px;font-size:14px}.loading.success{color:var(--success);font-weight:500}.editor-section{padding:30px}.editor-section h2{color:var(--text);margin-bottom:24px;font-size:22px}.editor-controls{flex-direction:column;gap:24px;margin-bottom:30px;display:flex}.control-group{flex-direction:column;gap:12px;display:flex}.control-group label{color:var(--text-muted);font-size:14px;font-weight:500}.button-row{flex-wrap:wrap;gap:12px;display:flex}.image-preview{background:var(--bg-tertiary);border-radius:12px;justify-content:center;align-items:center;max-height:400px;margin-bottom:24px;padding:20px;display:flex;overflow:hidden}.image-preview img{object-fit:contain;border-radius:8px;max-width:100%;max-height:400px}.step-actions{border-top:1px solid var(--border);justify-content:space-between;gap:16px;padding-top:20px;display:flex}.process-section{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (width<=1200px){.process-section{grid-template-columns:1fr}.canvas-section,.text-section{max-width:100%}}.canvas-section{min-width:0;padding:24px}.canvas-section h2{color:var(--text);margin-bottom:16px;font-size:20px}.canvas-wrapper{background:var(--canvas-bg);border-radius:12px;max-height:60vh;position:relative;overflow:auto}.canvas-wrapper canvas{max-width:100%;height:auto;display:block}.process-controls{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.text-section{min-width:0;padding:24px}.text-section h2{color:var(--text);margin-bottom:16px;font-size:20px}.text-section textarea{resize:vertical;min-height:150px;margin-bottom:20px}.text-settings{background:var(--bg-tertiary);border-radius:8px;margin-bottom:20px;padding:16px}.text-settings h3{color:var(--text-muted);margin-bottom:16px;font-size:14px}.setting-row{margin-bottom:16px}.setting-row:last-child{margin-bottom:0}.setting-row label{color:var(--text);margin-bottom:8px;font-size:13px;display:block}.review-section{flex-direction:column;gap:24px;display:flex}.export-controls{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.overflow-section{padding:24px}.overflow-section h3{color:var(--warning);margin-bottom:12px;font-size:18px}.overflow-text{background:var(--bg-tertiary);border:1px solid var(--border);font-family:var(--mono);color:var(--text);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:200px;margin:16px 0;padding:16px;font-size:13px;overflow-y:auto}@media (width<=768px){.app-header{padding:20px 16px}.app-header h1{font-size:24px}.app-main{padding:20px 16px}.upload-card{padding:24px 16px}.upload-area{padding:40px 16px}.editor-section,.canvas-section,.text-section,.overflow-section{padding:20px 16px}.step-actions{flex-direction:column}.step-actions button{width:100%}.button-row{flex-direction:column}.button-row button{width:100%}.process-controls,.export-controls{flex-direction:column}.process-controls button,.export-controls button{width:100%}}.fabric-canvas-wrapper{display:inline-block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
