:root { --green:#064b3b; --green2:#0a6250; --gold:#d6a84b; --ink:#17211d; --muted:#687970; --line:#d8e3dd; --bg:#f7f8f4; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif; }
button,a { font:inherit; }
.site-head { height:74px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; gap:36px; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.brand { display:flex; align-items:center; gap:11px; color:var(--ink); text-decoration:none; }
.brand img { width:43px; height:43px; }
.brand span,.auth-brand div { display:grid; }
.brand b { font-size:20px; }
.brand small,.eyebrow { color:#a47627; }
.site-head nav { display:flex; align-items:center; gap:8px; flex:1; }
.site-head nav a,.site-head nav button { border:0; background:transparent; color:#47605a; text-decoration:none; padding:10px 13px; border-radius:10px; cursor:pointer; }
.site-head nav .active,.site-head nav a:hover { background:#edf5f1; color:var(--green); font-weight:700; }
.account { border:1px solid #bdd0c7; border-radius:999px; background:#fff; padding:9px 17px; color:var(--green); font-weight:800; }
.hero { padding:62px clamp(24px,6vw,96px) 46px; background:linear-gradient(120deg,#052f25,#0a5b48); color:#fff; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr); gap:70px; align-items:end; }
.hero h1 { font-size:clamp(38px,5vw,66px); line-height:1.08; max-width:850px; margin:12px 0 18px; }
.hero p { max-width:760px; color:#d8e8e2; font-size:18px; }
.eyebrow { text-transform:uppercase; letter-spacing:.12em; font-weight:900; font-size:12px; }
.hero-stats { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,255,255,.18); border-radius:18px; overflow:hidden; }
.hero-stats article { padding:22px 16px; background:rgba(255,255,255,.07); display:grid; text-align:center; }
.hero-stats article+article { border-left:1px solid rgba(255,255,255,.16); }
.hero-stats b { font-size:27px; }
.hero-stats span { font-size:12px; color:#c6d8d1; }
.content-grid { padding:34px clamp(24px,5vw,76px) 70px; display:grid; grid-template-columns:300px minmax(0,1fr); gap:26px; }
.create-card,.library,.features { background:#fff; border:1px solid var(--line); border-radius:20px; padding:26px; box-shadow:0 14px 35px rgba(17,48,39,.06); }
h2 { margin:6px 0 12px; font-size:27px; }
.create-card p,.feature-grid p { color:var(--muted); }
.create-card p { margin-bottom:24px; }
.create-card hr { border:0; border-top:1px solid var(--line); margin:20px 0; }
.primary,.secondary { width:100%; display:block; text-align:center; text-decoration:none; border-radius:12px; padding:13px 16px; margin-top:10px; font-weight:850; cursor:pointer; }
.primary { border:1px solid var(--green); background:var(--green); color:#fff; }
.secondary { border:1px solid #bfd0c8; background:#fff; color:var(--green); }
.text-btn { width:100%; border:0; background:transparent; color:var(--green2); font-weight:800; margin-top:20px; cursor:pointer; }
.section-head { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.library-actions { display:flex; align-items:center; gap:10px; }
.filters { display:flex; gap:5px; padding:4px; background:#eef4f1; border-radius:12px; }
.filters button { border:0; background:transparent; padding:8px 13px; border-radius:9px; color:var(--muted); cursor:pointer; }
.filters .active { background:#fff; color:var(--green); font-weight:800; }
.view-switch { display:flex; gap:3px; padding:4px; border:1px solid var(--line); border-radius:12px; }
.view-switch button { width:34px; height:32px; border:0; border-radius:8px; background:transparent; color:var(--muted); cursor:pointer; }
.view-switch .active { background:var(--green); color:#fff; }
.event-list { display:grid; gap:6px; margin-top:18px; }
.event-item { min-height:46px; padding:9px 11px; display:grid; grid-template-columns:1fr auto; gap:1px 10px; text-align:left; border:1px solid transparent; border-radius:11px; background:#f5f8f6; color:var(--ink); cursor:pointer; }
.event-item span { font-weight:750; }
.event-item b { color:var(--green2); }
.event-item small { grid-column:1/-1; color:var(--muted); }
.event-item.active { border-color:#8eb7a8; background:#e8f3ee; color:var(--green); }
.project-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin-top:20px; }
.project-card { border:1px solid var(--line); border-radius:15px; padding:18px; display:grid; grid-template-columns:48px 1fr; gap:14px; background:#fff; }
.project-kind { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:#e8f3ee; color:var(--green); font-size:20px; font-weight:900; }
.project-kind.jumping { background:#fff1dc; color:#9a6414; }
.project-card span,.project-card p { color:var(--muted); font-size:12px; }
.project-card h3 { margin:2px 0; }
.project-main { min-width:0; }
.project-meta { display:flex; justify-content:space-between; gap:8px; }
.sync-badge { padding:2px 7px; border-radius:999px; white-space:nowrap; }
.sync-badge.local { background:#f0f2f1; }.sync-badge.synced { background:#e0f4e9; color:#16724e; }.sync-badge.pending { background:#fff0d9; color:#915f13; }
.project-actions { grid-column:2; display:flex; align-items:center; gap:7px; }
.project-actions a,.project-actions button { color:var(--green2); font-weight:800; text-decoration:none; border:0; background:transparent; padding:0; cursor:pointer; }
.project-actions button+button { border-left:1px solid var(--line); padding-left:7px; }
.project-grid.table-view { grid-template-columns:1fr; gap:0; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.project-grid.table-view .project-card { grid-template-columns:44px minmax(220px,1fr) auto; align-items:center; border:0; border-radius:0; padding:13px 16px; }
.project-grid.table-view .project-card+.project-card { border-top:1px solid var(--line); }
.project-grid.table-view .project-actions { grid-column:3; grid-row:1; }
.empty { grid-column:1/-1; padding:60px; text-align:center; border:1px dashed #cbd8d2; border-radius:14px; color:var(--muted); }
.features { margin:34px clamp(24px,5vw,76px) 70px; }
.workspace-view { margin:34px clamp(24px,5vw,76px) 70px; padding:28px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 14px 35px rgba(17,48,39,.06); }
.section-copy,.muted { color:var(--muted); }
.sync-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:22px 0; }
.sync-summary article { padding:18px; display:grid; border:1px solid var(--line); border-radius:14px; background:#f8fbf9; }
.sync-summary b { font-size:24px; color:var(--green); }.sync-summary span { color:var(--muted); font-size:12px; }
.management-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.management-grid>section { border:1px solid var(--line); border-radius:15px; padding:18px; }
.manage-list,.version-list { display:grid; gap:8px; }
.manage-list article,.version-list article { display:flex; align-items:center; gap:8px; padding:11px; border-radius:10px; background:#f5f8f6; }
.manage-list article div,.version-list article div { display:grid; flex:1; }.manage-list small,.version-list small { color:var(--muted); }
.manage-list button,.version-list button { border:1px solid #bfd0c8; border-radius:8px; padding:7px 9px; background:#fff; color:var(--green); cursor:pointer; }
.feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:25px 0; }
.feature-grid article { padding:22px; border:1px solid var(--line); border-radius:15px; background:#f8fbf9; }
.feature-grid b { font-size:18px; }
.compact { width:auto; display:inline-block; }
.modal { position:fixed; inset:0; display:grid; place-items:center; z-index:20; }
.modal[aria-hidden=true] { display:none; }
.backdrop { position:absolute; inset:0; border:0; background:rgba(3,20,15,.58); }
.dialog { position:relative; width:min(470px,calc(100vw - 30px)); background:#fff; border-radius:22px; padding:30px; box-shadow:0 24px 80px rgba(0,0,0,.3); }
.manage-dialog { width:min(620px,calc(100vw - 30px)); max-height:min(780px,calc(100vh - 40px)); overflow:auto; }
.close { position:absolute; right:18px; top:15px; border:0; background:transparent; font-size:27px; color:var(--muted); }
.auth-brand { display:flex; gap:14px; align-items:center; }
.auth-brand img { width:54px; }
.auth-brand b { font-size:22px; }
.auth-brand small { color:var(--muted); }
.tabs { display:grid; grid-template-columns:1fr 1fr; background:#edf4f1; border-radius:12px; padding:4px; margin:24px 0 16px; }
.tabs button { border:0; background:transparent; border-radius:9px; padding:10px; }
.tabs .active { background:var(--green); color:#fff; font-weight:800; }
form label { display:grid; gap:6px; font-weight:700; margin:12px 0; }
form input { width:100%; height:48px; border:1px solid #ccd9d3; border-radius:11px; padding:0 13px; font:inherit; }
.field { display:grid; gap:7px; font-weight:750; }.field select { height:48px; border:1px solid #ccd9d3; border-radius:11px; padding:0 12px; background:#fff; }
.manage-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:18px; }.manage-actions .primary { grid-column:1/-1; }
.decision-grid,.source-list { display:grid; gap:9px; margin-top:20px; }.decision-grid button,.source-list button { border:1px solid var(--line); border-radius:12px; padding:14px; background:#f8fbf9; color:var(--green); text-align:left; font-weight:800; cursor:pointer; }.source-list button { display:grid; }.source-list small { color:var(--muted); }
.share-url { margin:18px 0; padding:13px; border:1px solid var(--line); border-radius:10px; background:#f4f8f5; overflow-wrap:anywhere; color:var(--green); }
.share-list { display:grid; gap:10px; margin:18px 0; }
.share-list article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:12px; background:#f8fbf9; }
.share-list article>div:first-child { min-width:0; display:grid; gap:3px; }
.share-list small { color:var(--muted); }
.share-list code { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--green2); }
.share-list button { border:1px solid #bfd0c8; border-radius:8px; padding:7px 9px; background:#fff; color:var(--green); cursor:pointer; }
.share-list [data-revoke-share] { color:#b42318; border-color:#f1c2bd; }
.share-list .revoked { opacity:.58; }
.shared-card { display:grid; gap:8px; }.shared-card h3 { font-size:24px; margin:0; }.shared-card small { color:var(--muted); text-align:center; }
.form-cols { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.check { grid-template-columns:20px 1fr; align-items:center; }
.check input { width:18px; height:18px; }
#authMessage { min-height:23px; color:#b42318; }
.toast { position:fixed; left:50%; bottom:25px; transform:translate(-50%,20px); opacity:0; background:#12231f; color:#fff; padding:10px 17px; border-radius:999px; transition:.2s; z-index:30; }
.toast.show { opacity:1; transform:translate(-50%,0); }
@media(max-width:900px) { .site-head nav{display:none}.site-head{padding:0 18px}.account{margin-left:auto}.hero{grid-template-columns:1fr;padding:38px 22px;gap:25px}.content-grid{grid-template-columns:1fr;padding:22px}.feature-grid{grid-template-columns:1fr 1fr}.features,.workspace-view{margin:22px}.hero h1{font-size:40px}.management-grid{grid-template-columns:1fr} }
@media(max-width:540px) { .hero-stats,.sync-summary{grid-template-columns:1fr}.hero-stats article+article{border-left:0;border-top:1px solid rgba(255,255,255,.16)}.feature-grid{grid-template-columns:1fr}.section-head{align-items:flex-start;gap:12px;flex-direction:column}.library-actions{width:100%;justify-content:space-between}.form-cols{grid-template-columns:1fr}.project-grid.table-view .project-card{grid-template-columns:44px 1fr}.project-grid.table-view .project-actions{grid-column:2;grid-row:auto}.share-list article{grid-template-columns:1fr} }

.legal-link { border:0; background:none; padding:0; margin:0; font:inherit; color:#1f7a5c; text-decoration:underline; cursor:pointer; }
.legal-link:hover { color:#155e46; }

/* 赛事条目：重命名 / 删除操作按钮 */
.event-item-managed { display:flex; align-items:center; gap:4px; padding:4px; }
.event-item-managed .event-select { flex:1; min-width:0; display:grid; grid-template-columns:1fr auto; gap:1px 10px; text-align:left; padding:5px 7px; background:transparent; border:0; border-radius:8px; font:inherit; color:inherit; cursor:pointer; }
.event-item-managed .event-select span { font-weight:750; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-item-managed .event-select b { color:var(--green2); }
.event-item-managed .event-select small { grid-column:1/-1; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-item.active .event-select b { color:inherit; }
.event-op { width:26px; height:26px; flex:0 0 26px; padding:0; display:flex; align-items:center; justify-content:center; border-radius:7px; background:transparent; border:1px solid transparent; color:var(--muted); font-size:14px; line-height:1; cursor:pointer; }
.event-op:hover { background:#fff; border-color:var(--line); color:var(--ink); }
.event-op.danger:hover { color:#c62828; border-color:rgba(198,40,40,.35); }
.manage-actions .danger-action { background:#c62828; border-color:#c62828; color:#fff; }
