:root{--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--color-white:#FFFFFF;--color-black:#000000;--color-gray-600:#4B5563;--color-gray-700:#374151}.book-generator{max-width:800px;margin:0 auto;padding:var(--spacing-lg);@media (max-width:640px){padding-left:0;padding-bottom:0;padding-right:0;padding-top:0}}.book-generator__form{background:var(--color-white);border-radius:16px;padding:var(--spacing-xl);box-shadow:0 1px 3px rgba(0,0,0,.1);@media (max-width:640px){padding:var(--spacing-md)}}.book-generator__title{font-size:var(--text-3xl);font-weight:700;color:var(--color-black);margin-bottom:var(--spacing-xs)}.book-generator__subtitle{font-size:var(--text-base);color:var(--color-gray-600);margin-bottom:var(--spacing-xl)}.form-group{margin-bottom:var(--spacing-lg)}.form-group__label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--color-black);margin-bottom:var(--spacing-xs)}.form-group__input,.form-group__select,.form-group__textarea{width:100%;padding:var(--spacing-sm);font-size:var(--text-base);border:1px solid #e5e5e5;border-radius:8px;transition:border-color .2s ease}.form-group__input:focus,.form-group__select:focus,.form-group__textarea:focus{outline:none;border-color:#8B9A7E}.form-group__textarea{min-height:100px;resize:vertical}.form-group__hint{font-size:var(--text-xs);color:var(--color-gray-600);margin-top:var(--spacing-xs)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}@media (max-width:640px){.form-row{grid-template-columns:1fr}}.test-mode-section{background:#FEF3C7;border:1px solid #fde047;border-radius:8px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.test-mode-checkbox{display:flex;align-items:center;gap:var(--spacing-xs)}.test-mode-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.test-mode-checkbox label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-black);cursor:pointer}.credit-check{border-radius:8px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.credit-check--success{background:#ECFDF5;border:1px solid #10b981}.credit-check--warning{background:#FEF3C7;border:1px solid #fde047}.credit-check__icon{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.credit-check__content{flex:1}.credit-check__title{font-weight:600;margin-bottom:var(--spacing-xs)}.credit-check--success .credit-check__title{color:#065F46}.credit-check--warning .credit-check__title{color:#991B1B}.credit-check__text{font-size:var(--text-sm);color:var(--color-gray-700)}.credit-check__actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm);@media (max-width:480px){flex-direction:column}}.btn-primary{width:100%}.btn-secondary{background:#F5F5F5;color:var(--color-black);border:1px solid #e5e5e5}.btn-secondary:hover:not(:disabled){background:#E5E5E5}.btn-success{background:#10B981;color:var(--color-white)}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:#EF4444;color:var(--color-white)}.btn-danger:hover:not(:disabled){background:#DC2626}.progress-section{background:#EFF6FF;border:1px solid #bfdbfe;border-radius:8px;padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);margin-top:var(--spacing-lg)}.progress-section__title{font-weight:600;color:#1E40AF;margin-bottom:var(--spacing-sm)}.progress-section__text{font-size:var(--text-sm);color:#1E3A8A;margin-bottom:var(--spacing-xs)}.spinner{display:inline-block;width:16px;height:16px}.error-message{margin-bottom:var(--spacing-lg)}.promo-message{background:#ECFDF5;border:1px solid #6ee7b7;color:#065F46;border-radius:6px}.promo-error,.promo-message{padding:var(--spacing-sm);margin:var(--spacing-sm) 0;font-size:var(--text-sm)}.promo-error{background:#FEF2F2;border:1px solid #fca5a5;color:#991B1B;border-radius:6px}.modal-overlay{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{background:var(--color-white);border-radius:12px;padding:var(--spacing-lg);max-width:448px;width:100%;margin:var(--spacing-md);max-height:90vh;overflow-y:auto;border:1px solid #e5e5e5}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.modal-title{font-size:var(--text-lg);font-weight:600;color:var(--color-black)}.modal-close{background:none;border:none;color:var(--color-gray-600);cursor:pointer;padding:var(--spacing-xs);transition:color .2s ease}.modal-close:hover{color:var(--color-black)}.btn-test-inputs{font-size:var(--text-xs);padding:4px 12px;float:right;width:min-content;white-space:nowrap;margin-top:8px}.promo-input{flex:1;padding:var(--spacing-sm);font-size:var(--text-sm);border:1px solid #d1d5db;border-radius:6px}.promo-divider{margin-top:12px;padding-top:12px;border-top:1px solid #d1d5db}.credit-check__header{display:flex;align-items:center;justify-content:space-between;flex-direction:column;gap:20px;align-items:start}.credit-purchase{max-width:900px;margin:0 auto;padding:var(--spacing-lg)}.credit-purchase__header{text-align:center;margin-bottom:var(--spacing-xl)}.credit-purchase__title{font-size:var(--text-4xl);font-weight:700;color:var(--color-black);margin-bottom:var(--spacing-sm)}.credit-purchase__subtitle{font-size:var(--text-xl);color:var(--color-black)}.credit-packages{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.credit-package{position:relative;background:var(--color-white);border:2px solid #e5e5e5;border-radius:12px;padding:var(--spacing-lg);cursor:pointer;transition:all .2s ease;text-align:center}.credit-package:hover{border-color:#6B21A8;box-shadow:0 4px 12px rgba(0,0,0,.08);transform:translateY(-2px)}.credit-package--selected{border-color:#6B21A8;background:rgba(107,33,168,.08);box-shadow:0 0 0 2px #6B21A8}.credit-package__credits{font-size:var(--text-2xl);font-weight:700;color:var(--color-black);margin-bottom:var(--spacing-xs)}.credit-package__bonus{font-size:var(--text-sm);color:var(--color-black);font-weight:500;margin-bottom:var(--spacing-sm)}.credit-package__price{font-size:var(--text-xl);font-weight:700;color:var(--color-black)}.credit-package__unit-price{font-size:var(--text-xs);color:var(--color-gray-600);margin-top:var(--spacing-xs)}.custom-credits-input{background:var(--color-white);border:1px solid #e5e5e5;border-radius:12px;padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.custom-credits-input__label{display:block;font-size:var(--text-base);font-weight:600;color:var(--color-black);margin-bottom:var(--spacing-sm)}.custom-credits-input__field{width:100%;padding:var(--spacing-md);border:2px solid #e5e5e5;border-radius:8px;font-size:var(--text-base);transition:border-color .2s ease}.custom-credits-input__field:focus{outline:none;border-color:#6B21A8}.custom-credits-input__price{margin-top:var(--spacing-sm);font-size:var(--text-lg);font-weight:600;color:var(--color-black)}.payment-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.payment-section{background:var(--color-white);border:1px solid #e5e5e5;border-radius:12px;padding:var(--spacing-lg)}.payment-section__title{font-size:var(--text-lg);font-weight:600;color:var(--color-black);margin-bottom:var(--spacing-md)}.order-summary{display:flex;flex-direction:column;gap:var(--spacing-sm)}.order-summary__row{display:flex;justify-content:space-between;align-items:center}.order-summary__label{color:var(--color-gray-600)}.order-summary__value{font-weight:500;color:var(--color-black)}.order-summary__divider{border-top:1px solid #e5e5e5;margin:var(--spacing-sm) 0}.order-summary__total{padding-top:var(--spacing-sm)}.order-summary__total .order-summary__label,.order-summary__total .order-summary__value{font-size:var(--text-lg);font-weight:700}.error-message{background:#FEF2F2;border:1px solid #fca5a5;color:#991B1B;padding:var(--spacing-md);border-radius:8px;font-size:var(--text-sm)}.spinner{border:2px solid transparent;border-top-color:currentcolor;border-radius:50%;width:20px;height:20px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.secure-badge{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);color:var(--color-gray-600);font-size:var(--text-sm);margin-top:var(--spacing-md)}.secure-badge svg{width:16px;height:16px}