
/* Reset */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: linear-gradient(to bottom, #fff 80px, #f5f7fa 80px); color: #1a1a1a; min-height: 100dvh; min-height: 100vh;
    display: flex; align-items: flex-start; justify-content: center; overflow: hidden;
    padding-top: 80px;
}

/* Form inputs */
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-size: 13px; font-weight: 500; color: #374151; margin-bottom: 6px; }
.form-group label .req { color: #ef4444; }
.form-group input, .form-group select {
    width: 100%; padding: 10px 14px; border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 13px; color: #6b7280; font-family: inherit; transition: border-color 0.2s, box-shadow 0.2s; outline: none;
    background: white;
}
.form-group input:focus, .form-group select:focus {
    border-color: #FF8C00; box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.15);
}
.form-group input::placeholder { color: #9ca3af; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Password */
.password-wrapper { position: relative; }
.password-wrapper input { padding-right: 42px; }
.password-toggle {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    background: none; border: none; cursor: pointer; padding: 0;
    display: flex; align-items: center; color: #9ca3af; transition: color 0.2s;
}
.password-toggle:hover { color: #374151; }
.password-toggle svg { width: 18px; height: 18px; }
.password-hint { font-size: 12px; color: #9ca3af; margin-top: 4px; }

/* Phone input */
.phone-input-wrap {
    display: flex; align-items: center; border: 1px solid #d1d5db; border-radius: 8px;
    background: white; transition: border-color 0.2s, box-shadow 0.2s; overflow: hidden;
}
.phone-input-wrap:focus-within { border-color: #FF8C00; box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.15); }
.phone-prefix {
    padding: 10px 0 10px 14px; font-size: 14px; font-weight: 500; color: #1a1a1a;
    white-space: nowrap; -webkit-user-select: none; user-select: none; pointer-events: none;
}
.phone-input-wrap input { border: none !important; background: transparent !important; box-shadow: none !important; padding-left: 6px !important; }
.phone-input-wrap input:focus { box-shadow: none !important; }

/* Error messages */
.error-message {
    background: #fef2f2; color: #dc2626; border: 1px solid #fecaca;
    border-radius: 8px; padding: 10px 14px; font-size: 13px; margin-bottom: 16px; display: none;
}

/* Utility */
.hidden { display: none; }
