:root{--bg-app: #faf7f0;--bg-surface: #ffffff;--bg-inset: #f6f1e7;--bg-hover: #f3ebdd;--border: #ede5d8;--border-strong: #d9cebc;--text-primary: #1a1510;--text-secondary: #6b5d4d;--text-muted: #a69882;--up: #089981;--down: #f0384a;--accent: #b8860b;--accent-soft: rgba(212, 168, 83, .16);--mono: "SF Mono", "JetBrains Mono", "Roboto Mono", ui-monospace, monospace;--ui: "Inter", -apple-system, "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--ui);color:var(--text-primary);background:var(--bg-app);font-size:13px;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column}.toolbar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;min-height:52px;padding:6px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex:0 0 auto}.brand{font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px;white-space:nowrap}.brand-logo{width:30px;height:30px;border-radius:8px;object-fit:cover}.login-avatar{width:72px;height:72px;border-radius:16px;object-fit:cover;align-self:center;margin-bottom:2px}.symbol{display:flex;align-items:baseline;gap:8px}.sym-name{font-weight:600}.last-price{font-family:var(--mono);font-size:14px;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.tf-bar{display:flex;gap:2px;background:var(--bg-inset);padding:3px;border-radius:7px}.tf-btn{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-secondary);border:none;background:transparent;cursor:pointer;padding:4px 9px;border-radius:5px;transition:background .12s ease,color .12s ease}.tf-btn:hover{background:var(--bg-hover)}.tf-btn.active{background:var(--accent);color:#fff}.tf-custom{font-family:var(--mono);font-size:12px;width:132px;padding:5px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg-inset);color:var(--text-primary);outline:none}.tf-custom:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.spacer{flex:1}@media (max-width: 1180px){.brand span{display:none}}.subbar{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;min-height:46px;padding:5px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex:0 0 auto}.subbar-label{font-size:12px;color:var(--text-muted);font-weight:600;margin-right:2px}.jump-dt{font-family:var(--mono);font-size:12px;padding:4px 8px;border:1px solid var(--border);border-radius:7px;background:var(--bg-inset);color:var(--text-primary);outline:none}.jump-dt:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sep{width:1px;height:22px;background:var(--border);margin:0 6px}.btn{font-family:var(--ui);font-size:12px;font-weight:500;white-space:nowrap;padding:6px 12px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);transition:background .12s ease,border-color .12s ease,opacity .12s ease}.btn:hover{background:var(--bg-hover)}.btn.ghost{background:var(--bg-surface);color:var(--text-secondary);box-shadow:0 1px 2px #1a15100d}.btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-surface);box-shadow:0 2px 8px #b8860b24}.btn[hidden]{display:none}.next-btn{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;display:inline-flex;align-items:center;gap:8px}.next-btn:hover{background:#9a7009}.next-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--accent)}.next-btn kbd{font-family:var(--mono);font-size:10px;line-height:1;background:#ffffff38;padding:2px 5px;border-radius:4px}.replay-badge{font-family:var(--mono);font-size:12px;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:7px;font-variant-numeric:tabular-nums}.replay-badge[hidden]{display:none}.trade-panel{flex:0 0 300px;width:300px;background:var(--bg-surface);border-left:1px solid var(--border);padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.tp-account{display:flex;align-items:baseline;justify-content:space-between;padding:8px 10px;background:var(--bg-inset);border-radius:8px}.tp-label{font-size:11px;color:var(--text-muted)}.tp-equity{font-family:var(--mono);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.open-form{display:flex;flex-direction:column;gap:10px}.open-form[hidden]{display:none}.side-toggle{display:flex;gap:6px}.side{flex:1;padding:9px 0;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;border:1px solid var(--border);background:var(--bg-inset);color:var(--text-secondary);transition:all .12s ease}.side.long.active{background:var(--up);border-color:var(--up);color:#fff}.side.short.active{background:var(--down);border-color:var(--down);color:#fff}.tp-field{display:flex;flex-direction:column;gap:3px}.tp-field span{font-size:11px;color:var(--text-secondary)}.tp-field span em{color:var(--text-muted);font-style:normal}.tp-field.req span em{color:var(--down);font-weight:600}.tp-field input{font-family:var(--mono);font-size:13px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg-inset);color:var(--text-primary);outline:none;font-variant-numeric:tabular-nums}.tp-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tp-field.req input{border-color:#f0384a59}.tp-field.req input:focus{border-color:var(--down);box-shadow:0 0 0 3px var(--down-soft)}.risk-info{font-size:11px;color:var(--text-secondary);font-family:var(--mono);min-height:15px;line-height:1.4}.risk-info b{color:var(--text-primary)}.open-btn{padding:11px 0;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:700;color:#fff;transition:background .12s ease,opacity .12s ease}.open-btn.long{background:var(--up)}.open-btn.short{background:var(--down)}.open-btn:hover{filter:brightness(.95)}.open-btn:disabled{opacity:.45;cursor:not-allowed}.pos-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--bg-inset);display:flex;flex-direction:column;gap:9px}.pos-card[hidden]{display:none}.pos-head{display:flex;align-items:center;gap:8px}.pos-entry{font-family:var(--mono);font-size:12px;color:var(--text-secondary)}.pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:5px}.pill.long{background:var(--up-soft);color:var(--up)}.pill.short{background:var(--down-soft);color:var(--down)}.pos-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pos-grid>div{display:flex;flex-direction:column}.pos-grid span{font-size:10px;color:var(--text-muted)}.pos-grid b{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}.close-btn{padding:9px 0;border:1px solid var(--down);background:var(--bg-surface);color:var(--down);border-radius:8px;font-weight:600;cursor:pointer;font-size:13px}.close-btn:hover{background:var(--down);color:#fff}.dock{flex:0 0 200px;height:200px;display:flex;flex-direction:column;background:var(--bg-surface);border-top:1px solid var(--border)}.dock-tabs{display:flex;align-items:center;gap:4px;padding:6px 12px;border-bottom:1px solid var(--border)}.dock-tab{font-size:12px;font-weight:600;color:var(--text-secondary);background:transparent;border:none;padding:6px 10px;border-radius:6px;cursor:pointer}.dock-tab:hover{background:var(--bg-hover)}.dock-tab.active{background:var(--accent-soft);color:var(--accent)}.tab-count{font-family:var(--mono);background:var(--border);color:var(--text-secondary);padding:0 6px;border-radius:8px;font-size:11px}.btn.sm{padding:4px 9px;font-size:11px}.dock-body{flex:1;overflow:auto}.dock-pane{min-height:100%}.dock-pane[hidden]{display:none}.trade-table{width:100%;border-collapse:collapse;font-size:12px}.trade-table th{position:sticky;top:0;background:var(--bg-inset);z-index:1;text-align:right;padding:6px 10px;font-weight:600;color:var(--text-muted);font-size:11px;border-bottom:1px solid var(--border);white-space:nowrap}.trade-table th:nth-child(2),.trade-table th:nth-child(3),.trade-table th:nth-child(5),.trade-table th:last-child{text-align:left}.trade-table td{padding:6px 10px;text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border);white-space:nowrap}.trade-table tr:hover td{background:var(--bg-hover)}.trade-table td.dir{text-align:left}.trade-table td.time{text-align:left;color:var(--text-secondary)}.trade-table td.reason{text-align:left;color:var(--text-muted)}.trade-table .up{color:var(--up)}.trade-table .down{color:var(--down)}.empty-row td{text-align:center!important;color:var(--text-muted);font-family:var(--ui);padding:24px}.mini-pill{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px}.mini-pill.long{background:var(--up-soft);color:var(--up)}.mini-pill.short{background:var(--down-soft);color:var(--down)}.stat-tiles{display:flex;flex-wrap:wrap;gap:10px;padding:12px}.stat-tile{min-width:120px;padding:10px 12px;background:var(--bg-inset);border-radius:8px}.stat-tile .st-label{font-size:11px;color:var(--text-muted)}.stat-tile .st-val{font-family:var(--mono);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}.stat-tiles.compact{padding:0;gap:8px}.stat-tiles.compact .stat-tile{min-width:92px;padding:8px 10px}.stat-tiles.compact .st-val{font-size:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#17213757;display:flex;align-items:center;justify-content:center;padding:24px}.modal[hidden]{display:none}.modal-card{background:var(--bg-surface);border-radius:14px;box-shadow:0 12px 34px #17213738;display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.review-card{width:min(920px,94vw)}.library-card{width:min(1040px,94vw)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-title{font-size:16px;font-weight:700}.modal-meta{font-size:12px;color:var(--text-muted);font-family:var(--mono);margin-top:3px}.modal-x{border:none;background:transparent;font-size:16px;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:6px}.modal-x:hover{background:var(--bg-hover)}.modal-foot{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}.review-body{display:flex;gap:18px;padding:18px 20px;overflow:auto}.review-left{flex:1 1 55%;min-width:0}.review-snap{width:100%;border:1px solid var(--border);border-radius:8px;display:block}.review-right{flex:1 1 45%;display:flex;flex-direction:column;gap:12px}.review-field{display:flex;flex-direction:column;gap:4px}.review-field span{font-size:12px;color:var(--text-secondary);font-weight:600}.review-field textarea,.review-field input{font-family:var(--ui);font-size:13px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-inset);color:var(--text-primary);outline:none;resize:vertical}.review-field textarea:focus,.review-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.review-breakdown{padding:0 20px 6px;display:flex;flex-direction:column;gap:10px}.review-breakdown:empty{display:none}.review-breakdown .bd-title{font-size:12px;font-weight:700;color:var(--text-secondary)}.tb-item{display:flex;gap:12px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--bg-inset)}.tb-thumb{width:168px;height:96px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:#fff;flex:0 0 auto;cursor:pointer}.tb-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.tb-row1{display:flex;align-items:center;gap:8px}.tb-tf{font-size:11px;color:var(--text-secondary);background:var(--accent-soft);color:var(--accent);padding:1px 7px;border-radius:5px;font-family:var(--mono);font-weight:600}.tb-r{margin-left:auto;font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums}.tb-point{display:flex;align-items:center;gap:8px;font-size:12px}.tb-plabel{color:var(--text-muted);width:30px}.tb-ptime{font-family:var(--mono);color:var(--text-secondary);font-variant-numeric:tabular-nums}.tb-pprice{font-family:var(--mono);color:var(--text-primary);font-variant-numeric:tabular-nums}.tb-reason{font-size:11px;color:var(--text-muted)}.tb-jump{margin-left:2px;font-size:11px;padding:2px 8px;border-radius:5px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.tb-jump:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.tb-jump.replay:hover{background:var(--warn);border-color:var(--warn)}.tb-jumps{margin-left:auto;display:flex;gap:4px}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:18px 20px;overflow:auto}.lib-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;background:var(--bg-surface);transition:box-shadow .12s ease,transform .12s ease}.lib-card:hover{box-shadow:0 6px 18px #1721371f;transform:translateY(-1px)}.lib-thumb{width:100%;height:110px;object-fit:cover;background:var(--bg-inset);display:block;border-bottom:1px solid var(--border)}.lib-info{padding:9px 11px}.lib-info .lib-date{font-size:11px;color:var(--text-muted);font-family:var(--mono)}.lib-info .lib-r{font-family:var(--mono);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;margin:2px 0}.lib-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.lib-tag{font-size:10px;background:var(--bg-inset);color:var(--text-secondary);padding:1px 6px;border-radius:4px}.lib-empty{grid-column:1 / -1;text-align:center;color:var(--text-muted);padding:40px}.profile-card{width:min(1080px,96vw)}.profile-body{padding:18px 20px;overflow:auto;display:flex;flex-direction:column;gap:16px}.pf-empty{text-align:center;color:var(--text-muted);padding:60px 20px}.pf-hero{display:flex;align-items:center;gap:20px;padding:16px 18px;border-radius:14px;background:linear-gradient(135deg,#fffbf0,#f6f1e7);border:1px solid var(--border)}.pf-tier{text-align:center;flex:0 0 auto}.pf-tier-badge{font-size:30px;font-weight:800}.pf-score{font-family:var(--mono);font-size:40px;font-weight:800;line-height:1;color:var(--accent)}.pf-score small{font-size:14px;color:var(--text-muted);font-weight:600}.pf-path{font-size:11px;font-weight:700;color:var(--accent);margin-top:4px}.pf-hero-mid{flex:1;min-width:0}.pf-style{display:inline-block;font-size:13px;font-weight:700;color:#fff;background:var(--accent);padding:3px 12px;border-radius:20px;margin-bottom:10px}.pf-bignums{display:flex;flex-wrap:wrap;gap:18px}.pf-bignum{display:flex;flex-direction:column}.pf-bignum .v{font-family:var(--mono);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.pf-bignum .l{font-size:11px;color:var(--text-muted)}.pf-warn{font-size:11px;color:var(--warn);margin-top:6px}.pf-2col{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start}.pf-panel{border:1px solid var(--border);border-radius:12px;padding:14px}.pf-panel h3{font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:8px}.pf-radar-wrap{display:flex;flex-direction:column;align-items:center}.pf-radar-hint{font-size:11px;color:var(--text-muted);margin-top:4px;text-align:center}.pf-diag{display:flex;flex-direction:column;gap:10px}.pf-diag-card{border-radius:10px;padding:11px 13px;border-left:4px solid var(--border);background:var(--bg-inset)}.pf-diag-card.good{border-left-color:var(--up)}.pf-diag-card.bad{border-left-color:var(--down)}.pf-diag-card .dt{font-size:13px;font-weight:700;margin-bottom:3px}.pf-diag-card.good .dt{color:var(--up)}.pf-diag-card.bad .dt{color:var(--down)}.pf-diag-card .dx{font-size:12px;color:var(--text-secondary);line-height:1.5}.pf-diag-card .ds{font-size:12px;color:var(--text-primary);margin-top:5px}.pf-diag-card .ds b{color:var(--accent)}.pf-diag-empty{font-size:12px;color:var(--text-muted);padding:8px}.pf-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.pf-kpi{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.pf-kpi .k{font-size:11px;color:var(--text-muted)}.pf-kpi .v{font-family:var(--mono);font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;margin:2px 0}.pf-kpi .note{font-size:10px;color:var(--text-muted);line-height:1.3}.pf-slices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.pf-slice h4{font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:6px}.pf-slice table{width:100%;border-collapse:collapse;font-size:12px}.pf-slice th{text-align:right;font-size:10px;color:var(--text-muted);padding:3px 6px;font-weight:600}.pf-slice th:first-child{text-align:left}.pf-slice td{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;padding:4px 6px;border-top:1px solid var(--border)}.pf-slice td:first-child{text-align:left;font-family:var(--ui)}.pf-slice .up{color:var(--up)}.pf-slice .down{color:var(--down)}.radar-label{font-size:11px;fill:var(--text-secondary);font-family:var(--ui)}.radar-val{font-size:11px;font-weight:700;font-family:var(--mono)}.ind-card{width:min(420px,94vw)}.ind-body{padding:14px 18px 18px;overflow:auto}.ind-section-title{font-size:11px;font-weight:700;color:var(--text-muted);margin:12px 0 6px}.ind-section-title:first-child{margin-top:0}.ind-list{display:flex;flex-direction:column;gap:4px}.ind-row{display:flex;align-items:center;gap:8px;padding:6px 9px;border-radius:7px;background:var(--bg-inset)}.ind-row.hidden-ind .ind-name{color:var(--text-muted);text-decoration:line-through}.ind-eye{cursor:pointer;border:none;background:transparent;font-size:13px;padding:0 2px}.ind-swatch{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.ind-name{flex:1;font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}.ind-tagk{font-size:10px;color:var(--text-muted)}.ind-op{cursor:pointer;border:none;background:transparent;color:var(--text-muted);font-size:12px;padding:2px 4px;border-radius:4px}.ind-op:hover{background:var(--bg-hover);color:var(--text-primary)}.ind-empty{font-size:12px;color:var(--text-muted);padding:8px}.ind-add-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ind-add-row>span{font-size:11px;color:var(--text-muted);width:30px;flex:0 0 auto}.ind-add-row>div{display:flex;flex-wrap:wrap;gap:6px}.ind-add-btn{font-family:var(--mono);font-size:12px;padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);cursor:pointer;color:var(--text-primary)}.ind-add-btn:hover{border-color:var(--accent);color:var(--accent)}.ind-add-btn:disabled{opacity:.4;cursor:not-allowed}.ind-presets{display:flex;flex-wrap:wrap;gap:6px}.ind-preset-btn{font-size:12px;padding:5px 11px;border:1px solid var(--border);border-radius:15px;background:var(--bg-inset);cursor:pointer;color:var(--text-secondary)}.ind-preset-btn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.ind-edit-card{width:min(360px,92vw)}.ind-edit-body{padding:14px 18px;display:flex;flex-direction:column;gap:10px}.ind-edit-field{display:flex;align-items:center;gap:10px}.ind-edit-field label{flex:1;font-size:12px;color:var(--text-secondary)}.ind-edit-field label small{color:var(--text-muted)}.ind-edit-field input[type=number]{width:90px;font-family:var(--mono);font-size:13px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-inset);color:var(--text-primary);outline:none;font-variant-numeric:tabular-nums}.ind-edit-field input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ind-edit-field input[type=color]{width:34px;height:26px;border:1px solid var(--border);border-radius:6px;padding:1px;background:var(--bg-surface);cursor:pointer}.ind-edit-err{font-size:11px;color:var(--down)}#bareBtn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff8ec,#f3ebdd)}.login-overlay[hidden]{display:none}.login-card{width:320px;background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 40px #5a461e24;padding:32px 28px;display:flex;flex-direction:column;gap:12px}.login-card[hidden]{display:none}.login-logo{font-size:22px;font-weight:800;text-align:center}.login-sub{font-size:12px;color:var(--text-muted);text-align:center;margin-bottom:12px}.login-input{font-size:14px;padding:11px 12px;border:1px solid var(--border);border-radius:9px;background:var(--bg-inset);color:var(--text-primary);outline:none}.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-err{font-size:12px;color:var(--down);min-height:16px;text-align:center}.login-submit{padding:11px 0;border:none;border-radius:9px;cursor:pointer;background:var(--accent);color:#fff;font-size:15px;font-weight:700;margin-top:4px}.login-submit:hover{background:#9a7009}.user-badge{font-size:12px;color:var(--text-secondary)}.login-switch{text-align:center;font-size:12px;color:var(--text-muted);margin-top:4px}.login-switch a{color:var(--accent);text-decoration:none;font-weight:600;margin-left:4px}.pending-text{font-size:13px;color:var(--text-secondary);line-height:1.7;text-align:center;margin:8px 0 12px}.admin-card{width:min(980px,96vw)}.admin-bar{display:flex;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid var(--border)}.admin-tabs{display:flex;gap:4px;background:var(--bg-inset);padding:3px;border-radius:7px}.admin-tab{font-size:12px;padding:4px 12px;border:none;background:transparent;border-radius:5px;cursor:pointer;color:var(--text-secondary)}.admin-tab.active{background:var(--accent);color:#fff}.admin-search{margin-left:auto;font-size:12px;padding:5px 10px;width:160px;border:1px solid var(--border);border-radius:7px;background:var(--bg-inset);color:var(--text-primary);outline:none}.admin-body{overflow:auto;padding:0 20px 18px}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th{position:sticky;top:0;background:var(--bg-surface);z-index:1;text-align:left;padding:8px;font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:7px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.admin-table tr.pending-row{background:#e086000f}.st-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:5px}.st-pill.p0{background:#e0860026;color:#b06a00}.st-pill.p1{background:var(--up-soft, rgba(8,153,129,.12));color:var(--up)}.st-pill.p2{background:var(--bg-inset);color:var(--text-muted)}.adm-btn{font-size:11px;padding:3px 9px;border-radius:5px;cursor:pointer;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);margin-right:4px}.adm-btn:hover{border-color:var(--accent);color:var(--accent)}.adm-btn.ok{background:var(--up);border-color:var(--up);color:#fff}.adm-btn.ok:hover{filter:brightness(.95);color:#fff}.stale{color:var(--text-muted)}.stale:after{content:" ⚠️"}.adm-badge{display:inline-block;min-width:16px;padding:0 4px;margin-left:4px;background:var(--down);color:#fff;border-radius:8px;font-size:10px;font-weight:700;text-align:center}.workspace{display:flex;flex:1 1 auto;min-height:0}.chart-col{position:relative;flex:1 1 auto;min-width:0}.chart{position:absolute;top:0;right:0;bottom:0;left:0}.legend{position:absolute;left:12px;top:10px;z-index:4;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--text-secondary);pointer-events:none;background:#ffffffb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:4px 8px;border-radius:6px}.legend b{color:var(--text-primary);font-weight:600}.legend .o{color:var(--text-muted)}.legend .ma-line{font-size:11px;margin-top:2px}.status{position:absolute;right:12px;bottom:12px;z-index:4;font-size:11px;color:var(--text-muted);font-family:var(--mono);background:#ffffffb8;padding:2px 8px;border-radius:6px;opacity:0;transition:opacity .2s ease}.status.show{opacity:1}.rules-card{width:min(860px,95vw)}.rules-body{padding:14px 22px 22px;overflow:auto}.rules-body h4{font-size:13px;font-weight:700;color:var(--text-primary);margin:16px 0 8px}.rules-body h4:first-child{margin-top:0}.rules-table{width:100%;border-collapse:collapse;font-size:12px}.rules-table td,.rules-table th{padding:8px 10px;border:1px solid var(--border);vertical-align:top;line-height:1.5}.rules-table th{background:var(--bg-inset);font-size:11px;color:var(--text-secondary);text-align:left}.rules-table td:first-child{white-space:nowrap;background:var(--bg-inset);font-weight:600}.rules-table.three td{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11.5px}.rules-table.three td:first-child{font-family:var(--ui)}.rules-note{font-size:12px;color:var(--text-secondary);line-height:1.9;background:var(--bg-inset);border-radius:8px;padding:12px 14px}.pf-rules-link{font-size:11px;color:var(--accent);cursor:pointer;text-decoration:none;margin-top:4px;display:inline-block}.pf-rules-link:hover{text-decoration:underline}.season-row{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.season-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.season-pill{font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-inset);border:1px solid var(--border);border-radius:999px;padding:2px 8px}.season-date{font-size:11px;color:var(--text-muted)}.season-count{font-family:var(--mono);font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.season-count b{font-size:13px;color:var(--text-primary)}.season-track{height:4px;border-radius:999px;background:var(--bg-inset);margin-top:8px;overflow:hidden}.season-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .12s ease}.season-done{font-size:11px;color:var(--up)}.season-archive-btn{height:28px;padding:0 14px;border-radius:8px;cursor:pointer;background:transparent;border:1px solid var(--accent);color:var(--accent);font-size:12px;font-weight:600;transition:all .12s ease}.season-archive-btn:hover{background:#b8860b0f;border-color:#9a7009;color:#9a7009}.season-banner{display:flex;align-items:center;gap:10px;background:var(--bg-inset);border:1px solid var(--border);border-radius:8px;padding:7px 12px;font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.03em}.season-list{display:flex;flex-direction:column;gap:8px}.season-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:12px 16px;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.season-card:hover{border-color:#b8860b66;box-shadow:0 1px 4px #1a15100d}.season-card.mini{max-width:360px;margin:12px auto 0;padding:9px 14px;font-size:12px}.sc-title{font-size:13px;font-weight:600}.sc-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.sc-right{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-variant-numeric:tabular-nums}.sc-right>span:first-child{font-size:15px;font-weight:700}.sc-n{font-size:11px;color:var(--text-muted)}.sc-ch{color:var(--text-muted)}.season-modal-card{width:min(480px,94vw);transition:width .12s ease}.season-modal-card.wide{width:min(560px,94vw)}.season-modal-body{padding:16px 22px 22px;overflow:auto}.sm-summary{background:var(--bg-inset);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:14px}.sm-summary .t1{font-size:14px;font-weight:700}.sm-summary .t2{font-family:var(--mono);font-size:12px;color:var(--text-secondary);margin-top:4px;font-variant-numeric:tabular-nums}.sm-summary .t3{font-size:11px;color:var(--text-muted);margin-top:3px}.sm-points{font-size:12px;color:var(--text-secondary);line-height:1.9;margin-bottom:10px}.sm-note{font-size:11px;color:var(--text-muted);text-align:center;margin:8px 0 12px}.sm-memo{width:100%;font-size:13px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--bg-inset);color:var(--text-primary);outline:none;margin-bottom:14px}.sm-memo:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sm-btns{display:flex;gap:10px}.sm-btns button{flex:1;height:38px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s ease}.sm-cancel{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary)}.sm-cancel:hover{background:var(--bg-hover)}.sm-confirm{background:var(--accent);border:1px solid var(--accent);color:#fff}.sm-confirm:hover{background:#9a7009}.sm-confirm:disabled{opacity:.5;cursor:not-allowed}.settle-band{background:var(--bg-inset);border-bottom:1px solid var(--border);margin:-16px -22px 16px;padding:8px;text-align:center;font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.05em}.settle-stage{text-align:center;padding:10px 0 4px}.settle-badge{font-size:56px;line-height:1.2;display:inline-block;animation:settleIn .24s ease;background:radial-gradient(rgba(184,134,11,.1),transparent 70%);border-radius:50%;padding:12px 20px}@keyframes settleIn{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.settle-tier{font-size:19px;font-weight:700;margin-top:2px}.settle-score{font-family:var(--mono);font-size:36px;font-weight:800;color:var(--accent);margin-top:4px}.settle-score small{font-size:13px;color:var(--text-muted);font-weight:600}.settle-period{text-align:center;font-size:12px;color:var(--text-secondary);margin:14px 0}.settle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.settle-cell{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.settle-cell .l{font-size:11px;color:var(--text-muted)}.settle-cell .v{font-family:var(--mono);font-size:20px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.settle-memo{font-size:12px;color:var(--text-secondary);text-align:center;font-style:italic;margin-bottom:12px}.settle-foot{font-size:10px;color:var(--text-muted);text-align:center;margin-top:10px}.setup-wrap{position:relative}.setup-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:240px;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #1a15101f;padding:6px;display:flex;flex-direction:column;gap:2px}.setup-menu[hidden]{display:none}.setup-item{display:flex;flex-direction:row;align-items:center;gap:10px;padding:11px 12px;border:none;background:transparent;border-radius:7px;cursor:pointer;text-align:left;transition:background .12s ease}.setup-ico{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--bg-inset);border:1px solid var(--border);border-radius:8px}.setup-item:hover{background:var(--bg-hover)}.setup-item b{font-size:13px;color:var(--text-primary)}.setup-item span{font-size:11px;color:var(--text-muted)}.setup-item.disabled{opacity:.5;cursor:not-allowed}.setup-item.disabled:hover{background:transparent}.setup-dir{display:flex;gap:3px;background:var(--bg-inset);padding:3px;border-radius:7px;margin-bottom:4px}.dir-opt{flex:1;font-size:11px;padding:5px 0;border:none;background:transparent;border-radius:5px;cursor:pointer;color:var(--text-secondary);font-weight:600;transition:all .12s ease}.dir-opt.active{background:var(--accent);color:#fff}.setup-foot{font-size:10px;color:var(--text-muted);text-align:center;padding:5px 0 2px;border-top:1px dashed var(--border);margin-top:3px}.setup-foot.warn{color:var(--down)}.key-hints{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted);margin-left:4px;white-space:nowrap}.key-hints kbd{font-family:var(--mono);font-size:10px;line-height:1;background:var(--bg-inset);border:1px solid var(--border);border-bottom-width:2px;padding:2px 5px;border-radius:4px;margin-right:2px;color:var(--text-secondary)}@media (max-width: 1100px){.key-hints{display:none}}.atr-row{display:flex;gap:6px;margin-top:-4px}.atr-row:empty{display:none}.atr-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 0;border:1px solid var(--border);border-radius:7px;background:var(--bg-inset);cursor:pointer;transition:all .12s ease;font-size:10px;color:var(--text-muted)}.atr-btn b{font-family:var(--mono);font-size:11px;color:var(--text-primary);font-variant-numeric:tabular-nums}.atr-btn:hover{border-color:var(--accent);background:var(--accent-soft)}.atr-btn:hover b{color:var(--accent)}.pct-slider{width:100%;accent-color:var(--accent);height:24px;cursor:pointer}#pctLabel{font-family:var(--mono);color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px 10px;padding-top:4px}.ach-medal{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:default}.ach-ico{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.6),transparent 62%),var(--mc);border:2px solid var(--mc);box-shadow:0 2px 8px #1a151024}.ach-medal:not(.on) .ach-ico{background:#ddd8cd;border-color:#cfc9bd;filter:grayscale(1);opacity:.45;box-shadow:none}.ach-medal:not(.on) .ach-name{color:var(--text-muted)}.ach-name{font-size:11px;font-weight:600;text-align:center}.ach-when{font-size:9px;color:var(--accent);font-weight:700;font-family:var(--mono)}.lev-row{display:flex;gap:5px}.lev-btn{flex:1;font-family:var(--mono);font-size:12px;font-weight:600;padding:6px 0;border:1px solid var(--border);border-radius:7px;background:var(--bg-inset);color:var(--text-secondary);cursor:pointer;transition:all .12s ease}.lev-btn:hover{border-color:var(--accent);color:var(--accent)}.lev-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.ach-card{width:min(760px,95vw)}.ach-body{padding:18px 22px 22px;overflow:auto}.stop-tabs{display:flex;gap:4px;background:var(--bg-inset);padding:3px;border-radius:7px;margin-bottom:2px}.stop-tab{flex:1;font-size:11px;font-weight:600;padding:5px 0;border:none;background:transparent;border-radius:5px;cursor:pointer;color:var(--text-secondary);transition:all .12s ease}.stop-tab.active{background:var(--accent);color:#fff}.atr-panel{display:flex;flex-direction:column;gap:6px}.atr-panel[hidden]{display:none}.ach-tip{position:fixed;z-index:9999;pointer-events:none;max-width:260px;padding:10px 12px;border-radius:10px;background:#2d2416;color:#f5edd8;font-size:12.5px;line-height:1.55;box-shadow:0 6px 24px #00000047;border:1px solid rgba(212,160,23,.35)}.ach-tip b{display:block;font-size:13.5px;margin-bottom:3px;color:#ffd977}.ach-tip span{display:block}.ach-tip i{display:block;font-style:normal;margin-top:5px;opacity:.75;font-size:11.5px}td.fee{color:var(--text-muted)}
