/* ============================================================ 高考志愿家庭门户 — 方案A 经典权威版 设计: 政府/教育考试院门户风格 | 深蓝+金色 | 权威可信 ============================================================ */ :root { --navy-900: #070E1A; --navy-800: #0B1A33; --navy-700: #0F2A52; --navy-600: #123A6E; --navy-500: #154A8A; --navy-400: #1A5CA6; --navy-light: #E8F0FB; --gold-500: #C4A35A; --gold-400: #D4B66A; --gold-300: #E0C87C; --gold-100: #F5ECD7; --white: #FFFFFF; --bg: #F0F3F8; --card: #FFFFFF; --text: #1A1A2E; --text-muted: #6B7280; --text-secondary: #4B5563; --border: #DCDFE5; --green: #1A6B3C; --green-light: #E6F4EC; --amber: #B8590C; --amber-light: #FEF4E4; --red: #C8102E; --red-light: #FDE8EC; --purple: #5B21B6; --purple-light: #EDE5F9; --blue-tag: #1A5CA6; --blue-tag-bg: #DCE9F7; --radius-sm: 6px; --radius-md: 10px; --radius-lg: 14px; --shadow-sm: 0 1px 3px rgba(7,14,26,0.06); --shadow-md: 0 4px 16px rgba(7,14,26,0.08); --shadow-lg: 0 8px 32px rgba(7,14,26,0.12); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; background: linear-gradient(180deg, #F0F3F8 0%, #E8EDF5 100%); color: var(--text); line-height: 1.68; min-height: 100vh; } .container { max-width: 1200px; margin: 0 auto; padding: 0 32px 60px; } /* ===== TOP BAR ===== */ .top-bar { background: var(--navy-900); color: rgba(255,255,255,0.65); font-size: 11px; padding: 6px 0; text-align: center; letter-spacing: 0.5px; } /* ===== HERO ===== */ .hero { background: linear-gradient(135deg, var(--navy-800) 0%, var(--navy-600) 45%, var(--navy-500) 100%); text-align: center; padding: 48px 24px 40px; position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; top: -60px; right: -40px; width: 240px; height: 240px; border-radius: 50%; border: 2px solid rgba(196,163,90,0.12); pointer-events: none; } .hero h1 { font-size: 28px; font-weight: 800; color: var(--white); letter-spacing: 1px; position: relative; z-index: 1; } .hero h1 .name { color: var(--gold-400); border-bottom: 2px solid rgba(196,163,90,0.4); padding-bottom: 2px; } .hero .sub { font-size: 13px; color: rgba(255,255,255,0.72); margin-top: 6px; position: relative; z-index: 1; } .hero .meta { margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; position: relative; z-index: 1; } .hero .meta span { display: inline-block; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15); color: rgba(255,255,255,0.88); padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 500; } .hero .meta .gold { background: rgba(196,163,90,0.2); border-color: rgba(196,163,90,0.35); color: var(--gold-300); } /* Hero score info block — 预估位次 + 家庭自估 */ .hero .meta .score-info { display: inline-flex; align-items: center; gap: 4px; background: rgba(196,163,90,0.2); border: 1px solid rgba(196,163,90,0.35); padding: 4px 14px; border-radius: 20px; font-size: 12px; font-weight: 500; flex-wrap: wrap; justify-content: center; } .hero .meta .score-range { color: rgba(255,255,255,0.7); font-size: 10px; font-weight: 400; } .hero .meta .score-num { color: var(--gold-300); font-weight: 800; font-size: 14px; letter-spacing: 0.5px; } .hero .meta .score-note { color: rgba(255,255,255,0.65); font-size: 10px; } /* ===== SECTION TITLES ===== */ .section-title { display: flex; align-items: center; gap: 10px; margin: 28px 0 0; font-size: 18px; font-weight: 700; color: var(--navy-800); padding-bottom: 8px; border-bottom: 2px solid var(--gold-300); } .section-title .icon { font-size: 20px; } /* ===== CARD GRID ===== */ .card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } /* 天恒测评区 — 每行放2个(卡片较宽) */ .card-grid-2col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; } .card { background: var(--card); border-radius: var(--radius-md); padding: 20px 22px; border: 1px solid var(--border); text-decoration: none; color: inherit; transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); min-height: 180px; overflow: hidden; } .card .btn-row { margin-top: auto; } .card .status { margin-top: auto; } .card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); border-color: var(--gold-400); } .card h3 { font-size: 15px; font-weight: 700; color: var(--navy-700); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; } .card h3 .card-tag { margin-left: auto; } .card p { font-size: 12px; color: var(--text-muted); line-height: 1.5; margin-bottom: 10px; flex: 1; } /* ===== BADGES ===== */ .badge { display: inline-block; font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 4px; letter-spacing: 0.3px; } .badge-blue { background: var(--navy-light); color: var(--navy-600); } .badge-purple { background: var(--purple-light); color: var(--purple); } .badge-green { background: var(--green-light); color: var(--green); } .badge-amber { background: var(--amber-light); color: var(--amber); } .badge-gold { background: var(--gold-100); color: #8B6914; } .badge-red { background: var(--red-light); color: var(--red); } /* ===== 填写人标识 ===== */ .filler-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; padding: 5px 14px; border-radius: 20px; white-space: nowrap; } .filler-tianheng { background: linear-gradient(135deg, #DCE9F7 0%, #C5D9F0 100%); color: var(--navy-700); border: 1.5px solid var(--navy-400); } .filler-parents { background: linear-gradient(135deg, #FEF4E4 0%, #FDE8C4 100%); color: #92400E; border: 1.5px solid var(--amber); } .filler-tag .icon { font-size: 15px; } /* ===== 分组区块标识 ===== */ .section-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 14px; } .section-divider { border: none; border-top: 2px dashed var(--border); margin: 6px 0 20px; } .section-hint { font-size: 12px; color: var(--text-muted); margin: -8px 0 14px; line-height: 1.6; } .section-tianheng { border-left: 4px solid var(--navy-500); padding-left: 12px; } .section-parents { border-left: 4px solid var(--amber); padding-left: 12px; } /* ===== QUESTIONNAIRE SECTION ===== */ .q-card { border-left: 4px solid var(--navy-500); } .q-card .btn-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; } .q-card .status { margin-top: 10px; font-size: 11px; color: var(--text-muted); display: flex; align-items: center; gap: 6px; } .q-card .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border); display: inline-block; } .q-card .dot.active { background: var(--green); } /* ===== BUTTONS ===== */ .btn { display: inline-flex; align-items: center; gap: 4px; padding: 7px 16px; border-radius: var(--radius-sm); font-size: 12px; font-weight: 600; text-decoration: none; cursor: pointer; transition: background 0.15s, transform 0.1s; border: none; } .btn:hover { transform: translateY(-1px); } .btn-primary { background: var(--navy-600); color: var(--white); } .btn-primary:hover { background: var(--navy-700); } .btn-outline { background: var(--white); color: var(--navy-600); border: 1.5px solid var(--navy-400); } .btn-outline:hover { background: var(--navy-light); } .btn-gold { background: var(--gold-500); color: var(--white); } .btn-gold:hover { background: #B89545; } .btn-sm { padding: 5px 12px; font-size: 11px; } /* ===== ALERTS ===== */ .alert { border-radius: var(--radius-md); padding: 12px 16px; margin: 14px 0; font-size: 13px; line-height: 1.7; } .alert-info { background: var(--navy-light); border-left: 4px solid var(--navy-500); color: var(--navy-700); } .alert-green { background: var(--green-light); border-left: 4px solid var(--green); color: #065F46; } .alert-amber { background: var(--amber-light); border-left: 4px solid var(--amber); color: #92400E; } .alert-red { background: var(--red-light); border-left: 4px solid var(--red); color: #991B1B; } /* ===== FOOTER ===== */ .footer { margin-top: 36px; text-align: center; font-size: 11px; color: var(--text-muted); padding: 16px 0; border-top: 1px solid var(--border); } .footer .data-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-bottom: 8px; } .footer .data-badges span { background: var(--bg); padding: 2px 8px; border-radius: 4px; font-size: 10px; } /* ===== REPORT PAGE ===== */ .report-frame { border: none; width: 100%; min-height: 600px; border-radius: var(--radius-md); box-shadow: var(--shadow-md); background: var(--white); } .back-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--navy-600); text-decoration: none; margin-bottom: 12px; font-weight: 600; } .back-link:hover { color: var(--navy-800); } /* ===== QUESTIONNAIRE FORM ===== */ .q-form { max-width: 680px; } .q-form .q-item { background: var(--card); border-radius: var(--radius-md); padding: 16px 20px; margin-bottom: 10px; border: 1px solid var(--border); } .q-form .q-item .q-num { font-size: 11px; color: var(--navy-500); font-weight: 700; } .q-form .q-item .q-text { font-size: 14px; color: var(--text); margin: 4px 0 10px; font-weight: 500; } .q-form .q-item .options { display: flex; flex-wrap: wrap; gap: 8px; } .q-form .q-item .options label { display: inline-flex; align-items: center; gap: 4px; padding: 6px 14px; border: 1.5px solid var(--border); border-radius: 20px; font-size: 12px; cursor: pointer; transition: all 0.15s; user-select: none; } .q-form .q-item .options label:hover { border-color: var(--navy-400); background: var(--navy-light); } .q-form .q-item .options input[type="radio"] { display: none; } .q-form .q-item .options input[type="radio"]:checked + span { background: var(--navy-600); color: var(--white); } .q-form .q-item .options input[type="radio"]:checked + span::before { /* checked indicator */ } /* ===== RESULTS PAGE ===== */ .result-table { width: 100%; border-collapse: collapse; font-size: 13px; } .result-table th { background: var(--navy-700); color: var(--white); padding: 10px 12px; text-align: left; font-weight: 600; font-size: 12px; } .result-table td { padding: 8px 12px; border-bottom: 1px solid var(--border); } .result-table tbody tr:hover td { background: var(--navy-light); } .diff-highlight { background: var(--amber-light); font-weight: 600; color: var(--amber); } /* ===== TIANHENG DYNAMIC SLOTS ===== */ #tianheng-dynamic-slots { display: grid; grid-template-columns: subgrid; gap: 16px; grid-column: 1 / -1; } #tianheng-dynamic-slots .card.q-card { /* cards inside will now behave as direct grid children */ } /* ===== PRINT ===== */ @media print { .top-bar, .footer, .btn { display: none; } .hero { background: none; padding: 12px 0; } .hero h1 { color: var(--navy-800); } body { background: white; } }