:root{color-scheme:light;--bg: #edf3fb;--panel: rgba(255, 255, 255, .94);--line: rgba(14, 55, 102, .12);--text: #143251;--muted: #6b819a;--brand: #0c4b8f;--brand-2: #1f8f7a;--danger: #c3423f;--danger-soft: #ffe8e4;--shadow: 0 20px 50px rgba(22, 56, 97, .12);font-family:HarmonyOS Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(67,149,255,.16),transparent 28%),radial-gradient(circle at right 20%,rgba(29,180,138,.18),transparent 24%),linear-gradient(180deg,#f6fbff,#edf3fb 52%,#e8f0fa)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:transparent}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}code,.mono,pre{font-family:Cascadia Mono,Consolas,monospace}#app{min-height:100vh}.shell{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:100vh}.sidebar{padding:28px 22px;border-right:1px solid rgba(255,255,255,.46);background:linear-gradient(180deg,#0c4b8ff5,#113e71f0);color:#f2f8ff;display:flex;flex-direction:column;gap:24px}.brand h1,.topbar h2,.panel h3,.empty-card h3{margin:0}.brand h1{font-size:28px;line-height:1.2}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:#ffffffa8}.content .eyebrow{color:#6d8299}.muted{color:var(--muted)}.nav{display:grid;gap:12px}.nav-btn,.primary-btn,.ghost-btn,.danger-btn{height:46px;border-radius:14px;padding:0 18px;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.nav-btn{background:#ffffff14;color:#eef6ff;text-align:left}.nav-btn.active,.nav-btn:hover{background:#ffffff2e;transform:translate(3px)}.side-card,.panel,.empty-card,.metric-card,.mini-board,.team-card,.event-card,.match-card{background:var(--panel);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.side-card{margin-top:auto;border-radius:22px;padding:18px;color:#ebf4ff;background:#ffffff14}.side-card h3{margin-top:0}.side-card .muted{color:#edf6ffb8}.status-line{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:999px;background:#ffffff1f;color:#f2f8ff}.status-line.ok{background:#29c9972e}.full-width{width:100%}.content{padding:28px;display:flex;flex-direction:column;gap:20px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center}.topbar h2{font-size:28px}.topbar-actions{display:flex;gap:12px;align-items:center}.toast{min-height:52px;border-radius:16px;display:flex;align-items:center;padding:0 18px;font-weight:600;cursor:pointer}.toast.success{background:#dbf5ea;color:#145b47}.toast.error{background:#ffe6e1;color:#8a2f2b}.page-grid,.editor-layout{display:grid;gap:20px}.editor-layout{padding-bottom:112px}.login-shell{min-height:60vh;display:grid;place-items:center}.login-card{width:min(520px,100%);border-radius:26px;padding:28px;background:var(--panel);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.metric-card{border-radius:22px;padding:22px}.metric-label,.metric-hint,.metric-value{margin:0}.metric-label{color:var(--muted);font-size:14px}.metric-value{margin-top:12px;font-size:34px;font-weight:800}.metric-value.small{font-size:24px}.metric-hint{margin-top:10px;color:var(--muted)}.panel,.empty-card{border-radius:26px;padding:22px}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.inline-form{display:flex;gap:12px;align-items:center}.inline-form.compact .text-input{min-width:180px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.single-column{grid-template-columns:1fr}.field,.checkbox-field{display:flex;flex-direction:column;gap:8px}.checkbox-field{flex-direction:row;align-items:center;min-height:46px}.span-2{grid-column:span 2}.text-input,.textarea-input,.score-input{width:100%;border:1px solid var(--line);border-radius:14px;background:#f8fbff;color:var(--text);padding:0 14px}.text-input{height:46px;line-height:46px}.textarea-input{padding-top:12px;padding-bottom:12px;resize:vertical}.score-input{width:76px;height:50px;text-align:center;font-size:24px;font-weight:700}.panel-actions,.match-tools,.summary-strip,.board-strip,.team-summary-grid{display:flex;gap:12px;flex-wrap:wrap}.panel-actions{margin-top:18px}.floating-action-bar{position:sticky;bottom:16px;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;border-radius:20px;background:#fffffff0;border:1px solid rgba(20,50,81,.08);box-shadow:0 20px 36px #14325124;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.floating-action-meta{display:flex;flex-direction:column;gap:4px}.floating-action-meta strong{font-size:16px}.floating-action-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.attendance-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.summary-strip{margin-top:18px}.summary-chip,.tag,.member-pill{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:999px}.summary-chip{background:#edf5ff;color:#33587f}.tag{background:#e7f1ff;color:#295383}.tag.muted{background:#eef2f7}.member-pill{background:#edf7f4;color:#1d6958}.primary-btn{background:linear-gradient(135deg,var(--brand) 0%,#25749b 100%);color:#fff;box-shadow:0 16px 32px #0c4b8f33}.ghost-btn{background:#eef5ff;color:#19456f}.danger-btn{background:var(--danger-soft);color:var(--danger)}.small{height:38px;padding:0 14px;border-radius:12px}.primary-btn:hover,.ghost-btn:hover,.danger-btn:hover{transform:translateY(-1px)}.overview-table,.player-table,.attendance-table,.standings-table,.player-stats-table{display:flex;flex-direction:column}.table-head,.table-row{display:grid;gap:12px;align-items:center;min-height:52px;padding:0 10px}.table-head{color:var(--muted);font-size:13px;font-weight:700}.table-row{border-top:1px solid rgba(20,50,81,.08)}.action-row{background:transparent;text-align:left}.action-row:hover{background:#0c4b8f0a}.four-cols{grid-template-columns:130px minmax(0,1fr) 120px 140px}.player-cols{grid-template-columns:minmax(0,1.2fr) 120px 90px 96px}.admin-cols{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 120px 90px 96px}.attendance-cols{grid-template-columns:72px minmax(0,1fr) 140px 180px}.standings-cols{grid-template-columns:70px 110px repeat(4,68px) 92px 72px 72px}.stats-cols{grid-template-columns:minmax(0,1.2fr) repeat(7,88px)}.stats-wide-cols{grid-template-columns:minmax(0,1.2fr) 96px 108px 72px 128px 72px 72px 72px 72px}.event-list{display:grid;gap:14px}.event-row{display:flex;gap:12px;align-items:stretch}.event-card{flex:1;padding:18px;border-radius:20px;text-align:left}.event-card-head,.event-card-meta,.team-card-head,.match-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.event-card h4{margin:0 0 6px;font-size:18px}.event-card-meta{margin-top:12px;color:var(--muted)}.mini-board{flex:1 1 220px;border-radius:20px;padding:18px}.mini-board-title{font-weight:800;margin-bottom:12px}.mini-board-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid rgba(20,50,81,.08)}.mini-board-row:first-of-type{border-top:0}.team-summary-grid{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.ranking-editor-grid,.attendance-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.attendance-card{padding:16px;border-radius:18px;background:#f8fbff;border:1px solid rgba(20,50,81,.08);text-align:left}.attendance-card-head,.attendance-meta{display:flex;justify-content:space-between;gap:12px;align-items:center}.attendance-card-head p,.attendance-meta p{margin:6px 0 0}.attendance-meta{margin-top:14px;flex-wrap:wrap}.team-card{border-radius:18px;padding:16px}.team-card-body{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.team-lines{display:flex;flex-direction:column;gap:12px}.team-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid rgba(20,50,81,.08)}.team-line:last-child{border-bottom:0}.match-card{border-radius:20px;padding:18px;margin-top:16px}.match-subcard{margin-top:16px;padding-top:16px;border-top:1px solid rgba(20,50,81,.08)}.match-grid{display:grid;grid-template-columns:minmax(0,1.2fr) 90px 80px 90px minmax(0,1.2fr) 90px;gap:12px;align-items:center}.score-box{display:flex;align-items:center;gap:10px}.goal-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.goal-row{display:grid;grid-template-columns:140px minmax(0,1fr) minmax(0,1fr) 76px;gap:12px}.code-block{margin:18px 0;padding:18px;border-radius:18px;background:#0f2740;color:#e3f1ff;overflow:auto}.side-actions{margin-top:14px;display:grid;gap:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f274075;display:grid;place-items:center;padding:24px;z-index:20}.modal-card{width:min(640px,100%);border-radius:24px;padding:22px;background:var(--panel);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow)}.modal-section{margin-top:18px}.team-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}@media(max-width:1280px){.shell{grid-template-columns:260px minmax(0,1fr)}.stats-grid{grid-template-columns:1fr}.standings-cols,.stats-cols,.stats-wide-cols{min-width:840px}.standings-table,.player-stats-table,.attendance-table,.player-table{overflow-x:auto}}@media(max-width:920px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.content{padding:20px}.topbar,.panel-header,.event-card-head,.event-card-meta,.match-head{flex-direction:column;align-items:flex-start}.event-row{flex-direction:column}.form-grid,.goal-row,.four-cols,.player-cols,.admin-cols,.attendance-cols,.stats-cols,.stats-wide-cols,.match-grid,.standings-cols{grid-template-columns:1fr}.span-2{grid-column:span 1}.editor-layout{padding-bottom:132px}.floating-action-bar,.floating-action-buttons{flex-direction:column;align-items:stretch}}
