* { box-sizing: border-box; } [hidden] { display: none !important; } html, body { margin: 0; padding: 0; min-height: 100%; background: linear-gradient(180deg, #091121 0%, #111a2f 100%); color: #eef2ff; font-family: "PingFang SC", "Microsoft YaHei", sans-serif; } body { padding: 20px 14px 32px; } .page-shell { width: min(1240px, 100%); margin: 0 auto; } .hero { display: flex; justify-content: space-between; gap: 16px; padding: 24px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 24px; background: rgba(10, 17, 34, 0.78); backdrop-filter: blur(18px); box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24); } .hero-side { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; } .eyebrow { color: #8ea4ff; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; } .hero h1 { margin: 8px 0 10px; font-size: 34px; } .hero p { margin: 0; line-height: 1.7; color: #b8c2de; } .notice { min-width: 240px; padding: 14px 16px; border-radius: 16px; background: rgba(67, 56, 202, 0.18); border: 1px solid rgba(129, 140, 248, 0.35); color: #dbe4ff; line-height: 1.6; } .notice.error { background: rgba(127, 29, 29, 0.24); border-color: rgba(248, 113, 113, 0.38); color: #fee2e2; } .notice.success { background: rgba(20, 83, 45, 0.24); border-color: rgba(74, 222, 128, 0.35); color: #dcfce7; } .tab-nav { display: flex; gap: 10px; margin-top: 16px; } .auth-screen { display: flex; justify-content: center; align-items: center; width: 100%; min-height: calc(100vh - 40px); } .auth-card { width: min(320px, calc(100vw - 28px)); display: flex; flex-direction: column; gap: 10px; padding: 0; } .auth-hint { min-height: 20px; padding-left: 2px; color: #c7d2fe; line-height: 1.5; font-size: 13px; } .auth-hint.error { color: #fecaca; } .auth-hint.success { color: #bbf7d0; } .tab-btn { border: 0; border-radius: 999px; padding: 12px 18px; background: rgba(255, 255, 255, 0.08); color: #d8def5; font-size: 15px; cursor: pointer; } .tab-btn.active { background: linear-gradient(135deg, #6f7bf7 0%, #9b71f6 100%); color: #fff; box-shadow: 0 10px 24px rgba(111, 123, 247, 0.32); } .tab-panel { display: none; margin-top: 16px; } .tab-panel.active { display: block; } .layout-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .card { padding: 22px; border-radius: 24px; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(8, 13, 27, 0.8); box-shadow: 0 16px 32px rgba(0, 0, 0, 0.22); } .card-head h2 { margin: 0; font-size: 22px; } .card-desc { margin: 10px 0 18px; color: #b2bfdc; line-height: 1.7; } .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; } .field-span-2 { grid-column: span 2; } .field > span { font-size: 14px; color: #c9d3ef; } .input, .textarea, .result-box, select.input { width: 100%; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; background: rgba(16, 22, 40, 0.92); color: #eff3ff; padding: 12px 14px; font: inherit; } .textarea, .result-box { resize: vertical; } .textarea.mono { white-space: pre; word-break: normal; overflow-wrap: normal; overflow-x: auto; } .result-box { min-height: 120px; max-height: 280px; overflow: auto; margin: 0; white-space: pre; word-break: normal; overflow-wrap: normal; line-height: 1.7; } .raw-details { margin-top: 6px; } .raw-details > summary { cursor: pointer; color: #c9d3ef; font-size: 14px; list-style: none; user-select: none; } .raw-details > summary::-webkit-details-marker { display: none; } .raw-details > summary::before { content: '展开'; display: inline-block; margin-right: 8px; color: #8ea4ff; } .raw-details[open] > summary::before { content: '收起'; } .raw-details .result-box { margin-top: 10px; } .mono { font-family: "Cascadia Mono", Consolas, monospace; font-size: 13px; } .actions { display: flex; gap: 10px; margin: 6px 0 14px; } .actions.wrap { flex-wrap: wrap; } .btn { border: 0; border-radius: 14px; padding: 11px 16px; background: rgba(255, 255, 255, 0.08); color: #eef2ff; cursor: pointer; font-size: 14px; } .btn:hover { background: rgba(255, 255, 255, 0.14); } .btn-primary { background: linear-gradient(135deg, #6f7bf7 0%, #7c55f2 100%); } .auth-submit { width: 100%; } .btn-primary:hover { background: linear-gradient(135deg, #7d88fb 0%, #8c62f8 100%); } .result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; } .kv { padding: 12px 14px; border-radius: 16px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.06); } .kv .k { display: block; font-size: 12px; color: #96a5ca; margin-bottom: 6px; } .kv .v { display: block; line-height: 1.5; white-space: nowrap; overflow-x: auto; overflow-y: hidden; word-break: normal; } .kv.good .v { color: #86efac; } .kv.bad .v { color: #fca5a5; } @media (max-width: 980px) { .layout-grid, .form-grid, .result-grid { grid-template-columns: 1fr; } .field-span-2 { grid-column: span 1; } .hero { flex-direction: column; } .hero-side { align-items: stretch; } }