/* =============================================================================
 * styles.css — arksdelta.（Arks Japan 提供）不動産運用コンソール
 * keiei-app (notion.css/notion-theme.css) のレイアウト思想と
 * Notion系モノトーン配色を踏襲。
 * 左サイドバー＋メイン＋カード＋テーブル＋ページピーク（詳細パネル）。
 * ========================================================================== */
:root{
  --navy:#37352f; --navy-2:#4b4944; --navy-3:#2f2d29;
  --orange:#c76a1a; --orange-2:#9a4f12; --orange-soft:#f1f1ef;
  --ink:#1f2733; --muted:#6b7280; --desc:#9aa3af;
  --line:#e6e9ee; --line-2:#d6dbe3; --bg:#ffffff; --panel:#f7f9fc;
  --sidebar:#0E2747; --sidebar-hover:#1a3a63; --sidebar-active:#1C4276;
  --green:#178d52; --green-soft:#e3f3ea; --red:#d23f3f; --red-soft:#fcebeb;
  --amber:#b5790a; --amber-soft:#fbf3df; --blue:#2b6cb0; --blue-soft:#e6f0fb;
  --radius:8px; --shadow:0 1px 3px rgba(16,24,40,.08); --shadow-lg:0 8px 28px rgba(16,24,40,.16);
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--panel); color:var(--ink);
  font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  font-size:14px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
.brandmark{ font-weight:800; letter-spacing:-.3px; }
.brandmark .dt{ color:var(--orange); }

/* ---------- AUTH GATE ---------- */
#gate{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  background:#fbfbfa; }
#gate .gcard{ background:#fff; border-radius:14px; padding:40px 38px; width:400px; box-shadow:var(--shadow-lg); }
#gate .glogo{ font-size:26px; font-weight:800; letter-spacing:-.5px; color:var(--navy); }
#gate .glogo .dt{ color:var(--orange); }
#gate .gtitle{ font-size:15px; font-weight:600; color:var(--ink); margin-top:14px; }
#gate .gtenant{ display:inline-flex; align-items:center; gap:7px; margin-top:8px; background:var(--orange-soft); color:var(--nt-text-2);
  font-size:12px; font-weight:600; padding:5px 11px; border-radius:20px; }
#gate .gtenant .pdot{ width:7px; height:7px; border-radius:50%; background:var(--orange); }
#gate label{ display:block; font-size:12px; color:var(--muted); margin:18px 0 6px; font-weight:500; }
#gate input{ width:100%; border:1px solid var(--line-2); border-radius:8px; padding:11px 13px; font-size:14px; background:#fbfcfe; }
#gate input:focus{ outline:none; border-color:var(--orange); background:#fff; }
#gate button{ width:100%; background:var(--navy); color:#fff; border:0; border-radius:8px; padding:12px; font-size:14px;
  font-weight:600; cursor:pointer; margin-top:20px; transition:.15s; }
#gate button:hover{ background:var(--navy-2); }
#gate .gnote{ font-size:11px; color:var(--desc); margin-top:18px; line-height:1.7; }
#gate .gerr{ color:var(--red); font-size:12px; margin-top:10px; min-height:15px; }

/* ---------- APP SHELL ---------- */
#app{ display:none; }
#app.shown{ display:flex; min-height:100vh; }
.sidebar{ width:248px; flex-shrink:0; background:var(--sidebar); color:#cdd8e8; height:100vh; position:sticky; top:0;
  display:flex; flex-direction:column; overflow-y:auto; }
.sb-brand{ padding:20px 20px 16px; }
.sb-logo{ font-size:21px; font-weight:800; letter-spacing:-.4px; color:#fff; }
.sb-logo .dt{ color:var(--orange); }
.sb-tenant{ display:inline-flex; align-items:center; gap:6px; margin-top:9px; background:#f1f1ef;
  color:#787774; font-size:11px; font-weight:600; padding:4px 10px; border-radius:20px; }
.sb-tenant .pdot{ width:6px; height:6px; border-radius:50%; background:var(--orange); }
.sb-section{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#6f86a8; padding:16px 22px 6px; font-weight:700; }
.nav{ display:flex; flex-direction:column; gap:1px; padding:0 10px; }
.navitem{ display:flex; align-items:center; gap:11px; padding:9px 12px; border-radius:7px; cursor:pointer;
  font-size:13.5px; color:#c2cee0; background:none; border:0; width:100%; text-align:left; line-height:1.3; position:relative; }
.navitem .ic{ width:18px; height:18px; flex-shrink:0; opacity:.9; }
.navitem .ic svg{ width:18px; height:18px; display:block; }
.navitem:hover{ background:var(--sidebar-hover); color:#fff; }
.navitem.active{ background:var(--sidebar-active); color:#fff; font-weight:600; }
.navitem.active::before{ display:none; }
.navitem .badge-n{ margin-left:auto; background:var(--orange); color:#fff; font-size:10px; font-weight:700; padding:1px 7px; border-radius:10px; }
.sb-spacer{ flex:1; }
.sb-foot{ padding:14px 20px; border-top:1px solid rgba(255,255,255,.08); font-size:11px; color:#7e92b0; line-height:1.6; }
.sb-foot .uline{ color:#cdd8e8; font-weight:600; }
.sb-foot button{ background:none; border:0; color:var(--orange-2); cursor:pointer; font-size:11px; padding:0; margin-top:6px; }

.main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.topbar{ height:58px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center;
  gap:14px; padding:0 28px; position:sticky; top:0; z-index:30; }
.topbar .crumb{ font-size:13px; color:var(--muted); }
.topbar .crumb b{ color:var(--ink); font-weight:600; }
.topbar .demo-pill{ margin-left:auto; background:var(--amber-soft); color:var(--amber); font-size:11px; font-weight:600;
  padding:5px 11px; border-radius:20px; display:inline-flex; align-items:center; gap:6px; }
.topbar .demo-pill .ld{ width:7px; height:7px; border-radius:50%; background:var(--amber); }
.topbar .tb-user{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); }
.topbar .avatar{ width:30px; height:30px; border-radius:50%; background:var(--navy); color:#fff; display:flex;
  align-items:center; justify-content:center; font-size:12px; font-weight:700; }
.scroll{ flex:1; overflow-y:auto; }
.page{ max-width:1180px; margin:0 auto; padding:28px 28px 80px; }
.page.wide{ max-width:1320px; }

.view{ display:none; }
.view.active{ display:block; }

/* ---------- HEADINGS ---------- */
.phead{ margin-bottom:20px; }
.phead h1{ font-size:25px; font-weight:800; letter-spacing:-.4px; margin:0; color:var(--ink); }
.phead .sub{ font-size:13px; color:var(--muted); margin-top:5px; max-width:760px; }
.sect-title{ font-size:15px; font-weight:700; margin:26px 0 12px; color:var(--ink); display:flex; align-items:center; gap:8px; }
.sect-title .tag{ font-size:11px; font-weight:600; color:var(--orange); background:var(--orange-soft); padding:2px 8px; border-radius:5px; }

/* ---------- KPI CARDS ---------- */
.kpis{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; margin-bottom:8px; }
.kpi{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:15px 16px; box-shadow:var(--shadow); }
.kpi .lbl{ font-size:11.5px; color:var(--muted); font-weight:500; min-height:32px; }
.kpi .val{ font-size:23px; font-weight:800; margin-top:6px; letter-spacing:-.5px; color:var(--navy); }
.kpi .val.danger{ color:var(--red); }
.kpi .val.good{ color:var(--green); }
.kpi .sub{ font-size:11px; color:var(--desc); margin-top:4px; }
.kpi .sub.up{ color:var(--green); font-weight:600; }
.kpi .sub.down{ color:var(--red); font-weight:600; }
@media(max-width:1100px){ .kpis{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:640px){ .kpis{ grid-template-columns:repeat(2,1fr); } }

/* ---------- CARDS / GRID ---------- */
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin-bottom:16px; box-shadow:var(--shadow); }
.card h2{ font-size:15px; font-weight:700; margin:0 0 4px; color:var(--ink); }
.card .desc{ font-size:12px; color:var(--desc); margin:0 0 14px; line-height:1.6; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.grid3{ display:grid; grid-template-columns:2fr 1fr; gap:16px; }
@media(max-width:920px){ .grid2,.grid3{ grid-template-columns:1fr; } }
.chartbox{ position:relative; height:260px; }
.chartbox.sm{ height:200px; }

/* ---------- TABLES ---------- */
table{ width:100%; border-collapse:collapse; font-size:13px; }
th,td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
th{ font-size:11.5px; color:var(--muted); font-weight:600; white-space:nowrap; background:#fafbfd; cursor:pointer; user-select:none; }
th.num,td.num{ text-align:right; font-variant-numeric:tabular-nums; }
tbody tr{ cursor:default; }
tbody tr.clickable{ cursor:pointer; }
tbody tr.clickable:hover{ background:var(--panel); }
.tablewrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }
.tablewrap table th{ background:#fafbfd; }
.tablewrap table tr:last-child td{ border-bottom:0; }

/* ---------- PILLS / BADGES ---------- */
.pill{ display:inline-block; padding:2px 9px; border-radius:5px; font-size:11.5px; font-weight:600; line-height:1.6; white-space:nowrap; }
.pill-green{ background:var(--green-soft); color:#0f6b3d; }
.pill-red{ background:var(--red-soft); color:#b02a2a; }
.pill-amber{ background:var(--amber-soft); color:var(--amber); }
.pill-blue{ background:var(--blue-soft); color:#1f5694; }
.pill-gray{ background:#eef0f4; color:#5b6573; }
.pill-navy{ background:#e7edf6; color:var(--navy); }
.pill-orange{ background:var(--orange-soft); color:var(--nt-text-2); }
.pill-purple{ background:#ede0f3; color:#492f64; }
.dot{ width:8px; height:8px; border-radius:50%; display:inline-block; vertical-align:middle; margin-right:5px; }

/* ---------- TOOLBAR ---------- */
.toolbar{ display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; align-items:center; }
.toolbar input,.toolbar select{ border:1px solid var(--line-2); border-radius:7px; padding:8px 11px; font-size:13px; background:#fff; color:var(--ink); }
.toolbar input:focus,.toolbar select:focus{ outline:none; border-color:var(--orange); }
.toolbar .search{ min-width:220px; }
.toolbar .count{ font-size:12px; color:var(--desc); margin-left:auto; }
.tabs{ display:flex; gap:4px; background:#eef1f6; padding:4px; border-radius:9px; margin-bottom:16px; width:max-content; }
.tab{ border:0; background:none; padding:7px 16px; border-radius:7px; font-size:13px; font-weight:600; color:var(--muted); cursor:pointer; }
.tab.active{ background:#fff; color:var(--navy); box-shadow:var(--shadow); }

/* ---------- BUTTONS ---------- */
.btn{ border:0; border-radius:7px; padding:8px 14px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; transition:.15s; }
.btn-primary{ background:var(--orange); color:#fff; }
.btn-primary:hover{ background:#9a4f12; }
.btn-navy{ background:var(--navy); color:#fff; }
.btn-navy:hover{ background:var(--navy-2); }
.btn-ghost{ background:#fff; color:var(--navy); border:1px solid var(--line-2); }
.btn-ghost:hover{ background:var(--panel); }
.btn-sm{ padding:5px 11px; font-size:12px; }
.btn:disabled{ opacity:.5; cursor:default; }

/* ---------- PAGE PEEK (詳細パネル) ---------- */
.peek-overlay{ position:fixed; inset:0; background:rgba(14,39,71,.35); z-index:80; display:none; }
.peek-overlay.open{ display:block; }
.peek{ position:fixed; top:0; right:0; height:100vh; width:560px; max-width:94vw; background:#fff; z-index:90;
  box-shadow:-12px 0 40px rgba(16,24,40,.22); transform:translateX(100%); transition:transform .26s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column; }
.peek.open{ transform:translateX(0); }
.peek-head{ padding:18px 22px; border-bottom:1px solid var(--line); display:flex; align-items:flex-start; gap:12px; }
.peek-head .pk-title{ font-size:16px; font-weight:700; flex:1; line-height:1.45; }
.peek-head .pk-sku{ font-size:11.5px; color:var(--muted); margin-top:3px; font-variant-numeric:tabular-nums; }
.peek-close{ background:none; border:0; font-size:22px; color:var(--muted); cursor:pointer; line-height:1; padding:0; }
.peek-body{ padding:20px 22px; overflow-y:auto; flex:1; }
.peek-sect{ font-size:12px; font-weight:700; color:var(--orange); text-transform:uppercase; letter-spacing:.05em; margin:18px 0 10px; }
.peek-sect:first-child{ margin-top:0; }
.ai-diag{ background:linear-gradient(135deg,#102a4d,#1C4276); color:#dbe6f4; border-radius:10px; padding:16px; font-size:13px; line-height:1.7; }
.ai-diag .ai-h{ display:flex; align-items:center; gap:8px; font-weight:700; color:#fff; margin-bottom:8px; font-size:12.5px; }
.ai-diag .ai-h .spark{ width:7px; height:7px; border-radius:50%; background:var(--nt-blue); box-shadow:0 0 0 4px rgba(199,106,26,.12); }
.ai-diag b{ color:#fff; }

.priceboard{ display:flex; flex-direction:column; gap:6px; }
.prow{ display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid var(--line); border-radius:8px; font-size:13px; }
.prow .pst{ font-weight:600; flex:0 1 260px; min-width:0; max-width:260px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.prow .ppr{ margin-left:auto; font-variant-numeric:tabular-nums; font-weight:700; }
.prow.win{ border-color:#bfe3cd; background:var(--green-soft); }
.prow.lose{ border-color:#f3c7c7; background:var(--red-soft); }
.prow.reco{ border-color:var(--orange); background:var(--orange-soft); }
.prow .ptag{ font-size:10.5px; font-weight:700; padding:1px 7px; border-radius:5px; }

/* ---------- ACTION BRIDGE ---------- */
.bridge{ display:grid; grid-template-columns:1fr 56px 1fr; gap:0; align-items:stretch; margin-bottom:16px; }
.bridge-col{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; box-shadow:var(--shadow); }
.bridge-col h3{ font-size:13px; font-weight:700; margin:0 0 4px; }
.bridge-col .ch{ font-size:11px; color:var(--muted); margin-bottom:12px; }
.bridge-mid{ display:flex; align-items:center; justify-content:center; }
.bridge-mid svg{ width:30px; height:30px; color:var(--orange); }
.insight{ border:1px solid var(--line); border-radius:8px; padding:12px; margin-bottom:10px; }
.insight .isrc{ font-size:11px; font-weight:700; color:var(--navy); display:flex; align-items:center; gap:6px; }
.insight .imp{ margin-left:auto; }
.insight .itxt{ font-size:12.5px; line-height:1.6; margin:8px 0; color:var(--ink); }
.insight .imet{ font-size:11px; color:var(--orange); font-weight:700; }
.insight .iact{ background:var(--orange-soft); border:1px dashed var(--orange-2); border-radius:7px; padding:10px; margin-top:10px; font-size:12px; line-height:1.6; }
.insight .iact .ah{ font-size:10.5px; font-weight:700; color:var(--nt-text-2); letter-spacing:.04em; margin-bottom:5px; display:flex; align-items:center; gap:6px; }
.insight .iact .ah svg{ width:13px; height:13px; flex-shrink:0; }
.notif .nh svg{ width:14px; height:14px; flex-shrink:0; }
.insight.done{ opacity:.55; }
.insight.done .iact{ background:var(--green-soft); border-color:#bfe3cd; }

.q-item{ display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:8px; margin-bottom:10px; background:#fff; box-shadow:var(--shadow); }
.q-item .qmain{ flex:1; min-width:0; }
.q-item .qname{ font-size:13px; font-weight:600; }
.q-item .qmeta{ font-size:11.5px; color:var(--muted); margin-top:4px; }
.q-item .qprice{ text-align:right; font-variant-numeric:tabular-nums; }
.q-item .qprice .from{ color:var(--muted); text-decoration:line-through; font-size:12px; }
.q-item .qprice .to{ color:var(--orange); font-weight:800; font-size:16px; }
.q-stores{ display:flex; gap:4px; flex-wrap:wrap; margin-top:6px; }
.q-stores .st{ font-size:10px; padding:2px 7px; border-radius:5px; background:#eef1f6; color:#5b6573; }
.q-stores .st.api{ background:#d3e5ef; color:#28456c; }
.q-stores .st.csv{ background:#fdecc8; color:#89632a; }
.q-stores .st.review{ background:#e3e2e0; color:#787774; }
.q-stores .st.synced{ background:var(--green-soft); color:#0f6b3d; }
.q-item.executed{ background:var(--green-soft); border-color:#bfe3cd; }
.operator-row{ display:flex; align-items:center; gap:8px; margin:10px 0 14px; color:var(--nt-text-2); font-size:13px; }
.operator-row select{ border:1px solid var(--nt-line-2); border-radius:4px; padding:5px 8px; background:#fff; color:var(--nt-text); }

/* ---------- PRODUCT MASTER EXPAND ---------- */
.chan-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:8px; }
@media(max-width:700px){ .chan-grid{ grid-template-columns:1fr; } }
.chan{ border:1px solid var(--line); border-radius:8px; padding:12px 14px; }
.chan .cmoll{ font-size:11px; font-weight:700; color:var(--navy); display:flex; align-items:center; gap:8px; }
.chan .ctitle{ font-size:12.5px; line-height:1.55; margin:8px 0; }
.chan .clen{ font-size:10.5px; color:var(--muted); }
.chan .clen .over{ color:var(--red); font-weight:700; }
.lenbar{ height:5px; border-radius:3px; background:#eef1f6; margin-top:5px; overflow:hidden; }
.lenbar i{ display:block; height:100%; background:var(--nt-blue); }
.lenbar i.over{ background:var(--red); }
.master-row td{ background:var(--panel); }
.expand-cell{ padding:16px 18px; background:#fbfcfe; }

/* ---------- CONSISTENCY ---------- */
.diff-cell{ font-variant-numeric:tabular-nums; }
.diff-bad{ background:var(--red-soft); color:#b02a2a; font-weight:700; border-radius:5px; }
td.cellpad{ padding:6px 8px; }
td .cellbox{ padding:5px 9px; border-radius:6px; display:inline-block; }

/* ---------- NOTIFICATIONS ---------- */
.notif{ border:1px solid var(--line); border-radius:9px; overflow:hidden; margin-bottom:12px; background:#fff; box-shadow:var(--shadow); }
.notif .nh{ padding:9px 14px; font-size:12px; font-weight:700; color:#fff; display:flex; align-items:center; gap:8px; }
.notif .nh.app{ background:var(--nt-blue); }
.notif .nh.slack{ background:#4a154b; }
.notif .nh.mail{ background:var(--navy); }
.notif .nb{ padding:13px 15px; font-size:12.5px; line-height:1.65; }
.notif .nt{ font-size:10.5px; color:var(--muted); margin-top:8px; }
.rule-card{ display:flex; align-items:center; gap:14px; padding:13px 16px; border:1px solid var(--line); border-radius:8px; margin-bottom:10px; background:#fff; }
.rule-card .rm{ flex:1; }
.rule-card .rn{ font-size:13px; font-weight:600; }
.rule-card .rd{ font-size:11.5px; color:var(--muted); margin-top:3px; }
.rule-card .rth{ font-size:11px; color:var(--navy); margin-top:5px; }
.toggle{ position:relative; width:42px; height:24px; border-radius:13px; background:#cfd6e0; cursor:pointer; transition:.18s; flex-shrink:0; border:0; }
.toggle.on{ background:var(--green); }
.toggle::after{ content:""; position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:#fff; transition:.18s; box-shadow:0 1px 2px rgba(0,0,0,.2); }
.toggle.on::after{ transform:translateX(18px); }


/* ---------- TIMELINE ---------- */
.timeline{ position:relative; }
.tl-item{ display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.tl-click{ width:100%; border-left:0; border-right:0; border-top:0; background:transparent; color:inherit; text-align:left; cursor:pointer; font:inherit; }
.tl-click:hover{ background:#f8f8f7; }
.tl-item:last-child{ border-bottom:0; }
.tl-time{ font-size:11px; color:var(--muted); min-width:46px; font-variant-numeric:tabular-nums; padding-top:2px; }
.tl-dot{ width:9px; height:9px; border-radius:50%; margin-top:5px; flex-shrink:0; }
.tl-txt{ font-size:12.5px; line-height:1.5; flex:1; }
.tl-txt b{ font-weight:700; }

/* ---------- FOOTER NOTE ---------- */
.demo-banner{ background:var(--amber-soft); border:1px solid #f0dca0; color:#8a5a00; border-radius:8px; padding:11px 15px;
  font-size:12px; line-height:1.65; margin-bottom:18px; }
.demo-banner b{ color:#6e4700; }
.page-foot{ margin-top:30px; padding-top:18px; border-top:1px solid var(--line); font-size:11px; color:var(--desc); line-height:1.7; }
.page-foot b{ color:var(--muted); }

/* ---------- MOBILE ---------- */
.hamburger{ display:none; }
@media(max-width:880px){
  .sidebar{ position:fixed; left:0; top:0; z-index:110; transform:translateX(-100%); transition:transform .2s; }
  .sidebar.open{ transform:translateX(0); }
  .hamburger{ display:flex; position:fixed; top:12px; left:12px; z-index:120; width:38px; height:38px; align-items:center;
    justify-content:center; background:var(--navy); color:#fff; border:0; border-radius:8px; cursor:pointer; }
  .page{ padding:20px 16px 70px; }
  .topbar{ padding:0 16px 0 60px; }
}
.flash{ animation:flash 1s ease; }
@keyframes flash{ 0%{ background:rgba(199,106,26,.10);} 100%{ background:transparent;} }
.syncing{ animation:pulse 1.1s ease infinite; }
@keyframes pulse{ 0%,100%{ opacity:1;} 50%{ opacity:.4;} }

.global-search-trigger{
  display:flex; align-items:center; gap:7px; min-width:270px; max-width:380px; flex:1;
  border:1px solid var(--nt-line-2); background:#fbfbfa; color:var(--nt-text-2);
  border-radius:5px; padding:5px 8px; font:inherit; cursor:pointer;
}
.global-search-trigger svg{ width:15px; height:15px; color:var(--nt-text-3); flex-shrink:0; }
.global-search-trigger span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.global-search-trigger kbd{ margin-left:auto; border:1px solid var(--nt-line-2); border-radius:4px; padding:1px 5px; font-size:11px; color:var(--nt-text-3); background:#fff; }
.global-search-trigger:hover{ background:var(--nt-hover); color:var(--nt-text); }
.global-search-overlay{
  position:fixed; inset:0; z-index:160; display:none; align-items:flex-start; justify-content:center;
  background:rgba(15,15,15,.20); padding-top:10vh;
}
.global-search-overlay.open{ display:flex; }
.global-search-modal{ width:min(720px,92vw); max-height:76vh; background:#fff; border:1px solid var(--nt-line); border-radius:8px; box-shadow:0 12px 34px rgba(15,15,15,.18); overflow:hidden; }
.global-search-head{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-bottom:1px solid var(--nt-line); }
.global-search-head svg{ width:18px; height:18px; color:var(--nt-text-3); }
.global-search-head input{ flex:1; border:0; outline:0; font:inherit; font-size:15px; }
.global-search-head span{ color:var(--nt-text-3); font-size:12px; border:1px solid var(--nt-line-2); border-radius:4px; padding:1px 6px; }
.global-search-results{ max-height:62vh; overflow:auto; padding:8px; }
.global-search-group{ color:var(--nt-text-3); font-size:12px; font-weight:600; padding:8px 8px 4px; }
.global-search-item{ width:100%; display:grid; grid-template-columns:96px 1fr; gap:2px 10px; border:0; background:transparent; color:var(--nt-text); text-align:left; border-radius:5px; padding:8px; cursor:pointer; font:inherit; }
.global-search-item:hover,.global-search-item.sel{ background:var(--nt-hover); }
.global-search-item .g-type{ grid-row:1 / span 2; color:var(--nt-text-3); font-size:12px; }
.global-search-item .g-title{ font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.global-search-item .g-sub{ color:var(--nt-text-2); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.search-empty{ color:var(--nt-text-3); font-size:13px; padding:20px; text-align:center; }
.clickable-kpi{ cursor:pointer; transition:background .15s,border-color .15s; }
.clickable-kpi:hover{ background:#fff; border-color:#d7d5d2; }
.drill-list{ display:flex; flex-direction:column; gap:6px; margin-top:10px; }
.drill-list.in-peek{ margin-top:0; }
.drill-row{ display:flex; align-items:center; gap:10px; width:100%; border:1px solid var(--nt-line); background:#fff; border-radius:5px; padding:8px 10px; cursor:pointer; font:inherit; color:var(--nt-text); }
.drill-row:hover{ background:var(--nt-hover); }
.drill-row b{ margin-left:auto; color:var(--navy); font-variant-numeric:tabular-nums; }
.onboarding{ display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #f1cfb0; background:#fff7ef; border-radius:6px; padding:12px 14px; margin:14px 0 18px; }
.ob-copy{ display:flex; flex-direction:column; gap:3px; }
.ob-copy b{ color:var(--nt-text); }
.ob-copy span{ color:var(--nt-text-2); font-size:13px; }
.ob-actions{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ob-x{ border:0; background:transparent; color:var(--nt-text-3); cursor:pointer; font-size:20px; line-height:1; padding:2px 6px; border-radius:4px; }
.ob-x:hover{ background:#f3e5d8; color:var(--nt-text); }
.mini-select{ max-width:120px; border:1px solid var(--nt-line-2); border-radius:4px; padding:4px 6px; background:#fff; color:var(--nt-text); font-size:12px; }
.mini-check{ display:inline-flex; align-items:center; gap:4px; color:var(--nt-text-2); font-size:12px; cursor:pointer; }
tr.resolved-row td{ background:#f7fbf8; color:var(--nt-text-2); }
tr.resolved-row td:first-child{ box-shadow:none; }
.deploy-status{ margin-top:9px; color:var(--nt-text-2); font-size:12px; line-height:1.7; background:#fbfbfa; border:1px solid var(--nt-line); border-radius:5px; padding:10px; }
.step-list{ display:flex; flex-direction:column; gap:8px; }
.step-row{ display:flex; align-items:center; gap:10px; border:1px solid var(--nt-line); border-radius:5px; padding:9px 10px; background:#fff; }
.step-copy{ flex:1; min-width:0; font-size:13px; }
.step-copy b{ font-weight:500; }
.step-state{ border:1px solid var(--nt-line-2); border-radius:4px; padding:5px 7px; background:#fff; color:var(--nt-text); }
.auto-tags{ display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.automation-policy{
  border:1px solid var(--nt-line); background:#fbfbfa; color:var(--nt-text-2);
  border-radius:6px; padding:12px 14px; margin:14px 0 18px; line-height:1.7;
}
.automation-policy b{ color:var(--nt-text); }
.csv-check{
  border:1px solid var(--nt-line); background:#fbfbfa; border-radius:6px; padding:12px 14px;
  margin:12px 0; display:flex; flex-direction:column; gap:8px;
}
.csv-check.ok{ border-color:var(--tg-green-bg); }
.csv-check.warn{ border-color:var(--tg-yellow-bg); }
.csv-check-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.csv-check-head b{ color:var(--nt-text); }
.csv-check-sub{ color:var(--nt-text-2); font-size:12px; line-height:1.6; }
.csv-check-grid{ display:flex; flex-wrap:wrap; gap:5px; }
.ir-note{
  color:var(--nt-text-2); background:#fbfbfa; border:1px solid var(--nt-line);
  border-radius:6px; padding:10px 12px; line-height:1.7; font-size:13px;
}
.ir-options{ display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.ir-option{ border:1px solid var(--nt-line); background:#fff; border-radius:6px; padding:11px 12px; }
.ir-option-head{ display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:7px; }
.ir-option-head b{ color:var(--nt-text); }
.ir-grade{
  display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px;
  border-radius:4px; background:var(--nt-hover); color:var(--nt-text); font-weight:700;
}
.ir-option p{ margin:4px 0; color:var(--nt-text-2); font-size:12.5px; line-height:1.55; }
.ir-option p b{ color:var(--nt-text); font-weight:600; }

/* =============================================================================
 * Notion-like refresh overrides
 * ========================================================================== */
:root{
  --nt-text:#37352f; --nt-text-2:#787774; --nt-text-3:#9b9a97;
  --nt-line:#ecebea; --nt-line-2:#e3e2e0; --nt-bg:#ffffff;
  --nt-sidebar:#f7f7f5; --nt-hover:#f1f1ef; --nt-hover-2:#e8e7e4;
  --nt-blue:#c76a1a; --nt-radius:3px;
  --tg-default-bg:#e3e2e0; --tg-default-fg:#37352f;
  --tg-gray-bg:#e3e2e0; --tg-gray-fg:#787774;
  --tg-orange-bg:#f1f1ef; --tg-orange-fg:#5f5e5b;
  --tg-yellow-bg:#fdecc8; --tg-yellow-fg:#89632a;
  --tg-green-bg:#dbeddb; --tg-green-fg:#2b593f;
  --tg-blue-bg:#d3e5ef; --tg-blue-fg:#28456c;
  --tg-purple-bg:#e8deee; --tg-purple-fg:#492f64;
  --tg-red-bg:#ffe2dd; --tg-red-fg:#6e3630;
}
body{ background:var(--nt-bg); color:var(--nt-text); font-size:14px; }
#gate{ background:#fbfbfa; }
#gate .gcard{ border:1px solid var(--nt-line); border-radius:8px; box-shadow:0 1px 3px rgba(15,15,15,.1); }
#gate input{ border-radius:5px; background:#fbfbfa; border-color:var(--nt-line-2); }
#gate button{ border-radius:5px; background:var(--navy); }

.sidebar{
  width:248px; background:var(--nt-sidebar); color:var(--nt-text-2);
  border-right:1px solid var(--nt-line-2); padding:0; gap:0;
}
.sb-brand{ padding:10px 12px 8px; }
.sb-logo{ color:var(--nt-text); font-size:16px; }
.sb-tenant{
  border-radius:var(--nt-radius); background:#f1f0ee; color:var(--nt-text-2);
  padding:3px 7px; font-size:11px;
}
.sb-section{
  color:var(--nt-text-3); padding:14px 14px 4px; font-size:11px;
  letter-spacing:.03em; text-transform:none;
}
.nav{ padding:0 8px; }
.navitem{
  color:var(--nt-text-2); padding:5px 8px; border-radius:var(--nt-radius);
  font-size:14px; gap:7px;
}
.navitem:hover{ background:var(--nt-hover); color:var(--nt-text); }
.navitem.active{ background:var(--nt-hover-2); color:var(--nt-text); font-weight:500; }
.navitem.active::before{ display:none; }
.navitem .ic{ color:#91918e; }
.navitem .badge-n{ background:var(--orange); border-radius:10px; font-size:10px; padding:1px 7px; }
.sb-foot{ border-top:1px solid var(--nt-line-2); color:var(--nt-text-3); padding:10px 14px; }
.sb-foot .uline{ color:var(--nt-text-2); }

.main{ background:var(--nt-bg); }
.topbar{
  height:45px; border-bottom:1px solid transparent; padding:0 16px; background:#fff;
  gap:8px; position:sticky;
}
.topbar .crumb{ display:flex; align-items:center; gap:6px; font-size:14px; color:var(--nt-text-2); min-width:0; }
.topbar .crumb b{ color:var(--nt-text); font-weight:500; }
.crumb-btn{ border:0; background:none; color:var(--nt-text-2); cursor:pointer; padding:3px 6px; border-radius:var(--nt-radius); font:inherit; }
.crumb-btn:hover{ background:var(--nt-hover); }
.crumb-sep{ color:var(--nt-text-3); }
.env-pills{ margin-left:auto; display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.topbar .demo-pill{
  margin-left:0; border-radius:var(--nt-radius); background:#f1f0ee; color:var(--nt-text-2);
  padding:3px 7px; font-weight:500;
}
.topbar .demo-pill.tenant,.topbar .demo-pill.connected-demo{ display:none; }
.topbar .demo-pill{ background:#fbfbfa; border:1px solid var(--nt-line); }
.topbar .demo-pill .ld{ background:var(--nt-blue); }
.topbar .tb-user{ color:var(--nt-text-2); }
.topbar .avatar{ background:var(--navy); border-radius:4px; width:26px; height:26px; }
.page{ padding:0 60px 84px; }
.page.wide{ max-width:none; }

.phead{ padding:48px 0 2px; margin-bottom:0; }
.phead h1{ font-size:30px; color:var(--nt-text); letter-spacing:-.4px; display:flex; align-items:center; gap:10px; margin:0; }
.phead .sub{ color:var(--nt-text-3); font-size:14px; margin:8px 0 0; max-width:860px; }
.db-title-ic{ width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; color:#91918e; }
.db-title-ic svg{ width:30px; height:30px; }
.viewbar{ display:flex; align-items:center; gap:2px; border-bottom:1px solid var(--nt-line-2); margin-top:10px; }
.viewtab{
  display:flex; align-items:center; gap:6px; border:0; background:none; cursor:pointer;
  color:var(--nt-text-2); font-size:14px; padding:8px 8px; margin-bottom:-1px;
  border-bottom:2px solid transparent;
}
.viewtab svg{ width:15px; height:15px; }
.viewtab:hover,.viewtab.active{ color:var(--nt-text); }
.viewtab.active{ border-bottom-color:var(--nt-text); font-weight:500; }

.demo-banner{
  background:#fbf3db; border-color:#f5e0a3; color:#8a5a00;
  border-radius:6px; margin:14px 0 18px; box-shadow:none;
}
.demo-chip-row{
  display:flex; align-items:center; gap:8px; min-height:26px;
  margin:0 0 14px; color:var(--nt-text-3); font-size:12px;
}
.demo-chip{
  display:inline-flex; align-items:center; gap:6px; border:1px solid var(--nt-line);
  border-radius:999px; padding:3px 9px; background:#fbfbfa; color:var(--nt-text-2);
  font-size:11.5px; line-height:1.4; white-space:nowrap;
}
.demo-chip .ld{
  width:7px; height:7px; border-radius:50%; background:var(--nt-blue); flex:0 0 auto;
}
.card,.kpi,.bridge-col,.q-item,.tablewrap,.notif,.rule-card{
  border-color:var(--nt-line); border-radius:6px; box-shadow:none;
}
.card h2{ font-size:16px; color:var(--nt-text); }
.card .desc,.phead .sub,.kpi .sub{ color:var(--nt-text-3); }
.kpi{ background:#fbfbfa; }
.kpi .lbl{ color:var(--nt-text-2); min-height:auto; }
.kpi .val{ color:var(--navy); }

.toolbar.db-toolbar,.toolbar{ padding:8px 0 6px; margin-bottom:0; gap:6px; }
.tb-search{ display:flex; align-items:center; gap:6px; border-bottom:1px solid var(--nt-line-2); padding:2px 0; }
.tb-search .ic svg{ width:14px; height:14px; color:var(--nt-text-3); }
.toolbar input,.toolbar select{
  border:0; border-radius:var(--nt-radius); padding:5px 6px; background:transparent; color:var(--nt-text); font-size:13px;
}
.toolbar select{ border:1px solid var(--nt-line-2); background:#fff; }
.toolbar input:focus,.toolbar select:focus{ outline:none; border-color:var(--nt-blue); }
.toolbar .search{ min-width:220px; }
.toolbar .count{ color:var(--nt-text-3); }

.n-tablewrap{ border-top:1px solid var(--nt-line-2); border-left:0; border-right:0; border-bottom:0; border-radius:0; overflow-x:auto; background:#fff; }
table.n-table{ width:100%; border-collapse:collapse; font-size:14px; }
table.n-table th,table.n-table td{
  border-bottom:1px solid var(--nt-line); border-right:1px solid var(--nt-line);
  padding:7px 8px; vertical-align:top;
}
table.n-table th:first-child,table.n-table td:first-child{ border-left:1px solid var(--nt-line); }
table.n-table th{ background:#fff; color:var(--nt-text-2); font-weight:400; font-size:13px; }
table.n-table tbody tr.clickable:hover{ background:#f8f8f7; }
.n-tag{
  display:inline-flex; align-items:center; gap:5px; padding:2px 8px; border-radius:var(--nt-radius);
  font-size:13px; line-height:18px; white-space:nowrap;
}
.n-tag.status::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.85; }
.n-tag.c-gray{ background:var(--tg-gray-bg); color:var(--tg-gray-fg); }
.n-tag.c-yellow{ background:var(--tg-yellow-bg); color:var(--tg-yellow-fg); }
.n-tag.c-orange{ background:#f1f1ef; color:#5f5e5b; }
.n-tag.c-green{ background:var(--tg-green-bg); color:var(--tg-green-fg); }
.n-tag.c-blue{ background:var(--tg-blue-bg); color:var(--tg-blue-fg); }

.pill{ border-radius:4px; font-weight:500; }
.pill-navy{ background:#d3e5ef; color:#28456c; }
.pill-orange{ background:#f1f1ef; color:#5f5e5b; }
.pill-green{ background:#dbeddb; color:#2b593f; }
.pill-red{ background:#ffe2dd; color:#6e3630; }
.pill-amber{ background:#fdecc8; color:#89632a; }
.pill-gray{ background:#e3e2e0; color:#787774; }

.peek-overlay{ background:rgba(15,15,15,.18); }
.peek{ width:920px; max-width:96vw; box-shadow:-4px 0 18px rgba(15,15,15,.14); }
.peek-head{ padding:18px 24px; border-bottom:1px solid var(--nt-line); }
.peek-head .pk-title{ color:var(--nt-text); font-size:20px; }
.peek-head .pk-sku{ color:var(--nt-text-2); }
.peek-body{ padding:20px 24px 40px; }
.peek-sect{ color:var(--nt-text-3); letter-spacing:.03em; text-transform:none; }
.peek-close{ width:28px; height:28px; border-radius:var(--nt-radius); }
.peek-close:hover{ background:var(--nt-hover); color:var(--nt-text); }
.prop-list{ border-top:1px solid var(--nt-line); }
.prop{ display:flex; gap:18px; padding:8px 0; border-bottom:1px solid var(--nt-line); font-size:14px; }
.prop span{ width:112px; flex-shrink:0; color:var(--nt-text-2); }
.prop b{ font-weight:500; color:var(--nt-text); }
.ai-diag{ background:#f7f7f5; color:var(--nt-text); border:1px solid var(--nt-line); border-radius:6px; }
.ai-diag .ai-h,.ai-diag b{ color:var(--nt-text); }

.kanban.db-board{ grid-template-columns:repeat(2,minmax(240px,1fr)); margin-top:8px; }
.kcol{ background:var(--nt-sidebar); border-radius:6px; padding:10px; }
.kcol h3{ color:var(--nt-text); font-size:13px; margin:0 0 10px; }
.kcard{ border-color:var(--nt-line); border-radius:5px; box-shadow:0 1px 2px rgba(15,15,15,.05); cursor:pointer; }
.kcard-title{ font-weight:600; font-size:13px; }
.empty{ color:var(--nt-text-3); font-size:13px; padding:12px; }

.arch-grid{ grid-template-columns:1fr; align-items:stretch; }
.arch-card{ overflow:hidden; }
.architecture{ display:grid; grid-template-columns:1fr 74px 1fr 74px 1fr; gap:10px; align-items:stretch; margin-top:12px; }
.arch-lane{ background:#fbfbfa; border:1px solid var(--nt-line); border-radius:6px; padding:12px; display:flex; flex-direction:column; gap:8px; }
.arch-label{ color:var(--nt-text-3); font-size:12px; font-weight:600; margin-bottom:2px; }
.arch-node{ background:#fff; border:1px solid var(--nt-line-2); border-radius:6px; padding:9px 10px; font-size:12.5px; line-height:1.35; color:var(--nt-text); }
.arch-node.primary{ border-color:#b7c7dc; background:#eef4fb; color:var(--navy); font-weight:700; }
.arch-node.ai{ border-color:var(--nt-line); background:#f7f7f5; color:var(--nt-text-2); }
.arch-node.person{ border-color:#c4dfcd; background:#f0f8f3; color:#2b593f; font-weight:700; }
.arch-node span{ color:var(--nt-text-2); font-weight:500; font-size:11px; }
.flow-col{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }
.flow-arrow{ width:100%; border:1px solid var(--nt-line-2); border-radius:999px; padding:5px 7px; text-align:center; font-size:11px; color:var(--nt-text-2); background:#fff; position:relative; }
.flow-arrow::after{ content:""; position:absolute; right:-8px; top:50%; width:8px; height:1px; background:var(--nt-line-2); }
.flow-arrow.out::after{ left:-8px; right:auto; }
.flow-list>div{ border-bottom:1px solid var(--nt-line); padding:12px 0; }
.flow-list>div:first-child{ padding-top:0; }
.flow-list p{ margin:7px 0 0; color:var(--nt-text-2); font-size:13px; line-height:1.6; }
.peak-stores{ margin-top:2px; }
.review-card{ margin-top:14px; }
.review-list{ margin:8px 0 0; padding-left:20px; color:var(--nt-text-2); font-size:13px; line-height:1.7; }
.review-list li{ margin:3px 0; }
.integration-arch-card{ max-width:920px; margin:14px auto; overflow:hidden; }
.ia-head{ display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.ia-head h2{ margin-bottom:6px; }
.ia-tabs{ display:flex; gap:4px; padding:3px; border:1px solid var(--nt-line); border-radius:8px; background:#fbfbfa; flex-shrink:0; }
.ia-tabs span{ min-width:54px; text-align:center; padding:6px 10px; border-radius:6px; color:var(--nt-text-2); background:#fff; border:1px solid var(--nt-line); font-size:12px; font-weight:600; }
.ia-legend{ display:flex; flex-wrap:wrap; gap:8px 14px; margin:14px 0 12px; color:var(--nt-text-2); font-size:12px; }
.ia-legend span{ display:inline-flex; align-items:center; gap:6px; }
.ia-legend-mark{ width:10px; height:10px; border-radius:50%; border:1px solid var(--nt-line-2); background:#fff; display:inline-block; }
.ia-legend-mark.actual{ background:#fff; }
.ia-legend-mark.estimate{ background:#f1f1ef; }
.ia-legend-mark.method{ background:var(--nt-text-3); border-color:var(--nt-text-3); }
.ia-diagram{ position:relative; display:flex; flex-direction:column; gap:8px; padding-right:78px; }
.ia-layer{ border:1px solid var(--nt-line-2); border-radius:8px; background:#fff; padding:13px; position:relative; }
.ia-layer-label{ color:var(--nt-text); font-size:13px; font-weight:700; margin-bottom:10px; }
.ia-source-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.ia-source{ border:1px solid var(--nt-line); border-radius:7px; padding:9px 10px; background:#fff; min-height:82px; }
.ia-source.is-estimate{ background:#f7f7f5; color:var(--nt-text-2); }
.ia-source-name{ display:flex; align-items:center; gap:7px; font-weight:700; font-size:13px; line-height:1.35; color:var(--nt-text); }
.ia-dot{ width:7px; height:7px; border-radius:50%; background:var(--nt-text-3); flex:0 0 auto; }
.ia-source-body{ margin-top:5px; color:var(--nt-text-2); font-size:12px; line-height:1.45; }
.ia-meta{ display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.ia-meta span,.ia-chip-row span{ border:1px solid var(--nt-line); border-radius:999px; background:#fbfbfa; color:var(--nt-text-2); font-size:11px; line-height:1.2; padding:4px 7px; }
.ia-core-title{ font-weight:700; color:var(--nt-text); margin-bottom:8px; }
.ia-chip-row{ display:flex; flex-wrap:wrap; gap:6px; }
.ia-layer p{ margin:9px 0 0; color:var(--nt-text-2); font-size:12.5px; line-height:1.55; }
.ia-ontology{ background:#fff; border-color:#a8a29a; }
.ia-ontology-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.ia-onto-card{ border:1px solid var(--nt-line); border-radius:7px; background:#fbfbfa; padding:10px; }
.ia-onto-card b{ display:block; color:var(--nt-text); font-size:13px; margin-bottom:6px; }
.ia-onto-card p{ margin:0 0 8px; min-height:38px; font-size:12px; line-height:1.55; }
.ia-principles{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.ia-principles span{ display:inline-flex; align-items:center; gap:6px; border:1px solid var(--nt-line); border-radius:999px; background:#fff; color:var(--nt-text-2); font-size:11.5px; padding:5px 8px; }
.ia-principles .ia-dot{ width:6px; height:6px; }
.ia-db{ border-color:#d8c3ae; box-shadow:inset 0 0 0 1px rgba(199,106,26,.12); }
.ia-ai,.ia-actions,.ia-human{ background:#fbfbfa; }
.ia-human-title{ font-size:15px; font-weight:700; color:var(--nt-text); }
.ia-arrow{ display:flex; align-items:center; justify-content:center; min-height:30px; color:var(--nt-blue); font-size:12px; font-weight:700; position:relative; }
.ia-arrow.down::before{ content:""; position:absolute; top:0; bottom:0; width:1px; background:var(--nt-blue); opacity:.55; }
.ia-arrow.down::after{ content:""; position:absolute; bottom:2px; width:7px; height:7px; border-right:1px solid var(--nt-blue); border-bottom:1px solid var(--nt-blue); transform:rotate(45deg); }
.ia-arrow span{ background:#fff; border:1px solid var(--nt-line); border-radius:999px; padding:4px 12px; z-index:1; }
.ia-approve-row{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ia-arrow.mini{ min-height:26px; color:var(--nt-text-2); }
.ia-arrow.mini span{ background:#fbfbfa; }
.ia-arrow.mini::before{ content:""; position:absolute; left:16%; right:16%; top:50%; height:1px; background:var(--nt-line-2); }
.ia-arrow.mini::after{ content:""; position:absolute; right:16%; top:calc(50% - 4px); width:8px; height:8px; border-right:1px solid var(--nt-line-2); border-bottom:1px solid var(--nt-line-2); transform:rotate(-45deg); }
.ia-arrow.mini.back::after{ right:auto; left:16%; transform:rotate(135deg); }
.ia-loop{ position:absolute; right:8px; top:118px; bottom:128px; width:54px; border-top:1px solid var(--nt-blue); border-right:1px solid var(--nt-blue); border-bottom:1px solid var(--nt-blue); border-radius:0 18px 18px 0; opacity:.85; }
.ia-loop::before{ content:""; position:absolute; top:-4px; left:-1px; width:8px; height:8px; border-left:1px solid var(--nt-blue); border-top:1px solid var(--nt-blue); transform:rotate(-45deg); background:#fff; }
.ia-loop span{ position:absolute; top:50%; right:-3px; transform:translateY(-50%); writing-mode:vertical-rl; color:var(--nt-blue); background:#fff; padding:8px 0; font-size:11px; font-weight:700; line-height:1.2; }
.ia-concept-band{ margin-top:12px; border:1px solid var(--nt-line-2); border-radius:8px; background:#fbfbfa; padding:12px; display:flex; flex-wrap:wrap; gap:7px; color:var(--nt-text-2); font-size:12px; line-height:1.45; }
.ia-concept-band b{ color:var(--nt-text); margin-right:4px; }
.ia-concept-band span{ border:1px solid var(--nt-line); border-radius:999px; background:#fff; padding:5px 9px; }
.ia-unavailable{ margin-top:12px; border:1px solid var(--nt-line); border-radius:7px; background:#fbfbfa; padding:10px 12px; color:var(--nt-text-2); font-size:12.5px; line-height:1.6; }
.ia-unavailable b{ color:var(--nt-text); }
.ia-footnote{ margin-top:8px; color:var(--nt-text-3); font-size:12px; line-height:1.55; }

@media(max-width:980px){
  .page{ padding:0 22px 70px; }
  .env-pills{ display:none; }
  .architecture{ grid-template-columns:1fr; }
  .flow-col{ display:none; }
  .arch-grid{ grid-template-columns:1fr; }
  .integration-arch-card{ max-width:none; }
  .ia-head{ flex-direction:column; }
  .ia-diagram{ padding-right:0; }
  .ia-loop{ display:none; }
  .ia-source-grid{ grid-template-columns:1fr; }
  .ia-ontology-grid{ grid-template-columns:1fr; }
  .ia-onto-card p{ min-height:0; }
  .ia-tabs{ width:100%; }
  .ia-tabs span{ flex:1; min-width:0; }
}

/* =============================================================================
 * Round 4: Notion monochrome + in-app notifications
 * ========================================================================== */
:root{
  --navy:var(--nt-text); --navy-2:#4b4944; --navy-3:#2f2d29;
  --orange:var(--nt-blue); --orange-2:#9a4f12; --orange-soft:var(--nt-hover);
  --ink:var(--nt-text); --muted:var(--nt-text-2); --desc:var(--nt-text-3);
  --line:var(--nt-line); --line-2:var(--nt-line-2); --bg:var(--nt-bg); --panel:var(--nt-sidebar);
  --sidebar:var(--nt-sidebar); --sidebar-hover:var(--nt-hover); --sidebar-active:var(--nt-hover-2);
  --green:var(--tg-green-fg); --green-soft:var(--tg-green-bg);
  --red:var(--tg-red-fg); --red-soft:var(--tg-red-bg);
  --amber:var(--tg-yellow-fg); --amber-soft:var(--tg-yellow-bg);
  --blue:var(--nt-blue); --blue-soft:var(--tg-blue-bg);
  --radius:6px;
}
.brandmark .dt,#gate .glogo .dt,.sb-logo .dt{ color:var(--nt-text); }
#gate .glogo{ color:var(--nt-text); }
#gate .gtenant,.topbar .demo-pill.tenant{ background:var(--nt-hover); color:var(--nt-text-2); }
#gate .gtenant .pdot,.sb-tenant .pdot{ background:var(--nt-text-3); }
#gate input:focus{ border-color:var(--nt-blue); }
#gate button,.btn-primary,.btn-navy{ background:var(--nt-blue); color:#fff; }
#gate button:hover,.btn-primary:hover,.btn-navy:hover{ background:#9a4f12; }
.btn-ghost{ color:var(--nt-text); border-color:var(--nt-line-2); }
.btn-ghost:hover{ background:var(--nt-hover); }
.hamburger{ background:var(--nt-text); border-radius:var(--nt-radius); }
.navitem .badge-n{ background:var(--nt-blue); color:#fff; }
.topbar .avatar{ background:var(--nt-text); color:#fff; }
.sect-title .tag{ color:var(--nt-text-2); background:var(--nt-hover); border-radius:var(--nt-radius); }
.kpi .val,.drill-row b{ color:var(--nt-text); }
.kpi .val.good,.kpi .sub.up{ color:var(--tg-green-fg); }
.kpi .val.danger,.kpi .sub.down{ color:var(--tg-red-fg); }
.demo-banner{ background:#fbfbfa; border-color:var(--nt-line); color:var(--nt-text-2); }
.demo-banner b{ color:var(--nt-text); }
.page-foot b{ color:var(--nt-text-2); }
.bridge-mid svg,.insight .isrc,.insight .imet,.q-item .qprice .to,.chan .cmoll,.rule-card .rth{ color:var(--nt-text); }
.insight .iact{ background:#fbfbfa; border-color:var(--nt-line-2); border-style:solid; }
.ai-diag .ai-h .spark{ background:var(--nt-blue); box-shadow:0 0 0 4px rgba(199,106,26,.12); }
.prow.reco{ border-color:var(--nt-line-2); background:#fbfbfa; }
.lenbar i{ background:var(--nt-blue); }
.arch-node.primary{ border-color:var(--nt-line-2); background:#fbfbfa; color:var(--nt-text); }
.arch-node.ai{ border-color:var(--nt-line-2); background:#fff; color:var(--nt-text); }
.arch-node.person{ border-color:var(--tg-green-bg); background:var(--tg-green-bg); color:var(--tg-green-fg); }
.rstat.req{ background:var(--tg-gray-bg); color:var(--tg-gray-fg); }
.rstat.dev{ background:var(--tg-blue-bg); color:var(--tg-blue-fg); }
.rstat.live{ background:var(--tg-green-bg); color:var(--tg-green-fg); }
.onboarding{ border-color:var(--nt-line); background:#fbfbfa; }
.ob-copy b{ color:var(--nt-text); }
.ob-x:hover{ background:var(--nt-hover); }
.diff-bad{ background:var(--tg-red-bg); color:var(--tg-red-fg); }
.toggle.on{ background:var(--nt-blue); }
@keyframes flash{ 0%{ background:rgba(199,106,26,.10);} 100%{ background:transparent;} }

.notification-bell{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border:0; background:transparent; color:var(--nt-text-2);
  border-radius:var(--nt-radius); cursor:pointer; flex-shrink:0;
}
.notification-bell svg{ width:17px; height:17px; }
.notification-bell:hover{ background:var(--nt-hover); color:var(--nt-text); }
.notification-badge{
  position:absolute; top:2px; right:1px; min-width:16px; height:16px; padding:0 4px;
  border-radius:999px; background:var(--nt-blue); color:#fff; font-size:10px; font-weight:700;
  line-height:16px; text-align:center;
}
.notification-panel{
  position:fixed; top:42px; right:58px; z-index:170; width:min(420px,calc(100vw - 24px));
  display:none; background:#fff; border:1px solid var(--nt-line); border-radius:8px;
  box-shadow:0 12px 34px rgba(15,15,15,.16); overflow:hidden;
}
.notification-panel.open{ display:block; }
.notification-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-bottom:1px solid var(--nt-line); }
.notification-head div{ display:flex; flex-direction:column; gap:1px; }
.notification-head b{ font-size:14px; color:var(--nt-text); }
.notification-head span{ font-size:12px; color:var(--nt-text-3); }
.notification-head button,.notification-foot button,.link-btn{
  border:0; background:transparent; color:var(--nt-blue); cursor:pointer; font:inherit; font-size:12px; padding:3px 5px; border-radius:var(--nt-radius);
}
.notification-head button:hover,.notification-foot button:hover,.link-btn:hover{ background:var(--nt-hover); }
.notification-list{ max-height:420px; overflow:auto; padding:6px; }
.notification-item,.app-notify{
  width:100%; display:flex; flex-direction:column; align-items:flex-start; gap:5px; text-align:left;
  border:1px solid transparent; background:#fff; color:var(--nt-text); padding:10px; border-radius:6px; cursor:pointer; font:inherit;
}
.notification-item:hover,.app-notify:hover{ background:var(--nt-hover); }
.notification-item.unread,.app-notify.unread{ border-color:var(--tg-blue-bg); background:#f7fbfd; }
.notification-item.read,.app-notify.read{ color:var(--nt-text-2); }
.notification-item b,.app-notify b{ font-size:13px; color:var(--nt-text); }
.notification-item span:not(.pill),.app-notify span:not(.pill){ font-size:12px; color:var(--nt-text-2); line-height:1.55; }
.notification-item time,.app-notify time{ font-size:11px; color:var(--nt-text-3); }
.notification-foot{ border-top:1px solid var(--nt-line); padding:8px 10px; text-align:right; }
.notify-actions{ display:flex; gap:8px; margin:8px 0 12px; flex-wrap:wrap; }
.app-notify-list{ display:flex; flex-direction:column; gap:8px; }
.app-notify-top{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.capability-card{ padding:0; overflow:hidden; }
.capability-card h2{ padding:14px 16px 8px; margin:0; }
.capability-card .tablewrap{ border-left:0; border-right:0; border-bottom:0; }
.capability-summary .kpi{ background:#fff; }
.cap-simple-grid{ display:grid; grid-template-columns:1.3fr .9fr; gap:16px; }
.cap-simple-card{ margin-bottom:0; }
.cap-simple-head{ margin-bottom:12px; }
.cap-simple-head h2{ margin:0 0 4px; font-size:16px; color:var(--nt-text); }
.cap-simple-head p{ margin:0; color:var(--nt-text-2); font-size:12.5px; line-height:1.6; }
.cap-simple-list{ display:grid; gap:12px; }
.cap-simple-group{ border-top:1px solid var(--nt-line); padding-top:10px; }
.cap-simple-group:first-child{ border-top:0; padding-top:0; }
.cap-simple-group h3{ margin:0 0 6px; color:var(--nt-text); font-size:13px; font-weight:700; }
.cap-simple-group ul,.cap-cannot-list{ margin:0; padding:0; list-style:none; display:grid; gap:6px; }
.cap-simple-group li,.cap-cannot-list li{
  display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
  color:var(--nt-text); font-size:13px; line-height:1.55;
}
.cap-simple-group li::before,.cap-cannot-list li::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--nt-blue);
  flex:0 0 auto; margin-top:8px;
}
.cap-simple-group li>span:first-child,.cap-cannot-list li>span:first-child{ flex:1; min-width:0; }
.cap-mini-labels{ display:inline-flex; flex-wrap:wrap; gap:4px; justify-content:flex-end; flex:0 0 auto; max-width:220px; }
.cap-mini-labels span{
  border:1px solid var(--nt-line); border-radius:999px; background:#fbfbfa; color:var(--nt-text-2);
  font-size:10.5px; line-height:1.2; padding:3px 6px; white-space:nowrap;
}
.cap-cannot-list{ border-top:1px solid var(--nt-line); padding-top:10px; }
.cap-outcome-layout{ display:grid; grid-template-columns:1fr; gap:16px; }
.cap-outcome-card{ padding:18px 20px; }
.cap-outcome-list{ display:grid; gap:12px; }
.cap-outcome-item{
  border:1px solid var(--nt-line); border-radius:6px; background:#fff; padding:14px;
}
.cap-outcome-top{
  display:grid; grid-template-columns:28px 1fr auto; align-items:start; gap:10px;
  border-bottom:1px solid var(--nt-line); padding-bottom:10px; margin-bottom:10px;
}
.cap-outcome-num{
  width:24px; height:24px; border:1px solid var(--nt-line-2); border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center; background:#fbfbfa;
  color:var(--nt-text-2); font-size:12px; font-weight:600;
}
.cap-outcome-top h3{ margin:1px 0 0; color:var(--nt-text); font-size:15px; line-height:1.45; }
.cap-outcome-rows{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.cap-outcome-rows div{ background:#fbfbfa; border:1px solid var(--nt-line); border-radius:6px; padding:10px; }
.cap-outcome-rows b{ display:flex; align-items:center; gap:6px; color:var(--nt-text); font-size:12px; margin-bottom:5px; }
.cap-outcome-rows b::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--nt-text-3); flex:0 0 auto; }
.cap-outcome-rows p{ margin:0; color:var(--nt-text-2); font-size:13px; line-height:1.65; }
.module-count{
  display:inline-flex; align-items:center; gap:4px; margin-left:8px; padding:2px 8px;
  border:1px solid var(--nt-line); border-radius:999px; background:#fff; color:var(--nt-text);
  font-size:11.5px; font-weight:600; white-space:nowrap;
}
.term-note{
  display:inline-flex; margin-left:6px; color:var(--nt-text-3); border-bottom:1px dotted var(--nt-text-3);
  font-size:11.5px; cursor:help;
}
.term-row{
  display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 16px;
}
.term-row .term-note{ margin-left:0; }
.matrix-lead{
  border:1px solid var(--nt-line); background:#fbfbfa; border-radius:6px; padding:12px 14px;
  color:var(--nt-text-2); font-size:13px; line-height:1.7; margin-bottom:12px;
}
.matrix-lead b{ color:var(--nt-text); margin-right:6px; }
.matrix-legend{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px; }
.matrix-wrap{ margin-bottom:16px; }
.matrix-table th,.matrix-table td{ min-width:126px; }
.matrix-table th:first-child,.matrix-table td:first-child{ min-width:210px; position:sticky; left:0; background:#fff; z-index:1; }
.matrix-table th:first-child{ z-index:2; }
.matrix-badge{
  display:inline-flex; align-items:center; justify-content:center; border-radius:4px;
  padding:2px 8px; font-size:12px; font-weight:500; line-height:18px; white-space:nowrap;
}
.mb-yes{ background:var(--tg-green-bg); color:var(--tg-green-fg); }
.mb-limited{ background:var(--tg-yellow-bg); color:var(--tg-yellow-fg); }
.mb-csv{ background:var(--tg-blue-bg); color:var(--tg-blue-fg); }
.mb-no{ background:#eeeae8; color:#6e3630; }
.mb-na{ background:var(--tg-gray-bg); color:var(--tg-gray-fg); }
.matrix-note{ color:var(--nt-text-3); font-size:11px; line-height:1.45; margin-top:5px; max-width:240px; }
.matrix-boxes{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.matrix-box p{ color:var(--nt-text-2); line-height:1.7; margin:8px 0 10px; }
.matrix-box ul,.fact-card ul{ margin:8px 0 0; padding-left:18px; color:var(--nt-text-2); line-height:1.65; font-size:13px; }
.matrix-box li,.fact-card li{ margin:3px 0; }
.usage-lead{
  border:1px solid var(--nt-line); background:#fbfbfa; border-radius:6px; padding:13px 15px;
  color:var(--nt-text-2); font-size:14px; line-height:1.75; margin-bottom:16px;
}
.usage-lead b{ color:var(--nt-text); margin-right:6px; }
.architecture-figure{
  max-width:100%; margin:0 auto 18px; padding:14px; background:var(--nt-bg);
  border:1px solid var(--nt-line); border-radius:10px;
}
.architecture-figure a{ display:block; }
.architecture-figure img{ display:block; width:100%; height:auto; border-radius:6px; cursor:zoom-in; }
.architecture-figure figcaption{
  margin-top:9px; color:var(--nt-text-3); font-size:12px; line-height:1.55;
}
.usage-card-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:16px 18px 12px; border-bottom:1px solid var(--nt-line);
}
.usage-card-head h2{ margin:0 0 5px; }
.usage-card-head p{ margin:0; color:var(--nt-text-2); font-size:13px; line-height:1.6; }
.usage-compare{ padding:0; overflow:hidden; margin-bottom:16px; }
.usage-table th:first-child,.usage-table td:first-child{ width:140px; }
.usage-table td{ line-height:1.65; }
.usage-scenarios{ display:grid; grid-template-columns:repeat(2,minmax(300px,1fr)); gap:16px; }
.usage-scenario{ margin:0; }
.usage-scenario-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  border-bottom:1px solid var(--nt-line); padding-bottom:12px; margin-bottom:12px;
}
.usage-scenario-head h2{ font-size:18px; margin:8px 0 0; }
.usage-step-grid{ display:grid; grid-template-columns:1fr; gap:8px; }
.usage-step{
  display:grid; grid-template-columns:168px 1fr; gap:12px; padding:9px 0;
  border-bottom:1px solid var(--nt-line); font-size:13.5px; line-height:1.65;
}
.usage-step:last-child{ border-bottom:0; }
.usage-step-k{ color:var(--nt-text-3); font-weight:600; }
.usage-step-v{ color:var(--nt-text); }
.usage-caution{
  margin-top:12px; border:1px solid var(--nt-line); background:#fbfbfa; border-radius:6px;
  padding:10px 12px; color:var(--nt-text-2); font-size:12.5px; line-height:1.65;
}
.usage-caution b{ color:var(--nt-text); margin-right:8px; }
.usage-modules{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:11px;
  color:var(--nt-text-3); font-size:12px;
}
.usage-link{ font-size:12px; }
.usage-rollout{ margin-top:16px; padding:0; overflow:hidden; }
.usage-rollout-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.usage-rollout-step{
  padding:16px; border-right:1px solid var(--nt-line); min-height:170px;
  display:flex; flex-direction:column; gap:8px;
}
.usage-rollout-step:last-child{ border-right:0; }
.usage-rollout-num{
  width:26px; height:26px; border:1px solid var(--nt-line-2); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--nt-text-2); font-size:12px; background:#fbfbfa;
}
.usage-rollout-step h3{ margin:0; font-size:15px; color:var(--nt-text); }
.usage-rollout-step h3 span{ color:var(--nt-text-3); font-size:12px; font-weight:500; margin-left:5px; }
.usage-rollout-step p{ margin:0; color:var(--nt-text-2); font-size:13px; line-height:1.65; }
.usage-rollout-step div:last-child{ margin-top:auto; color:var(--nt-text); font-size:12.5px; line-height:1.55; }
.fact-grid{ display:grid; grid-template-columns:repeat(2,minmax(260px,1fr)); gap:16px; margin-bottom:16px; }
.fact-card{ margin-bottom:0; }
.fact-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.fact-head h2{ margin-bottom:0; }
.fact-method{ margin:8px 0 10px; }
.fact-cols{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fact-card h3{ font-size:12px; color:var(--nt-text-3); font-weight:600; margin:10px 0 4px; }
.fact-nums{ border-top:1px solid var(--nt-line); margin-top:10px; padding-top:8px; display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.fact-nums h3{ width:100%; margin:0 0 2px; }
.complement-section .desc{ margin-bottom:12px; }
.complement-grid{ display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:12px; }
.complement-card{ border:1px solid var(--nt-line); border-radius:6px; padding:13px 14px; background:#fff; }
.complement-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:9px; }
.complement-head h3{ margin:0; font-size:14px; color:var(--nt-text); }
.fact-dl{ margin:0; display:grid; grid-template-columns:88px 1fr; gap:6px 10px; font-size:12.5px; line-height:1.55; }
.fact-dl dt{ color:var(--nt-text-3); font-weight:600; }
.fact-dl dd{ margin:0; color:var(--nt-text-2); min-width:0; }
.role-split-card td{ vertical-align:top; line-height:1.6; }
.csv-automation-grid{ display:grid; grid-template-columns:repeat(5,minmax(160px,1fr)); gap:10px; margin-top:12px; }
.csv-auto-item{ border:1px solid var(--nt-line); border-radius:6px; padding:10px; background:#fff; min-height:118px; }
.csv-auto-item.best{ background:#fbfbfa; }
.csv-auto-item b{ display:block; color:var(--nt-text); margin-bottom:6px; }
.csv-auto-item p{ color:var(--nt-text-2); font-size:12.5px; line-height:1.55; margin:7px 0 0; }
.source-note{ border:1px solid var(--nt-line); background:#fbfbfa; color:var(--nt-text-2); border-radius:6px; padding:11px 14px; font-size:12.5px; line-height:1.6; margin:14px 0; }
.source-note.mini-note{ margin:8px 0 0; padding:8px 10px; font-size:11.5px; }
.nint-scale-note{ margin-top:8px; }
.prov-link{ text-decoration:none; }
.prov-link:hover{ text-decoration:underline; }
.row-meta{ font-size:11px; color:var(--muted); display:flex; align-items:center; gap:5px; flex-wrap:wrap; margin-top:3px; }
.product-name-link{
  color:var(--nt-text); text-decoration:none; display:inline-flex; align-items:center; gap:4px;
  max-width:100%; line-height:1.45;
}
.product-name-link:hover{ color:var(--nt-blue); text-decoration:underline; text-underline-offset:2px; }
.product-name-link.fallback{ color:var(--nt-text-2); }
.product-name-link.disabled{ color:var(--nt-text-3); cursor:default; }
.link-source-note{ display:inline-flex; align-items:center; gap:2px; margin-left:6px; color:var(--nt-text-3); font-size:11px; font-weight:500; white-space:nowrap; }
.ext-ic{ font-size:11px; color:var(--nt-text-3); flex-shrink:0; }
.quick-check{
  display:inline-flex; align-items:center; gap:5px; border:1px solid var(--nt-line-2);
  border-radius:7px; padding:7px 10px; background:#fff; color:var(--nt-text-2); font-size:13px; cursor:pointer;
}
.quick-check input{ margin:0; }
.row-check-time{ color:var(--nt-text-2); font-size:12px; white-space:nowrap; }
.operation-links{
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px;
}
.op-link{
  display:inline-flex; align-items:center; gap:5px; border:1px solid var(--nt-line);
  border-radius:6px; padding:7px 10px; background:#fff; color:var(--nt-text);
  text-decoration:none; font-size:12.5px; font-weight:600;
}
.op-link:hover{ background:var(--nt-hover); color:var(--nt-blue); }
.op-link.disabled{ color:var(--nt-text-3); background:#fbfbfa; cursor:default; }
.op-link.disabled:hover{ color:var(--nt-text-3); background:#fbfbfa; }
.copy-row{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:14px; }
.copy-chip{
  display:inline-flex; align-items:center; gap:8px; border:1px solid var(--nt-line);
  border-radius:6px; padding:6px 9px; background:#fbfbfa; color:var(--nt-text);
  cursor:pointer; font:inherit; font-size:12px; max-width:100%;
}
.copy-chip span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.copy-chip b{ color:var(--nt-blue); font-size:11px; font-weight:600; white-space:nowrap; }
.copy-chip.copied{ border-color:#b7d8c4; background:#f3fbf6; }
.price-prov{ margin-top:3px; display:flex; justify-content:flex-end; }
.price-prov .pill{ font-size:10.5px; padding:1px 6px; }
.pnote{ flex-basis:100%; color:var(--nt-text-3); font-size:11px; line-height:1.45; padding-left:106px; }
.cart-status-box{ border:1px solid var(--nt-line); border-radius:6px; padding:14px 16px; background:#fbfbfa; }
/* アクセントバー禁止: 色付き左バーをやめ、状態は本文の文字色で表現 */
.cart-status-box.win .cart-status-main{ color:#2b593f; }
.cart-status-box.lost .cart-status-main{ color:#b5443a; }
.cart-status-main{ font-size:19px; font-weight:700; color:var(--nt-text); line-height:1.35; }
.cart-status-sub{ margin-top:6px; color:var(--nt-text-2); font-size:12.5px; line-height:1.55; }
.cart-held-row td{ background:#f6fbf7; }
.cart-held-row:hover td{ background:#eef8f1; }
.cart-lost-row:hover td{ background:#fffaf4; }
.cw-gap-loss{ color:#b5443a; font-weight:700; }
.estimate-badge{ margin-right:4px; font-size:10.5px; padding:1px 6px; }
.workflow-steps{ display:flex; flex-direction:column; gap:14px; }
.workflow-step{ border:1px solid var(--nt-line); border-radius:6px; background:#fff; padding:16px; }
.workflow-step.lost{ background:#fffaf7; border-color:#f0d2bd; }
.workflow-step.held{ background:#f6fbf7; border-color:#cde7d5; }
.workflow-step h2{ margin:4px 0 12px; font-size:21px; line-height:1.35; color:var(--nt-text); }
.workflow-step p{ margin:0 0 10px; color:var(--nt-text); line-height:1.75; }
.step-k{ color:var(--nt-text-3); font-size:12px; font-weight:700; letter-spacing:.02em; }
.step-grid{ display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:10px; margin:10px 0 12px; }
.step-grid div{ border:1px solid var(--nt-line); border-radius:6px; background:#fff; padding:10px 11px; min-width:0; }
.step-grid span{ display:block; color:var(--nt-text-3); font-size:11px; margin-bottom:3px; }
.step-grid b{ display:block; color:var(--nt-text); font-size:14px; font-weight:700; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.step-grid em{ font-style:normal; color:#b5443a; font-size:12px; font-weight:700; white-space:nowrap; }
.step-note{ border:1px solid var(--nt-line); background:#fbfbfa; border-radius:6px; padding:9px 10px; font-size:12.5px; color:var(--nt-text-2); }
.ai-action-card{ border:1px solid var(--nt-line); border-radius:6px; background:#fbfbfa; padding:14px; }
.ai-action-card.monitor{ background:#f6fbf7; border-color:#cde7d5; }
.ai-action-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:8px; }
.ai-action-head b{ font-size:15px; color:var(--nt-text); line-height:1.45; }
.api-preview{ margin:10px 0 0; padding:12px; background:#1f2733; color:#eef2f7; border-radius:6px; overflow:auto; font-size:12px; line-height:1.55; }
.action-buttons{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-top:10px; }
.action-buttons .btn{ width:100%; margin:0; }
.cart-held-card{ background:#f6fbf7; border-color:#cde7d5; }
.compact-list{ margin:0; padding-left:18px; }
.compact-list li{ margin:4px 0; }
.offer-table-wrap{ border-radius:6px; box-shadow:none; }
.offer-table td,.offer-table th{ white-space:nowrap; }
.offer-table .pill,.nint-table .pill{ margin-left:4px; }
.offer-table .row-meta{ color:var(--nt-text-3); font-size:11.5px; }
.nint-table td{ vertical-align:middle; }
.mine-offer{ background:#fff8f1; }
.cart-dot{ color:var(--orange); font-size:18px; line-height:1; }
.asin-insight{ border:1px solid var(--nt-line); background:#fbfbfa; border-radius:6px; padding:14px 16px; margin-top:12px; font-size:13px; line-height:1.7; }
.asin-insight .ai-h{ display:flex; align-items:center; gap:8px; font-weight:700; color:var(--nt-text); margin-bottom:8px; font-size:12.5px; }
.asin-insight .spark{ width:7px; height:7px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 4px rgba(199,106,26,.12); flex:0 0 auto; }
.asin-insight p{ margin:0 0 10px; color:var(--nt-text); }
.asin-list{ display:flex; gap:6px; flex-wrap:wrap; margin:0 0 10px; }
.asin-list span{ border:1px solid var(--nt-line-2); background:#fff; border-radius:5px; padding:3px 7px; font-size:11.5px; font-variant-numeric:tabular-nums; color:var(--nt-text-2); }
.action-panel{ border:1px solid var(--nt-line); border-radius:6px; padding:14px; background:#fff; font-size:13px; line-height:1.65; }
.action-panel .btn{ margin-top:10px; width:100%; }
.ops-title{ margin-top:12px; color:var(--nt-text-2); font-size:12px; font-weight:600; }
.ops-check{ display:flex; align-items:center; gap:8px; margin-top:6px; color:var(--nt-text); font-size:12.5px; }
.price-details{ border:1px solid var(--nt-line); border-radius:6px; padding:10px 12px; background:#fff; }
.price-details summary{ cursor:pointer; color:var(--nt-text); font-size:13px; font-weight:600; }
.review-metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.review-metric{ border:1px solid var(--nt-line); border-radius:6px; padding:10px 12px; background:#fff; min-width:0; }
.review-metric b{ display:block; font-size:13px; color:var(--nt-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.review-metric span{ display:block; font-size:18px; font-weight:700; color:var(--nt-text); margin-top:3px; font-variant-numeric:tabular-nums; }
.review-metric small{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; color:var(--nt-text-2); font-size:11px; margin-top:3px; }
@media(max-width:900px){ .review-metrics{ grid-template-columns:repeat(2,1fr); } .pnote{ padding-left:0; } .step-grid,.action-buttons{ grid-template-columns:1fr; } }
@media(max-width:560px){ .review-metrics{ grid-template-columns:1fr; } }
@media(max-width:880px){
  .notification-panel{ right:12px; top:52px; }
  .global-search-trigger{ min-width:0; max-width:none; }
  .global-search-trigger kbd,.tb-user span{ display:none; }
  .matrix-boxes,.fact-grid,.fact-cols,.csv-automation-grid,.complement-grid,.usage-scenarios,.usage-rollout-grid,.cap-simple-grid{ grid-template-columns:1fr; }
  .cap-outcome-top{ grid-template-columns:28px 1fr; }
  .cap-outcome-top .cap-mini-labels{ grid-column:2; justify-content:flex-start; max-width:none; }
  .cap-outcome-rows{ grid-template-columns:1fr; }
  .matrix-table th:first-child,.matrix-table td:first-child{ position:static; }
  .usage-step{ grid-template-columns:1fr; gap:3px; }
  .usage-rollout-step{ border-right:0; border-bottom:1px solid var(--nt-line); }
  .usage-rollout-step:last-child{ border-bottom:0; }
  .cap-simple-group li,.cap-cannot-list li{ display:grid; grid-template-columns:6px 1fr; justify-content:start; }
  .cap-mini-labels{ grid-column:2; justify-content:flex-start; max-width:none; }
}

/* 確定実データの控えめな出典リンク（実データバッジ撤去に伴う） */
.prov-src{ font-size:11px; color:var(--nt-text-3); text-decoration:underline; text-underline-offset:2px; }
.prov-src:hover{ color:var(--nt-blue); }

/* ====================== arksdelta AI 生成中インジケータ ====================== */
.ai-loading{
  display:flex; align-items:center; gap:10px;
  margin-top:10px; padding:14px 16px;
  background:#fbfbfa; border:1px solid var(--nt-border, #e9e9e7); border-radius:8px;
  font-size:13px; color:var(--nt-text-2, #6b6b6b);
}
.ai-spinner{
  width:16px; height:16px; flex:none;
  border:2px solid #e2ddd3; border-top-color:#c76a1a; border-radius:50%;
  animation: ai-spin 0.7s linear infinite;
}
@keyframes ai-spin{ to{ transform: rotate(360deg); } }

/* ====================== 多段ステップ進行表示（生成中アニメ） ====================== */
.ai-stepper{
  margin-top:10px; padding:14px 18px;
  background:#fbfbfa; border:1px solid var(--nt-border,#e9e9e7); border-radius:10px;
  animation: aiFadeUp .3s cubic-bezier(.2,.7,.3,1);
}
.ai-step-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:3px; }
.ai-step{
  display:flex; align-items:center; gap:11px; padding:5px 2px;
  font-size:13px; line-height:1.4; letter-spacing:.01em;
  transition: color .35s ease, opacity .35s ease;
}
.ai-step-ic{
  width:18px; height:18px; flex:none; box-sizing:border-box;
  border-radius:50%; position:relative;
  transition: background .3s ease, border-color .3s ease;
}
.ai-step-tx{ position:relative; }
/* 未了（薄字） */
.ai-step--wait{ color:var(--nt-text-3,#b3aea4); }
.ai-step--wait .ai-step-ic{ border:2px solid #e6e1d7; background:#fff; }
.ai-step--wait .ai-step-ic::after{
  content:""; position:absolute; inset:0; margin:auto;
  width:5px; height:5px; border-radius:50%; background:#dcd6ca;
}
/* 進行中（スピナー＋「…」） */
.ai-step--run{ color:var(--nt-text,#2b2b2b); font-weight:600; }
.ai-step--run .ai-step-ic{
  border:2px solid #efe6d6; border-top-color:#c76a1a; background:#fff;
  animation: ai-spin .7s linear infinite;
}
.ai-step--run .ai-step-tx::after{
  content:"…"; display:inline-block; width:1.1em; text-align:left; color:#c76a1a;
}
/* 完了（チェック✓） */
.ai-step--done{ color:var(--nt-text-2,#6b6b6b); }
.ai-step--done .ai-step-ic{
  border:2px solid #4a8a3f; background:#4a8a3f;
  animation: ai-step-pop .32s cubic-bezier(.2,.8,.3,1.2);
}
.ai-step--done .ai-step-ic::after{
  content:""; position:absolute; left:5px; top:2px;
  width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
@keyframes ai-step-pop{ 0%{ transform:scale(.55); } 60%{ transform:scale(1.14); } 100%{ transform:scale(1); } }
/* マイソク帯替えオーバーレイ内のステッパー（白カードで浮かせる） */
.msd-loading .ai-stepper{
  background:#fff; border-color:#e2e6ec; box-shadow:0 8px 30px rgba(0,0,0,.16);
  min-width:240px; padding:16px 22px;
}

/* ====================== 国交省 実データカード（査定アシスト） ====================== */
.real-data-card{
  margin-top:8px; padding:14px 16px;
  background:#f6f8f4; border:1px solid #d7e3cf; border-left:3px solid #4a8a3f; border-radius:8px;
}
.real-data-card.nodata{ background:#faf7f2; border-color:#e7ddc9; border-left-color:#c2a86a; }
.real-data-card .rd-head{ font-weight:700; font-size:14px; color:var(--nt-text, #2b2b2b); margin-bottom:10px; }
.real-data-card .step-grid{ margin:4px 0 10px; }
.real-data-card .rd-est{ padding-top:10px; border-top:1px dashed #cdddc2; }
.real-data-card .rd-est-main{ font-size:14px; }
.real-data-card .rd-est-main b{ font-size:17px; color:#2f6f27; }
.real-data-card .rd-est-sub{ font-size:12px; color:var(--muted, #6b6b6b); margin-top:4px; }
.real-data-card .rd-src{ margin-top:10px; font-size:11px; color:#5a6b52; }

/* ====================== データ元ピル（スプレッドシート/内蔵） ====================== */
.ds-pill{ text-decoration:none; cursor:pointer; }
.ds-pill .ld{ background:#9b9b97; }
.ds-pill.ds-sheet .ld{ background:#2f8a3f; }
.ds-pill.ds-builtin .ld{ background:#c2a86a; }
.ds-pill:hover{ filter:brightness(0.97); }

/* ====================== カンバン（契約進捗パイプライン） ====================== */
.kanban{ display:flex; gap:12px; overflow-x:auto; padding:4px 2px 12px; }
.kanban-col{ flex:0 0 220px; background:#f7f7f5; border:1px solid var(--nt-border,#e9e9e7); border-radius:10px; padding:10px; }
.kanban-col h3{ font-size:12px; margin:0 0 8px; color:var(--nt-text-2,#5b5b5b); display:flex; justify-content:space-between; align-items:center; }
.kanban-col h3 .kn{ background:#e7e7e4; border-radius:10px; padding:1px 7px; font-size:11px; }
.kanban-card{ background:#fff; border:1px solid var(--nt-border,#e9e9e7); border-radius:8px; padding:9px 10px; margin-bottom:8px; cursor:pointer; }
.kanban-card:hover{ border-color:#c76a1a; }
.kanban-card .kc-title{ font-weight:600; font-size:13px; }
.kanban-card .kc-meta{ font-size:11px; color:var(--muted,#787774); margin-top:3px; }
.kanban-empty{ font-size:11px; color:#b8b8b4; padding:6px 2px; }

/* ====================== 予約カード（内見・来店） ====================== */
.appt-week{ display:flex; gap:6px; margin:6px 0 14px; overflow-x:auto; }
.appt-day{ flex:1 0 64px; text-align:center; background:#f7f7f5; border:1px solid var(--nt-border,#e9e9e7); border-radius:8px; padding:6px 4px; }
.appt-day .ad-d{ font-size:11px; color:var(--muted,#787774); }
.appt-day .ad-n{ font-size:18px; font-weight:700; }
.appt-day.has b{ color:#c76a1a; }
.appt-card{ border:1px solid var(--nt-border,#e9e9e7); border-radius:9px; padding:12px 14px; margin-bottom:10px; background:#fff; }
.appt-card .ac-head{ display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
.appt-card .ac-title{ font-weight:600; }

/* ====================== 機会損失ウォッチ / アクションブリッジ ====================== */
.cart-lost-row > td{ background:#fdf6f5; }
.workflow-step{ border:1px solid var(--nt-border,#e9e9e7); border-radius:10px; padding:14px 16px; margin-bottom:12px; background:#fff; }
.workflow-step.lost{ border-left:3px solid #c0392b; }
.workflow-step.held{ border-left:3px solid #2f8a3f; }
.workflow-step .step-k{ font-size:11px; font-weight:700; letter-spacing:.04em; color:var(--muted,#787774); }
.workflow-step h2{ font-size:16px; margin:4px 0 10px; }
.ai-action-foot{ margin-top:8px; }
.action-buttons{ display:flex; gap:8px; flex-wrap:wrap; }

/* ホームステージング before/after */
.staging-pair{ display:flex; align-items:center; gap:10px; margin-top:10px; flex-wrap:wrap; }
.staging-pair figure{ margin:0; flex:1 1 300px; min-width:240px; }
.staging-pair img{ width:100%; border-radius:10px; border:1px solid var(--nt-border,#e9e9e7); display:block; aspect-ratio:1/1; object-fit:cover; background:#f2f2f0; }
.staging-pair figcaption{ font-size:12px; color:var(--muted,#787774); margin-top:6px; text-align:center; }
.staging-arrow{ font-size:22px; color:#c76a1a; font-weight:700; flex:0 0 auto; }

/* 広告バナー */
.ad-banner{ margin:10px 0 4px; max-width:420px; }
.ad-banner img{ width:100%; border-radius:10px; border:1px solid var(--nt-border,#e9e9e7); display:block; }
.ad-banner figcaption{ font-size:12px; color:var(--muted,#787774); margin-top:6px; }
.ao-out-row > td{ padding:0 12px; border:none; }
.ao-out:empty{ display:none; }

/* ====================== 主役: ダッシュボード hero ====================== */
.hero-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:16px; }
.hero-card{ display:flex; flex-direction:column; gap:4px; align-items:flex-start; text-align:left; cursor:pointer;
  background:linear-gradient(135deg,#fff,#fbf7f1); border:1px solid #ead9c5; border-radius:12px; padding:16px; }
.hero-card:hover{ border-color:#c76a1a; box-shadow:0 2px 10px rgba(199,106,26,.12); }
.hero-card .hero-ic{ width:26px; height:26px; color:#c76a1a; }
.hero-card .hero-ic svg{ width:26px; height:26px; }
.hero-card b{ font-size:14px; }
.hero-card span:last-child{ font-size:12px; color:var(--muted,#787774); }

/* ====================== 主役1: チャット ====================== */
.chat-wrap{ max-width:860px; }
.chat-log{ height:480px; overflow-y:auto; border:1px solid var(--nt-border,#e9e9e7); border-radius:12px; padding:14px; background:#fafafa; }
.chat-row{ display:flex; margin-bottom:12px; }
.chat-row.user{ justify-content:flex-end; }
.chat-bubble{ max-width:78%; padding:10px 13px; border-radius:14px; font-size:13.5px; line-height:1.6; }
.chat-bubble.ai{ background:#fff; border:1px solid var(--nt-border,#e9e9e7); border-top-left-radius:4px; }
.chat-bubble.user{ background:#c76a1a; color:#fff; border-top-right-radius:4px; }
.chat-props{ margin-top:10px; display:grid; gap:8px; }
.chat-prop{ background:#fbf7f1; border:1px solid #ead9c5; border-radius:10px; padding:10px 12px; }
.chat-prop .cp-title{ font-weight:700; font-size:13px; }
.chat-prop .cp-meta{ font-size:12px; color:var(--muted,#6b6b6b); margin-top:2px; }
.chat-prop .cp-acts{ margin-top:8px; display:flex; gap:8px; }
.chat-suggests{ display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.chat-suggests .chip{ background:#fff; border:1px solid var(--nt-border,#e9e9e7); border-radius:16px; padding:6px 12px; font-size:12px; cursor:pointer; }
.chat-suggests .chip:hover{ border-color:#c76a1a; color:#c76a1a; }
.chat-input-row{ display:flex; gap:8px; margin-top:6px; }
.chat-input-row input{ flex:1; padding:11px 14px; border:1px solid var(--nt-border,#e9e9e7); border-radius:10px; font-size:14px; }

/* ====================== 主役2: スタジオ ====================== */
.studio-controls{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.studio-controls select{ padding:9px 12px; border:1px solid var(--nt-border,#e9e9e7); border-radius:8px; font-size:13px; }

/* ====================== 主役3: 3D内見 ====================== */
.tour-note{ background:#fbf7f1; border:1px solid #ead9c5; border-radius:10px; padding:12px 14px; font-size:13px; margin-bottom:12px; }
.tour-frame{ position:relative; width:100%; aspect-ratio:16/9; border-radius:12px; overflow:hidden; border:1px solid var(--nt-border,#e9e9e7); background:#111; }
.tour-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.tour-actions{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:10px; }

/* ====================== マイソク（販売図面）シート ====================== */
.maisoku-stage{ margin-top:14px; overflow-x:auto; }
/* ===== マイソク：タブ ===== */
.ms-tabs{ display:flex; gap:6px; margin:10px 0 4px; border-bottom:1px solid #e4e7ec; }
.ms-tab{ background:none; border:none; padding:8px 14px; font-size:13px; font-weight:700; color:#7b8794; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
.ms-tab.is-active{ color:#1b3a5b; border-bottom-color:#1b3a5b; }
.ms-tab:hover{ color:#1b3a5b; }
/* ===== ドラッグ&ドロップ帯替えデモ ===== */
.msd-wrap{ margin-top:14px; }
.msd-drop{ border:2px dashed #c2cdd9; border-radius:14px; background:linear-gradient(180deg,#fbfcfe,#f4f7fb); padding:46px 24px; text-align:center; cursor:pointer; transition:border-color .15s, background .15s; }
.msd-drop:hover{ border-color:#1b3a5b; background:#f3f7fc; }
.msd-drop.is-over{ border-color:#1b3a5b; background:#eaf1fa; box-shadow:inset 0 0 0 3px rgba(27,58,91,.08); }
.msd-drop-ic{ width:56px; height:56px; margin:0 auto 12px; color:#5d738a; }
.msd-drop-ic svg{ width:56px; height:56px; }
.msd-drop-t{ font-size:16px; font-weight:700; color:#27313a; }
.msd-drop-t b{ color:#1b3a5b; }
.msd-drop-s{ font-size:12.5px; color:#7b8794; margin:6px 0 14px; }
.msd-imgbox{ position:relative; border:1px solid #e2e6ec; border-radius:12px; overflow:hidden; background:#eef2f5; box-shadow:0 3px 16px rgba(0,0,0,.10); max-width:980px; margin:0 auto; }
.msd-img{ display:block; width:100%; height:auto; }
.msd-badge{ position:absolute; top:12px; left:12px; background:rgba(90,101,112,.92); color:#fff; font-size:12px; font-weight:800; padding:5px 12px; border-radius:14px; box-shadow:0 1px 5px rgba(0,0,0,.25); }
.msd-badge.is-after{ background:#1b7a3d; }
.msd-loading{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:rgba(248,250,252,.86); backdrop-filter:blur(2px); color:#1b3a5b; font-size:14px; font-weight:700; }
.msd-loading[hidden]{ display:none; }
.msd-stage[hidden]{ display:none; }
.msd-loading .ai-spinner{ width:34px; height:34px; border-width:4px; }
/* ===== 実物マイソク画像＋会社帯オーバーレイ ===== */
.mso-fit{ width:100%; overflow:hidden; margin-top:12px; }
.mso-doc{ position:relative; transform-origin:top left; box-shadow:0 2px 16px rgba(0,0,0,.12); background:#fff; }
.mso-img{ display:block; }
.mso-overlay{ position:absolute; left:0; width:100%; box-sizing:border-box; display:flex; align-items:stretch; overflow:hidden;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%); border-top:3px solid #1b3a5b; border-bottom:10px solid #13294a;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; color:#16263a; }
.mso-tag{ position:absolute; top:-15px; right:16px; background:#2ecc71; color:#0c3b1e; font-size:12px; font-weight:800; padding:3px 12px; border-radius:12px; box-shadow:0 1px 5px rgba(0,0,0,.22); z-index:2; }
.mso-capturing .mso-tag{ display:none; }
/* 左：ブランド */
.mso-brand{ display:flex; align-items:center; gap:18px; width:716px; box-sizing:border-box; padding:0 22px; }
.mso-logo{ width:88px; height:88px; flex:none; background:linear-gradient(155deg,#1b3a5b,#13294a); border-radius:12px; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(19,41,74,.3); }
.mso-logo svg{ width:46px; height:46px; }
.mso-brandtx{ min-width:0; }
.mso-wordmark{ font-size:27px; font-weight:900; letter-spacing:.06em; color:#16263a; line-height:1; display:flex; align-items:baseline; gap:9px; }
.mso-wordmark span{ font-size:11px; font-weight:700; letter-spacing:.3em; color:#9aa7b4; }
.mso-coname{ font-size:18px; font-weight:800; color:#1b3a5b; margin-top:6px; letter-spacing:.02em; }
.mso-coline{ font-size:13px; color:#3a4654; margin-top:5px; }
.mso-cosub{ font-size:11.5px; color:#6b7785; margin-top:3px; }
/* 中央：TEL */
.mso-mid{ width:430px; box-sizing:border-box; padding:0 26px; border-left:1px solid #e3e8ee; display:flex; flex-direction:column; justify-content:center; }
.mso-pill{ display:inline-block; align-self:flex-start; background:#1b3a5b; color:#fff; font-size:13px; font-weight:700; padding:3px 13px; border-radius:14px; letter-spacing:.04em; }
.mso-tel{ display:flex; align-items:baseline; gap:9px; margin-top:8px; flex-wrap:nowrap; white-space:nowrap; }
.mso-tel span{ font-size:18px; font-weight:800; color:#1b3a5b; letter-spacing:.06em; flex:none; }
.mso-tel b{ font-size:37px; font-weight:900; color:#13243a; letter-spacing:0; line-height:1; white-space:nowrap; }
.mso-sub2{ display:flex; gap:18px; font-size:13px; color:#3a4654; margin-top:7px; font-weight:600; }
.mso-hours{ font-size:12px; color:#6b7785; margin-top:5px; }
/* 右：QR */
.mso-right{ flex:1; display:flex; align-items:center; justify-content:center; gap:13px; box-sizing:border-box; padding:0 20px; border-left:1px solid #e3e8ee; }
.mso-qrbox{ width:92px; height:92px; flex:none; background:#fff; border:1px solid #dfe4ea; border-radius:8px; padding:5px; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.mso-qr-img{ width:100%; height:100%; display:block; image-rendering:pixelated; }
.mso-right small{ font-size:12.5px; color:#3a4654; font-weight:700; line-height:1.5; }
/* ===== 本格マイソク（A4横・参照図面準拠） ===== */
.ms2-sheet{ width:1040px; margin:0 auto; background:#fff; border:1px solid #cfcfca; box-shadow:0 2px 16px rgba(0,0,0,.10); color:#222; font-size:12px; line-height:1.5;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
/* ヘッダー帯 */
.ms2-head{ display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:14px; padding:13px 18px; border-bottom:3px solid #c0392b; }
.ms2-badge{ background:#2c3e50; color:#fff; font-size:13px; font-weight:800; padding:9px 12px; border-radius:3px; writing-mode:vertical-rl; letter-spacing:.18em; text-align:center; line-height:1.15; }
.ms2-head-main{ min-width:0; }
.ms2-name{ font-size:23px; font-weight:800; color:#1f2d3a; letter-spacing:.01em; }
.ms2-catch{ font-size:14px; font-weight:700; color:#2c3e50; margin-top:4px; }
.ms2-price{ text-align:right; white-space:nowrap; padding-left:6px; }
.ms2-price-lbl{ display:block; font-size:11px; color:#555; font-weight:700; }
.ms2-price-val{ font-size:34px; font-weight:900; color:#c0392b; line-height:1; }
.ms2-price-val small{ font-size:16px; font-weight:800; margin-left:1px; }
.ms2-price-tax{ display:inline-block; font-size:10px; color:#fff; background:#c0392b; border-radius:3px; padding:1px 7px; margin-top:3px; }
.ms2-iconrow{ display:grid; grid-template-columns:repeat(2,auto); gap:5px 8px; padding-left:8px; border-left:1px solid #e2e2de; }
.ms2-icb{ display:flex; align-items:center; gap:5px; background:#f4f6f8; border:1px solid #e1e6ea; border-radius:4px; padding:4px 8px; }
.ms2-icb-ic{ width:17px; height:17px; color:#c0392b; flex:none; } .ms2-icb-ic svg{ width:17px; height:17px; }
.ms2-icb-tx{ font-size:10.5px; font-weight:700; color:#33414d; white-space:nowrap; }
/* 3カラム本体 */
.ms2-body{ display:grid; grid-template-columns:285px 1fr 320px; gap:11px; padding:12px 18px 8px; align-items:start; }
.ms2-secbar{ background:#34495e; color:#fff; font-size:12px; font-weight:800; padding:4px 10px; border-radius:2px; letter-spacing:.04em; margin-bottom:7px; }
.ms2-col .ms2-secbar:not(:first-child){ margin-top:11px; }
/* 間取り図 */
.ms2-floorbox{ border:1.5px solid #34495e; border-radius:3px; padding:9px; background:#fbfbf9; display:flex; flex-direction:column; gap:5px; position:relative; }
.fp{ border:1px solid #b9c2cb; border-radius:2px; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:11px; font-weight:700; color:#33414d; padding:6px 2px; }
.fp b{ font-size:11px; color:#1f6f8b; font-weight:800; margin-top:1px; }
.fp-balcony{ background:#eaf2f6; border:1px dashed #9bb6c4; border-radius:2px; text-align:center; font-size:10.5px; font-weight:700; color:#4a6675; padding:5px; }
.fp-rooms{ display:grid; grid-template-columns:1fr 1fr; gap:5px; }
.fp-ldk{ background:#fff8ec; min-height:62px; border-color:#d8c49a; }
.fp-ldk b{ color:#b06a12; font-size:13px; }
.fp-water{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:5px; }
.fp-wc{ background:#f4f6f8; font-size:10px; padding:7px 2px; }
.ms2-floor-note{ font-size:9px; color:#9aa3ab; margin-top:2px; text-align:right; }
/* セールスポイント */
.ms2-sp{ list-style:none; margin:0; padding:0; }
.ms2-sp li{ display:flex; align-items:flex-start; gap:6px; font-size:11.5px; font-weight:600; color:#2f3a44; padding:4px 0; border-bottom:1px dotted #e3e3de; line-height:1.4; }
.ms2-sp li:last-child{ border-bottom:none; }
.ms2-spck{ width:15px; height:15px; flex:none; color:#fff; background:#c0392b; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-top:1px; }
.ms2-spck svg{ width:10px; height:10px; stroke-width:3; }
/* 写真グリッド */
.ms2-photogrid{ display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.ms2-ph{ position:relative; border:1px solid #e2e2de; border-radius:3px; aspect-ratio:4/3; background-size:cover; background-position:center; overflow:hidden; }
.ms2-ph-lg{ grid-column:1 / 3; aspect-ratio:16/7; }
.ms2-ph.is-ph{ background:linear-gradient(135deg,#eef2f5,#dde4ea); }
.ms2-ph-mark{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#9aa9b6; }
.ms2-ph-mark svg{ width:34px; height:34px; }
.ms2-ph-cap{ position:absolute; left:0; bottom:0; background:rgba(20,30,45,.66); color:#fff; font-size:10px; font-weight:700; padding:2px 8px; border-radius:0 4px 0 0; }
.ms2-photonote{ font-size:9px; color:#9aa3ab; margin-top:5px; }
/* 物件概要・周辺環境テーブル */
.ms2-spec{ width:100%; border-collapse:collapse; }
.ms2-spec th, .ms2-spec td{ border:1px solid #e0e0db; padding:4px 7px; text-align:left; vertical-align:middle; font-size:10.8px; line-height:1.35; }
.ms2-spec th{ background:#f3f1ec; width:78px; font-weight:700; color:#555; white-space:nowrap; }
.ms2-spec-sur th{ width:118px; }
.ms2-pc{ color:#c0392b; font-size:13px; font-weight:800; } .ms2-pc small{ font-size:9px; color:#777; font-weight:600; }
.ms2-mapph{ border:1px solid #d8dde2; border-radius:3px; background:linear-gradient(135deg,#eef2f5,#e1e7ec); height:96px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; color:#5d6b77; }
.ms2-mapph .ms2-ph-mark{ position:static; width:30px; height:30px; } .ms2-mapph .ms2-ph-mark svg{ width:30px; height:30px; }
.ms2-mapph span{ font-size:11px; font-weight:700; } .ms2-mapph small{ font-size:9px; color:#8b97a1; }
/* 会社帯（帯替え対象） */
.ms2-obi{ position:relative; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:18px; margin:6px 0 0; padding:13px 18px; color:#fff; }
.ms2-obi-other{ background:#5a6570; }
.ms2-obi-self{ background:#1b3a5b; }
.ms2-obi-tag{ position:absolute; top:-10px; left:14px; font-size:10px; font-weight:800; padding:2px 9px; border-radius:10px; }
.ms2-obi-other .ms2-obi-tag{ background:#c0392b; color:#fff; }
.ms2-obi-self .ms2-obi-tag{ background:#2ecc71; color:#0d3b1e; }
.ms2-obi-brand{ display:flex; align-items:center; gap:11px; min-width:0; }
.ms2-obi-logo{ width:42px; height:42px; flex:none; border-radius:6px; background:rgba(255,255,255,.16); border:1.5px solid rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center; font-size:21px; font-weight:900; }
.ms2-obi-co{ display:flex; flex-direction:column; min-width:0; }
.ms2-obi-co b{ font-size:17px; font-weight:800; letter-spacing:.02em; }
.ms2-obi-co span{ font-size:10px; opacity:.9; line-height:1.5; }
.ms2-obi-contact{ text-align:right; white-space:nowrap; }
.ms2-obi-tel{ font-size:21px; font-weight:900; letter-spacing:.01em; display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.ms2-obi-tic{ width:18px; height:18px; } .ms2-obi-tic svg{ width:18px; height:18px; }
.ms2-obi-sub{ display:flex; gap:14px; justify-content:flex-end; font-size:10.5px; opacity:.95; margin-top:2px; }
.ms2-obi-sub span{ display:inline-flex; align-items:center; gap:4px; } .ms2-obi-sub svg{ width:12px; height:12px; }
.ms2-obi-hours{ font-size:10px; opacity:.85; margin-top:3px; }
.ms2-obi-qr{ display:flex; align-items:center; gap:8px; }
.ms2-qr{ background:#fff; padding:3px; border-radius:3px; line-height:0; } .ms2-qr svg{ fill:#1f2d3a; }
.ms2-obi-qr small{ font-size:9px; opacity:.9; text-align:center; line-height:1.3; }
.ms2-disc{ font-size:8.5px; color:#8c8c88; padding:6px 18px 10px; line-height:1.5; }

.today-head{ font-size:13px; font-weight:800; color:#1b3a5b; margin:4px 0 8px; letter-spacing:.03em; }

/* ====================== 契約書レビュー / 登記データ化 ====================== */
.cr-textarea{
  width:100%; box-sizing:border-box; margin-top:10px; min-height:260px; resize:vertical;
  border:1px solid var(--nt-line, #e6e9ee); border-radius:8px; padding:13px 15px;
  font-size:13px; line-height:1.65; color:var(--nt-text, #2b2b2b); background:#fdfdfc;
  font-family:ui-monospace, SFMono-Regular, Menlo, "Hiragino Kaku Gothic ProN", sans-serif;
}
.cr-textarea:focus{ outline:none; border-color:#b9c2cf; box-shadow:0 0 0 3px rgba(120,140,170,.12); }
/* ===== 契約書レビュー：リーガルテック2ペイン ===== */
.cr-load-note{ font-size:12px; color:#8895a2; line-height:1.6; }
.cr-legal{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:16px; align-items:start; }
.cr-left{ border:1px solid #d6dde4; border-radius:12px; background:#f4f6f8; overflow:hidden; box-shadow:0 2px 12px rgba(27,58,91,.06); position:sticky; top:12px; }
.cr-pdf-bar{ display:flex; align-items:center; justify-content:space-between; padding:9px 13px; background:#1b3a5b; color:#fff; }
.cr-pdf-title{ display:flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; }
.cr-pdf-title svg{ width:14px; height:14px; }
.cr-pager{ display:flex; align-items:center; gap:8px; }
.cr-pager .btn{ background:rgba(255,255,255,.15); color:#fff; padding:4px 10px; }
.cr-pager .btn:hover{ background:rgba(255,255,255,.28); }
.cr-pager .btn:disabled{ opacity:.4; cursor:default; }
.cr-pageno{ font-size:12px; font-weight:700; min-width:54px; text-align:center; }
.cr-pdf-stage{ position:relative; padding:14px; max-height:760px; overflow:auto; display:flex; justify-content:center; }
.cr-pdf-stage canvas{ display:block; box-shadow:0 3px 16px rgba(0,0,0,.16); border-radius:3px; max-width:100%; }
.cr-hl-layer{ position:absolute; top:14px; left:50%; transform:translateX(-50%); pointer-events:none; }
.cr-hl{ position:absolute; border-radius:4px; pointer-events:auto; cursor:pointer; transition:background .2s; }
.cr-hl-red{ background:rgba(192,57,43,.16); border:1.5px solid rgba(192,57,43,.6); }
.cr-hl-orange{ background:rgba(199,106,26,.15); border:1.5px solid rgba(199,106,26,.6); }
.cr-hl-yellow{ background:rgba(151,123,20,.14); border:1.5px solid rgba(151,123,20,.55); }
.cr-hl:hover{ filter:brightness(.96); }
.cr-hl.flash{ animation:crFlash 1.4s ease; }
@keyframes crFlash{ 0%,100%{ box-shadow:0 0 0 0 rgba(199,106,26,0); } 25%{ box-shadow:0 0 0 5px rgba(199,106,26,.5); } 60%{ box-shadow:0 0 0 3px rgba(199,106,26,.25); } }
/* レビュー結果として指摘ハイライトがフェード/ポップで出現 */
.cr-hl-appear{ opacity:0; transform:scale(.82); animation:crHlPop .5s cubic-bezier(.2,.8,.3,1.2) forwards; }
@keyframes crHlPop{ 0%{ opacity:0; transform:scale(.82); } 60%{ opacity:1; transform:scale(1.05); } 100%{ opacity:1; transform:scale(1); } }
/* 実行待ちプレースホルダ */
.cr-placeholder{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:320px; padding:30px 24px; border:1px dashed #d6dde4; border-radius:12px; background:#fafbfc; }
.cr-ph-ic{ color:#b9c7d6; margin-bottom:14px; } .cr-ph-ic svg{ width:46px; height:46px; }
.cr-ph-t{ font-size:15px; font-weight:800; color:#1b2730; }
.cr-ph-s{ font-size:12.5px; color:#6b7884; line-height:1.8; max-width:360px; margin:8px 0 18px; }
.cr-ph-s b{ color:#1b3a5b; }
.cr-hl-no{ position:absolute; top:-11px; left:-11px; width:22px; height:22px; border-radius:50%; color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; box-shadow:0 1px 4px rgba(0,0,0,.3); }
.cr-pdf-fallback{ padding:40px 20px; text-align:center; color:#7b8794; font-size:13px; line-height:1.8; }
.cr-marker-red{ background:#c0392b; } .cr-marker-orange{ background:#c76a1a; } .cr-marker-yellow{ background:#b8860b; }
/* 右ペイン：指摘リスト */
.cr-right{ min-width:0; }
.cr-issues-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.cr-issues-sum{ font-size:13px; color:#46586a; } .cr-issues-sum b{ font-size:18px; color:#1b2730; margin-right:2px; }
.cr-issues-chips{ display:flex; gap:6px; flex:1; flex-wrap:wrap; }
.cr-issues-head .btn-sm{ display:inline-flex; align-items:center; gap:5px; } .cr-issues-head .btn-sm svg{ width:13px; height:13px; }
.cr-sev{ font-size:11px; font-weight:800; padding:3px 9px; border-radius:11px; white-space:nowrap; }
.cr-sev.sev-red{ background:#fdecec; color:#c0392b; } .cr-sev.sev-orange{ background:#fdf0e4; color:#b4690e; } .cr-sev.sev-yellow{ background:#fbf6e0; color:#977b14; }
.cr-issue-list{ display:flex; flex-direction:column; gap:11px; }
.cr-issue{ border:1px solid #e2e6ec; border-left:4px solid #c8d0d8; border-radius:11px; background:#fff; padding:13px 15px; cursor:pointer; transition:box-shadow .15s, border-color .15s, transform .08s; }
.cr-issue:hover{ box-shadow:0 5px 18px rgba(27,58,91,.12); transform:translateY(-1px); }
.cr-issue:focus-visible{ outline:2px solid #1b3a5b; outline-offset:2px; }
.cr-issue-red{ border-left-color:#c0392b; } .cr-issue-orange{ border-left-color:#c76a1a; } .cr-issue-yellow{ border-left-color:#b8860b; }
.cr-issue.pulse{ animation:crPulse 1.2s ease; }
@keyframes crPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(27,58,91,0); } 35%{ box-shadow:0 0 0 4px rgba(27,58,91,.22); } }
.cr-issue-top{ display:flex; align-items:center; gap:8px; }
.cr-marker{ width:22px; height:22px; flex:none; border-radius:50%; color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.cr-issue-title{ font-size:13.5px; font-weight:700; color:#1b2730; flex:1; line-height:1.4; }
.cr-clause{ font-size:11.5px; color:#5d6b78; background:#f6f8fa; border-radius:7px; padding:8px 11px; margin-top:9px; line-height:1.65; }
.cr-ai{ margin-top:10px; } .cr-act{ margin-top:9px; }
.cr-ai-h, .cr-act-h{ display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:800; color:#a05a14; }
.cr-act-h{ color:#1b3a5b; }
.cr-ai-ic{ color:#c76a1a; } .cr-ai-ic svg{ width:13px; height:13px; }
.cr-ai-b, .cr-act-b{ font-size:12.5px; line-height:1.8; color:#2b333b; margin-top:3px; }
@media (max-width:920px){ .cr-legal{ grid-template-columns:1fr; } .cr-left{ position:static; } }
.reg-addr-input{
  flex:1; min-width:280px; border:1px solid var(--line-2, #d6dbe3); border-radius:7px;
  padding:9px 12px; font-size:13px; background:#fff; color:var(--ink, #1f2733);
}
.reg-step{ border:1px solid var(--line, #e6e9ee); border-radius:10px; background:#fff; padding:14px 16px; margin-bottom:12px; box-shadow:var(--shadow); }
.reg-step-head{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--nt-text, #2b2b2b); }
.reg-step-head b{ flex:1; }
.reg-step-no{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:#1b3a5b; color:#fff; font-size:12px; font-weight:700; flex:0 0 auto; }
.reg-step-body{ font-size:13px; line-height:1.7; color:var(--nt-text-2, #4a4a4a); margin-top:9px; }
.reg-roadmap{ margin-top:8px; padding:10px 12px; background:#fdf6e9; border:1px solid #f0dca0; border-radius:7px; font-size:12px; line-height:1.65; color:#8a5a00; }
.reg-roadmap b{ color:#6e4700; }
.reg-before-after{ display:flex; align-items:stretch; gap:10px; margin-top:10px; flex-wrap:wrap; }
.reg-ba-col{ flex:1; min-width:220px; border:1px solid var(--line, #e6e9ee); border-radius:8px; padding:11px 13px; font-size:12px; line-height:1.65; }
.reg-ba-before{ background:#faf7f2; border-color:#e7ddc9; color:#6b5a3a; }
.reg-ba-after{ background:#f6f8f4; border-color:#d7e3cf; color:#3a5a33; }
.reg-ba-lbl{ font-size:10.5px; font-weight:700; letter-spacing:.04em; margin-bottom:5px; }
.reg-ba-arrow{ align-self:center; font-size:20px; color:var(--muted, #6b7280); }
.reg-vision{ margin-top:14px; padding:12px 15px; background:#eef3f8; border:1px solid #cfdcea; border-left:3px solid #1b3a5b; border-radius:8px; font-size:12.5px; line-height:1.7; color:#2b4a66; }
.reg-vision b{ color:#1b3a5b; }
@media (max-width:640px){ .reg-ba-arrow{ transform:rotate(90deg); } }

/* ====================== 手書きOCR（AI-OCR） ====================== */
.ocr-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; align-items:start; }
.ocr-col{ border:1px solid var(--line, #e6e9ee); border-radius:10px; background:#fff; box-shadow:var(--shadow); overflow:hidden; }
.ocr-col-head{ font-size:12px; font-weight:700; color:var(--nt-text-2, #4a4a4a); padding:10px 14px; border-bottom:1px solid var(--line, #e6e9ee); background:#fafbfd; }
.ocr-preview{ padding:12px; }
.ocr-preview img{ width:100%; height:auto; border:1px solid var(--line, #e6e9ee); border-radius:6px; display:block; }
.ocr-cap{ font-size:11.5px; color:var(--muted, #6b7280); margin-top:7px; }
.ocr-col > #ocr-out{ padding:12px; }
.ocr-empty{ padding:26px 16px; text-align:center; font-size:12.5px; color:var(--muted, #9aa3af); line-height:1.7; }
@media (max-width:820px){ .ocr-grid{ grid-template-columns:1fr; } }

/* ====================== 文書検索 / ブログ / サイドバー折り畳み ====================== */
.ds-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.ds-chip{ border:1px solid var(--line-2, #d6dbe3); background:#fff; color:var(--navy, #1b3a5b); border-radius:16px; padding:6px 13px; font-size:12px; cursor:pointer; }
.ds-chip:hover{ background:#f3f6fb; border-color:#b9c2cf; }
.ds-corpus{ margin-top:12px; font-size:11.5px; color:var(--muted, #6b7280); line-height:1.9; }
.seg-tabs{ display:inline-flex; gap:4px; background:#eef1f6; border-radius:9px; padding:4px; margin:4px 0 14px; }
.seg-tab{ border:0; background:none; padding:8px 18px; border-radius:7px; font-size:13px; font-weight:600; color:var(--muted, #6b7280); cursor:pointer; }
.seg-tab.active{ background:#fff; color:var(--navy, #1b3a5b); box-shadow:0 1px 3px rgba(0,0,0,.08); }
/* アーカイブ折り畳みトグル */
.sb-section-toggle{ display:flex; align-items:center; gap:6px; width:100%; text-align:left; background:none; border:0; cursor:pointer;
  font-size:11px; font-weight:600; letter-spacing:.03em; color:var(--nt-text-3, #8b94a3); text-transform:none;
  padding:14px 14px 4px; margin:0; }
.sb-section-toggle:hover{ color:var(--nt-text, #2b2b2b); }
.sb-section-toggle .sb-caret{ font-size:8px; opacity:.75; width:9px; display:inline-block; }
.sb-collapsible.hidden{ display:none; }

/* ====================== ダッシュボード：機能ランチャー ====================== */
.launch-group{ margin-bottom:18px; }
.launch-group-h{ font-size:12.5px; font-weight:700; color:var(--nt-text-2, #4a4a4a); margin:6px 0 9px; letter-spacing:.02em; }
.launch-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.launch-card{ display:flex; align-items:flex-start; gap:11px; text-align:left; cursor:pointer;
  background:#fff; border:1px solid var(--line, #e6e9ee); border-radius:12px; padding:15px 16px; box-shadow:var(--shadow);
  transition:border-color .12s, box-shadow .12s, transform .06s; }
.launch-card:hover{ border-color:#b9c2cf; box-shadow:0 4px 14px rgba(27,58,91,.10); transform:translateY(-1px); }
.launch-ic{ flex:0 0 auto; width:34px; height:34px; border-radius:9px; background:#eef3f8; color:#1b3a5b; display:flex; align-items:center; justify-content:center; }
.launch-ic svg{ width:19px; height:19px; }
.launch-body{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.launch-body b{ font-size:13.5px; color:var(--nt-text, #2b2b2b); line-height:1.4; }
.launch-body span{ font-size:11.5px; color:var(--muted, #6b7280); line-height:1.55; }
@media (max-width:1000px){ .launch-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .launch-grid{ grid-template-columns:1fr; } }

/* ===== ブログ：記事生成・Markdownプレビュー ===== */
.blog-meta{ border:1px solid #e4e7ec; border-radius:8px; padding:12px 14px; background:#fbfcfd; }
.blog-meta-row{ display:flex; gap:10px; font-size:12.5px; padding:3px 0; align-items:baseline; }
.blog-meta-k{ flex:none; width:148px; color:#7b8794; font-weight:700; }
.blog-meta-v{ color:#27313a; font-weight:600; }
.blog-meta-v.mono{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; color:#1b6f8b; }
.blog-meta-foot{ display:flex; gap:8px; align-items:center; margin-top:8px; padding-top:8px; border-top:1px dashed #e4e7ec; }
.pill-blue{ background:#e7f0fb; color:#1b5fa8; }
/* プレビュー｜Markdown 切替タブ */
.blog-viewtabs{ display:inline-flex; gap:0; margin:14px 0 0; border:1px solid #d6dbe2; border-radius:8px; overflow:hidden; background:#f1f4f8; }
.blog-vtab{ background:none; border:none; padding:7px 18px; font-size:12.5px; font-weight:700; color:#6b7785; cursor:pointer; }
.blog-vtab + .blog-vtab{ border-left:1px solid #d6dbe2; }
.blog-vtab.is-active{ background:#1b3a5b; color:#fff; }
.blog-viewbody{ margin-top:10px; border:1px solid #e4e7ec; border-radius:8px; overflow:hidden; background:#fff; }
.blog-vpane[hidden]{ display:none; }
.blog-src{ margin:0; padding:14px 16px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; line-height:1.7; color:#3a4450; white-space:pre-wrap; word-break:break-word; max-height:760px; overflow:auto; background:#fbfbfa; }
.blog-preview{ padding:0 0 18px; max-height:780px; overflow:auto; color:#2b333b; font-size:14.5px; line-height:1.9; }
.blog-preview > h1, .blog-preview > h2, .blog-preview > h3, .blog-preview > p, .blog-preview > ul, .blog-preview > ol, .blog-preview > blockquote, .blog-preview > hr{ margin-left:24px; margin-right:24px; }
/* 16:9 ヒーロー画像 */
.blog-hero{ margin:0 0 6px; width:100%; aspect-ratio:16/9; overflow:hidden; position:relative; background:#eef2f5; }
.blog-hero img{ width:100%; height:100%; object-fit:cover; display:block; }
.blog-hero figcaption{ position:absolute; left:0; bottom:0; background:rgba(20,30,45,.62); color:#fff; font-size:11px; padding:3px 10px; border-radius:0 6px 0 0; }
.blog-preview h1{ font-size:23px; font-weight:800; color:#1b2d40; line-height:1.3; margin:16px 24px 12px; padding-bottom:8px; border-bottom:2px solid #1b3a5b; }
.blog-preview h2{ font-size:18px; font-weight:800; color:#1b3a5b; margin:22px 24px 10px; padding-left:11px; border-left:5px solid #2a6f7f; }
.blog-preview h3{ font-size:15.5px; font-weight:700; color:#27313a; margin:16px 24px 8px; }
.blog-preview p{ margin:10px 24px; }
.blog-preview ul, .blog-preview ol{ margin:10px 24px; padding-left:24px; }
.blog-preview li{ margin:5px 0; }
.blog-preview strong{ color:#1b3a5b; font-weight:700; }
.blog-preview blockquote{ margin:12px 24px; padding:10px 14px; background:#f3f7f9; border-left:4px solid #9bb6c4; color:#4a5560; font-size:13px; border-radius:0 6px 6px 0; }
.blog-preview p img{ width:100%; max-width:100%; height:auto; display:block; border-radius:8px; margin:6px 0; box-shadow:0 2px 10px rgba(0,0,0,.10); }
.blog-preview hr{ border:none; border-top:1px solid #e4e7ec; margin:18px 24px; }
@media (max-width:980px){ .blog-meta-k{ width:120px; } }

/* ===== 顧客起点マッチング：ビジュアルランキング ===== */
.mrank-head{ display:flex; align-items:baseline; gap:12px; margin:16px 0 10px; flex-wrap:wrap; }
.mrank-head b{ font-size:15px; color:#1b3a5b; }
.mrank-head-note{ font-size:11.5px; color:#7b8794; }
/* ====================== パーソナライズ物件レコメンド ====================== */
.btn-lg{ padding:12px 22px; font-size:14.5px; border-radius:9px; display:inline-flex; align-items:center; gap:8px; }
.btn-lg svg{ width:17px; height:17px; }
.reco-form{ border:1px solid #e4e7ec; border-radius:14px; background:linear-gradient(180deg,#f9fbfd,#ffffff); padding:18px 20px; box-shadow:0 2px 10px rgba(27,58,91,.05); }
.reco-form-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px 18px; }
.reco-field{ display:flex; flex-direction:column; gap:6px; font-size:12px; color:#5a6b7a; font-weight:600; }
.reco-field span b{ color:#1b3a5b; }
.reco-field select, .reco-field input{ font-family:inherit; font-size:13.5px; color:#27313a; padding:9px 11px; border:1px solid #d6dde4; border-radius:8px; background:#fff; transition:border-color .15s, box-shadow .15s; }
.reco-field select:focus, .reco-field input:focus{ outline:none; border-color:#1b3a5b; box-shadow:0 0 0 3px rgba(27,58,91,.12); }
.reco-field-wide{ margin-top:16px; }
.reco-chips{ display:flex; flex-wrap:wrap; gap:9px; }
.reco-chip{ position:relative; display:inline-flex; align-items:center; }
.reco-chip input{ position:absolute; opacity:0; width:0; height:0; }
.reco-chip span{ display:inline-block; padding:8px 15px; border:1.5px solid #d6dde4; border-radius:20px; font-size:12.5px; font-weight:600; color:#5a6b7a; background:#fff; cursor:pointer; transition:.15s; }
.reco-chip span:hover{ border-color:#b9c7d6; }
.reco-chip input:checked + span{ background:#1b3a5b; border-color:#1b3a5b; color:#fff; box-shadow:0 2px 8px rgba(27,58,91,.25); }
.reco-chip input:focus-visible + span{ outline:2px solid #c76a1a; outline-offset:2px; }
.reco-form-foot{ display:flex; align-items:center; gap:16px; margin-top:18px; flex-wrap:wrap; }
.reco-form-note{ font-size:11.5px; color:#8895a2; line-height:1.6; flex:1; min-width:220px; }
.reco-profile{ border:1px solid #e0e6ec; border-left:3px solid #c76a1a; border-radius:10px; background:#fbf8f3; padding:12px 16px; margin-bottom:14px; }
.reco-profile-h{ font-size:12px; font-weight:800; color:#a05a14; letter-spacing:.02em; }
.reco-profile-b{ font-size:12.5px; color:#3a4754; line-height:1.7; margin-top:4px; }
.reco-head{ display:flex; align-items:baseline; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.reco-head b{ font-size:16px; color:#1b2730; }
.reco-head-note{ font-size:11.5px; color:#8895a2; }
.reco-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.reco-card{ display:flex; flex-direction:column; border:1px solid #e4e7ec; border-radius:14px; background:#fff; overflow:hidden; cursor:pointer; transition:box-shadow .16s, border-color .16s, transform .1s; }
.reco-card:hover{ border-color:#b9c7d6; box-shadow:0 8px 24px rgba(27,58,91,.14); transform:translateY(-2px); }
.reco-card:focus-visible{ outline:2px solid #1b3a5b; outline-offset:2px; }
.reco-card.reco-top{ grid-column:1 / -1; flex-direction:row; border:2px solid #c76a1a; box-shadow:0 6px 22px rgba(199,106,26,.16); }
.reco-img{ position:relative; aspect-ratio:16/10; background:#eef2f5; overflow:hidden; }
.reco-card.reco-top .reco-img{ flex:0 0 46%; aspect-ratio:16/11; }
.reco-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.reco-card:hover .reco-img img{ transform:scale(1.04); }
.reco-img-fallback{ background:linear-gradient(135deg,#dde6ee,#eef2f5); }
.reco-rank{ position:absolute; top:10px; left:10px; background:rgba(27,58,91,.92); color:#fff; font-size:11.5px; font-weight:800; padding:4px 11px; border-radius:14px; box-shadow:0 1px 5px rgba(0,0,0,.2); }
.reco-rank.is-1{ background:linear-gradient(135deg,#c76a1a,#a8540f); }
.reco-score-chip{ position:absolute; top:10px; right:10px; color:#fff; font-size:14px; font-weight:900; padding:4px 10px; border-radius:12px; box-shadow:0 1px 5px rgba(0,0,0,.2); }
.reco-score-chip small{ font-size:9px; font-weight:700; margin-left:1px; }
.reco-score-chip.tier-high{ background:#178d52; } .reco-score-chip.tier-mid{ background:#3a7bbf; } .reco-score-chip.tier-low{ background:#8895a2; }
.reco-img-tag{ position:absolute; bottom:8px; right:8px; background:rgba(0,0,0,.45); color:#fff; font-size:9.5px; padding:2px 7px; border-radius:6px; letter-spacing:.02em; }
.reco-body{ padding:13px 15px 4px; display:flex; flex-direction:column; gap:7px; flex:1; }
.reco-card.reco-top .reco-body{ padding:18px 20px; justify-content:center; }
.reco-title{ font-size:14.5px; font-weight:700; color:#1b2730; line-height:1.4; }
.reco-cat{ display:inline-block; margin-left:8px; font-size:10.5px; font-weight:600; color:#5d738a; background:#eef2f6; padding:2px 8px; border-radius:10px; vertical-align:middle; }
.reco-spec{ font-size:12.5px; color:#4a5763; }
.reco-bar-row{ display:flex; align-items:center; gap:8px; }
.reco-bar{ flex:1; height:6px; background:#eef1f5; border-radius:4px; overflow:hidden; }
.reco-bar i{ display:block; height:100%; background:linear-gradient(90deg,#1b3a5b,#3a7bbf); border-radius:4px; }
.reco-bar-lbl{ font-size:10.5px; color:#8895a2; font-weight:700; white-space:nowrap; }
.reco-badges{ display:flex; flex-wrap:wrap; gap:5px; }
.reco-reason{ display:flex; gap:7px; align-items:flex-start; font-size:12px; line-height:1.6; color:#3a4754; background:#fbf8f3; border-radius:8px; padding:9px 11px; margin-top:2px; }
.reco-reason-ic{ flex:none; color:#c76a1a; margin-top:1px; } .reco-reason-ic svg{ width:14px; height:14px; }
.reco-open{ padding:11px 15px; border-top:1px solid #f0f2f5; font-size:12px; font-weight:700; color:#1b3a5b; text-align:right; }
.reco-card.reco-top .reco-open{ display:none; }
.reco-empty{ display:flex; gap:14px; align-items:center; padding:24px; border:1px dashed #d6dde4; border-radius:12px; background:#fafbfc; color:#5a6b7a; }
.reco-empty-ic{ color:#b9c7d6; } .reco-empty-ic svg{ width:34px; height:34px; }
.reco-empty-s{ font-size:12px; color:#8895a2; margin-top:4px; }
/* レコメンド：サイドピーク内ギャラリー＆理由 */
.reco-gal{ margin-bottom:14px; }
.reco-gal-main{ position:relative; border-radius:12px; overflow:hidden; background:#eef2f5; aspect-ratio:16/10; }
.reco-gal-main img{ width:100%; height:100%; object-fit:cover; display:block; }
.reco-gal-thumbs{ display:flex; gap:8px; margin-top:8px; }
.reco-gal-thumb{ flex:1; border:2px solid transparent; border-radius:8px; overflow:hidden; padding:0; background:none; cursor:pointer; aspect-ratio:4/3; transition:border-color .15s; }
.reco-gal-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.reco-gal-thumb:hover{ border-color:#b9c7d6; }
.reco-gal-thumb.is-active{ border-color:#c76a1a; }
.reco-reason-card{ font-size:13px; line-height:1.85; color:#2b3640; background:#fbf8f3; border:1px solid #f0e4d2; border-left:3px solid #c76a1a; border-radius:10px; padding:13px 16px; }
.reco-reason-card p{ margin:0 0 8px; } .reco-reason-card p:last-child{ margin:0; }
@media (max-width:1100px){ .reco-form-grid{ grid-template-columns:repeat(2,1fr); } .reco-grid{ grid-template-columns:repeat(2,1fr); } .reco-card.reco-top{ flex-direction:column; } .reco-card.reco-top .reco-img{ flex:none; } .reco-card.reco-top .reco-open{ display:block; } }
@media (max-width:680px){ .reco-form-grid{ grid-template-columns:1fr; } .reco-grid{ grid-template-columns:1fr; } }

.mrank{ display:flex; flex-direction:column; gap:10px; }
.mrank-card{ display:grid; grid-template-columns:54px 92px 1fr 132px auto; align-items:center; gap:14px; padding:12px 14px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; cursor:pointer; transition:box-shadow .15s, border-color .15s, transform .08s; }
.mrank-card:hover{ border-color:#b9c7d6; box-shadow:0 4px 16px rgba(27,58,91,.12); transform:translateY(-1px); }
.mrank-card:focus-visible{ outline:2px solid #1b3a5b; outline-offset:2px; }
.mrank-card.rank-top{ border:2px solid #1b3a5b; background:linear-gradient(180deg,#f7fafd,#ffffff); padding:16px 16px; box-shadow:0 3px 14px rgba(27,58,91,.10); }
.mrank-no{ width:46px; height:46px; border-radius:50%; background:#eef2f6; color:#5d6b78; font-size:22px; font-weight:900; display:flex; align-items:center; justify-content:center; justify-self:center; }
.mrank-no.is-1{ width:54px; height:54px; font-size:27px; background:linear-gradient(155deg,#1b3a5b,#13294a); color:#fff; box-shadow:0 2px 8px rgba(19,41,74,.35); }
.mrank-card:nth-child(2) .mrank-no{ background:#e7eef5; color:#3a5a78; }
.mrank-thumb{ width:92px; height:70px; border-radius:8px; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.mrank-card.rank-top .mrank-thumb{ height:80px; }
.thumb-mansion{ background:linear-gradient(135deg,#e8eef4,#d6e0ea); }
.thumb-house{ background:linear-gradient(135deg,#eaf1ea,#d8e6d8); }
.thumb-land{ background:linear-gradient(135deg,#f1efe6,#e4e0cf); }
.thumb-rent{ background:linear-gradient(135deg,#eaecf4,#dadcec); }
.mrank-thumb-ic{ width:30px; height:30px; color:#5f7388; opacity:.85; } .mrank-thumb-ic svg{ width:30px; height:30px; }
.mrank-thumb-tag{ position:absolute; left:0; bottom:0; background:rgba(20,30,45,.55); color:#fff; font-size:9px; padding:1px 6px; border-radius:0 5px 0 0; }
.mrank-main{ min-width:0; }
.mrank-title{ font-size:15px; font-weight:800; color:#1f2d3a; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mrank-card.rank-top .mrank-title{ font-size:17px; }
.mrank-cat{ font-size:10.5px; font-weight:700; color:#5d6b78; background:#eef2f6; padding:2px 8px; border-radius:10px; }
.mrank-spec{ font-size:12.5px; color:#46535f; margin-top:4px; }
.mrank-badges{ display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.rb{ font-size:10.5px; font-weight:700; padding:2px 8px; border-radius:10px; }
.rb-hit{ background:#e3f4e8; color:#1f7a3d; }
.rb-miss{ background:#fdeede; color:#a86a14; }
.mrank-hidden{ font-size:11.5px; color:#5d6975; margin-top:7px; line-height:1.55; }
.mrank-hidden b{ color:#1b3a5b; }
.mrank-score{ text-align:center; }
.ms-pct{ font-size:26px; font-weight:900; line-height:1; color:#1b3a5b; }
.ms-pct small{ font-size:13px; font-weight:800; margin-left:1px; }
.mrank-score.tier-high .ms-pct{ color:#1f7a3d; } .mrank-score.tier-mid .ms-pct{ color:#1b6f8b; } .mrank-score.tier-low .ms-pct{ color:#a86a14; }
.ms-bar{ height:7px; border-radius:5px; background:#eaeef2; overflow:hidden; margin:5px 0 3px; }
.ms-bar i{ display:block; height:100%; border-radius:5px; background:linear-gradient(90deg,#2a6f7f,#1b3a5b); }
.mrank-score.tier-high .ms-bar i{ background:linear-gradient(90deg,#3a9d5a,#1f7a3d); }
.mrank-score.tier-low .ms-bar i{ background:linear-gradient(90deg,#d6a24a,#a86a14); }
.ms-lbl{ font-size:10px; color:#8a97a4; font-weight:700; }
.mrank-open{ font-size:12px; font-weight:800; color:#1b3a5b; white-space:nowrap; }
.mrank-aifull{ margin-top:14px; border:1px solid #e4e7ec; border-radius:10px; background:#fbfcfd; padding:10px 14px; }
.mrank-aifull summary{ cursor:pointer; font-size:12.5px; font-weight:700; color:#1b3a5b; }
.mrank-aifull pre{ margin:10px 0; font-size:12px; line-height:1.7; color:#3a4450; }
/* peek内：この顧客へのマッチ */
.peek-match-top{ display:flex; align-items:center; gap:12px; }
.peek-match-score{ text-align:center; flex:none; }
.peek-match-score .ms-pct{ font-size:30px; } .peek-match-score .ms-lbl{ font-size:10px; }
.peek-match-bar{ flex:1; height:9px; border-radius:5px; background:#eaeef2; overflow:hidden; }
.peek-match-bar i{ display:block; height:100%; background:linear-gradient(90deg,#2a6f7f,#1b3a5b); border-radius:5px; }
@media (max-width:760px){ .mrank-card{ grid-template-columns:42px 1fr 108px; } .mrank-thumb, .mrank-open{ display:none; } }

/* ===================== ビジュアル成果物 共通（優先1） ===================== */
@keyframes aiFadeUp{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }
.ai-anim{ animation:aiFadeUp .42s cubic-bezier(.2,.7,.3,1); }
.result-head{ display:flex; align-items:baseline; gap:10px; margin:14px 0 8px; }
.result-head b{ font-size:15px; color:#1b3a5b; }
.result-foot-note{ font-size:11px; color:#8a8f98; margin-top:10px; line-height:1.6; padding:8px 12px; background:#f7f8fa; border-radius:8px; }
.result-actions{ margin-top:10px; display:flex; align-items:center; }
.kv-list{ display:flex; flex-direction:column; }
.kv{ display:grid; grid-template-columns:148px 1fr; gap:12px; padding:7px 0; border-bottom:1px dashed #ebeef2; font-size:13px; }
.kv:last-child{ border-bottom:none; }
.kv-k{ color:#7b8794; font-weight:700; }
.kv-v{ color:#27313a; font-weight:600; }
.kv-v.kv-warn{ color:#a86a14; }
.kv-note{ font-size:12.5px; color:#46535f; padding:5px 0; line-height:1.6; }

/* 契約書レビュー：重大度カード */
.cr-result{ display:flex; flex-direction:column; gap:14px; }
.sev-summary{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:14px 16px; border:1px solid #e4e7ec; border-radius:12px; background:linear-gradient(180deg,#fbfcfd,#fff); }
.sev-sum-total{ display:flex; align-items:baseline; gap:6px; }
.sev-sum-total b{ font-size:30px; font-weight:900; color:#1b3a5b; }
.sev-sum-total span{ font-size:12px; color:#7b8794; font-weight:700; }
.sev-sum-chips{ display:flex; gap:8px; flex-wrap:wrap; }
.sev-chip{ font-size:12px; font-weight:700; padding:4px 11px; border-radius:14px; }
.sev-chip.sev-red{ background:#fdecec; color:#c0392b; } .sev-chip.sev-orange{ background:#fdf0e4; color:#b4690e; }
.sev-chip.sev-yellow{ background:#fbf6e0; color:#977b14; } .sev-chip.sev-gray{ background:#eef0f3; color:#5d6b78; }
.sev-group{ border:1px solid #e4e7ec; border-radius:12px; overflow:hidden; }
.sev-group-head{ display:flex; align-items:center; gap:9px; padding:10px 14px; font-size:13.5px; font-weight:800; color:#fff; }
.sev-group-head.sev-red{ background:#c0392b; } .sev-group-head.sev-orange{ background:#cf7a1e; }
.sev-group-head.sev-yellow{ background:#b89a2a; } .sev-group-head.sev-gray{ background:#5d6b78; }
.sev-dot{ width:9px; height:9px; border-radius:50%; background:#fff; opacity:.85; }
.sev-count{ margin-left:auto; background:rgba(255,255,255,.25); border-radius:11px; padding:1px 9px; font-size:12px; }
.finding{ padding:11px 14px; border-bottom:1px solid #eef1f4; border-left:4px solid transparent; }
.finding:last-child{ border-bottom:none; }
.finding.sev-red{ border-left-color:#e07a6f; } .finding.sev-orange{ border-left-color:#e3a767; }
.finding.sev-yellow{ border-left-color:#d8c46a; } .finding.sev-gray{ border-left-color:#aeb8c2; }
.finding-title{ font-size:13.5px; font-weight:700; color:#27313a; line-height:1.55; }
.finding-f{ display:grid; grid-template-columns:64px 1fr; gap:8px; margin-top:5px; font-size:12px; }
.finding-fl{ color:#8a97a4; font-weight:700; } .finding-fv{ color:#46535f; line-height:1.55; }
.finding-empty{ padding:12px 14px; font-size:12.5px; color:#1f7a3d; }

/* 登記データ化：構造化カード */
.reg-cards2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.reg-card2{ border:1px solid #e4e7ec; border-radius:12px; overflow:hidden; background:#fff; }
.reg-card2-note{ grid-column:1 / -1; background:#fffaf0; border-color:#f0e3c8; }
.reg-card2-head{ display:flex; align-items:center; gap:9px; padding:9px 13px; background:#f4f6f8; font-size:13px; font-weight:800; color:#1b3a5b; border-bottom:1px solid #e9edf1; }
.reg-card2-note .reg-card2-head{ background:#fdf3df; border-bottom-color:#f0e3c8; }
.reg-card2-head svg{ width:18px; height:18px; color:#1b3a5b; }
.reg-card2-head .pill{ margin-left:auto; }
.reg-card2 .kv-list{ padding:6px 14px 10px; }
.reg-note-list{ margin:0; padding:10px 16px 12px 30px; }
.reg-note-list li{ font-size:12.5px; color:#5a4a22; line-height:1.7; margin:3px 0; }

/* OCR：フィールドカード */
.ocr-cards{ display:flex; flex-direction:column; gap:12px; }
.ocr-doctype{ display:flex; align-items:center; gap:11px; padding:11px 14px; border-radius:12px; background:linear-gradient(135deg,#1b3a5b,#13294a); color:#fff; }
.ocr-doctype span{ width:30px; height:30px; flex:none; display:flex; } .ocr-doctype svg{ width:30px; height:30px; color:#fff; }
.ocr-doctype small{ font-size:10.5px; opacity:.8; display:block; } .ocr-doctype b{ font-size:15px; }
.field-group{ border:1px solid #e4e7ec; border-radius:12px; overflow:hidden; }
.fg-head{ display:flex; align-items:center; gap:8px; padding:8px 14px; background:#f4f6f8; font-size:12.5px; font-weight:800; color:#34495e; border-bottom:1px solid #e9edf1; }
.field-group .kv-list{ padding:6px 14px 10px; }
.fg-note{ background:#fffaf0; border-color:#f0e3c8; } .fg-note .fg-head{ background:#fdf3df; border-bottom-color:#f0e3c8; }

/* 提案メール：メールクライアントUI */
.mail-ui{ border:1px solid #dfe4ea; border-radius:14px; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.08); background:#fff; max-width:680px; }
.mail-toolbar{ display:flex; align-items:center; gap:7px; padding:9px 14px; background:#f1f3f6; border-bottom:1px solid #e4e7ec; }
.mail-dot{ width:11px; height:11px; border-radius:50%; } .mail-dot.r{ background:#ec6a5e; } .mail-dot.y{ background:#f4be4f; } .mail-dot.g{ background:#61c554; }
.mail-toolbar-t{ font-size:12px; color:#7b8794; font-weight:700; margin-left:6px; }
.mail-head{ padding:6px 16px; }
.mail-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #eef1f4; font-size:13px; }
.mail-k{ width:48px; flex:none; color:#8a97a4; font-weight:700; font-size:12px; }
.mail-to{ color:#27313a; } .mail-to small{ color:#8a97a4; }
.mail-row-subj b{ font-size:14.5px; color:#1f2d3a; }
.mail-body{ padding:16px 18px; font-size:13.5px; line-height:1.9; color:#2b333b; }
.mail-body p{ margin:0 0 12px; }
.mail-props{ margin:14px 0 4px; border:1px solid #e7ebf0; border-radius:10px; padding:10px 12px; background:#fafbfc; }
.mail-props-lbl{ font-size:11.5px; font-weight:800; color:#1b3a5b; margin-bottom:8px; }
.mailprop{ display:flex; align-items:center; gap:11px; padding:9px 4px; border-bottom:1px dashed #e7ebf0; }
.mailprop:last-child{ border-bottom:none; }
.mailprop-ic{ width:38px; height:38px; flex:none; border-radius:8px; background:#eef2f6; display:flex; align-items:center; justify-content:center; color:#5d738a; } .mailprop-ic svg{ width:20px; height:20px; }
.mailprop-main{ flex:1; min-width:0; } .mailprop-t{ font-size:13px; font-weight:700; color:#27313a; } .mailprop-m{ font-size:11.5px; color:#5d6b78; margin-top:2px; }
.mail-actions{ display:flex; align-items:center; gap:10px; padding:12px 16px; border-top:1px solid #eef1f4; background:#fafbfc; }
.mail-sent{ font-size:12px; }

/* 活動報告書：レポートビュー */
.rep-doc{ border:1px solid #dfe4ea; border-radius:12px; background:#fff; box-shadow:0 4px 20px rgba(0,0,0,.07); overflow:hidden; max-width:760px; }
.rep-letterhead{ display:flex; justify-content:space-between; align-items:flex-start; padding:16px 20px; border-bottom:3px solid #1b3a5b; }
.rep-lh-co{ font-size:20px; font-weight:900; color:#16263a; letter-spacing:.04em; }
.rep-lh-sub{ font-size:12.5px; color:#5d6b78; margin-top:3px; }
.rep-lh-right{ text-align:right; } .rep-lh-date{ font-size:11.5px; color:#7b8794; margin-top:5px; }
.rep-meta{ display:flex; gap:24px; flex-wrap:wrap; padding:11px 20px; background:#fafbfc; border-bottom:1px solid #eef1f4; font-size:12px; }
.rep-meta span{ color:#8a97a4; margin-right:6px; } .rep-meta b{ color:#27313a; }
.rep-metrics{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; padding:16px 20px; }
.rep-metric{ text-align:center; border:1px solid #e7ebf0; border-radius:10px; padding:12px 6px; background:#fbfcfe; }
.rep-metric-v{ font-size:24px; font-weight:900; color:#1b3a5b; line-height:1; } .rep-metric-v small{ font-size:12px; font-weight:800; margin-left:1px; }
.rep-metric-l{ font-size:11px; color:#7b8794; font-weight:700; margin-top:5px; }
.rep-chart-wrap{ padding:4px 20px 16px; }
.rep-chart-head{ font-size:12px; font-weight:800; color:#34495e; margin-bottom:6px; }
.rep-chart{ height:150px; }
.rep-body{ padding:6px 22px 18px; font-size:13.5px; line-height:1.95; color:#2b333b; border-top:1px solid #eef1f4; }
.rep-body p{ margin:12px 0; }
/* AI本文中のMarkdown表 → 整ったHTMLテーブル */
.md-tblwrap{ margin:14px 0; overflow-x:auto; }
.md-tbl{ width:100%; border-collapse:collapse; font-size:13px; background:#fff; border:1px solid #e2e6ec; border-radius:8px; overflow:hidden; }
.md-tbl th, .md-tbl td{ padding:9px 13px; border-bottom:1px solid #eef1f4; text-align:left; line-height:1.6; vertical-align:top; }
.md-tbl thead th{ background:#f3f6f9; color:#1b3a5b; font-weight:700; font-size:12px; letter-spacing:.02em; border-bottom:1.5px solid #dde4ec; }
.md-tbl td:not(:first-child){ text-align:right; font-variant-numeric:tabular-nums; }
.md-tbl tbody tr:last-child td{ border-bottom:none; }
.md-tbl tbody tr:nth-child(even){ background:#fafbfc; }
.hk-prose .md-tbl{ font-size:12.5px; }
.rep-foot{ padding:11px 20px; background:#fafbfc; border-top:1px solid #eef1f4; font-size:10.5px; color:#8a8f98; line-height:1.6; }
@media (max-width:760px){ .reg-cards2{ grid-template-columns:1fr; } .rep-metrics{ grid-template-columns:repeat(3,1fr); } }

/* ===================== 業務状況報告書（正式様式 帳票） ===================== */
.hk-formal{ border:1px solid #d6dde4; border-top:5px solid #1b3a5b; border-radius:6px; background:#fff; box-shadow:0 4px 22px rgba(0,0,0,.08); max-width:820px; padding:30px 38px 26px; margin:0 auto; }
.hk-doc-title{ text-align:center; font-size:23px; font-weight:900; letter-spacing:.32em; color:#16263a; padding-left:.32em; }
.hk-doc-sub{ text-align:center; font-size:12px; color:#6b7884; margin-top:5px; letter-spacing:.04em; }
.hk-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-top:24px; flex-wrap:wrap; }
.hk-head-to{ flex:1; min-width:230px; }
.hk-to-name{ font-size:16px; font-weight:800; color:#1b2730; border-bottom:1px solid #c8d0d8; padding-bottom:5px; display:inline-block; }
.hk-to-note{ font-size:12px; color:#5a6b7a; margin-top:9px; line-height:1.7; }
.hk-head-from{ text-align:right; font-size:12px; color:#3a4754; line-height:1.85; }
.hk-from-date{ color:#7b8794; margin-bottom:3px; }
.hk-from-co{ font-size:15px; font-weight:800; color:#16263a; }
.hk-from-line{ font-size:11.5px; color:#5a6b7a; }
.hk-period{ display:flex; align-items:center; gap:10px; margin-top:18px; padding:9px 14px; background:#f4f7fa; border:1px solid #e2e8ee; border-radius:7px; font-size:12.5px; }
.hk-period span{ color:#8a97a4; font-weight:700; } .hk-period b{ color:#1b3a5b; }
.hk-sect{ margin-top:20px; }
.hk-sect-h{ display:flex; align-items:center; gap:9px; font-size:14px; font-weight:800; color:#16263a; padding-bottom:7px; border-bottom:2px solid #1b3a5b; }
.hk-sect-no{ width:21px; height:21px; flex:none; background:#1b3a5b; color:#fff; border-radius:5px; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.hk-sect-b{ padding-top:11px; }
.hk-tbl{ width:100%; border-collapse:collapse; font-size:12.5px; }
.hk-tbl th, .hk-tbl td{ border:1px solid #e2e8ee; padding:8px 12px; text-align:left; vertical-align:top; line-height:1.7; }
.hk-tbl th{ width:34%; background:#f6f8fa; color:#46586a; font-weight:700; white-space:nowrap; }
.hk-tbl td{ color:#27313a; }
.hk-tbl-list th{ width:auto; background:#eef3f7; text-align:center; }
.hk-tbl-list td{ text-align:center; }
.hk-next{ font-weight:900; color:#1b3a5b; background:#fff3d9; padding:1px 8px; border-radius:5px; border:1px solid #ecd9a8; }
.hk-basis{ font-size:11.5px; color:#5a6b7a; }
.hk-metrics{ padding:0 0 6px !important; grid-template-columns:repeat(5,1fr) !important; }
.hk-metrics .rep-metric{ padding:9px 4px; } .hk-metrics .rep-metric-v{ font-size:19px; }
.hk-media-line{ font-size:12.5px; color:#3a4754; margin-top:4px; } .hk-media-line b{ color:#1b3a5b; }
.hk-prose{ font-size:13px; line-height:1.95; color:#2b333b; margin-top:8px; }
.hk-prose p{ margin:8px 0; }
.hk-none{ font-size:12.5px; color:#7b8794; background:#fafbfc; border:1px dashed #d6dde4; border-radius:6px; padding:10px 13px; }
.hk-foot{ margin-top:22px; padding-top:13px; border-top:1px solid #eef1f4; font-size:10.5px; color:#8a8f98; line-height:1.7; }
@media (max-width:680px){ .hk-formal{ padding:20px 18px; } .hk-metrics{ grid-template-columns:repeat(3,1fr) !important; } .hk-tbl th{ width:40%; } }

/* ===================== 優先2 ビジュアル成果物 ===================== */
/* FAQ / マニュアル アコーディオン */
.faq-wrap{ display:flex; flex-direction:column; gap:14px; }
.faq-cat{ border:1px solid #e4e7ec; border-radius:12px; overflow:hidden; }
.faq-cat-h{ display:flex; align-items:center; gap:8px; padding:9px 14px; background:#34495e; color:#fff; font-size:13px; font-weight:800; }
.faq-cat-n{ margin-left:auto; background:rgba(255,255,255,.22); border-radius:11px; padding:1px 9px; font-size:11.5px; }
.faq-item{ border-top:1px solid #eef1f4; }
.faq-item:first-of-type{ border-top:none; }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px; padding:12px 14px; font-size:13.5px; font-weight:700; color:#27313a; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-q-ic{ width:22px; height:22px; flex:none; border-radius:6px; background:#1b3a5b; color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.faq-q-ic.acc-num{ background:#2a6f7f; }
.faq-q{ flex:1; line-height:1.5; }
.faq-chev{ width:18px; height:18px; flex:none; color:#9aa7b4; transition:transform .2s; } .faq-chev svg{ width:18px; height:18px; }
.faq-item[open] .faq-chev{ transform:rotate(180deg); }
.faq-a{ display:flex; gap:10px; padding:0 14px 14px 14px; }
.faq-a-ic{ width:22px; height:22px; flex:none; border-radius:6px; background:#eef2f6; color:#c0392b; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.faq-a-tx{ font-size:13px; color:#46535f; line-height:1.85; }

/* 文書検索：結果カード */
.ds-results{ display:flex; flex-direction:column; gap:11px; }
.ds-card{ display:flex; gap:13px; padding:13px 15px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; transition:box-shadow .15s, border-color .15s; }
.ds-card:hover{ border-color:#b9c7d6; box-shadow:0 3px 14px rgba(27,58,91,.10); }
.ds-card-ic{ width:38px; height:38px; flex:none; border-radius:9px; background:#eef2f6; color:#1b3a5b; display:flex; align-items:center; justify-content:center; } .ds-card-ic svg{ width:20px; height:20px; }
.ds-card-main{ flex:1; min-width:0; }
.ds-card-top{ display:flex; align-items:center; gap:10px; }
.ds-card-t{ font-size:14px; color:#1f2d3a; font-weight:800; flex:1; }
.ds-rel{ font-size:10.5px; font-weight:800; padding:2px 9px; border-radius:11px; white-space:nowrap; }
.ds-rel-high{ background:#e3f4e8; color:#1f7a3d; } .ds-rel-mid{ background:#e7f0fb; color:#1b5fa8; } .ds-rel-low{ background:#eef0f3; color:#5d6b78; }
.ds-excerpt{ margin:8px 0 0; padding:9px 13px; background:#f7f9fb; border-left:4px solid #1b3a5b; border-radius:0 7px 7px 0; font-size:12.5px; color:#33414d; line-height:1.7; }
.ds-sum{ font-size:12.5px; color:#5d6b78; margin-top:7px; line-height:1.6; }
.ds-full{ margin-top:8px; } .ds-full summary{ cursor:pointer; font-size:11.5px; font-weight:700; color:#1b6f8b; }
.ds-full-body{ margin-top:6px; padding:10px 12px; background:#fbfbfa; border:1px solid #eef1f4; border-radius:8px; font-size:12px; color:#46535f; line-height:1.8; }
.ds-noresult{ display:flex; align-items:center; gap:14px; padding:20px; border:1px dashed #cfd6de; border-radius:12px; background:#fafbfc; }
.ds-noresult-ic{ width:40px; height:40px; color:#9aa7b4; } .ds-noresult-ic svg{ width:40px; height:40px; }
.ds-noresult b{ font-size:14px; color:#46535f; } .ds-noresult-s{ font-size:12px; color:#8a97a4; margin-top:3px; }

/* クレーム：ミニダッシュボード */
.cl-dash{ display:grid; grid-template-columns:1fr 1.2fr; gap:14px; margin-bottom:6px; }
.cl-kpis{ display:grid; grid-template-columns:1fr 1fr; gap:10px; align-content:start; }
.cl-kpi{ border:1px solid #e4e7ec; border-radius:11px; padding:14px; text-align:center; background:#fbfcfe; }
.cl-kpi-v{ font-size:28px; font-weight:900; color:#1b3a5b; line-height:1; }
.cl-kpi-l{ font-size:11px; color:#7b8794; font-weight:700; margin-top:5px; }
.cl-kpi.warn .cl-kpi-v{ color:#c0392b; } .cl-kpi.good .cl-kpi-v{ color:#1f7a3d; }
.cl-chart-card{ border:1px solid #e4e7ec; border-radius:12px; padding:12px 14px; background:#fff; }
.cl-chart-h{ font-size:12px; font-weight:800; color:#34495e; margin-bottom:6px; }
.cl-chart{ height:170px; }
.cl-trend{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cl-trend-tile{ display:flex; gap:9px; padding:11px 13px; border:1px solid #e4e7ec; border-radius:10px; background:#fbfcfd; font-size:12.5px; color:#46535f; line-height:1.65; }
.cl-trend-dot{ width:8px; height:8px; flex:none; margin-top:6px; border-radius:50%; background:#2a6f7f; }
.cl-risks{ display:flex; flex-direction:column; gap:9px; }
.cl-risk{ display:flex; gap:11px; align-items:flex-start; padding:12px 14px; border:1px solid #f0e0cf; border-left:4px solid #cf7a1e; border-radius:0 10px 10px 0; background:#fffaf2; font-size:13px; color:#46535f; line-height:1.7; }
.cl-risk-ic{ width:20px; height:20px; flex:none; color:#cf7a1e; margin-top:1px; } .cl-risk-ic svg{ width:20px; height:20px; }

/* 新着・価格変更：カードグリッド */
.hl-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:12px; }
.hl-card{ display:flex; gap:13px; padding:12px; border:1px solid #e4e7ec; border-radius:12px; background:#fff; cursor:pointer; transition:box-shadow .15s, border-color .15s, transform .08s; }
.hl-card:hover{ border-color:#b9c7d6; box-shadow:0 4px 16px rgba(27,58,91,.12); transform:translateY(-1px); }
.hl-card:focus-visible{ outline:2px solid #1b3a5b; outline-offset:2px; }
.hl-thumb{ width:84px; height:84px; flex:none; border-radius:9px; position:relative; display:flex; align-items:center; justify-content:center; }
.hl-thumb-ic{ width:30px; height:30px; color:#5d738a; opacity:.8; } .hl-thumb-ic svg{ width:30px; height:30px; }
.hl-badge{ position:absolute; top:6px; left:6px; font-size:10px; font-weight:800; padding:2px 8px; border-radius:10px; }
.hl-new{ background:#c0392b; color:#fff; } .hl-new2{ background:#1b5fa8; color:#fff; }
.hl-down{ background:#1f7a3d; color:#fff; } .hl-up{ background:#c0392b; color:#fff; }
.hl-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.hl-title{ font-size:14px; font-weight:800; color:#1f2d3a; line-height:1.4; }
.hl-meta{ font-size:11.5px; color:#5d6b78; margin-top:5px; line-height:1.5; }
.hl-bottom{ margin-top:auto; display:flex; align-items:baseline; justify-content:space-between; padding-top:8px; }
.hl-price{ font-size:17px; font-weight:900; color:#c0392b; }
.hl-days{ font-size:11px; color:#8a97a4; }
.hl-price-row{ display:flex; align-items:baseline; gap:9px; margin:7px 0 4px; }
.hl-old{ font-size:13px; color:#9aa7b4; text-decoration:line-through; }
.hl-arrow{ font-size:14px; } .hl-arrow.down{ color:#1f7a3d; } .hl-arrow.up{ color:#c0392b; }
.hl-new-price{ font-size:18px; font-weight:900; } .hl-new-price.down{ color:#1f7a3d; } .hl-new-price.up{ color:#c0392b; }
.hl-d-down{ color:#1f7a3d; } .hl-d-up{ color:#c0392b; }

/* チャット：タイピングドット */
.typing-dots{ display:inline-flex; gap:5px; padding:3px 2px; }
.typing-dots i{ width:7px; height:7px; border-radius:50%; background:#9aa7b4; display:inline-block; animation:typingBlink 1.2s infinite ease-in-out both; }
.typing-dots i:nth-child(2){ animation-delay:.2s; } .typing-dots i:nth-child(3){ animation-delay:.4s; }
@keyframes typingBlink{ 0%,80%,100%{ opacity:.25; transform:translateY(0); } 40%{ opacity:1; transform:translateY(-3px); } }

/* 査定：エリア相場の小チャート */
.satei-chart-card{ margin-top:12px; border:1px solid #e4e7ec; border-radius:12px; padding:12px 14px; background:#fff; }
.satei-chart-h{ font-size:12px; font-weight:800; color:#34495e; margin-bottom:8px; } .satei-chart-h .row-meta{ font-weight:600; margin-left:8px; }
.satei-chart{ height:160px; }
@media (max-width:760px){ .cl-dash{ grid-template-columns:1fr; } .cl-trend{ grid-template-columns:1fr; } }

/* ===================== AI物件調査エージェント（自律） ===================== */
.ag-live-tag{ font-size:11px; font-weight:800; color:#fff; background:linear-gradient(135deg,#2b6cb0,#1f9d6b); padding:3px 9px; border-radius:20px; margin-left:10px; vertical-align:middle; letter-spacing:.04em; }
/* 違いの説明 */
.ag-explain{ display:flex; align-items:stretch; gap:12px; margin:4px 0 16px; }
.ag-explain-col{ flex:1; background:#f7f9fb; border:1px solid #e6ebf0; border-radius:12px; padding:13px 15px; }
.ag-explain-col.ag-x-agent{ background:linear-gradient(180deg,#f0f7ff,#eefaf3); border-color:#cfe2f3; }
.ag-x-h{ display:flex; align-items:center; gap:7px; font-weight:800; font-size:13px; color:#1b2c3a; margin-bottom:6px; }
.ag-x-h svg{ width:16px; height:16px; }
.ag-x-agent .ag-x-h{ color:#1f6f8b; }
.ag-x-b{ font-size:12.5px; line-height:1.7; color:#46586a; }
.ag-explain-arrow{ display:flex; align-items:center; font-size:20px; color:#9bb2c6; font-weight:800; }
/* 入力カード */
.ag-input-card{ background:#fff; border:1px solid #e0e6ec; border-radius:14px; padding:16px 18px; box-shadow:0 3px 16px rgba(20,40,70,.06); }
.ag-il{ font-size:12px; font-weight:800; color:#5a6b7a; margin-bottom:8px; }
.ag-input-row{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.ag-input-ic{ color:#2b6cb0; display:flex; } .ag-input-ic svg{ width:20px; height:20px; }
#ag-addr{ flex:1; min-width:240px; font-size:15px; padding:11px 13px; border:1.5px solid #d5dde5; border-radius:10px; color:#1b2730; }
#ag-addr:focus{ outline:none; border-color:#2b6cb0; box-shadow:0 0 0 3px rgba(43,108,176,.12); }
#ag-goal{ font-size:13px; padding:11px 12px; border:1.5px solid #d5dde5; border-radius:10px; color:#34414f; background:#fff; }
#ag-run{ font-size:14px; padding:11px 20px; white-space:nowrap; } #ag-run svg{ width:15px; height:15px; vertical-align:-2px; }
.ag-presets{ margin-top:11px; display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.ag-presets-l{ font-size:12px; color:#8a96a3; }
.ag-chip{ font-size:12px; padding:5px 11px; border:1px solid #d9e1e9; background:#f5f8fb; color:#3f5266; border-radius:20px; cursor:pointer; transition:.15s; }
.ag-chip:hover{ border-color:#2b6cb0; color:#2b6cb0; background:#eef5fc; }
.ag-tools-strip{ margin-top:13px; padding-top:12px; border-top:1px dashed #e6ebf0; font-size:11.5px; color:#8a96a3; display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.ag-toolpill{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; color:#46586a; background:#f2f6fa; border:1px solid #e3eaf1; border-radius:7px; padding:4px 9px; }
.ag-toolpill svg{ width:13px; height:13px; color:#2b6cb0; }
/* 実行トレース */
.ag-trace{ margin-top:18px; background:#0f1b2a; border-radius:14px; padding:16px 18px 18px; color:#cdd9e5; }
.ag-trace-head{ display:flex; align-items:center; gap:12px; padding-bottom:13px; border-bottom:1px solid #21344a; margin-bottom:6px; }
.ag-trace-ic{ width:38px; height:38px; flex:none; border-radius:10px; background:linear-gradient(135deg,#2b6cb0,#1f9d6b); display:flex; align-items:center; justify-content:center; color:#fff; }
.ag-trace-ic svg{ width:21px; height:21px; }
.ag-trace-t{ font-weight:800; font-size:15px; color:#fff; }
.ag-trace-s{ font-size:12px; color:#8da3ba; margin-top:2px; } .ag-trace-s b{ color:#cfe0f0; }
.ag-thinking{ display:flex; align-items:center; gap:6px; padding:11px 4px 4px; }
.ag-think-dot{ width:7px; height:7px; border-radius:50%; background:#3f7fbf; animation:agBlink 1.1s infinite; }
.ag-think-dot:nth-child(2){ animation-delay:.18s; } .ag-think-dot:nth-child(3){ animation-delay:.36s; }
@keyframes agBlink{ 0%,100%{ opacity:.25; transform:scale(.8);} 50%{ opacity:1; transform:scale(1);} }
.ag-think-tx{ font-size:12.5px; color:#7f9ec0; margin-left:5px; }
.ag-think-card{ display:flex; gap:10px; padding:11px 13px; margin:9px 0; background:rgba(43,108,176,.10); border:1px solid #21344a; border-left:3px solid #4a9fe0; border-radius:9px; }
.ag-think-ic{ color:#7cc4ff; flex:none; } .ag-think-ic svg{ width:17px; height:17px; }
.ag-think-body{ font-size:13px; line-height:1.65; color:#dce8f3; }
/* ツールカード */
.ag-tool-card{ display:flex; gap:12px; margin:10px 0; }
.ag-tool-rail{ flex:none; display:flex; flex-direction:column; align-items:center; }
.ag-tool-step{ width:26px; height:26px; border-radius:50%; background:#1f9d6b; color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.ag-tool-main{ flex:1; background:#15243650; border:1px solid #21344a; border-radius:10px; padding:11px 14px; }
.ag-tool-head{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.ag-tool-ic{ color:#7cc4ff; display:flex; } .ag-tool-ic svg{ width:17px; height:17px; }
.ag-tool-name{ font-weight:800; font-size:13.5px; color:#fff; }
.ag-tool-call{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:11px; color:#6f8aa6; background:#0d1622; padding:2px 8px; border-radius:6px; }
.ag-tool-src{ font-size:11px; color:#5fcb97; margin:6px 0 8px; display:flex; align-items:center; gap:4px; } .ag-tool-src svg{ width:11px; height:11px; }
.ag-obs{ background:#0c1825; border:1px solid #1d2f43; border-radius:8px; padding:10px 12px; }
.ag-obs-line{ font-size:13.5px; color:#eaf2f9; } .ag-obs-line b{ color:#fff; }
.ag-obs-kv{ display:flex; align-items:center; gap:6px; font-size:12.5px; color:#cfe0f0; margin-top:5px; } .ag-obs-kv span{ color:#7d96ad; }
.ag-obs-big{ font-size:18px; font-weight:800; color:#fff; } .ag-obs-big b{ color:#7cffc4; }
.ag-obs-note{ font-size:12px; color:#9fb5cb; line-height:1.6; } .ag-obs-err{ font-size:12.5px; color:#ffb3a0; }
.ag-fchips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.ag-fchip{ font-size:11.5px; color:#dbe8f4; background:#1a2c40; border:1px solid #294056; border-radius:7px; padding:4px 9px; } .ag-fchip b{ color:#fff; } .ag-fchip i{ color:#6fb0e8; font-style:normal; }
.ag-mkt-mini{ margin-top:6px; } .ag-mkt-row{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:#dbe8f4; padding:3px 0; } .ag-mkt-row b{ color:#fff; } .ag-mkt-row i{ color:#7d96ad; font-style:normal; font-size:11px; }
.ag-done{ display:flex; align-items:center; gap:9px; margin-top:13px; padding:12px 14px; background:linear-gradient(135deg,rgba(31,157,107,.18),rgba(43,108,176,.18)); border:1px solid #2b8a64; border-radius:10px; font-size:13.5px; font-weight:700; color:#bdf3d9; }
.ag-done-ic{ color:#5fcb97; display:flex; } .ag-done-ic svg{ width:18px; height:18px; }
.ag-err{ margin-top:12px; padding:12px 14px; background:#3a1e1e; border:1px solid #7a3b3b; border-radius:10px; font-size:13px; color:#ffc4b8; }
/* ===== 最終レポート ===== */
.ag-report{ margin-top:18px; }
.ag-rep-card{ background:#fff; border:1px solid #e0e6ec; border-radius:16px; overflow:hidden; box-shadow:0 6px 26px rgba(20,40,70,.09); }
.ag-rep-hero{ display:grid; grid-template-columns:1fr 1fr; gap:0; }
.ag-rep-hero-l{ padding:22px 24px; background:linear-gradient(160deg,#16263a,#1f3a55); color:#fff; }
.ag-rep-ey{ display:flex; align-items:center; gap:7px; font-size:12px; font-weight:700; color:#8fd0ff; letter-spacing:.04em; } .ag-rep-ey svg{ width:15px; height:15px; }
.ag-rep-addr{ font-size:21px; font-weight:800; margin:9px 0 8px; line-height:1.4; }
.ag-rep-sum{ font-size:13px; line-height:1.8; color:#cfdbe7; }
.ag-rep-facts{ display:flex; gap:20px; margin-top:16px; flex-wrap:wrap; }
.ag-fact{ display:flex; flex-direction:column; } .ag-fact span{ font-size:10.5px; color:#8da3ba; } .ag-fact b{ font-size:14px; color:#fff; margin-top:2px; }
.ag-rep-map{ min-height:300px; background:#eef2f5; } .leaflet-container{ height:100%; min-height:300px; font:inherit; }
.ag-map-fallback{ display:flex; align-items:center; justify-content:center; gap:8px; height:100%; min-height:300px; color:#8a96a3; font-size:13px; }
/* ピン */
.ag-pin-home-in{ width:30px; height:30px; border-radius:50%; background:#e8443a; color:#fff; display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:800; border:3px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.35); }
.ag-pin-fac-in{ width:22px; height:22px; border-radius:50%; background:#2b6cb0; color:#fff; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; border:2px solid #fff; box-shadow:0 1px 5px rgba(0,0,0,.3); }
.ag-pin-station .ag-pin-fac-in{ background:#7a3fb0; } .ag-pin-park .ag-pin-fac-in{ background:#1f9d6b; } .ag-pin-school .ag-pin-fac-in{ background:#c79019; } .ag-pin-hospital .ag-pin-fac-in{ background:#c0392b; } .ag-pin-supermarket .ag-pin-fac-in{ background:#2b6cb0; } .ag-pin-convenience .ag-pin-fac-in{ background:#0f9aa0; }
/* パネル */
.ag-rep-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0; }
.ag-rep-panel{ padding:18px 22px; border-top:1px solid #eef1f4; }
.ag-rep-grid .ag-rep-panel:first-child{ border-right:1px solid #eef1f4; }
.ag-panel-h{ display:flex; align-items:center; gap:7px; font-size:13.5px; font-weight:800; color:#1b2c3a; margin-bottom:13px; } .ag-panel-h svg{ width:16px; height:16px; color:#2b6cb0; }
.ag-radar-wrap{ height:280px; position:relative; }
.ag-score-reasons{ display:flex; flex-direction:column; gap:11px; }
.ag-sr-top{ display:flex; justify-content:space-between; font-size:12.5px; color:#34414f; font-weight:700; } .ag-sr-top b{ font-size:14px; }
.ag-sr-bar{ height:6px; background:#eef1f4; border-radius:4px; margin:4px 0 4px; overflow:hidden; } .ag-sr-bar i{ display:block; height:100%; border-radius:4px; }
.ag-sr-why{ font-size:11.5px; color:#6a7886; line-height:1.6; }
/* 施設グリッド */
.ag-fac-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:11px; }
.ag-fac-card{ border:1px solid #e6ebf0; border-radius:11px; padding:12px 13px; background:#fafbfc; }
.ag-fac-top{ display:flex; align-items:baseline; justify-content:space-between; }
.ag-fac-label{ font-size:13px; font-weight:800; color:#1b2c3a; }
.ag-fac-count{ font-size:21px; font-weight:800; color:#2b6cb0; } .ag-fac-count small{ font-size:11px; font-weight:600; color:#8a96a3; margin-left:1px; }
.ag-fac-near{ font-size:11.5px; color:#5a6b7a; margin:3px 0 7px; }
.ag-fac-exs{ display:flex; flex-direction:column; gap:3px; }
.ag-fac-ex{ display:flex; justify-content:space-between; gap:6px; font-size:11.5px; color:#46586a; border-top:1px dashed #edf1f4; padding-top:3px; } .ag-fac-ex span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .ag-fac-ex i{ color:#8a96a3; font-style:normal; flex:none; }
/* 相場 */
.ag-mkt{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.ag-mkt-card{ border:1px solid #e6ebf0; border-radius:11px; padding:14px 16px; background:#fafbfc; }
.ag-mkt-kind{ font-size:12px; font-weight:700; color:#5a6b7a; }
.ag-mkt-med{ font-size:22px; font-weight:800; color:#16263a; margin:3px 0; } .ag-mkt-med small{ font-size:11px; font-weight:600; color:#8a96a3; }
.ag-mkt-range{ font-size:12px; color:#5a6b7a; } .ag-mkt-n{ font-size:10.5px; color:#9aa5b1; margin-top:3px; }
.ag-mkt-none{ font-size:12.5px; color:#8a96a3; padding:6px 0; }
/* 強み・留意点 */
.ag-panel-good{ background:#f5fbf7; } .ag-panel-warn{ background:#fffaf2; }
.ag-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.ag-list li{ display:flex; gap:9px; font-size:12.5px; line-height:1.65; color:#34414f; }
.ag-li-ic{ flex:none; } .ag-li-ic svg{ width:14px; height:14px; }
.ag-list.good .ag-li-ic{ color:#1f9d6b; } .ag-list.warn .ag-li-ic{ color:#c79019; }
.ag-view-b{ font-size:12.5px; line-height:1.85; color:#34414f; }
.ag-rep-sources{ padding:13px 22px; background:#fafbfc; border-top:1px solid #eef1f4; font-size:11px; color:#8a96a3; display:flex; gap:8px; flex-wrap:wrap; }
.ag-rep-sources span{ background:#fff; border:1px solid #e6ebf0; border-radius:6px; padding:3px 9px; }
@media (max-width:880px){ .ag-rep-hero{ grid-template-columns:1fr; } .ag-rep-grid{ grid-template-columns:1fr; } .ag-rep-grid .ag-rep-panel:first-child{ border-right:none; } .ag-fac-grid{ grid-template-columns:repeat(2,1fr); } .ag-mkt{ grid-template-columns:1fr; } .ag-explain{ flex-direction:column; } .ag-explain-arrow{ transform:rotate(90deg); justify-content:center; } }
