:root { color-scheme:dark; --ink:#f6f8fb; --muted:rgba(235,241,248,.66); --line:rgba(255,255,255,.14); --glass:rgba(8,17,31,.62); --glass-strong:rgba(8,17,31,.78); --accent:#7de2d1; --accent-2:#b7f4ea; --accent-ink:#07101f; --page-base:#07101f; --dialog-bg:#0b1625; --shadow:0 22px 64px rgba(0,0,0,.28); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; min-height:100vh; overflow-x:hidden; color:var(--ink); font-family:Inter,"SF Pro Display","PingFang SC","Microsoft YaHei",system-ui,sans-serif; background:var(--page-base); }
button,input,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
.backdrop { position:fixed; inset:-3%; z-index:-3; opacity:.3; background-color:var(--page-base); background-image:linear-gradient(135deg,#10253d,#07101f 65%,#163a45); background-size:cover; background-position:center; transform:scale(1.03); transition:opacity .55s ease,background-image .6s ease; }
.backdrop.ready { opacity:1; }
.veil { position:fixed; inset:0; z-index:-2; background:radial-gradient(circle at 20% 8%,rgba(31,77,103,.08),transparent 36%),linear-gradient(180deg,rgba(3,9,18,.38),rgba(3,9,18,.79) 76%,#07101f 110%); backdrop-filter:saturate(.88); }
body[data-background-mode="bing"] .veil { background:radial-gradient(circle at 18% 7%,rgba(255,255,255,.08),transparent 34%),linear-gradient(180deg,rgba(3,9,18,.14),rgba(3,9,18,.38) 72%,rgba(3,9,18,.56)); backdrop-filter:saturate(1.04) brightness(1.04); }
body[data-background-tone="light"] { color-scheme:light; --ink:#172438; --muted:rgba(23,36,56,.7); --line:rgba(31,65,91,.28); --glass:rgba(255,255,255,.76); --glass-strong:rgba(255,255,255,.86); --accent:#197b70; --accent-2:#12645b; --accent-ink:#fff; --page-base:#e8f0f6; --dialog-bg:#f4f8fb; --shadow:0 16px 42px rgba(45,72,94,.16); }
body[data-background-tone="light"] .veil { background:radial-gradient(circle at 20% 8%,rgba(255,255,255,.32),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.08),rgba(234,242,248,.38) 72%,rgba(225,235,242,.68)); backdrop-filter:saturate(.96); }
body[data-background-tone="light"] .icon-button,body[data-background-tone="light"] .search { background:rgba(255,255,255,.72); }
body[data-background-tone="light"] .filters { background:rgba(255,255,255,.28); }
body[data-background-tone="light"] .spotlight,body[data-background-tone="light"] .link-library,body[data-background-tone="light"] .publish-panel { border-color:rgba(31,65,91,.3); box-shadow:0 16px 42px rgba(45,72,94,.16),inset 0 1px 0 rgba(255,255,255,.72); }
body[data-background-tone="light"] .project-card { border-color:rgba(31,65,91,.22); background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,255,255,.54)); box-shadow:0 5px 16px rgba(45,72,94,.08); }
body[data-background-tone="light"] .project-card:hover,body[data-background-tone="light"] .link-card:hover { background:rgba(255,255,255,.82); }
body[data-background-tone="light"] .link-card,body[data-background-tone="light"] .publish-item,body[data-background-tone="light"] .custom-link-row { border:1px solid rgba(31,65,91,.17); background:rgba(255,255,255,.58); }
body[data-background-tone="light"] .account-panel,body[data-background-tone="light"] .background-panel { border-color:rgba(31,65,91,.24); background:rgba(255,255,255,.48); }
body[data-background-tone="light"] .icon-button:hover { border-color:rgba(25,123,112,.5); background:rgba(255,255,255,.9); }
body[data-background-tone="light"] footer { color:var(--muted); }
body[data-background-tone="light"] .filter:hover,body[data-background-tone="light"] .filter.active,body[data-background-tone="light"] .primary-button,body[data-background-tone="light"] .account-submit { color:var(--accent-ink); }
.shell { width:min(1180px,calc(100% - 40px)); margin:0 auto; padding:18px 0 24px; }
.topbar { display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; gap:10px; font-weight:720; letter-spacing:-.02em; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; color:var(--accent-ink); background:var(--accent); border-radius:11px 11px 11px 3px; box-shadow:0 8px 24px rgba(125,226,209,.28); }
.top-actions { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:.84rem; }
.icon-button { display:grid; place-items:center; width:36px; height:36px; padding:0; color:var(--ink); border:1px solid var(--line); border-radius:11px; background:rgba(6,14,27,.46); cursor:pointer; backdrop-filter:blur(14px); }
.icon-button svg { width:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.icon-button:hover { border-color:rgba(255,255,255,.34); background:rgba(125,226,209,.12); }
.intro { padding:28px 0 24px; text-align:left; }
.eyebrow,.section-kicker { margin:0 0 5px; color:var(--accent-2); font-size:.7rem; font-weight:780; letter-spacing:.17em; text-transform:uppercase; }
h1,h2,p { margin-top:0; }
h1 { margin-bottom:0; font-size:clamp(2.35rem,5vw,4rem); line-height:1; letter-spacing:-.06em; }
h2 { margin-bottom:0; font-size:clamp(1.15rem,1.8vw,1.48rem); letter-spacing:-.035em; }
.search-drawer { max-height:0; overflow:hidden; opacity:0; transition:max-height .25s ease,opacity .2s ease,padding .25s ease; }
.search-drawer.open { max-height:78px; padding-top:14px; opacity:1; }
.search { display:flex; align-items:center; width:min(660px,100%); height:52px; margin-left:auto; padding:0 14px 0 17px; border:1px solid rgba(255,255,255,.22); border-radius:16px; background:rgba(7,15,28,.78); box-shadow:var(--shadow); backdrop-filter:blur(22px); }
.search:focus-within { border-color:rgba(125,226,209,.75); box-shadow:0 0 0 4px rgba(125,226,209,.1),var(--shadow); }
.search svg { width:20px; flex:0 0 auto; fill:none; stroke:var(--muted); stroke-width:1.8; }
.search input { min-width:0; flex:1; padding:0 12px; color:var(--ink); border:0; outline:0; background:transparent; font-size:.94rem; }
.search input::placeholder { color:rgba(235,241,248,.46); }
.search select { padding:5px 5px; color:var(--muted); border:0; outline:0; background:transparent; font-size:.78rem; }
.search option { color:#152030; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.main-stack,.side-stack { display:grid; gap:16px; }
.spotlight,.link-library,.publish-panel { border:1px solid var(--line); border-radius:22px; background:var(--glass); box-shadow:var(--shadow); backdrop-filter:blur(24px) saturate(1.12); }
.spotlight,.link-library,.publish-panel { padding:20px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.project-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.project-card { position:relative; min-width:0; min-height:108px; padding:14px; overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:15px; background:linear-gradient(145deg,rgba(255,255,255,.1),rgba(255,255,255,.035)); transition:.2s ease; }
.project-card:hover { transform:translateY(-3px); border-color:rgba(125,226,209,.55); background:linear-gradient(145deg,rgba(125,226,209,.16),rgba(255,255,255,.035)); }
.project-number { color:var(--accent); font:700 .68rem/1 ui-monospace,monospace; }
.project-card h3 { margin:23px 0 3px; overflow:hidden; font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }
.project-card p { margin-bottom:0; overflow:hidden; color:var(--muted); font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.project-arrow { position:absolute; top:11px; right:12px; color:var(--muted); }
.library-actions { display:flex; align-items:center; gap:8px; }
.filters { display:flex; gap:3px; padding:3px; border:1px solid var(--line); border-radius:10px; background:rgba(0,0,0,.12); }
.filter { padding:6px 9px; color:var(--muted); border:0; border-radius:7px; background:transparent; cursor:pointer; font-size:.74rem; }
.filter:hover,.filter.active { color:var(--accent-ink); background:var(--accent); }
.text-button { padding:7px 9px; color:var(--accent); border:1px solid var(--line); border-radius:9px; background:transparent; cursor:pointer; font-size:.74rem; }
.text-button:hover { background:rgba(125,226,209,.1); }
.link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.link-card { display:flex; align-items:center; gap:10px; min-width:0; padding:10px; border:1px solid transparent; border-radius:13px; background:rgba(255,255,255,.052); transition:.2s ease; }
.link-card:hover { transform:translateY(-2px); border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.095); }
.link-icon { display:grid; place-items:center; width:32px; height:32px; flex:0 0 auto; color:#07101f; border-radius:9px; background:var(--icon,var(--accent)); font-size:.82rem; font-weight:820; }
.link-copy { min-width:0; }
.link-copy strong,.link-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.link-copy strong { font-size:.83rem; }
.link-copy small { margin-top:1px; color:var(--muted); font-size:.68rem; }
.side-stack { position:sticky; top:16px; }
.publish-panel { background:var(--glass-strong); }
.publish-list { display:grid; gap:7px; }
.publish-item { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 11px; border-radius:12px; background:rgba(255,255,255,.052); }
.publish-item:hover { background:rgba(125,226,209,.12); }
.publish-name { display:flex; align-items:center; gap:9px; font-size:.82rem; font-weight:650; }
.publish-dot { width:7px; height:7px; border-radius:50%; background:var(--dot,var(--accent)); box-shadow:0 0 0 3px color-mix(in srgb,var(--dot,var(--accent)) 16%,transparent); }
.publish-item > span:last-child { color:var(--muted); }
footer { display:flex; justify-content:space-between; gap:20px; padding:18px 4px 0; color:rgba(255,255,255,.48); font-size:.72rem; }
footer a:hover { color:var(--accent); }
.settings-dialog { width:min(680px,calc(100% - 28px)); max-height:min(88vh,820px); padding:22px; overflow:auto; color:var(--ink); border:1px solid var(--line); border-radius:20px; background:var(--dialog-bg); box-shadow:0 30px 90px rgba(0,0,0,.55); }
.settings-dialog::backdrop { background:rgba(2,7,14,.68); backdrop-filter:blur(7px); }
.dialog-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:18px; }
.dialog-close { width:34px; height:34px; color:var(--ink); border:1px solid var(--line); border-radius:10px; background:transparent; cursor:pointer; font-size:1.35rem; }
.account-panel { margin-bottom:16px; padding:13px; border:1px solid var(--line); border-radius:13px; background:rgba(125,226,209,.065); }
.account-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.account-label { margin:0 0 2px; color:var(--ink); font-size:.82rem; font-weight:760; }
.account-state { margin:0; color:var(--muted); font-size:.72rem; }
.sync-badge { flex:0 0 auto; padding:4px 8px; color:var(--muted); border:1px solid var(--line); border-radius:999px; font-size:.68rem; }
.sync-badge[data-tone="success"] { color:var(--accent-2); border-color:rgba(125,226,209,.36); background:rgba(125,226,209,.1); }
.sync-badge[data-tone="error"] { color:#ffb6ba; border-color:rgba(255,142,150,.35); background:rgba(255,142,150,.09); }
.account-form { display:grid; grid-template-columns:1fr 1fr auto; gap:8px; margin-top:12px; }
.account-form label { display:grid; gap:5px; color:var(--muted); font-size:.72rem; }
.account-form input { width:100%; height:38px; padding:0 10px; color:var(--ink); border:1px solid var(--line); border-radius:9px; outline:0; background:rgba(255,255,255,.055); }
.account-submit,.secondary-button { min-height:38px; padding:0 12px; border-radius:9px; cursor:pointer; font-size:.72rem; font-weight:720; }
.account-submit { align-self:end; color:#07101f; border:0; background:var(--accent); }
.account-submit:disabled { opacity:.55; cursor:not-allowed; }
.account-actions { display:flex; gap:8px; margin-top:12px; }
.secondary-button { color:var(--ink); border:1px solid var(--line); background:rgba(255,255,255,.045); }
.secondary-button:hover { background:rgba(255,255,255,.09); }
.secondary-button.danger { color:#ffb6ba; }
.account-help { margin:9px 0 0; color:var(--muted); font-size:.68rem; line-height:1.5; }
.background-panel { margin-bottom:16px; padding:13px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.035); }
.setting-section-head { margin-bottom:10px; }
.background-choice { color:var(--ink); border:1px solid var(--line); background:rgba(255,255,255,.035); cursor:pointer; }
.background-choice[aria-pressed="true"] { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent); }
.bing-choice { display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:10px; width:100%; padding:8px; border-radius:11px; text-align:left; }
.bing-choice strong,.bing-choice small { display:block; }
.bing-choice strong { font-size:.76rem; }
.bing-choice small { margin-top:2px; color:var(--muted); font-size:.66rem; }
.bing-choice i { padding:3px 6px; color:var(--accent-2); border-radius:999px; background:color-mix(in srgb,var(--accent) 11%,transparent); font-size:.64rem; font-style:normal; }
.background-swatch { display:block; width:100%; height:30px; border-radius:8px; background:linear-gradient(135deg,var(--bg-a),var(--bg-b) 52%,var(--bg-c)); box-shadow:inset 0 0 0 1px rgba(255,255,255,.22); }
.bing-swatch { height:36px; background:linear-gradient(135deg,#1c5874,#efb48d 48%,#152c54); }
.background-groups { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:11px; }
.background-group > p { margin:0 0 6px; color:var(--muted); font-size:.68rem; }
.background-options { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.background-choice.compact { display:grid; gap:4px; min-width:0; padding:5px; border-radius:9px; }
.background-choice.compact small { overflow:hidden; font-size:.64rem; text-overflow:ellipsis; white-space:nowrap; }
.link-form { display:grid; grid-template-columns:1fr 1.5fr 1fr .75fr; gap:10px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.link-form label { display:grid; gap:5px; color:var(--muted); font-size:.72rem; }
.link-form input,.link-form select { width:100%; height:40px; padding:0 10px; color:var(--ink); border:1px solid var(--line); border-radius:9px; outline:0; background:rgba(255,255,255,.055); }
.link-form select option { color:#152030; }
.form-actions { display:flex; grid-column:1/-1; gap:8px; }
.primary-button { min-width:140px; height:40px; color:var(--accent-ink); border:0; border-radius:10px; background:var(--accent); cursor:pointer; font-weight:760; }
.managed-list-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:13px; color:var(--muted); font-size:.72rem; }
.custom-link-list { display:grid; gap:7px; max-height:210px; margin-top:14px; overflow:auto; }
.custom-link-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border-radius:10px; background:rgba(255,255,255,.05); }
.custom-link-row span { min-width:0; }
.custom-link-row strong,.custom-link-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.custom-link-row small,.empty-note,.dialog-note { color:var(--muted); font-size:.7rem; }
.custom-link-actions { display:flex; flex:0 0 auto; gap:7px; }
.custom-link-row button { color:var(--accent-2); border:0; background:transparent; cursor:pointer; font-size:.72rem; }
.custom-link-row button.danger { color:#ff9299; }
.empty-note { margin:8px 0; }
.dialog-note { margin:14px 0 0; }
.toast { position:fixed; left:50%; bottom:26px; z-index:8; padding:9px 15px; opacity:0; pointer-events:none; color:#07101f; border-radius:10px; background:var(--accent); font-size:.8rem; font-weight:700; transform:translate(-50%,16px); transition:.22s ease; }
.toast.show { opacity:1; transform:translate(-50%,0); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media (max-width:900px) {
  .dashboard-grid { grid-template-columns:1fr; }
  .side-stack { position:static; grid-template-columns:1fr; }
  .project-grid { grid-template-columns:repeat(2,1fr); }
  .link-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:640px) {
  .shell { width:min(100% - 24px,1180px); padding-top:13px; }
  .date { display:none; }
  .brand > span:last-child { font-size:.9rem; }
  .intro { padding:24px 0 19px; }
  h1 { font-size:clamp(2.25rem,12vw,3.4rem); }
  .search-drawer.open { max-height:74px; }
  .search { height:48px; }
  .dashboard-grid,.main-stack,.side-stack { gap:12px; }
  .spotlight,.link-library,.publish-panel { padding:16px; border-radius:18px; }
  .project-grid { display:flex; margin:0 -16px; padding:0 16px 3px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .project-grid::-webkit-scrollbar { display:none; }
  .project-card { min-width:46vw; min-height:102px; scroll-snap-align:start; }
  .section-heading { align-items:flex-start; margin-bottom:13px; }
  .library-actions { align-items:flex-end; flex-direction:column-reverse; }
  .filters { max-width:100%; overflow-x:auto; }
  .link-grid { grid-template-columns:1fr 1fr; }
  .side-stack { grid-template-columns:1fr; }
  .publish-list { grid-template-columns:1fr 1fr; }
  .publish-item:last-child { grid-column:1/-1; }
  .link-form { grid-template-columns:1fr; }
  .background-groups { grid-template-columns:1fr; }
  .account-form { grid-template-columns:1fr; }
  .account-submit { align-self:stretch; }
  .form-actions { grid-column:auto; }
  footer { flex-direction:column; gap:5px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; } }
