From 5d3f54d7aacab7d5ed600d4b6141321681ae89c2 Mon Sep 17 00:00:00 2001 From: KiriAky 107 Date: Sat, 12 Sep 2026 12:03:23 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E7=BB=9F=E4=B8=80Sync=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=8F=B0=E9=BB=98=E8=AE=A4=E6=B5=85=E8=89=B2=E4=B8=BB?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server sync/console/src/style.css | 125 ++++++++++-------- .../static/assets/index-B8qnzSCe.css | 1 + .../static/assets/index-BS5pfOkS.css | 1 - .../{index-CV7tuz7b.js => index-CsQwWg1J.js} | 0 server sync/sync_server/static/index.html | 4 +- 5 files changed, 70 insertions(+), 61 deletions(-) create mode 100644 server sync/sync_server/static/assets/index-B8qnzSCe.css delete mode 100644 server sync/sync_server/static/assets/index-BS5pfOkS.css rename server sync/sync_server/static/assets/{index-CV7tuz7b.js => index-CsQwWg1J.js} (100%) diff --git a/server sync/console/src/style.css b/server sync/console/src/style.css index 882495f..6b602b5 100644 --- a/server sync/console/src/style.css +++ b/server sync/console/src/style.css @@ -1,19 +1,26 @@ :root { - color-scheme: dark; - --bg: #06100d; - --surface: rgba(13, 29, 24, .84); - --surface-strong: #10241d; - --line: rgba(169, 222, 196, .15); - --line-strong: rgba(169, 222, 196, .28); - --text: #edf7f2; - --muted: #8fa99c; - --mint: #72e0ad; - --mint-bright: #a6f4cf; - --purple: #a991ff; - --danger: #ff8e8e; - --warning: #f5ca72; - --shadow: 0 26px 90px rgba(0, 0, 0, .34); - font-family: Inter, "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; + color-scheme: light; + --bg: #ffffff; + --bg-secondary: #f7f8fa; + --bg-tertiary: #eef0f3; + --surface: #ffffff; + --surface-strong: #fafbfc; + --line: #e4e7eb; + --line-strong: #d6dae0; + --text: #1f2328; + --muted: #656d76; + --tertiary: #9198a0; + --accent: #5b67f1; + --accent-hover: #4a55e0; + --accent-soft: #eef0ff; + --purple: #8b94f5; + --success: #2da44e; + --success-soft: #dafbe3; + --danger: #cf222e; + --danger-soft: #ffebe9; + --warning: #d4a72c; + --shadow: 0 16px 36px rgba(31, 35, 40, .11), 0 4px 12px rgba(31, 35, 40, .05); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "PingFang SC", "Microsoft YaHei", sans-serif; } * { box-sizing: border-box; } @@ -23,19 +30,19 @@ body { min-height: 100vh; color: var(--text); background: - linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), - linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px), - radial-gradient(circle at 48% 0%, #15372c 0, var(--bg) 46%); + linear-gradient(rgba(91,103,241,.025) 1px, transparent 1px), + linear-gradient(90deg, rgba(91,103,241,.025) 1px, transparent 1px), + radial-gradient(circle at 48% 0%, #f4f5ff 0, var(--bg) 48%); background-size: 52px 52px, 52px 52px, auto; overflow-x: hidden; } button, input { font: inherit; } button { color: inherit; } -button:focus-visible, input:focus-visible { outline: 2px solid var(--mint); outline-offset: 3px; } +button:focus-visible, input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; } button:disabled { cursor: default; opacity: .5; } .ambient { position: fixed; border-radius: 50%; filter: blur(80px); pointer-events: none; opacity: .16; } -.ambient-one { width: 420px; height: 420px; background: var(--mint); top: -220px; right: 8%; } +.ambient-one { width: 420px; height: 420px; background: var(--accent); top: -220px; right: 8%; } .ambient-two { width: 360px; height: 360px; background: var(--purple); bottom: -220px; left: -100px; opacity: .1; } .topbar { width: min(1280px, calc(100% - 48px)); @@ -53,95 +60,97 @@ button:disabled { cursor: default; opacity: .5; } .brand strong { font-size: 17px; letter-spacing: -.02em; } .brand small { color: var(--muted); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; } .brand-mark { width: 34px; height: 34px; display: grid; place-items: center; position: relative; transform: rotate(30deg); } -.brand-mark i { position: absolute; display: block; border: 1.5px solid var(--mint); border-radius: 4px; } +.brand-mark i { position: absolute; display: block; border: 1.5px solid var(--accent); border-radius: 4px; } .brand-mark i:nth-child(1) { width: 25px; height: 25px; opacity: .45; } .brand-mark i:nth-child(2) { width: 17px; height: 17px; opacity: .72; } -.brand-mark i:nth-child(3) { width: 8px; height: 8px; background: var(--mint); box-shadow: 0 0 20px rgba(114,224,173,.8); } +.brand-mark i:nth-child(3) { width: 8px; height: 8px; background: var(--accent); box-shadow: 0 0 14px rgba(91,103,241,.38); } .service-strip { display: flex; align-items: center; gap: 9px; } -.status-chip { min-height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; display: flex; align-items: center; gap: 7px; background: rgba(7,18,15,.7); } +.status-chip { min-height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; display: flex; align-items: center; gap: 7px; background: var(--surface); box-shadow: 0 1px 2px rgba(31,35,40,.05); } .status-chip i { width: 7px; height: 7px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 12px currentColor; } .status-chip b { color: var(--muted); font-size: 11px; font-weight: 500; } .status-chip em { font-size: 11px; font-style: normal; } -.status-chip.ok i { background: var(--mint); } +.status-chip.ok i { background: var(--success); } .status-chip.bad i { background: var(--danger); } .status-chip.bad em { color: var(--danger); } -.icon-button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 10px; display: grid; place-items: center; background: rgba(14,31,25,.7); cursor: pointer; transition: .18s ease; } +.icon-button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 9px; display: grid; place-items: center; background: var(--surface); cursor: pointer; transition: .18s ease; } .icon-button:hover { border-color: var(--line-strong); background: var(--surface-strong); transform: translateY(-1px); } .icon-button svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } main { width: min(1180px, calc(100% - 48px)); margin: 0 auto; position: relative; z-index: 1; } .hero { min-height: calc(100vh - 150px); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr); gap: clamp(48px, 8vw, 116px); align-items: center; padding: 64px 0 82px; } .hero-copy { max-width: 680px; } -.eyebrow { color: var(--mint); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; display: flex; align-items: center; gap: 10px; } -.eyebrow span { width: 24px; height: 1px; background: var(--mint); box-shadow: 0 0 10px var(--mint); } +.eyebrow { color: var(--accent); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; display: flex; align-items: center; gap: 10px; } +.eyebrow span { width: 24px; height: 1px; background: var(--accent); } .hero h1, .console-heading h1 { margin: 20px 0; letter-spacing: -.06em; line-height: .99; font-size: clamp(50px, 6.4vw, 86px); font-weight: 620; } -.hero h1 em { font-style: normal; color: transparent; background: linear-gradient(95deg, var(--mint-bright), #82d8c1 47%, var(--purple)); background-clip: text; -webkit-background-clip: text; } +.hero h1 em { font-style: normal; color: transparent; background: linear-gradient(95deg, var(--accent), var(--purple)); background-clip: text; -webkit-background-clip: text; } .hero-copy > p { max-width: 620px; color: var(--muted); font-size: 16px; line-height: 1.85; } -.protocol-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 42px; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: rgba(8,22,17,.45); backdrop-filter: blur(15px); } +.protocol-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 42px; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; background: var(--surface); box-shadow: 0 1px 5px rgba(31,35,40,.03); } .protocol-grid article { padding: 19px 22px; display: grid; gap: 5px; border-right: 1px solid var(--line); } .protocol-grid article:last-child { border-right: 0; } .protocol-grid strong { font-size: 18px; font-weight: 600; } .protocol-grid span { color: var(--muted); font-size: 11px; } -.login-card { padding: 31px; border: 1px solid var(--line-strong); border-radius: 24px; background: linear-gradient(145deg, rgba(18,40,32,.94), rgba(8,21,17,.9)); box-shadow: var(--shadow); position: relative; overflow: hidden; backdrop-filter: blur(25px); } -.card-glow { position: absolute; width: 210px; height: 210px; right: -100px; top: -120px; border-radius: 50%; background: var(--mint); filter: blur(60px); opacity: .16; } +.login-card { padding: 31px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); position: relative; overflow: hidden; } +.card-glow { position: absolute; width: 210px; height: 210px; right: -100px; top: -120px; border-radius: 50%; background: var(--accent); filter: blur(60px); opacity: .08; } .card-heading { display: flex; gap: 14px; align-items: center; margin-bottom: 28px; position: relative; } -.card-heading p, .surface-heading p { margin: 0 0 3px; color: var(--mint); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; } +.card-heading p, .surface-heading p { margin: 0 0 3px; color: var(--accent); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; } .card-heading h2, .surface-heading h2 { margin: 0; font-size: 21px; letter-spacing: -.025em; } -.lock-mark { width: 43px; height: 43px; border-radius: 13px; display: grid; place-items: center; background: rgba(114,224,173,.1); color: var(--mint); border: 1px solid rgba(114,224,173,.18); } +.lock-mark { width: 43px; height: 43px; border-radius: 13px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); border: 1px solid #e2e5ff; } .lock-mark svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; } form { position: relative; } .login-card form { display: grid; gap: 17px; } label { display: grid; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .04em; } -input { width: 100%; color: var(--text); background: rgba(3,12,9,.58); border: 1px solid var(--line); border-radius: 11px; padding: 12px 13px; transition: border-color .18s, background .18s; } -input::placeholder { color: #5f786c; } -input:hover, input:focus { border-color: rgba(114,224,173,.46); background: rgba(3,12,9,.8); } -.primary-button { width: 100%; margin-top: 5px; padding: 13px 16px; border: 0; border-radius: 11px; display: flex; justify-content: center; align-items: center; gap: 8px; color: #062015; background: linear-gradient(100deg, var(--mint-bright), var(--mint)); font-weight: 750; cursor: pointer; box-shadow: 0 10px 35px rgba(114,224,173,.16); transition: .18s ease; } -.primary-button:hover { transform: translateY(-1px); filter: brightness(1.05); } +input { width: 100%; color: var(--text); background: var(--bg); border: 1px solid var(--line); border-radius: 9px; padding: 12px 13px; transition: border-color .18s, background .18s, box-shadow .18s; } +input::placeholder { color: var(--tertiary); } +input:hover { border-color: var(--line-strong); } +input:focus { border-color: var(--accent); background: var(--surface); box-shadow: 0 0 0 3px var(--accent-soft); } +.primary-button { width: 100%; margin-top: 5px; padding: 13px 16px; border: 0; border-radius: 9px; display: flex; justify-content: center; align-items: center; gap: 8px; color: #fff; background: var(--accent); font-weight: 750; cursor: pointer; box-shadow: 0 4px 12px rgba(91,103,241,.24); transition: .18s ease; } +.primary-button:hover { transform: translateY(-1px); background: var(--accent-hover); box-shadow: 0 7px 18px rgba(91,103,241,.28); } .primary-button svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; } -.privacy-note { margin: 18px 0 0; color: #718b7e; font-size: 10px; line-height: 1.5; display: flex; gap: 8px; } -.privacy-note span { color: var(--mint); font-size: 7px; margin-top: 3px; } +.privacy-note { margin: 18px 0 0; color: var(--tertiary); font-size: 10px; line-height: 1.5; display: flex; gap: 8px; } +.privacy-note span { color: var(--success); font-size: 7px; margin-top: 3px; } .console-view { padding: 64px 0 90px; min-height: calc(100vh - 150px); } .console-heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 38px; } .console-heading h1 { font-size: clamp(42px, 5vw, 64px); margin: 13px 0 7px; } .console-heading p { margin: 0; color: var(--muted); } .secondary-button { padding: 10px 15px; border-radius: 10px; border: 1px solid var(--line-strong); background: transparent; cursor: pointer; } -.secondary-button:hover { border-color: var(--mint); color: var(--mint-bright); } -.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); background: rgba(8,22,17,.52); border-radius: 18px; overflow: hidden; margin-bottom: 22px; } +.secondary-button:hover { border-color: var(--accent); background: var(--bg-secondary); color: var(--accent); } +.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); background: var(--surface); border-radius: 13px; overflow: hidden; margin-bottom: 22px; box-shadow: 0 1px 5px rgba(31,35,40,.03); } .metric-grid article { min-height: 134px; padding: 23px; display: flex; flex-direction: column; border-right: 1px solid var(--line); } .metric-grid article:last-child { border-right: 0; } .metric-grid span { color: var(--muted); font-size: 11px; } .metric-grid strong { margin: 12px 0 8px; font-size: 27px; font-weight: 620; letter-spacing: -.04em; } -.metric-grid small { color: #668075; font-size: 10px; } +.metric-grid small { color: var(--tertiary); font-size: 10px; } .content-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 22px; } -.surface { border: 1px solid var(--line); border-radius: 18px; background: var(--surface); padding: 25px; backdrop-filter: blur(18px); } +.surface { border: 1px solid var(--line); border-radius: 13px; background: var(--surface); padding: 25px; box-shadow: 0 1px 5px rgba(31,35,40,.03); } .surface-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; } -.secure-badge { color: var(--mint); background: rgba(114,224,173,.08); border: 1px solid rgba(114,224,173,.18); padding: 6px 9px; border-radius: 999px; font-size: 9px; letter-spacing: .08em; } +.secure-badge { color: var(--accent); background: var(--accent-soft); border: 1px solid #e2e5ff; padding: 6px 9px; border-radius: 999px; font-size: 9px; letter-spacing: .08em; } .surface-intro { margin: -9px 0 19px; color: var(--muted); font-size: 12px; line-height: 1.65; } -.create-form { margin-bottom: 20px; padding: 16px; border-radius: 13px; background: rgba(4,15,11,.42); border: 1px solid var(--line); } +.create-form { margin-bottom: 20px; padding: 16px; border-radius: 13px; background: var(--bg-secondary); border: 1px solid var(--line); } .create-form > div { display: flex; gap: 8px; margin-top: 8px; } .create-form input { padding: 10px 12px; } -.create-form button { border: 0; border-radius: 9px; padding: 0 17px; color: #082016; background: var(--mint); font-weight: 700; cursor: pointer; } +.create-form button { border: 0; border-radius: 9px; padding: 0 17px; color: #fff; background: var(--accent); font-weight: 700; cursor: pointer; } +.create-form button:hover { background: var(--accent-hover); } .vault-list, .device-list { display: grid; gap: 9px; } -.vault-item, .device-item { min-width: 0; border: 1px solid var(--line); background: rgba(6,19,14,.48); border-radius: 13px; padding: 15px 16px; display: flex; align-items: center; gap: 13px; } -.vault-symbol, .device-symbol { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; background: rgba(114,224,173,.08); color: var(--mint); font-weight: 700; } -.device-symbol { color: var(--purple); background: rgba(169,145,255,.08); } +.vault-item, .device-item { min-width: 0; border: 1px solid var(--line); background: var(--surface-strong); border-radius: 9px; padding: 15px 16px; display: flex; align-items: center; gap: 13px; } +.vault-symbol, .device-symbol { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; background: var(--accent-soft); color: var(--accent); font-weight: 700; } +.device-symbol { color: #7443ad; background: #f3eefe; } .item-copy { min-width: 0; flex: 1; } .item-copy strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; } .item-copy small { color: var(--muted); font-size: 10px; } -progress { display: block; width: 100%; height: 4px; margin-top: 9px; border: 0; border-radius: 99px; overflow: hidden; accent-color: var(--mint); } -progress::-webkit-progress-bar { background: rgba(255,255,255,.06); } -progress::-webkit-progress-value { background: linear-gradient(90deg, var(--mint), var(--purple)); } +progress { display: block; width: 100%; height: 4px; margin-top: 9px; border: 0; border-radius: 99px; overflow: hidden; accent-color: var(--accent); } +progress::-webkit-progress-bar { background: var(--bg-tertiary); } +progress::-webkit-progress-value { background: linear-gradient(90deg, var(--accent), var(--purple)); } .item-side { text-align: right; flex: 0 0 auto; } .item-side strong { display: block; font-size: 12px; } .item-side small { color: var(--muted); font-size: 9px; } -.danger-button { border: 1px solid rgba(255,142,142,.25); color: var(--danger); background: rgba(255,142,142,.05); border-radius: 8px; padding: 7px 9px; cursor: pointer; font-size: 10px; } -.danger-button:hover { background: rgba(255,142,142,.12); } +.danger-button { border: 1px solid #ffc1bd; color: var(--danger); background: var(--danger-soft); border-radius: 8px; padding: 7px 9px; cursor: pointer; font-size: 10px; } +.danger-button:hover { background: #ffd8d5; } .revoked { opacity: .48; } .empty-state { min-height: 100px; display: grid; place-items: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 12px; font-size: 12px; } -footer { width: min(1280px, calc(100% - 48px)); min-height: 62px; margin: 0 auto; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; color: #597166; font-size: 9px; letter-spacing: .04em; position: relative; z-index: 1; } -.toast { position: fixed; z-index: 10; right: 24px; bottom: 24px; max-width: min(420px, calc(100% - 48px)); padding: 13px 16px; border: 1px solid var(--line-strong); border-radius: 11px; background: #142b23; box-shadow: var(--shadow); font-size: 12px; } -.toast.error { color: #ffd2d2; border-color: rgba(255,142,142,.35); background: #321a1a; } +footer { width: min(1280px, calc(100% - 48px)); min-height: 62px; margin: 0 auto; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; color: var(--tertiary); font-size: 9px; letter-spacing: .04em; position: relative; z-index: 1; } +.toast { position: fixed; z-index: 10; right: 24px; bottom: 24px; max-width: min(420px, calc(100% - 48px)); padding: 13px 16px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--surface); box-shadow: var(--shadow); font-size: 12px; } +.toast.error { color: var(--danger); border-color: #ffc1bd; background: var(--danger-soft); } @media (max-width: 920px) { .hero { grid-template-columns: 1fr; padding-top: 76px; } diff --git a/server sync/sync_server/static/assets/index-B8qnzSCe.css b/server sync/sync_server/static/assets/index-B8qnzSCe.css new file mode 100644 index 0000000..6f05935 --- /dev/null +++ b/server sync/sync_server/static/assets/index-B8qnzSCe.css @@ -0,0 +1 @@ +:root{color-scheme:light;--bg: #ffffff;--bg-secondary: #f7f8fa;--bg-tertiary: #eef0f3;--surface: #ffffff;--surface-strong: #fafbfc;--line: #e4e7eb;--line-strong: #d6dae0;--text: #1f2328;--muted: #656d76;--tertiary: #9198a0;--accent: #5b67f1;--accent-hover: #4a55e0;--accent-soft: #eef0ff;--purple: #8b94f5;--success: #2da44e;--success-soft: #dafbe3;--danger: #cf222e;--danger-soft: #ffebe9;--warning: #d4a72c;--shadow: 0 16px 36px rgba(31, 35, 40, .11), 0 4px 12px rgba(31, 35, 40, .05);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);background:linear-gradient(rgba(91,103,241,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(91,103,241,.025) 1px,transparent 1px),radial-gradient(circle at 48% 0%,#f4f5ff 0,var(--bg) 48%);background-size:52px 52px,52px 52px,auto;overflow-x:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{cursor:default;opacity:.5}.ambient{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;opacity:.16}.ambient-one{width:420px;height:420px;background:var(--accent);top:-220px;right:8%}.ambient-two{width:360px;height:360px;background:var(--purple);bottom:-220px;left:-100px;opacity:.1}.topbar{width:min(1280px,calc(100% - 48px));height:88px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:13px}.brand>span:last-child{display:grid;gap:1px}.brand strong{font-size:17px;letter-spacing:-.02em}.brand small{color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.brand-mark{width:34px;height:34px;display:grid;place-items:center;position:relative;transform:rotate(30deg)}.brand-mark i{position:absolute;display:block;border:1.5px solid var(--accent);border-radius:4px}.brand-mark i:nth-child(1){width:25px;height:25px;opacity:.45}.brand-mark i:nth-child(2){width:17px;height:17px;opacity:.72}.brand-mark i:nth-child(3){width:8px;height:8px;background:var(--accent);box-shadow:0 0 14px #5b67f161}.service-strip{display:flex;align-items:center;gap:9px}.status-chip{min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:7px;background:var(--surface);box-shadow:0 1px 2px #1f23280d}.status-chip i{width:7px;height:7px;border-radius:50%;background:var(--warning);box-shadow:0 0 12px currentColor}.status-chip b{color:var(--muted);font-size:11px;font-weight:500}.status-chip em{font-size:11px;font-style:normal}.status-chip.ok i{background:var(--success)}.status-chip.bad i{background:var(--danger)}.status-chip.bad em{color:var(--danger)}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;background:var(--surface);cursor:pointer;transition:.18s ease}.icon-button:hover{border-color:var(--line-strong);background:var(--surface-strong);transform:translateY(-1px)}.icon-button svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}main{width:min(1180px,calc(100% - 48px));margin:0 auto;position:relative;z-index:1}.hero{min-height:calc(100vh - 150px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:clamp(48px,8vw,116px);align-items:center;padding:64px 0 82px}.hero-copy{max-width:680px}.eyebrow{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:10px}.eyebrow span{width:24px;height:1px;background:var(--accent)}.hero h1,.console-heading h1{margin:20px 0;letter-spacing:-.06em;line-height:.99;font-size:clamp(50px,6.4vw,86px);font-weight:620}.hero h1 em{font-style:normal;color:transparent;background:linear-gradient(95deg,var(--accent),var(--purple));background-clip:text;-webkit-background-clip:text}.hero-copy>p{max-width:620px;color:var(--muted);font-size:16px;line-height:1.85}.protocol-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:42px;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--surface);box-shadow:0 1px 5px #1f232808}.protocol-grid article{padding:19px 22px;display:grid;gap:5px;border-right:1px solid var(--line)}.protocol-grid article:last-child{border-right:0}.protocol-grid strong{font-size:18px;font-weight:600}.protocol-grid span{color:var(--muted);font-size:11px}.login-card{padding:31px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);position:relative;overflow:hidden}.card-glow{position:absolute;width:210px;height:210px;right:-100px;top:-120px;border-radius:50%;background:var(--accent);filter:blur(60px);opacity:.08}.card-heading{display:flex;gap:14px;align-items:center;margin-bottom:28px;position:relative}.card-heading p,.surface-heading p{margin:0 0 3px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.card-heading h2,.surface-heading h2{margin:0;font-size:21px;letter-spacing:-.025em}.lock-mark{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border:1px solid #e2e5ff}.lock-mark svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.7}form{position:relative}.login-card form{display:grid;gap:17px}label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em}input{width:100%;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:12px 13px;transition:border-color .18s,background .18s,box-shadow .18s}input::placeholder{color:var(--tertiary)}input:hover{border-color:var(--line-strong)}input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.primary-button{width:100%;margin-top:5px;padding:13px 16px;border:0;border-radius:9px;display:flex;justify-content:center;align-items:center;gap:8px;color:#fff;background:var(--accent);font-weight:750;cursor:pointer;box-shadow:0 4px 12px #5b67f13d;transition:.18s ease}.primary-button:hover{transform:translateY(-1px);background:var(--accent-hover);box-shadow:0 7px 18px #5b67f147}.primary-button svg{width:18px;fill:none;stroke:currentColor;stroke-width:2}.privacy-note{margin:18px 0 0;color:var(--tertiary);font-size:10px;line-height:1.5;display:flex;gap:8px}.privacy-note span{color:var(--success);font-size:7px;margin-top:3px}.console-view{padding:64px 0 90px;min-height:calc(100vh - 150px)}.console-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:38px}.console-heading h1{font-size:clamp(42px,5vw,64px);margin:13px 0 7px}.console-heading p{margin:0;color:var(--muted)}.secondary-button{padding:10px 15px;border-radius:10px;border:1px solid var(--line-strong);background:transparent;cursor:pointer}.secondary-button:hover{border-color:var(--accent);background:var(--bg-secondary);color:var(--accent)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--surface);border-radius:13px;overflow:hidden;margin-bottom:22px;box-shadow:0 1px 5px #1f232808}.metric-grid article{min-height:134px;padding:23px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.metric-grid article:last-child{border-right:0}.metric-grid span{color:var(--muted);font-size:11px}.metric-grid strong{margin:12px 0 8px;font-size:27px;font-weight:620;letter-spacing:-.04em}.metric-grid small{color:var(--tertiary);font-size:10px}.content-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:22px}.surface{border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:25px;box-shadow:0 1px 5px #1f232808}.surface-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.secure-badge{color:var(--accent);background:var(--accent-soft);border:1px solid #e2e5ff;padding:6px 9px;border-radius:999px;font-size:9px;letter-spacing:.08em}.surface-intro{margin:-9px 0 19px;color:var(--muted);font-size:12px;line-height:1.65}.create-form{margin-bottom:20px;padding:16px;border-radius:13px;background:var(--bg-secondary);border:1px solid var(--line)}.create-form>div{display:flex;gap:8px;margin-top:8px}.create-form input{padding:10px 12px}.create-form button{border:0;border-radius:9px;padding:0 17px;color:#fff;background:var(--accent);font-weight:700;cursor:pointer}.create-form button:hover{background:var(--accent-hover)}.vault-list,.device-list{display:grid;gap:9px}.vault-item,.device-item{min-width:0;border:1px solid var(--line);background:var(--surface-strong);border-radius:9px;padding:15px 16px;display:flex;align-items:center;gap:13px}.vault-symbol,.device-symbol{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:9px;background:var(--accent-soft);color:var(--accent);font-weight:700}.device-symbol{color:#7443ad;background:#f3eefe}.item-copy{min-width:0;flex:1}.item-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.item-copy small{color:var(--muted);font-size:10px}progress{display:block;width:100%;height:4px;margin-top:9px;border:0;border-radius:99px;overflow:hidden;accent-color:var(--accent)}progress::-webkit-progress-bar{background:var(--bg-tertiary)}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--accent),var(--purple))}.item-side{text-align:right;flex:0 0 auto}.item-side strong{display:block;font-size:12px}.item-side small{color:var(--muted);font-size:9px}.danger-button{border:1px solid #ffc1bd;color:var(--danger);background:var(--danger-soft);border-radius:8px;padding:7px 9px;cursor:pointer;font-size:10px}.danger-button:hover{background:#ffd8d5}.revoked{opacity:.48}.empty-state{min-height:100px;display:grid;place-items:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;font-size:12px}footer{width:min(1280px,calc(100% - 48px));min-height:62px;margin:0 auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--tertiary);font-size:9px;letter-spacing:.04em;position:relative;z-index:1}.toast{position:fixed;z-index:10;right:24px;bottom:24px;max-width:min(420px,calc(100% - 48px));padding:13px 16px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);box-shadow:var(--shadow);font-size:12px}.toast.error{color:var(--danger);border-color:#ffc1bd;background:var(--danger-soft)}@media (max-width: 920px){.hero{grid-template-columns:1fr;padding-top:76px}.hero-copy{max-width:none}.login-card{max-width:560px;width:100%}.content-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-grid article:nth-child(2){border-right:0}.metric-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-width: 620px){.topbar,main,footer{width:min(100% - 28px,1180px)}.topbar{height:74px}.brand small,.status-chip b,footer span:last-child{display:none}.status-chip{padding:0 9px}.hero{padding:52px 0 64px;gap:45px}.hero h1{font-size:43px}.hero-copy>p{font-size:14px}.protocol-grid article{padding:15px 11px}.protocol-grid strong{font-size:14px}.login-card,.surface{padding:21px}.console-heading{align-items:flex-start;gap:18px}.metric-grid{grid-template-columns:1fr}.metric-grid article{min-height:116px;border-right:0;border-bottom:1px solid var(--line)}.metric-grid article:last-child{border-bottom:0}.create-form>div{flex-direction:column}.create-form button{padding:10px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}} diff --git a/server sync/sync_server/static/assets/index-BS5pfOkS.css b/server sync/sync_server/static/assets/index-BS5pfOkS.css deleted file mode 100644 index bf1bd9f..0000000 --- a/server sync/sync_server/static/assets/index-BS5pfOkS.css +++ /dev/null @@ -1 +0,0 @@ -:root{color-scheme:dark;--bg: #06100d;--surface: rgba(13, 29, 24, .84);--surface-strong: #10241d;--line: rgba(169, 222, 196, .15);--line-strong: rgba(169, 222, 196, .28);--text: #edf7f2;--muted: #8fa99c;--mint: #72e0ad;--mint-bright: #a6f4cf;--purple: #a991ff;--danger: #ff8e8e;--warning: #f5ca72;--shadow: 0 26px 90px rgba(0, 0, 0, .34);font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);background:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),radial-gradient(circle at 48% 0%,#15372c 0,var(--bg) 46%);background-size:52px 52px,52px 52px,auto;overflow-x:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}button:disabled{cursor:default;opacity:.5}.ambient{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;opacity:.16}.ambient-one{width:420px;height:420px;background:var(--mint);top:-220px;right:8%}.ambient-two{width:360px;height:360px;background:var(--purple);bottom:-220px;left:-100px;opacity:.1}.topbar{width:min(1280px,calc(100% - 48px));height:88px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:13px}.brand>span:last-child{display:grid;gap:1px}.brand strong{font-size:17px;letter-spacing:-.02em}.brand small{color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.brand-mark{width:34px;height:34px;display:grid;place-items:center;position:relative;transform:rotate(30deg)}.brand-mark i{position:absolute;display:block;border:1.5px solid var(--mint);border-radius:4px}.brand-mark i:nth-child(1){width:25px;height:25px;opacity:.45}.brand-mark i:nth-child(2){width:17px;height:17px;opacity:.72}.brand-mark i:nth-child(3){width:8px;height:8px;background:var(--mint);box-shadow:0 0 20px #72e0adcc}.service-strip{display:flex;align-items:center;gap:9px}.status-chip{min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:7px;background:#07120fb3}.status-chip i{width:7px;height:7px;border-radius:50%;background:var(--warning);box-shadow:0 0 12px currentColor}.status-chip b{color:var(--muted);font-size:11px;font-weight:500}.status-chip em{font-size:11px;font-style:normal}.status-chip.ok i{background:var(--mint)}.status-chip.bad i{background:var(--danger)}.status-chip.bad em{color:var(--danger)}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;background:#0e1f19b3;cursor:pointer;transition:.18s ease}.icon-button:hover{border-color:var(--line-strong);background:var(--surface-strong);transform:translateY(-1px)}.icon-button svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}main{width:min(1180px,calc(100% - 48px));margin:0 auto;position:relative;z-index:1}.hero{min-height:calc(100vh - 150px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:clamp(48px,8vw,116px);align-items:center;padding:64px 0 82px}.hero-copy{max-width:680px}.eyebrow{color:var(--mint);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:10px}.eyebrow span{width:24px;height:1px;background:var(--mint);box-shadow:0 0 10px var(--mint)}.hero h1,.console-heading h1{margin:20px 0;letter-spacing:-.06em;line-height:.99;font-size:clamp(50px,6.4vw,86px);font-weight:620}.hero h1 em{font-style:normal;color:transparent;background:linear-gradient(95deg,var(--mint-bright),#82d8c1 47%,var(--purple));background-clip:text;-webkit-background-clip:text}.hero-copy>p{max-width:620px;color:var(--muted);font-size:16px;line-height:1.85}.protocol-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:42px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#08161173;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.protocol-grid article{padding:19px 22px;display:grid;gap:5px;border-right:1px solid var(--line)}.protocol-grid article:last-child{border-right:0}.protocol-grid strong{font-size:18px;font-weight:600}.protocol-grid span{color:var(--muted);font-size:11px}.login-card{padding:31px;border:1px solid var(--line-strong);border-radius:24px;background:linear-gradient(145deg,#122820f0,#081511e6);box-shadow:var(--shadow);position:relative;overflow:hidden;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px)}.card-glow{position:absolute;width:210px;height:210px;right:-100px;top:-120px;border-radius:50%;background:var(--mint);filter:blur(60px);opacity:.16}.card-heading{display:flex;gap:14px;align-items:center;margin-bottom:28px;position:relative}.card-heading p,.surface-heading p{margin:0 0 3px;color:var(--mint);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.card-heading h2,.surface-heading h2{margin:0;font-size:21px;letter-spacing:-.025em}.lock-mark{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:#72e0ad1a;color:var(--mint);border:1px solid rgba(114,224,173,.18)}.lock-mark svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.7}form{position:relative}.login-card form{display:grid;gap:17px}label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em}input{width:100%;color:var(--text);background:#030c0994;border:1px solid var(--line);border-radius:11px;padding:12px 13px;transition:border-color .18s,background .18s}input::placeholder{color:#5f786c}input:hover,input:focus{border-color:#72e0ad75;background:#030c09cc}.primary-button{width:100%;margin-top:5px;padding:13px 16px;border:0;border-radius:11px;display:flex;justify-content:center;align-items:center;gap:8px;color:#062015;background:linear-gradient(100deg,var(--mint-bright),var(--mint));font-weight:750;cursor:pointer;box-shadow:0 10px 35px #72e0ad29;transition:.18s ease}.primary-button:hover{transform:translateY(-1px);filter:brightness(1.05)}.primary-button svg{width:18px;fill:none;stroke:currentColor;stroke-width:2}.privacy-note{margin:18px 0 0;color:#718b7e;font-size:10px;line-height:1.5;display:flex;gap:8px}.privacy-note span{color:var(--mint);font-size:7px;margin-top:3px}.console-view{padding:64px 0 90px;min-height:calc(100vh - 150px)}.console-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:38px}.console-heading h1{font-size:clamp(42px,5vw,64px);margin:13px 0 7px}.console-heading p{margin:0;color:var(--muted)}.secondary-button{padding:10px 15px;border-radius:10px;border:1px solid var(--line-strong);background:transparent;cursor:pointer}.secondary-button:hover{border-color:var(--mint);color:var(--mint-bright)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#08161185;border-radius:18px;overflow:hidden;margin-bottom:22px}.metric-grid article{min-height:134px;padding:23px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.metric-grid article:last-child{border-right:0}.metric-grid span{color:var(--muted);font-size:11px}.metric-grid strong{margin:12px 0 8px;font-size:27px;font-weight:620;letter-spacing:-.04em}.metric-grid small{color:#668075;font-size:10px}.content-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:22px}.surface{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:25px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.surface-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.secure-badge{color:var(--mint);background:#72e0ad14;border:1px solid rgba(114,224,173,.18);padding:6px 9px;border-radius:999px;font-size:9px;letter-spacing:.08em}.surface-intro{margin:-9px 0 19px;color:var(--muted);font-size:12px;line-height:1.65}.create-form{margin-bottom:20px;padding:16px;border-radius:13px;background:#040f0b6b;border:1px solid var(--line)}.create-form>div{display:flex;gap:8px;margin-top:8px}.create-form input{padding:10px 12px}.create-form button{border:0;border-radius:9px;padding:0 17px;color:#082016;background:var(--mint);font-weight:700;cursor:pointer}.vault-list,.device-list{display:grid;gap:9px}.vault-item,.device-item{min-width:0;border:1px solid var(--line);background:#06130e7a;border-radius:13px;padding:15px 16px;display:flex;align-items:center;gap:13px}.vault-symbol,.device-symbol{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;background:#72e0ad14;color:var(--mint);font-weight:700}.device-symbol{color:var(--purple);background:#a991ff14}.item-copy{min-width:0;flex:1}.item-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.item-copy small{color:var(--muted);font-size:10px}progress{display:block;width:100%;height:4px;margin-top:9px;border:0;border-radius:99px;overflow:hidden;accent-color:var(--mint)}progress::-webkit-progress-bar{background:#ffffff0f}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--mint),var(--purple))}.item-side{text-align:right;flex:0 0 auto}.item-side strong{display:block;font-size:12px}.item-side small{color:var(--muted);font-size:9px}.danger-button{border:1px solid rgba(255,142,142,.25);color:var(--danger);background:#ff8e8e0d;border-radius:8px;padding:7px 9px;cursor:pointer;font-size:10px}.danger-button:hover{background:#ff8e8e1f}.revoked{opacity:.48}.empty-state{min-height:100px;display:grid;place-items:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;font-size:12px}footer{width:min(1280px,calc(100% - 48px));min-height:62px;margin:0 auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#597166;font-size:9px;letter-spacing:.04em;position:relative;z-index:1}.toast{position:fixed;z-index:10;right:24px;bottom:24px;max-width:min(420px,calc(100% - 48px));padding:13px 16px;border:1px solid var(--line-strong);border-radius:11px;background:#142b23;box-shadow:var(--shadow);font-size:12px}.toast.error{color:#ffd2d2;border-color:#ff8e8e59;background:#321a1a}@media (max-width: 920px){.hero{grid-template-columns:1fr;padding-top:76px}.hero-copy{max-width:none}.login-card{max-width:560px;width:100%}.content-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-grid article:nth-child(2){border-right:0}.metric-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-width: 620px){.topbar,main,footer{width:min(100% - 28px,1180px)}.topbar{height:74px}.brand small,.status-chip b,footer span:last-child{display:none}.status-chip{padding:0 9px}.hero{padding:52px 0 64px;gap:45px}.hero h1{font-size:43px}.hero-copy>p{font-size:14px}.protocol-grid article{padding:15px 11px}.protocol-grid strong{font-size:14px}.login-card,.surface{padding:21px}.console-heading{align-items:flex-start;gap:18px}.metric-grid{grid-template-columns:1fr}.metric-grid article{min-height:116px;border-right:0;border-bottom:1px solid var(--line)}.metric-grid article:last-child{border-bottom:0}.create-form>div{flex-direction:column}.create-form button{padding:10px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}} diff --git a/server sync/sync_server/static/assets/index-CV7tuz7b.js b/server sync/sync_server/static/assets/index-CsQwWg1J.js similarity index 100% rename from server sync/sync_server/static/assets/index-CV7tuz7b.js rename to server sync/sync_server/static/assets/index-CsQwWg1J.js diff --git a/server sync/sync_server/static/index.html b/server sync/sync_server/static/index.html index 9e737fc..71990d1 100644 --- a/server sync/sync_server/static/index.html +++ b/server sync/sync_server/static/index.html @@ -6,8 +6,8 @@ OpenNexus Sync Console - - + +