
:root { color-scheme: light; --ink:#24292f; --muted:#57606a; --line:#d0d7de; --soft:#f6f8fa; --brand:#0969da; --green:#1f883d; --dark:#24292f; --danger:#cf222e; }
* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif; color: var(--ink); background: #eef3f9; font-size: 14px; position:relative; }
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
code { font-family: ui-monospace, SFMono-Regular, SFMono, Consolas, "Liberation Mono", Menlo, monospace; font-size: 12px; }
.top { display:grid; gap:12px; padding: 14px 28px 12px; background-image:linear-gradient(180deg, rgba(10,23,42,.42), rgba(10,23,42,.62)), var(--page-cover-image); background-size:cover; background-position:center; color: #fff; border-bottom:1px solid rgba(255,255,255,.16); position:static; box-shadow:inset 0 -80px 140px rgba(10,23,42,.16); }
.top-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.brand { display:flex; align-items:center; gap:12px; color:#fff; font-weight:700; font-size:16px; padding:10px 12px; border:1px solid rgba(148,163,184,.2); border-radius:18px; background:rgba(255,255,255,.04); box-shadow:0 10px 24px rgba(2,6,23,.14); width:max-content; max-width:100%; }
.brand:hover { color:#fff; text-decoration:none; }
.brand-logo { display:none; }
.brand-word { display:flex; flex-direction:column; gap:1px; line-height:1.1; }
.brand-domain { font-weight:700; }
.brand-sub { color:rgba(255,255,255,.62); font-size:12px; font-weight:500; }
.page-favorites { min-height:100vh; background:#07111d; }
.page-favorites::before { content:""; position:fixed; inset:0; background-image:linear-gradient(180deg, rgba(5,13,24,.54), rgba(6,14,25,.88)), var(--page-cover-image); background-size:cover; background-position:center; filter:blur(34px) saturate(1.16); transform:scale(1.08); opacity:.46; pointer-events:none; z-index:0; }
.page-favorites::after { content:""; position:fixed; inset:0; background:linear-gradient(180deg, rgba(5,11,19,.08), rgba(5,11,19,.74)); pointer-events:none; z-index:0; }
.page-favorites .brand { background:rgba(8,15,28,.34); border-color:rgba(255,255,255,.24); backdrop-filter:blur(12px); box-shadow:0 18px 42px rgba(2,6,23,.18); }
.page-favorites .brand-word { gap:2px; }
.page-favorites .nav-link, .page-favorites .nav-badge, .page-favorites .meta-button { background:rgba(8,15,28,.22); border-color:rgba(255,255,255,.14); backdrop-filter:blur(10px); }
.page-favorites .nav-link:hover, .page-favorites .meta-button:hover { background:rgba(255,255,255,.12); }
.page-favorites .top,
.page-favorites .wrap.favorites-shell { position:relative; z-index:1; }
.page-favorites .wrap.favorites-shell { margin-top:-28px; }
.page-tab-cover .brand,
.page-tab-cover .nav-link,
.page-tab-cover .nav-badge,
.page-tab-cover .meta-button { background:rgba(8,15,28,.18); border-color:rgba(255,255,255,.14); backdrop-filter:blur(10px); }
.page-tab-cover .nav-link:hover,
.page-tab-cover .meta-button:hover { background:rgba(255,255,255,.12); }
.page-tab-cover .nav-link.active { box-shadow:inset 0 0 0 1px rgba(147,197,253,.18), 0 14px 30px rgba(14,165,233,.18); }
.mark { width:32px; height:32px; border:1px solid rgba(255,255,255,.35); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:800; }
.top-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.meta-button { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:0 11px; border:1px solid rgba(148,163,184,.18); border-radius:12px; background:rgba(255,255,255,.05); color:rgba(226,232,240,.92); font-weight:700; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.meta-button:hover { text-decoration:none; color:#fff; background:rgba(255,255,255,.08); }
.nav { min-width:0; display:flex; align-items:center; gap:8px; flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; overscroll-behavior-x:contain; padding-bottom:2px; }
.nav-link { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:0 12px; border:1px solid transparent; border-radius:12px; color:rgba(226,232,240,.92); font-weight:700; letter-spacing:0; background:transparent; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.nav-link:hover { text-decoration:none; color:#fff; background:rgba(255,255,255,.08); border-color:rgba(148,163,184,.16); }
.nav-link.active { color:#fff; background:linear-gradient(135deg, rgba(37,99,235,.3), rgba(14,165,233,.18)); border-color:rgba(96,165,250,.42); box-shadow:inset 0 0 0 1px rgba(147,197,253,.14), 0 10px 22px rgba(14,165,233,.12); }
.nav-link.accent { background:linear-gradient(135deg, rgba(37,99,235,.92), rgba(14,165,233,.88)); color:#fff; box-shadow:0 10px 24px rgba(37,99,235,.24); }
.nav-link.accent:hover { background:linear-gradient(135deg, rgba(59,130,246,.96), rgba(56,189,248,.92)); border-color:transparent; }
.nav-link.accent.active { border-color:transparent; box-shadow:0 12px 28px rgba(37,99,235,.32); }
.nav-badge { display:inline-flex; align-items:center; min-height:36px; padding:0 12px; border-radius:12px; border:1px solid rgba(96,165,250,.2); background:rgba(15,23,42,.38); color:rgba(191,219,254,.96); font-weight:700; }
.wrap { max-width: 1280px; margin: 0 auto; padding: 24px 32px 48px; }
.hero { border-bottom: 1px solid var(--line); background: #f4f7fb; }
.hero .wrap { padding-top: 34px; padding-bottom: 34px; }
.hero-brand { display:grid; grid-template-columns:92px minmax(0, 1fr); gap:22px; align-items:center; }
.hero-logo { width:92px; height:92px; object-fit:cover; border-radius:18px; border:1px solid var(--line); background:#fff; box-shadow:0 8px 24px rgba(31,35,40,.08); }
.portal-hero { background:linear-gradient(180deg, #eef3f9 0%, #f7f9fc 100%); border-bottom:1px solid #d8e0ea; }
.portal-hero .wrap { display:grid; grid-template-columns:minmax(0, 1.08fr) 430px; gap:24px; align-items:stretch; padding-top:30px; padding-bottom:26px; }
.portal-lead-card { display:grid; gap:18px; padding:24px; border:1px solid #d6deea; border-radius:24px; background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(245,248,252,.92)); box-shadow:0 24px 68px rgba(15,23,42,.08); position:relative; overflow:hidden; }
.portal-lead-card:before { content:""; position:absolute; inset:auto -60px -70px auto; width:260px; height:260px; border-radius:50%; background:radial-gradient(circle, rgba(59,130,246,.18), transparent 70%); pointer-events:none; }
.portal-kicker { display:inline-flex; align-items:center; gap:8px; min-height:30px; padding:0 11px; border:1px solid #c8d5e6; border-radius:999px; background:#fff; color:#38516b; font-weight:700; font-size:12px; letter-spacing:0; text-transform:uppercase; width:max-content; }
.portal-kicker:before { content:""; width:7px; height:7px; border-radius:50%; background:#1f883d; box-shadow:0 0 0 3px rgba(31,136,61,.14); }
.portal-title { font-size:46px; line-height:1.02; margin:0; font-weight:760; color:#0f172a; }
.portal-lede { max-width:760px; margin:0; color:#4c5b6b; font-size:16px; line-height:1.7; }
.portal-action-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.portal-action-card { display:grid; gap:8px; min-height:116px; padding:16px; border:1px solid #d8e0ea; border-radius:18px; background:#fff; color:#17202b; box-shadow:0 10px 30px rgba(15,23,42,.06); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.portal-action-card:hover { text-decoration:none; transform:translateY(-2px); border-color:#b6c8dd; box-shadow:0 18px 36px rgba(15,23,42,.1); }
.portal-action-card.primary { background:linear-gradient(135deg, #1d4ed8 0%, #0ea5e9 100%); border-color:transparent; color:#fff; box-shadow:0 18px 40px rgba(37,99,235,.22); }
.portal-action-card.primary .portal-action-copy span,
.portal-action-card.primary .portal-action-arrow { color:rgba(255,255,255,.82); }
.portal-action-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.portal-action-mark { width:42px; height:42px; border-radius:14px; display:grid; place-items:center; background:#eff6ff; color:#1d4ed8; font-weight:800; box-shadow:inset 0 0 0 1px #dbeafe; }
.portal-action-card.primary .portal-action-mark { background:rgba(255,255,255,.18); color:#fff; box-shadow:none; }
.portal-action-arrow { color:#7a8ca4; font-weight:800; }
.portal-action-copy strong { display:block; font-size:16px; color:inherit; }
.portal-action-copy span { display:block; margin-top:2px; color:#657487; font-size:12px; line-height:1.45; }
.portal-stats { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.portal-stat { border:1px solid #dde5ef; border-radius:18px; background:rgba(255,255,255,.84); padding:14px 15px; box-shadow:0 8px 24px rgba(15,23,42,.05); }
.portal-stat strong { display:block; font-size:22px; color:#0f172a; margin-bottom:4px; }
.portal-stat span { color:#657487; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; }
.portal-panel { border:1px solid #d6deea; border-radius:24px; background:linear-gradient(180deg, rgba(255,255,255,.97), rgba(246,249,252,.94)); box-shadow:0 24px 68px rgba(15,23,42,.08); overflow:hidden; }
.portal-panel-head { display:flex; align-items:center; gap:12px; padding:18px; border-bottom:1px solid #e0e6ee; background:rgba(251,252,254,.9); }
.portal-panel-head img { width:46px; height:46px; border-radius:10px; border:1px solid var(--line); object-fit:cover; }
.portal-panel-title { font-weight:800; color:#17202b; }
.portal-panel-sub { margin-top:2px; color:#657487; font-size:12px; }
.portal-map { padding:18px; display:grid; gap:12px; }
.portal-node { display:grid; grid-template-columns:42px minmax(0, 1fr) auto; gap:12px; align-items:center; border:1px solid #e0e6ee; border-radius:18px; padding:13px 14px; color:var(--ink); background:#fff; box-shadow:0 8px 24px rgba(15,23,42,.04); }
.portal-node:hover { text-decoration:none; border-color:#9bb8d6; background:#f8fbff; box-shadow:0 14px 30px rgba(15,23,42,.08); }
.portal-node-mark { width:42px; height:42px; border-radius:14px; display:grid; place-items:center; font-weight:800; color:#fff; background:#1f6feb; }
.portal-node:nth-child(2) .portal-node-mark { background:#1f883d; }
.portal-node:nth-child(3) .portal-node-mark { background:#9a6700; }
.portal-node:nth-child(4) .portal-node-mark { background:#8250df; }
.portal-node strong { display:block; color:#17202b; }
.portal-node span { display:block; margin-top:2px; color:#657487; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.portal-node code { color:#657487; background:#f4f7fb; border:1px solid #e0e6ee; border-radius:999px; padding:3px 8px; }
.portal-main { display:grid; gap:22px; padding-top:30px; }
.portal-section-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-end; margin-bottom:12px; }
.portal-section-head p { margin:0; max-width:680px; line-height:1.55; }
.portal-card { min-height:164px; display:flex; flex-direction:column; gap:10px; border-color:#d8e0ea; border-radius:20px; box-shadow:0 14px 34px rgba(15,23,42,.06); background:linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%); }
.portal-card h2 { display:flex; align-items:center; gap:9px; margin-bottom:0; }
.portal-icon { width:34px; height:34px; border-radius:12px; display:inline-grid; place-items:center; color:#fff; background:#1f6feb; font-size:14px; }
.portal-card:nth-child(2) .portal-icon { background:#1f883d; }
.portal-card:nth-child(3) .portal-icon { background:#9a6700; }
.portal-card p { margin:0; line-height:1.55; }
.portal-card .actions { margin-top:auto; }
.portal-strip { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.portal-strip .card { border-radius:20px; box-shadow:0 14px 34px rgba(15,23,42,.06); background:linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%); }
.portal-list { margin:0; padding:0; list-style:none; display:grid; gap:10px; color:#4c5b6b; }
.portal-list li { display:flex; gap:9px; align-items:flex-start; }
.portal-list li:before { content:""; width:7px; height:7px; border-radius:50%; background:#1f883d; margin-top:7px; flex:0 0 auto; }
.article-index { display:grid; gap:16px; }
.article-hero { display:grid; gap:10px; padding:18px; border:1px solid rgba(208,215,222,.8); border-radius:8px; background:rgba(255,255,255,.86); }
.article-hero h1 { margin:0; font-size:30px; line-height:1.25; }
.article-hero p { margin:0; color:#53627a; line-height:1.6; max-width:760px; }
.article-list { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:14px; }
.article-card { display:grid; gap:10px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; color:#17202b; overflow:hidden; text-decoration:none; }
.article-card:hover { text-decoration:none; background:#f8fbff; }
.article-card img { display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; background:#e6eef8; }
.article-card-copy { display:grid; gap:7px; padding:12px; }
.article-card h2 { margin:0; font-size:18px; line-height:1.35; }
.article-card p { margin:0; color:#657487; line-height:1.55; }
.article-meta { display:flex; gap:8px; flex-wrap:wrap; color:#657487; font-size:12px; line-height:1.35; }
.article-page { display:grid; gap:16px; max-width:920px; }
.article-cover { width:100%; border:1px solid rgba(208,215,222,.8); border-radius:8px; background:#e6eef8; overflow:hidden; }
.article-cover img { display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; }
.article-body { border:1px solid rgba(208,215,222,.8); border-radius:8px; background:#fff; padding:20px; color:#243447; }
.article-body h1, .article-body h2, .article-body h3 { color:#17202b; line-height:1.28; margin:1.2em 0 .45em; }
.article-body h1:first-child, .article-body h2:first-child { margin-top:0; }
.article-body p, .article-body li { line-height:1.72; }
.article-body ul { display:grid; gap:7px; padding-left:22px; }
.article-body img { display:block; max-width:100%; margin:10px auto; border-radius:8px; border:1px solid #d8e0ea; }
.article-body figure { margin:14px 0; display:grid; gap:6px; }
.article-body figcaption { color:#657487; font-size:12px; text-align:center; }
.article-body pre { background:#07111f; color:#eaf4ff; border-radius:8px; padding:14px; overflow:auto; }
.article-body code { background:#eef4fb; border-radius:5px; padding:2px 5px; }
.article-body pre code { background:transparent; padding:0; }
h1 { font-size: 26px; line-height: 1.25; margin: 0 0 8px; letter-spacing: 0; font-weight:600; }
h2 { font-size: 18px; margin: 0 0 12px; font-weight:600; }
.muted { color: var(--muted); }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.card { border: 1px solid var(--line); border-radius: 6px; padding: 16px; background: #fff; }
.repo-card { display:flex; flex-direction:column; gap:10px; min-height:130px; }
.repo-title { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.badge { border: 1px solid var(--line); border-radius: 999px; padding: 1px 7px; font-size: 12px; color: var(--muted); white-space: nowrap; font-weight:600; }
.btn { display: inline-flex; align-items:center; justify-content:center; min-height: 32px; padding: 0 12px; border: 1px solid rgba(31,35,40,.15); border-radius: 6px; background: var(--green); color: #fff; font-weight: 600; cursor: pointer; box-shadow: 0 1px 0 rgba(31,35,40,.04); }
.btn:hover { text-decoration:none; background:#1a7f37; color:#fff; }
.btn.secondary { background:var(--soft); color:var(--ink); border-color:rgba(31,35,40,.15); }
.btn.secondary:hover { background:#eef1f4; color:var(--ink); }
.form { max-width: 380px; border:1px solid var(--line); border-radius:6px; padding:20px; background:#fff; }
label { display:block; font-size:13px; font-weight:600; margin:12px 0 6px; }
input { width:100%; height:34px; border:1px solid var(--line); border-radius:6px; padding:0 10px; font:inherit; background:#fff; }
select, textarea { width:100%; border:1px solid var(--line); border-radius:6px; padding:8px 10px; font:inherit; background:#fff; }
textarea { min-height:88px; resize:vertical; }
.flash { border:1px solid #d4a72c; background:#fff8c5; border-radius:6px; padding:10px 12px; margin-bottom:14px; }
.repo-head { background:var(--soft); border-bottom:1px solid var(--line); }
.repo-head-inner { max-width:1280px; margin:0 auto; padding:20px 32px 0; }
.repo-name { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:20px; margin-bottom:14px; }
.repo-name a, .repo-name span.name { font-size:20px; font-weight:600; }
.tabs { display:flex; gap:4px; overflow-x:auto; }
.tab { display:inline-flex; align-items:center; gap:7px; padding:12px 12px; color:var(--ink); border-bottom:2px solid transparent; font-weight:600; white-space:nowrap; }
.tab.active { border-bottom-color:#fd8c73; }
.tab:hover { text-decoration:none; background:rgba(208,215,222,.32); }
.repo-layout { display:grid; grid-template-columns:minmax(0, 1fr) 296px; gap:24px; align-items:start; }
.toolbar { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }
.branch { display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:0 12px; border:1px solid var(--line); border-radius:6px; background:var(--soft); font-weight:600; color:var(--ink); }
.clone-box { display:flex; border:1px solid var(--line); border-radius:6px; overflow:hidden; min-width:min(100%, 440px); background:#fff; }
.clone-box code { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:8px 10px; color:var(--muted); flex:1; }
.clone-box span { display:inline-flex; align-items:center; border-left:1px solid var(--line); padding:0 10px; background:var(--soft); font-weight:600; }
.pathbar { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:0 0 12px; font-size:14px; }
.file-list { border:1px solid var(--line); border-radius:6px; overflow:hidden; background:#fff; }
.latest-row { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:12px; padding:10px 16px; background:var(--soft); border-bottom:1px solid var(--line); align-items:center; }
.file-row { display:grid; grid-template-columns:minmax(180px, 1.2fr) minmax(160px, 1fr) 90px; gap:12px; padding:9px 16px; border-bottom:1px solid var(--line); align-items:center; min-height:42px; }
.file-row:last-child { border-bottom:0; }
.file-name { display:flex; align-items:center; gap:8px; min-width:0; font-weight:600; }
.file-name a { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.file-icon { width:18px; color:var(--muted); text-align:center; flex:0 0 18px; }
.commit-msg, .file-size { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.side { display:flex; flex-direction:column; gap:16px; }
.about p { margin:0 0 12px; line-height:1.5; }
.meta-list { display:flex; flex-direction:column; gap:8px; color:var(--muted); }
.readme { margin-top:24px; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.readme-head { padding:10px 16px; background:var(--soft); border-bottom:1px solid var(--line); font-weight:600; }
.readme-body { padding:18px 24px; line-height:1.55; }
table { width:100%; border-collapse:collapse; border:1px solid var(--line); border-radius:6px; overflow:hidden; background:#fff; }
th, td { border-bottom:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; font-size:14px; }
th { background:var(--soft); color:var(--muted); font-weight:600; }
tr:last-child td { border-bottom:0; }
pre { margin:0; padding:16px; overflow:auto; border:1px solid var(--line); border-radius:6px; background:#0d1117; color:#e6edf3; font-size:13px; line-height:1.5; }
.split { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:16px; }
.actions { display:flex; gap:8px; flex-wrap:wrap; }
.secret { font-family: ui-monospace, SFMono-Regular, SFMono, Consolas, "Liberation Mono", Menlo, monospace; word-break: break-all; background:var(--soft); border:1px solid var(--line); border-radius:6px; padding:10px 12px; }
.danger { color: var(--danger); }
.btn.danger { background:#fff; color:var(--danger); border-color:rgba(207,34,46,.35); }
.btn.danger:hover { background:#ffebe9; color:var(--danger); }
.metrics-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:12px; margin-bottom:16px; }
.metric-card { border:1px solid #d8e0ea; border-radius:8px; background:#fff; padding:14px 15px; box-shadow:0 1px 0 rgba(31,35,40,.03); }
.metric-card span { display:block; color:#657487; font-size:12px; font-weight:700; text-transform:uppercase; }
.metric-card strong { display:block; margin-top:5px; color:#17202b; font-size:24px; line-height:1.1; }
.metric-card small { display:block; margin-top:6px; color:#657487; line-height:1.45; }
.export-shell { display:grid; grid-template-columns:minmax(300px, 360px) minmax(0, 1fr); gap:16px; align-items:start; }
.export-list-card { padding:0; overflow:hidden; }
.export-list-head { padding:16px; border-bottom:1px solid var(--line); background:#fbfcfe; }
.export-list-head p { margin:4px 0 0; }
.export-list-body { display:grid; }
.export-item { display:grid; gap:7px; padding:14px 16px; border-bottom:1px solid var(--line); color:var(--ink); background:#fff; }
.export-item:last-child { border-bottom:0; }
.export-item:hover { text-decoration:none; background:#f8fbff; }
.export-item.active { background:#eef6ff; }
.export-item-top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.export-item-name { font-weight:700; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.export-item-meta { color:#657487; font-size:13px; line-height:1.5; }
.mode-pill { display:inline-flex; align-items:center; justify-content:center; min-height:24px; padding:0 9px; border-radius:999px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0; border:1px solid transparent; white-space:nowrap; }
.mode-pill.full { background:#dcfce7; color:#166534; border-color:#bbf7d0; }
.mode-pill.incremental { background:#dbeafe; color:#1d4ed8; border-color:#bfdbfe; }
.mode-pill.seed { background:#fef3c7; color:#92400e; border-color:#fde68a; }
.mode-pill.other { background:#f3f4f6; color:#4b5563; border-color:#e5e7eb; }
.export-detail-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:16px; }
.export-detail-head h2 { margin:10px 0 6px; }
.export-detail-size { color:#657487; font-weight:700; white-space:nowrap; }
.export-meta-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:12px; margin-bottom:16px; }
.export-meta-card { border:1px solid #d8e0ea; border-radius:8px; background:#fbfcfe; padding:12px 13px; }
.export-meta-card span { display:block; color:#657487; font-size:12px; font-weight:700; text-transform:uppercase; }
.export-meta-card strong { display:block; margin-top:4px; color:#17202b; font-size:18px; line-height:1.25; }
.export-meta-card small { display:block; margin-top:6px; color:#657487; line-height:1.45; }
.preview-chip-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.preview-chip { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border:1px solid #d8e0ea; border-radius:999px; background:#fff; color:#314155; font-size:12px; font-weight:700; }
.message-page { display:grid; gap:16px; }
.message-toolbar { display:grid; gap:12px; }
.message-surface-shortcuts { align-items:start; }
.message-quick-jump { display:flex; gap:8px; flex-wrap:wrap; }
.message-quick-jump .btn { min-height:40px; padding:0 16px; border-radius:12px; }
.message-quick-jump .btn.secondary.is-active {
  background:linear-gradient(135deg, #2a83ff 0%, #15c7ff 100%);
  border-color:rgba(125, 211, 252, .65);
  color:#fff;
  box-shadow:0 14px 30px rgba(32, 120, 255, .22);
}
.message-quick-jump .btn.secondary.is-active:hover { background:linear-gradient(135deg, #2a83ff 0%, #15c7ff 100%); color:#fff; }
.message-filter-form, .export-filter-form { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:10px; align-items:end; }
.field-group { display:grid; gap:6px; min-width:0; }
.field-group label { color:#657487; font-size:12px; font-weight:700; }
.field-group input, .field-group select { min-width:0; }
.field-group-wide { grid-column:span 2; }
.message-layout { display:grid; grid-template-columns:minmax(300px, 360px) minmax(0, 1fr); gap:16px; align-items:start; }
.message-side { display:grid; gap:16px; align-self:start; }
.message-detail-card { display:grid; gap:16px; }
.message-surface-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.message-surface-tab { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 14px; border:1px solid #d8e0ea; border-radius:12px; background:#fff; color:#314155; font-weight:700; touch-action:manipulation; }
.message-surface-tab:hover { text-decoration:none; background:#f3f7fd; }
.message-surface-tab.active { border-color:#7dd3fc; background:linear-gradient(135deg, rgba(30, 64, 175, .88), rgba(14, 165, 233, .86)); color:#fff; box-shadow:0 12px 28px rgba(29, 78, 216, .18); }
.message-overview-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:12px; }
.message-stage-card { display:grid; gap:10px; padding:16px; border:1px solid #d8e0ea; border-radius:12px; background:#fff; }
.message-stage-card strong { font-size:16px; }
.message-stage-card p { margin:0; line-height:1.55; }
.message-stat-list { display:grid; gap:10px; }
.message-stat-row { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:12px; align-items:center; padding:12px 14px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; }
.message-stat-row:hover { text-decoration:none; background:#f8fbff; }
.message-stat-row strong { display:block; color:#17202b; word-break:break-word; }
.message-stat-row span { color:#657487; font-size:12px; line-height:1.45; word-break:break-word; }
.message-stat-count { font-weight:800; font-size:18px; color:#0969da; }
.message-tag-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:10px; }
.message-tag-chip { display:flex; justify-content:space-between; gap:10px; align-items:center; min-height:42px; padding:9px 11px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; color:#314155; }
.message-tag-chip:hover { text-decoration:none; background:#f8fbff; }
.message-tag-chip strong { color:#17202b; }
.message-tag-chip span { color:#657487; font-size:12px; }
.message-delete-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:12px; align-items:end; }
.message-delete-picker { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.message-delete-picker select,
.message-delete-picker input { min-width:180px; flex:1 1 180px; }
.message-trash-button { min-width:42px; width:42px; padding:0; font-size:18px; border-color:rgba(248, 113, 113, .45) !important; }
.message-progress-bar { height:10px; border-radius:999px; background:#e2e8f0; overflow:hidden; }
.message-progress-fill { height:100%; width:0%; background:linear-gradient(135deg, #2a83ff 0%, #15c7ff 100%); transition:width .2s ease; }
.message-graph-wrap { display:grid; gap:12px; }
.message-graph-cloud { display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:12px; align-items:stretch; }
.message-graph-3d-panel { display:grid; gap:10px; min-width:0; }
.message-graph-3d-head { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.message-graph-3d-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.message-graph-3d-scene { position:relative; height:clamp(300px, 46vw, 460px); min-height:300px; border:1px solid #d8e0ea; border-radius:8px; background:#07111f; overflow:hidden; touch-action:none; }
.message-graph-3d-scene:focus-visible { outline:2px solid #7dd3fc; outline-offset:2px; }
.message-graph-3d-scene canvas { display:block; width:100%; height:100%; }
.message-graph-3d-empty { position:absolute; inset:0; display:grid; place-items:center; padding:16px; color:#bfd4f2; text-align:center; font-size:13px; line-height:1.45; pointer-events:none; }
.message-graph-3d-status { color:#657487; font-size:12px; line-height:1.45; }
.message-graph-preview { position:absolute; left:0; top:0; z-index:4; width:min(360px, calc(100% - 24px)); max-height:min(390px, calc(100% - 24px)); display:grid; grid-template-rows:auto minmax(0, 1fr) auto; gap:8px; padding:11px; border:1px solid rgba(125, 211, 252, .34); border-radius:8px; background:rgba(7, 17, 31, .84); color:#eaf4ff; box-shadow:0 18px 48px rgba(2, 6, 23, .38); backdrop-filter:blur(12px); transform:translate3d(var(--preview-x, 12px), var(--preview-y, 12px), 0) scale(var(--preview-scale, 1)); transform-origin:top left; transition:opacity .16s ease, transform .16s ease; pointer-events:auto; }
.message-graph-preview[hidden] { display:none !important; }
.message-graph-preview-head { display:grid; gap:3px; min-width:0; }
.message-graph-preview-head strong { line-height:1.25; word-break:break-word; }
.message-graph-preview-head span { color:#b7c9e7; font-size:12px; line-height:1.35; }
.message-graph-preview-list { min-height:0; overflow:auto; overscroll-behavior:contain; display:grid; gap:8px; padding-right:2px; }
.message-graph-preview-item { display:grid; gap:5px; border:1px solid rgba(148, 163, 184, .22); border-radius:8px; background:rgba(15, 23, 42, .72); padding:9px; }
.message-graph-preview-item strong { color:#f8fbff; font-size:12px; line-height:1.3; word-break:break-word; }
.message-graph-preview-item p { margin:0; color:#dbeafe; line-height:1.45; white-space:pre-wrap; word-break:break-word; }
.message-graph-preview-meta { display:flex; gap:6px; flex-wrap:wrap; color:#a8bedc; font-size:11px; line-height:1.3; }
.message-graph-preview-controls { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.message-graph-preview-controls .btn { min-width:0; padding:6px 9px; }
.message-graph-preview-depth { color:#9fb6d6; font-size:11px; line-height:1.35; }
.message-persona-stage { display:grid; gap:12px; min-width:0; }
.message-persona-shell { display:grid; gap:10px; min-width:0; }
.message-persona-head { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.message-persona-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.message-persona-layer-tools { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.message-persona-layer-tools .btn { min-width:0; padding:7px 10px; }
.message-persona-scene { position:relative; height:clamp(320px, 48vw, 500px); min-height:320px; border:1px solid #d8e0ea; border-radius:8px; background:#06111f; overflow:hidden; touch-action:none; }
.message-persona-evidence-scene { height:clamp(420px, 54vw, 650px); min-height:420px; }
.message-persona-scene:focus-visible { outline:2px solid #7dd3fc; outline-offset:2px; }
.message-persona-scene canvas { display:block; width:100%; height:100%; }
.message-persona-empty { position:absolute; inset:0; display:grid; place-items:center; padding:16px; color:#bfd4f2; text-align:center; font-size:13px; line-height:1.45; pointer-events:none; }
.message-persona-panel { position:absolute; z-index:4; right:12px; top:12px; width:min(360px, calc(100% - 24px)); max-height:calc(100% - 24px); display:grid; gap:8px; padding:12px; border:1px solid rgba(125, 211, 252, .34); border-radius:8px; background:rgba(7, 17, 31, .86); color:#eaf4ff; box-shadow:0 18px 48px rgba(2, 6, 23, .38); backdrop-filter:blur(12px); overflow:auto; pointer-events:auto; }
.message-persona-panel[hidden] { display:none !important; }
.message-persona-panel strong { color:#f8fbff; line-height:1.3; word-break:break-word; }
.message-persona-panel p { margin:0; color:#dbeafe; line-height:1.5; white-space:pre-wrap; word-break:break-word; }
.message-persona-panel ul { margin:0; padding-left:18px; display:grid; gap:5px; color:#dbeafe; }
.message-persona-panel li { line-height:1.4; word-break:break-word; }
.message-persona-panel-list { display:grid; gap:7px; margin-top:2px; }
.message-persona-panel-list button { width:100%; border:1px solid rgba(148, 163, 184, .24); border-radius:8px; background:rgba(15, 23, 42, .72); color:#eaf4ff; padding:8px; text-align:left; cursor:pointer; line-height:1.35; }
.message-persona-panel-list button:hover { border-color:rgba(125, 211, 252, .5); background:rgba(30, 41, 59, .82); }
.message-persona-panel-meta { display:flex; gap:6px; flex-wrap:wrap; color:#a8bedc; font-size:11px; line-height:1.3; }
.message-persona-status { color:#657487; font-size:12px; line-height:1.45; }
.btn.is-loading, .message-surface-tab.is-loading, .nav-link.is-loading, .meta-button.is-loading { position:relative; pointer-events:none; opacity:.82; }
.btn.is-loading::before, .message-surface-tab.is-loading::before, .nav-link.is-loading::before, .meta-button.is-loading::before { content:""; display:inline-block; width:12px; height:12px; margin-right:7px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; vertical-align:-2px; animation:message-loading-spin .8s linear infinite; }
@keyframes message-loading-spin { to { transform:rotate(360deg); } }
.message-persona-layers { display:grid; gap:12px; counter-reset:persona-layer; }
.message-persona-layer { position:relative; display:grid; gap:10px; padding:12px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; overflow:hidden; }
.message-persona-layer::before { content:""; position:absolute; left:23px; top:46px; bottom:-14px; width:2px; background:linear-gradient(180deg, rgba(14,165,233,.45), rgba(14,165,233,0)); }
.message-persona-layer:last-child::before { display:none; }
.message-persona-layer.is-active { border-color:#7dd3fc; box-shadow:0 12px 28px rgba(29, 78, 216, .12); }
.message-persona-layer.is-loading::after { content:""; position:absolute; top:14px; right:14px; width:18px; height:18px; border:2px solid rgba(37,99,235,.25); border-top-color:#2563eb; border-radius:50%; animation:message-loading-spin .8s linear infinite; }
.message-persona-layer-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; position:relative; z-index:1; }
.message-persona-layer-title { display:grid; grid-template-columns:34px minmax(0, 1fr); gap:10px; align-items:start; }
.message-persona-layer-title b { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:#17202b; color:#fff; font-size:13px; }
.message-persona-layer-title strong { display:block; color:#17202b; line-height:1.3; }
.message-persona-layer-title span { display:block; margin-top:3px; color:#657487; font-size:12px; line-height:1.45; }
.message-persona-layer-state { min-height:24px; display:inline-flex; align-items:center; padding:0 9px; border:1px solid #d8e0ea; border-radius:999px; color:#657487; font-size:12px; font-weight:700; white-space:nowrap; }
.message-persona-layer.is-done .message-persona-layer-state { border-color:rgba(22,163,74,.28); background:rgba(22,163,74,.1); color:#15803d; }
.message-persona-text-card { display:grid; gap:10px; padding-left:44px; }
.message-persona-text-summary { margin:0; color:#243447; line-height:1.55; word-break:break-word; }
.message-persona-text-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:8px; }
.message-persona-text-block { border:1px solid #d8e0ea; border-radius:8px; padding:9px; background:#f8fbff; min-width:0; }
.message-persona-text-block strong { display:block; color:#17202b; margin-bottom:5px; font-size:13px; }
.message-persona-text-block span { display:block; color:#657487; font-size:12px; line-height:1.45; word-break:break-word; }
.message-persona-estimates { display:grid; gap:8px; }
.message-persona-estimates-head { display:flex; justify-content:space-between; gap:10px; align-items:baseline; flex-wrap:wrap; }
.message-persona-estimates-head strong { color:#17202b; font-size:13px; }
.message-persona-estimates-head span { color:#657487; font-size:12px; line-height:1.4; }
.message-persona-estimate-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:8px; }
.message-persona-estimate-card { display:grid; gap:7px; border:1px solid #d8e0ea; border-radius:8px; padding:9px; background:#f8fbff; min-width:0; }
.message-persona-estimate-card strong { color:#17202b; font-size:13px; }
.message-persona-estimate-list { display:grid; gap:6px; }
.message-persona-estimate-row { display:grid; grid-template-columns:minmax(54px, .72fr) 44px minmax(0, 1fr); gap:6px; align-items:start; color:#243447; font-size:12px; line-height:1.35; }
.message-persona-estimate-row span,
.message-persona-estimate-row em { min-width:0; word-break:break-word; }
.message-persona-estimate-row b { color:#0969da; font-size:12px; text-align:right; }
.message-persona-estimate-row em { color:#657487; font-style:normal; }
.message-persona-directed { min-height:260px; padding-left:44px; overflow:auto; }
.message-persona-directed svg { display:block; width:100%; min-width:720px; height:auto; }
.message-persona-directed-empty { min-height:220px; display:grid; place-items:center; color:#657487; text-align:center; line-height:1.45; border:1px dashed #cbd5e1; border-radius:8px; background:#f8fbff; }
.message-persona-directed-node rect { fill:#f8fbff; stroke:#cbd5e1; stroke-width:1.4; }
.message-persona-directed-node text { fill:#243447; font:700 12px/1.35 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.message-persona-directed-edge { stroke:#60a5fa; stroke-width:1.8; fill:none; opacity:.78; }
.message-persona-directed-layer-label { fill:#657487; font:700 11px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.message-persona-portrait { display:grid; grid-template-columns:minmax(240px, 1fr) minmax(260px, .82fr); gap:12px; align-items:start; border:1px solid #d8e0ea; border-radius:8px; background:#fff; padding:12px; }
.message-persona-portrait-media { min-height:220px; border-radius:8px; background:#eef4fb; border:1px solid #d8e0ea; overflow:hidden; display:grid; place-items:center; color:#657487; text-align:center; line-height:1.45; }
.message-persona-portrait-media.can-generate { cursor:pointer; }
.message-persona-portrait-media.can-generate:hover { border-color:#7dd3fc; background:#e8f4ff; }
.message-persona-portrait-media.is-loading { position:relative; }
.message-persona-portrait-media.is-loading::after { content:""; width:34px; height:34px; border:3px solid rgba(101,116,135,.34); border-top-color:#2563eb; border-radius:50%; animation:message-loading-spin .9s linear infinite; }
.message-persona-portrait-media img { display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; }
.message-persona-portrait-copy { display:grid; gap:8px; min-width:0; }
.message-persona-portrait-copy strong { color:#17202b; }
.message-persona-portrait-copy pre { margin:0; max-height:220px; overflow:auto; white-space:pre-wrap; word-break:break-word; color:#243447; background:#f6f8fb; border:1px solid #d8e0ea; border-radius:8px; padding:10px; font:12px/1.5 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.message-persona-evidence { display:grid; gap:7px; }
.message-persona-evidence-item { display:grid; grid-template-columns:28px minmax(0, 1fr); gap:8px; padding:8px; border:1px solid #d8e0ea; border-radius:8px; background:#f8fbff; color:#243447; }
.message-persona-evidence-item b { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; background:#17202b; color:#fff; font-size:12px; }
.message-persona-evidence-item span { display:block; font-size:12px; line-height:1.45; word-break:break-word; }
.message-persona-evidence-item em { display:block; margin-top:3px; color:#657487; font-style:normal; font-size:12px; line-height:1.45; }
.message-persona-graph-details { border:1px solid #d8e0ea; border-radius:8px; background:#fff; overflow:hidden; }
.message-persona-graph-details summary { cursor:pointer; padding:10px 12px; color:#243447; font-weight:700; }
.message-persona-graph-details[open] summary { border-bottom:1px solid #d8e0ea; }
.message-persona-graph-inner { display:grid; gap:10px; padding:12px; }
.message-privacy-risk { display:grid; gap:12px; border:1px solid #d8e0ea; border-radius:8px; padding:14px; background:#f8fbff; }
.message-privacy-risk-top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; }
.message-privacy-risk h3 { margin:0; color:#17202b; }
.message-privacy-score { font-weight:800; font-size:22px; color:#0969da; }
.message-privacy-risk.risk-high { border-color:rgba(220,38,38,.34); background:rgba(254,242,242,.86); }
.message-privacy-risk.risk-medium { border-color:rgba(217,119,6,.36); background:rgba(255,251,235,.9); }
.message-privacy-risk.risk-low { border-color:rgba(22,163,74,.32); background:rgba(240,253,244,.88); }
.message-privacy-stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:8px; }
.message-privacy-stat { border:1px solid rgba(148,163,184,.28); border-radius:8px; padding:9px; background:rgba(255,255,255,.68); display:grid; gap:3px; }
.message-privacy-stat span { color:#657487; font-size:12px; }
.message-privacy-stat strong { color:#17202b; font-size:18px; }
.message-privacy-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:10px; }
.message-privacy-card { border:1px solid #d8e0ea; border-radius:8px; padding:10px; background:#fff; display:grid; gap:6px; min-width:0; }
.message-privacy-card strong { color:#17202b; line-height:1.35; word-break:break-word; }
.message-privacy-card span,
.message-privacy-card em { color:#657487; font-size:12px; line-height:1.45; font-style:normal; word-break:break-word; }
.message-privacy-severity { display:inline-flex; width:max-content; align-items:center; min-height:22px; border-radius:999px; padding:0 8px; font-size:11px; font-weight:800; color:#0f172a; background:#e2e8f0; }
.message-privacy-severity.high { color:#7f1d1d; background:#fee2e2; }
.message-privacy-severity.medium { color:#78350f; background:#fef3c7; }
.message-privacy-severity.low { color:#14532d; background:#dcfce7; }
.message-privacy-samples { display:grid; gap:8px; }
.message-privacy-sample { border:1px solid #d8e0ea; border-radius:8px; padding:10px; background:#fff; display:grid; gap:7px; }
.message-privacy-sample-head { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; flex-wrap:wrap; }
.message-privacy-sample-head strong { color:#17202b; }
.message-privacy-sample code { white-space:normal; word-break:break-word; }
.message-persona-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:10px; }
.message-persona-sender { display:grid; gap:6px; padding:11px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; color:#17202b; }
.message-persona-sender:hover { text-decoration:none; background:#f8fbff; }
.message-persona-sender strong { word-break:break-word; line-height:1.35; }
.message-persona-sender span { color:#657487; font-size:12px; line-height:1.4; }
.message-persona-shell:fullscreen { width:100vw; height:100vh; padding:12px; background:#06111f; grid-template-rows:auto minmax(0, 1fr) auto; }
.message-persona-shell:fullscreen .message-persona-scene { height:100%; min-height:0; border-radius:0; }
.message-persona-shell:fullscreen .message-persona-head { color:#f8fbff; }
.message-persona-shell:fullscreen .message-persona-status { color:#bfd4f2; }
.message-persona-shell.is-expanded { position:fixed; inset:0; z-index:1000; width:auto; height:100dvh; padding:12px; background:#06111f; grid-template-rows:auto minmax(0, 1fr) auto; }
.message-persona-shell.is-expanded .message-persona-scene { height:100%; min-height:0; border-radius:0; }
.message-persona-shell.is-expanded .message-persona-head { color:#f8fbff; }
.message-persona-shell.is-expanded .message-persona-status { color:#bfd4f2; }
.message-graph-3d-panel:fullscreen { width:100vw; height:100vh; padding:12px; background:#07111f; grid-template-rows:auto minmax(0, 1fr) auto; }
.message-graph-3d-panel:fullscreen .message-graph-3d-scene { height:100%; min-height:0; border-radius:0; }
.message-graph-3d-panel:fullscreen .message-graph-3d-head { color:#f8fbff; }
.message-graph-3d-panel:fullscreen .message-graph-3d-status { color:#bfd4f2; }
.message-graph-3d-panel.is-expanded { position:fixed; inset:0; z-index:1000; width:auto; height:100dvh; padding:12px; background:#07111f; grid-template-rows:auto minmax(0, 1fr) auto; }
.message-graph-3d-panel.is-expanded .message-graph-3d-scene { height:100%; min-height:0; border-radius:0; }
.message-graph-3d-panel.is-expanded .message-graph-3d-head { color:#f8fbff; }
.message-graph-3d-panel.is-expanded .message-graph-3d-status { color:#bfd4f2; }
.message-graph-pair { min-height:96px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; color:#17202b; padding:12px; display:grid; gap:8px; align-content:center; }
.message-graph-pair:hover { text-decoration:none; background:#f8fbff; }
.message-graph-pair strong { display:block; line-height:1.35; word-break:break-word; }
.message-graph-pair span { color:#657487; font-size:12px; line-height:1.45; }
.message-graph-pair.size-1 { grid-column:span 2; min-height:150px; }
.message-graph-pair.size-1 strong { font-size:24px; }
.message-graph-pair.size-2 { min-height:128px; }
.message-graph-pair.size-2 strong { font-size:20px; }
.message-graph-pair.size-3 strong { font-size:16px; }
.message-speaker-cloud { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.message-speaker-token { display:inline-flex; align-items:center; min-height:34px; padding:0 11px; border:1px solid #d8e0ea; border-radius:999px; background:#fff; color:#17202b; font-weight:700; }
.message-graph-list { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:10px; }
.message-inline-actions { display:flex; gap:8px; flex-wrap:wrap; }
.message-toggle-row { display:flex; justify-content:space-between; gap:10px; align-items:center; flex-wrap:wrap; }
.message-toggle-row .actions { margin-left:auto; }
.message-pager { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.message-link-stack { display:grid; gap:6px; }
.message-compact-media { display:grid; gap:6px; }
.message-section-hint { margin:0; line-height:1.55; }
.message-card-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.message-card-footnote { color:#657487; font-size:12px; line-height:1.45; }
.message-row-detail { display:grid; gap:10px; padding:12px; border:1px solid #d8e0ea; border-radius:10px; background:#f8fbff; }
.message-row-detail[hidden] { display:none !important; }
.message-row-detail.is-loading { color:#657487; }
.message-row-detail pre { max-height:280px; }
.message-results-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:12px; }
.message-results-head p { margin:0; }
.message-result-count { color:#657487; font-size:13px; font-weight:700; white-space:nowrap; }
.message-table-desktop { display:block; }
.message-card-list { display:none; gap:12px; }
.message-card-list.force-visible { display:grid; }
.message-loading-grid { display:grid; gap:12px; }
.message-skeleton-card { min-height:140px; border:1px solid #d8e0ea; border-radius:12px; background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,248,252,.88)); position:relative; overflow:hidden; }
.message-skeleton-card:before { content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg, transparent, rgba(148,163,184,.14), transparent); animation:messageShimmer 1.4s infinite; }
@keyframes messageShimmer { 100% { transform:translateX(100%); } }
.message-card { border:1px solid #d8e0ea; border-radius:8px; background:#fff; padding:14px; display:grid; gap:12px; box-shadow:0 1px 0 rgba(31,35,40,.03); }
.message-card-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.message-card-title { min-width:0; }
.message-card-title strong { display:block; color:#17202b; line-height:1.4; word-break:break-word; }
.message-card-sub { margin-top:4px; color:#657487; font-size:12px; line-height:1.45; word-break:break-word; }
.message-card-text { border:1px solid #e2e8f0; border-radius:8px; background:#fbfcfe; padding:12px; color:#243447; white-space:pre-wrap; word-break:break-word; line-height:1.55; }
.message-card-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.message-card-meta { border:1px solid #e2e8f0; border-radius:8px; background:#fff; padding:10px; display:grid; gap:4px; }
.message-card-meta span { color:#657487; font-size:11px; font-weight:700; text-transform:uppercase; }
.message-card-meta strong, .message-card-meta code { color:#17202b; font-size:13px; line-height:1.45; word-break:break-word; }
.telegram-detail { display:grid; gap:10px; padding:12px; border:1px solid #d6e3ef; border-radius:8px; background:#e8f1f8; overflow:hidden; }
.telegram-message-head { display:flex; gap:10px; align-items:center; min-width:0; }
.telegram-avatar { flex:0 0 auto; width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#2aabee; color:#fff; font-weight:800; font-size:14px; }
.telegram-sender { min-width:0; display:grid; gap:2px; }
.telegram-sender strong { color:#17202b; line-height:1.3; word-break:break-word; }
.telegram-sender span { color:#657487; font-size:12px; line-height:1.35; word-break:break-word; }
.telegram-bubble { justify-self:start; max-width:min(660px, 100%); border-radius:8px 8px 8px 2px; background:#fff; color:#17202b; padding:10px 12px 7px; box-shadow:0 1px 2px rgba(15, 23, 42, .08); }
.telegram-bubble.outgoing { justify-self:end; border-radius:8px 8px 2px 8px; background:#d9fdd3; }
.telegram-message-text { white-space:pre-wrap; word-break:break-word; line-height:1.55; }
.telegram-message-time { margin-top:6px; color:#6a7b8d; font-size:11px; line-height:1.2; text-align:right; }
.telegram-media-link { margin-top:8px; word-break:break-all; font-size:12px; }
.telegram-meta-strip { display:grid; grid-template-columns:repeat(auto-fit, minmax(138px, 1fr)); gap:8px; }
.telegram-meta-pill { min-width:0; border:1px solid rgba(42, 171, 238, .22); border-radius:8px; background:rgba(255,255,255,.64); padding:8px 9px; display:grid; gap:3px; }
.telegram-meta-pill span { color:#657487; font-size:11px; font-weight:700; text-transform:uppercase; }
.telegram-meta-pill strong { color:#17202b; font-size:12px; line-height:1.35; word-break:break-word; }
.message-card details summary { cursor:pointer; color:var(--brand); font-weight:600; }
.message-card details[open] summary { margin-bottom:8px; }
.message-card-raw { display:grid; gap:8px; }
.message-card-raw pre { max-height:240px; }
.filter-note { color:#657487; font-size:12px; line-height:1.45; }
.message-analysis-card { display:grid; gap:14px; border-color:#cfd8e3; background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%); }
.message-agent-form { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:10px; align-items:end; }
.message-agent-prompt { grid-column:span 2; }
.message-agent-note { color:#657487; font-size:12px; line-height:1.45; }
.message-agent-status { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:12px 14px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; }
.message-agent-status strong { display:block; color:#17202b; }
.message-agent-status span { display:block; margin-top:4px; color:#657487; font-size:13px; line-height:1.45; }
.message-agent-meta { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.message-agent-layout { display:grid; grid-template-columns:minmax(0, 1.45fr) minmax(280px, .95fr); gap:14px; }
.message-agent-panel { min-height:240px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; overflow:hidden; display:flex; flex-direction:column; }
.message-agent-panel-head { padding:12px 14px; border-bottom:1px solid #e2e8f0; background:#fbfcfe; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.message-agent-panel-copy { display:grid; gap:4px; min-width:0; }
.message-agent-panel-head strong { color:#17202b; }
.message-agent-window { color:#657487; font-size:12px; line-height:1.4; }
.message-agent-panel-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.message-agent-live { display:grid; gap:10px; padding:12px 14px; border-bottom:1px solid #e2e8f0; background:linear-gradient(180deg, rgba(8, 16, 28, .98), rgba(10, 20, 34, .94)); }
.message-agent-live[hidden] { display:none !important; }
.message-agent-live-head { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.message-agent-live-title { display:inline-flex; align-items:center; gap:8px; color:#e6f0ff; font-size:13px; font-weight:700; }
.message-agent-live-dot { width:9px; height:9px; border-radius:50%; background:#38bdf8; box-shadow:0 0 0 0 rgba(56, 189, 248, .45); animation:messageAgentPulse 1.45s infinite; }
.message-agent-live-model { display:inline-flex; align-items:center; min-height:24px; padding:0 9px; border-radius:999px; border:1px solid rgba(125, 211, 252, .24); background:rgba(14, 165, 233, .1); color:#93c5fd; font-size:12px; font-weight:700; }
.message-agent-stream { display:grid; gap:6px; max-height:132px; overflow:auto; padding:12px; border:1px solid rgba(71, 85, 105, .48); border-radius:10px; background:rgba(2, 6, 23, .82); box-shadow:inset 0 1px 0 rgba(255,255,255,.03); }
.message-agent-stream-line { display:grid; gap:3px; color:#cfe1ff; font-size:12px; line-height:1.5; }
.message-agent-stream-line strong { color:#f8fbff; font-size:12px; font-weight:700; }
.message-agent-stream-line time { color:#7dd3fc; font-size:11px; }
.message-agent-stream-line.latest strong { color:#67e8f9; }
.message-agent-stream-detail {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.06);
  color:#f3f8ff;
  font-size:12px;
  line-height:1.6;
  border:1px solid rgba(125, 211, 252, .14);
}
.message-agent-stream-detail em {
  display:block;
  margin-top:6px;
  color:#93c5fd;
  font-style:normal;
}
@keyframes messageAgentPulse {
  0% { box-shadow:0 0 0 0 rgba(56, 189, 248, .45); }
  70% { box-shadow:0 0 0 10px rgba(56, 189, 248, 0); }
  100% { box-shadow:0 0 0 0 rgba(56, 189, 248, 0); }
}
.message-agent-bubble-actions { margin-top:8px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.message-agent-bubble-meta { color:#657487; font-size:12px; line-height:1.4; }
.message-agent-log { flex:1; min-height:220px; max-height:420px; overflow:auto; padding:14px; display:flex; flex-direction:column; gap:12px; background:#f6f8fb; }
.message-agent-empty { display:grid; place-items:center; color:#657487; font-size:13px; text-align:center; padding:24px; min-height:220px; }
.message-agent-log .bubble { max-width:min(760px, 96%); }
.message-agent-events { margin:0; padding:12px 14px; list-style:none; display:grid; gap:10px; font-size:13px; color:#314155; }
.message-agent-events li { display:grid; gap:4px; padding-bottom:10px; border-bottom:1px solid #eef2f6; }
.message-agent-events li:last-child { border-bottom:0; padding-bottom:0; }
.message-agent-events time { color:#657487; font-size:12px; }
.message-agent-event-detail {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(15, 23, 42, .04);
  color:#233244;
  font-size:12px;
  line-height:1.65;
  border:1px solid rgba(148, 163, 184, .16);
}
.message-agent-event-note {
  margin-top:6px;
  color:#657487;
  font-size:11px;
}
.message-agent-composer { display:grid; gap:8px; padding:12px 14px; border-top:1px solid #e2e8f0; background:#fff; }
.message-agent-composer textarea { min-height:76px; }
.message-page {
  display:grid;
  gap:18px;
  padding:24px;
  border:1px solid rgba(82, 124, 194, .32);
  border-radius:20px;
  background:
    radial-gradient(circle at top right, rgba(47, 108, 229, .18), transparent 28%),
    radial-gradient(circle at bottom left, rgba(25, 211, 240, .12), transparent 24%),
    linear-gradient(180deg, #08111f 0%, #0c1627 56%, #0b1422 100%);
  box-shadow:0 26px 80px rgba(2, 6, 23, .36);
  color:#dbe7ff;
  position:relative;
  overflow:hidden;
}
.message-page::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(125, 211, 252, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(125, 211, 252, .05) 1px, transparent 1px);
  background-size:28px 28px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.65), transparent 96%);
}
.message-page > * { position:relative; z-index:1; }
.message-page h1,
.message-page h2,
.message-page strong,
.message-page code { color:#f4f8ff; }
.message-page .muted,
.message-page .filter-note,
.message-page .message-result-count,
.message-page .message-card-sub,
.message-page .export-item-meta,
.message-page .export-meta-card small,
.message-page .metric-card small,
.message-page .preview-chip,
.message-page .message-agent-note,
.message-page .message-agent-bubble-meta,
.message-page .message-agent-window,
.message-page .message-agent-status span,
.message-page .message-agent-events time { color:#94a9cb; }
.message-page .message-agent-live-title,
.message-page .message-agent-stream-line strong { color:#f8fbff; }
.message-page .message-agent-stream-line { color:#cbdcff; }
.message-page .message-agent-stream-line.latest strong,
.message-page .message-agent-stream-line time { color:#67e8f9; }
.message-page .message-agent-stream-detail {
  background:rgba(10, 19, 34, .78);
  color:#ebf2ff;
  border-color:rgba(104, 149, 214, .18);
}
.message-page .message-agent-stream-detail em { color:#93c5fd; }
.message-page .card,
.message-page .metric-card,
.message-page .message-card,
.message-page .message-card-meta,
.message-page .export-meta-card,
.message-page .empty-state,
.message-page .message-agent-status,
.message-page .message-agent-panel,
.message-page .table-wrap {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
  box-shadow:0 12px 36px rgba(2, 6, 23, .22);
  backdrop-filter:blur(14px);
}
.message-page .message-toolbar,
.message-page .message-detail-card,
.message-page .export-list-card { box-shadow:0 12px 32px rgba(2, 6, 23, .2); }
.message-page .metric-card strong,
.message-page .export-meta-card strong,
.message-page .message-card-title strong,
.message-page .message-card-meta strong,
.message-page .message-card-meta code,
.message-page .message-stat-row strong,
.message-page .message-tag-chip strong,
.message-page .message-agent-panel-head strong,
.message-page .message-agent-status strong { color:#f8fbff; }
.message-page .metric-card span,
.message-page .export-meta-card span,
.message-page .message-card-meta span,
.message-page .message-stat-row span,
.message-page .message-tag-chip span,
.message-page .field-group label {
  color:#73d4ff;
  letter-spacing:.04em;
}
.message-page .btn {
  background:linear-gradient(135deg, #1a73ff 0%, #09b8ff 100%);
  border-color:rgba(129, 212, 250, .35);
  box-shadow:0 12px 24px rgba(9, 184, 255, .18);
}
.message-page .btn:hover { background:linear-gradient(135deg, #2a83ff 0%, #15c7ff 100%); }
.message-page .btn.secondary {
  background:rgba(15, 28, 48, .74);
  color:#dbe7ff;
  border-color:rgba(120, 162, 223, .22);
  box-shadow:none;
}
.message-page .btn.secondary:hover { background:rgba(21, 38, 64, .92); color:#f4f8ff; }
.message-page input,
.message-page select,
.message-page textarea {
  border-color:rgba(104, 149, 214, .26);
  background:rgba(8, 15, 28, .84);
  color:#f3f8ff;
  box-shadow:inset 0 0 0 1px rgba(9, 184, 255, .02);
}
.message-page input::placeholder,
.message-page textarea::placeholder { color:#6f88ad; }
.message-page .export-list-head,
.message-page .message-agent-panel-head,
.message-page .message-agent-live,
.message-page .sticky-table th {
  background:rgba(14, 25, 44, .92);
  border-color:rgba(104, 149, 214, .2);
}
.message-page .export-item,
.message-page .sticky-table td,
.message-page .message-agent-composer,
.message-page .message-agent-log,
.message-page .message-card-text {
  background:rgba(6, 14, 27, .82);
  border-color:rgba(104, 149, 214, .18);
  color:#dbe7ff;
}
.message-page .export-item:hover { background:rgba(17, 32, 54, .96); }
.message-page .export-item.active {
  background:linear-gradient(135deg, rgba(24, 74, 177, .48), rgba(18, 154, 201, .2));
  border-left:3px solid #61c7ff;
}
.message-page .preview-chip,
.message-page .badge {
  border-color:rgba(102, 174, 255, .24);
  background:rgba(12, 24, 41, .76);
  color:#b8d7ff;
}
.message-page .message-analysis-card {
  gap:16px;
  border-color:rgba(81, 159, 255, .3);
  background:
    radial-gradient(circle at top right, rgba(9, 184, 255, .12), transparent 26%),
    linear-gradient(180deg, rgba(11, 22, 38, .96), rgba(8, 16, 29, .94));
}
.message-page .message-surface-tab {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
  color:#cfe3ff;
  box-shadow:0 12px 30px rgba(2, 6, 23, .14);
}
.message-page .message-surface-tab:hover { background:rgba(17, 32, 54, .94); }
.message-page .message-surface-tab.active {
  border-color:rgba(96, 196, 255, .55);
  background:linear-gradient(135deg, rgba(37, 99, 235, .92), rgba(8, 145, 178, .88));
  color:#fff;
}
.message-page .message-stage-card {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
  box-shadow:0 12px 36px rgba(2, 6, 23, .22);
  backdrop-filter:blur(14px);
}
.message-page .message-stat-row,
.message-page .message-tag-chip,
.message-page .message-graph-canvas,
.message-page .message-graph-3d-scene {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
}
.message-page .message-graph-3d-status { color:#9fb6d6; }
.message-page .message-persona-scene,
.message-page .message-persona-evidence-scene {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(6, 17, 31, .92);
}
.message-page .message-persona-status { color:#9fb6d6; }
.message-page .message-persona-portrait {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
}
.message-page .message-persona-portrait-media {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(6, 17, 31, .72);
  color:#9fb6d6;
}
.message-page .message-persona-portrait-copy strong { color:#f8fbff; }
.message-page .message-persona-portrait-copy pre {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(6, 17, 31, .72);
  color:#dbeafe;
}
.message-page .message-persona-layer {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
  color:#dbeafe;
}
.message-page .message-persona-layer-title b { background:#60c4ff; color:#06111f; }
.message-page .message-persona-layer-title strong,
.message-page .message-persona-text-block strong,
.message-page .message-persona-estimates-head strong,
.message-page .message-persona-estimate-card strong { color:#f8fbff; }
.message-page .message-persona-layer-title span,
.message-page .message-persona-layer-state,
.message-page .message-persona-text-block span,
.message-page .message-persona-estimates-head span,
.message-page .message-persona-directed-empty { color:#9fb6d6; }
.message-page .message-persona-text-summary { color:#dbeafe; }
.message-page .message-persona-text-block,
.message-page .message-persona-estimate-card,
.message-page .message-persona-directed-empty {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(6, 17, 31, .72);
}
.message-page .message-persona-estimate-row { color:#dbeafe; }
.message-page .message-persona-estimate-row b { color:#7dd3fc; }
.message-page .message-persona-estimate-row em { color:#9fb6d6; }
.message-page .message-persona-directed-node rect { fill:rgba(6, 17, 31, .92); stroke:rgba(125, 211, 252, .36); }
.message-page .message-persona-directed-node text { fill:#eaf4ff; }
.message-page .message-persona-directed-layer-label { fill:#9fb6d6; }
.message-page .message-persona-evidence-item,
.message-page .message-persona-graph-details {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(6, 17, 31, .72);
  color:#dbeafe;
}
.message-page .message-persona-evidence-item b { background:#60c4ff; color:#06111f; }
.message-page .message-persona-evidence-item em { color:#9fb6d6; }
.message-page .message-persona-graph-details summary { color:#f8fbff; }
.message-page .message-persona-graph-details[open] summary { border-color:rgba(97, 134, 192, .24); }
.message-page .message-privacy-risk,
.message-page .message-privacy-card,
.message-page .message-privacy-sample {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(6, 17, 31, .72);
  color:#dbeafe;
}
.message-page .message-privacy-risk h3,
.message-page .message-privacy-card strong,
.message-page .message-privacy-sample-head strong { color:#f8fbff; }
.message-page .message-privacy-score { color:#7dd3fc; }
.message-page .message-privacy-stat {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .7);
}
.message-page .message-privacy-stat strong { color:#f8fbff; }
.message-page .message-privacy-stat span,
.message-page .message-privacy-card span,
.message-page .message-privacy-card em { color:#9fb6d6; }
.message-page .message-privacy-risk.risk-high { border-color:rgba(248,113,113,.38); background:rgba(69, 10, 10, .42); }
.message-page .message-privacy-risk.risk-medium { border-color:rgba(251,191,36,.36); background:rgba(69, 42, 8, .34); }
.message-page .message-privacy-risk.risk-low { border-color:rgba(74,222,128,.32); background:rgba(5, 46, 22, .34); }
.message-page .message-persona-sender {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
  color:#f8fbff;
}
.message-page .message-persona-sender:hover { background:rgba(17, 32, 54, .96); }
.message-page .message-persona-sender span { color:#94a9cb; }
.message-page .message-graph-pair,
.message-page .message-speaker-token {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 19, 34, .82);
  color:#f8fbff;
}
.message-page .message-graph-pair:hover,
.message-page .message-speaker-token:hover { background:rgba(17, 32, 54, .96); text-decoration:none; }
.message-page .message-graph-pair span { color:#94a9cb; }
.message-page .message-stat-row:hover,
.message-page .message-tag-chip:hover { background:rgba(17, 32, 54, .96); }
.message-page .message-stat-count { color:#67e8f9; }
.message-page .message-progress-bar { background:rgba(148,163,184,.22); }
.message-page .message-skeleton-card { border-color:rgba(97, 134, 192, .22); background:rgba(10, 19, 34, .72); }
.message-page .message-skeleton-card:before { background:linear-gradient(90deg, transparent, rgba(125, 211, 252, .12), transparent); }
.message-page .message-row-detail {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(12, 25, 43, .88);
  box-shadow:0 12px 30px rgba(2, 6, 23, .18);
}
.message-page .message-card-footnote { color:#9fb6d6; }
.message-page .telegram-detail {
  border-color:rgba(97, 134, 192, .24);
  background:rgba(10, 25, 43, .88);
}
.message-page .telegram-avatar { background:#229ed9; }
.message-page .telegram-sender strong,
.message-page .telegram-meta-pill strong { color:#f8fbff; }
.message-page .telegram-sender span,
.message-page .telegram-message-time,
.message-page .telegram-meta-pill span { color:#9fb6d6; }
.message-page .telegram-bubble {
  background:rgba(22, 39, 61, .96);
  color:#dbe7ff;
  box-shadow:0 1px 2px rgba(2, 6, 23, .36);
}
.message-page .telegram-bubble.outgoing { background:rgba(40, 88, 67, .96); }
.message-page .telegram-meta-pill {
  border-color:rgba(102, 174, 255, .22);
  background:rgba(5, 13, 25, .46);
}
.message-page .message-agent-status {
  border-color:rgba(102, 174, 255, .26);
  background:linear-gradient(135deg, rgba(15, 31, 56, .92), rgba(9, 22, 40, .82));
}
.message-page .message-agent-log {
  background:
    radial-gradient(circle at top left, rgba(36, 170, 255, .08), transparent 22%),
    linear-gradient(180deg, rgba(5, 13, 25, .98), rgba(8, 18, 32, .92));
}
.message-page .message-agent-empty { color:#8fa6ca; }
.message-page .message-agent-events li { border-color:rgba(104, 149, 214, .14); }
.message-page .message-agent-event-detail {
  background:rgba(10, 19, 34, .78);
  color:#ebf2ff;
  border-color:rgba(104, 149, 214, .18);
}
.message-page .message-agent-event-note { color:#93a9cb; }
.message-page .bubble {
  border-color:rgba(89, 128, 181, .24);
  background:rgba(12, 22, 38, .92);
  color:#ebf2ff;
  box-shadow:0 8px 24px rgba(2, 6, 23, .2);
}
.message-page .bubble.user {
  background:linear-gradient(135deg, rgba(17, 77, 174, .96), rgba(18, 124, 196, .94));
  border-color:rgba(97, 199, 255, .28);
}
.message-page .bubble.assistant {
  background:linear-gradient(135deg, rgba(20, 36, 62, .96), rgba(12, 28, 48, .94));
}
.message-page .bubble.system {
  background:rgba(55, 38, 8, .94);
  border-color:rgba(245, 158, 11, .36);
  color:#fde7b5;
}
.message-page .mode-pill.full {
  background:rgba(20, 83, 45, .36);
  color:#a7f3d0;
  border-color:rgba(52, 211, 153, .32);
}
.message-page .mode-pill.incremental {
  background:rgba(30, 64, 175, .34);
  color:#bfdbfe;
  border-color:rgba(96, 165, 250, .34);
}
.message-page .mode-pill.seed,
.message-page .mode-pill.other {
  background:rgba(55, 65, 81, .42);
  color:#dbe7ff;
  border-color:rgba(148, 163, 184, .28);
}
.message-page .sticky-table th,
.message-page .sticky-table td,
.message-page .sticky-table .sender-col,
.message-page .sticky-table .media-col {
  background-color:transparent;
  color:#dbe7ff;
}
.message-page .message-card-text,
.message-page .message-card-raw pre,
.message-page pre {
  background:rgba(5, 13, 25, .88);
  color:#dbe7ff;
  border-color:rgba(104, 149, 214, .2);
}
.message-page .media-preview {
  border-color:rgba(102, 174, 255, .22);
  background:#020617;
}
.message-page .empty-state {
  border-style:solid;
  color:#a9bddc;
  background:linear-gradient(180deg, rgba(11, 20, 35, .85), rgba(8, 15, 28, .8));
}
.message-page.lite {
  background:linear-gradient(180deg, #08111f 0%, #0c1627 58%, #0b1422 100%);
  box-shadow:0 14px 36px rgba(2, 6, 23, .26);
}
.message-page.lite::before { display:none; }
.message-page.lite .card,
.message-page.lite .metric-card,
.message-page.lite .message-card,
.message-page.lite .message-card-meta,
.message-page.lite .export-meta-card,
.message-page.lite .empty-state,
.message-page.lite .message-agent-status,
.message-page.lite .message-agent-panel,
.message-page.lite .table-wrap,
.message-page.lite .message-stage-card {
  backdrop-filter:none;
  box-shadow:0 8px 18px rgba(2, 6, 23, .16);
}
.message-page.lite .message-analysis-card {
  background:linear-gradient(180deg, rgba(11, 22, 38, .96), rgba(8, 16, 29, .94));
}
.message-page.lite .message-agent-log {
  background:linear-gradient(180deg, rgba(5, 13, 25, .98), rgba(8, 18, 32, .92));
}
.message-page.lite .message-agent-status {
  background:rgba(12, 24, 41, .9);
}
.message-page.lite .btn {
  box-shadow:0 8px 18px rgba(9, 184, 255, .12);
}
.message-page.lite .bubble,
.message-page.lite .bubble.assistant,
.message-page.lite .bubble.user,
.message-page.lite .bubble.system {
  box-shadow:none;
}
.table-wrap { overflow:auto; max-height:70vh; border:1px solid var(--line); border-radius:8px; background:#fff; }
.sticky-table { border:0; }
.sticky-table th { position:sticky; top:0; z-index:1; background:#f6f8fa; }
.sticky-table .sender-col { background:#f8fbff; }
.sticky-table td.sender-col { color:#17202b; }
.sticky-table td.sender-name { font-weight:700; }
.sticky-table .media-col { background:#fcfcff; }
.sticky-table td.media-col { min-width:220px; }
.media-preview-link { display:grid; gap:8px; }
.media-preview { display:block; width:min(260px, 100%); max-height:180px; object-fit:cover; border:1px solid #d8e0ea; border-radius:8px; background:#0d1117; }
.raw-wrap { white-space:pre-wrap; word-break:break-all; }
.empty-state { border:1px dashed #c7d2df; border-radius:8px; background:#fbfcfe; padding:28px; color:#657487; text-align:center; }
.traffic-table td { font-size:13px; }
.traffic-url { max-width:460px; word-break:break-all; line-height:1.45; }
.traffic-status { font-weight:700; }
.traffic-status.ok { color:var(--green); }
.traffic-status.warn { color:#9a6700; }
.traffic-status.error { color:var(--danger); }
.traffic-label { display:grid; gap:4px; }
.traffic-detail-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; margin-top:12px; }
.traffic-detail-card { border:1px solid #d8e0ea; border-radius:8px; background:#fbfcfe; padding:12px; }
.traffic-detail-card h3 { margin:0 0 8px; font-size:15px; }
.traffic-detail-card h4 { margin:12px 0 6px; font-size:13px; color:#314155; }
.traffic-meta { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.traffic-meta .preview-chip { min-height:26px; }
.traffic-body-note { margin:6px 0 0; color:#657487; font-size:12px; line-height:1.4; }
details.traffic-details summary { cursor:pointer; color:var(--brand); font-weight:600; }
details.traffic-details[open] summary { margin-bottom:10px; }
.phone-status-banner { display:flex; align-items:center; gap:14px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; padding:14px 16px; margin-bottom:16px; }
.phone-status-banner.ok { border-color:#b7dfc3; background:#f6fbf7; }
.phone-status-banner.warn { border-color:#ead9a8; background:#fff9eb; }
.phone-status-banner.error { border-color:#efc0c3; background:#fff6f6; }
.phone-status-icon { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:12px; border:1px solid #d8e0ea; background:#fff; flex:0 0 auto; }
.phone-status-icon svg { width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.9; }
.phone-status-icon.ok { color:var(--green); border-color:#b7dfc3; }
.phone-status-icon.warn { color:#9a6700; border-color:#ead9a8; }
.phone-status-icon.error { color:var(--danger); border-color:#efc0c3; }
.phone-status-copy { min-width:0; }
.phone-status-copy strong { display:block; font-size:18px; color:#17202b; }
.phone-status-copy span { display:block; margin-top:3px; color:#314155; line-height:1.45; }
.phone-status-copy small { display:block; margin-top:4px; color:#657487; line-height:1.4; word-break:break-word; }
.target-table td { vertical-align:top; }
.target-inline-form { display:grid; grid-template-columns:minmax(140px, 1fr) minmax(220px, 1.3fr) minmax(160px, 1fr) minmax(220px, 1fr) auto; gap:10px; align-items:end; }
.target-inline-form .actions { justify-content:flex-end; }
.target-inline-form label { font-size:12px; color:#657487; }
.target-state { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; border:1px solid #d8e0ea; background:#fff; color:#314155; font-size:12px; font-weight:700; }
.target-state.on { color:var(--green); border-color:#b7dfc3; background:#f6fbf7; }
.target-state.off { color:#657487; }
.target-state.idle { color:#9a6700; border-color:#ead9a8; background:#fff9eb; }
.target-meta { display:grid; gap:4px; }
.target-meta code { word-break:break-all; }
.advanced-section summary { cursor:pointer; color:var(--brand); font-weight:600; }
.advanced-section[open] summary { margin-bottom:12px; }
@media (max-width: 960px) {
  .export-shell { grid-template-columns:1fr; }
  .export-detail-head { flex-direction:column; }
  .traffic-detail-grid { grid-template-columns:1fr; }
  .target-inline-form { grid-template-columns:1fr; }
  .message-layout { grid-template-columns:1fr; }
  .message-card-grid { grid-template-columns:1fr; }
  .field-group-wide { grid-column:auto; }
  .message-agent-prompt { grid-column:auto; }
  .message-agent-layout { grid-template-columns:1fr; }
  .message-agent-status { display:grid; }
  .message-agent-meta { justify-content:flex-start; }
  .message-results-head { display:grid; }
  .message-table-desktop { display:none; }
  .message-card-list { display:grid; }
  .message-side { order:2; }
  .message-detail-card { order:1; }
  .message-graph-cloud { grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); }
  .message-graph-pair.size-1 { grid-column:auto; min-height:118px; }
  .message-graph-pair.size-1 strong { font-size:20px; }
  .message-graph-pair.size-2 { min-height:108px; }
  .message-graph-pair.size-2 strong { font-size:18px; }
}
.env-layout { display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:24px; align-items:start; }
.env-row { display:grid; grid-template-columns:160px minmax(160px, 1fr) 140px 180px; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); align-items:center; }
.env-row.head { background:var(--soft); color:var(--muted); font-weight:600; }
.env-row:last-child { border-bottom:0; }
.store-page { background:#f5f7fb; }
.store-hero { background:#111316; color:#fff; border-bottom:1px solid #282d33; }
.store-hero .wrap { display:grid; grid-template-columns:minmax(0, 1fr) 430px; gap:28px; align-items:center; padding-top:34px; padding-bottom:32px; }
.store-hero h1 { color:#fff; font-size:40px; line-height:1.08; margin:12px 0 10px; font-weight:700; }
.store-hero p { color:rgba(255,255,255,.76); max-width:680px; line-height:1.6; }
.store-hero .badge { color:#d8e0ea; border-color:rgba(255,255,255,.22); background:rgba(255,255,255,.08); }
.store-hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.store-feature-card { min-height:178px; border:1px solid rgba(255,255,255,.14); border-radius:8px; padding:14px; color:#fff; background:var(--device-bg); display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; box-shadow:0 18px 48px rgba(0,0,0,.22); }
.store-feature-card:first-child { grid-row:span 2; min-height:368px; }
.store-feature-card strong { display:block; font-size:18px; text-shadow:0 1px 14px rgba(0,0,0,.32); }
.store-feature-card span { color:rgba(255,255,255,.85); font-size:12px; }
.store-device { width:70px; height:106px; align-self:center; border:7px solid rgba(17,24,39,.9); border-radius:20px; background:linear-gradient(145deg, rgba(255,255,255,.34), rgba(0,0,0,.18)); box-shadow:0 16px 32px rgba(0,0,0,.2); }
.store-feature-card:first-child .store-device { width:112px; height:172px; border-radius:28px; border-width:9px; }
.store-main { background:#f5f7fb; }
.store-controls { display:grid; grid-template-columns:minmax(220px, 1fr) 220px auto; gap:12px; margin-bottom:16px; padding:14px; border:1px solid #d8e0ea; border-radius:8px; background:#fff; box-shadow:0 1px 0 rgba(31,35,40,.03); }
.store-controls input, .store-controls select { height:40px; border-color:#cfd8e3; }
.store-tabs { display:flex; gap:8px; overflow-x:auto; padding:2px 0 18px; }
.store-tab { display:inline-flex; align-items:center; min-height:34px; padding:0 13px; border:1px solid #d8e0ea; border-radius:999px; color:#314155; background:#fff; font-weight:700; white-space:nowrap; }
.store-tab.active, .store-tab:hover { text-decoration:none; color:#fff; background:#202632; border-color:#202632; }
.store-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-end; margin-bottom:14px; }
.store-heading h1 { font-size:26px; margin-bottom:4px; }
.store-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(238px, 1fr)); gap:16px; }
.store-card { border:1px solid #d8e0ea; border-radius:8px; background:#fff; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 1px 0 rgba(31,35,40,.03); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.store-card:hover { transform:translateY(-2px); border-color:#b7c7d8; box-shadow:0 16px 34px rgba(31,35,40,.12); }
.store-media { min-height:168px; display:grid; place-items:center; background:var(--device-bg); }
.store-media .store-device { width:78px; height:122px; }
.store-body { padding:15px; display:flex; flex-direction:column; gap:10px; flex:1; }
.store-title { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.store-title h2 { margin:5px 0 0; font-size:17px; }
.store-price { font-weight:800; white-space:nowrap; color:#17202b; }
.store-specs { margin:0; padding:0; list-style:none; display:grid; gap:6px; color:#657487; font-size:13px; min-height:62px; }
.store-specs li { display:flex; gap:7px; align-items:flex-start; }
.store-specs li:before { content:""; width:6px; height:6px; border-radius:50%; background:#1f883d; margin-top:7px; flex:0 0 auto; }
.store-actions { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-top:auto; }
.store-action-buttons { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.store-rating { color:#9a6700; font-weight:800; white-space:nowrap; }
.btn.danger { background:var(--danger); border-color:rgba(31,35,40,.15); }
.btn.danger:hover { background:#b6232d; color:#fff; }
.favorites-shell { max-width:980px; }
.favorites-room { position:relative; border:1px solid rgba(173,200,228,.18); border-radius:28px; overflow:hidden; background:linear-gradient(180deg, rgba(8,19,34,.78), rgba(8,19,34,.66)); box-shadow:0 34px 96px rgba(2,9,19,.44), inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter:blur(24px) saturate(1.12); }
.favorites-room::before { content:""; position:absolute; inset:0; background-image:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.015)), var(--page-cover-image); background-size:cover; background-position:center; opacity:.18; pointer-events:none; }
.favorites-room::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(5,10,18,.18)); pointer-events:none; }
.favorites-head, .favorites-toolbar, .favorites-stream-wrap, .favorites-composer-wrap { position:relative; z-index:1; }
.favorites-head { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:20px 22px; background:linear-gradient(135deg, rgba(64,129,191,.62), rgba(39,90,150,.44) 48%, rgba(30,176,179,.24)); color:#fff; border-bottom:1px solid rgba(208,229,247,.14); box-shadow:inset 0 -1px 0 rgba(255,255,255,.08); }
.favorites-head-main { display:flex; align-items:center; gap:14px; min-width:0; }
.favorites-avatar { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(180deg, rgba(255,255,255,.3), rgba(255,255,255,.08)); border:1px solid rgba(255,255,255,.28); font-size:24px; font-weight:800; box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 10px 24px rgba(6,15,29,.18); }
.favorites-head-copy { min-width:0; display:grid; gap:4px; }
.favorites-head-copy strong { font-size:20px; line-height:1.1; }
.favorites-head-copy span { color:rgba(255,255,255,.82); font-size:13px; line-height:1.45; }
.favorites-head-meta { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; align-items:center; }
.favorites-chip { display:inline-flex; align-items:center; min-height:32px; padding:0 12px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.2); color:#fff; font-weight:700; font-size:12px; backdrop-filter:blur(10px); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.favorites-toolbar { display:grid; gap:12px; padding:16px 18px; background:linear-gradient(180deg, rgba(13,25,42,.58), rgba(13,25,42,.42)); border-bottom:1px solid rgba(196,217,236,.12); }
.favorites-search { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.favorites-search input { flex:1 1 260px; min-width:0; height:42px; border-radius:999px; border:1px solid rgba(194,217,239,.18); background:rgba(247,251,255,.94); padding:0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,.88), 0 10px 22px rgba(2,10,22,.12); }
.favorites-search .btn { min-height:38px; border-radius:999px; }
.favorites-toolbar-meta { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.favorites-filter-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.favorites-filter-tab { display:inline-flex; align-items:center; min-height:34px; padding:0 13px; border-radius:999px; border:1px solid rgba(194,217,239,.16); background:rgba(255,255,255,.08); color:rgba(231,241,251,.88); font-weight:700; font-size:12px; backdrop-filter:blur(10px); }
.favorites-filter-tab:hover { text-decoration:none; background:rgba(255,255,255,.14); color:#fff; }
.favorites-filter-tab.active { background:linear-gradient(135deg, rgba(69,149,217,.92), rgba(84,208,195,.82)); border-color:transparent; color:#fff; box-shadow:0 12px 26px rgba(41,126,204,.28); }
.favorites-toolbar-action { min-height:34px; padding:0 14px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.08); color:#f7d5d7; font-weight:700; backdrop-filter:blur(10px); }
.favorites-toolbar-action:hover { background:rgba(255,255,255,.14); color:#fff0f1; }
.favorites-actions { display:flex; gap:8px; flex-wrap:wrap; }
.favorites-actions .btn { min-height:34px; border-radius:999px; }
.favorites-stream-wrap { position:relative; padding:20px 18px 0; background:linear-gradient(180deg, rgba(8,18,31,.18), rgba(8,18,31,.32)); }
.favorites-stream-wrap::before { content:""; position:absolute; inset:0; background-image:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0)), var(--page-cover-image); background-size:cover; background-position:center; opacity:.14; filter:saturate(1.12); pointer-events:none; }
.favorites-stream-wrap::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(6,10,16,.16)); pointer-events:none; }
.favorites-flashes { position:relative; z-index:1; display:grid; gap:10px; margin-bottom:14px; }
.favorites-toast { width:max-content; max-width:100%; margin:0 auto; padding:8px 14px; border-radius:999px; background:rgba(13,22,36,.62); color:#fff; font-size:12px; box-shadow:0 14px 28px rgba(2,10,22,.22); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.1); }
.favorites-stream { position:relative; z-index:1; display:grid; gap:14px; padding-bottom:18px; }
.favorites-stream-day { width:max-content; max-width:100%; justify-self:center; padding:7px 12px; border-radius:999px; background:rgba(8,15,28,.3); color:rgba(234,244,252,.92); font-size:12px; font-weight:700; box-shadow:0 10px 24px rgba(2,10,22,.16); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.08); }
.favorites-row { display:flex; justify-content:flex-end; contain:layout paint style; content-visibility:auto; contain-intrinsic-size:300px; }
.favorites-bubble { position:relative; width:min(100%, 640px); border-radius:24px 24px 10px 24px; background:linear-gradient(180deg, rgba(237,255,246,.94) 0%, rgba(214,246,228,.88) 100%); border:1px solid rgba(89,164,114,.2); box-shadow:0 22px 48px rgba(2,12,24,.18), inset 0 1px 0 rgba(255,255,255,.82); backdrop-filter:blur(12px) saturate(1.05); padding:14px; display:grid; gap:12px; overflow:hidden; }
.favorites-bubble::before { content:""; position:absolute; inset:1px 1px auto 1px; height:46%; border-radius:24px 24px 18px 18px; background:linear-gradient(180deg, rgba(255,255,255,.46), rgba(255,255,255,0)); pointer-events:none; }
.favorites-bubble::after { content:""; position:absolute; right:-1px; bottom:-1px; width:20px; height:18px; background:linear-gradient(180deg, rgba(225,248,236,.94) 0%, rgba(208,239,222,.9) 100%); border-right:1px solid rgba(89,164,114,.2); border-bottom:1px solid rgba(89,164,114,.2); clip-path:polygon(0 0, 100% 100%, 0 100%); }
.favorites-bubble-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.favorites-bubble-title { min-width:0; display:grid; gap:4px; }
.favorites-bubble-title strong { display:block; font-size:15px; color:#183b2a; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.favorites-bubble-title span { color:#537268; font-size:12px; }
.favorites-entry-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
.favorites-entry-actions form { margin:0; display:flex; }
.favorites-entry-actions .btn { min-height:32px; padding:0 13px; border-radius:999px; font-size:12px; white-space:nowrap; }
.favorites-entry-actions .btn.danger { min-width:36px; }
.favorites-entry-actions .btn.danger.favorites-delete-button { width:36px; min-width:36px; padding:0; font-size:16px; line-height:1; border-radius:12px; background:transparent; color:#a6474d; border-color:transparent; box-shadow:none; }
.favorites-entry-actions .btn.danger.favorites-delete-button:hover { background:rgba(207,34,46,.08); color:#8f2d34; }
.favorites-text { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.7; color:#18312a; font-size:14px; }
.favorites-media-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:10px; }
.favorites-media-grid.count-1 { grid-template-columns:minmax(0, 280px); justify-content:end; }
.favorites-media-grid.count-2 { grid-template-columns:repeat(2, minmax(0, 190px)); justify-content:end; }
.favorites-media-grid.count-many { grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); }
.favorites-media-card { border-radius:18px; overflow:hidden; background:rgba(255,255,255,.78); border:1px solid rgba(103,139,123,.14); box-shadow:0 14px 30px rgba(4,14,28,.08), inset 0 1px 0 rgba(255,255,255,.8); }
.favorites-media-card a { display:block; }
.favorites-media-card img { display:block; width:100%; aspect-ratio:1 / 1; object-fit:cover; background:#d5e1ec; }
.favorites-media-meta { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 12px 12px; }
.favorites-media-name, .favorites-file-name { min-width:0; display:grid; gap:3px; }
.favorites-media-name strong, .favorites-file-name strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#18312a; font-size:13px; }
.favorites-media-name span, .favorites-file-name span { color:#577066; font-size:12px; }
.favorites-file-list { display:grid; gap:10px; }
.favorites-file-row { display:grid; grid-template-columns:40px minmax(0, 1fr) auto; justify-content:space-between; gap:12px; align-items:center; padding:12px 14px; border-radius:16px; background:rgba(255,255,255,.78); border:1px solid rgba(103,139,123,.14); box-shadow:0 14px 30px rgba(4,14,28,.08), inset 0 1px 0 rgba(255,255,255,.8); }
.favorites-file-icon { width:40px; height:40px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(180deg, #eef7ff, #ddedfb); color:#2f80c2; font-weight:800; font-size:14px; box-shadow:inset 0 1px 0 rgba(255,255,255,.72); }
.favorites-pending-badge, .favorites-pending-inline { display:inline-flex; align-items:center; min-height:30px; padding:0 12px; border-radius:999px; background:rgba(70, 138, 198, .14); border:1px solid rgba(70, 138, 198, .18); color:#2c5f88; font-size:12px; font-weight:700; white-space:nowrap; }
.favorites-pending-inline { min-height:28px; }
.favorites-bubble.is-pending { background:linear-gradient(180deg, #eef9ff 0%, #e1f2ff 100%); border-color:rgba(80, 144, 201, .22); }
.favorites-bubble.is-pending::after { background:linear-gradient(180deg, #e8f6ff 0%, #dceeff 100%); border-right-color:rgba(80, 144, 201, .22); border-bottom-color:rgba(80, 144, 201, .22); }
.favorites-bubble.is-failed { background:linear-gradient(180deg, #fff2f2 0%, #ffe7e7 100%); border-color:rgba(207,34,46,.24); }
.favorites-bubble.is-failed::after { background:linear-gradient(180deg, #ffefef 0%, #ffe2e2 100%); border-right-color:rgba(207,34,46,.24); border-bottom-color:rgba(207,34,46,.24); }
.favorites-pending-box { display:grid; gap:9px; padding:12px 14px; border-radius:18px; background:rgba(255,255,255,.82); border:1px solid rgba(154,190,219,.36); box-shadow:inset 0 1px 0 rgba(255,255,255,.9); }
.favorites-pending-head { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.favorites-pending-title { color:#224764; font-size:13px; font-weight:800; }
.favorites-pending-percent { color:#4f728d; font-size:12px; font-weight:700; }
.favorites-pending-bar { position:relative; height:10px; border-radius:999px; background:#dae7f2; overflow:hidden; }
.favorites-pending-fill { display:block; width:8%; height:100%; border-radius:inherit; background:linear-gradient(90deg, #4aa5e5 0%, #74d4c7 48%, #4aa5e5 100%); background-size:180px 100%; animation:favorites-upload-flow 1.1s linear infinite; transition:width .24s ease; }
.favorites-pending-detail { color:#5a748d; font-size:12px; line-height:1.55; }
.favorites-bubble.is-failed .favorites-pending-box { border-color:rgba(207,34,46,.18); background:rgba(255,255,255,.88); }
.favorites-bubble.is-failed .favorites-pending-title,
.favorites-bubble.is-failed .favorites-pending-percent,
.favorites-bubble.is-failed .favorites-pending-detail { color:#8e2a2f; }
.favorites-bubble.is-failed .favorites-pending-fill { background:linear-gradient(90deg, #ff8d91 0%, #ffb4b7 48%, #ff8d91 100%); }
@keyframes favorites-upload-flow { from { background-position:0 0; } to { background-position:180px 0; } }
.favorites-bubble-foot { display:flex; justify-content:flex-end; gap:10px; align-items:center; min-height:18px; margin-top:-2px; }
.favorites-meta-note { color:#668378; font-size:11px; }
.favorites-time { color:#54776a; font-size:12px; font-weight:700; }
.favorites-composer-wrap { padding:0 18px 18px; background:linear-gradient(180deg, rgba(8,18,31,.18), rgba(8,18,31,.28)); }
.favorites-composer { display:grid; gap:12px; padding:16px; border-radius:24px; background:linear-gradient(180deg, rgba(250,253,255,.9), rgba(237,246,255,.82)); border:1px solid rgba(180,205,229,.18); box-shadow:0 24px 54px rgba(2,10,22,.24), inset 0 1px 0 rgba(255,255,255,.86); backdrop-filter:blur(18px) saturate(1.06); }
.favorites-composer-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.favorites-composer-copy { display:grid; gap:4px; }
.favorites-composer-copy strong { font-size:15px; color:#17202b; }
.favorites-composer-copy span { color:#687b8f; font-size:12px; line-height:1.5; }
.favorites-upload-status { display:grid; gap:10px; padding:12px 14px; border-radius:18px; background:rgba(233,245,255,.92); border:1px solid rgba(186,214,240,.54); box-shadow:0 10px 24px rgba(6,18,31,.08), inset 0 1px 0 rgba(255,255,255,.84); }
.favorites-upload-status[hidden] { display:none; }
.favorites-upload-head { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.favorites-upload-title { font-weight:700; color:#28465c; }
.favorites-upload-percent { color:#4f6b80; font-size:12px; font-weight:700; }
.favorites-upload-bar { height:10px; border-radius:999px; background:#dce8f3; overflow:hidden; }
.favorites-upload-bar span { display:block; width:0%; height:100%; background:linear-gradient(90deg, #49a2de 0%, #62d5a7 100%); transition:width .2s ease; }
.favorites-upload-detail { color:#5f7488; font-size:12px; line-height:1.5; }
.favorites-composer textarea { min-height:120px; resize:vertical; border-radius:18px; border-color:rgba(188,209,229,.42); background:rgba(255,255,255,.96); padding:14px 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,.86), 0 10px 22px rgba(6,18,31,.06); }
.favorites-composer-controls { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.favorites-attach { display:grid; gap:10px; align-items:start; min-width:min(100%, 520px); }
.favorites-file-input { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border:0; }
.favorites-attach-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.favorites-attach-button { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 15px; border-radius:999px; border:1px solid rgba(188,209,229,.42); background:rgba(255,255,255,.92); color:#35556b; font-weight:700; cursor:pointer; box-shadow:0 10px 22px rgba(6,18,31,.08), inset 0 1px 0 rgba(255,255,255,.8); }
.favorites-attach-button:hover { text-decoration:none; background:#f7fbff; }
.favorites-selected-files { display:flex; gap:8px; flex-wrap:wrap; }
.favorites-selected-files[hidden] { display:none; }
.favorites-selected-chip { display:inline-flex; align-items:center; min-height:28px; max-width:240px; padding:0 11px; border-radius:999px; background:rgba(233,245,255,.88); border:1px solid rgba(188,209,229,.42); color:#35556b; font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }
.favorites-footnote { color:#d7e5f1; font-size:12px; line-height:1.5; text-shadow:0 1px 8px rgba(4,10,18,.24); }
.favorites-empty { display:grid; place-items:center; min-height:260px; text-align:center; padding:32px 22px; color:#d2e2ef; }
.favorites-empty strong { display:block; font-size:20px; color:#fff; margin-bottom:8px; }
.mitm-danger-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:126px; white-space:nowrap; font-weight:700; }
.codex-shell { min-height:calc(100vh - 64px); display:grid; grid-template-columns:300px minmax(0, 1fr) 300px; background:#edf2f7; }
.codex-sidebar, .codex-metrics { background:#fff; border-right:1px solid var(--line); overflow:auto; }
.codex-metrics { border-right:0; border-left:1px solid var(--line); }
.codex-pane { display:flex; flex-direction:column; min-width:0; min-height:calc(100vh - 64px); }
.codex-head { min-height:62px; padding:12px 16px; border-bottom:1px solid var(--line); background:#fff; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.codex-tasks { padding:10px; display:grid; gap:8px; }
.task-chip { display:block; border:1px solid var(--line); border-radius:6px; padding:10px; color:var(--ink); background:#fff; }
.task-chip.active { border-color:#7aa7e8; background:#eef6ff; }
.task-title { font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-meta { color:var(--muted); font-size:12px; margin-top:4px; display:flex; gap:8px; flex-wrap:wrap; }
.chat-log { flex:1; overflow:auto; padding:18px; display:flex; flex-direction:column; gap:12px; }
.bubble { max-width:min(760px, 86%); border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:#fff; box-shadow:0 1px 0 rgba(31,35,40,.03); white-space:pre-wrap; overflow-wrap:anywhere; }
.bubble.user { align-self:flex-end; background:#dff7df; border-color:#b8e7b8; }
.bubble.system { align-self:center; max-width:90%; background:#fff8c5; border-color:#d4a72c; font-size:13px; }
.bubble.assistant { align-self:flex-start; }
.bubble .files { margin-top:8px; display:grid; gap:4px; font-size:13px; }
.composer { border-top:1px solid var(--line); background:#fff; padding:12px; display:grid; gap:8px; }
.composer-row { display:flex; gap:8px; align-items:flex-end; }
.composer textarea { min-height:44px; max-height:150px; }
.metric-box { padding:14px; border-bottom:1px solid var(--line); }
.meter { height:8px; border-radius:999px; background:var(--soft); overflow:hidden; margin-top:6px; }
.meter span { display:block; height:100%; background:var(--green); }
.event-log { max-height:260px; overflow:auto; font-size:12px; background:#0d1117; color:#e6edf3; padding:10px; border-radius:6px; white-space:pre-wrap; }
.codex-usage-head { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:10px; }
.codex-usage-head h2 { margin:0; }
.codex-usage-summary { color:var(--muted); font-size:12px; line-height:1.45; margin-bottom:10px; }
.codex-usage-grid { display:grid; gap:10px; }
.codex-usage-card { border:1px solid var(--line); border-radius:8px; background:#fbfcfe; padding:10px; }
.codex-usage-card span { display:block; color:var(--muted); font-size:12px; }
.codex-usage-card strong { display:block; color:var(--ink); font-size:24px; margin-top:3px; }
.codex-usage-card small { display:block; color:var(--muted); margin-top:6px; line-height:1.4; }
.codex-usage-extra { margin-top:10px; display:grid; gap:6px; color:var(--muted); font-size:12px; line-height:1.45; }
.codex-usage-error { color:var(--danger); }
@media (max-width: 980px) { .codex-shell { grid-template-columns:1fr; } .codex-sidebar, .codex-metrics { border:0; max-height:220px; } .codex-pane { min-height:620px; } }
@media (max-width: 840px) { .repo-layout { grid-template-columns:1fr; } .file-row { grid-template-columns:minmax(0, 1fr) 90px; } .commit-msg { display:none; } }
@media (max-width: 900px) { .env-layout { grid-template-columns:1fr; } .env-row { grid-template-columns:1fr; } .env-row.head { display:none; } }
@media (max-width: 900px) {
  .page-favorites::before,
  .page-favorites::after,
  .favorites-room::before,
  .favorites-room::after,
  .favorites-stream-wrap::before,
  .favorites-stream-wrap::after,
  .favorites-bubble::before { display:none; }
  .page-favorites { background:#07111d; }
  .page-favorites .brand,
  .page-favorites .nav-link,
  .page-favorites .nav-badge,
  .page-favorites .meta-button,
  .favorites-chip,
  .favorites-filter-tab,
  .favorites-toolbar-action,
  .favorites-room,
  .favorites-stream-day,
  .favorites-bubble,
  .favorites-composer,
  .favorites-upload-status { backdrop-filter:none; }
  .page-favorites .top { box-shadow:none; }
  .page-favorites .brand,
  .page-favorites .nav-link,
  .page-favorites .nav-badge,
  .page-favorites .meta-button { box-shadow:none; }
  .favorites-room {
    background:#0b1624;
    box-shadow:none;
    border-color:rgba(173,200,228,.12);
  }
  .favorites-head {
    background:linear-gradient(180deg, rgba(49,101,153,.96), rgba(40,83,128,.96));
    box-shadow:none;
  }
  .favorites-avatar { box-shadow:none; }
  .favorites-chip { background:rgba(255,255,255,.12); box-shadow:none; }
  .favorites-toolbar {
    background:#0c1827;
    box-shadow:none;
  }
  .favorites-search input,
  .favorites-attach-button,
  .favorites-selected-chip,
  .favorites-composer textarea {
    box-shadow:none;
  }
  .favorites-filter-tab.active,
  .favorites-toolbar-action {
    box-shadow:none;
  }
  .favorites-stream-wrap {
    background:#0a1522;
    box-shadow:none;
  }
  .favorites-flashes,
  .favorites-stream,
  .favorites-composer-wrap,
  .favorites-composer { contain:layout paint style; }
  .favorites-toast,
  .favorites-stream-day {
    box-shadow:none;
    background:rgba(12,22,35,.92);
  }
  .favorites-bubble {
    background:#dcefdc;
    border-color:rgba(89,164,114,.16);
    box-shadow:none;
  }
  .favorites-bubble::after {
    background:#dcefdc;
    border-right-color:rgba(89,164,114,.16);
    border-bottom-color:rgba(89,164,114,.16);
  }
  .favorites-media-card,
  .favorites-file-row,
  .favorites-composer,
  .favorites-upload-status,
  .favorites-pending-box {
    box-shadow:none;
  }
  .favorites-media-card,
  .favorites-file-row,
  .favorites-pending-box,
  .favorites-composer,
  .favorites-upload-status {
    background:rgba(255,255,255,.96);
  }
  .favorites-composer-wrap { background:#091521; }
  .favorites-pending-fill {
    animation:none;
    background:#49a2de;
  }
  .favorites-upload-bar span {
    transition:none;
    background:#49a2de;
  }
}
@media (max-width: 1040px) { .portal-hero .wrap, .store-hero .wrap { grid-template-columns:1fr; } .portal-panel { max-width:720px; } .store-hero-grid { max-width:680px; } .portal-action-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .store-controls, .portal-strip, .portal-action-grid { grid-template-columns:1fr; } .store-feature-card:first-child { grid-row:auto; min-height:220px; } .store-hero-grid { grid-template-columns:1fr; } .portal-stats { grid-template-columns:1fr; } .top-bar { flex-direction:column; align-items:flex-start; } .top-meta { width:100%; justify-content:flex-start; } .favorites-head, .favorites-head-main, .favorites-composer-head, .favorites-search, .favorites-file-row, .favorites-media-meta { display:grid; } .favorites-head-meta, .favorites-entry-actions { justify-content:flex-start; } .favorites-bubble { width:min(100%, 100%); } .favorites-file-row { grid-template-columns:40px minmax(0, 1fr); } .favorites-file-row .favorites-entry-actions { grid-column:1 / -1; } .favorites-media-grid.count-1, .favorites-media-grid.count-2 { grid-template-columns:1fr; } .favorites-composer-controls, .favorites-attach-row { align-items:flex-start; } .message-page { padding:18px; border-radius:18px; background:linear-gradient(180deg, #08111f 0%, #0c1627 100%); box-shadow:0 16px 40px rgba(2, 6, 23, .24); } .message-page::before { display:none; } .message-page .card, .message-page .metric-card, .message-page .message-card, .message-page .message-card-meta, .message-page .export-meta-card, .message-page .empty-state, .message-page .message-agent-status, .message-page .message-agent-panel, .message-page .table-wrap, .message-page .message-stage-card { backdrop-filter:none; box-shadow:0 8px 22px rgba(2, 6, 23, .18); } }
@media (max-width: 760px) { .message-persona-portrait { grid-template-columns:1fr; } .message-persona-text-card, .message-persona-directed { padding-left:0; } .message-persona-layer::before { display:none; } }
@media (max-width: 640px) { .top { padding:12px 16px; } .nav { gap:10px; } .nav-link, .nav-badge, .meta-button { flex:0 0 auto; } .wrap, .repo-head-inner { padding-left:16px; padding-right:16px; } .hero-brand { grid-template-columns:64px minmax(0, 1fr); gap:14px; } .hero-logo { width:64px; height:64px; border-radius:14px; } h1 { font-size:24px; } .split { display:block; } .actions { margin-top:12px; } .clone-box { width:100%; } .portal-title, .store-hero h1 { font-size:30px; } .portal-node { grid-template-columns:42px minmax(0, 1fr); } .portal-node code { display:none; } .store-heading { display:block; } .portal-lead-card, .portal-panel, .portal-card, .portal-strip .card, .favorites-room, .favorites-composer, .favorites-bubble { border-radius:18px; } .message-card-grid, .message-overview-grid, .message-agent-form, .message-filter-form, .export-filter-form, .favorites-media-grid { grid-template-columns:1fr; } .message-graph-cloud { grid-template-columns:minmax(0, 1fr); } .message-graph-pair { min-height:auto; padding:10px; } .message-graph-pair.size-1, .message-graph-pair.size-2 { min-height:auto; } .message-graph-pair.size-1 strong, .message-graph-pair.size-2 strong, .message-graph-pair.size-3 strong { font-size:16px; } .message-graph-3d-head, .message-persona-head { display:grid; align-items:stretch; } .message-persona-layer-head { display:grid; } .message-persona-layer-tools { justify-content:flex-start; } .message-graph-3d-scene { height:300px; min-height:300px; } .message-persona-scene { height:330px; min-height:330px; } .message-persona-evidence-scene { height:390px; min-height:390px; } .message-persona-panel { inset:auto 9px 9px 9px; width:auto; max-height:56%; } .message-graph-preview { width:calc(100% - 18px); max-height:58%; padding:9px; } .message-graph-preview-item { padding:8px; } .message-speaker-token { max-width:100%; white-space:normal; } .message-inline-actions .btn { min-width:0; } .telegram-detail { padding:10px; } .telegram-bubble { max-width:100%; } .field-group-wide, .message-agent-prompt { grid-column:auto; } .favorites-stream-wrap { padding-left:12px; padding-right:12px; } .favorites-composer-wrap { padding:0 12px 12px; } .favorites-toolbar { padding-left:12px; padding-right:12px; } .favorites-bubble-foot { justify-content:space-between; } }
