Files
2026gaokaozhiyuan/deploy/nginx/html/css/style.css
T

488 lines
12 KiB
CSS
Raw Normal View History

2026-06-24 13:11:34 +08:00
/* ============================================================
高考志愿家庭门户 — 方案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; }
}