:root{--bg-primary:#0d0f14;--bg-secondary:#161a22;--bg-card:#1c2029;--accent:#d4a017;--accent-hover:#e6b422;--text-primary:#e8e6e3;--text-secondary:#9ca3af;--text-muted:#6b7280;--border:#2a2f3a;--danger:#ef4444;--success:#22c55e;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:system-ui,-apple-system,sans-serif;line-height:1.5}.app{max-width:960px;margin:0 auto;padding:24px}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;display:flex}.app-header h1{color:var(--accent);font-size:24px;font-weight:700}.app-header h1 span{color:var(--text-secondary);margin-left:8px;font-size:14px;font-weight:400}.tab-nav{border-bottom:1px solid var(--border);gap:4px;margin-bottom:24px;padding-bottom:0;display:flex}.tab-link{color:var(--text-secondary);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s}.tab-link:hover{color:var(--text-primary)}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.sub-nav{gap:4px;margin-bottom:16px;display:flex}.sub-link{color:var(--text-muted);border-radius:4px;padding:4px 12px;font-size:13px;text-decoration:none;transition:color .15s,background .15s}.sub-link:hover{color:var(--text-primary);background:var(--bg-card)}.sub-active{color:var(--accent);background:#d4a0171a}.app-content{margin-top:0}button{cursor:pointer;border-radius:var(--radius);border:none;padding:8px 16px;font-size:14px;transition:background .15s}.btn-primary{background:var(--accent);color:var(--bg-primary);font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff}.btn-small{padding:4px 10px;font-size:12px}.team-list{flex-direction:column;gap:12px;display:flex}.team-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:16px;transition:border-color .15s}.team-card:hover{border-color:var(--accent)}.team-card h3{margin-bottom:4px;font-size:16px}.team-card .meta{color:var(--text-secondary);font-size:13px}.team-detail-header{align-items:center;gap:12px;margin-bottom:24px;display:flex}.team-detail-header h2{flex:1;font-size:20px}.player-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:16px;display:grid}.player-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.player-card .player-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.player-card .player-name{font-size:15px;font-weight:600}.player-card .player-class{color:var(--accent);font-size:13px;font-weight:600}.player-card .player-info{color:var(--text-secondary);font-size:13px}.player-card .player-actions{gap:8px;margin-top:12px;display:flex}.form-overlay{z-index:10;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.form-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;padding:24px}.form-card h3{margin-bottom:16px;font-size:18px}.form-field{margin-bottom:12px}.form-field label{color:var(--text-secondary);margin-bottom:4px;font-size:13px;display:block}.form-field input,.form-field select{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);padding:8px 12px;font-size:14px}.form-field input:focus,.form-field select:focus{border-color:var(--accent);outline:none}.form-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:48px 16px}.empty-state p{margin-bottom:16px}.loading{text-align:center;color:var(--text-secondary);padding:32px}.error{border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);background:#ef44441a;margin-bottom:16px;padding:12px 16px}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-header h3{color:var(--text-secondary);font-size:16px}.text-muted{color:var(--text-muted);font-size:13px}.session-toolbar{align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.session-list{flex-direction:column;gap:12px;display:flex}.session-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:16px;transition:border-color .15s;position:relative}.session-card:hover{border-color:var(--accent)}.session-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.session-date{font-size:14px;font-weight:600}.session-status{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.session-active{color:var(--success);background:#22c55e26}.session-ended{color:var(--text-secondary);background:#9ca3af26}.session-notes{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.session-meta{color:var(--text-muted);gap:12px;font-size:12px;display:flex}.session-delete{opacity:0;transition:opacity .15s;position:absolute;top:12px;right:12px}.session-card:hover .session-delete{opacity:1}.session-section{margin-bottom:24px}.session-section h3{color:var(--text-secondary);margin-bottom:8px;font-size:15px}.session-inline-form{align-items:center;gap:8px;display:flex}.session-input{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);flex:1;padding:8px 12px;font-size:14px}.session-input:focus{border-color:var(--accent);outline:none}.session-actions{border-top:1px solid var(--border);gap:12px;margin-top:32px;padding-top:16px;display:flex}.objective-list{flex-direction:column;gap:6px;display:flex}.objective-row{align-items:center;gap:8px;display:flex}.objective-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex:1;align-items:center;gap:10px;padding:8px 12px;display:flex}.objective-status-btn{text-align:center;border-radius:4px;min-width:70px;padding:2px 8px;font-size:11px;font-weight:600}.objective-todo .objective-status-btn{color:var(--text-secondary);background:#9ca3af26}.objective-in_progress .objective-status-btn{color:var(--accent);background:#d4a01726}.objective-done .objective-status-btn{color:var(--success);background:#22c55e26}.objective-desc{font-size:14px}.objective-done .objective-desc{color:var(--text-muted);text-decoration:line-through}.drop-list{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.drop-row{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;padding:6px 10px;display:flex}.drop-name{flex:1;font-size:14px}.drop-qty{color:var(--accent);font-size:13px;font-weight:600}.drop-add-form{align-items:flex-start;gap:8px;margin-top:8px;display:flex}.drop-search-wrapper{flex:1;position:relative}.drop-clear{color:var(--text-muted);background:0 0;padding:0 4px;font-size:16px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.drop-suggestions{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);z-index:5;max-height:200px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.drop-suggestions li button{text-align:left;width:100%;color:var(--text-primary);background:0 0;border-radius:0;padding:8px 12px;font-size:13px;display:block}.drop-suggestions li button:hover{background:var(--bg-card)}.drop-qty-input{flex:none;width:70px}.tracker-toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.tracker-list{flex-direction:column;gap:4px;display:flex}.tracker-row{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 12px;display:flex}.tracker-name{flex:1;font-size:14px}.tracker-level{color:var(--text-muted);font-size:12px}.status-badge{text-align:center;border-radius:4px;min-width:70px;padding:2px 8px;font-size:11px;font-weight:600}.status-todo{color:var(--text-secondary);background:#9ca3af26}.status-in_progress{color:var(--accent);background:#d4a01726}.status-done{color:var(--success);background:#22c55e26}.level-filter{flex-direction:column;gap:4px;display:flex}.level-filter label{color:var(--text-secondary);font-size:13px}.level-filter-input{width:80px}.synergy-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:16px}.synergy-card h3{color:var(--accent);margin-bottom:12px;font-size:16px}.synergy-roles{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.synergy-role{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;font-size:13px}.synergy-role-name{color:var(--accent);margin-right:6px;font-weight:600}.synergy-players{color:var(--text-secondary)}.synergy-missing{color:var(--danger);margin-top:4px;font-size:13px}.enrichment-panel{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.enrichment-groups{flex-direction:column;gap:8px;margin-top:8px;display:flex}.enrichment-group h4{color:var(--accent);margin-bottom:4px;font-size:13px}.enrichment-group ul{color:var(--text-primary);font-size:13px;list-style:none}.enrichment-group li{padding:2px 0}
