/* =====================================================
   DVTV デイジーちゃんX CSS v1.6.3
   ===================================================== */

:root {
    --daisy-bg:          #ffffff;
    --daisy-bg2:         #f8f9fa;
    --daisy-card-bg:     #ffffff;
    --daisy-border:      #e0e0e0;
    --daisy-text:        #222222;
    --daisy-text-muted:  #666666;
    --daisy-accent:      #1da1f2;
    --daisy-accent-dark: #0d8ecf;
    --daisy-success:     #4caf50;
    --daisy-warning:     #f5a623;
    --daisy-danger:      #f44336;
    --daisy-priority:    #ff6b35;
    --daisy-mute:        #9e9e9e;
    --daisy-shadow:      0 2px 8px rgba(0,0,0,.08);
}

/* ダークモード */
.dvtv-dark {
    --daisy-bg:         #1a1a2e;
    --daisy-bg2:        #16213e;
    --daisy-card-bg:    #0f3460;
    --daisy-border:     #2d4a7a;
    --daisy-text:       #e0e0e0;
    --daisy-text-muted: #a0a0a0;
    --daisy-shadow:     0 2px 8px rgba(0,0,0,.4);
}
.dvtv-dark h2,
.dvtv-dark h3,
.dvtv-dark h4,
.dvtv-dark label,
.dvtv-dark span,
.dvtv-dark a:not(.dvtv-daisy-btn),
.dvtv-dark td,
.dvtv-dark th,
.dvtv-dark .dvtv-daisy-toolbar,
.dvtv-dark .action-label,
.dvtv-dark .tweet-stats { color: var(--daisy-text) !important; }
.dvtv-dark input,
.dvtv-dark select,
.dvtv-dark textarea {
    background: var(--daisy-bg2) !important;
    color:      var(--daisy-text) !important;
    border-color: var(--daisy-border) !important;
}

.dvtv-daisy-wrap {
    background:  var(--daisy-bg);
    color:       var(--daisy-text);
    font-size:   14px;
    line-height: 1.6;
    padding:     16px;
    border-radius: 8px;
    transition:  background .3s, color .3s;
}

/* =====================================================
   表示設定バー
   ===================================================== */
.dvtv-daisy-view-bar {
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         10px;
    padding:     8px 12px;
    background:  var(--daisy-bg2);
    border:      1px solid var(--daisy-border);
    border-radius: 6px;
    margin-bottom: 14px;
}
.view-bar-label { font-size:12px; color:var(--daisy-text-muted); }

/* トグルスイッチ */
.dvtv-dark-toggle {
    display:     flex;
    align-items: center;
    gap:         6px;
    cursor:      pointer;
    user-select: none;
    font-size:   13px;
}
.dvtv-dark-toggle input[type=checkbox] { display:none; }
.dvtv-toggle-track {
    width:36px; height:20px;
    background: var(--daisy-border);
    border-radius: 10px;
    position:  relative;
    transition: background .25s;
}
.dvtv-dark-toggle input:checked + .dvtv-toggle-track { background: var(--daisy-accent); }
.dvtv-toggle-thumb {
    width:16px; height:16px;
    background: #fff;
    border-radius: 50%;
    position:  absolute;
    top:2px; left:2px;
    transition: left .25s;
    box-shadow: 0 1px 3px rgba(0,0,0,.3);
}
.dvtv-dark-toggle input:checked + .dvtv-toggle-track .dvtv-toggle-thumb { left:18px; }

/* フォントサイズボタン */
.dvtv-font-btns { display:flex; gap:4px; }
.dvtv-font-btn {
    padding:2px 8px; font-size:12px;
    border:1px solid var(--daisy-border);
    background:var(--daisy-card-bg); color:var(--daisy-text);
    border-radius:4px; cursor:pointer;
    transition: background .15s, color .15s;
}
.dvtv-font-btn.active,
.dvtv-font-btn:hover { background:var(--daisy-accent); color:#fff; border-color:var(--daisy-accent); }

/* =====================================================
   タブ
   ===================================================== */
.dvtv-daisy-tabs {
    display:  flex;
    flex-wrap: wrap;
    gap:      3px;
    margin-bottom: 10px;
    border-bottom: 2px solid var(--daisy-border);
    padding-bottom: 3px;
}
.dvtv-tab-wrap {
    display:     flex;
    align-items: center;
    gap:         1px;
}
.dvtv-daisy-tab {
    padding:    4px 8px;
    background: var(--daisy-bg2);
    border:     1px solid var(--daisy-border);
    border-radius: 4px 4px 0 0;
    color:      var(--daisy-text);
    cursor:     pointer;
    font-size:  11px;
    line-height: 1.3;
    transition: background .15s;
}
.dvtv-daisy-tab:hover,
.dvtv-daisy-tab.active {
    background: var(--daisy-accent);
    color:      #fff;
    border-color: var(--daisy-accent);
}
.btn-collect-now {
    padding:   4px 6px !important;
    font-size: 14px !important;
    line-height: 1 !important;
    border-radius: 4px !important;
    background: var(--daisy-bg2) !important;
    border:    1px solid var(--daisy-border) !important;
    cursor:    pointer;
    color:     var(--daisy-text) !important;
}
.btn-collect-now:hover { background:var(--daisy-warning) !important; color:#fff !important; }

/* 管理ページタブ（キーワード管理） */
.dvtv-daisy-kw-tabs {
    display:       flex;
    gap:           0;
    margin-bottom: 0;
    border-bottom: 2px solid var(--daisy-border);
}
.dvtv-kw-tab {
    padding:       10px 18px;
    background:    var(--daisy-bg2);
    border:        1px solid var(--daisy-border);
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    color:         var(--daisy-text);
    cursor:        pointer;
    font-size:     13px;
    font-weight:   600;
    transition:    background .15s;
    margin-right:  2px;
}
.dvtv-kw-tab:hover { background: var(--daisy-card-bg); }
.dvtv-kw-tab.active {
    background:   var(--daisy-card-bg);
    border-bottom: 2px solid var(--daisy-card-bg);
    color:        var(--daisy-accent);
    margin-bottom: -2px;
}
.dvtv-kw-panel {
    padding:       16px 0;
}
.dvtv-kw-panel:not(.active) { display: none; }

/* =====================================================
   ツールバー
   ===================================================== */
.dvtv-daisy-toolbar {
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         10px;
    margin-bottom: 10px;
    padding:     8px;
    background:  var(--daisy-bg2);
    border-radius: 6px;
    font-size:   13px;
}
.dvtv-daisy-sort { display:flex; align-items:center; gap:4px; font-size:12px; }
.dvtv-sort-btn {
    padding:  2px 8px;
    border:   1px solid var(--daisy-border);
    border-radius: 4px;
    color:    var(--daisy-text-muted);
    text-decoration: none;
    font-size: 12px;
}
.dvtv-sort-btn.active,
.dvtv-sort-btn:hover { background:var(--daisy-accent); color:#fff; border-color:var(--daisy-accent); }

/* =====================================================
   ツイートカード
   ===================================================== */
.dvtv-daisy-tweet {
    background:   var(--daisy-card-bg);
    border:       1px solid var(--daisy-border);
    border-radius: 8px;
    padding:      12px 14px;
    margin-bottom: 10px;
    box-shadow:   var(--daisy-shadow);
    transition:   background .3s, border-color .3s;
}
.dvtv-daisy-tweet.priority {
    border-left:  3px solid var(--daisy-priority);
    background:   #fffbf0;
}
.dvtv-dark .dvtv-daisy-tweet.priority {
    background:   #2e2500;
    border-left-color: #f5a623;
}
.dvtv-daisy-tweet.mute     { opacity:.6; }
.dvtv-daisy-tweet.block    { display:none; }

/* 優先フィルターボタン */
.btn-priority-filter {
    background:  var(--daisy-bg2) !important;
    color:       var(--daisy-text-muted) !important;
    border:      1px solid var(--daisy-border) !important;
}
.btn-priority-filter:hover,
.btn-priority-filter.active {
    background:  #f5a623 !important;
    color:       #fff !important;
    border-color: #f5a623 !important;
}

.tweet-header {
    display:       flex;
    justify-content: space-between;
    align-items:   center;
    margin-bottom: 6px;
    flex-wrap:     wrap;
    gap:           4px;
}
.tweet-user { font-weight:600; font-size:13px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.tweet-user a { color:var(--daisy-accent); text-decoration:none; }
.tweet-user a:hover { text-decoration:underline; }
.tweet-date { font-size:11px; color:var(--daisy-text-muted); white-space:nowrap; }

.tweet-lang-badge {
    font-size:10px; padding:1px 5px;
    background:var(--daisy-bg2); border:1px solid var(--daisy-border);
    border-radius:3px; color:var(--daisy-text-muted);
}
.tweet-translated-mark { font-size:11px; color:var(--daisy-accent); margin-left:4px; }

.tweet-content-wrap { margin-bottom:8px; }
.tweet-content { line-height:1.7; font-size:inherit; }
.tweet-text {
    color:       var(--daisy-text);
    display:     block;
}

/* メディア */
.tweet-media {
    display:  flex;
    flex-wrap: wrap;
    gap:      6px;
    margin-bottom: 8px;
}
.tweet-media img {
    max-width:  180px;
    max-height: 120px;
    object-fit: cover;
    border-radius: 6px;
    cursor:     pointer;
    border:     1px solid var(--daisy-border);
    transition: opacity .15s;
}
.tweet-media img:hover { opacity:.85; }

/* 動画保存ボタン */
.btn-video-dl {
    display:       inline-flex;
    align-items:   center;
    gap:           4px;
    background:    #6366f1;
    color:         #fff !important;
    text-decoration: none;
    padding:       4px 10px;
    border-radius: 4px;
    font-size:     11px;
    transition:    background .15s;
}
.btn-video-dl:hover { background: #4f46e5; }

/* 動画再生時間バッジ */
.video-duration-badge {
    display:       inline-block;
    font-size:     10px;
    color:         var(--daisy-text-muted);
    padding:       2px 6px;
    background:    var(--daisy-bg2);
    border-radius: 3px;
    vertical-align: middle;
}

/* 動画ラップ */
.dvtv-video-wrap {
    position:      relative;
    display:       inline-block;
    max-width:     280px;
    cursor:        pointer;
    border-radius: 6px;
    overflow:      hidden;
    border:        1px solid var(--daisy-border);
}
.dvtv-video-wrap .dvtv-video-thumb {
    display:       block;
    max-width:     100%;
    max-height:    180px;
    object-fit:    cover;
}
.dvtv-video-play-btn {
    position:      absolute;
    top:           50%; left: 50%;
    transform:     translate(-50%, -50%);
    width:         48px; height: 48px;
    background:    rgba(0,0,0,.6);
    color:         #fff;
    border:        none;
    border-radius: 50%;
    font-size:     20px;
    cursor:        pointer;
    transition:    background .15s;
}
.dvtv-video-play-btn:hover { background: rgba(0,0,0,.8); }
.dvtv-video-wrap video {
    display:       block;
    max-width:     100%;
    max-height:    400px;
    border-radius: 6px;
}

/* 画像クリック用 */
.dvtv-lightbox-trigger { cursor: zoom-in; }

/* ライトボックス */
.dvtv-lightbox-overlay {
    display:       none;
    position:      fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background:    rgba(0,0,0,.85);
    z-index:       99999;
    justify-content: center;
    align-items:   center;
}
.dvtv-lightbox-overlay.active { display: flex; }
.dvtv-lightbox-content {
    position:      relative;
    max-width:     90vw;
    max-height:    90vh;
}
.dvtv-lightbox-content img {
    max-width:     90vw;
    max-height:    85vh;
    object-fit:    contain;
    transition:    transform .15s;
    cursor:        grab;
    user-select:   none;
    -webkit-user-drag: none;
}
.dvtv-lightbox-toolbar {
    position:      absolute;
    top:           -40px;
    right:         0;
    display:       flex;
    gap:           8px;
}
.dvtv-lightbox-toolbar button {
    background:    rgba(255,255,255,.2);
    color:         #fff;
    border:        none;
    border-radius: 4px;
    padding:       6px 12px;
    cursor:        pointer;
    font-size:     16px;
}
.dvtv-lightbox-toolbar button:hover { background: rgba(255,255,255,.4); }
.dvtv-lightbox-close {
    position:      absolute;
    top:           -40px;
    left:          0;
    background:    rgba(255,0,0,.5);
    color:         #fff;
    border:        none;
    border-radius: 4px;
    padding:       6px 14px;
    cursor:        pointer;
    font-size:     18px;
}
.dvtv-lightbox-close:hover { background: rgba(255,0,0,.7); }

/* シークレットバー */
.dvtv-daisy-secret-bar {
    display:       flex;
    align-items:   center;
    gap:           8px;
    padding:       6px 12px;
    margin-bottom: 6px;
    background:    var(--daisy-bg2);
    border:        1px solid var(--daisy-border);
    border-radius: 6px;
    font-size:     13px;
}

/* 検索バー */
.dvtv-daisy-search-bar {
    display:       flex;
    align-items:   center;
    gap:           6px;
    margin-bottom: 8px;
}

/* トップバー（タイトル＋表示設定を1行に） */
.dvtv-daisy-topbar {
    display:        flex;
    justify-content: space-between;
    align-items:    center;
    flex-wrap:      wrap;
    gap:            6px;
    margin-bottom:  6px;
}

/* コントロールバー（シークレット＋検索を1行に） */
.dvtv-daisy-control-bar {
    display:        flex;
    align-items:    center;
    gap:            12px;
    flex-wrap:      wrap;
    margin-bottom:  6px;
    padding:        4px 0;
}

/* シークレットツイートの背景色 */
.dvtv-daisy-tweet.secret-tweet {
    background:    #f3e8ff !important;
    border-left:   3px solid #7c3aed !important;
}
.dvtv-dark .dvtv-daisy-tweet.secret-tweet {
    background:    #2d1b69 !important;
    border-left:   3px solid #a78bfa !important;
}
.dvtv-daisy-secret-bar input[type="password"] {
    background:    var(--daisy-card-bg);
    color:         var(--daisy-text);
    border:        1px solid var(--daisy-border);
    padding:       4px 8px;
    border-radius: 4px;
}

/* シークレットツイート */
.tweet-content-secret .tweet-text {
    color:      var(--daisy-text-muted);
    font-style: italic;
}

/* シークレットトグル */
.dvtv-secret-toggle {
    display:     inline-flex;
    align-items: center;
    gap:         4px;
    cursor:      pointer;
}
.dvtv-secret-toggle input[type="checkbox"] {
    display: none;
}

/* フッター */
.tweet-footer {
    display:  flex;
    flex-wrap: wrap;
    align-items: center;
    gap:      8px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--daisy-border);
    font-size: 12px;
}
.tweet-stats { color:var(--daisy-text-muted); flex:1; min-width:80px; }
.tweet-link  { color:var(--daisy-accent); text-decoration:none; font-size:11px; white-space:nowrap; }
.tweet-actions, .user-actions {
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         4px;
}
.action-label { font-size:11px; color:var(--daisy-text-muted); }

/* =====================================================
   ボタン
   ===================================================== */
.dvtv-daisy-btn {
    display:   inline-flex;
    align-items: center;
    gap:       4px;
    padding:   7px 14px;
    border:    none;
    border-radius: 5px;
    cursor:    pointer;
    font-size: 13px;
    font-weight: 500;
    transition: opacity .15s, transform .05s;
    white-space: nowrap;
}
.dvtv-daisy-btn:hover   { opacity:.85; }
.dvtv-daisy-btn:active  { transform:scale(.97); }
.btn-primary    { background:var(--daisy-accent);   color:#fff; }
.btn-secondary  { background:var(--daisy-bg2);      color:var(--daisy-text); border:1px solid var(--daisy-border); }
.btn-danger     { background:var(--daisy-danger);   color:#fff; }
.btn-sm         { padding:4px 10px !important; font-size:12px !important; }
.btn-xs         { padding:2px 7px !important;  font-size:11px !important; }
.btn-lg         { padding:10px 22px !important; font-size:14px !important; }
.btn-label.active { background:var(--daisy-accent); color:#fff; }
.btn-translated   { background:#d4edda !important; color:#155724 !important; }
.btn-mute         { background:#9e9e9e !important;  color:#fff !important; }
.btn-block        { background:#f44336 !important;  color:#fff !important; }
.btn-delete-group { background:var(--daisy-danger) !important; color:#fff !important; font-weight:bold !important; }
.btn-delete-group:hover { background:#c62828 !important; }
.user-badge { font-size:10px; padding:1px 5px; border-radius:3px; }
.badge-priority { background:var(--daisy-priority); color:#fff; }
.badge-secret    { background:#7c3aed; color:#fff; }
.badge-allsearch { background:#0891b2; color:#fff; }

/* ロック付きタブ */
.dvtv-daisy-tab.tab-locked {
    opacity: 0.6;
    border-style: dashed;
}
.badge-mute     { background:var(--daisy-mute);     color:#fff; }
.badge-block    { background:var(--daisy-danger);   color:#fff; }
.badge-normal   { background:var(--daisy-bg2);      color:var(--daisy-text-muted); }

/* =====================================================
   グループブロック（キーワード管理）
   ===================================================== */
.dvtv-group-block {
    border:       1px solid var(--daisy-border);
    border-radius: 8px;
    padding:      12px 14px;
    margin-bottom: 14px;
    background:   var(--daisy-card-bg);
}
.dvtv-group-header {
    display:     flex;
    align-items: center;
    gap:         8px;
    margin-bottom: 8px;
}
.dvtv-daisy-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.dvtv-daisy-tag {
    display:     inline-flex;
    align-items: center;
    gap:         4px;
    padding:     4px 10px;
    background:  var(--daisy-bg2);
    border:      1px solid var(--daisy-border);
    border-radius: 20px;
    font-size:   12px;
    color:       var(--daisy-text);
}
.dvtv-daisy-tag.tag-inactive { opacity:.5; text-decoration:line-through; }
.tag-toggle {
    background:none; border:none; cursor:pointer;
    color:var(--daisy-accent); font-size:12px; padding:0;
}
.tag-delete {
    background:none; border:none; cursor:pointer;
    color:var(--daisy-danger); font-size:14px; padding:0; line-height:1;
}

/* =====================================================
   テーブル
   ===================================================== */
.dvtv-daisy-table {
    width:           100%;
    border-collapse: collapse;
    font-size:       13px;
    margin-bottom:   12px;
}
.dvtv-daisy-table th,
.dvtv-daisy-table td {
    padding:    8px 10px;
    border:     1px solid var(--daisy-border);
    text-align: left;
    background: var(--daisy-card-bg);
    color:      var(--daisy-text);
}
.dvtv-daisy-table th {
    background: var(--daisy-bg2);
    font-weight: 600;
    font-size:   12px;
}
.dvtv-daisy-table tr:hover td { background:var(--daisy-bg2); }

/* =====================================================
   フォーム
   ===================================================== */
.dvtv-daisy-input-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.dvtv-daisy-input     { padding:6px 10px; border:1px solid var(--daisy-border); border-radius:5px; font-size:13px; min-width:200px; background:var(--daisy-card-bg); color:var(--daisy-text); }
.dvtv-daisy-input-sm  { padding:4px 8px;  border:1px solid var(--daisy-border); border-radius:5px; font-size:13px; width:80px; background:var(--daisy-card-bg); color:var(--daisy-text); }
.dvtv-daisy-textarea  { width:100%; padding:8px; border:1px solid var(--daisy-border); border-radius:5px; font-size:13px; font-family:monospace; background:var(--daisy-card-bg); color:var(--daisy-text); }
.dvtv-daisy-form-table th { width:160px; font-weight:600; font-size:13px; background:var(--daisy-bg2); }
.dvtv-daisy-hint { font-size:11px; color:var(--daisy-text-muted); }

/* =====================================================
   ページネーション
   ===================================================== */
.dvtv-daisy-pagination {
    display:    flex;
    flex-wrap:  wrap;
    gap:        5px;
    margin-top: 14px;
    padding-top: 10px;
    border-top: 1px solid var(--daisy-border);
}
.dvtv-daisy-page-btn {
    padding:    4px 10px;
    border:     1px solid var(--daisy-border);
    border-radius: 4px;
    color:      var(--daisy-text);
    text-decoration: none;
    font-size:  12px;
    background: var(--daisy-card-bg);
    cursor:     pointer;
}
.dvtv-daisy-page-btn.active { background:var(--daisy-accent); color:#fff; border-color:var(--daisy-accent); }
.dvtv-daisy-page-btn:hover  { background:var(--daisy-accent); color:#fff; }

/* =====================================================
   セッション状態バッジ
   ===================================================== */
.session-badge {
    font-size:    12px;
    padding:      3px 10px;
    border-radius: 12px;
    margin-left:  10px;
    font-weight:  normal;
    vertical-align: middle;
}
.session-ok   { background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7; }
.session-warn { background:#fff3e0; color:#e65100; border:1px solid #ffcc80; }
.dvtv-dark .session-ok  { background:#1b5e20; color:#a5d6a7; }
.dvtv-dark .session-warn{ background:#bf360c; color:#ffcc80; }

/* =====================================================
   通知・アラート
   ===================================================== */
.dvtv-daisy-alert     { background:#fff3cd; border:1px solid #ffc107; border-radius:6px; padding:12px 14px; margin-bottom:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.dvtv-daisy-info-box  { background:var(--daisy-bg2); border:1px solid var(--daisy-border); border-radius:6px; padding:10px 14px; margin-bottom:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13px; }
.dvtv-daisy-success   { background:#d4edda; color:#155724; border:1px solid #c3e6cb; border-radius:5px; padding:10px 14px; margin-bottom:10px; }
.dvtv-daisy-error     { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; border-radius:5px; padding:10px 14px; margin-bottom:10px; }
.dvtv-daisy-notice    { background:var(--daisy-bg2); border:1px solid var(--daisy-border); border-radius:5px; padding:10px 14px; font-size:13px; }
.text-danger { color:var(--daisy-danger); }
.dvtv-daisy-empty       { text-align:center; color:var(--daisy-text-muted); padding:30px; font-size:13px; }
.dvtv-daisy-empty-small { color:var(--daisy-text-muted); font-size:12px; }
.dvtv-daisy-spinner     { color:var(--daisy-warning); font-size:13px; }
.dvtv-daisy-badge       { display:inline-block; padding:2px 8px; border-radius:12px; font-size:12px; }
.badge-on   { background:#d4edda; color:#155724; }
.badge-off  { background:#f8d7da; color:#721c24; }
.badge-info { background:var(--daisy-bg2); color:var(--daisy-text-muted); border:1px solid var(--daisy-border); }

/* =====================================================
   要約カード
   ===================================================== */
.dvtv-daisy-summary-card {
    background:   var(--daisy-card-bg);
    border:       1px solid var(--daisy-border);
    border-radius: 8px;
    padding:      14px;
    margin-bottom: 12px;
    box-shadow:   var(--daisy-shadow);
}
.dvtv-daisy-summary-result { margin-top:12px; }
.summary-header {
    display:       flex;
    justify-content: space-between;
    align-items:   center;
    margin-bottom: 8px;
    flex-wrap:     wrap;
    gap:           4px;
}
.summary-keyword { font-weight:700; color:var(--daisy-accent); }
.summary-meta    { font-size:11px; color:var(--daisy-text-muted); }
.summary-body    { font-size:13px; line-height:1.6; }

/* =====================================================
   接続確認
   ===================================================== */
.dvtv-daisy-conn-tests { display:flex; flex-direction:column; gap:10px; }
.conn-test-row  { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.conn-test-result { font-size:12px; }

/* =====================================================
   セクション区切り
   ===================================================== */
.dvtv-daisy-section { margin-bottom:20px; padding:14px; background:var(--daisy-card-bg); border:1px solid var(--daisy-border); border-radius:8px; }
.dvtv-daisy-section h3 { margin:0 0 12px 0; font-size:15px; color:var(--daisy-text); border-bottom:1px solid var(--daisy-border); padding-bottom:8px; }
.dvtv-daisy-status-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }

/* =====================================================
   画像モーダル
   ===================================================== */
.dvtv-img-overlay {
    position:   fixed;
    top:0; left:0; width:100%; height:100%;
    background: rgba(0,0,0,.85);
    z-index:    99999;
    display:    flex;
    align-items: center;
    justify-content: center;
    cursor:     zoom-out;
}
.dvtv-img-overlay img {
    max-width:  90vw;
    max-height: 90vh;
    border-radius: 4px;
    box-shadow: 0 4px 30px rgba(0,0,0,.5);
    object-fit: contain;
}
.dvtv-img-close {
    position: absolute;
    top:16px; right:20px;
    color:#fff; font-size:28px;
    cursor:pointer; user-select:none;
}

/* =====================================================
   ダークモード追加調整
   ===================================================== */
.dvtv-dark .dvtv-daisy-alert   { background:#3e3000; border-color:#7a5c00; color:#ffd54f; }
.dvtv-dark .dvtv-daisy-success { background:#1b3a22; color:#a5d6a7; border-color:#2e7d32; }
.dvtv-dark .dvtv-daisy-error   { background:#3e1012; color:#ef9a9a; border-color:#c62828; }
.dvtv-dark .dvtv-daisy-input,
.dvtv-dark .dvtv-daisy-input-sm,
.dvtv-dark .dvtv-daisy-textarea { background:#0f3460; color:#e0e0e0; border-color:#2d4a7a; }
.dvtv-dark .dvtv-daisy-page-btn { background:#0f3460; color:#e0e0e0; }

/* =====================================================
   レスポンシブ
   ===================================================== */
@media (max-width: 600px) {
    .tweet-footer   { flex-direction:column; align-items:flex-start; }
    .tweet-actions, .user-actions { flex-wrap:wrap; }
    .dvtv-daisy-table { display:block; overflow-x:auto; }
    .dvtv-daisy-input { min-width:120px; }
}

/* =====================================================
   フォントサイズクラス（小・中・大・最大）
   子要素の固定font-sizeをすべて上書きする
   ===================================================== */

/* 全サイズ共通: 太字 */
.dvtv-font-sm,
.dvtv-font-md,
.dvtv-font-lg,
.dvtv-font-xl { font-weight: bold !important; }
.dvtv-font-sm *,
.dvtv-font-md *,
.dvtv-font-lg *,
.dvtv-font-xl * { font-weight: bold !important; }

/* --- 小 --- */
.dvtv-font-sm { font-size:12px !important; }
.dvtv-font-sm .tweet-content,
.dvtv-font-sm .tweet-text       { font-size:12px !important; }
.dvtv-font-sm .tweet-user            { font-size:11px !important; }
.dvtv-font-sm .tweet-date            { font-size:10px !important; }
.dvtv-font-sm .dvtv-daisy-toolbar,
.dvtv-font-sm .dvtv-sort-btn,
.dvtv-font-sm .dvtv-daisy-sort       { font-size:11px !important; }
.dvtv-font-sm .dvtv-daisy-tab        { font-size:11px !important; }
.dvtv-font-sm .dvtv-daisy-table      { font-size:11px !important; }
.dvtv-font-sm .dvtv-daisy-table th   { font-size:10px !important; }
.dvtv-font-sm .summary-body          { font-size:11px !important; }
.dvtv-font-sm .dvtv-daisy-empty      { font-size:11px !important; }
.dvtv-font-sm .tweet-stats,
.dvtv-font-sm .tweet-link            { font-size:11px !important; }

/* --- 中（デフォルト） --- */
.dvtv-font-md { font-size:14px !important; }
.dvtv-font-md .tweet-content,
.dvtv-font-md .tweet-text       { font-size:14px !important; }
.dvtv-font-md .tweet-user            { font-size:13px !important; }
.dvtv-font-md .tweet-date            { font-size:11px !important; }
.dvtv-font-md .dvtv-daisy-toolbar,
.dvtv-font-md .dvtv-sort-btn,
.dvtv-font-md .dvtv-daisy-sort       { font-size:13px !important; }
.dvtv-font-md .dvtv-daisy-tab        { font-size:13px !important; }
.dvtv-font-md .dvtv-daisy-table      { font-size:13px !important; }
.dvtv-font-md .dvtv-daisy-table th   { font-size:12px !important; }
.dvtv-font-md .summary-body          { font-size:13px !important; }
.dvtv-font-md .dvtv-daisy-empty      { font-size:13px !important; }
.dvtv-font-md .tweet-stats,
.dvtv-font-md .tweet-link            { font-size:12px !important; }

/* --- 大 --- */
.dvtv-font-lg { font-size:17px !important; }
.dvtv-font-lg .tweet-content,
.dvtv-font-lg .tweet-text       { font-size:17px !important; }
.dvtv-font-lg .tweet-user            { font-size:15px !important; }
.dvtv-font-lg .tweet-date            { font-size:13px !important; }
.dvtv-font-lg .dvtv-daisy-toolbar,
.dvtv-font-lg .dvtv-sort-btn,
.dvtv-font-lg .dvtv-daisy-sort       { font-size:15px !important; }
.dvtv-font-lg .dvtv-daisy-tab        { font-size:15px !important; }
.dvtv-font-lg .dvtv-daisy-table      { font-size:15px !important; }
.dvtv-font-lg .dvtv-daisy-table th   { font-size:14px !important; }
.dvtv-font-lg .summary-body          { font-size:16px !important; }
.dvtv-font-lg .dvtv-daisy-empty      { font-size:15px !important; }
.dvtv-font-lg .tweet-stats,
.dvtv-font-lg .tweet-link            { font-size:14px !important; }
.dvtv-font-lg .dvtv-daisy-btn        { font-size:14px !important; }

/* --- 最大（太字付き） --- */
.dvtv-font-xl { font-size:20px !important; font-weight:bold !important; }
.dvtv-font-xl .tweet-content,
.dvtv-font-xl .tweet-text       { font-size:20px !important; font-weight:bold !important; }
.dvtv-font-xl .tweet-user            { font-size:17px !important; font-weight:700 !important; }
.dvtv-font-xl .tweet-date            { font-size:14px !important; font-weight:600 !important; }
.dvtv-font-xl .dvtv-daisy-toolbar,
.dvtv-font-xl .dvtv-sort-btn,
.dvtv-font-xl .dvtv-daisy-sort       { font-size:17px !important; font-weight:bold !important; }
.dvtv-font-xl .dvtv-daisy-tab        { font-size:17px !important; font-weight:bold !important; }
.dvtv-font-xl .dvtv-daisy-table      { font-size:17px !important; font-weight:bold !important; }
.dvtv-font-xl .dvtv-daisy-table th   { font-size:16px !important; font-weight:700 !important; }
.dvtv-font-xl .summary-body          { font-size:19px !important; font-weight:bold !important; }
.dvtv-font-xl .dvtv-daisy-empty      { font-size:17px !important; font-weight:bold !important; }
.dvtv-font-xl .tweet-stats,
.dvtv-font-xl .tweet-link            { font-size:16px !important; font-weight:bold !important; }
.dvtv-font-xl .dvtv-daisy-btn        { font-size:16px !important; font-weight:bold !important; }
.dvtv-font-xl .tweet-footer .btn-xs  { font-size:14px !important; font-weight:bold !important; }
.dvtv-font-xl .user-badge            { font-size:13px !important; font-weight:bold !important; }
.dvtv-font-xl .tweet-lang-badge      { font-size:12px !important; font-weight:bold !important; }
.dvtv-font-xl .dvtv-daisy-page-btn   { font-size:15px !important; font-weight:bold !important; }
