.bet-panel { font-family: -apple-system, system-ui, sans-serif; max-width: 1200px; margin: 0 auto; }
.bet-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.bet-header h2 { margin:0; }
.bet-user { font-size:14px; color:#555; }
.bet-badge { background:#2271b1; color:#fff; padding:2px 6px; border-radius:4px; font-size:11px; margin-left:6px; }
.bet-tabs { display:flex; gap:4px; border-bottom:2px solid #ddd; margin-bottom:16px; flex-wrap:wrap; }
.bet-tab { background:none; border:none; padding:8px 14px; cursor:pointer; font-size:14px; border-bottom:2px solid transparent; margin-bottom:-2px; }
.bet-tab:hover { color:#2271b1; }
.bet-tab.active { color:#2271b1; border-bottom-color:#2271b1; font-weight:600; }
.bet-content { min-height: 300px; }
.bet-loading { text-align:center; padding:40px; color:#888; }
.bet-notice { padding:16px; background:#fff3cd; border:1px solid #ffeeba; border-radius:6px; margin:20px 0; }

.bet-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:24px; }
.bet-card { background:#f8f9fa; border:1px solid #e0e0e0; border-radius:8px; padding:16px; text-align:center; }
.bet-card-value { font-size:28px; font-weight:700; color:#2271b1; }
.bet-card-label { font-size:12px; color:#666; text-transform:uppercase; margin-top:4px; }

.bet-table { width:100%; border-collapse:collapse; }
.bet-table th, .bet-table td { padding:8px 10px; text-align:left; border-bottom:1px solid #eaeaea; font-size:14px; }
.bet-table th { background:#f8f9fa; font-weight:600; }
.bet-table tr:hover { background:#fafafa; }
.bet-status { display:inline-block; padding:2px 8px; border-radius:10px; font-size:12px; }
.bet-status-online { background:#d4edda; color:#155724; }
.bet-status-offline { background:#f8d7da; color:#721c24; }
.bet-status-active { background:#d4edda; color:#155724; }
.bet-status-inactive { background:#e2e3e5; color:#383d41; }

.bet-btn { background:#2271b1; color:#fff; border:none; padding:6px 12px; border-radius:4px; cursor:pointer; font-size:13px; margin-right:4px; }
.bet-btn:hover { background:#135e96; }
.bet-btn:disabled { opacity:.5; cursor:not-allowed; }
.bet-btn-danger { background:#b32d2e; }
.bet-btn-danger:hover { background:#8a2424; }
.bet-btn-ghost { background:transparent; color:#2271b1; border:1px solid #2271b1; }
.bet-btn-ghost:hover { background:#f0f6fc; }

.bet-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.bet-toolbar h3 { margin:0; }

.bet-modal { position:fixed; inset:0; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; z-index:9999; }
.bet-modal[hidden] { display:none; }
.bet-modal-box { background:#fff; border-radius:8px; padding:24px; max-width:520px; width:90%; max-height:90vh; overflow:auto; position:relative; }
.bet-modal-close { position:absolute; top:8px; right:12px; background:none; border:none; font-size:24px; cursor:pointer; color:#666; }

.bet-form label { display:block; margin:12px 0 4px; font-weight:600; font-size:13px; }
.bet-form input[type=text], .bet-form input[type=email], .bet-form input[type=password], .bet-form textarea, .bet-form select {
    width:100%; padding:8px; border:1px solid #ccc; border-radius:4px; font-size:14px; box-sizing:border-box;
}
.bet-form textarea { min-height:70px; resize:vertical; }
.bet-form-actions { margin-top:20px; display:flex; gap:8px; justify-content:flex-end; }
.bet-form-error { color:#b32d2e; font-size:13px; margin-top:8px; }

.bet-toast { position:fixed; bottom:24px; right:24px; background:#1e1e1e; color:#fff; padding:12px 18px; border-radius:6px; z-index:10000; max-width:400px; }
.bet-toast[hidden] { display:none; }
.bet-toast.ok { background:#155724; }
.bet-toast.err { background:#721c24; }

/* Dendogramma */
.bet-tree { font-size:14px; }
.bet-tree details { margin-left:12px; border-left:2px solid #e0e0e0; padding-left:12px; }
.bet-tree details > summary { cursor:pointer; padding:6px 4px; font-weight:600; list-style:none; }
.bet-tree details > summary::-webkit-details-marker { display:none; }
.bet-tree details > summary::before { content:"▸ "; color:#888; }
.bet-tree details[open] > summary::before { content:"▾ "; }
.bet-tree .bet-leaf { margin-left:24px; padding:3px 0; font-size:13px; color:#555; }
.bet-tree .bet-leaf a { color:#2271b1; text-decoration:none; }
.bet-tree .bet-token { font-family:monospace; font-size:12px; background:#f0f0f1; padding:2px 6px; border-radius:3px; }

.bet-copy { cursor:pointer; color:#2271b1; font-size:12px; margin-left:6px; }
.bet-bm-chip { display:inline-block; background:#f0f0f1; padding:2px 8px; border-radius:10px; font-size:12px; margin-right:4px; }
.bet-status-expiring { background:#fff3cd; color:#856404; }