*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#e0e0e0}.modal-overlay[data-v-254ff256]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:2000}.modal-container[data-v-254ff256]{background:#fff;border-radius:20px;width:90%;max-width:950px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}.modal-header[data-v-254ff256]{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid #e5e5e5;background:#fafafa}.modal-header h3[data-v-254ff256]{margin:0;font-size:1.3rem;font-weight:600;color:#222}.close-btn[data-v-254ff256]{background:none;border:none;font-size:28px;cursor:pointer;color:#999;transition:all .2s;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%}.close-btn[data-v-254ff256]:hover{color:#333;background:#f0f0f0}.modal-body[data-v-254ff256]{padding:24px;display:flex;gap:30px;flex-wrap:wrap;overflow-y:auto;flex:1}.preview-area[data-v-254ff256]{flex:1.4;display:flex;flex-direction:column;align-items:center;gap:15px}.circle-preview[data-v-254ff256]{position:relative;width:280px;height:280px;background:#f5f5f5;border-radius:50%;box-shadow:0 4px 15px rgba(0,0,0,.1);overflow:hidden}.cut-line-guide[data-v-254ff256]{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;border:3px dashed #f44;z-index:2;pointer-events:none}.inner-circle-guide[data-v-254ff256]{position:absolute;top:12%;left:12%;width:76%;height:76%;border-radius:50%;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 2px #333}.image-container[data-v-254ff256]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff}.editable-image[data-v-254ff256]{min-width:100%;min-height:100%;-o-object-fit:cover;object-fit:cover;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:auto}.hint-text[data-v-254ff256]{font-size:12px;color:#888;text-align:center}.controls-area[data-v-254ff256]{flex:1;min-width:240px}.control-group[data-v-254ff256]{margin-bottom:24px}.control-group label[data-v-254ff256]{display:block;margin-bottom:10px;font-weight:600;color:#333;font-size:14px}.control-group input[type=range][data-v-254ff256]{width:100%;height:4px;border-radius:2px;background:#ddd;-webkit-appearance:none}.control-group input[type=range][data-v-254ff256]:focus{outline:none}.control-group input[type=range][data-v-254ff256]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#4caf50;cursor:pointer}.button-row[data-v-254ff256]{display:flex;gap:8px;margin-top:8px}.button-row button[data-v-254ff256]{padding:6px 12px;background:#f0f0f0;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:12px;transition:all .2s}.button-row button[data-v-254ff256]:hover{background:#e0e0e0}.radio-group[data-v-254ff256]{display:flex;gap:24px;margin-bottom:10px}.radio-option[data-v-254ff256]{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.radio-option input[data-v-254ff256]{width:18px;height:18px;cursor:pointer}.action-buttons[data-v-254ff256]{display:flex;gap:12px;margin-top:30px}.btn-apply[data-v-254ff256],.btn-cancel[data-v-254ff256]{flex:1;padding:12px 20px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-cancel[data-v-254ff256]{background:#f0f0f0;color:#666}.btn-cancel[data-v-254ff256]:hover{background:#e0e0e0}.btn-apply[data-v-254ff256]{background:#4caf50;color:#fff}.btn-apply[data-v-254ff256]:hover{background:#45a049}.modal-overlay[data-v-45d4d13c]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:2000}.modal-container[data-v-45d4d13c]{background:#fff;border-radius:16px;width:90%;max-width:400px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}.modal-header[data-v-45d4d13c]{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid #e5e5e5;background:#fafafa}.modal-header h3[data-v-45d4d13c]{margin:0;font-size:1.3rem;font-weight:600;color:#222}.close-btn[data-v-45d4d13c]{background:none;border:none;font-size:28px;cursor:pointer;color:#999;transition:all .2s;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%}.close-btn[data-v-45d4d13c]:hover{color:#333;background:#f0f0f0}.modal-body-auth[data-v-45d4d13c]{padding:24px}.form-group[data-v-45d4d13c]{margin-bottom:20px}.form-group label[data-v-45d4d13c]{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.form-group input[data-v-45d4d13c]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s}.form-group input[data-v-45d4d13c]:focus{outline:none;border-color:#4caf50}.error-message[data-v-45d4d13c]{background:#ffebee;color:#c62828;padding:10px;border-radius:8px;margin-bottom:20px;font-size:14px}.submit-btn[data-v-45d4d13c]{width:100%;padding:12px;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.submit-btn[data-v-45d4d13c]:hover:not(:disabled){background:#45a049}.submit-btn[data-v-45d4d13c]:disabled{opacity:.6;cursor:not-allowed}.switch-mode[data-v-45d4d13c]{margin-top:20px;text-align:center}.switch-mode button[data-v-45d4d13c]{background:none;border:none;color:#4caf50;cursor:pointer;font-size:14px}.switch-mode button[data-v-45d4d13c]:hover{text-decoration:underline}.modal-overlay[data-v-b5112ef2]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:2000}.modal-container[data-v-b5112ef2]{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}.modal-large[data-v-b5112ef2]{max-width:600px}.modal-header[data-v-b5112ef2]{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid #e5e5e5;background:#fafafa}.modal-header h3[data-v-b5112ef2]{margin:0;font-size:1.3rem;font-weight:600;color:#222}.close-btn[data-v-b5112ef2]{background:none;border:none;font-size:28px;cursor:pointer;color:#999;transition:all .2s;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%}.close-btn[data-v-b5112ef2]:hover{color:#333;background:#f0f0f0}.modal-body-projects[data-v-b5112ef2]{padding:20px;overflow-y:auto;flex:1}.empty[data-v-b5112ef2],.loading[data-v-b5112ef2]{text-align:center;padding:40px;color:#666}.btn-create[data-v-b5112ef2]{padding:8px 20px;background:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;margin-top:10px}.projects-list[data-v-b5112ef2]{display:flex;flex-direction:column;gap:12px}.project-item[data-v-b5112ef2]{display:flex;align-items:center;gap:15px;padding:15px;background:#f9f9f9;border-radius:10px;transition:all .2s}.project-item[data-v-b5112ef2]:hover{background:#f0f0f0}.project-icon .icon[data-v-b5112ef2]{font-size:32px}.project-info[data-v-b5112ef2]{flex:1;cursor:pointer}.project-info h4[data-v-b5112ef2]{margin:0 0 5px 0;font-size:1rem;color:#333}.project-info p[data-v-b5112ef2]{margin:2px 0;font-size:12px;color:#666}.project-info .date[data-v-b5112ef2]{font-size:11px;color:#999}.project-actions[data-v-b5112ef2]{display:flex;gap:8px}.action-btn[data-v-b5112ef2]{background:none;border:none;font-size:20px;cursor:pointer;padding:8px;border-radius:6px;transition:all .2s}.action-btn.load[data-v-b5112ef2]:hover{background:#e8f5e9}.action-btn.delete[data-v-b5112ef2]:hover{background:#ffebee}.editor-container[data-v-0c420312]{min-height:100vh;background:#e0e0e0;padding:20px}.header[data-v-0c420312]{background:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 4px rgba(0,0,0,.1)}.header h1[data-v-0c420312]{margin:0 0 15px 0;font-size:18px;color:#333}.diameter-selector[data-v-0c420312]{display:flex;gap:20px;margin-bottom:15px;flex-wrap:wrap}.size-group[data-v-0c420312]{display:flex;align-items:center;gap:8px;background:#f5f5f5;padding:5px 10px;border-radius:8px}.size-group label[data-v-0c420312]{font-weight:700;min-width:45px}.orient-btn[data-v-0c420312]{padding:6px 12px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.orient-btn.active[data-v-0c420312]{background:#4caf50;border-color:#4caf50;color:#fff}.actions[data-v-0c420312]{display:flex;gap:10px;margin-bottom:15px;flex-wrap:wrap}.clear-btn[data-v-0c420312],.fill-btn[data-v-0c420312],.login-btn[data-v-0c420312],.logout-btn[data-v-0c420312],.new-btn[data-v-0c420312],.pdf-btn[data-v-0c420312],.print-btn[data-v-0c420312],.profile-btn[data-v-0c420312],.projects-btn[data-v-0c420312]{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px}.pdf-btn[data-v-0c420312]{background:#4caf50;color:#fff}.pdf-btn[data-v-0c420312]:hover{background:#45a049}.print-btn[data-v-0c420312]{background:#2196f3;color:#fff}.print-btn[data-v-0c420312]:hover{background:#0b7dda}.clear-btn[data-v-0c420312]{background:#f44336;color:#fff}.clear-btn[data-v-0c420312]:hover{background:#da190b}.fill-btn[data-v-0c420312]{background:#ff9800;color:#fff}.fill-btn[data-v-0c420312]:hover{background:#e68900}.new-btn[data-v-0c420312]{background:#00bcd4;color:#fff}.new-btn[data-v-0c420312]:hover{background:#0097a7}.projects-btn[data-v-0c420312]{background:#607d8b;color:#fff}.projects-btn[data-v-0c420312]:hover{background:#546e7a}.profile-btn[data-v-0c420312]{background:#9c27b0;color:#fff}.profile-btn[data-v-0c420312]:hover{background:#7b1fa2}.login-btn[data-v-0c420312]{background:#9c27b0;color:#fff}.login-btn[data-v-0c420312]:hover{background:#7b1fa2}.logout-btn[data-v-0c420312]{background:#757575;color:#fff}.logout-btn[data-v-0c420312]:hover{background:#616161}.warning[data-v-0c420312]{background:#fff3cd;color:#856404;padding:10px;border-radius:4px;font-size:13px}.a4-page[data-v-0c420312]{background:#fff;margin:0 auto;padding:20px;box-shadow:0 4px 8px rgba(0,0,0,.1);border-radius:4px;display:flex;justify-content:center;align-items:center}.a4-page.landscape[data-v-0c420312]{width:297mm;min-height:210mm}.a4-page.portrait[data-v-0c420312]{width:210mm;min-height:297mm}.circle-cell[data-v-0c420312]{transition:transform .2s}.circle-cell[data-v-0c420312]:hover{transform:scale(1.02)}.plus[data-v-0c420312]{font-size:40px;color:#ccc;font-weight:700}.circle-image[data-v-0c420312]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.debug-panel[data-v-0c420312]{position:fixed;bottom:20px;right:20px;background:rgba(0,0,0,.85);color:#0f0;padding:12px;border-radius:8px;font-family:monospace;font-size:12px;z-index:999;border:1px solid #0f0;min-width:280px}.modal[data-v-0c420312]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:1000}.modal.show[data-v-0c420312]{display:flex}.modal-content[data-v-0c420312]{background:#fff;padding:30px;border-radius:12px;text-align:center;min-width:320px}.modal-content h3[data-v-0c420312]{margin:0 0 20px 0;font-size:20px}.modal-content input[data-v-0c420312]{margin-bottom:20px;padding:12px;border:2px solid #ddd;border-radius:8px;width:100%;box-sizing:border-box;font-size:14px}.modal-content input[data-v-0c420312]:hover{border-color:#4caf50}.modal-buttons button[data-v-0c420312]{padding:10px 24px;background:#f44336;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.modal-buttons button[data-v-0c420312]:hover{background:#da190b}@media print{.debug-panel[data-v-0c420312],.header[data-v-0c420312],.modal[data-v-0c420312]{display:none!important}.a4-page[data-v-0c420312]{padding:0;margin:0;box-shadow:none}}.profile-page[data-v-8c6f82a2]{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.profile-header[data-v-8c6f82a2]{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.1);position:sticky;top:0;z-index:100}.header-content[data-v-8c6f82a2]{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.back-btn[data-v-8c6f82a2]{background:#f0f0f0;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}.back-btn[data-v-8c6f82a2]:hover{background:#e0e0e0}.profile-header h1[data-v-8c6f82a2]{margin:0;font-size:1.5rem;color:#333}.user-info[data-v-8c6f82a2]{display:flex;align-items:center;gap:16px}.username[data-v-8c6f82a2]{font-weight:500;color:#4caf50}.new-project-btn[data-v-8c6f82a2]{background:#00bcd4;color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;transition:background .2s}.new-project-btn[data-v-8c6f82a2]:hover{background:#0097a7}.logout-btn[data-v-8c6f82a2]{background:#f44336;color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;transition:background .2s}.logout-btn[data-v-8c6f82a2]:hover{background:#da190b}.projects-container[data-v-8c6f82a2]{max-width:1200px;margin:0 auto;padding:32px 24px}.loading[data-v-8c6f82a2]{text-align:center;padding:60px;background:#fff;border-radius:16px}.spinner[data-v-8c6f82a2]{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #4caf50;border-radius:50%;animation:spin-8c6f82a2 1s linear infinite;margin:0 auto 20px}@keyframes spin-8c6f82a2{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.empty-projects[data-v-8c6f82a2]{text-align:center;padding:60px;background:#fff;border-radius:16px}.empty-icon[data-v-8c6f82a2]{font-size:64px;margin-bottom:20px}.empty-projects h3[data-v-8c6f82a2]{font-size:1.5rem;margin-bottom:10px;color:#333}.empty-projects p[data-v-8c6f82a2]{color:#666;margin-bottom:24px}.create-btn[data-v-8c6f82a2]{background:#4caf50;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;cursor:pointer;transition:background .2s}.create-btn[data-v-8c6f82a2]:hover{background:#45a049}.projects-grid[data-v-8c6f82a2]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.project-card[data-v-8c6f82a2]{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1);transition:transform .2s,box-shadow .2s}.project-card[data-v-8c6f82a2]:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.15)}.project-preview[data-v-8c6f82a2]{height:180px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #eee;cursor:pointer}.preview-circle[data-v-8c6f82a2]{width:120px;height:120px;border-radius:50%;background:#e0e0e0;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.1)}.preview-placeholder[data-v-8c6f82a2]{font-size:48px}.project-details[data-v-8c6f82a2]{padding:16px;cursor:pointer}.project-details h3[data-v-8c6f82a2]{margin:0 0 10px 0;font-size:1.1rem;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-meta[data-v-8c6f82a2]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.badge[data-v-8c6f82a2]{background:#f0f0f0;padding:4px 10px;border-radius:20px;font-size:12px;color:#666}.project-date[data-v-8c6f82a2]{font-size:12px;color:#999;margin-bottom:8px}.project-stats[data-v-8c6f82a2]{font-size:12px;color:#666}.project-actions[data-v-8c6f82a2]{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #eee;background:#fafafa}.action-btn[data-v-8c6f82a2]{flex:1;padding:8px;border:none;border-radius:6px;cursor:pointer;font-size:16px;transition:all .2s}.action-btn.edit[data-v-8c6f82a2]{background:#2196f3;color:#fff}.action-btn.edit[data-v-8c6f82a2]:hover{background:#0b7dda}.action-btn.download[data-v-8c6f82a2]{background:#4caf50;color:#fff}.action-btn.download[data-v-8c6f82a2]:hover{background:#45a049}.action-btn.delete[data-v-8c6f82a2]{background:#f44336;color:#fff}.action-btn.delete[data-v-8c6f82a2]:hover{background:#da190b}.modal[data-v-8c6f82a2]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-8c6f82a2]{background:#fff;padding:24px;border-radius:16px;max-width:400px;width:90%;text-align:center}.modal-content h3[data-v-8c6f82a2]{margin:0 0 16px 0}.modal-content .warning[data-v-8c6f82a2]{color:#f44336;font-size:12px;margin-top:8px}.modal-buttons[data-v-8c6f82a2]{display:flex;gap:12px;margin-top:24px}.btn-cancel[data-v-8c6f82a2],.btn-danger[data-v-8c6f82a2]{flex:1;padding:10px;border:none;border-radius:8px;cursor:pointer;font-size:14px}.btn-cancel[data-v-8c6f82a2]{background:#e0e0e0;color:#333}.btn-cancel[data-v-8c6f82a2]:hover{background:#d0d0d0}.btn-danger[data-v-8c6f82a2]{background:#f44336;color:#fff}.btn-danger[data-v-8c6f82a2]:hover{background:#da190b}