.page { position: relative; min-height: 100vh; padding: 34px 20px 28px; color: #e2ecff; background: radial-gradient(circle at 8% 8%, rgba(56, 189, 248, 0.24), transparent 38%), radial-gradient(circle at 92% 10%, rgba(45, 212, 191, 0.2), transparent 34%), radial-gradient(circle at 50% 120%, rgba(14, 165, 233, 0.26), transparent 40%), #050b16; overflow-x: hidden; } .aurora { position: absolute; inset: -10% -5% auto; height: 340px; background: linear-gradient( 95deg, rgba(56, 189, 248, 0.2) 0%, rgba(45, 212, 191, 0.12) 46%, rgba(99, 102, 241, 0.08) 100% ); filter: blur(58px); pointer-events: none; } .gridNoise { position: absolute; inset: 0; background-image: linear-gradient(rgba(148, 163, 184, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, 0.06) 1px, transparent 1px); background-size: 42px 42px; mask-image: radial-gradient(circle at 50% 25%, black, transparent 72%); pointer-events: none; opacity: 0.22; } .shell { position: relative; width: min(1120px, 100%); margin: 0 auto; display: grid; gap: 16px; } .topBar { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; border: 1px solid rgba(148, 163, 184, 0.2); background: rgba(15, 23, 42, 0.76); backdrop-filter: blur(14px); border-radius: 16px; padding: 16px 18px; } .brandBlock { display: grid; gap: 5px; } .title { margin: 0; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.15; letter-spacing: -0.02em; color: #f8fbff; } .subtitle { margin: 0; font-size: 13px; color: #8ea3c9; } .actions { display: flex; align-items: center; gap: 8px; } .ghostBtn, .primaryBtn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; border-radius: 10px; border: 1px solid rgba(148, 163, 184, 0.35); padding: 0 12px; color: #dce8ff; font-size: 12px; font-weight: 600; text-decoration: none; transition: all 0.22s ease; background: rgba(15, 23, 42, 0.5); cursor: pointer; } .ghostBtn:hover, .primaryBtn:hover { transform: translateY(-1px); } .ghostBtn:hover { border-color: rgba(45, 212, 191, 0.45); color: #f8fcff; background: rgba(45, 212, 191, 0.12); } .primaryBtn { border-color: rgba(56, 189, 248, 0.52); background: linear-gradient(135deg, rgba(14, 116, 144, 0.88), rgba(6, 182, 212, 0.74)); color: #f6fcff; box-shadow: 0 12px 26px rgba(8, 47, 73, 0.35); } .primaryBtn:hover { border-color: rgba(103, 232, 249, 0.72); box-shadow: 0 16px 30px rgba(14, 116, 144, 0.42); } .heroCard { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; border: 1px solid rgba(56, 189, 248, 0.24); background: linear-gradient(135deg, rgba(14, 116, 144, 0.17) 0%, rgba(15, 23, 42, 0.86) 58%), rgba(15, 23, 42, 0.8); border-radius: 18px; padding: 18px 20px; } .avatar { width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; font-size: 22px; font-weight: 800; color: #e7fbff; border: 1px solid rgba(103, 232, 249, 0.45); background: linear-gradient(135deg, rgba(6, 182, 212, 0.65), rgba(59, 130, 246, 0.56)); box-shadow: 0 18px 38px rgba(2, 132, 199, 0.28); } .heroMain { display: grid; gap: 8px; } .heroMain h2 { margin: 0; font-size: clamp(20px, 1.9vw, 28px); letter-spacing: -0.02em; color: #f8fcff; } .heroMain p { margin: 0; color: #a7bcdd; font-size: 13px; } .badges { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; } .badge, .badgeWarn, .badgeGhost { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 5px 11px; font-size: 12px; font-weight: 600; } .badge { border: 1px solid rgba(34, 197, 94, 0.45); background: rgba(34, 197, 94, 0.12); color: #86efac; } .badgeWarn { border: 1px solid rgba(245, 158, 11, 0.46); background: rgba(245, 158, 11, 0.13); color: #fcd34d; } .badgeGhost { border: 1px solid rgba(148, 163, 184, 0.34); background: rgba(148, 163, 184, 0.12); color: #cbd5e1; } .updatedText { justify-self: end; font-size: 12px; color: #8ea3c9; text-align: right; font-variant-numeric: tabular-nums; } .noticeRow, .errorRow { display: inline-flex; align-items: center; gap: 8px; border-radius: 12px; padding: 11px 14px; font-size: 13px; } .noticeRow { border: 1px solid rgba(56, 189, 248, 0.3); background: rgba(15, 23, 42, 0.75); color: #bae6fd; } .errorRow { border: 1px solid rgba(248, 113, 113, 0.44); background: rgba(127, 29, 29, 0.34); color: #fecaca; } .cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .card, .cardWide { border: 1px solid rgba(148, 163, 184, 0.2); border-radius: 14px; background: linear-gradient(180deg, rgba(15, 23, 42, 0.84), rgba(15, 23, 42, 0.72)), rgba(10, 15, 30, 0.78); padding: 16px; } .cardWide { grid-column: 1 / -1; } .card h3, .cardWide h3 { margin: 0 0 12px; display: inline-flex; align-items: center; gap: 7px; font-size: 15px; color: #e6f0ff; } .metaList { margin: 0; display: grid; gap: 10px; } .metaList > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px dashed rgba(148, 163, 184, 0.22); padding-bottom: 9px; } .metaList > div:last-child { border-bottom: none; padding-bottom: 0; } .metaList dt { font-size: 12px; color: #89a1c8; } .metaList dd { margin: 0; font-size: 13px; color: #eff6ff; max-width: 62%; text-align: right; word-break: break-word; } .mono { font-family: "Consolas", "SFMono-Regular", "Menlo", monospace; font-size: 12px; color: #c7d2fe; } .hint { margin: 0 0 12px; font-size: 13px; color: #9ab0d2; line-height: 1.6; } .commandRow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .command { flex: 1 1 420px; min-height: 40px; display: flex; align-items: center; border-radius: 10px; border: 1px solid rgba(103, 232, 249, 0.24); background: rgba(8, 47, 73, 0.32); color: #d1f9ff; padding: 0 12px; font-size: 12px; white-space: pre-wrap; word-break: break-all; } .copyBtn { height: 36px; border-radius: 9px; border: 1px solid rgba(45, 212, 191, 0.48); background: rgba(20, 184, 166, 0.12); color: #99f6e4; padding: 0 12px; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; cursor: pointer; transition: all 0.2s ease; } .copyBtn:hover { background: rgba(20, 184, 166, 0.22); border-color: rgba(94, 234, 212, 0.78); color: #ecfeff; } .spin { animation: spin 0.9s linear infinite; } @media (max-width: 960px) { .topBar { flex-direction: column; align-items: stretch; } .actions { flex-wrap: wrap; } .heroCard { grid-template-columns: auto 1fr; align-items: start; } .updatedText { grid-column: 1 / -1; justify-self: start; } .cards { grid-template-columns: 1fr; } .metaList dd { max-width: 56%; } } @media (max-width: 640px) { .page { padding: 18px 12px 20px; } .topBar, .heroCard, .card, .cardWide { border-radius: 12px; padding: 13px; } .ghostBtn, .primaryBtn { width: 100%; } .actions { flex-direction: column; align-items: stretch; } .ghostBtn, .primaryBtn { min-height: 40px; justify-content: center; } .title { font-size: 22px; } .subtitle { font-size: 12px; } .heroCard { grid-template-columns: 1fr; gap: 12px; } .avatar { width: 56px; height: 56px; border-radius: 16px; font-size: 20px; } .heroMain h2 { font-size: 22px; } .updatedText { text-align: left; } .metaList > div { flex-direction: column; align-items: flex-start; gap: 4px; } .metaList dd { max-width: 100%; text-align: left; } .commandRow { flex-direction: column; align-items: stretch; } .command { flex: 1 1 auto; width: 100%; min-height: 48px; padding: 10px 12px; } .copyBtn { width: 100%; justify-content: center; } .noticeRow, .errorRow { width: 100%; align-items: flex-start; line-height: 1.5; } } @keyframes spin { to { transform: rotate(360deg); } }