:root { color-scheme: light; --bg: #f6f7f9; --panel: #ffffff; --ink: #1c2530; --muted: #657183; --line: #d8dde5; --line-strong: #b7c0cc; --blue: #1d5fd1; --green: #16834c; --amber: #9a5a00; --red: #b3261e; --teal: #0b7285; --shadow: 0 12px 35px rgba(31, 45, 61, 0.08); } * { box-sizing: border-box; } body { margin: 0; background: var(--bg); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.45; } button, input, textarea, select { font: inherit; } button { cursor: pointer; } .app-shell { min-height: 100vh; padding: 20px; } .topbar { align-items: center; display: flex; justify-content: space-between; gap: 16px; margin: 0 auto 16px; max-width: 1480px; } h1, h2, h3, p { margin: 0; } h1 { font-size: 26px; letter-spacing: 0; } h2 { font-size: 16px; letter-spacing: 0; } h3 { font-size: 15px; letter-spacing: 0; } .topbar p, .muted { color: var(--muted); font-size: 13px; } .topbar-actions { display: flex; gap: 8px; } .workspace { display: grid; gap: 16px; grid-template-columns: 360px minmax(0, 1fr); margin: 0 auto; max-width: 1480px; } .sidebar { display: grid; gap: 16px; align-content: start; } .panel, .main-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); } .panel { padding: 16px; } .main-panel { min-height: 720px; overflow: hidden; } .compact-form { display: grid; gap: 12px; } label { color: var(--muted); display: grid; font-size: 12px; gap: 6px; } input, textarea, select { background: #fff; border: 1px solid var(--line-strong); border-radius: 6px; color: var(--ink); min-width: 0; padding: 9px 10px; width: 100%; } textarea { resize: vertical; } input:focus, textarea:focus, select:focus { border-color: var(--blue); outline: 3px solid rgba(29, 95, 209, 0.15); } .form-grid { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; } .primary-button, .secondary-button, .small-button, .icon-button, .danger-button { align-items: center; border-radius: 6px; border: 1px solid transparent; display: inline-flex; justify-content: center; min-height: 38px; padding: 0 12px; } .primary-button { background: var(--blue); color: #fff; } .secondary-button, .icon-button { background: #eef3fb; border-color: #c9d7ef; color: #173b78; } .small-button { background: #f8fafc; border-color: var(--line); color: var(--ink); min-height: 30px; padding: 0 9px; } .danger-button { background: #fff5f4; border-color: #f0b6b1; color: var(--red); } .section-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 12px; } .count, .badge { border-radius: 999px; display: inline-flex; font-size: 12px; line-height: 1; padding: 5px 8px; } .count { background: #ecf2f8; color: #38516f; } .domain-list { display: grid; gap: 8px; } .domain-item { background: #fbfcfe; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 6px; padding: 10px; text-align: left; width: 100%; } .domain-item.active { border-color: var(--blue); outline: 3px solid rgba(29, 95, 209, 0.12); } .domain-item strong { color: var(--ink); font-size: 14px; overflow-wrap: anywhere; } .item-line { align-items: center; display: flex; justify-content: space-between; gap: 8px; } .badge.ok { background: #e8f6ee; color: var(--green); } .badge.warn { background: #fff4df; color: var(--amber); } .badge.missing, .badge.failed { background: #fff0ee; color: var(--red); } .badge.idle { background: #edf1f6; color: #506070; } .detail-header { border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 18px; padding: 18px; } .detail-title { display: grid; gap: 8px; } .detail-title h2 { font-size: 22px; overflow-wrap: anywhere; } .detail-actions { align-items: start; display: flex; flex-wrap: wrap; gap: 8px; justify-content: end; } .status-strip { display: flex; flex-wrap: wrap; gap: 8px; } .detail-body { display: grid; gap: 18px; padding: 18px; } .grid-two { display: grid; gap: 16px; grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr); } .subpanel { border: 1px solid var(--line); border-radius: 8px; padding: 14px; } .subpanel > h3 { margin-bottom: 12px; } .subpanel-head { align-items: center; display: flex; gap: 10px; justify-content: space-between; margin-bottom: 12px; } .subpanel-head h3 { margin: 0; } .guide-hero { align-items: stretch; background: #ffffff; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 18px; grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr); padding: 16px; } .guide-hero h3 { font-size: 24px; margin: 4px 0; overflow-wrap: anywhere; } .guide-hero p { color: var(--muted); font-size: 13px; overflow-wrap: anywhere; } .eyebrow { color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; } .summary-grid { display: grid; gap: 10px; grid-template-columns: repeat(5, minmax(92px, 1fr)); } .metric-card { background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 7px; min-height: 78px; padding: 12px; } .metric-card span { color: var(--muted); font-size: 12px; } .metric-card strong { font-size: 14px; overflow-wrap: anywhere; } .empty-guide { align-items: center; background: #f8fafc; border: 1px dashed var(--line-strong); border-radius: 8px; display: grid; gap: 6px; min-height: 190px; padding: 20px; text-align: center; } .empty-guide h4, .record-card h4 { font-size: 15px; letter-spacing: 0; margin: 0; } .empty-guide p { color: var(--muted); font-size: 13px; margin: 0; } .record-steps { display: grid; gap: 12px; } .record-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 12px; grid-template-columns: 34px minmax(0, 1fr); padding: 12px; } .record-card.ok { border-color: #a8d9bd; } .record-card.warn { border-color: #f0d49e; } .record-card.missing, .record-card.failed { border-color: #efb1ac; } .record-step span { align-items: center; background: #ecf2f8; border-radius: 999px; color: #38516f; display: flex; font-size: 12px; font-weight: 800; height: 28px; justify-content: center; width: 28px; } .record-card-body { display: grid; gap: 10px; min-width: 0; } .record-card-title { align-items: start; display: flex; gap: 10px; justify-content: space-between; } .record-card-title p { color: var(--muted); font-size: 12px; margin-top: 4px; overflow-wrap: anywhere; } .dns-value, .dns-current { display: grid; gap: 7px; } .dns-value > span, .dns-current > span { color: var(--muted); font-size: 12px; } .dns-value .small-button { justify-self: start; } .inline-warnings { display: grid; gap: 6px; margin: 0; padding: 0; } .inline-warnings li { background: #fff8ea; border: 1px solid #f1d49d; border-radius: 6px; color: #684000; font-size: 12px; list-style: none; padding: 8px 9px; } .record-table-wrap { overflow-x: auto; } table { border-collapse: collapse; width: 100%; } th, td { border-bottom: 1px solid var(--line); font-size: 13px; padding: 10px 8px; text-align: left; vertical-align: top; } th { color: var(--muted); font-weight: 600; } code, .mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: 12px; } code { background: #f3f6fa; border: 1px solid #e0e7f1; border-radius: 6px; display: block; max-width: 780px; overflow-wrap: anywhere; padding: 7px; white-space: normal; } .warning-list { display: grid; gap: 8px; margin: 0; padding: 0; } .warning-list li { background: #fff8ea; border: 1px solid #f1d49d; border-radius: 6px; color: #684000; list-style: none; padding: 9px 10px; } .live-list { display: grid; gap: 10px; } .live-row { display: grid; gap: 5px; } .live-row span { color: var(--muted); font-size: 12px; } .send-form { display: grid; gap: 10px; } .button-row { display: flex; flex-wrap: wrap; gap: 8px; } .credential-copy { display: grid; gap: 8px; } .copy-row { align-items: start; display: grid; gap: 7px; grid-template-columns: minmax(72px, auto) minmax(0, 1fr) auto; } .copy-row.inline { grid-template-columns: minmax(0, 1fr) auto; } .copy-row > span { color: var(--muted); font-size: 12px; padding-top: 7px; } .copy-row > p { grid-column: 2 / -1; padding-top: 7px; } .notice { background: #fff5f4; border: 1px solid #f0b6b1; border-radius: 8px; color: var(--red); margin: 0 auto 16px; max-width: 1480px; padding: 10px 12px; } .hidden { display: none; } .empty-state { align-content: center; display: grid; gap: 8px; justify-items: center; min-height: 720px; padding: 20px; text-align: center; } .empty-state p { color: var(--muted); } .api-box { display: grid; gap: 10px; } .api-box pre { background: #101820; border-radius: 8px; color: #e9f2ff; margin: 0; overflow-x: auto; padding: 12px; } .event-list { display: grid; gap: 8px; } .smtp-grid { display: grid; gap: 10px; } .smtp-row { display: grid; gap: 6px; } .smtp-row span { color: var(--muted); font-size: 12px; } .event-row { border-bottom: 1px solid var(--line); display: grid; gap: 4px; padding: 8px 0; } .event-row:last-child { border-bottom: 0; } @media (max-width: 1080px) { .workspace, .grid-two, .guide-hero { grid-template-columns: 1fr; } .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .main-panel { min-height: 520px; } } @media (max-width: 640px) { .app-shell { padding: 12px; } .topbar, .detail-header { align-items: stretch; flex-direction: column; } .detail-actions { justify-content: start; } .form-grid { grid-template-columns: 1fr; } .summary-grid { grid-template-columns: 1fr; } .record-card { grid-template-columns: 1fr; } .record-card-title { align-items: stretch; flex-direction: column; } }