:root{--bg: #f6f5f1;--surface: #ffffff;--surface-2: #fbfaf7;--ink: #1e211c;--ink-2: #474c44;--muted: #7c827a;--line: #e8e5de;--line-strong: #d9d5cb;--primary: #145c4e;--primary-hover: #0f4a3f;--primary-soft: #e7f1ed;--accent: #b0742a;--danger: #ad3b3b;--danger-soft: #f9eaea;--radius: 12px;--shadow-sm: 0 1px 2px rgba(30, 33, 28, .05);--shadow-md: 0 10px 30px rgba(30, 33, 28, .1), 0 2px 6px rgba(30, 33, 28, .04);--shadow-lg: 0 24px 70px rgba(20, 24, 18, .26), 0 4px 12px rgba(20, 24, 18, .08);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Microsoft YaHei,PingFang SC,Noto Sans SC,-apple-system,sans-serif;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font-family:inherit;color:inherit}button{cursor:pointer}::selection{background:#145c4e29}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d5d1c6;border-radius:8px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#bdb8aa;background-clip:content-box;border:3px solid transparent}::-webkit-scrollbar-corner{background:transparent}.app-shell{height:100%;display:flex;flex-direction:column;overflow:hidden}.topbar{height:54px;flex:0 0 54px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:30}.brand{display:flex;align-items:center;gap:10px}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text b{font-size:14px;letter-spacing:.02em}.brand-text small{font-size:10.5px;color:var(--muted);letter-spacing:.04em}.brand-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(150deg,#1d715e,#10493e);box-shadow:inset 0 1px #ffffff2e,0 5px 12px #145c4e40;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding-bottom:7px}.brand-mark span{display:block;width:4px;border-radius:2px;background:#ffffffeb}.brand-mark span:nth-child(1){height:7px;opacity:.5}.brand-mark span:nth-child(2){height:14px}.brand-mark span:nth-child(3){height:10px;opacity:.72}.brand-mark.large{width:52px;height:52px;border-radius:15px;gap:5px;padding-bottom:12px}.brand-mark.large span{width:7px}.brand-mark.large span:nth-child(1){height:13px}.brand-mark.large span:nth-child(2){height:25px}.brand-mark.large span:nth-child(3){height:18px}.topbar-right{display:flex;align-items:center;gap:14px}.top-server{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-account{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:4px 6px 4px 4px;border-radius:20px;font-size:12.5px;color:var(--ink-2)}.top-account:hover{background:var(--surface-2)}.offline-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #ead9bd;background:#fdf6e8;color:#8a6120;border-radius:7px;height:26px;padding:0 9px;font-size:11.5px}.avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(145deg,#2b7a66,#135245);color:#fff;display:inline-grid;place-items:center;font-size:12px;font-weight:600;flex:none}.avatar.small{width:24px;height:24px;font-size:11px}.avatar.large{width:46px;height:46px;font-size:18px}.app-body{flex:1;display:flex;min-height:0}.sidebar{width:238px;flex:0 0 238px;background:#fbfaf7;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.side-head{display:flex;align-items:center;gap:7px;padding:16px 14px 8px;font-size:11.5px;font-weight:600;color:var(--muted);letter-spacing:.06em}.side-count{background:#efede7;border-radius:20px;padding:0 6px;font-size:10.5px;color:var(--ink-2);letter-spacing:0}.spacer{flex:1}.game-list{flex:1;overflow-y:auto;padding:2px 8px 12px;display:flex;flex-direction:column;gap:2px}.game-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:10px;border:1px solid transparent;background:transparent;text-align:left;width:100%;position:relative;transition:background .12s ease,border-color .12s ease}.game-item:hover{background:#f3f1eb}.game-item.active{background:#fff;border-color:var(--line);box-shadow:var(--shadow-sm)}.game-avatar{width:29px;height:29px;border-radius:8px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-size:12.5px;font-weight:700;flex:none}.game-item.active .game-avatar{background:linear-gradient(145deg,#1d6c59,#145c4e);color:#fff}.game-meta{display:flex;flex-direction:column;min-width:0;line-height:1.35}.game-meta b{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-meta small{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.active-mark{position:absolute;right:8px;width:5px;height:5px;border-radius:50%;background:var(--primary)}.side-empty{color:var(--muted);font-size:11.5px;padding:16px 10px;text-align:center}.side-foot{border-top:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:8px}.side-total{font-size:10.5px;color:var(--muted);padding:0 4px}.account-card{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border-radius:10px;border:1px solid var(--line);background:#fff;text-align:left;color:var(--muted);box-shadow:var(--shadow-sm)}.account-card:hover{border-color:var(--line-strong)}.account-meta{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.3}.account-meta b{font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-meta small{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px}.main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.game-view{flex:1;display:flex;flex-direction:column;min-height:0}.game-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:18px 22px 12px}.game-title h1{margin:0;font-size:21px;font-weight:700;letter-spacing:-.01em;line-height:1.25}.title-line{display:flex;align-items:center;gap:10px}.health-badge{display:inline-flex;align-items:center;gap:4px;background:var(--danger-soft);color:var(--danger);border-radius:20px;font-size:10.5px;padding:2px 8px;cursor:help}.stat-row{display:flex;align-items:center;gap:9px;margin-top:5px;color:var(--muted);font-size:11.5px;flex-wrap:wrap}.stat-row b{color:var(--ink);font-weight:600;font-size:12px;font-variant-numeric:tabular-nums}.stat-row>i{width:1px;height:9px;background:var(--line-strong)}.next-merge{display:inline-flex;align-items:center;gap:4px;color:var(--primary)}.next-merge em{font-style:normal;background:var(--primary-soft);border-radius:10px;padding:0 6px;font-size:10.5px}.game-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.action-divider{width:1px;height:18px;background:var(--line-strong);margin:0 2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:9px;border:1px solid transparent;font-size:12.5px;font-weight:500;height:34px;padding:0 12px;white-space:nowrap;transition:background .13s ease,border-color .13s ease,box-shadow .13s ease,opacity .13s}.btn-sm{height:28px;padding:0 9px;font-size:11.5px;border-radius:7px;gap:5px}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #145c4e3d,inset 0 1px #ffffff1f}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:#fff;border-color:var(--line-strong);color:var(--ink);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:#fbfaf7;border-color:#c9c4b7}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:#1e211c0d}.btn-subtle{background:var(--primary-soft);color:var(--primary)}.btn-subtle:hover:not(:disabled){background:#dbece5}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#943131}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:var(--muted)}.icon-btn:hover{background:#1e211c0f;color:var(--ink)}.icon-btn.tiny{width:22px;height:22px;border-radius:6px}.icon-btn.bordered{border:1px solid var(--line-strong);background:#fff;width:34px;height:34px;box-shadow:var(--shadow-sm)}.link-btn{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--primary);font-size:11.5px;padding:2px 4px;border-radius:5px}.link-btn:hover{background:var(--primary-soft)}.toolbar{display:flex;align-items:center;gap:9px;padding:0 22px 10px;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:6px;height:30px;width:232px;border-radius:8px;border:1px solid var(--line);background:#fff;padding:0 6px 0 9px;color:var(--muted);box-shadow:var(--shadow-sm)}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #145c4e1a}.search-box input{border:0;outline:0;background:transparent;font-size:12px;width:100%;color:var(--ink)}.toolbar-hint{font-size:11px;color:var(--muted);margin-left:4px}.jump-select{width:auto;max-width:190px}.next-chip{display:inline-flex;align-items:center;gap:6px;height:27px;border-radius:20px;border:1px solid #d7e5df;background:#f1f8f5;color:var(--primary);font-size:11.5px;padding:0 11px}.next-chip:hover{background:#e6f3ee}.table-scroll{flex:1;min-height:0;overflow:auto;padding:0 22px 66px;position:relative}.merge-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;background:#fff;box-shadow:var(--shadow-sm);border-radius:11px}.merge-table thead th{position:sticky;top:0;z-index:6;height:42px;background:#fcfbf8;border-bottom:1px solid var(--line);border-right:1px solid #f1efe9;font-size:11.5px;font-weight:600;color:var(--ink-2);text-align:center;padding:0;white-space:nowrap}.merge-table thead th:first-child{border-top-left-radius:11px}.merge-table thead th:last-child{border-top-right-radius:11px}.th-day{font-size:10.5px;color:var(--muted);letter-spacing:.05em}.merge-table thead th.day-col{position:sticky;left:0;z-index:15;border-right:1px solid var(--line)}.merge-table thead th.name-col{position:sticky;left:108px;z-index:15;border-right:1px solid var(--line)}.round-head{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.2}.round-head span{font-size:12px;color:var(--ink)}.round-head small{font-size:9.5px;color:var(--muted);font-weight:400}.round-col.rc-1{border-bottom-color:#bcd8cb}.round-col.rc-2{border-bottom-color:#c3d4e8}.round-col.rc-3{border-bottom-color:#d5c9e8}.round-col.rc-4{border-bottom-color:#e8d2b7}.round-col.rc-5{border-bottom-color:#e8c4c8}.round-col.rc-6{border-bottom-color:#b8d7d8}.round-col.rc-7{border-bottom-color:#c6cce8}.round-col.rc-8{border-bottom-color:#cfd9b4}.round-col.rc-9{border-bottom-color:#e3cfb6}.round-col.rc-10{border-bottom-color:#d3d3cc}.add-round-col{width:42px;border-right:0!important}.add-round{width:26px;height:26px;border-radius:7px;border:1px dashed var(--line-strong);background:transparent;color:var(--muted);display:inline-grid;place-items:center}.add-round:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.merge-table tbody td{height:36px;padding:0;border-bottom:1px solid #f2f0ea;border-right:1px solid #f5f3ed;font-size:12px;text-align:center;vertical-align:middle}.merge-table tbody tr:last-child td{border-bottom:0}.merge-table tbody tr.day-start>td{border-top:1px solid #e9e6de}.day-cell{position:sticky;left:0;z-index:3;background:#fbfaf7;border-right:1px solid var(--line)!important;cursor:pointer;box-shadow:1px 0 #fbfaf7}.day-cell:hover{background:#f4f2ec}.day-inner{display:flex;flex-direction:column;gap:1px;line-height:1.2;position:sticky;top:54px;padding:4px 0}.day-inner strong{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.day-inner span{font-size:9.5px;color:var(--muted);font-weight:400}.name-cell{position:sticky;left:108px;z-index:3;background:#fff;border-right:1px solid var(--line)!important;text-align:left!important;padding-left:12px!important;font-weight:500;box-shadow:1px 0 #fff}.name-cell span{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.name-cell.match{background:#fdf6e3}.row-dim td{opacity:.45}.inline-input{width:calc(100% - 2px);height:26px;border:1px solid var(--primary);border-radius:5px;padding:0 5px;font-size:12px;outline:none;box-shadow:0 0 0 3px #145c4e1f}tr.dimmed td:not(.day-cell){opacity:.5}.group-cell{cursor:pointer;position:relative;border-right:2px solid #fff!important;border-bottom:2px solid #fff!important;box-shadow:inset 0 0 0 1px #1e211c0a}.group-inner{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;min-height:34px;padding-top:6px;line-height:1.1}.group-stick{position:sticky;top:54px;display:flex;flex-direction:column;align-items:center;gap:1px}.group-date{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.01em}.group-count{font-size:9px;opacity:.62;font-weight:400}.note-dot{position:absolute;top:5px;right:6px;width:5px;height:5px;border-radius:50%;background:#d69433}.group-cell.rc-1{background:#e7f2ec;color:#1a5745}.group-cell.rc-2{background:#e8eff8;color:#24486e}.group-cell.rc-3{background:#f0eaf8;color:#4a326e}.group-cell.rc-4{background:#fbeee0;color:#7a4915}.group-cell.rc-5{background:#f9e8ea;color:#7a2f37}.group-cell.rc-6{background:#e4f1f2;color:#1b5254}.group-cell.rc-7{background:#eaedf9;color:#313a71}.group-cell.rc-8{background:#f0f4e2;color:#49571b}.group-cell.rc-9{background:#f7eee1;color:#69471f}.group-cell.rc-10{background:#efefec;color:#43433e}.group-cell:hover{filter:brightness(.975)}.empty-cell{cursor:cell;background:#fff}.empty-cell:after{content:"+";opacity:0;color:var(--muted);font-size:14px;transition:opacity .12s}.empty-cell:hover{background:#faf9f5}.empty-cell:hover:after{opacity:.55}td.sel{--sel-shadow: inset 0 0 0 999px rgba(20, 92, 78, .11), inset 1px 0 0 rgba(20, 92, 78, .55), inset -1px 0 0 rgba(20, 92, 78, .55);box-shadow:var(--sel-shadow);position:relative;z-index:2;border-right-color:transparent!important;border-bottom-color:transparent!important;border-top-color:transparent!important}td.sel-first{box-shadow:var(--sel-shadow),inset 0 2px 0 var(--primary)}td.sel-last{box-shadow:var(--sel-shadow),inset 0 -2px 0 var(--primary)}td.sel-first.sel-last{box-shadow:var(--sel-shadow),inset 0 2px 0 var(--primary),inset 0 -2px 0 var(--primary)}.merge-table tbody tr:hover td.day-cell{background:#f4f2ec}.table-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:12.5px;pointer-events:none}.merge-bar{position:fixed;bottom:20px;left:calc(50% + 119px);transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line-strong);border-radius:14px;padding:9px 12px 9px 10px;box-shadow:var(--shadow-lg);animation:rise .18s ease-out}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.mb-summary{display:flex;align-items:center;gap:9px}.mb-round{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:600}.mb-summary b{display:block;font-size:12.5px;line-height:1.3}.mb-summary small{font-size:10.5px;color:var(--muted)}.mb-date{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);border-left:1px solid var(--line);padding-left:14px}.mb-date input{height:32px;border:1px solid var(--line-strong);border-radius:7px;padding:0 7px;font-size:12px;background:#fff;outline:none;font-variant-numeric:tabular-nums}.mb-date input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #145c4e1f}.mb-date input.invalid{border-color:var(--danger);background:#fff7f7}.mb-warn{font-size:10.5px;color:var(--danger);background:var(--danger-soft);border-radius:5px;padding:2px 6px;white-space:nowrap}.selection-hint{position:fixed;bottom:88px;left:calc(50% + 119px);transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#2a2e27;color:#f3f1ea;border-radius:8px;padding:6px 11px;font-size:11px;z-index:39;box-shadow:var(--shadow-md);pointer-events:none}.status-foot{flex:0 0 30px;display:flex;align-items:center;gap:8px;padding:0 22px;border-top:1px solid var(--line);background:#fbfaf7;font-size:10.5px;color:var(--muted)}.sync-dot{width:6px;height:6px;border-radius:50%;background:#b9beb4;flex:none;display:inline-block}.sync-dot.saved{background:#3f8f6f}.sync-dot.saving{background:#c9973f;animation:pulse 1.2s infinite}.sync-dot.offline{background:#b1742a}.sync-dot.error{background:#ad3b3b}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.modal-backdrop{position:fixed;inset:0;background:#181b1657;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:100;animation:fade .14s ease-out;padding:24px}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);max-height:88vh;display:flex;flex-direction:column;animation:pop .17s ease-out;max-width:100%}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px 22px 14px}.modal-title-wrap{display:flex;gap:11px;align-items:flex-start}.modal-icon{width:34px;height:34px;border-radius:9px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;flex:none}.modal-head h2{margin:0;font-size:16px;font-weight:650;letter-spacing:.01em}.modal-head p{margin:3px 0 0;font-size:11.5px;color:var(--muted);line-height:1.45}.modal-body{padding:2px 22px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.modal-foot{display:flex;align-items:center;gap:9px;padding:13px 22px;border-top:1px solid var(--line);background:#fcfbf8;border-radius:0 0 16px 16px;flex-wrap:wrap}.modal-foot .btn{flex:none}.foot-note{font-size:11px;color:var(--muted);margin-right:auto}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:11.5px;font-weight:500;color:var(--ink-2);display:flex;align-items:center;gap:3px}.req{color:var(--danger);font-style:normal}.field-hint{font-size:10.5px;color:var(--muted);line-height:1.45}.field-control{display:block}.field-inline{flex-direction:row;align-items:center;gap:8px}.field-inline .field-label{white-space:nowrap}.input{width:100%;height:36px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;padding:0 10px;font-size:12.5px;outline:none;transition:border-color .12s,box-shadow .12s;font-variant-numeric:tabular-nums}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #145c4e1c}.input::placeholder{color:#b3b7ae}select.input{padding-right:6px;cursor:pointer}.input.compact{height:30px;font-size:11.5px;width:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.segmented{display:inline-flex;background:#f2f0eb;border-radius:8px;padding:3px;gap:2px;flex-wrap:wrap}.segmented button{border:0;background:transparent;padding:5px 10px;border-radius:6px;font-size:11.5px;color:var(--ink-2)}.segmented button.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--ink);font-weight:600}.checkline{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2);cursor:pointer;min-height:36px}.checkline input{width:15px;height:15px;accent-color:var(--primary)}.range-row{display:flex;gap:16px;flex-wrap:wrap}.range-row .field{flex:1;min-width:220px}.range-select{width:100%}.preview-box{background:#fbfaf7;border:1px solid var(--line);border-radius:10px;padding:11px 13px;display:flex;flex-direction:column;gap:9px}.preview-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;color:var(--ink-2)}.preview-line{font-size:12px;color:var(--ink-2)}.name-chips{display:flex;flex-wrap:wrap;gap:5px}.name-chip{background:#fff;border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:11px;font-variant-numeric:tabular-nums}.name-chip.more{color:var(--muted);background:transparent;border-style:dashed}.mini-groups{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.mini-group{background:#f0f6f3;border:1px solid #d9e8e1;color:var(--primary);border-radius:5px;padding:2px 6px;font-size:10.5px}.mini-group.more{background:transparent;border-color:var(--line);color:var(--muted)}.inline-form{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11.5px}.inline-warn,.inline-error,.inline-ok{display:flex;align-items:flex-start;gap:7px;border-radius:8px;padding:8px 11px;font-size:11.5px;line-height:1.5}.inline-warn{background:#fdf6e7;border:1px solid #f0e0bd;color:#7c5a1b}.inline-error{background:var(--danger-soft);border:1px solid #efd2d2;color:var(--danger)}.inline-ok{background:#edf7f2;border:1px solid #cfe8dd;color:#1c6b52}.section-label{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em;margin-top:4px}.readonly-value{height:36px;display:flex;align-items:center;color:var(--muted);font-size:12px;background:#fbfaf7;border:1px dashed var(--line-strong);border-radius:8px;padding:0 10px}.member-box{border:1px solid var(--line);border-radius:10px;overflow:hidden}.member-head{padding:7px 12px;background:#fbfaf7;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);font-weight:600}.member-list{padding:10px 12px;display:flex;flex-wrap:wrap;gap:5px;max-height:170px;overflow:auto}.member-chip{background:var(--primary-soft);color:var(--primary);border-radius:6px;padding:3px 7px;font-size:11px;display:inline-flex;align-items:baseline;gap:5px}.member-chip i{font-style:normal;font-size:9.5px;opacity:.65;font-variant-numeric:tabular-nums}.dialog-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.split-list{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:10px;background:#fbfaf7;border:1px solid var(--line);border-radius:10px;max-height:220px;overflow:auto}.split-item{display:inline-flex;align-items:center;gap:2px}.split-chip{background:#fff;border:1px solid var(--line);border-radius:5px;padding:3px 6px;font-size:11px}.split-cut{width:20px;height:26px;border:0;background:transparent;color:#c3c0b6;display:inline-grid;place-items:center;border-radius:4px}.split-cut:hover{background:#ad3b3b1a;color:var(--danger)}.split-cut.on{background:var(--danger);color:#fff}.split-result{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.delete-panel p{margin:0 0 10px;font-size:12.5px;line-height:1.6}.foot-spacer{flex:1}.account-head{display:flex;align-items:center;gap:12px;padding:4px 0 14px;border-bottom:1px solid var(--line)}.account-head>div{display:flex;flex-direction:column;gap:2px}.account-head b{font-size:14px}.account-head small{font-size:10.5px;color:var(--muted)}.sync-pill{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);padding:3px 8px;border-radius:20px}.settings-list{display:flex;flex-direction:column;gap:2px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #f2f0ea}.settings-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}.settings-label{font-size:11px;color:var(--muted)}.settings-value{font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}code.settings-value{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:11px}.settings-section{border-bottom:1px solid #f2f0ea;padding:10px 0}.settings-section-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:500}.pwd-form{display:flex;flex-direction:column;gap:10px;padding-top:10px}.account-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}.lan-list{display:flex;flex-direction:column;gap:6px}.lan-row{display:flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 9px;color:var(--muted)}.lan-row code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:11px;color:var(--ink-2);flex:1}.toast-host{position:fixed;inset:auto 24px 46px auto;transform:none;display:flex;flex-direction:column;gap:8px;z-index:200;align-items:flex-end;pointer-events:none}.toast{display:flex;align-items:center;gap:7px;background:#23261f;color:#f6f4ee;border-radius:9px;padding:8px 13px;font-size:12px;box-shadow:var(--shadow-md);animation:toastIn .18s ease-out}.toast-success svg{color:#7fd0ae}.toast-error svg{color:#f0a0a0}@keyframes toastIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-brand{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 20% 10%,#1d6b58,#124b3f 45%,#0d3a32);color:#fff;padding:72px 76px;display:flex;flex-direction:column;justify-content:center;gap:18px}.login-brand:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(80% 70% at 30% 30%,#000 20%,transparent 75%);mask-image:radial-gradient(80% 70% at 30% 30%,#000 20%,transparent 75%)}.login-brand:after{content:"";position:absolute;width:520px;height:520px;right:-180px;bottom:-220px;border-radius:50%;background:radial-gradient(circle,rgba(214,168,90,.18),transparent 65%)}.login-brand h1{font-size:44px;margin:6px 0 0;letter-spacing:.06em;font-weight:700;position:relative}.login-slogan{font-size:15px;line-height:1.9;color:#ffffffb8;margin:0;position:relative}.login-points{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-direction:column;gap:13px;position:relative}.login-points li{display:flex;align-items:center;gap:10px;font-size:12.5px;color:#ffffffd1}.login-points svg{color:#d8b174;flex:none}.login-foot{position:absolute;bottom:28px;font-size:10.5px;color:#ffffff59;letter-spacing:.06em}.login-panel{display:grid;place-items:center;padding:40px;background:#fbfaf7}.login-card{width:100%;max-width:356px;display:flex;flex-direction:column;gap:18px}.login-head h2{margin:0;font-size:23px;letter-spacing:-.01em}.login-head p{margin:5px 0 0;font-size:12px;color:var(--muted);line-height:1.6}.login-form{display:flex;flex-direction:column;gap:14px}.login-submit{height:40px;margin-top:4px;font-size:13px;border-radius:9px}.login-error,.login-banner{display:flex;align-items:flex-start;gap:7px;background:var(--danger-soft);border:1px solid #efd2d2;color:var(--danger);border-radius:8px;padding:8px 11px;font-size:11.5px;line-height:1.5}.login-banner{background:#fdf6e7;border-color:#f0e0bd;color:#7c5a1b}.login-switch{font-size:11.5px;color:var(--muted);text-align:center}.login-switch button{border:0;background:transparent;color:var(--primary);font-size:11.5px;margin-left:4px;font-weight:500;padding:2px 3px}.login-switch button:hover{text-decoration:underline}.login-server{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;flex-wrap:wrap}.login-server code{font-size:10px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f2f0ea;padding:2px 6px;border-radius:4px}.login-server button{border:0;background:transparent;color:var(--primary);font-size:10.5px;margin-left:auto}.empty-state,.empty-workspace{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px;text-align:center}.empty-state h2,.empty-workspace h1{margin:8px 0 0;font-size:19px;font-weight:650}.empty-state p,.empty-workspace p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.8;max-width:430px}.empty-actions{display:flex;gap:9px;margin-top:8px}.empty-steps{display:flex;gap:26px;margin-top:22px;font-size:11px;color:var(--muted)}.empty-steps b{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:10px;margin-right:5px}.empty-art{display:flex;flex-direction:column;gap:5px;padding:14px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);transform:rotate(-2deg)}.empty-art.big{padding:20px;transform:rotate(-3deg) scale(1.15)}.empty-row{display:flex;gap:5px}.empty-row.shift{margin-left:14px}.empty-row span{width:34px;height:13px;border-radius:4px;background:#e7f2ec}.empty-row span:nth-child(2n){background:#e8eff8}.empty-row span:nth-child(3n){background:#f0eaf8}.splash{height:100vh;display:grid;place-items:center;align-content:center;gap:14px;color:var(--muted);font-size:12px;letter-spacing:.2em;background:var(--bg)}.splash .brand-mark{animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}.muted{color:var(--muted)}.small{font-size:11px}.danger-text{color:var(--danger)!important}@media(max-width:1280px){.game-head{flex-direction:column;align-items:stretch;gap:12px}.game-actions{justify-content:flex-start}.sidebar{width:208px;flex-basis:208px}.merge-bar{left:calc(50% + 104px)}}@media(max-width:980px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.sidebar{width:178px;flex-basis:178px}.toolbar-hint{display:none}.merge-bar{left:50%;bottom:14px}}.series-list{border:1px solid var(--line);border-radius:8px;background:#fff;max-height:240px;overflow:auto}.series-row{display:grid;grid-template-columns:128px 54px 1fr;align-items:center;gap:8px;padding:5px 10px;font-size:11.5px;border-bottom:1px solid #f5f3ed}.series-row:last-child{border-bottom:0}.series-date i{font-style:normal;font-size:9.5px;color:var(--muted);margin-left:3px}.series-count{color:var(--primary);font-weight:600;font-size:11px}.series-names{color:var(--ink-2);font-variant-numeric:tabular-nums}.series-row.more{display:block;color:var(--muted);font-size:11px;text-align:center}.rhythm-note{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:var(--primary-soft);color:var(--primary);border-radius:8px;padding:8px 11px;font-size:11.5px;line-height:1.5}.rhythm-note b{font-weight:600}.rhythm-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.rhythm-row{display:grid;grid-template-columns:52px 84px 60px 20px 1fr;align-items:center;gap:7px;padding:7px 11px;border-bottom:1px solid #f2f0ea;font-size:11.5px}.rhythm-row:last-child{border-bottom:0}.rhythm-round{display:inline-grid;place-items:center;height:24px;border-radius:6px;font-size:11px;font-weight:600}.rhythm-plus,.rhythm-unit{color:var(--muted);font-size:11px}.rhythm-input{width:58px;height:30px;text-align:center;padding:0 4px}.rhythm-example{color:var(--ink-2);font-size:10.5px;text-align:right;font-variant-numeric:tabular-nums}.rhythm-help{font-size:10.5px;color:var(--muted);line-height:1.7}.mb-tag{font-size:10px;padding:3px 7px;border-radius:20px;background:var(--primary-soft);color:var(--primary);white-space:nowrap}.mb-tag.manual{background:#fdf1dc;color:#8a5a18}.plan-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plan-toolbar .input{width:150px;height:32px}.date-chips{display:flex;gap:5px;flex-wrap:wrap}.date-chip{border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:6px;padding:3px 7px;font-size:10.5px;font-variant-numeric:tabular-nums}.date-chip:hover{border-color:var(--line-strong)}.date-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.plan-list{display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow:auto}.plan-section{border:1px solid var(--line);border-radius:10px;overflow:hidden}.plan-section>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 12px;background:#fbfaf7;border-bottom:1px solid var(--line)}.plan-round{display:inline-grid;place-items:center;height:22px;padding:0 9px;border-radius:20px;font-size:10.5px;font-weight:600}.plan-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 12px;border-bottom:1px solid #f5f3ed}.plan-row:last-child{border-bottom:0}.plan-label{font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums}.plan-meta{text-align:right;font-size:10.5px;color:var(--muted);flex:none}.plan-meta em{display:block;font-style:normal;color:var(--accent)}.plan-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px;color:var(--muted)}.plan-empty p{margin:0;font-size:12.5px;color:var(--ink-2)}.template-grid{border:1px solid var(--line);border-radius:10px;overflow:hidden}.template-head,.template-row{display:grid;grid-template-columns:72px 88px 90px 1fr;align-items:center;gap:10px;padding:6px 12px}.template-head{background:#fbfaf7;border-bottom:1px solid var(--line);font-size:10.5px;color:var(--muted)}.template-row{border-bottom:1px solid #f5f3ed}.template-row:last-child{border-bottom:0}.template-row .input{width:72px;height:30px;text-align:center;padding:0 4px}.template-count{color:var(--primary);font-size:11.5px;font-weight:600}.rhythm-round.rc-1,.plan-round.rc-1{background:#e7f2ec;color:#1a5745}.rhythm-round.rc-2,.plan-round.rc-2{background:#e8eff8;color:#24486e}.rhythm-round.rc-3,.plan-round.rc-3{background:#f0eaf8;color:#4a326e}.rhythm-round.rc-4,.plan-round.rc-4{background:#fbeee0;color:#7a4915}.rhythm-round.rc-5,.plan-round.rc-5{background:#f9e8ea;color:#7a2f37}.rhythm-round.rc-6,.plan-round.rc-6{background:#e4f1f2;color:#1b5254}.rhythm-round.rc-7,.plan-round.rc-7{background:#eaedf9;color:#313a71}.rhythm-round.rc-8,.plan-round.rc-8{background:#f0f4e2;color:#49571b}.rhythm-round.rc-9,.plan-round.rc-9{background:#f7eee1;color:#69471f}.rhythm-round.rc-10,.plan-round.rc-10{background:#efefec;color:#43433e}.rule-row{display:flex;align-items:center;gap:7px}.rule-type{width:96px;height:30px;flex:none;padding:0 4px;font-size:11.5px}.rule-weekday{width:70px;height:30px;flex:none;padding:0 4px;font-size:11.5px}.rule-row .rhythm-example{margin-left:auto}.template-check{flex-wrap:wrap;gap:6px}.template-check .small{font-weight:400}.rule-badge{font-style:normal;font-size:10px;font-weight:500;background:var(--primary-soft);color:var(--primary);border-radius:10px;padding:1px 6px;margin-left:2px}.rhythm-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-2);background:#fbfaf7;border:1px solid var(--line);border-radius:8px;padding:7px 10px}.rhythm-summary .link-btn{margin-left:auto}.batch-rule{background:#fbfaf7;border:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap}.batch-rule .rule-type{width:88px}.batch-rule .rule-weekday{width:68px}.server-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.server-tools .input{height:32px;font-size:12px}.server-tools .input:first-child{flex:1;min-width:150px}.server-tools select.input{max-width:220px}.server-picker{border:1px solid var(--line);border-radius:10px;max-height:340px;overflow:auto;background:#fff}.server-pick{display:grid;grid-template-columns:24px 1fr 96px 56px;align-items:center;gap:8px;padding:6px 11px;border-bottom:1px solid #f5f3ed;cursor:pointer;font-size:12px}.server-pick:last-child{border-bottom:0}.server-pick:hover{background:#fbfaf7}.server-pick.checked{background:var(--primary-soft)}.server-pick input{width:15px;height:15px;accent-color:var(--primary)}.sp-date{color:var(--muted);font-size:10.5px;text-align:right;font-variant-numeric:tabular-nums}.sp-flag{color:var(--accent);font-size:10px;text-align:right}.server-empty{padding:22px;text-align:center;color:var(--muted);font-size:12px}.compact-summary{display:flex;align-items:baseline;gap:14px;padding:6px 2px 9px;color:var(--muted);font-size:11.5px}.compact-summary b{color:var(--ink);font-size:13px}.compact-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;background:#fff;box-shadow:var(--shadow-sm);border-radius:11px}.compact-table thead th{position:sticky;top:0;z-index:6;height:40px;padding:0 14px;background:#fcfbf8;border-bottom:1px solid var(--line);border-right:1px solid #f1efe9;color:var(--ink-2);font-size:11.5px;font-weight:600;text-align:left;white-space:nowrap}.compact-table thead th:last-child{border-right:0}.compact-table tbody tr{height:64px}.compact-table tbody tr.clickable{cursor:pointer}.compact-table tbody tr.clickable:hover{background:#fbf8f1}.compact-table tbody tr.dimmed{opacity:.35}.compact-table tbody td{padding:8px 14px;border-bottom:1px solid var(--line);border-right:1px solid #f4f2ec;vertical-align:middle;overflow:hidden}.compact-table tbody tr:last-child td{border-bottom:0}.compact-table tbody td:last-child{border-right:0}.compact-date strong,.compact-name strong{display:block;overflow:hidden;color:var(--ink);font-size:13px;font-weight:600;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.compact-name strong{font-size:13.5px}.compact-date span,.compact-name span{display:block;margin-top:3px;color:var(--muted);font-size:10.5px}.compact-history{white-space:nowrap}.hist-chip{display:inline-flex;align-items:center;gap:4px;margin:2px 4px 2px 0;padding:3px 7px;border-radius:6px;font-size:10.5px;line-height:1.2}.hist-chip b{font-weight:700}.hist-chip.rc-1{background:#e7f2ec;color:#1a5745}.hist-chip.rc-2{background:#e8eff8;color:#24486e}.hist-chip.rc-3{background:#f0eaf8;color:#4a326e}.hist-chip.rc-4{background:#fbeee0;color:#7a4915}.hist-chip.rc-5{background:#f9e8ea;color:#7a2f37}.hist-chip.rc-6{background:#e4f1f2;color:#1b5254}.hist-chip.rc-7{background:#eaedf9;color:#313a71}.hist-chip.rc-8{background:#f0f4e2;color:#49571b}.hist-chip.rc-9{background:#f7eee1;color:#69471f}.hist-chip.rc-10{background:#efefec;color:#43433e}.compact-none{color:var(--muted);font-size:11px}.compact-go{color:#b5b1a7;text-align:center}.compact-toggle.on{padding:4px 8px;border-radius:6px;background:var(--primary-soft);color:var(--primary)}.live-alert{display:flex;align-items:center;gap:10px;margin:10px 22px 0;padding:9px 13px;border:1px solid #efb3b3;border-left:4px solid var(--danger);border-radius:9px;background:#fdf0f0;color:#7e2626;font-size:12.5px}.live-alert.expired{background:var(--danger);border-color:var(--danger);color:#fff}.live-text{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.live-text strong{font-size:12.5px}.live-text span{color:#9b3a3a;font-size:12px}.live-alert.expired .live-text span{color:#ffe4e4}.live-set{padding:4px 9px;border:1px solid #d99a9a;border-radius:6px;background:#fff;color:#8f2c2c;font-size:11.5px;cursor:pointer}.live-alert.expired .live-set{border-color:#ffffff73;background:#ffffff1f;color:#fff}.inline-field{display:flex;align-items:center;gap:8px}.inline-field .input{flex:1}.compact-level{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.compact-level .input{width:auto;padding:3px 6px;font-size:11px}.hist-chip.hist-more{background:#f1efe9;color:var(--muted)}.game-head-left{display:flex;align-items:flex-start;gap:26px;flex:1;min-width:0}.game-primary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:1px}@media(max-width:980px){.game-head-left{flex-direction:column;gap:10px}}.readonly-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;background:#eef3ef;color:#2f6b53;font-size:10.5px;font-weight:600;letter-spacing:.02em}.account-card.readonly{cursor:default;opacity:.9}.account-card.readonly:hover{background:transparent}.readonly-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;text-align:center;background:var(--bg)}.readonly-error h1{margin:4px 0 0;font-size:20px}.readonly-error p{margin:0;color:var(--muted);font-size:13px}
