*{box-sizing:border-box;margin:0;padding:0}:root{--primary: #0559c9;--secondary: #ffffff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;background:#f0f2f5}.portal-bg{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background-size:cover;background-position:center}.portal-card{background:var(--secondary);border-radius:14px;box-shadow:0 8px 32px #0000002e;width:100%;max-width:420px;padding:28px 24px}.portal-logo{display:block;max-height:72px;max-width:200px;margin:0 auto 16px}.portal-title{text-align:center;font-size:1.4rem;margin-bottom:6px;color:#1a1a1a}.portal-welcome{text-align:center;color:#555;font-size:.95rem;margin-bottom:20px;white-space:pre-line}.field{margin-bottom:14px}.field label{display:block;font-size:.88rem;font-weight:600;color:#333;margin-bottom:5px}.field .required-mark{color:#d4380d}.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=number],.field select{width:100%;padding:11px 12px;border:1px solid #d0d0d0;border-radius:8px;font-size:1rem;background:#fff}.field input:focus,.field select:focus{outline:2px solid var(--primary);border-color:transparent}.field-error{color:#d4380d;font-size:.82rem;margin-top:4px}.checkbox-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px;font-size:.88rem;color:#333}.checkbox-row input{margin-top:3px;width:16px;height:16px;accent-color:var(--primary);flex-shrink:0}.link-button{background:none;border:none;color:var(--primary);text-decoration:underline;cursor:pointer;font-size:inherit;padding:0}.submit-btn{width:100%;padding:13px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:1.05rem;font-weight:600;cursor:pointer;margin-top:8px}.submit-btn:disabled{opacity:.6;cursor:default}.status-box{text-align:center;padding:24px 8px}.status-box .icon{font-size:2.6rem;margin-bottom:12px}.status-box h2{font-size:1.2rem;margin-bottom:8px;color:#1a1a1a}.status-box p{color:#555;font-size:.95rem}.spinner{width:42px;height:42px;border:4px solid #e0e0e0;border-top-color:var(--primary);border-radius:50%;margin:0 auto 16px;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.modal{background:#fff;border-radius:12px;max-width:480px;width:100%;max-height:80vh;max-height:85dvh;display:flex;flex-direction:column}.modal h3{padding:16px 20px;border-bottom:1px solid #eee;font-size:1.05rem}.modal .modal-body{padding:16px 20px;overflow-y:auto;white-space:pre-line;font-size:.9rem;color:#444}.modal .modal-footer{padding:12px 20px;border-top:1px solid #eee;text-align:right}.promo-modal{position:relative;max-width:480px;width:100%;border-radius:12px;box-shadow:0 12px 40px #00000059;overflow:hidden;background:#fff;max-height:85dvh;overflow-y:auto}.promo-modal img{display:block;width:100%;max-height:60dvh;object-fit:contain}.promo-modal img.promo-img-top{border-radius:0}.promo-body{padding:18px 20px 20px}.promo-body h2{font-size:1.2rem;color:#1a1a1a;margin-bottom:8px}.promo-body p{color:#444;font-size:.95rem;white-space:pre-line;margin-bottom:16px}.promo-close{position:absolute;top:10px;right:10px;width:32px;height:32px;border:none;border-radius:50%;background:#fff;color:#333;font-size:1rem;cursor:pointer;box-shadow:0 2px 8px #0000004d;z-index:1}@media(max-width:400px){.portal-bg{padding:10px;align-items:flex-start;padding-top:max(20px,env(safe-area-inset-top))}.portal-card{padding:22px 16px}.portal-title{font-size:1.25rem}.portal-logo{max-height:56px}}
