        /* Org Manager specific styles */
        .admin-layout {
            display: flex;
            min-height: 100vh;
        }

        /* Login */
        .login-container {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            background: var(--bg-main);
        }

        .login-box {
            background: var(--bg-card);
            padding: 40px;
            border-radius: 16px;
            width: 100%;
            max-width: 420px;
            box-shadow: var(--shadow-lg);
        }

        .login-box h1 {
            text-align: center;
            margin-bottom: 8px;
            color: var(--text-primary);
            font-size: 1.5rem;
        }

        .login-box .subtitle {
            text-align: center;
            color: var(--text-muted);
            margin-bottom: 24px;
            font-size: 0.9rem;
        }

        /* Sidebar */
        .admin-sidebar {
            position: fixed;
            left: 0;
            top: 0;
            bottom: 0;
            width: 260px;
            background: var(--bg-card);
            border-right: 1px solid var(--border-light);
            padding: 20px;
            display: flex;
            flex-direction: column;
        }

        .admin-sidebar .logo {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 1.1rem;
            font-weight: 700;
            color: var(--text-primary);
            text-decoration: none;
            margin-bottom: 8px;
        }

        .admin-sidebar .logo-icon {
            width: 32px;
            height: 32px;
        }

        .admin-sidebar .admin-badge {
            font-size: 0.65rem;
            background: var(--primary);
            color: white;
            padding: 2px 8px;
            border-radius: 10px;
            margin-left: auto;
        }

        .sidebar-menu {
            list-style: none;
            margin-top: 24px;
            flex: 1;
        }

        .sidebar-menu li {
            margin-bottom: 4px;
        }

        .sidebar-menu a {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 12px 14px;
            color: var(--text-secondary);
            text-decoration: none;
            border-radius: 8px;
            transition: var(--transition-fast);
            font-size: 0.9rem;
        }

        .sidebar-menu a:hover {
            background: var(--bg-hover);
            color: var(--text-primary);
        }

        .sidebar-menu a.active {
            background: var(--primary);
            color: white;
        }

        .sidebar-menu a svg {
            width: 20px;
            height: 20px;
        }

        .sidebar-footer {
            border-top: 1px solid var(--border-light);
            padding-top: 16px;
        }

        /* Main Content */
        .admin-main {
            margin-left: 260px;
            flex: 1;
            padding: 24px;
            background: var(--bg-main);
            min-height: 100vh;
            /* v0.8.7.c: flex item の既定 min-width:auto だとワイド表で main 自体が
               コンテンツ幅まで膨張し .u-overflow-x ラッパーが無力化する
               (admin-init.css と同修正)。 */
            min-width: 0;
        }

        .admin-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 24px;
        }

        .admin-header h1 {
            font-size: 1.5rem;
            font-weight: 700;
            color: var(--text-primary);
        }

        .admin-header .admin-user {
            display: flex;
            align-items: center;
            gap: 12px;
            color: var(--text-secondary);
        }

        /* Stats Cards */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 16px;
            margin-bottom: 24px;
        }

        .stat-card {
            background: var(--bg-card);
            padding: 20px;
            border-radius: 12px;
            border: 1px solid var(--border-light);
            /* v0.9.2.w: grid item の既定 min-width:auto だと、長い表示名や 7 桁の
               数値でカードが min-content 幅まで膨らみ **ページが横スクロール**する
               (実測: 375px 幅で document.scrollWidth 406 / clientWidth 363)。 */
            min-width: 0;
        }

        .stat-card .value,
        .stat-card .label {
            overflow-wrap: anywhere;
        }

        .stat-card .value {
            font-size: 2rem;
            font-weight: 700;
            color: var(--primary);
        }

        .stat-card .label {
            color: var(--text-muted);
            margin-top: 4px;
            font-size: 0.85rem;
        }

        /* Cards */
        .card {
            background: var(--bg-card);
            border-radius: 12px;
            padding: 20px;
            margin-bottom: 20px;
            border: 1px solid var(--border-light);
        }

        .card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 16px;
        }

        .card h2 {
            font-size: 1.1rem;
            font-weight: 600;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .card h2 svg {
            color: var(--primary);
        }

        /* Tables */
        table {
            width: 100%;
            border-collapse: collapse;
        }

        th, td {
            padding: 12px;
            text-align: left;
            border-bottom: 1px solid var(--border-light);
        }

        th {
            color: var(--text-muted);
            font-weight: 500;
            font-size: 0.85rem;
        }

        td {
            color: var(--text-primary);
            font-size: 0.9rem;
        }

        tbody tr:hover {
            background: var(--bg-hover);
        }

        /* Badges */
        .badge {
            padding: 4px 10px;
            border-radius: 20px;
            font-size: 0.75rem;
            font-weight: 500;
        }

        .badge-success {
            background: #d4edda;
            color: #155724;
        }

        .badge-warning {
            background: #fff3cd;
            color: #856404;
        }

        .badge-danger {
            background: #f8d7da;
            color: #721c24;
        }

        .badge-secondary {
            background: #6c757d;
            color: white;
        }

        .badge-live {
            background: #e74c3c;
            color: white;
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.7; }
        }

        /* Buttons */
        .btn {
            padding: 8px 16px;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            font-size: 0.85rem;
            font-weight: 500;
            transition: var(--transition-fast);
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        .btn-primary {
            background: var(--primary);
            color: white;
        }

        .btn-primary:hover {
            background: #d63a52;
        }

        .btn-success {
            background: #27ae60;
            color: white;
        }

        .btn-success:hover {
            background: #219a52;
        }

        .btn-danger {
            background: #e74c3c;
            color: white;
        }

        .btn-danger:hover {
            background: #c0392b;
        }

        .btn-secondary {
            background: var(--bg-input);
            color: var(--text-primary);
            border: 1px solid var(--border-medium);
        }

        .btn-secondary:hover {
            background: var(--bg-hover);
        }

        .btn-sm {
            padding: 6px 12px;
            font-size: 0.8rem;
        }

        /* Forms */
        .form-group {
            margin-bottom: 16px;
        }

        .form-group label {
            display: block;
            margin-bottom: 6px;
            font-size: 0.9rem;
            font-weight: 500;
            color: var(--text-secondary);
        }

        .form-group input, .form-group select, .form-group textarea {
            width: 100%;
            padding: 12px 14px;
            border: 1px solid var(--border-medium);
            border-radius: 8px;
            background: var(--bg-input);
            color: var(--text-primary);
            font-size: 0.95rem;
            transition: var(--transition-fast);
        }

        .form-group input:focus, .form-group select:focus, .form-group textarea:focus {
            outline: none;
            border-color: var(--primary);
        }

        /* Page sections */
        .page {
            display: none;
        }

        .page.active {
            display: block;
        }

        .hidden {
            display: none !important;
        }

        /* Home link */
        .home-link {
            display: flex;
            align-items: center;
            gap: 6px;
            color: var(--text-secondary);
            text-decoration: none;
            font-size: 0.85rem;
            transition: var(--transition-fast);
        }

        .home-link:hover {
            color: var(--primary);
        }

        /* Empty state */
        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-muted);
        }

        /* Toggle Switch */
        .toggle-switch {
            position: relative;
            display: inline-block;
            width: 44px;
            height: 24px;
        }

        .toggle-switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .toggle-slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: #555;
            transition: 0.3s;
            border-radius: 24px;
        }

        .toggle-slider:before {
            position: absolute;
            content: "";
            height: 18px;
            width: 18px;
            left: 3px;
            bottom: 3px;
            background-color: white;
            transition: 0.3s;
            border-radius: 50%;
        }

        .toggle-switch input:checked + .toggle-slider {
            background-color: var(--primary);
        }

        .toggle-switch input:checked + .toggle-slider:before {
            transform: translateX(20px);
        }

        /* Hamburger menu button (hidden on desktop) */
        .admin-hamburger {
            display: none;
            background: none;
            border: none;
            color: var(--text-primary);
            cursor: pointer;
            padding: 4px;
            margin-right: 8px;
        }

        /* Sidebar overlay for mobile */
        .sidebar-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 299;
        }

        .sidebar-overlay.show {
            display: block;
        }

        /* Table scroll wrapper */
        .table-scroll-wrapper {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
        }

        /* Mobile Responsive */
        @media (max-width: 768px) {
            .admin-sidebar {
                transform: translateX(-100%);
                z-index: 300;
                transition: transform 0.3s ease;
            }

            .admin-sidebar.open {
                transform: translateX(0);
            }

            .admin-main {
                margin-left: 0;
                padding: 16px;
            }

            .admin-hamburger {
                display: inline-flex;
            }

            .admin-header {
                flex-wrap: wrap;
                gap: 8px;
            }

            .admin-header h1 {
                font-size: 1.2rem;
            }

            .stats-grid {
                grid-template-columns: 1fr 1fr;
            }

            .card {
                padding: 14px;
            }

            .card-header {
                flex-direction: column;
                align-items: flex-start;
                gap: 8px;
            }

            .room-grid {
                grid-template-columns: 1fr;
            }
        }

        /* Room cards */
        .room-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
            gap: 16px;
        }

        .room-card {
            background: var(--bg-card);
            border-radius: 12px;
            border: 1px solid var(--border-light);
            padding: 16px;
            transition: var(--transition-fast);
            cursor: pointer;
        }

        .room-card:hover {
            border-color: var(--primary);
            box-shadow: 0 2px 8px rgba(233, 69, 96, 0.15);
        }

        .room-card .room-name {
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 8px;
            font-size: 1rem;
        }

        .room-card .room-info {
            font-size: 0.85rem;
            color: var(--text-muted);
            margin-bottom: 4px;
        }

/* ============================================================ */
/* M-05 Phase 2: inline style= \u5c5e\u6027\u306e\u7f6e\u63db\u7528\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30af\u30e9\u30b9 */
/* ============================================================ */
.u-w-full { width: 100%; }
.u-mb-12 { margin-bottom: 12px; }
.u-mb-20 { margin-bottom: 20px; }
.u-mt-12 { margin-top: 12px; }
.u-mt-20 { margin-top: 20px; }
.u-text-center { text-align: center; }
.u-text-right { text-align: right; }
.u-hidden { display: none; }
.u-flex-center-vert { display: flex; align-items: center; }
.u-flex-center { display: flex; align-items: center; justify-content: center; }
.u-flex-gap-8 { display: flex; gap: 8px; }
.u-flex-gap-16 { display: flex; gap: 16px; flex-wrap: wrap; }
.u-flex-1-min250 { flex: 1; min-width: 250px; }
.u-flex-1-min300 { flex: 1; min-width: 300px; }
.u-overflow-x { overflow-x: auto; }

/* page-specific helpers */
.logo-img-48 { width: 48px; height: 48px; border-radius: 4px; margin: 0 auto 16px; display: block; }
.logo-img-32 { width: 32px; height: 32px; border-radius: 4px; }
.login-error-box { color: #e74c3c; font-size: 0.85rem; min-height: 20px; margin-bottom: 8px; }
.home-link-center { justify-content: center; }

.stat-card-green { background: linear-gradient(135deg, rgba(46,204,113,0.1), rgba(39,174,96,0.1)); }
.stat-card-red { background: linear-gradient(135deg, rgba(231,76,60,0.1), rgba(192,57,43,0.1)); }
.stat-card-purple { background: linear-gradient(135deg, rgba(155,89,182,0.1), rgba(142,68,173,0.1)); }
.stat-card-blue { background: linear-gradient(135deg, rgba(52,152,219,0.1), rgba(41,128,185,0.1)); }
.stat-card-orange { background: linear-gradient(135deg, rgba(243,156,18,0.1), rgba(230,126,34,0.1)); }
.stat-value-green { color: #27ae60; }
.stat-value-red { color: #e74c3c; }
.stat-value-purple { color: #9b59b6; }
.stat-value-blue { color: #3498db; }
.stat-value-orange { color: #f39c12; }

.room-detail-msg-panel { flex: 1; min-width: 300px; background: var(--bg-card); border: 1px solid var(--border-light); border-radius: 12px; display: flex; flex-direction: column; height: 400px; }
.room-detail-msg-header { padding: 12px 16px; border-bottom: 1px solid var(--border-light); font-weight: 600; display: flex; align-items: center; gap: 8px; }
.room-detail-msg-icon { color: var(--primary); }
.room-detail-msg-list { flex: 1; overflow-y: auto; padding: 12px 16px; }
.room-detail-msg-input-wrap { padding: 12px 16px; border-top: 1px solid var(--border-light); display: flex; gap: 8px; }
.room-detail-msg-input { flex: 1; padding: 10px 14px; border: 1px solid var(--border-medium); border-radius: 8px; background: var(--bg-input); color: var(--text-primary); font-size: 0.9rem; }
.room-title-mb8 { margin-bottom: 8px; }
.room-broadcaster-muted { color: var(--text-muted); margin-bottom: 12px; }
.broadcaster-search-input { padding: 10px 14px; border: 1px solid var(--border-medium); border-radius: 8px; width: 100%; background: var(--bg-input); color: var(--text-primary); font-size: 0.9rem; }

.page-footer { background: #1a1a2e; color: #aaa; text-align: center; padding: 16px; font-size: 12px; border-top: 1px solid #2a2a4a; }
.page-footer-links { margin-bottom: 8px; }
.page-footer-link { color: #aaa; text-decoration: none; margin: 0 8px; }
.u-pagination-center { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 12px; }

/* Tier 3-A: 事務所統合ダッシュボード */
.kpi-rank {
    display: inline-block;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    text-align: center;
    line-height: 28px;
    font-weight: 700;
    background: var(--bg-input, #2a2a2a);
    color: var(--text-secondary, #aaa);
}
.kpi-rank.gold { background: linear-gradient(135deg, #ffd54a, #ff8c00); color: #1a0f00; }
.kpi-rank.silver { background: linear-gradient(135deg, #d0d0d0, #888); color: #1a1a1a; }
.kpi-rank.bronze { background: linear-gradient(135deg, #cd7f32, #8b4513); color: #fff; }
.org-viewer-id-cell {
    color: var(--text-muted, #888);
    font-family: monospace;
    font-size: 0.8rem;
}
.u-ml-4 { margin-left: 4px; }
.u-mt-12 { margin-top: 12px; }

/* Tier 3-A2: 事務所共有 BAN バッジ */
.ban-shared-badge {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    background: rgba(112, 38, 215, 0.15);
    color: #b48aff;
    border: 1px solid #7026d7;
    vertical-align: middle;
}

/* v0.8.7.i: 事務所メッセージ吹き出し(org.js:714-717 の一斉通知履歴)。
   これらの u-c-* は M-05 抽出で utilities.css に置かれたが、org/index.html は
   utilities.css を読み込まない(styles/org/bubblegum のみ)ため org では無スタイル
   だった。#254 の .u-overflow-x を app.css に複製したのと同じ流儀で org.css に
   複製する(utilities.css:v0.8.7.f 版と同値)。org はマネージャ送信のみ =
   isSent 常に true なので sent 側スタイルで確定。 */
.u-c-792e167d { margin-bottom:8px;padding:10px 14px;border-radius:12px;max-width:80%;background:var(--primary);color:white;margin-left:auto;border-bottom-right-radius:4px; }
.u-c-3b06664f { word-break:break-word; }
.u-c-cb202ce6 { font-size:0.7rem;margin-top:4px;color:rgba(255,255,255,0.7);text-align:right; }
