Files
steven 4d30803b60 Initial commit: AIFO official portal web.
Add static site, shared layout, and Node dev server with standard .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 15:29:50 +08:00

844 lines
15 KiB
SCSS

.bg_grid{
position:absolute;
width: 100%;
height: 100%;
z-index: 0;
}
body.aifo-bg-primary {
position: relative;
}
.bg_top{
position: absolute;
inset: 0;
width: 100%;
height: 870px;
z-index: -1;
background: #000;
}
#affliate-register-question{
.has-error {
border-left: 3px solid var(--aifo-orange);
padding-left: 12px;
}
button:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.modal-overlay {
display: none;
margin: auto;
}
.questionnaire-modal {
border-radius: 20px;
padding: 40px;
max-width: 712px;
width: 100%;
max-height: unset;
position: relative;
margin: auto;
}
.main-container {
position: relative;
z-index: 2;
width: 100%;
min-height: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 40px 16px;
}
.questionnaire-card {
border-radius: 20px;
max-width: 780px;
width: 100%;
max-height: calc(100% - 80px);
display: flex;
flex-direction: column;
overflow: hidden;
background: rgba(20,20,20,0.92);
overflow: hidden;
}
.card-content {
padding: 36px;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 10px;
text-decoration: none;
margin-bottom: 32px;
cursor: pointer;
border: none;
background: transparent;
padding: 0;
transition: all 0.2s ease;
}
// .back-button:hover {
// opacity: 0.8;
// }
.back-icon {
width: 22px;
height: 22px;
background: var(--aifo-orange);
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 14px;
font-weight: bold;
transition: all 0.2s ease;
}
.back-button:hover .back-icon {
box-shadow: 0 0 12px rgba(249,135,21,0.4);
}
.back-text {
color: #F9F9F9;
font-size: 16px;
font-weight: 500;
}
.question-section {
margin-bottom: 26px;
}
.question-title {
color: #ffffff;
font-size: 17px;
font-weight: 600;
line-height: 1.4;
margin-bottom: 16px;
}
.options-container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.custom-checkbox {
position: relative;
padding-left: 0;
margin-bottom: 0;
}
.custom-checkbox label {
display: flex;
align-items: flex-start;
cursor: pointer;
color: #ffffff;
font-size: 14px;
font-weight: 300;
line-height: 1.4;
padding: 10px 4px;
background: transparent;
border: none;
border-radius: 8px;
transition: all 0.2s ease;
user-select: none;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
}
.custom-checkbox label:hover {
opacity: 0.8;
}
.custom-checkbox input[type="checkbox"],
.custom-checkbox input[type=radio]{
position: absolute;
opacity: 0;
}
.checkbox-custom {
min-width: 18px;
width: 18px;
height: 18px;
background: #2a2a2a;
border: 1px solid rgba(255,255,255,0.12);
border-radius: 4px;
margin-right: 10px;
margin-top: 1px;
position: relative;
transition: unset;
flex-shrink: 0;
}
.checkbox-custom::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0);
color: white;
font-size: 12px;
font-weight: bold;
// transition: transform 0.2s ease;
}
// .question_content {
// // height: auto;
// min-height: 100px;
// max-height: 650px;
// overflow-y: scroll;
// overflow-x: hidden;
// // grid-template-columns: repeat(2, 356px);
// // grid-gap: 22px;
// // padding-right: 40px;
// }
// .question_content::-webkit-scrollbar {
// width: 8px;
// }
// .question_content::-webkit-scrollbar-thumb {
// background: #F98715;
// border-radius: 5px;
// }
.custom-checkbox input[type="checkbox"]:checked + label .checkbox-custom,
.custom-checkbox input[type=radio]:checked + label .checkbox-custom,
.custom-checkbox label.is-checked .checkbox-custom
{
background: #F98715;
border-color: #F98715;
}
.custom-checkbox input[type="checkbox"]:checked + label .checkbox-custom::after,
.custom-checkbox input[type=radio]:checked + label .checkbox-custom::after,
.custom-checkbox label.is-checked .checkbox-custom::after
{
transform: translate(-50%, -50%) scale(1);
}
.error-message {
color: var(--aifo-orange);
font-size: 13px;
margin-top: 8px;
display: none;
}
.cta-section {
padding: 24px 36px;
background: rgba(20,20,20,0.95);
border-top: 1px solid rgba(255,255,255,0.08);
// position: sticky;
// bottom: 0;
// z-index: 10;
}
.cta-button {
width: 100%;
height: 54px;
background: #F98715;
color: #ffffff;
font-size: 19px;
font-weight: 600;
border: none;
border-radius: 11px;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 4px 14px rgba(249,135,21,0.15);
}
.cta-button:hover:not(:disabled) {
background: #ff9a2e;
box-shadow: 0 10px 24px rgba(249,135,21,0.35);
transform: translateY(-1px);
}
.cta-button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
// #questionnaireModalStep2{ }
.questionnaire-modal {
padding: 0px;
}
.page-wrapper {
position: relative;
z-index: 2;
min-height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 40px 20px;
overflow-y: auto;
}
.form-card {
background: linear-gradient(180deg, #141414 0%, #0F0F10 100%);
border-radius: 24px;
border: 1px solid rgba(255, 255, 255, 0.10);
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
max-width: 820px;
width: 92%;
padding: 32px 40px;
margin: auto;
}
@media (max-width: 767px) {
.form-card {
padding: 20px 18px;
}
}
.form-card::-webkit-scrollbar {
width: 8px;
}
.form-card::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
border-radius: 4px;
}
.form-card::-webkit-scrollbar-thumb {
background: rgba(249, 135, 21, 0.5);
border-radius: 4px;
}
.form-card::-webkit-scrollbar-thumb:hover {
background: rgba(249, 135, 21, 0.7);
}
.back-button {
display: inline-flex;
align-items: center;
gap: 10px;
cursor: pointer;
margin-bottom: 28px;
transition: all 0.2s ease;
}
.back-icon {
width: 28px;
height: 28px;
background: var(--aifo-orange);
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s ease;
}
.back-button:hover .back-icon {
background: var(--aifo-orange-hover);
box-shadow: 0 4px 12px rgba(249, 135, 21, 0.3);
}
.back-text {
color: #F9F9F9;
font-size: 15px;
font-weight: 500;
}
.question-block {
margin-bottom: 28px;
}
.question-title {
font-size: 16px;
font-weight: 600;
color: #F1F1F1;
margin-bottom: 14px;
line-height: 1.4;
}
.checkbox-option {
position: relative;
margin-bottom: 12px;
}
.checkbox-option label {
display: flex;
align-items: center;
cursor: pointer;
padding: 0;
background: transparent;
border: none;
transition: all 0.2s ease;
user-select: none;
}
.checkbox-option label:hover .checkbox-custom {
border-color: rgba(249, 135, 21, 0.6);
}
.checkbox-option input[type="checkbox"] {
position: absolute;
opacity: 0;
cursor: pointer;
}
.checkbox-label {
color: rgba(255, 255, 255, 0.78);
font-size: 15px;
font-weight: 400;
}
.form-input {
background: #101010;
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: 6px;
padding: 14px 16px;
color: #F9F9F9;
font-size: 15px;
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
height: 24px;
}
.form-input:focus {
outline: none;
border-color: #F98715;
box-shadow: 0 0 0 3px rgba(249, 135, 21, 0.15);
}
.form-input::placeholder {
color: rgba(255, 255, 255, 0.38);
}
.platform-input-wrapper {
position: relative;
flex: 1;
}
.platform-input-wrapper input {
padding-left: 44px;
}
.input-icon {
position: absolute;
left: 14px;
top: 50%;
transform: translateY(-50%);
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
}
.input-icon svg {
display: block;
}
.platform-selector {
position: relative;
flex: 0 0 180px;
}
.platform-select {
width: 100%;
background: #101010;
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: 12px;
padding: 14px 40px 14px 16px;
color: #F9F9F9;
font-size: 15px;
line-height: 1.4;
transition: all 0.2s ease;
cursor: pointer;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
.platform-select:focus {
outline: none;
border-color: #F98715;
box-shadow: 0 0 0 3px rgba(249, 135, 21, 0.15);
}
.platform-selector::after {
content: '';
position: absolute;
right: 16px;
top: 50%;
transform: translateY(-50%);
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid rgba(255, 255, 255, 0.6);
pointer-events: none;
}
@media (max-width: 991px) {
.platform-selector {
flex: 0 0 160px;
}
}
@media (max-width: 767px) {
.platform-selector {
width: 100%;
}
}
.links-title {
font-size: 16px;
font-weight: 600;
color: #F1F1F1;
}
.add-platform-link {
display: inline-flex;
align-items: center;
gap: 6px;
color: #F98715;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
}
.add-platform-link:hover {
color: #FF9830;
text-decoration: underline;
}
.links-row {
display: flex;
gap: 12px;
align-items: center;
}
.links-row-buttons {
display: flex;
gap: 12px;
align-items: center;
}
@media (max-width: 991px) and (min-width: 768px) {
.links-row {
gap: 10px;
}
.btn-attach {
padding: 14px 16px;
font-size: 13px;
}
}
@media (max-width: 767px) {
.form-card {
max-height: 86vh;
overflow-y: auto;
}
.links-row {
flex-direction: column;
gap: 12px;
}
.platform-input-wrapper {
width: 100%;
}
.btn-attach {
flex: 1;
}
.btn-delete {
flex-shrink: 0;
width: 48px;
}
.question-title {
font-size: 16px;
}
.checkbox-label {
font-size: 14px;
}
}
.btn-attach {
background: #F98715;
border: none;
border-radius: 12px;
color: white;
font-size: 14px;
font-weight: 600;
padding: 14px 20px;
line-height: 1.4;
display: inline-flex;
align-items: center;
gap: 8px;
cursor: pointer;
transition: all 0.2s ease;
white-space: nowrap;
}
.btn-attach:hover {
background: #FF9830;
box-shadow: 0 4px 12px rgba(249, 135, 21, 0.3);
}
.btn-delete {
width: 48px;
background: transparent;
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: 12px;
padding: 14px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
flex-shrink: 0;
}
.btn-delete:hover {
border-color: #F98715;
background: rgba(249, 135, 21, 0.1);
}
.btn-submit {
width: 100%;
height: 60px;
background: #F98715;
border: none;
border-radius: 14px;
color: white;
font-size: 20px;
font-weight: 700;
cursor: pointer;
transition: all 0.2s ease;
margin-top: 36px;
text-transform: none;
}
.btn-submit:hover {
background: #FF9830;
box-shadow: 0 6px 20px rgba(249, 135, 21, 0.4);
transform: translateY(-2px);
}
.btn-submit:active {
transform: translateY(0);
}
.mixed-input-row {
display: flex;
gap: 130px;
align-items: center;
}
.mixed-input-row .checkbox-option {
flex: 0 0 auto;
margin-bottom: 0;
}
.mixed-input-row .form-input {
flex: 1;
}
@media (max-width: 767px) {
.mixed-input-row {
flex-direction: column;
gap: 12px;
}
.mixed-input-row .checkbox-option,
.mixed-input-row .form-input {
width: 100%;
}
}
.file-name {
font-size: 13px;
color: rgba(255, 255, 255, 0.6);
margin-top: 8px;
display: none;
}
.file-name.show {
display: block;
}
.platform-box{max-width:760px}
.platform-row{
display:flex;
align-items:center;
gap:8px;
margin-bottom:12px;
}
.platform-input-wrap{flex:1;position:relative}
.platform-input{
height:48px;
padding-left:48px;
background:#0d0d0d;
border:1px solid #2a2a2a;
color:#fff;
border-radius:10px;
}
.platform-input:focus{
border-color:#ff8a00;
box-shadow:none;
}
.platform-icon{
position:absolute;
left:14px;
top:50%;
transform:translateY(-50%);
color:#aaa;
font-size:18px;
cursor:pointer;
}
.platform-icon:hover{color:#ff8a00}
.platform-dropdown{
position:absolute;
top:52px;
left:0;right:0;
background:#121212;
border:1px solid #2a2a2a;
border-radius:10px;
z-index:100;
display:none;
}
.platform-search{
padding:8px;
border-bottom:1px solid #2a2a2a;
}
.platform-search-input{
width:100%;
height:34px;
background:#0d0d0d;
border:1px solid #2a2a2a;
color:#fff;
border-radius:6px;
padding:0 10px;
}
.platform-list{max-height:180px;overflow:auto}
.platform-item{
display:flex;
align-items:center;
gap:10px;
padding:10px 14px;
cursor:pointer;
}
.platform-item i{
width:20px;
text-align:center;
font-size:16px;
}
.platform-item:hover{background:#1f1f1f}
.platform-item.disabled{
opacity:.4;
cursor:not-allowed;
}
.platform-empty{
padding:12px;
text-align:center;
color:#777;
display:none;
}
.btn-attach{
height:40px;
background:#ff8a00;
border-radius:8px;
white-space:nowrap;
}
.btn-attach.attached{background:#2ecc71}
.file-input{display:none}
.upload-progress{
width:120px;
height:6px;
background:#2a2a2a;
border-radius:4px;
overflow:hidden;
display:none;
}
.upload-bar{
height:100%;
width:0%;
background:#ff8a00;
}
.btn-delete{
background:none;
border:none;
color:#777;
font-size:18px;
}
.btn-delete:hover{color:#ff4d4f}
.add-platform{
color:#ff8a00;
cursor:pointer;
}
}
.login-page {
padding: 0;
height: auto;
}
#questionnaireModalStep1.modal-overlay{
display: block;
}
.question-section.has-error {
border-left: 3px solid var(--aifo-orange);
}
.error-focus {
animation: errorPulse 1.2s ease;
}
@keyframes errorPulse {
0% { background: rgba(255,77,79,0.15); }
100% { background: transparent; }
}