diff --git a/web/brand_management.html b/web/brand_management.html index a64e033..a7172b1 100644 --- a/web/brand_management.html +++ b/web/brand_management.html @@ -14,23 +14,34 @@ --brand: #0f6fff; --ok: #0a7f3f; --warn: #b16a00; + --nav-height: 52px; } * { box-sizing: border-box; } body { margin: 0; + padding-top: var(--nav-height); font-family: "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif; background: radial-gradient(circle at 0 0, #eef4ff 0, var(--bg) 40%), var(--bg); color: var(--text); } + body.modal-open { + overflow: hidden; + } .top-nav { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 1000; background: linear-gradient(180deg, #1f2a3a, #1a2431); border-bottom: 1px solid rgba(255, 255, 255, 0.08); + box-shadow: 0 10px 30px rgba(14, 25, 42, 0.16); } .top-nav-inner { max-width: 1200px; margin: 0 auto; padding: 0 16px; - height: 52px; + height: var(--nav-height); display: flex; align-items: center; gap: 8px; @@ -66,6 +77,9 @@ margin: 24px auto; padding: 0 16px 32px; } + .page-card { + padding: 16px; + } .card { background: var(--card); border: 1px solid var(--line); @@ -84,6 +98,20 @@ font-size: 13px; line-height: 1.5; } + .page-sub { + margin-bottom: 0; + max-width: 720px; + } + .compact-note-list { + margin: 0; + padding-left: 18px; + color: var(--sub); + font-size: 13px; + line-height: 1.65; + } + .compact-note-list li + li { + margin-top: 4px; + } label { display: block; margin: 10px 0 6px; @@ -128,18 +156,39 @@ align-items: center; margin-bottom: 10px; } - .pill-btn { - border: 1px solid #b9cae8; - border-radius: 999px; - padding: 4px 10px; - background: #f5f9ff; - color: #254575; - cursor: pointer; - font-size: 12px; - font-weight: 600; + .brand-toolbar { + display: grid; + gap: 12px; } - .pill-btn:hover { - background: #ebf3ff; + .brand-toolbar-row { + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 10px; + } + .brand-toolbar-btn { + width: 100%; + min-height: 46px; + border: 1px solid #c9d7ee; + border-radius: 12px; + padding: 10px 14px; + background: #f3f7ff; + color: #24416d; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72); + transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease; + } + .brand-toolbar-btn:hover { + background: #eaf1ff; + border-color: #abc0e7; + transform: translateY(-1px); + } + .brand-toolbar-btn:active { + transform: translateY(0); + } + .brand-toolbar-btn.stat-btn { + background: #f7faff; + } + .brand-toolbar-btn.action-btn { + background: #eef3fc; } .table-wrap { overflow: auto; @@ -240,7 +289,7 @@ display: grid; gap: 8px; position: sticky; - top: 12px; + top: calc(var(--nav-height) + 20px); } .tab-btn { width: 100%; @@ -257,6 +306,58 @@ .manage-panel.hidden { display: none; } + .panel-stack { + display: grid; + gap: 12px; + } + .section-card { + padding: 16px; + } + .section-card .title:last-child, + .section-card .sub:last-child { + margin-bottom: 0; + } + .collapse-card { + padding: 0; + overflow: hidden; + } + .collapse-card summary { + list-style: none; + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 14px 16px; + font-weight: 700; + color: #1f355a; + cursor: pointer; + } + .collapse-card summary::-webkit-details-marker { + display: none; + } + .collapse-card summary::after { + content: "展开"; + flex: 0 0 auto; + border: 1px solid #c8d6ee; + border-radius: 999px; + padding: 3px 10px; + font-size: 12px; + font-weight: 600; + color: #47648f; + background: #f6f9ff; + } + .collapse-card[open] summary::after { + content: "收起"; + } + .collapse-card[open] summary { + border-bottom: 1px solid var(--line); + background: #fbfcff; + } + .collapse-body { + padding: 14px 16px 16px; + display: grid; + gap: 14px; + } .sync-log { min-height: 240px; white-space: pre-wrap; @@ -269,6 +370,9 @@ padding: 10px; margin: 0; } + .sync-log.compact { + min-height: 180px; + } .sync-schedule-card { margin: 14px 0; padding: 12px; @@ -304,36 +408,112 @@ inset: 0; background: rgba(10, 20, 38, 0.45); display: flex; - align-items: center; + align-items: flex-start; justify-content: center; - padding: 16px; - z-index: 999; + padding: calc(var(--nav-height) + 24px) 16px 20px; + overflow-y: auto; + z-index: 10000; } .modal-backdrop.hidden { display: none !important; } .modal-card { width: min(920px, 100%); - max-height: 90vh; - overflow: auto; + max-height: calc(100vh - var(--nav-height) - 44px); + min-height: min(680px, calc(100vh - var(--nav-height) - 44px)); + display: flex; + flex-direction: column; + gap: 12px; + overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24); } + .modal-head { + display: grid; + gap: 8px; + padding-bottom: 2px; + border-bottom: 1px solid #eef2f8; + } + .modal-card .title, + .modal-card .sub { + margin-bottom: 0; + } + .modal-content { + flex: 1 1 auto; + min-height: 320px; + overflow: auto; + display: flex; + } + .modal-list { + width: 100%; + height: 100%; + overflow: auto; + border: 1px solid var(--line); + border-radius: 10px; + background: #fcfdff; + padding: 12px; + } + .modal-list-grid { + display: grid; + gap: 10px; + } + .modal-list-item { + border: 1px solid #dbe4f2; + border-radius: 10px; + background: #fff; + padding: 12px 14px; + display: grid; + gap: 8px; + } + .modal-list-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; + } + .modal-list-title { + font-size: 16px; + font-weight: 700; + color: #203554; + } + .modal-list-meta { + font-size: 12px; + color: #62728a; + } + .modal-list-tags { + display: flex; + flex-wrap: wrap; + gap: 6px; + } + .modal-list-empty { + height: 100%; + display: grid; + place-items: center; + color: var(--sub); + font-size: 14px; + } .modal-card textarea { width: 100%; - min-height: 360px; + min-height: 420px; + height: auto; + resize: none; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.45; border: 1px solid var(--line); border-radius: 10px; padding: 10px; + overflow: auto; + background: #fcfdff; } .modal-card pre { - min-height: 240px; + min-height: 100%; + height: 100%; + width: 100%; white-space: pre-wrap; word-break: break-word; font-size: 12px; @@ -343,6 +523,15 @@ border-radius: 10px; padding: 10px; margin: 0; + overflow: auto; + } + .modal-actions { + display: flex; + justify-content: flex-end; + gap: 8px; + padding-top: 10px; + border-top: 1px solid #eef2f8; + flex: 0 0 auto; } @media (max-width: 1020px) { .manage-layout { @@ -353,6 +542,24 @@ grid-template-columns: repeat(4, minmax(0, 1fr)); } } + @media (max-width: 720px) { + .brand-toolbar-row { + grid-template-columns: 1fr; + } + .brand-toolbar-btn, + .brand-toolbar-btn.stat-btn, + .brand-toolbar-btn.action-btn { + width: 100%; + min-width: 0; + } + .modal-backdrop { + padding: calc(var(--nav-height) + 12px) 12px 12px; + } + .modal-card { + max-height: calc(100vh - var(--nav-height) - 24px); + min-height: calc(100vh - var(--nav-height) - 24px); + } + }
@@ -366,8 +573,9 @@把常用操作留在前面,把低频说明收起来。