/* JRED 統合ビュー スタイル（モックアップ JRED_mockup2 由来 + 実機能適合レイヤ） */
:root{
  --sbw:220px;            /* サイドメニュー幅（170〜380px可変・既定220px） */
  --teal:#00A3AA;
  --teal-dark:#008A90;
  --teal-pale:#E0F4F4;
  --teal-grad:linear-gradient(-90deg,#32DAA9 0%,#00A3AA 100%);
  --orange:#F5A623;
  --bg:#F3F6F6;
  --panel:#FFFFFF;
  --text:#242424;
  --text-sub:#8A9494;
  --line:#D6E1E0;
  --pink:#FF0055;
  --radius:10px;
  --shadow:0 6px 24px rgba(171,200,194,.35);
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{
  overflow-x:auto;overflow-y:hidden;
  font-family:'Hiragino Sans','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
  color:var(--text);
  background:var(--bg);
  font-size:14px;
}
.num{font-family:'Roboto','Noto Sans JP',sans-serif;}

/* ---------- Layout ---------- */
.app{display:flex;height:100vh;min-width:calc(var(--sbw) + 830px);}
.sidebar{
  width:var(--sbw);flex-shrink:0;background:var(--panel);
  border-right:1px solid #D6E1E0;
  display:flex;flex-direction:column;padding:20px 12px 10px;
  position:relative;z-index:60;
}
.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative;}

/* ---------- Sidebar ---------- */
.sb-resizer{
  position:absolute;top:0;right:-3px;width:6px;height:100%;
  cursor:col-resize;z-index:70;
}
.sb-resizer:hover,.sb-resizer.active{background:rgba(0,163,170,.16);}
body.sb-resizing{cursor:col-resize;user-select:none;}
.side-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;padding:0 6px;}
.logo{font-family:'Alatsi','Roboto',sans-serif;font-weight:400;font-size:28px;color:var(--teal);}
.side-icons{display:flex;gap:14px;align-items:center;}
.icon-btn{position:relative;background:none;border:none;cursor:pointer;color:var(--teal);display:flex;padding:2px;}
.icon-btn svg{width:22px;height:22px;}
.side-bottom .icon-btn svg{width:20px;height:20px;}
.pin-item svg.pin-icon{width:20px;height:20px;flex-shrink:0;}
.pin-mark svg{width:20px;height:20px;vertical-align:-2px;}
.badge-dot{
  position:absolute;top:-5px;right:-7px;background:var(--pink);color:#fff;
  font-size:9px;font-weight:600;min-width:16px;height:16px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;padding:0 3px;
}
.nav{display:flex;flex-direction:column;gap:6px;}
.nav-item{
  display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:8px;
  color:var(--teal);font-weight:500;cursor:pointer;border:none;background:none;
  font-size:13px;text-align:left;width:100%;font-family:inherit;
}
.nav-item svg{width:20px;height:20px;flex-shrink:0;}
.nav-item:hover{background:#F2F8F8;}
.nav-item.active{background:var(--bg);color:var(--teal);font-weight:500;}
.nav-item.active svg{color:var(--teal);}
.nav-sep{height:1px;background:#D6E1E0;margin:16px 2px 14px;flex-shrink:0;}
.side-sec{width:100%;display:flex;flex-direction:column;min-height:0;}
.sec-head{
  display:flex;align-items:center;justify-content:space-between;
  height:24px;margin-bottom:10px;padding:0 6px 0 2px;
  color:var(--teal);font-size:13px;font-weight:600;
  background:none;border:none;cursor:pointer;font-family:inherit;width:100%;
}
.sec-head svg{width:12px;height:12px;flex-shrink:0;transition:transform .25s ease;}
.side-sec.closed .sec-head svg{transform:rotate(180deg);}
.sec-body{
  display:flex;flex-direction:column;gap:4px;
  overflow:hidden;max-height:480px;transition:max-height .28s ease;
}
.side-sec.closed .sec-body{max-height:0;}
.board-item{
  display:flex;align-items:center;gap:2px;height:32px;flex-shrink:0;
  padding:0 4px 0 6px;border-radius:4px;cursor:pointer;
  color:var(--teal);font-size:13px;font-weight:500;
}
.board-item:hover{background:#F2F8F8;}
.pin-item.dragging,.board-item.dragging{opacity:.35;background:#E9F5F5;}
.drop-line{
  position:absolute;left:2px;right:6px;height:2px;border-radius:1px;
  background:var(--teal);pointer-events:none;z-index:5;
}
.drop-line::before{
  content:"";position:absolute;left:-2px;top:-2.5px;
  width:7px;height:7px;border-radius:50%;background:var(--teal);
}
.board-item .label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pin-item{
  display:flex;align-items:center;gap:4px;height:30px;padding:0 6px;border-radius:6px;cursor:pointer;
  color:var(--teal);font-size:13px;white-space:nowrap;overflow:hidden;
}
.pin-item .label{color:var(--teal);font-weight:500;}
.pin-item:hover{background:#F2F8F8;}
.pin-item .label{overflow:hidden;text-overflow:ellipsis;flex:1;}
.pin-item .dots{color:var(--text-sub);flex-shrink:0;}
.side-bottom{margin-top:auto;border-top:1px solid #D6E1E0;padding-top:12px;padding-bottom:2px;display:flex;align-items:center;gap:9px;}
.avatar{
  width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#B9CFCB,#7FA8A2);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0;
}
.user-meta{flex:1;min-width:0;}
.user-name{font-weight:600;font-size:14px;}
.user-dept{font-size:12px;color:var(--text-sub);}

/* ---------- Top bar ---------- */
.topbar{
  display:flex;align-items:center;gap:12px;padding:18px 24px 12px;flex-shrink:0;
}
.mode-tabs{display:flex;gap:12px;}
.mode-tab{
  border:1px solid #D6E1E0;background:var(--panel);color:#C8DAD8;
  border-radius:15px;width:120px;height:30px;padding:0;font-size:12px;font-weight:600;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-family:inherit;transition:all .15s;
}
.mode-tab:hover{border-color:var(--teal);color:var(--teal);}
.mode-tab.active{border:1px solid var(--teal);color:var(--teal);font-weight:600;}
.scope{margin-left:auto;display:flex;align-items:center;gap:12px;}
.scope-label{font-size:12px;color:#374151;text-align:right;line-height:1.3;}
.scope-match{
  display:none;background:var(--orange);color:#fff;border-radius:999px;
  font-size:12px;font-weight:700;padding:3px 12px;margin-top:4px;
  cursor:pointer;border:none;font-family:inherit;
}
.scope.matched .scope-match{display:inline-block;}
.scope-pill{
  background:var(--teal-grad);color:#fff;border-radius:36px;
  padding:0 12px;width:153px;height:44px;display:flex;align-items:center;justify-content:space-between;
  gap:10px;font-weight:600;font-size:12px;
  cursor:default;
}
.scope-pill .val{font-weight:500;font-size:13px;}
.scope-pill .val b{font-size:15px;font-weight:600;margin-right:1px;}
/* 件数の解決待ち（表示中の件数が今の条件を反映していない） */
.scope-pill.is-stale{opacity:.55;}
.scope-updating{
  display:inline-flex;align-items:center;gap:5px;flex-shrink:0;
  font-size:11px;font-weight:700;color:#B07B1E;
  background:#FFF4E0;border-radius:999px;padding:4px 10px;white-space:nowrap;
}
.scope-updating::before{
  content:"";width:8px;height:8px;border-radius:50%;
  border:2px solid #E0B15E;border-top-color:transparent;
  animation:count-spin .7s linear infinite;
}

/* ---------- Views ---------- */
.view{flex:1;min-height:0;position:relative;display:none;}
.view.active{display:block;}

/* ---- Chat view ---- */
.chat-wrap{
  --topbar-h:74px;
  --chat-edge:clamp(20px,4vw,56px);
  --chat-input-max:729px;
  --chat-log-max:860px;
  height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;padding:0 var(--chat-edge) var(--topbar-h);position:relative;
  transition:padding-right .22s cubic-bezier(.22,1,.36,1);
}
/* フィルタパネル展開時：パネル領域（320px＋右余白24px）を避けた残り幅の中央へ */
/* フィルタパネル展開時：384pxのパネルを避け、会話ログと入力欄も一段コンパクトにする */
.main.filter-open .chat-wrap{
  --chat-input-max:650px;
  --chat-log-max:760px;
  padding-right:calc(408px + var(--chat-edge));
}
@media (min-width:1600px){
  .main.filter-open .chat-wrap{
    --chat-input-max:729px;
    --chat-log-max:860px;
  }
}
@media (prefers-reduced-motion:reduce){.chat-wrap{transition:none;}}
.chat-menu-btn{position:absolute;top:6px;left:24px;background:none;border:none;color:var(--teal);cursor:pointer;padding:8px 4px;}
/* 会話中はハンバーガーの右にチャットタイトルを出す（20260817） */
.chat-current-title{
  position:absolute;top:6px;left:70px;max-width:min(440px,calc(100% - 520px));height:34px;padding:0;
  border:0;background:transparent;color:#222;font-family:inherit;font-size:15px;font-weight:600;
  display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;
}
.chat-current-title[hidden]{display:none;}
.chat-current-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chat-current-title svg{width:12px;height:8px;flex:0 0 auto;}
.chat-menu-btn svg{overflow:visible;}
.chat-menu-btn.hb-hold .hl{opacity:0;}
.chat-menu-btn.replay .hl1{animation:hlIn .24s cubic-bezier(.3,1.04,.28,1) both;}
.chat-menu-btn.replay .hl2{animation:hlIn .24s cubic-bezier(.3,1.04,.28,1) .1s both;}
.chat-menu-btn.replay .hl3{animation:hlIn .24s cubic-bezier(.3,1.04,.28,1) .2s both;}
@keyframes hlIn{
  from{transform:translateX(9px);opacity:0;}
  to{transform:translateX(0);opacity:1;}
}
@media (prefers-reduced-motion:reduce){
  .chat-menu-btn.replay .hl1,.chat-menu-btn.replay .hl2,.chat-menu-btn.replay .hl3{animation:none;}
}
.chat-body{
  display:flex;flex-direction:column;align-items:center;gap:24px;
  width:100%;max-width:var(--chat-log-max);margin:0 auto;
}
.chat-empty{display:flex;flex-direction:column;align-items:center;gap:7px;}
.chat-empty h1{font-size:26px;font-weight:400;line-height:1.75;letter-spacing:0;color:var(--text);}
.chat-illust{width:137px;height:135px;}
.chat-illust-default,.chat-illust-sel{
  width:137px;height:135px;
  transition:opacity .34s cubic-bezier(.4,0,.2,1);
}
.chat-illust-sel{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  opacity:0;pointer-events:none;
}
.chat-empty{position:relative;}
.chat-empty .chat-illust-default{opacity:1;}
.chat-empty.has-selection .chat-illust-default{opacity:0;pointer-events:none;}
.chat-empty.has-selection .chat-illust-sel{opacity:1;}
#chatEmptyTitle{transition:opacity .34s cubic-bezier(.4,0,.2,1);}
/* 会話開始後：ログが伸び、入力欄は下部に固定 */
.chat-wrap.chatting{justify-content:flex-start;gap:0;padding-top:52px;padding-bottom:20px;}
.chat-wrap.chatting .chat-body{flex:1;min-height:0;overflow-y:auto;justify-content:flex-start;padding:10px;}
.chat-wrap.chatting .chat-body{scrollbar-width:thin;scrollbar-color:#B8BFC1 transparent;}
.chat-wrap.chatting .chat-body::-webkit-scrollbar{width:2px;}
.chat-wrap.chatting .chat-body::-webkit-scrollbar-track{background:transparent;}
.chat-wrap.chatting .chat-body::-webkit-scrollbar-thumb{background:#B8BFC1;border-radius:3px;}
.chat-wrap.chatting .chat-input-area{padding-top:16px;margin-bottom:40px;}
.chat-log{width:100%;max-width:none;display:none;flex-direction:column;gap:28px;align-self:center;}
.chat-log.show{display:flex;}
.msg{animation:pop .25s ease;}
.msg.user{
  align-self:flex-end;max-width:min(760px,76%);
  padding:16px 28px;border-radius:999px;line-height:1.65;
  background:#ECECEC;color:#282828;font-size:16px;font-weight:500;
}
.msg.ai{
  align-self:stretch;max-width:100%;
  padding:0;background:transparent;box-shadow:none;border-radius:0;
  color:#111;font-size:16px;font-weight:500;line-height:1.72;
}
.ai-answer{width:100%;display:flex;flex-direction:column;gap:16px;}
.ai-answer p{margin:0;}
.ai-answer b{font-weight:700;}
.ai-answer ul{margin:0;padding-left:24px;}
.ai-answer li{margin:4px 0;}
.ai-answer ul ul{padding-left:24px;margin-top:5px;}
.ai-answer hr{width:100%;border:0;border-top:1px solid #E2E2E2;margin:8px 0;}
.ai-title{font-size:20px;font-weight:700;line-height:1.5;margin:0;}
.ai-section-title{font-size:17px;font-weight:700;line-height:1.55;margin:0;}
.ai-muted{color:#8C9698;}
.ai-green{color:#138A1A;font-weight:700;}
.ai-link{color:#1478E8;font-weight:600;text-decoration:none;}
.ai-chip{
  display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:3px 9px;
  border-radius:6px;border:1px solid #BFE3C8;background:#EFFAF1;color:#1A8C2A;
  font-size:13px;font-weight:700;vertical-align:middle;
}
.ai-fold{font-weight:700;color:#333;}
.ai-meta{color:#B7B7B7;font-size:13px;font-weight:500;margin-top:2px;}
.msg.ai .hit{
  display:inline-flex;align-items:center;gap:6px;background:var(--teal-pale);color:var(--teal-dark);
  border-radius:8px;padding:2px 10px;font-weight:600;font-size:13px;margin:0 2px;
}
.msg.ai .hit b{font-weight:600;}
.msg .goto{
  display:inline-block;margin-top:10px;background:var(--teal);color:#fff;border:none;border-radius:999px;
  padding:8px 20px;font-weight:600;font-size:14px;cursor:pointer;font-family:inherit;
}
.msg .goto:hover{background:var(--teal-dark);}
.typing{display:inline-flex;gap:5px;align-items:center;height:14px;}
.typing i{width:7px;height:7px;border-radius:50%;background:#BFD6D4;animation:blink 1.1s infinite;}
.typing i:nth-child(2){animation-delay:.18s}.typing i:nth-child(3){animation-delay:.36s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
@keyframes pop{from{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}

.chat-input-area{
  flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;
  max-width:var(--chat-input-max);margin:0 auto;
}
/* 入力欄の下の注意書き（20260825） */
.chat-disclaimer{margin-top:10px;color:#7E8989;font-size:12px;font-weight:400;line-height:1.6;text-align:center;}
.chat-input{
  width:100%;max-width:none;background:var(--panel);border-radius:10px;
  border:1px solid #D6E1E0;
  box-shadow:0 4px 15px rgba(171,200,194,.42);
  padding:16px 20px;display:flex;flex-direction:column;gap:14px;
}
.chat-input textarea{
  border:none;outline:none;resize:none;font-family:inherit;font-size:14px;color:var(--text);
  height:24px;line-height:1.6;background:none;
}
.chat-input textarea::placeholder{color:#C6C6C6;}
.chat-input-row{display:flex;align-items:center;gap:16px;}
.clip-btn{background:none;border:none;color:var(--teal);cursor:pointer;display:flex;}
.model-sel{
  display:flex;align-items:center;gap:10px;font-weight:400;font-size:14px;cursor:pointer;
  background:none;border:none;font-family:inherit;color:var(--text);
}
.model-sel svg{color:var(--teal);}
.send-btn{
  margin-left:auto;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:#C6C6C6;color:#fff;display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.send-btn.ready{background:var(--teal);color:#fff;box-shadow:0 4px 12px rgba(20,163,163,.35);}

/* ---- Home map view ---- */
.view#view-map{overflow:hidden;}
.home-map-wrap{
  height:100%;padding:18px 20px 24px;overflow:hidden;
}
.home-map-card{
  position:relative;width:100%;height:100%;overflow:hidden;
  border:1px solid #D3E1E0;border-radius:8px;background:#F8FAFA;
  box-shadow:0 2px 14px rgba(171,200,194,.24);
}
.home-map-bg{
  position:absolute;inset:0;
  background-image:url("/static/assets/property-map/home-map.png");
  background-repeat:no-repeat;background-position:center;
  background-size:cover;
  filter:none;
  opacity:1;transform:none;
}
.home-map-card::after{
  content:"";position:absolute;inset:0;background:rgba(255,255,255,.18);pointer-events:none;
}
.home-map-search{
  position:absolute;top:22px;right:26px;z-index:4;
  width:clamp(320px,34vw,360px);height:32px;border-radius:17px;
  border:1px solid #CFE0DF;background:#fff;
  display:flex;align-items:center;gap:10px;padding:0 18px;
  color:var(--text);font-size:13px;font-weight:500;white-space:nowrap;
}
.home-map-search svg{width:20px;height:20px;color:#C7CDCF;flex-shrink:0;}
.home-map-zoom{
  position:absolute;left:28px;bottom:28px;z-index:4;width:44px;height:89px;
  filter:drop-shadow(0 3px 8px rgba(70,90,88,.18));
}
.home-map-line{
  display:none;position:absolute;z-index:2;height:3px;background:rgba(120,128,126,.58);
  transform-origin:left center;border-radius:999px;
}
.home-map-cluster{
  display:none !important;
  --size:48px;position:absolute;left:var(--x);top:var(--y);z-index:3;
  width:var(--size);height:var(--size);border-radius:50%;transform:translate(-50%,-50%);
  align-items:center;justify-content:center;
  background:#8F8F8F;border:3px solid rgba(255,255,255,.92);
  color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.28);
  font-family:'Roboto','Noto Sans JP',sans-serif;font-size:calc(var(--size) * .36);
  font-weight:500;line-height:1;
}
@media (max-width:1100px){
  .home-map-wrap{padding:18px 20px 24px;}
  .home-map-search{width:clamp(320px,34vw,360px);height:32px;font-size:13px;}
}

/* ---- Catalog view ---- */
.view#view-catalog{overflow:hidden;}
.cat-wrap{height:100%;padding:18px 20px 24px;overflow:hidden;}
.cat-wrap.is-hidden{pointer-events:none;}
.cat-card{
  background:var(--panel);border-radius:10px;box-shadow:0 2px 14px rgba(171,200,194,.24);
  height:100%;display:flex;flex-direction:column;overflow:hidden;
}
.cat-head{display:flex;align-items:center;gap:22px;padding:21px 22px 0;flex-shrink:0;position:relative;flex-wrap:wrap;}
.cat-view-titlebar{display:flex;align-items:center;gap:22px;min-width:0;}
.cat-title{
  color:var(--teal);font-size:21px;font-weight:600;line-height:1;
  letter-spacing:0;white-space:nowrap;
}
.cat-search{
  margin-left:auto;display:flex;align-items:center;gap:10px;
  border:1px solid #CFE0DF;border-radius:17px;height:32px;padding:0 18px;
  width:clamp(320px,34vw,360px);color:var(--text-sub);flex-shrink:1;
}
.cat-search input{border:none;outline:none;flex:1;font-family:inherit;font-size:13px;font-weight:500;background:none;color:var(--text);min-width:0;}
.cat-search input::placeholder{color:#BCBCBC;}
.cat-search svg{color:#C7CDCF;flex-shrink:0;width:20px;height:20px;}
.cat-search-x{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;padding:0;
  background:#E4EEED;color:#6b7a78;
}
.cat-search-x:hover{background:#C8DAD8;color:var(--text);}
.cat-search-x svg{width:11px;height:11px;color:inherit;}
.cat-toolbar{display:flex;align-items:center;gap:22px;padding:20px 22px 12px;flex-shrink:0;}
.cat-summary{display:flex;align-items:center;gap:14px;}
.cat-total{font-size:15px;font-weight:600;color:var(--text);}
.cat-total .sub{font-size:11px;}
/* 件数がまだ今の条件を反映していないときの表示 */
.cat-total.is-stale{color:#9aa5a4;}
.cat-total-pending{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;color:#B07B1E;
  background:#FFF4E0;border-radius:999px;padding:2px 10px;white-space:nowrap;
}
.cat-total-pending::before{
  content:"";width:9px;height:9px;border-radius:50%;
  border:2px solid #E0B15E;border-top-color:transparent;
  animation:count-spin .7s linear infinite;
}
@keyframes count-spin{to{transform:rotate(360deg);}}
.cat-view-switch{
  height:32px;padding:0 16px;border-radius:17px;border:1px solid var(--teal);background:#fff;
  color:var(--teal);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;
  display:flex;align-items:center;gap:7px;white-space:nowrap;
}
.cat-view-switch:hover{background:#F2FBFB;border-color:#B9DAD8;}
.cat-view-switch.uses-svg{
  width:auto;height:31px;padding:0;border:none;border-radius:15px;background:transparent;
  display:block;line-height:0;overflow:hidden;
}
.cat-view-switch.uses-svg:hover{background:transparent;border-color:transparent;}
.cat-view-switch-art{display:block;width:auto;height:31px;pointer-events:none;}
.cat-view-switch-art.is-property-view{width:118px;height:31px;}
.cat-view-switch svg{width:17px;height:17px;flex-shrink:0;}
.cat-view-switch.is-back svg{width:17px;height:17px;}
.cat-project-add{
  display:none;height:32px;padding:0 14px;border-radius:17px;border:1px solid var(--teal);
  background:#fff;color:var(--teal);font-family:inherit;font-size:13px;font-weight:700;
  cursor:pointer;white-space:nowrap;
}
.cat-project-add.is-visible{display:flex;align-items:center;}
.cat-project-add:hover{background:#F2FBFB;}
.cat-pager-group{margin-left:auto;display:flex;align-items:center;gap:18px;}
.cat-page{color:var(--teal);font-weight:600;font-size:14px;font-family:'Roboto','Noto Sans JP',sans-serif;}
.pager{display:flex;gap:14px;}
.pager button{
  border:none;background:none;cursor:pointer;color:var(--teal);width:18px;height:24px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
}
.pager button svg{width:19px;height:19px;}
.pager button:disabled{color:#C8DAD8;cursor:default;}
.pager button:not(:disabled):hover{background:var(--teal-pale);}
.sel-only{
  display:none;align-items:center;gap:8px;
  padding:0;border:none;background:transparent;color:var(--text-sub);
  font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;
}
.sel-only.is-visible{display:flex;}
.sel-only:hover{color:var(--teal);}
.sel-only .so-box{
  width:18px;height:18px;border-radius:5px;border:1.5px solid #D6E1E0;
  display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0;
  transition:border-color .15s,color .15s;
}
.sel-only .so-box svg{width:11px;height:9px;}
.sel-only[aria-pressed="true"]{color:var(--teal);}
.sel-only[aria-pressed="true"] .so-box{border-color:var(--teal);color:var(--teal);}
.sel-only[aria-pressed="true"] .so-box svg{color:var(--teal);stroke:var(--teal);}
.sel-only b{font-weight:700;font-family:'Inter','Hiragino Sans','Noto Sans JP',sans-serif;}
.apply-sel{
  margin-left:auto;height:28px;padding:0 13px;border-radius:6px;
  border:1px solid var(--teal);background:#fff;color:var(--teal);
  display:flex;align-items:center;gap:7px;
  font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;
  transition:background .15s,color .15s;
}
.apply-sel svg{width:11px;height:9px;flex-shrink:0;}
.apply-sel:hover{background:#F2FBFB;}
.apply-sel.applied{background:var(--teal);border-color:var(--teal);color:#fff;}
.apply-sel.applied:hover{background:var(--teal-dark);}
.scope-sel{
  display:none;background:#F1315F;color:#fff;border-radius:999px;
  font-size:12px;font-weight:700;padding:3px 10px;margin-top:4px;
  cursor:pointer;border:none;font-family:inherit;
}
.scope.selmode .scope-sel{display:inline-block;}
.scope.selmode .scope-match{display:none;}
.scope-pill .k{line-height:1.15;text-align:left;}
td.ell{max-width:185px;overflow:hidden;text-overflow:ellipsis;}
.table-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 0 18px;position:relative;}
.catalog-table{width:100%;min-width:1000px;border-collapse:collapse;table-layout:fixed;font-size:13px;}
.catalog-table th,.catalog-table td{overflow:hidden;text-overflow:ellipsis;}
.catalog-table.is-bukken th:nth-child(1),.catalog-table.is-bukken td:nth-child(1){width:4%;}
.catalog-table.is-bukken th:nth-child(2),.catalog-table.is-bukken td:nth-child(2){width:18%;}
.catalog-table.is-bukken th:nth-child(3),.catalog-table.is-bukken td:nth-child(3){width:18%;}
.catalog-table.is-bukken th:nth-child(4),.catalog-table.is-bukken td:nth-child(4){width:10%;}
.catalog-table.is-bukken th:nth-child(5),.catalog-table.is-bukken td:nth-child(5){width:6%;}
.catalog-table.is-bukken th:nth-child(6),.catalog-table.is-bukken td:nth-child(6){width:20%;}
.catalog-table.is-bukken th:nth-child(7),.catalog-table.is-bukken td:nth-child(7){width:5%;}
.catalog-table.is-bukken th:nth-child(8),.catalog-table.is-bukken td:nth-child(8){width:8%;}
.catalog-table.is-bukken th:nth-child(9),.catalog-table.is-bukken td:nth-child(9){width:6%;}
.catalog-table.is-bukken th:nth-child(10),.catalog-table.is-bukken td:nth-child(10){width:5%;}
.catalog-table.is-file th:nth-child(1),.catalog-table.is-file td:nth-child(1){width:4%;}
.catalog-table.is-file th:nth-child(2),.catalog-table.is-file td:nth-child(2){width:15%;}
.catalog-table.is-file th:nth-child(3),.catalog-table.is-file td:nth-child(3){width:16%;}
.catalog-table.is-file th:nth-child(4),.catalog-table.is-file td:nth-child(4){width:12%;}
.catalog-table.is-file th:nth-child(5),.catalog-table.is-file td:nth-child(5){width:16%;}
.catalog-table.is-file th:nth-child(6),.catalog-table.is-file td:nth-child(6){width:10%;}
.catalog-table.is-file th:nth-child(7),.catalog-table.is-file td:nth-child(7){width:13%;}
.catalog-table.is-file th:nth-child(8),.catalog-table.is-file td:nth-child(8){width:14%;}
.catalog-table thead th{
  position:sticky;top:0;background:#F6F6F6;font-weight:700;text-align:left;
  height:36px;padding:0 11px;white-space:nowrap;z-index:15;font-size:13px;overflow:visible;
}
.catalog-table thead th:first-child{padding-left:11px;}
.col-resize-handle{
  position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;z-index:13;
}
.col-resize-handle::before{
  content:"";position:absolute;left:4px;top:0;bottom:0;width:2px;background:transparent;
  transition:background .12s ease,width .12s ease,left .12s ease;
}
.catalog-table thead:hover .col-resize-handle:not(.active)::before{background:#DCE5E4;}
.col-resize-handle:hover::before{background:#C8DAD8;}
.col-resize-handle.active::before{left:2px;width:6px;background:#0787FF;}
.catalog-resize-guide{
  display:none;position:absolute;top:0;bottom:18px;width:4px;background:#0787FF;z-index:12;
  pointer-events:none;transform:translateX(-2px);border-radius:2px;
}
.catalog-resize-guide.active{display:none;}
body.catalog-col-resizing{cursor:col-resize;user-select:none;}
.catalog-table tbody td{height:42px;padding:0 11px;border-bottom:1px solid #C7DAD8;white-space:nowrap;}
.catalog-table tbody td:first-child{padding-left:11px;}
.catalog-table tbody tr{cursor:default;}
.catalog-table tbody tr:hover{background:#E5F3F2;}
.catalog-table tbody tr.is-selected{background:#fff;}
.catalog-table tbody tr.is-detail-active{background:#EAF6F5;}
.catalog-table tbody tr.is-selected:hover,
.catalog-table tbody tr.is-detail-active:hover{background:#E5F3F2;}
.catalog-table .detail-col{
  position:sticky;right:0;z-index:3;width:92px;text-align:center;background:#F6F6F6;
  box-shadow:-1px 0 0 #E2E8E7;
}
.catalog-table thead .detail-col{z-index:16;}
.catalog-table tbody .detail-col{background:#fff;}
.catalog-table tbody tr:hover .detail-col{background:#E5F3F2;}
.catalog-table tbody tr.is-selected .detail-col{background:#fff;}
.catalog-table tbody tr.is-detail-active .detail-col{background:#EAF6F5;}
.catalog-table tbody tr.is-selected:hover .detail-col,
.catalog-table tbody tr.is-detail-active:hover .detail-col{background:#E5F3F2;}
.catalog-table tbody:hover tr.is-detail-active:not(:hover):not(.is-selected){background:#fff;}
.catalog-table tbody:hover tr.is-detail-active:not(:hover):not(.is-selected) .detail-col{background:#fff;}
.detail-btn{
  min-width:57px;height:30px;border:none;border-radius:15px;background:#F2F2F0;color:#737368;
  font-family:inherit;font-size:13px;font-weight:600;line-height:30px;cursor:pointer;padding:0 14px;
}
.detail-btn:hover{background:#E3E4E2;color:#3F4544;}
/* ファイル一覧のアクションは「詳細」1つ（20260817: プレビューを詳細に統合） */
.catalog-table.is-file .detail-col{width:92px;min-width:92px;}
.pid{font-weight:600;}
.fname-strong{font-weight:600;}
.catalog-table tbody td:nth-child(3){font-weight:400;}
.empty-row td{text-align:center;color:var(--text-sub);padding:44px 0;cursor:default;}
input[type=checkbox].chk{
  appearance:none;width:18px;height:18px;border:1.4px solid #D6E1E0;border-radius:3.7px;cursor:pointer;
  position:relative;background:#fff;vertical-align:middle;flex-shrink:0;
}
input[type=checkbox].chk:checked{background:var(--teal);border-color:var(--teal);}
input[type=checkbox].chk:checked::after{
  content:"";position:absolute;left:5.5px;top:2px;width:4.5px;height:8.5px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}

/* ---- Property detail ---- */
.property-detail{
  position:fixed;left:var(--sbw);top:0;right:0;bottom:0;z-index:25;height:100vh;overflow:hidden;background:var(--bg);display:none;
  font-family:'Hiragino Sans','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
  pointer-events:none;
  box-shadow:-12px 0 30px rgba(0,0,0,.12);
  --pd-frame-margin:68px;
  --pd-frame-min:724px;
  --pd-frame-max:1140px;
  --pd-frame-width:clamp(var(--pd-frame-min), calc(100% - (var(--pd-frame-margin) * 2)), var(--pd-frame-max));
  --pd-frame-offset:max(var(--pd-frame-margin), calc((100% - var(--pd-frame-max)) / 2));
  transition:none;
}
.property-detail.open{
  display:block;pointer-events:auto;
  transition:none;
}
.pd-scroll{
  height:100vh;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}
.pd-hero{
  min-height:163px;background:#fff;position:relative;
  padding:31px 0 18px;
}
.pd-hero-inner{
  width:var(--pd-frame-width);
  margin-left:var(--pd-frame-offset);
  margin-right:0;
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;
  column-gap:clamp(20px,3vw,44px);
}
.pd-hero-text{min-width:0;}
.pd-back{
  position:absolute;left:20px;top:37px;width:30px;height:30px;border:none;background:none;border-radius:50%;
  color:var(--teal);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
  z-index:6;transition:color .18s ease;
}
.pd-back::before{
  content:"";position:absolute;inset:0;border-radius:50%;background:var(--teal);
  opacity:var(--pd-back-bg,0);
  transform:scale(calc(.82 + (var(--pd-back-bg,0) * .18)));
  transition:opacity .18s ease, transform .18s ease;
}
.property-detail.back-solid .pd-back{color:#fff;}
.pd-back svg{width:22px;height:22px;stroke-width:2.4px;position:relative;z-index:1;}
.pd-title{
  margin:0 0 9px;font-size:21px;line-height:1.35;font-weight:600;color:#242424;letter-spacing:0;
}
.pd-lead{font-size:13px;line-height:1.7;color:#242424;margin-bottom:7px;}
.pd-meta{font-size:13px;line-height:1.45;color:#242424;}
.pd-add{
  align-self:end;margin-bottom:0;height:40px;padding:0 14px;border-radius:4px;
  border:1px solid var(--teal);background:#fff;color:var(--teal);
  font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;
}
.pd-add:hover{background:#F2FBFB;}
.pd-body{padding:28px 0 44px;}
.pd-card{
  width:var(--pd-frame-width);margin-left:var(--pd-frame-offset);margin-right:0;background:#fff;border-radius:8px;
  box-shadow:0 2px 10px rgba(0,0,0,.13);padding:15px clamp(16px,1.6vw,20px) 40px;
}
.pd-card-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px;
}
.pd-card-head .pd-tabs{margin-bottom:0;flex-shrink:0;}
.pd-card:not(.file-mode) .pd-file-search{display:none;}
.pd-card.file-mode .pd-card-head{margin-bottom:32px;}
.pd-tabs{
  display:inline-grid;grid-template-columns:72px 72px;align-items:center;margin-bottom:22px;
  padding:4px;border:0;border-radius:5px;overflow:hidden;background:#E2E2E2;height:34px;position:relative;
}
.pd-tabs::before{
  content:"";position:absolute;left:4px;top:4px;width:72px;height:26px;
  background:#fff;border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,.14);
  transform:translateX(0);transition:transform .22s cubic-bezier(.22,1,.36,1);
}
.pd-tabs.files-active::before{
  transform:translateX(72px);
}
.pd-tab{
  width:72px;height:26px;border:none;background:transparent;color:#242424;
  font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;position:relative;z-index:1;border-radius:5px;
  display:flex;align-items:center;justify-content:center;line-height:1;padding:0;
}
.pd-tab.active{background:transparent;color:var(--teal);font-weight:600;box-shadow:none;}
.pd-tab-count{
  width:35px;min-width:35px;height:17px;padding:0;border-radius:8.5px;background:#AEB7B7;color:#fff;
  font-size:11px;font-weight:500;line-height:17px;text-align:center;white-space:nowrap;
}
.pd-tab.active .pd-tab-count{background:var(--teal);color:#fff;}
.pd-pane{display:none;animation:pdPaneFade .16s ease both;}
.pd-pane.active{display:block;}
@keyframes pdPaneFade{from{opacity:.35;}to{opacity:1;}}
.pd-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 380px;
  gap:clamp(24px,2.8vw,31px);align-items:start;
}
.pd-section{margin-bottom:22px;}
.pd-section-title{font-size:14px;font-weight:600;color:var(--teal);margin-bottom:10px;}
.pd-row{
  min-height:38px;padding:5px 0;border-top:1px solid #D3E1E0;display:grid;grid-template-columns:74px 1fr;
  align-items:center;gap:0;font-size:13px;line-height:1.35;color:#242424;
}
.pd-row:last-child{border-bottom:1px solid #D3E1E0;}
.pd-label{font-weight:600;}
.pd-value{font-weight:400;min-width:0;}
.pd-link{color:#0076FF;text-decoration:none;}
.pd-side-id{font-size:13px;line-height:1.35;margin-bottom:14px;}
.pd-side-id b{display:block;font-size:14px;font-weight:600;margin-bottom:1px;color:var(--teal);}
.pd-side-id svg{width:13px;height:13px;margin-left:3px;color:#8A9494;vertical-align:-2px;}
.pd-side{width:380px;max-width:100%;}
.pd-map{
  width:380px;height:380px;border:1px solid #C7DAD8;background:#F8FAFA;position:relative;overflow:hidden;margin-top:7px;
}
.pd-map-canvas{
  position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;
  transition:opacity .22s ease;
}
.pd-map.has-google .pd-map-canvas{opacity:1;pointer-events:auto;}
.pd-map::before{
  content:"";position:absolute;inset:-60px;background:
    linear-gradient(18deg, transparent 46%, #C8DAD8 47%, #C8DAD8 48%, transparent 49%),
    linear-gradient(87deg, transparent 47%, #D4E0DE 48%, #D4E0DE 49%, transparent 50%),
    linear-gradient(132deg, transparent 45%, #D9E4E2 46%, #D9E4E2 47%, transparent 48%),
    linear-gradient(4deg, transparent 44%, #CFDDDB 45%, #CFDDDB 46%, transparent 47%),
    repeating-linear-gradient(0deg, transparent 0 35px, #E4EBEA 36px 37px),
    repeating-linear-gradient(90deg, transparent 0 46px, #E4EBEA 47px 48px);
  opacity:.82;
}
.pd-map::after{
  content:"";position:absolute;left:50.5%;top:49%;width:20px;height:20px;border-radius:50%;
  background:var(--teal);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.pd-map.has-google::before,
.pd-map.has-google::after{opacity:0;}
.pd-map.has-google .pd-rail,
.pd-map.has-google .pd-zoom{display:none;}
.pd-map::before,
.pd-map::after{display:none;}
.pd-map-static{
  position:absolute;inset:0;z-index:2;background:#F7FAFA;overflow:hidden;
}
.pd-map.has-google .pd-map-static{display:none;}
.pd-map-image{
  width:100%;height:100%;display:block;object-fit:cover;object-position:center;
}
.pd-map-point{
  position:absolute;left:50%;top:49%;width:34px;height:36px;z-index:3;
  transform:translate(-50%,-50%);pointer-events:none;
}
.pd-map-zoom-img{
  position:absolute;left:11px;bottom:9px;width:44px;height:89px;z-index:4;pointer-events:none;
}
.pd-rail{
  position:absolute;left:51%;top:-20px;width:42px;height:430px;border-left:2px solid #9AA8A7;
  border-right:2px solid #9AA8A7;transform:rotate(3deg);opacity:.62;
}
.pd-zoom{
  position:absolute;left:15px;bottom:31px;width:36px;background:#fff;border:1px solid #D6E1E0;
  box-shadow:0 2px 5px rgba(0,0,0,.12);z-index:4;
}
.pd-zoom button{
  width:34px;height:34px;border:none;background:#fff;color:var(--teal);font-size:25px;line-height:1;cursor:pointer;
}
.pd-zoom button+button{border-top:1px solid #D6E1E0;}
.pd-address{display:flex;align-items:center;gap:4px;margin-top:13px;font-size:13px;color:#242424;}
.pd-address svg{width:14px;height:14px;}
.pd-address img{width:18px;height:18px;flex-shrink:0;}
.pd-map-note{margin-top:6px;font-size:12px;line-height:1.5;color:#6b7280;}
.pd-map-link{display:block;margin-top:4px;color:#0076FF;text-decoration:none;font-size:13px;}
.pd-file-pane{padding-top:0;}
.pd-file-controls{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin:0 0 28px;
}
.pd-file-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pd-file-chip{
  height:26px;padding:0 13px;border:1px solid var(--teal);border-radius:13px;background:#fff;
  color:var(--teal);font-family:inherit;font-size:11px;font-weight:500;cursor:pointer;
}
.pd-file-chip.active{background:var(--teal);color:#fff;}
.pd-file-search{
  margin-left:auto;width:clamp(320px,33vw,500px);height:38px;border:1px solid #CFE0DF;border-radius:19px;
  display:flex;align-items:center;gap:10px;padding:0 18px;color:var(--text-sub);background:#fff;
}
.pd-file-search svg{width:20px;height:20px;color:#C7CDCF;flex-shrink:0;}
.pd-file-search input{
  border:none;outline:none;background:transparent;min-width:0;flex:1;
  font-family:inherit;font-size:13px;font-weight:500;color:var(--text);
}
.pd-file-search input::placeholder{color:#BCBCBC;}
.pd-file-search-x{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;padding:0;
  background:#E4EEED;color:#6b7a78;
}
.pd-file-search-x:hover{background:#C8DAD8;color:var(--text);}
.pd-file-search-x svg{width:11px;height:11px;color:inherit;}
.pd-file-view{
  display:flex;align-items:center;gap:9px;color:#6F7878;justify-self:end;
}
.pd-file-view button{border:none;background:none;color:inherit;cursor:pointer;padding:0;line-height:0;}
.pd-file-view svg{width:23px;height:23px;display:block;}
.pd-file-list{display:flex;flex-direction:column;}
.pd-file-item{
  position:relative;display:grid;grid-template-columns:clamp(92px,10vw,108px) minmax(0,1fr) 42px;gap:11px;
  min-height:92px;padding:10px 0;border-bottom:1px solid #D3E1E0;
  cursor:pointer;
}
.pd-file-item.is-hidden{display:none;}
.pd-file-item:hover{background:#FAFCFC;}
.pd-file-item+.pd-file-item{padding-top:10px;}
.pd-file-thumb{
  width:100%;height:68px;background:#D8D8D8 center/cover no-repeat;align-self:start;overflow:hidden;
  box-shadow:inset 0 0 0 1px #D3E1E0;
}
.pd-file-item:nth-child(6n+1) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/thumb-1.jpg");}
.pd-file-item:nth-child(6n+2) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/thumb-2.jpg");}
.pd-file-item:nth-child(6n+3) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/thumb-3.jpg");}
.pd-file-item:nth-child(6n+4) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/thumb-4.jpg");}
.pd-file-item:nth-child(6n+5) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/thumb-5.jpg");}
.pd-file-item:nth-child(6n+6) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/thumb-6.jpg");}
.pd-file-thumb img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;}
.pd-file-main{padding-top:5px;min-width:0;}
.pd-file-name{font-size:14px;font-weight:600;color:#242424;line-height:1.35;margin-bottom:4px;}
.pd-file-desc{font-size:12px;line-height:1.55;color:#6F7878;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pd-file-link{
  display:inline-flex;align-items:center;gap:5px;margin-top:4px;color:#0076FF;
  font-size:11px;line-height:1.4;text-decoration:none;
}
.pd-file-link svg{width:12px;height:12px;color:#8A9494;flex-shrink:0;}
.pd-file-add{
  align-self:center;justify-self:end;width:22px;height:22px;border:1px solid var(--teal);
  border-radius:3px;background:#fff;color:var(--teal);font-size:20px;line-height:18px;
  font-family:'Roboto','Noto Sans JP',sans-serif;font-weight:400;cursor:pointer;
}
.pd-file-add:hover{background:#F2FBFB;}
@media (max-width:1180px){
  .pd-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));}
  .pd-side{width:min(380px,100%);}
  .pd-map{max-width:100%;}
}
@media (max-width:860px){
  .pd-hero{padding-top:30px;padding-bottom:22px;}
  .pd-hero-inner{display:block;}
  .pd-add{margin-top:16px;}
  .pd-body{padding:20px 0 34px;}
  .pd-grid{grid-template-columns:1fr;}
  .pd-side{width:auto;max-width:none;}
  .pd-card-head{flex-direction:column;align-items:stretch;gap:14px;}
  .pd-card.file-mode .pd-card-head{margin-bottom:22px;}
  .pd-file-controls{grid-template-columns:1fr;align-items:flex-start;}
  .pd-file-search{margin-left:0;width:100%;}
  .pd-file-view{justify-self:start;}
  .pd-file-item{grid-template-columns:92px minmax(0,1fr) 34px;}
}
@media (prefers-reduced-motion:reduce){
  .property-detail,
  .property-detail.open{transition:none;}
}

/* ---- Filter FAB & panel ---- */
.fab{
  position:absolute;right:14px;bottom:16px;background:var(--panel);cursor:pointer;
  border:none;box-shadow:inset 0 0 0 1px #D6E1E0;
  border-radius:19px;height:38px;width:137px;padding:0;
  display:flex;align-items:center;justify-content:center;
  font-weight:600;font-size:12px;color:var(--teal);
  filter:drop-shadow(0 4px 10px rgba(171,200,194,.6));
  font-family:inherit;z-index:20;overflow:hidden;position:absolute;
  transition:width .46s cubic-bezier(.3,1.04,.28,1), color .18s ease, box-shadow .18s ease;
}
.fab::before{
  content:"";position:absolute;top:0;bottom:0;left:0;width:calc(100% + 28px);
  background:linear-gradient(90deg,
    #00A3AA 0%,
    #32DAA9 calc(100% - 28px),
    rgba(50,218,169,.72) calc(100% - 15px),
    rgba(50,218,169,0) 100%
  );
  transform:translateX(-100%);
  transition:transform .24s cubic-bezier(.3,1.04,.28,1);
  z-index:0;
}
.fab:hover{color:#fff;box-shadow:none;}
.fab:hover::before{transform:translateX(0);}
.fab svg{position:relative;z-index:1;}
.fab span{position:relative;z-index:1;}
@media (prefers-reduced-motion:reduce){
  .fab::before{transition:none;}
}
.fab .fab-main{
  display:flex;align-items:center;gap:7px;white-space:nowrap;
  position:relative;z-index:1;
  transition:opacity .22s ease .18s, transform .36s ease .12s;
}
.fab .fab-chev{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:rotate(-180deg) scale(.7);pointer-events:none;
  z-index:1;
  transition:opacity .2s ease, transform .42s cubic-bezier(.3,1.04,.28,1);
}
.fab.collapse{width:38px;}
.fab.collapse .fab-main{
  opacity:0;transform:scale(.6);pointer-events:none;
  transition:opacity .18s ease, transform .3s ease;
}
.fab.collapse .fab-chev{
  opacity:1;transform:rotate(0deg) scale(1);
  transition:opacity .24s ease .14s, transform .52s cubic-bezier(.3,1.04,.28,1) .1s;
}
@media (prefers-reduced-motion:reduce){
  .fab,.fab .fab-main,.fab .fab-chev{transition:none;}
}
/* ---- Filter panel（Figma実測ベース：w320 / 1pxヘアライン / 10-12pxタイポ） ---- */
.filter-panel{
  position:absolute;top:78px;right:20px;bottom:74px;width:320px;max-width:calc(100% - 40px);
  background:var(--panel);border-radius:6px;
  filter:drop-shadow(0 4px 15px rgba(171,200,194,.7));
  padding:20px 12px 18px;z-index:30;
  display:flex;flex-direction:column;gap:14px;
  transform:translateX(24px);opacity:0;pointer-events:none;transition:all .22s ease;
}
.filter-panel.open{transform:none;opacity:1;pointer-events:auto;}
.fp-reset{
  position:absolute;top:10px;right:11px;
  color:var(--teal);font-weight:600;font-size:10px;line-height:16px;
  background:none;border:none;cursor:pointer;font-family:inherit;
}
.fp-label{color:#374151;font-size:11px;font-weight:700;line-height:16px;display:block;}
.fp-block{display:flex;flex-direction:column;gap:7px;}
.fp-select-wrap{
  background:#FCFCFD;border:1px solid #D6E1E0;border-radius:3.4px;
  padding:11px;display:flex;flex-direction:column;gap:6px;
}
.fp-select{
  height:38px;background:#fff;border:1px solid #D6E1E0;border-radius:3.4px;
  padding:0 7px;width:100%;display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;font-family:inherit;
}
.fp-select .txt{color:#1F2933;font-size:12px;font-weight:600;line-height:13px;text-align:left;}
.fp-select svg{width:10px;height:6px;color:#1F2933;flex-shrink:0;}
.fp-note{color:#1F2933;font-size:10px;font-weight:400;line-height:15.4px;}
.fp-tabs{display:flex;align-items:center;border-bottom:1px solid #D6E1E0;flex-shrink:0;}
/* タブは「フィルタ」「条件指定」の2つ（20260817 で「履歴・共有」を廃止） */
.fp-tab{
  width:50%;padding:9px 0;text-align:center;
  font-size:12px;font-weight:400;color:#000;line-height:normal;cursor:pointer;
  border:none;background:none;font-family:inherit;
  border-bottom:5px solid transparent;margin-bottom:-1px;
}
.fp-tab.active{font-weight:700;border-bottom-color:var(--teal);}
/* タブ配下はスクロール領域 */
.fp-scroll{
  flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;
  display:flex;flex-direction:column;gap:18px;
  padding:2px 2px 12px;
  scrollbar-width:thin;scrollbar-color:#C8DAD8 transparent;
}
.fp-scroll > *{min-width:0;max-width:100%;}
.fp-scroll::-webkit-scrollbar{width:2px;}
.fp-scroll::-webkit-scrollbar-thumb{background:#C8DAD8;border-radius:3px;}
.fp-pane{display:flex;flex-direction:column;gap:18px;}
.fp-grid3{grid-template-columns:repeat(3,minmax(0,1fr));}
.fp-link{
  color:var(--teal);font-size:12px;font-weight:400;line-height:normal;cursor:pointer;
  background:none;border:none;font-family:inherit;text-align:left;padding:2px 0 0;
}
.fp-range input.dashed{border-style:dashed;border-color:#D6E1E0;}
.fp-tech{display:flex;align-items:center;gap:6px;}
.fp-mini-select{
  height:31.4px;background:#fff;border:1px solid #D6E1E0;border-radius:3.4px;
  padding:0 8px;display:flex;align-items:center;gap:6px;flex-shrink:0;
  font-family:inherit;font-size:10.3px;color:#374151;cursor:pointer;
}
.fp-mini-select svg{width:9px;height:5.5px;color:#374151;}
.fp-toggles{display:flex;flex-direction:column;gap:8px;}
.fp-sub{display:flex;flex-direction:column;gap:8px;align-items:center;}
.fp-sub .fp-label{width:100%;}
.fp-sub-input{
  height:38px;width:100%;background:#fff;
  border:1px solid #D6E1E0;border-radius:3.4px;padding:0 8px;
  display:flex;align-items:center;gap:6px;
}
.fp-sub-input input{
  border:none;outline:none;background:none;flex:1;min-width:0;
  font-family:inherit;font-size:10.3px;font-weight:400;color:var(--text);line-height:16px;
}
.fp-sub-input input::placeholder{color:#C4C4C4;}
.fp-sub-input .x{width:8px;height:8px;color:var(--text);display:flex;flex-shrink:0;cursor:pointer;}
.fp-add{
  color:var(--teal);font-size:12px;font-weight:400;line-height:normal;
  background:none;border:none;cursor:pointer;font-family:inherit;
}
.fp-plus{width:18px;height:18px;color:var(--teal);display:flex;cursor:pointer;background:none;border:none;padding:0;}
.fp-group{display:flex;flex-direction:column;gap:4px;}
.fp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
.fp-check{
  height:31.4px;background:#fff;
  border:1px solid #D6E1E0;border-radius:3.4px;padding:0 8px;
  display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;
}
.fp-check:hover{border-color:var(--teal);}
.fp-check span{
  color:#374151;font-size:10.3px;font-weight:500;line-height:16px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.fp-check input.chk{
  width:12px;height:12px;border:1px solid #D6E1E0;border-radius:2.1px;flex-shrink:0;
}
.fp-check input.chk:checked::after{left:3.2px;top:0.5px;width:3.5px;height:6.5px;border-width:0 1.6px 1.6px 0;}
.fp-range{display:flex;align-items:center;gap:6px;}
.fp-range input{
  height:31.4px;flex:1;min-width:0;background:#fff;
  border:1px solid #D6E1E0;border-radius:3.4px;padding:0 8px;
  font-family:inherit;font-size:10.3px;color:var(--text);outline:none;
}
.fp-range input::placeholder{color:#C4C4C4;}
.fp-range .tilde{color:#374151;font-size:10.3px;flex-shrink:0;}
.fp-range .unit{color:#6B7280;font-size:10.3px;flex-shrink:0;}
.fp-toggle-card{
  min-height:47.7px;background:#F8FAFC;
  border:1px solid #D6E1E0;border-radius:3.4px;padding:8.6px 9.4px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.fp-toggle-card .txt{flex:1;min-width:0;}
.fp-toggle-card .t1{color:#374151;font-size:10.3px;font-weight:700;line-height:16px;}
.fp-toggle-card .t2{color:#6B7280;font-size:9.4px;font-weight:500;line-height:14.6px;}
.switch{
  width:32.6px;height:18.9px;border-radius:10px;background:#CBD5E1;
  position:relative;cursor:pointer;border:none;transition:background .15s;flex-shrink:0;
}
.switch::after{
  content:"";position:absolute;top:1.7px;left:1.7px;width:15.4px;height:15.4px;border-radius:50%;
  background:#fff;transition:left .15s;box-shadow:0 0.86px 2.57px rgba(0,0,0,.18);
}
.switch.on{background:var(--teal);}
.switch.on::after{left:15.5px;}
.filter-panel{
  width:384px;top:76px;right:20px;bottom:66px;
  max-width:calc(100% - 40px);
  padding:24px 14px 22px;gap:17px;border-radius:7px;
}
.fp-reset{top:12px;right:13px;font-size:12px;line-height:19px;}
.fp-label{font-size:13px;font-weight:600;line-height:19px;}
.fp-block{gap:8px;}
.fp-select-wrap{border-radius:4px;padding:13px;gap:7px;}
.fp-select{height:46px;border-radius:4px;padding:0 9px;}
.fp-select .txt{font-size:14.4px;line-height:16px;}
.fp-select svg{width:12px;height:7px;}
.fp-note{font-size:12px;line-height:18.5px;}
.fp-tabs{border-bottom-width:1.2px;}
.fp-tab{padding:11px 0;font-size:14px;border-bottom-width:6px;}
.fp-tab.active{font-weight:600;}
.fp-scroll{gap:22px;padding:2px 2px 14px;}
.fp-pane{gap:22px;}
.fp-link,.fp-add{font-size:14.4px;}
.fp-tech{gap:7px;}
.fp-mini-select{height:38px;border-radius:4px;padding:0 10px;gap:7px;font-size:12.4px;}
.fp-mini-select svg{width:11px;height:7px;}
.fp-toggles,.fp-sub{gap:10px;}
.fp-sub-input{height:46px;border-radius:4px;padding:0 10px;gap:7px;}
.fp-sub-input input{font-size:12.4px;line-height:19px;}
.fp-sub-input .x{width:10px;height:10px;}
.fp-plus{width:22px;height:22px;}
.fp-group{gap:5px;}
.fp-grid{gap:7px;}
.fp-check{height:38px;border-radius:4px;padding:0 10px;gap:7px;}
.fp-check span{font-size:12.4px;line-height:19px;}
.fp-check input.chk{width:14px;height:14px;border-radius:2.5px;}
.fp-check input.chk:checked::after{left:3.9px;top:.9px;width:4px;height:7.8px;border-width:0 1.9px 1.9px 0;}
.fp-range{gap:7px;}
.fp-range input{height:38px;border-radius:4px;padding:0 10px;font-size:12.4px;}
.fp-range .tilde,.fp-range .unit{font-size:12.4px;}
.fp-toggle-card{min-height:57px;border-radius:4px;padding:10px 11px;gap:12px;}
.fp-toggle-card .t1{font-size:12.4px;font-weight:600;line-height:19px;}
.fp-toggle-card .t2{font-size:11.3px;line-height:17.5px;}
.switch{width:39px;height:23px;border-radius:12px;}
.switch::after{top:2px;left:2px;width:19px;height:19px;}
.switch.on::after{left:18px;}
/* ---- History drawer ---- */
.backdrop{
  position:fixed;inset:0;left:var(--sbw);background:rgba(40,50,50,.4);
  opacity:0;pointer-events:none;transition:opacity .45s ease;z-index:40;
}
.backdrop.show{opacity:1;pointer-events:auto;}
.history{
  position:fixed;top:0;bottom:0;left:var(--sbw);width:350px;max-width:72vw;background:#fff;z-index:50;
  box-shadow:8px 0 30px rgba(20,60,60,.14);display:flex;flex-direction:column;padding:24px 16px;
  transform:translateX(calc(-100% - 304px));visibility:hidden;
  transition:transform .58s cubic-bezier(.30,1.04,.28,1), visibility 0s linear .58s;
  will-change:transform;
}
.history.open{
  transform:translateX(0);visibility:visible;
  transition:transform .58s cubic-bezier(.30,1.04,.28,1), visibility 0s;
}
@media (prefers-reduced-motion:reduce){
  .history,.history.open{transition:none;}
}
.hist-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;padding:0 2px;}
.hist-title{font-weight:600;font-size:13px;color:var(--teal);}
.hist-close{background:none;border:none;cursor:pointer;color:var(--teal);display:flex;padding:2px;}
.hist-close svg{width:20px;height:20px;}
/* 検索BOX: ベースは薄いグレー、ルーペ／プレースホルダも薄いグレー（20260817） */
.hist-search{
  display:flex;align-items:center;gap:9px;background:#F4F6F6;border-radius:17px;
  height:34px;padding:0 14px;margin-bottom:26px;color:var(--text-sub);flex-shrink:0;
}
.hist-search svg{width:16px;height:16px;}
.hist-search input{border:none;outline:none;background:none;flex:1;font-family:inherit;font-size:13px;color:#929B9D;}
.hist-search input::placeholder{color:#AEB6B8;opacity:1;}
.hist-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:2px;}
.hist-list{scrollbar-width:thin;scrollbar-color:#B8BFC1 transparent;}
.hist-list::-webkit-scrollbar{width:2px;}
.hist-list::-webkit-scrollbar-track{background:transparent;}
.hist-list::-webkit-scrollbar-thumb{background:#B8BFC1;border-radius:4px;}
.hist-item{
  display:flex;align-items:center;gap:4px;height:32px;flex-shrink:0;padding:0 9px;border-radius:8px;
  color:var(--teal);font-size:13px;font-weight:400;cursor:pointer;
}
.hist-item:hover,.hist-item.menu-open{background:#EEF2F2;}
.hist-item .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hist-item .pin-mark{flex-shrink:0;font-size:13px;}
.hist-item .more,.pin-item .more,.board-item .more{
  visibility:hidden;background:none;border:none;cursor:pointer;color:var(--text-sub);
  padding:0 6px;font-size:18px;line-height:1;font-family:inherit;flex-shrink:0;
}
.hist-item:hover .more,.hist-item.menu-open .more,
.pin-item:hover .more,.pin-item.menu-open .more,
.board-item:hover .more,.board-item.menu-open .more{visibility:visible;}
.hist-item input.rename,.pin-item input.rename,.board-item input.rename{
  flex:1;min-width:0;font-family:inherit;font-size:13px;border:1.5px solid var(--teal);
  border-radius:8px;padding:6px 10px;outline:none;color:var(--text);
}
.hist-item.rename-open{padding:0;background:transparent;}
.hist-item.rename-open input.rename{width:100%;height:32px;margin:0;padding:0 9px;box-sizing:border-box;}
.hist-empty{color:var(--text-sub);text-align:center;padding:40px 0;font-size:12.5px;}
/* ---- Activity log ---- */
.activity{
  width:351px;max-width:calc(100vw - var(--sbw));padding:24px 18px 30px;
  box-shadow:none;
}
.activity .hist-title{
  font-size:16px;font-weight:600;line-height:1.3;color:var(--teal);margin-left:2px;
  transform:translateY(6px);
}
.activity .hist-head{align-items:center;margin-bottom:30px;padding:0;}
.act-readall{
  color:var(--teal);font-size:12px;font-weight:600;line-height:1.25;
  background:none;border:none;cursor:pointer;font-family:inherit;margin-right:1px;padding:0;
}
.activity .hist-close{width:14px;height:14px;padding:0;margin-top:0;font-size:14px;}
.activity .hist-close svg{width:14px;height:14px;stroke-width:1.5;}
.act-tabs{display:flex;gap:27px;border-bottom:none;margin-bottom:15px;flex-shrink:0;}
.act-tab{
  min-width:0;padding:0 0 12px;font-size:13px;line-height:1.25;color:var(--text);font-weight:500;
  border:none;background:none;cursor:pointer;font-family:inherit;position:relative;text-align:left;
}
.act-tab.active{min-width:77px;color:var(--teal);font-weight:600;text-align:center;}
.act-tab.active::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2.5px;
  background:var(--teal);border-radius:0;
}
.act-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:0;padding-right:0;}
.act-item{
  display:block;padding:0 12px;border-radius:0;cursor:pointer;position:relative;
  margin-bottom:25px;
}
.act-item:hover{background:transparent;}
.act-item.unread{
  min-height:71px;padding:11px 12px 10px;border-radius:5px;background:#EFF8F8;
  margin-bottom:8px;
}
.act-item.unread + .act-item:not(.unread){margin-top:7px;}
.act-body{min-width:0;padding-right:17px;}
.act-title{font-size:12px;font-weight:600;color:#000;line-height:1.28;}
.act-desc{font-size:10px;color:#96A0A0;line-height:1.35;margin-top:3px;font-weight:400;}
.act-time{font-size:10px;color:#96A0A0;line-height:1.35;margin-top:8px;display:block;font-weight:400;}
.act-dot{
  width:8px;height:8px;border-radius:50%;background:var(--teal);
  position:absolute;right:12px;top:14px;
}
.act-foot{display:block;margin-top:0;}
.act-foot .act-time{margin-top:8px;}
.act-toggle{
  display:none;
}
.ctx-menu{
  position:fixed;background:#fff;border-radius:14px;box-shadow:0 10px 34px rgba(20,60,60,.24);
  padding:10px 0;min-width:214px;z-index:90;display:none;
}
.ctx-menu.show{display:block;}
.ctx-item{
  display:flex;align-items:center;gap:12px;width:100%;padding:12px 20px;background:none;border:none;
  cursor:pointer;font-family:inherit;font-size:14.5px;color:var(--text);text-align:left;
}
.ctx-item:hover{background:#F2F8F8;}
.ctx-item svg{flex-shrink:0;}
.ctx-item.danger{color:#B23A48;}
.ctx-sep{height:1px;background:var(--line);margin:8px 16px;}


/* ---- Settings（フルスクリーン設定画面） ---- */
.settings{
  position:fixed;inset:0;background:#fff;z-index:100;
  display:none;flex-direction:column;
}
.settings.open{display:flex;animation:stgIn .25s ease;}
@keyframes stgIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.stg-header{
  display:flex;align-items:center;gap:18px;
  padding:0 28px;height:64px;border-bottom:1px solid var(--line);flex-shrink:0;
}
.stg-back{background:none;border:none;cursor:pointer;color:var(--text);display:flex;padding:4px;}
.stg-header h1{font-size:17px;font-weight:700;}
.stg-user{margin-left:auto;font-size:13px;color:var(--text);}
.stg-user b{font-weight:600;}
.stg-body{flex:1;min-height:0;display:flex;}
.stg-nav{
  width:280px;flex-shrink:0;background:#FAFCFC;border-right:1px solid var(--line);
  padding:24px 16px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;
}
.stg-nav-item{
  display:flex;align-items:center;height:44px;padding:0 16px;border-radius:8px;
  font-size:14px;color:var(--text-sub);cursor:pointer;border:none;background:none;
  font-family:inherit;text-align:left;font-weight:500;
}
.stg-nav-item:hover{background:#F0F5F5;color:var(--text);}
.stg-nav-item.active{background:var(--teal);color:#fff;font-weight:700;}
.stg-nav-sec{
  font-size:12px;font-weight:700;color:var(--text);
  padding:22px 16px 8px;
}
.stg-main{flex:1;min-width:0;overflow-y:auto;padding:36px 48px 64px;}
.stg-title{font-size:22px;font-weight:400;margin-bottom:36px;}
.stg-content{max-width:720px;margin:0 auto;}
.stg-account-head{display:flex;gap:28px;align-items:flex-start;}
.stg-avatar{
  position:relative;width:88px;height:88px;border-radius:50%;flex-shrink:0;cursor:pointer;
  background:linear-gradient(135deg,#B9CFCB,#7FA8A2);
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:700;
  overflow:hidden;
}
.stg-avatar em{
  position:absolute;left:0;right:0;bottom:0;height:26px;
  background:rgba(0,0,0,.45);color:#fff;font-size:11px;font-style:normal;
  display:flex;align-items:center;justify-content:center;
}
.stg-fields{flex:1;display:flex;flex-direction:column;gap:22px;}
.stg-field label{display:block;font-size:12.5px;color:var(--text-sub);margin-bottom:8px;}
.stg-field input,.stg-field select{
  width:100%;height:52px;border:1px solid #D6E1E0;border-radius:6px;padding:0 16px;
  font-family:inherit;font-size:15px;color:var(--text);outline:none;background:#fff;
}
.stg-field input:focus,.stg-field select:focus{border-color:var(--teal);}
.stg-row2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.stg-sec{
  margin-top:34px;padding-top:18px;
}
.stg-sec-title{
  font-size:13px;color:var(--text-sub);padding-bottom:12px;border-bottom:1px solid var(--line);
}
.stg-pass-row{
  display:grid;grid-template-columns:220px 1fr;align-items:center;gap:24px;
  padding:14px 0;
}
.stg-pass-row label{font-size:13.5px;color:var(--text);}
.stg-pass-row input{
  height:48px;border:1px solid #D6E1E0;border-radius:6px;padding:0 14px;
  font-family:inherit;font-size:14px;outline:none;width:100%;max-width:420px;
}
.stg-pass-row input:focus{border-color:var(--teal);}
.stg-sec-end{border-bottom:1px solid var(--line);margin-top:6px;}
.stg-actions{display:flex;justify-content:center;gap:24px;margin-top:44px;}
.stg-btn{
  min-width:180px;height:52px;border-radius:6px;border:none;cursor:pointer;
  font-family:inherit;font-size:15px;font-weight:500;
}
.stg-btn.cancel{background:#EFF2F2;color:var(--text);}
.stg-btn.save{background:var(--teal);color:#fff;font-weight:700;}
.stg-btn.save:hover{background:var(--teal-dark);}
.stg-toggle-row{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 4px;border-bottom:1px solid var(--line);
}
.stg-toggle-row .t1{font-size:14.5px;color:var(--text);font-weight:500;}
.stg-toggle-row .t2{font-size:12.5px;color:var(--text-sub);margin-top:3px;}
.stg-switch{
  width:46px;height:26px;border-radius:13px;background:#CBD5E1;
  position:relative;cursor:pointer;border:none;transition:background .15s;flex-shrink:0;
}
.stg-switch::after{
  content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
  background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.stg-switch.on{background:var(--teal);}
.stg-switch.on::after{left:23px;}
.stg-member{
  display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line);
}
.stg-member .mv{width:38px;height:38px;border-radius:50%;background:var(--teal-pale);color:var(--teal);
  display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;}
.stg-member .mi{flex:1;min-width:0;}
.stg-member .mn{font-size:14px;font-weight:600;}
.stg-member .md{font-size:12px;color:var(--text-sub);}
.stg-member .mr{
  font-size:12.5px;color:var(--text);border:1px solid #D6E1E0;border-radius:6px;
  padding:6px 12px;background:#fff;
}
.stg-invite{
  align-self:flex-start;margin-top:18px;
  border:1px solid var(--teal);color:var(--teal);background:#fff;border-radius:999px;
  padding:10px 24px;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;
}

.toast{
  position:fixed;left:calc(50% + (var(--sbw) / 2));bottom:34px;transform:translateX(-50%) translateY(16px) scale(.96);
  background:#2E3A3A;color:#fff;border-radius:999px;padding:11px 24px;font-size:13.5px;
  opacity:0;pointer-events:none;transition:opacity .28s ease,transform .34s cubic-bezier(.22,1,.36,1);z-index:9999;white-space:nowrap;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0) scale(1);}
.confirm-layer{
  position:absolute;inset:0;display:none;align-items:center;justify-content:center;
  background:rgba(19,34,34,.18);z-index:80;padding:24px;
}
.confirm-layer.show{display:flex;}
.confirm-dialog{
  width:380px;background:#fff;border:1px solid #D6E1E0;border-radius:10px;
  box-shadow:0 14px 36px rgba(43,76,76,.22);padding:24px 26px 22px;
  color:var(--text);animation:pop .18s ease-out;
}
.confirm-message{
  font-size:15px;line-height:1.85;font-weight:600;text-align:center;
  margin:2px 0 22px;
}
.confirm-actions{display:flex;justify-content:center;gap:14px;}
.confirm-actions button{
  min-width:112px;height:38px;border-radius:19px;font-family:inherit;
  font-size:13px;font-weight:700;cursor:pointer;
}
.confirm-cancel{border:1px solid #D6E1E0;background:#fff;color:var(--text-sub);}
.confirm-ok{border:1px solid var(--teal);background:var(--teal);color:#fff;}
.confirm-cancel:hover{background:#F7FAFA;color:var(--text);}
.confirm-ok:hover{background:var(--teal-dark);border-color:var(--teal-dark);}


/* ================= 実アプリ適合レイヤ ================= */
/* 旧デザイントークンを新パレットへエイリアス（移植コンポーネント用） */
:root{
  --color-primary:var(--teal);
  --color-primary-dark:var(--teal-dark);
  --color-primary-darker:#00747A;
  --color-primary-light:var(--teal-pale);
  --color-primary-lighter:#F2FBFB;
  --color-accent:#E0556E;
  --color-accent-light:#FCE8EC;
  --color-bg:#ffffff;
  --color-bg-sub:var(--bg);
  --color-bg-hover:#EEF5F4;
  --color-text:var(--text);
  --color-text-sub:var(--text-sub);
  --color-text-faint:#ADB8B8;
  --color-border:var(--line);
  --color-border-strong:#C8DAD8;
  --radius-card:12px;
  --radius-input:8px;
  --radius-pill:999px;
  --shadow-card:0 2px 8px rgba(20,60,60,.06);
  --shadow-pop:0 6px 24px rgba(20,60,60,.14);
  --grad-badge:var(--teal-grad);
  --font-family:'Hiragino Sans','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
}


/* ===== 旧UIから移植（機能コンポーネント） ===== */
.model-dropdown {
  position: relative;
  display: inline-block;
}
.model-dropdown-btn {
  background: #fff;
  color: #1a1a1a;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 4px 24px 4px 8px;
  font-size: 13px;
  cursor: pointer;
  min-width: 80px;
  text-align: left;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 6px center;
}
.model-dropdown-btn:hover { border-color: #999; }
.model-dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  min-width: 220px;
  z-index: 1000;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  overflow: hidden;
}
.model-dropdown-menu.open { display: block; }
.model-option {
  padding: 8px 12px 8px 32px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
}
.model-option:hover { background: #f0f0f0; }
.model-option.selected { background: #e8e8e8; }
.model-option.selected::before {
  content: '\2713';
  position: absolute;
  left: 10px;
  top: 9px;
  color: #1a1a1a;
  font-size: 13px;
}
.model-option-label {
  color: #1a1a1a;
  font-size: 13px;
  font-weight: 500;
}
.model-option-desc {
  color: #888;
  font-size: 11px;
}
.model-option-group {
  padding: 8px 12px 8px 32px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
.model-option-group:hover { background: #f0f0f0; }
.model-option-group .model-option-label { color: #1a1a1a; font-size: 13px; font-weight: 500; }
.model-option-group .arrow {
  color: #888;
  font-size: 11px;
  transition: transform 0.2s;
}
.model-option-group.open .arrow { transform: rotate(90deg); }
.model-sub-options {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}
.model-sub-options.open { max-height: 300px; }
.model-sub-option {
  padding: 8px 12px 8px 48px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
}
.model-sub-option:hover { background: #f0f0f0; }
.model-sub-option.selected { background: #e8e8e8; }
.model-sub-option.selected::before {
  content: '\2713';
  position: absolute;
  left: 26px;
  top: 9px;
  color: #1a1a1a;
  font-size: 13px;
}

/* Markdown レンダリング */
.bubble h1, .bubble h2, .bubble h3 { margin: 12px 0 6px; }
.bubble h1 { font-size: 1.3em; }
.bubble h2 { font-size: 1.15em; }
.bubble h3 { font-size: 1.05em; }
.bubble p { margin: 6px 0; }
.bubble ul, .bubble ol { margin: 6px 0; padding-left: 20px; }
.bubble hr { border: none; border-top: 1px solid #e0e0e0; margin: 12px 0; }
.bubble a { color: var(--color-primary); text-decoration: none; }
.bubble a:hover { text-decoration: underline; }

.bubble table {
  border-collapse: collapse;
  width: 100%;
  margin: 10px 0;
  font-size: 13px;
}
.bubble th, .bubble td {
  border: 1px solid #ddd;
  padding: 6px 10px;
  text-align: left;
}
.bubble th {
  background: #f5f5f5;
  font-weight: 600;
  white-space: nowrap;
}
.bubble tr:nth-child(even) { background: #fafafa; }
.bubble tr:hover { background: #f5f5f5; }
.sources {
  margin-top: 12px;
  border-top: 1px solid #eee;
  padding-top: 8px;
}

.sources details summary {
  font-size: 12px;
  color: #888;
  font-weight: 600;
  cursor: pointer;
  margin-bottom: 6px;
  user-select: none;
}

.sources details summary:hover {
  color: #555;
}

.sources-title {
  font-size: 12px;
  color: #888;
  margin-bottom: 6px;
  font-weight: 600;
}

.source-item {
  font-size: 12px;
  color: #555;
  padding: 4px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.source-item a {
  color: var(--color-primary);
  text-decoration: none;
  font-size: 11px;
}

.source-item a:hover { text-decoration: underline; }

.usage-info {
  margin-top: 8px;
  font-size: 11px;
  color: #aaa;
}

/* 建物グループ */
.property-groups {
  margin-top: 16px;
  border-top: 2px solid #e0e0e0;
  padding-top: 12px;
}
.property-groups > details > summary {
  font-size: 13px;
  font-weight: 700;
  color: #333;
  margin-bottom: 10px;
  cursor: pointer;
  user-select: none;
}
.property-groups > details > summary:hover {
  color: #000;
}
.property-groups .sources-title {
  font-size: 13px;
  font-weight: 700;
  color: #333;
  margin-bottom: 10px;
}
.building-group {
  margin-bottom: 10px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
}
.building-group-header {
  background: #f5f5f5;
  padding: 8px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
}
.building-group-header:hover { background: #ebebeb; }
.building-group-header h4 { font-size: 13px; margin: 0; color: #333; }
.building-group-header .group-info { display: flex; align-items: center; gap: 8px; }
.building-group-header .count { font-size: 12px; color: #888; }
.building-group-header .toggle { font-size: 11px; color: #aaa; }
.excel-btn {
  background: var(--color-primary); color: #fff; border: none; border-radius: 4px;
  padding: 4px 10px; font-size: 11px; cursor: pointer; white-space: nowrap;
}
.excel-btn:hover { background: var(--color-primary-dark); }
.excel-btn:disabled { background: #999; cursor: not-allowed; }
.building-group-body { overflow-x: auto; }
.building-group-body.collapsed { display: none; }
.prop-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.prop-table th {
  background: #f8f8f8; padding: 5px 8px; text-align: left;
  font-weight: 600; white-space: nowrap; border-bottom: 2px solid #ddd;
}
.prop-table td { padding: 4px 8px; border-bottom: 1px solid #eee; }
.prop-table tr:hover { background: #f5f5f5; }
.prop-table a { color: var(--color-primary); text-decoration: none; font-size: 11px; }
/* PDF Viewer Modal */
.pdf-modal-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.6);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pdf-modal {
  background: #fff;
  border-radius: 12px;
  width: 90vw;
  height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}
.pdf-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #f5f5f5;
  border-bottom: 1px solid #ddd;
  min-height: 48px;
}
.pdf-modal-title {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  margin-right: 12px;
}
.pdf-modal-close {
  background: none;
  border: 1px solid #ccc;
  border-radius: 6px;
  width: 32px;
  height: 32px;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
  flex-shrink: 0;
}
.pdf-modal-close:hover { background: #eee; color: #333; }
.pdf-modal-body {
  flex: 1;
  overflow: hidden;
}
/* ファイルメタデータ表示モーダル */
.file-meta-modal { width: min(720px, 92vw); height: auto; max-height: 86vh; }
.file-meta-modal .pdf-modal-body { overflow: auto; padding: 16px 18px 20px; }
.file-meta-view-btn {
  flex-shrink: 0; margin-right: 8px; height: 32px; padding: 0 14px;
  border: 1px solid #B9DEDC; border-radius: 16px; background: #E4F2F1; color: #0F7C7C;
  font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
}
.file-meta-view-btn:hover { background: #CFE9E7; color: #0A5F5F; }
.file-meta-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.file-meta-table th, .file-meta-table td {
  border-bottom: 1px solid #ECEFEE; padding: 9px 10px; text-align: left; vertical-align: top;
  line-height: 1.7;
}
.file-meta-table th { width: 132px; color: #6b7280; font-weight: 600; white-space: nowrap; }
.file-meta-table td { color: #242424; word-break: break-word; }
.file-meta-actions { margin-top: 14px; }
.file-meta-link { color: #0F7C7C; font-size: 13px; font-weight: 600; text-decoration: none; }
.file-meta-link:hover { text-decoration: underline; }
.pdf-modal-body iframe {
  width: 100%;
  height: 100%;
  border: none;
}
.pdf-modal-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #888;
  font-size: 14px;
}

/* File view button in chat */
.file-view-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--color-primary-light);
  color: var(--color-primary);
  border: 1px solid #c3e0c3;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
  cursor: pointer;
  margin-left: 6px;
  vertical-align: middle;
}
.file-view-btn:hover { background: #d8eed8; }

/* Fulltext source file button */
.ft-file-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--color-primary-light);
  color: var(--color-primary);
  border: 1px solid #c3e0c3;
  border-radius: 4px;
  padding: 3px 10px;
  font-size: 12px;
  cursor: pointer;
  margin-left: 8px;
}
.ft-file-btn:hover { background: #d8eed8; }

/* Text viewer inside modal */
.file-modal-text {
  height: 100%;
  overflow-y: auto;
  padding: 20px 24px;
  margin: 0;
  font-family: 'Menlo', 'Consolas', 'Courier New', monospace;
  font-size: 13px;
  line-height: 1.7;
  white-space: pre-wrap;
  word-wrap: break-word;
  color: #333;
  background: #fafafa;
}
.file-modal-error {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #c33;
  font-size: 14px;
}

.fav-star-btn {
  background: none;
  border: none;
  color: #999;
  font-size: 15px;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
  vertical-align: middle;
}
.fav-star-btn:hover { color: #f5a623; }
.sources .fav-star-btn { margin-left: 4px; }

.fav-popover {
  position: fixed;
  z-index: 10001;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  min-width: 220px;
  max-width: 300px;
  font-size: 13px;
  overflow: hidden;
}
.fav-popover-title {
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 600;
  color: #888;
  border-bottom: 1px solid #eee;
}
.fav-popover-list { max-height: 220px; overflow-y: auto; }
.fav-popover-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  cursor: pointer;
  white-space: nowrap;
}
.fav-popover-item:hover { background: var(--color-primary-light); }
.fav-popover-item.added { color: var(--color-primary); cursor: default; }
.fav-popover-item.added:hover { background: none; }
.fav-popover-item .fav-popover-name { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.fav-popover-item .fav-popover-count { color: #aaa; font-size: 11px; flex-shrink: 0; }
.fav-popover-empty { padding: 10px 12px; color: #888; }
.fav-popover-new {
  display: flex;
  gap: 6px;
  padding: 8px;
  border-top: 1px solid #eee;
}
.fav-popover-new input {
  flex: 1;
  min-width: 0;
  border: 1px solid #ccc;
  border-radius: 6px;
  padding: 5px 8px;
  font-size: 12px;
}
.fav-popover-new button {
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
  flex-shrink: 0;
}
.fav-popover-new button:hover { background: var(--color-primary-dark); }

.fav-modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px;
}
.fav-modal-section-title {
  font-size: 13px;
  font-weight: 600;
  color: #555;
  margin: 12px 0 8px;
}
.fav-modal-section-title:first-child { margin-top: 0; }
.fav-modal-empty { color: #888; font-size: 13px; padding: 16px 0; text-align: center; }
.fav-item-delete {
  background: none;
  border: none;
  color: #aaa;
  cursor: pointer;
  font-size: 13px;
  padding: 0 4px;
}
.fav-item-delete:hover { color: #e55; }
.fav-rename-btn {
  background: none;
  border: none;
  color: #888;
  cursor: pointer;
  font-size: 13px;
  padding: 2px 6px;
  margin-left: 8px;
  flex-shrink: 0;
}
.fav-rename-btn:hover { color: #333; }

.conv-item .conv-count {
  color: #999;
  font-size: 11px;
  flex-shrink: 0;
  padding: 0 4px;
}

/* 条件指定 */
.sp-cond { margin-bottom: 14px; }
.sp-cond-label { font-size: 13px; color: #333; margin-bottom: 6px; }
.sp-seg { display: flex; border: 1px solid #ddd; border-radius: 8px; overflow: hidden; }
.sp-seg button {
  flex: 1; background: #fff; border: none; padding: 8px 4px; cursor: pointer; font-size: 12px; color: #777;
  border-right: 1px solid #eee;
}
.sp-seg button:last-child { border-right: none; }
.sp-seg button.active { background: var(--color-primary-light); color: #1f7a22; font-weight: 600; }
.sp-seg button.req.active { background: #fdeede; color: #d97a17; }
.sp-cond-note { font-size: 11px; color: #999; margin-bottom: 12px; }
#answer-scope-chip {
  display: none; align-items: center; gap: 8px; max-width: 760px; margin: 0 auto 8px;
  background: var(--color-bg-hover); border: 1px solid #cfe6cf; color: #1f7a22; border-radius: 16px;
  padding: 6px 14px; font-size: 12px;
}
#answer-scope-chip.show { display: flex; }
#answer-scope-chip button {
  background: none; border: none; color: #1f7a22; cursor: pointer; font-size: 14px; line-height: 1; padding: 0 2px;
}
#answer-scope-chip button:hover { color: #d33; }

/* 参照範囲の内訳ポップオーバー */
.scope-pop {
  position: fixed;
  z-index: 300;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-pop);
  padding: 10px;
  min-width: 260px;
  max-width: 360px;
}
.scope-pop-row {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 8px; border-radius: 8px; font-size: 12px;
}
.scope-pop-row:hover { background: var(--color-bg-sub); }
.scope-pop-label {
  flex-shrink: 0; font-size: 10px; font-weight: 700; color: var(--color-primary-dark);
  background: var(--color-primary-light); padding: 2px 8px; border-radius: var(--radius-pill);
}
.scope-pop-value { flex: 1; color: var(--color-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scope-pop-x {
  flex-shrink: 0; background: none; border: none; color: var(--color-text-faint);
  cursor: pointer; font-size: 14px; padding: 0 4px; border-radius: 4px;
}
.scope-pop-x:hover { color: var(--color-accent); }
.scope-pop-empty { font-size: 12px; color: var(--color-text-sub); padding: 8px; }
.scope-pop-note {
  font-size: 10.5px; color: var(--color-text-faint);
  border-top: 1px solid var(--color-border); margin-top: 6px; padding: 8px 8px 2px;
}
.model-dropdown-btn {
  background: none; border: none; cursor: pointer; color: var(--color-text-sub);
  font-size: 12px; font-weight: 600; padding: 6px 8px; border-radius: 8px; font-family: inherit;
}
.model-dropdown-btn::after { content: ' ▾'; font-size: 10px; }
.model-dropdown-btn:hover { background: var(--color-bg-hover); color: var(--color-text); }
.model-dropdown-menu { top: auto; bottom: calc(100% + 6px); }
/* サブプロンプト */
.sp-subprompt-row { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.sp-subprompt-input {
  flex: 1; padding: 9px 10px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-input);
  font-size: 12px; font-family: inherit;
}
.sp-subprompt-input:focus { outline: none; border-color: var(--color-primary); }
.sp-subprompt-input::placeholder { color: var(--color-text-faint); }
.sp-subprompt-x {
  background: none; border: none; color: var(--color-text-faint);
  font-size: 15px; cursor: pointer; padding: 4px 6px; border-radius: 6px; flex-shrink: 0;
}
.sp-subprompt-x:hover { color: var(--color-accent); }
.sp-subprompt-add {
  display: flex; align-items: center; gap: 6px; margin: 4px auto 0;
  background: none; border: none; color: var(--color-primary-dark);
  font-size: 12px; font-weight: 600; cursor: pointer; padding: 6px 10px; border-radius: 8px; font-family: inherit;
}
.sp-subprompt-add:hover { background: var(--color-primary-light); }
.sp-subprompt-status { font-size: 11px; color: var(--color-primary-dark); margin-top: 6px; }
.sp-subprompt-status.empty { color: var(--color-accent); }

/* チェックボックスグリッド */
.sp-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.sp-check {
  display: flex; align-items: center; gap: 7px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-input);
  padding: 8px 10px;
  font-size: 11.5px; color: var(--color-text);
  cursor: pointer; user-select: none;
  background: var(--color-bg);
}
.sp-check:hover { border-color: var(--color-primary); }
.sp-check input { accent-color: var(--color-primary); margin: 0; }
.sp-check:has(input:checked) { border-color: var(--color-primary); background: var(--color-primary-lighter); }
.sp-check.disabled { opacity: 0.45; cursor: not-allowed; }
.sp-check.disabled:hover { border-color: var(--color-border-strong); }

/* 同義語トグル */
.sp-toggle {
  display: flex; align-items: center; gap: 10px;
  background: var(--color-bg-sub);
  border-radius: var(--radius-card);
  padding: 10px 12px;
  cursor: pointer; user-select: none;
}
.sp-toggle-text { flex: 1; font-size: 12px; font-weight: 600; color: var(--color-text); }
.sp-toggle-text small { display: block; font-size: 10.5px; font-weight: 400; color: var(--color-text-sub); margin-top: 2px; }
.sp-toggle input { display: none; }
.sp-toggle-knob {
  width: 36px; height: 20px; border-radius: 10px;
  background: var(--color-border-strong);
  position: relative; flex-shrink: 0; transition: background 0.15s;
}
.sp-toggle-knob::after {
  content: '';
  position: absolute; top: 2px; left: 2px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.25);
  transition: left 0.15s;
}
.sp-toggle input:checked + .sp-toggle-knob { background: var(--color-primary); }
.sp-toggle input:checked + .sp-toggle-knob::after { left: 18px; }
.cat-filter-note, .map-filter-note {
  margin: 10px 18px 0;
  background: #fdf3e3;
  border: 1px solid #f0d9ab;
  color: #8a6416;
  font-size: 11.5px;
  border-radius: var(--radius-input);
  padding: 7px 12px;
  display: flex; align-items: center; gap: 10px;
}
.cat-filter-note button, .map-filter-note button {
  background: none; border: none; color: var(--color-primary-dark);
  font-size: 11px; font-weight: 700; cursor: pointer; padding: 2px 6px; border-radius: 4px;
}
.cat-filter-note button:hover, .map-filter-note button:hover { background: rgba(255,255,255,0.7); }
.map-search-wrap {
  position: absolute; top: 14px; right: 14px; z-index: 20;
  display: flex; align-items: center; gap: 7px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-card);
  padding: 8px 14px; color: var(--color-text-faint);
  width: 300px;
}
.map-search-wrap input { border: none; outline: none; font-size: 12px; flex: 1; font-family: inherit; background: transparent; }
.map-search-results {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-pop);
  overflow: hidden;
}
.map-search-results button {
  display: block; width: 100%; text-align: left;
  background: none; border: none; cursor: pointer;
  padding: 8px 12px; font-family: inherit;
}
.map-search-results button:hover { background: var(--color-bg-hover); }
.map-search-results b { display: block; font-size: 12px; color: var(--color-text); font-weight: 600; }
.map-search-results small { display: block; font-size: 10.5px; color: var(--color-text-sub); }

.map-filter-note { position: absolute; left: 14px; bottom: 14px; z-index: 20; margin: 0; box-shadow: var(--shadow-card); }

.map-popup {
  position: absolute; top: 14px; left: 14px; z-index: 25;
  width: 280px; max-height: calc(100% - 28px);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-pop);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.map-popup-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px 6px;
}
.map-popup-title { font-size: 13px; font-weight: 700; color: var(--color-text); }
.map-popup-close {
  background: none; border: none; color: var(--color-text-faint);
  font-size: 16px; cursor: pointer; padding: 2px 6px; border-radius: 6px;
}
.map-popup-close:hover { color: var(--color-text); background: var(--color-bg-hover); }
.map-popup-all {
  display: flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 600; color: var(--color-primary-dark);
  padding: 0 14px 8px; cursor: pointer; user-select: none;
  justify-content: flex-end;
}
.map-popup-all input { accent-color: var(--color-primary); }
.map-popup-list { overflow-y: auto; padding: 0 10px 10px; }
.map-popup-item {
  display: flex; align-items: center; gap: 8px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-input);
  padding: 8px 10px; margin-bottom: 6px;
  cursor: pointer; user-select: none;
  background: var(--color-bg);
}
.map-popup-item:hover { border-color: var(--color-primary); }
.map-popup-item.sel { border-color: var(--color-primary); background: var(--color-primary-lighter); }
.map-popup-item input { accent-color: var(--color-primary); flex-shrink: 0; }
.map-popup-item-body { flex: 1; min-width: 0; }
.map-popup-item-name {
  display: block; font-size: 12px; font-weight: 600; color: var(--color-text);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.map-popup-item-meta {
  display: block; font-size: 10.5px; color: var(--color-text-sub);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* 入力欄上の限定チップ（ティール化） */
#answer-scope-chip { cursor: default; }
#answer-scope-chip {
  border-color: var(--color-primary-light);
  color: var(--color-primary-darker);
  background: var(--color-primary-lighter);
}
#answer-scope-chip button { color: var(--color-primary-darker); }
.sp-head-row .sp-section-label { white-space: nowrap; }
/* ベクトル検索しきい値スライダー（20260825: fp-vector-card） */
.fp-vector-card{--threshold:80%;display:flex;flex-direction:column;gap:11px;margin-top:12px;padding:13px 12px;background:#F8FAFA;border:1px solid #C7D7D6;border-radius:5px}
.fp-vector-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#374151;font-size:13px;font-weight:700;line-height:19px}
.fp-vector-value{color:#00A3AA;font-size:18px;font-weight:700;white-space:nowrap}
.fp-vector-range{width:100%;height:18px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}
.fp-vector-range::-webkit-slider-runnable-track{height:7px;border:0;border-radius:999px;background:linear-gradient(to right,#12C8CD 0 var(--threshold),#666A6A var(--threshold) 100%)}
.fp-vector-range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border:0;border-radius:50%;background:#12C8CD;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.fp-vector-range::-moz-range-track{height:7px;border:0;border-radius:999px;background:linear-gradient(to right,#12C8CD 0 var(--threshold),#666A6A var(--threshold) 100%)}
.fp-vector-range::-moz-range-thumb{width:18px;height:18px;border:0;border-radius:50%;background:#12C8CD;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.fp-vector-note{margin:0;color:#6B7280;font-size:11px;font-weight:500;line-height:1.65}

/* ================= 新デザインへの適合（glue） ================= */

/* --- トップバー: 実スコープバッジ --- */
button.scope-pill{border:none;cursor:pointer;font-family:inherit;}
.scope-pill.empty .val b{font-size:13px;font-weight:500;}
.scope-label{display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.scope-state{
  display:inline-block;background:var(--orange);color:#fff;border-radius:999px;
  font-size:12px;font-weight:700;padding:3px 12px;margin-top:4px;border:none;font-family:inherit;cursor:pointer;
}
.scope-state.selected{background:var(--pink);}
.scope-state .scope-state-x{cursor:pointer;font-weight:700;margin-left:2px;}
.mode-tab{position:relative;}
.mode-tab.has-scope::after{content:"";position:absolute;top:5px;right:9px;width:6px;height:6px;border-radius:50%;background:var(--orange);}

/* --- チャット --- */
/* 空状態: イラスト+タイトル+入力欄をグループとして中央寄せ（モックアップ準拠）
   会話開始後(.chatting)のみログ領域が伸びて入力欄が下部固定になる */
.chat-body{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:var(--chat-log-max);margin:0 auto;}
.chat-wrap.chatting .chat-body{flex:1;min-height:0;justify-content:flex-start;overflow:visible;padding:0;}
.chat-log{display:none;}
.chat-log.show{display:flex;flex:1;min-height:0;overflow-y:auto;padding:10px;}
.chat-wrap:not(.chatting) .chat-input-area{flex-shrink:0;}
.msg{max-width:100%;}
.msg.user .bubble{white-space:pre-wrap;font-size:14px;font-weight:500;}
.msg.ai{width:100%;}
.msg.ai .bubble{font-size:14px;font-weight:400;line-height:1.75;color:#1b1b1b;}
.msg.ai .bubble > :first-child{margin-top:0;}
.msg .bubble code{background:#F0F4F4;border-radius:4px;padding:1px 5px;font-size:.9em;}
.msg .bubble pre{background:#F0F4F4;border-radius:8px;padding:12px;overflow-x:auto;margin:8px 0;}
.msg .bubble pre code{background:none;padding:0;}
.msg.ai .typing{display:inline-flex;}
.typing-status{font-size:12px;color:var(--text-sub);margin-top:8px;}
#answer-scope-chip{margin-bottom:8px;}
.chat-input-area{flex-direction:column;align-items:stretch;}
.chat-input textarea{max-height:120px;}
.send-btn.inactive{background:#C6C6C6;box-shadow:none;cursor:default;}
.send-btn:disabled{background:#C6C6C6;box-shadow:none;cursor:default;}
.model-sel-wrap{position:relative;}
.model-sel .model-sel-label{font-weight:500;}
.model-dropdown-menu{position:absolute;bottom:calc(100% + 8px);left:0;top:auto;}

/* --- カタログ（実データテーブル） --- */
/* チェックボックス列: replaced要素でも「…」が出るため ellipsis のみ抑止（幅・余白はモックアップ準拠） */
.catalog-table th:first-child,.catalog-table td:first-child{text-overflow:clip;}
/* ファイルタブは実データの列数（7列）がモックアップ（9列）と異なるため幅配分のみ調整 */
.catalog-table.is-file th:nth-child(2),.catalog-table.is-file td:nth-child(2){width:26%;}
.catalog-table.is-file th:nth-child(3),.catalog-table.is-file td:nth-child(3){width:12%;}
.catalog-table.is-file th:nth-child(4),.catalog-table.is-file td:nth-child(4){width:20%;}
.catalog-table.is-file th:nth-child(5),.catalog-table.is-file td:nth-child(5){width:10%;}
.catalog-table.is-file th:nth-child(6),.catalog-table.is-file td:nth-child(6){width:22%;}
/* テーブル・チェックボックス・詳細ボタン等はモックアップCSSをそのまま使用（独自上書きなし） */
.cat-loading{padding:44px;text-align:center;color:var(--text-sub);}
/* 選択中のみ: 実装は label+checkbox（モックアップは button+aria-pressed）のための等価スタイル */
label.sel-only{cursor:pointer;user-select:none;}
.sel-only input{display:none;}
.sel-only:has(input:checked){color:var(--teal);}
.sel-only:has(input:checked) .so-box{border-color:var(--teal);color:var(--teal);}

/* --- マップ（実地図） --- */
#map-canvas{position:absolute;inset:0;}
.home-map-card .map-search-wrap{
  position:absolute;top:22px;right:26px;z-index:6;
  width:clamp(320px,34vw,380px);height:34px;border-radius:17px;
  border:1px solid #CFE0DF;background:#fff;
  display:flex;align-items:center;gap:8px;padding:0 14px;
  box-shadow:0 2px 10px rgba(70,90,88,.10);
}
.home-map-card .map-search-wrap svg{width:18px;height:18px;color:#C7CDCF;flex-shrink:0;}
.home-map-card .map-search-wrap input{border:none;outline:none;flex:1;font-family:inherit;font-size:13px;background:none;color:var(--text);min-width:0;}
.home-map-card .map-search-results{top:40px;}
.map-filter-note{position:absolute;left:16px;bottom:16px;z-index:6;}
.map-popup{position:absolute;right:20px;bottom:20px;z-index:7;}
.map-error{padding:40px;text-align:center;color:var(--text-sub);}

/* --- 検索フィルタパネル（実フィルタを fp スタイルへ） --- */
.filter-panel .fp-select{width:100%;appearance:none;-webkit-appearance:none;border:1px solid var(--line);background:#fff;font-family:inherit;color:#1F2933;font-weight:600;cursor:pointer;}
.sp-policy-desc{color:#6B7280;font-size:11px;line-height:1.6;margin-top:4px;}
.sp-subprompt-row{display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.sp-subprompt-input{
  flex:1;height:42px;border:1px solid var(--line);border-radius:4px;padding:0 10px;
  font-family:inherit;font-size:12.4px;color:var(--text);min-width:0;
}
.sp-subprompt-input:focus{outline:none;border-color:var(--teal);}
.sp-subprompt-input::placeholder{color:#C4C4C4;}
.sp-subprompt-x{background:none;border:none;color:var(--text-sub);cursor:pointer;font-size:15px;padding:2px 6px;}
.sp-subprompt-x:hover{color:var(--pink);}
.sp-subprompt-add{
  display:block;margin:2px auto 0;background:none;border:none;color:var(--teal);
  font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;padding:4px 8px;
}
.sp-subprompt-add:hover{text-decoration:underline;}
.sp-subprompt-add svg{vertical-align:-2px;margin-left:4px;}
.sp-subprompt-status{font-size:11.5px;color:var(--teal-dark);margin-top:6px;}
.sp-subprompt-status.empty{color:var(--pink);}
.fp-check{position:relative;}
.fp-check input.chk{accent-color:var(--teal);width:14px;height:14px;flex-shrink:0;}
.fp-check.disabled{opacity:.45;cursor:not-allowed;}
.fp-check.disabled:hover{border-color:var(--line);}
.fp-check:has(input:checked){border-color:var(--teal);background:#F2FBFB;}
.fp-toggle-card{cursor:pointer;}
.fp-toggle-card input{display:none;}
.fp-toggle-card .switch{
  width:39px;height:23px;border-radius:12px;background:#D8E2E1;position:relative;flex-shrink:0;
  transition:background .18s;border:none;display:inline-block;
}
.fp-toggle-card .switch::after{
  content:"";position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:left .18s;
}
.fp-toggle-card input:checked ~ .switch{background:var(--teal);}
.fp-toggle-card input:checked ~ .switch::after{left:18px;}
.sp-cond{margin-bottom:16px;}
.sp-cond-label{font-size:12.4px;font-weight:600;color:#374151;margin-bottom:6px;}
.sp-seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.sp-seg button{
  flex:1;background:#fff;border:none;border-right:1px solid var(--line);
  padding:7px 0;font-family:inherit;font-size:11.5px;color:var(--text-sub);cursor:pointer;
}
.sp-seg button:last-child{border-right:none;}
.sp-seg button.active{background:var(--teal-pale);color:var(--teal-dark);font-weight:700;}
.sp-seg button.req.active{background:#FDEEDE;color:#D97A17;}
.sp-cond-note{font-size:11px;color:#8A9494;margin-bottom:12px;line-height:1.6;}
/* 履歴・共有タブ（パネル内。ドロワーの .hist-* とは別系統） */
.fp-hist-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;}
.fp-hist-title{font-size:13px;font-weight:600;color:#374151;}
.fp-hist-note{font-size:10.5px;color:#8A9494;margin-top:2px;}
.hist-share-btn{
  background:var(--teal);color:#fff;border:none;border-radius:999px;padding:6px 16px;
  font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;
}
.hist-share-btn:hover{background:var(--teal-dark);}
.hist-empty{color:#8A9494;font-size:12px;padding:12px 0;}
.hist-turn{
  position:relative;border:1px solid var(--line);border-radius:4px;padding:10px 30px 10px 11px;
  margin-bottom:8px;background:#fff;
}
.hist-turn:hover{border-color:var(--teal);}
.hist-turn.hidden{background:#F5F7F7;color:#AAB4B4;}
.hist-turn-q{display:flex;align-items:center;gap:6px;font-size:12.4px;font-weight:600;color:#374151;overflow:hidden;}
.hist-turn.hidden .hist-turn-q{color:#AAB4B4;}
.hist-turn-count{font-size:11px;color:#8A9494;margin-top:4px;display:flex;gap:6px;}
.hist-menu-btn{
  position:absolute;top:8px;right:6px;background:none;border:none;color:#8A9494;
  cursor:pointer;font-size:15px;padding:2px 6px;border-radius:6px;
}
.hist-menu-btn:hover{background:#EEF2F2;color:var(--text);}
.hist-hidden-icon{flex-shrink:0;color:#B7C0C0;display:inline-flex;}

/* --- 履歴ドロワー（実会話） --- */
.hist-item{position:relative;}
.hist-item .more,.pin-item .more{
  flex-shrink:0;background:none;border:none;color:var(--text-sub);cursor:pointer;
  font-size:15px;padding:0 4px;border-radius:4px;visibility:hidden;
}
.hist-item:hover .more,.hist-item.menu-open .more,
.pin-item:hover .more,.pin-item.menu-open .more{visibility:visible;}
.hist-item input.rename,.board-item input.rename{
  flex:1;min-width:0;border:1px solid var(--teal);border-radius:6px;padding:4px 8px;
  font-family:inherit;font-size:13px;outline:none;
}
.pin-item .pin-star{color:var(--teal);flex-shrink:0;display:inline-flex;}
.hist-item .pin-mark{color:var(--teal);flex-shrink:0;display:inline-flex;font-size:12px;}

/* --- 物件詳細（実データ流し込み時の微調整） --- */
/* サムネイル: 下地はファイル種別アイコン、読み込めた実サムネイル<img>が上に重なる */
.pd-file-list .pd-file-thumb{
  position:relative;display:flex;align-items:center;justify-content:center;
  background:#F1F5F5 !important;background-image:none !important;overflow:hidden;
}
.pd-file-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;background:#fff;}
.pd-thumb-ico{display:flex;flex-direction:column;align-items:center;gap:5px;color:#9AA6A6;}
.pd-thumb-ico svg{width:26px;height:31px;}
.pd-thumb-ico b{
  font-size:10px;font-weight:700;letter-spacing:.5px;line-height:1;
  padding:2px 7px;border-radius:4px;color:#fff;background:#9AA6A6;
  font-family:'Roboto','Noto Sans JP',sans-serif;
}
.pd-thumb-ico.ico-pdf b{background:#E05C5C;}
.pd-thumb-ico.ico-doc b{background:#3B82D0;}
.pd-thumb-ico.ico-xls b{background:#2E9E5B;}
.pd-thumb-ico.ico-ppt b{background:#D2691E;}
.pd-thumb-ico.ico-cad b{background:#7A6FF0;}
.pd-thumb-ico.ico-img b{background:#B08BD0;}

/* フィルタパネル: 無効トグル・都道府県選択 */
.fp-toggle-card.disabled{opacity:.45;cursor:not-allowed;}
#attr-pref-checks{margin-top:6px;}

/* スクロールバー（一覧・チャット・モーダルで太さを 2px に統一 / 20260825） */
*{scrollbar-width:thin;scrollbar-color:#B8BFC1 transparent;}
*::-webkit-scrollbar{width:2px;height:2px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:#B8BFC1;border-radius:2px;}

/* ================= 都道府県選択モーダル ================= */
/* 都道府県選択モーダル（20260817: 一回り小ぶりなダイアログに調整） */
.pref-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.60);z-index:10001;
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.pref-modal{
  background:#fff;border-radius:10px;box-shadow:0 12px 38px rgba(0,0,0,.30);
  width:min(800px,calc(100vw - 48px));max-height:calc(100vh - 48px);
  display:flex;flex-direction:column;overflow:hidden;transform:scale(.86);
}
.pref-modal-head{padding:25px 30px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;}
.pref-modal-head-main{flex:1;min-width:0;}
.pref-modal-title{font-size:16px;font-weight:700;line-height:1.4;color:#242424;}
.pref-modal-selected{
  margin-top:6px;color:var(--teal);font-size:13px;font-weight:600;line-height:1.5;
  min-height:20px;word-break:break-word;
}
.pref-modal-clear{
  flex-shrink:0;height:39px;padding:0 18px;border:1px solid #C7C7C7;border-radius:5px;
  background:#fff;color:#666;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;
}
.pref-modal-clear:hover{border-color:var(--teal);color:var(--teal);}
.pref-all-row{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;
  font-size:13px;font-weight:600;color:#242424;margin:0 0 13px 31px;
}
.pref-all-row input.chk{accent-color:var(--teal);width:16px;height:16px;cursor:pointer;}
.pref-modal-body{
  flex:1;min-height:0;overflow:auto;margin:0 30px;border:1px solid #C7C7C7;
}
.pref-region-row{display:grid;grid-template-columns:168px 1fr;border-bottom:1px solid #C7C7C7;}
.pref-region-row:last-child{border-bottom:none;}
.pref-region-name{
  background:#F8FAFC;padding:18px 13px;display:flex;align-items:flex-start;
}
.pref-region-name .fp-check{border:none;background:none;height:auto;padding:0;font-weight:600;}
.pref-region-cells{
  padding:14px;display:grid;grid-template-columns:repeat(5,minmax(86px,1fr));gap:13px 15px;
  align-content:center;border-left:1px solid #C7C7C7;
}
.pref-region-cells .fp-check{height:auto;border:none;background:none;padding:0;font-weight:500;}
.pref-region-cells .fp-check span{font-size:13px;white-space:nowrap;}
.pref-modal-foot{padding:20px 30px 23px;display:flex;justify-content:center;}
.pref-modal-done{
  min-width:250px;height:50px;padding:0 34px;border:1px solid #C7C7C7;border-radius:7px;
  background:#F7F7F7;color:#242424;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;
}
.pref-modal-done:hover{border-color:var(--teal);background:#F1FAFA;}
.fp-link.is-selected{font-weight:600;}
@media (max-width:850px){
  .pref-modal{width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 28px);}
  .pref-modal-overlay{padding:14px;}
  .pref-modal-head{padding:20px 20px 12px;}
  .pref-all-row{margin-left:21px;}
  .pref-modal-body{margin:0 20px;}
  .pref-modal-foot{padding:16px 20px 20px;}
  .pref-region-row{grid-template-columns:135px 1fr;}
  .pref-region-cells{grid-template-columns:repeat(3,minmax(86px,1fr));}
}

/* ==========================================================================
   20260806 モックアップ更新分
   - 物件詳細 / ファイル詳細をモーダル化、共通の閉じる×
   - 検索フィルタ（提示方針ドロップダウン・条件指定タブ・スクロールフェード）
   - プロジェクト（一覧 / 詳細 / 作成 / 共有）
   ベース定義より後ろに置いて上書きする層。
   ========================================================================== */

/* ---- 共通: モーダルの閉じる× ---- */
.modal-close-x{
  border:0 !important;border-radius:0 !important;background:transparent !important;
  color:transparent !important;display:grid !important;place-items:center;padding:0;cursor:pointer;
  transition:opacity .15s ease !important;
}
.modal-close-x::before{
  content:"";display:block !important;position:static !important;width:12px;height:12px;
  border-radius:0 !important;
  background:url("/static/assets/modal-close-x.svg") center / 12px 12px no-repeat !important;
  opacity:1 !important;transform:none !important;
}
.modal-close-x > svg{display:none !important;}
.modal-close-x:hover{background:transparent !important;opacity:.62;}
.modal-close-x:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
.pd-hero,.file-detail-head,.pref-modal,.confirm-dialog,.project-share-dialog{position:relative;}
.pd-back.modal-close-x,
.confirm-close.modal-close-x,
.project-share-close.modal-close-x{
  position:absolute !important;top:14px !important;right:14px !important;
  bottom:auto !important;left:auto !important;width:12px !important;height:12px !important;
  margin:0 !important;transform:none !important;z-index:20 !important;
}
.confirm-close.modal-close-x,
.project-share-close.modal-close-x{top:13px !important;right:13px !important;}

/* ---- 物件詳細: 中央モーダル化 ---- */
.property-detail{
  left:0;z-index:120;background:rgba(0,0,0,.60);box-shadow:none;
  align-items:center;justify-content:center;
  --pd-modal-margin-x:clamp(44px,5.4vw,120px);
  --pd-modal-margin-y:60px;
  padding:var(--pd-modal-margin-y) var(--pd-modal-margin-x);
}
.property-detail.open{display:flex;}
.pd-scroll{
  position:relative;
  width:calc(100vw - (var(--pd-modal-margin-x) * 2));
  height:calc(100vh - (var(--pd-modal-margin-y) * 2));
  max-width:none;max-height:none;overflow:visible;
  background:#fff;border-radius:10px;
  box-shadow:0 3px 10px rgba(0,0,0,.22),0 20px 52px rgba(0,0,0,.38);
  display:flex;flex-direction:column;
  --pd-frame-width:calc(100% - 80px);
  --pd-frame-offset:40px;
}
.pd-hero{
  box-sizing:border-box;height:160px;min-height:160px;padding:16px 0 14px;
  border-radius:10px 10px 0 0;flex:0 0 auto;border-bottom:1px solid #D3E1E0;
}
.pd-hero-inner{
  width:var(--pd-frame-width);margin-left:var(--pd-frame-offset);
  padding-right:0;display:block;
}
.pd-hero-summary{transform:none;}
.pd-title-row{display:flex;align-items:center;gap:22px;margin-bottom:14px;transform:translateY(8px);}
.pd-title-row .pd-title{margin:0;font-size:20px;line-height:1.25;font-weight:600;}
.pd-title-row .pd-add{
  width:20px;height:20px;min-width:20px;margin:0;padding:0;align-self:center;
  border-radius:2px;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.pd-lead{font-size:13px;line-height:1.5;margin-bottom:9px;}
#pdLead{transform:translateY(-2px);}
.pd-meta{font-size:13px;line-height:1.4;font-weight:500;}
#pdMeta{transform:translateY(2px);}
.pd-back{
  position:absolute;left:auto;right:-5px;top:-47px;width:40px;height:40px;
  color:#fff;border-radius:50%;z-index:9;
}
.pd-back:hover{background:rgba(255,255,255,.16);}
.pd-back::before{display:none;}
.pd-back svg{width:21px;height:21px;stroke-width:2;}
.pd-hero-actions{
  position:absolute;right:40px;bottom:24px;height:34px;
  display:flex;align-items:center;gap:14px;padding:0;margin:0;transform:none;
}
#propertyDetail .pd-hero-actions .pd-tabs{width:206px;height:34px;padding:3px;grid-template-columns:74px 126px;margin:0;}
#propertyDetail .pd-hero-actions .pd-tabs::before{left:3px;top:3px;width:69px;height:28px;border-radius:4px;}
#propertyDetail .pd-hero-actions .pd-tabs.files-active::before{width:118px;transform:translateX(73px);}
#propertyDetail .pd-hero-actions .pd-tab{height:28px;font-size:11px;font-weight:700;}
#propertyDetail .pd-hero-actions .pd-tab:first-child{width:74px;}
#propertyDetail .pd-hero-actions .pd-tab:last-child{width:126px;gap:6px;}
.pd-hero-actions .pd-tabs{width:166px;height:29px;padding:3px;grid-template-columns:80px 80px;margin:0;}
.pd-hero-actions .pd-tabs::before{left:3px;top:3px;width:80px;height:23px;}
.pd-hero-actions .pd-tabs.files-active::before{transform:translateX(80px);}
.pd-hero-actions .pd-tab{width:80px;height:23px;font-size:11px;}
.pd-body{
  padding:26px 40px 36px;flex:1;min-height:0;overflow-y:auto;
  background:#fff;border-radius:0 0 10px 10px;overscroll-behavior:contain;
}
.pd-card{width:100%;margin:0;padding:0;box-shadow:none;border-radius:0;}
.pd-card .pd-card-head{display:none;}
.pd-grid{padding:0;grid-template-columns:minmax(270px,.9fr) minmax(270px,.9fr) minmax(360px,1.25fr);gap:30px;}
.pd-section{margin-bottom:18px;}
.pd-section-title{font-size:15px;margin-bottom:10px;}
.pd-row{min-height:40px;grid-template-columns:92px minmax(0,1fr);font-size:13px;line-height:1.35;}
.pd-side{width:100%;max-width:none;}
.pd-side-id{font-size:14px;line-height:1.35;margin-bottom:16px;}
.pd-side-id b{font-size:15px;margin-bottom:2px;}
.pd-map{width:100%;height:auto;aspect-ratio:1/1;margin-top:14px;}
.pd-address,.pd-map-link{font-size:13px;}

/* 物件詳細: 「プロジェクトに保存」メニュー */
.pd-project-save-wrap,.file-project-save-wrap{position:relative;width:20px;height:20px;flex:0 0 20px;z-index:20;}
.pd-project-save-menu{
  position:absolute;top:30px;left:-110px;width:280px;padding:20px 0 13px;
  background:#fff;border:1px solid #E2E7E6;border-radius:6px;
  box-shadow:0 4px 13px rgba(0,0,0,.22);display:none;overflow:hidden;z-index:30;
}
.pd-project-save-menu.open{display:block;}
.file-project-save-menu{top:30px;left:-110px;right:auto;}
.pd-project-save-label{padding:0 26px 10px;color:#A1A5A4;font-size:12px;font-weight:500;}
.pd-project-save-option,.pd-project-save-link{
  width:100%;height:33px;padding:0 26px;border:0;background:#fff;text-align:left;
  font-family:inherit;font-size:13px;font-weight:600;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;
}
.pd-project-save-option:hover{background:#F2FBFB;}
.pd-project-save-empty{padding:8px 26px;color:#A1A5A4;font-size:12px;}
.pd-project-save-links{margin-top:8px;padding-top:11px;border-top:1px solid #D3E1E0;background:#fff;}
.pd-project-save-link{height:29px;color:var(--teal);}
.pd-project-save-link:hover{background:#F2FBFB;}

/* 物件詳細: ファイルタブ */
.pd-card.file-mode{padding:0;}
.pd-file-controls{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,500px);
  align-items:center;gap:26px;margin:0 0 24px;
}
.pd-file-chips{gap:10px;}
.pd-file-chip{height:32px;padding:0 17px;border-radius:17px;font-size:12px;}
.pd-file-search{width:100%;height:42px;border-radius:22px;padding:0 19px;}
.pd-card .pd-file-search{display:flex;}
.pd-file-view{display:none;}
.pd-file-item{
  grid-template-columns:108px minmax(0,1fr) 104px;
  align-items:center;gap:16px;min-height:98px;padding:10px 0;box-sizing:border-box;cursor:default;
}
.pd-file-thumb{
  width:108px;height:72px;align-self:center;box-sizing:border-box;border:1px solid #DADADA;border-radius:1px;
  box-shadow:none;
}
.pd-file-item:nth-child(3n+1) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/dummy-cover-gray.png");}
.pd-file-item:nth-child(3n+2) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/dummy-cover-white.png");}
.pd-file-item:nth-child(3n+3) .pd-file-thumb{background-image:url("/static/assets/property-file-thumbs/dummy-sheet.png");}
.pd-file-thumb img{transform:scale(1.055);transform-origin:center;}
.pd-file-main{padding-top:0;}
.pd-file-name{font-size:16px;line-height:1.35;margin-bottom:5px;}
.pd-file-desc{font-size:13px;line-height:1.5;}
.pd-file-link{font-size:13px;margin-top:5px;}
.pd-file-actions{display:flex;align-items:center;gap:7px;align-self:center;justify-self:end;width:104px;justify-content:flex-end;}
.pd-file-preview{
  height:34px;padding:0 15px;border:0;background:#F2F2F0;color:#737368;border-radius:18px;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;
  transform:scale(.86);transform-origin:right center;
}
.pd-file-preview:hover{background:#E7E7E4;color:#4B4B44;}

@media (max-width:1180px){
  .pd-grid{grid-template-columns:minmax(250px,1fr) minmax(250px,1fr);}
  .pd-side{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;}
  .pd-side .pd-map{grid-column:1/-1;max-width:620px;}
  .pd-side .pd-address,.pd-side .pd-map-link{grid-column:1/-1;}
}
@media (max-width:820px){
  .property-detail{--pd-modal-margin-x:14px;--pd-modal-margin-y:14px;}
  .pd-scroll{width:calc(100vw - 28px);height:calc(100vh - 28px);--pd-frame-width:calc(100% - 36px);--pd-frame-offset:18px;}
  .pd-hero{height:218px;min-height:218px;padding:26px 0 20px;}
  .pd-title-row{gap:14px;margin-bottom:14px;padding-right:32px;}
  .pd-project-save-menu{left:auto;right:-30px;width:min(280px,calc(100vw - 56px));}
  .pd-lead,.pd-meta{font-size:13px;}
  .pd-hero-actions{left:18px;right:auto;bottom:18px;}
  .pd-body{padding:22px 18px 32px;}
  .pd-grid{grid-template-columns:1fr;gap:24px;}
  .pd-side{grid-column:auto;display:block;}
  .pd-file-controls{grid-template-columns:1fr;gap:16px;}
  .pd-file-item{grid-template-columns:92px minmax(0,1fr);min-height:96px;gap:12px;}
  .pd-file-thumb{width:92px;height:72px;}
  .pd-file-actions{grid-column:2;width:auto;justify-content:flex-start;}
  .pd-file-name{font-size:15px;}
  .pd-file-desc,.pd-file-link{font-size:12px;}
}

/* ---- 検索フィルタ ---- */
/* 0806 モックはタブが2つ（フィルタ／条件指定）だが、本番は実データの
   「履歴・共有（会話履歴）」タブを持つため3分割のまま残す。 */
.fp-sort-control{position:relative;}
.fp-select[aria-expanded="true"] svg{transform:rotate(180deg);}
.fp-sort-menu{
  position:absolute;left:0;right:0;top:42px;z-index:30;display:none;
  padding:4px;background:#fff;border:1px solid #D6E1E0;border-radius:9px;
  box-shadow:0 7px 20px rgba(45,70,68,.16);
}
.fp-sort-menu.open{display:block;}
.fp-sort-option{
  width:100%;height:30px;padding:0 8px;border:0;border-radius:5px;background:none;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  color:#333;font-family:inherit;font-size:12px;font-weight:400;text-align:left;cursor:pointer;
}
.fp-sort-option:hover{background:#F3F8F8;}
.fp-sort-option.active{color:var(--teal);font-weight:600;}
.fp-sort-option .check{visibility:hidden;font-size:12px;}
.fp-sort-option.active .check{visibility:visible;}
.fp-scroll-shell{position:relative;flex:1;min-height:0;}
.fp-scroll-shell::before,.fp-scroll-shell::after{
  content:"";position:absolute;left:0;right:10px;height:12px;z-index:2;pointer-events:none;
}
.fp-scroll-shell::before{top:0;background:linear-gradient(to bottom,#fff,rgba(255,255,255,0));}
.fp-scroll-shell::after{bottom:0;background:linear-gradient(to top,#fff,rgba(255,255,255,0));}
.fp-scroll-shell > .fp-scroll{
  height:100%;width:calc(100% + 8px);margin-right:-8px;padding:12px 10px 16px 2px;
  scrollbar-width:thin;scrollbar-color:#AEB5B8 transparent;
}
.fp-scroll::-webkit-scrollbar{width:2px;}
.fp-scroll::-webkit-scrollbar-thumb{background:#AEB5B8;border-radius:2px;}
.cond-intro{display:flex;flex-direction:column;gap:4px;margin-bottom:1px;}
.cond-intro .title{font-size:13px;font-weight:600;color:#242424;line-height:19px;}
.cond-intro .note{font-size:11.3px;color:#849197;line-height:17px;}
.cond-list{display:flex;flex-direction:column;gap:17px;}
.cond-item{display:flex;flex-direction:column;gap:6px;}
.cond-label{font-size:12.4px;font-weight:600;color:#242424;line-height:19px;}
.cond-segment{
  height:43px;padding:5px;background:#E8EDF1;border-radius:5px;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;
}
.cond-segment button{
  min-width:0;border:none;border-radius:4px;background:transparent;color:#AAB7BF;
  font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;
  transition:background .15s,color .15s,box-shadow .15s;
}
.cond-segment button:hover{color:#66757D;}
.cond-segment button.active{background:#fff;color:#242424;box-shadow:0 1px 4px rgba(56,72,80,.12);}
.cond-segment button.active[data-value="preferred"]{color:var(--teal);}
.cond-segment button.active[data-value="required"]{color:#F06A22;}

/* ---- コンテキストメニュー ---- */
.ctx-menu{
  border:1px solid #E1E6E6;border-radius:11px;box-shadow:0 8px 24px rgba(20,60,60,.2);
  padding:5px;min-width:176px;
}
.ctx-item{gap:8px;height:34px;padding:0 10px;border-radius:6px;font-size:13px;}
.ctx-item svg{width:16px;height:16px;flex-shrink:0;}
.ctx-sep{margin:4px 7px;}

/* ---- 確認ダイアログ ---- */
.confirm-layer{background:rgba(0,0,0,.60);}
.confirm-dialog{box-shadow:0 14px 36px rgba(0,0,0,.30);padding:38px 26px 22px;}
.confirm-message{white-space:pre-line;}
.confirm-ok.danger{border-color:#B23A48;background:#B23A48;}
.confirm-ok.danger:hover{border-color:#972E3B;background:#972E3B;}

/* ---- プロジェクトビュー ---- */
.main.project-mode .topbar{display:none;}
.main.dictionary-mode .topbar{display:none;}
.main.tree-mode .topbar{display:none;}
.main.search-mode .topbar{display:none;}

/* ================= 階層ツリー（20260825） ================= */
.tree-wrap{height:100%;overflow:auto;background:var(--bg);padding:22px 10px 48px 24px;}
.tree-shell{max-width:none;}
.tree-heading{margin:0 14px 31px 0;}
.tree-heading h1{color:var(--teal);font-size:23px;font-weight:500;line-height:1.3;}
.tree-heading p{margin-top:4px;color:var(--text-sub);font-size:12px;line-height:1.5;}
.tree-toolbar{display:flex;align-items:center;gap:34px;margin:0 14px 21px 0;}
.tree-stats{display:flex;align-items:center;gap:20px;color:#718080;font-size:12px;white-space:nowrap;}
.tree-stats strong{color:var(--text);font-family:Roboto,sans-serif;font-size:16px;font-weight:600;margin-right:4px;}
.tree-search{
  margin-left:auto;width:min(424px,38vw);height:39px;border:1px solid #C7D7D6;border-radius:22px;background:#fff;
  display:flex;align-items:center;gap:9px;padding:0 14px;color:#A5ABAD;
}
.tree-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,163,170,.08);}
.tree-search svg{width:20px;height:20px;flex-shrink:0;}
.tree-search input{min-width:0;flex:1;border:0;outline:0;background:none;font-family:inherit;font-size:13px;color:var(--text);}
.tree-search input::placeholder{color:#B8BDBE;}
.tree-expand-all{display:none;border:0;background:transparent;color:var(--teal);font-family:inherit;font-size:13px;font-weight:400;cursor:pointer;padding:8px 0;white-space:nowrap;}  /* モックアップの描画結果に合わせる */
.tree-expand-all.visible{display:block;}
.tree-expand-all:hover{color:var(--teal-dark);}
.tree-card{margin-right:14px;background:#fff;border:1px solid #DDE7E6;border-radius:10px;box-shadow:0 4px 18px rgba(74,108,104,.06);overflow:hidden;}
.tree-list{padding:14px 18px 22px;min-height:420px;}
.tree-row{
  --tree-depth:0;display:flex;align-items:center;min-height:30px;padding:3px 10px 3px calc(10px + var(--tree-depth)*26px);
  border-radius:7px;color:#3F4949;cursor:pointer;user-select:none;
}
.tree-row:hover{background:#F3F8F8;}
.tree-row.selected{background:#E9F6F4;color:#007F85;}
.tree-toggle{width:20px;height:20px;border:0;background:transparent;color:#7E8989;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s;padding:0;}
.tree-toggle svg{width:8px;height:12px;}
.tree-row.open>.tree-toggle{transform:rotate(90deg);}
.tree-toggle.placeholder{visibility:hidden;}
.tree-kind{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:#667272;flex-shrink:0;margin-right:6px;}
.tree-kind svg{width:18px;height:18px;}
.tree-row.file .tree-kind{color:#A2ABAB;}
.tree-row.has-catalog .tree-kind{color:#667272;}  /* モックアップではフォルダのアイコンは常に灰色（カタログ有無はバッジで示す） */
.tree-label{font-size:13px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tree-row.file.catalog .tree-label{color:var(--teal);font-weight:500;}
.tree-count{color:#A0AAAA;font-size:12px;margin-left:7px;white-space:nowrap;}
.tree-path{flex:1;min-width:0;margin-left:12px;color:#A0AAAA;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tree-badge{display:inline-flex;align-items:center;height:22px;margin-left:10px;padding:0 9px;border-radius:4px;background:var(--teal);color:#fff;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0;}
button.tree-badge{border:0;cursor:pointer;font-family:inherit;}
button.tree-badge:hover{background:var(--teal-dark);}
.tree-children{display:none;}
.tree-node.open>.tree-children{display:block;}
.tree-empty{padding:70px 20px;text-align:center;color:#8E9999;font-size:13px;}
.tree-loading{padding:4px 10px 4px calc(36px + var(--tree-depth)*26px);color:#8E9999;font-size:12px;}
.tree-search-info{padding:2px 10px 10px;color:#8E9999;font-size:12px;}
@media(max-width:760px){
  .tree-toolbar{align-items:stretch;flex-direction:column;gap:10px;}
  .tree-search{margin-left:0;width:100%;}
  .tree-stats{flex-wrap:wrap;}
  .tree-wrap{padding:20px 10px 40px 14px;}
  .tree-list{padding-left:8px;padding-right:8px;}
}

/* ================= 辞書（20260825） ================= */
.dictionary-wrap{height:100%;overflow:auto;background:var(--bg);padding:22px 10px 42px 24px;}
.dictionary-shell{max-width:none;margin:0;}
.dictionary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:31px;}
.dictionary-heading h1{color:var(--teal);font-size:23px;font-weight:500;line-height:1.3;margin:0;}
.dictionary-heading p{margin-top:4px;color:var(--text-sub);font-size:12px;line-height:1.5;}
.dictionary-add{
  height:34px;margin-right:14px;padding:0 20px;border:0;border-radius:4px;background:var(--teal);color:#fff;
  font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;
}
.dictionary-add:hover{background:var(--teal-dark);}
.dictionary-control-row{display:flex;align-items:center;gap:34px;margin:0 14px 21px 0;}
.dictionary-tabs{display:flex;gap:6px;padding:5px;background:#EAF0F0;border-radius:10px;width:max-content;flex-shrink:0;}
.dictionary-tab{border:0;background:transparent;color:#687474;font-family:inherit;font-size:13px;font-weight:400;padding:10px 20px;border-radius:8px;cursor:pointer;}  /* モックアップの描画結果に合わせる */
.dictionary-tab:hover{color:var(--teal);}
.dictionary-tab.active{background:#fff;color:var(--teal);box-shadow:0 2px 9px rgba(65,99,98,.11);}
.dictionary-search{
  margin-left:auto;width:min(424px,38vw);height:39px;border:1px solid #C7D7D6;border-radius:22px;background:#fff;
  display:flex;align-items:center;gap:9px;padding:0 14px;color:#A5ABAD;
}
.dictionary-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,163,170,.08);}
.dictionary-search svg{width:20px;height:20px;flex-shrink:0;color:currentColor;}
.dictionary-search input{min-width:0;flex:1;border:0;padding:0;outline:0;background:none;font-family:inherit;font-size:13px;color:var(--text);box-shadow:none;}
.dictionary-search input::placeholder{color:#B8BDBE;}
.dictionary-card{margin-right:14px;background:#fff;border:1px solid #E1E9E8;border-radius:10px;box-shadow:0 4px 18px rgba(74,108,104,.06);overflow:hidden;}
.dictionary-toolbar{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid #E5ECEB;}
#dictionaryPager{margin-left:auto;}  /* ページ送りは右端（モックアップ） */
.dictionary-count{color:#7E8A8A;font-size:13px;}
.dictionary-count strong{color:var(--text);font-family:Roboto,sans-serif;font-size:15px;font-weight:600;}
.dictionary-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-left:auto;}
.dictionary-page-status{color:var(--teal);font-size:14px;font-weight:600;white-space:nowrap;}
.dictionary-page-button{
  width:32px;height:32px;border:0;border-radius:0;background:transparent;color:var(--teal);
  font-family:Arial,sans-serif;font-size:30px;font-weight:500;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0 0 4px;
}
.dictionary-page-button:hover:not(:disabled){color:var(--teal-dark);}
.dictionary-page-button:disabled{color:#C9DADA;cursor:default;}
.dictionary-table{width:100%;border-collapse:collapse;table-layout:fixed;}
.dictionary-table th{text-align:left;color:#6F7A7A;font-size:12px;font-weight:600;background:#FBFCFC;padding:12px 16px;border-bottom:1px solid #E5ECEB;}
.dictionary-table td{padding:7.5px 16px;height:50px;box-sizing:border-box;border-bottom:1px solid #EEF2F2;vertical-align:middle;font-size:13px;line-height:1.7;}
.dictionary-table tbody tr:hover{background:#EEF8F7;}
.dictionary-num{color:#A0AAAA;width:56px;}
.dictionary-actions{width:110px;text-align:right!important;white-space:nowrap;}
.dictionary-name{font-weight:600;}
.dictionary-desc{white-space:pre-line;color:#586363;}
.dictionary-empty{text-align:center!important;color:#8B9696;padding:50px!important;}
.dictionary-chip{
  display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:28px;
  padding:3px 5px;margin:0 5px 0 0;border-radius:10px;background:#F0F4F4;color:#445050;font-weight:500;
}
.dictionary-chip.primary{background:#E4F6F6;color:#007F85;}
.dictionary-term-pill{
  display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;margin:0 5px 0 0;
  border-radius:10px;background:#E4F6F6;color:#007F85;font-weight:500;line-height:1.4;
}
.dictionary-action{height:34px;border:0;border-radius:7px;background:transparent;cursor:pointer;color:#7D8989;font-family:inherit;font-size:13px;font-weight:400;padding:0 7px;}  /* モックアップの描画結果に合わせる */
.dictionary-action:hover{background:#EAF7F7;color:var(--teal);}
.dictionary-action.delete:hover{background:#FFF0F0;color:#D84646;}
.dictionary-action[data-dict-edit]{transform:translateX(-20px);}
.dictionary-modal-layer{position:fixed;inset:0;background:rgba(20,34,34,.34);z-index:600;display:none;align-items:center;justify-content:center;padding:24px;}
.dictionary-modal-layer.show{display:flex;}
.dictionary-modal{width:min(520px,100%);background:#fff;border-radius:10px;box-shadow:0 20px 60px rgba(25,49,47,.24);padding:26px;}
.dictionary-modal.small{width:min(430px,100%);}
.dictionary-modal h2{font-size:19px;margin-bottom:7px;}
.dictionary-modal-lead{font-size:13px;color:#7A8585;margin-bottom:22px;line-height:1.7;}
.dictionary-fields{display:grid;gap:16px;}
.dictionary-field label{display:block;font-size:12px;font-weight:600;margin-bottom:7px;color:#536060;}
.dictionary-field input,.dictionary-field textarea{
  width:100%;box-sizing:border-box;border:1px solid #D5E0DF;border-radius:8px;padding:10px 12px;
  font-family:inherit;font-size:13px;outline:none;resize:vertical;
}
.dictionary-field input:focus,.dictionary-field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,163,170,.09);}
.dictionary-field small{display:block;color:#8A9494;margin-top:6px;}
.dictionary-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;}
.dictionary-modal-actions button{height:38px;border-radius:8px;padding:0 18px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.dictionary-cancel{border:1px solid #D7E1E0;background:#fff;color:#5F6B6B;}
.dictionary-save{border:0;background:var(--teal);color:#fff;}
.dictionary-danger{border:0;background:#D94C4C;color:#fff;}
.dictionary-delete-name{font-weight:600;color:#303A3A;}
@media(max-width:900px){
  .dictionary-table th,.dictionary-table td{padding-left:10px;padding-right:10px;}
  .dictionary-toolbar{flex-wrap:wrap;}
  .dictionary-tab{padding:9px 13px;}
}
@media(max-width:760px){
  .dictionary-control-row{align-items:stretch;flex-direction:column;gap:10px;}
  .dictionary-search{margin-left:0;width:100%;}
}
@media(max-width:640px){.dictionary-heading .dictionary-add{height:38px;padding:0 16px;}}
/* 左マージンは 30px（20260817: カードリストはセンター揃えから左揃えへ） */
.project-view{height:100%;overflow:hidden;padding:22px 10px 0 30px;background:var(--bg);display:flex;flex-direction:column;}
.project-view.is-hidden{pointer-events:none;user-select:none;}
.project-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:31px;}
.project-title{color:var(--teal);font-size:23px;font-weight:500;line-height:1.3;}
.project-new{
  height:34px;margin-right:14px;padding:0 20px;border:0;border-radius:4px;background:var(--teal);
  color:#fff;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;
}
.project-new:hover{background:var(--teal-dark);}
.project-toolbar{display:flex;align-items:center;gap:34px;margin-bottom:21px;}
/* タブは白いピルがスライドするセグメント型（20260825） */
.project-tabs{display:flex;align-items:center;gap:6px;width:max-content;height:auto;padding:5px;background:#EAF0F0;border-radius:10px;}
.project-tab{
  height:40px;min-width:68px;padding:0 20px;border:0;border-radius:8px;background:transparent;
  color:#687474;font-family:inherit;font-size:13px;font-weight:600;text-align:center;cursor:pointer;transition:.18s;
}
.project-tab:hover{color:var(--teal);}
.project-tab.active{background:#fff;color:var(--teal);font-weight:600;box-shadow:0 2px 9px rgba(65,99,98,.11);}
.project-sort-wrap{position:relative;}
.project-sort{
  display:flex;align-items:center;gap:8px;border:0;background:none;color:#555;
  font-family:inherit;font-size:13px;cursor:pointer;white-space:nowrap;
}
.project-sort svg{width:13px;height:8px;}
.project-sort[aria-expanded="true"] svg{transform:rotate(180deg);}
.project-sort-menu{
  position:absolute;left:-2px;top:23px;z-index:20;width:154px;padding:4px;background:#fff;
  border:1px solid #D6E1E0;border-radius:9px;box-shadow:0 7px 20px rgba(45,70,68,.16);display:none;
}
.project-sort-menu.open{display:block;}
.project-sort-option{
  width:100%;height:30px;padding:0 8px;border:0;border-radius:5px;background:none;color:#333;
  display:flex;align-items:center;justify-content:space-between;
  font-family:inherit;font-size:12px;text-align:left;cursor:pointer;
}
.project-sort-option:hover{background:#F3F8F8;}
.project-sort-option.active{color:var(--teal);font-weight:600;}
.project-sort-option .check{visibility:hidden;font-size:13px;}
.project-sort-option.active .check{visibility:visible;}
.project-search{
  margin-left:auto;margin-right:14px;width:min(424px,38vw);height:39px;
  border:1px solid #C7D7D6;border-radius:22px;background:#fff;
  display:flex;align-items:center;gap:9px;padding:0 14px;color:#A5ABAD;
}
.project-search svg{width:20px;height:20px;flex-shrink:0;}
.project-search input{min-width:0;flex:1;border:0;outline:0;background:none;font-family:inherit;font-size:13px;color:var(--text);}
.project-search input::placeholder{color:#B8BDBE;}
.project-grid{
  display:grid;grid-template-columns:repeat(auto-fit,348px);gap:16px;justify-content:start;align-content:start;
  flex:1;min-height:0;overflow-y:auto;margin-right:14px;padding:0 0 42px 6px;
}
.project-card{
  width:348px;height:210px;border:1px solid #D3DADA;border-radius:7px;background:#fff;
  padding:15px 14px 14px;display:flex;flex-direction:column;position:relative;cursor:pointer;user-select:none;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.project-card:hover{border-color:#00A3AA;box-shadow:inset 0 0 0 1px #00A3AA;transition-duration:.1s;transition-delay:.1s;}
/* 削除アニメーション（20260817）: カードが縮んで消えてから DOM を差し替える */
.project-card.is-removing,
.project-hierarchy-card.is-removing,
.project-property-card.is-removing,
.project-file-card.is-removing{
  pointer-events:none;z-index:3;overflow:hidden;transform-origin:center;
  will-change:transform,opacity;backface-visibility:hidden;
  animation:projectCardRemoved .4s cubic-bezier(.4,0,.15,1) forwards;
}
@keyframes projectCardRemoved{
  0%{opacity:1;transform:translateZ(0) scale(1);border-radius:7px;}
  20%{opacity:.94;transform:translateZ(0) scale(.96);border-radius:9px;}
  44%{opacity:.74;transform:translateZ(0) scale(.8);border-radius:14px;}
  68%{opacity:.42;transform:translateZ(0) scale(.52);border-radius:22px;}
  88%{opacity:.14;transform:translateZ(0) scale(.23);border-radius:30px;}
  100%{opacity:0;transform:translateZ(0) scale(.045);border-radius:36px;}
}
@media (prefers-reduced-motion:reduce){
  .project-card.is-removing,
  .project-hierarchy-card.is-removing,
  .project-property-card.is-removing,
  .project-file-card.is-removing{animation:none;opacity:0;}
}
.project-card-title{
  padding-right:43px;font-size:14px;font-weight:600;line-height:1.45;color:#111;min-height:41px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.project-card-favorite{
  position:absolute;right:24px;top:14px;width:20px;height:20px;padding:1px;border:0;background:none;
  color:#AEB7B7;display:grid;place-items:center;cursor:pointer;z-index:2;
}
.project-card-favorite:hover{color:#F5B400;}
.project-card-favorite svg{width:17px;height:17px;fill:transparent;stroke:currentColor;stroke-width:1.6;transition:fill .15s,color .15s;}
.project-card-favorite.active{color:#F5B400;}
.project-card-favorite.active svg{fill:currentColor;}
.project-card-more{
  position:absolute;right:-2px;top:14px;width:27px;border:0;background:none;color:#666;
  font-size:20px;line-height:1;cursor:pointer;padding:0;z-index:1;
}
.project-card-author-row{display:flex;align-items:center;gap:7px;margin-top:12px;min-height:18px;}
.project-card-author{font-size:12px;color:#777;}
.project-card-dates{font-size:12px;line-height:1.45;color:#777;white-space:nowrap;}
.project-card-desc{
  font-size:12px;line-height:1.55;color:#666;margin-top:12px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.project-card-desc.is-empty{color:#A8ACAC;}
.project-card-stats{
  display:flex;align-items:center;justify-content:space-between;margin-top:auto;
  color:var(--teal);font-size:12px;font-weight:500;
}
.project-card-counts{word-spacing:0;}
.project-share-badge{
  display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 8px;border-radius:11px;
  background:#E5F6F5;color:var(--teal-dark);font-size:11px;font-weight:600;
}
.project-share-badge svg{width:10px;height:10px;flex-shrink:0;}
.project-card-stats .project-share-badge{width:60px;height:18px;padding:0;border-radius:12px;justify-content:center;}
.project-empty{grid-column:1/-1;padding:80px 0;text-align:center;color:#98A2A2;font-size:14px;}
@media(max-width:900px){.project-search{width:300px}.project-toolbar{gap:16px}}
.project-toolbar{min-width:0}
.project-tabs,.project-sort-wrap{flex:0 0 auto}
.project-search{flex:0 1 424px;width:424px;min-width:80px}

/* プロジェクト詳細 */
.project-detail-view{
  position:absolute;inset:0;z-index:30;height:100%;min-height:0;display:flex;flex-direction:column;
  background:#F3F6F6;overflow:hidden;visibility:hidden;pointer-events:none;transform:translateX(100%);
  will-change:transform;transition:transform .38s cubic-bezier(.22,.72,.24,1);
}
.project-detail-view.entering,.project-detail-view.open,.project-detail-view.closing{visibility:visible;}
.project-detail-view.open{pointer-events:auto;transform:translateX(0);}
.project-detail-view.closing{pointer-events:none;transform:translateX(100%);}
@media (prefers-reduced-motion:reduce){.project-detail-view{transition-duration:0s;}}
.project-detail-head{
  min-height:155px;padding:26px 30px 20px 16px;background:#fff;border-bottom:1px solid #E5EAEA;
  display:flex;justify-content:space-between;gap:24px;
}
.project-detail-heading{display:flex;min-width:0;gap:20px;}
.project-detail-back{
  width:24px;height:30px;flex:0 0 24px;padding:0;border:0;background:transparent;color:var(--teal);
  cursor:pointer;display:grid;place-items:center;
}
.project-detail-back svg{width:12px;height:20px;}
.project-detail-copy{min-width:0;transform:translateY(8px);}
.project-detail-title-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;transform:translateY(-8px);}
.project-detail-title{min-width:0;font-size:18px;line-height:1.4;font-weight:600;color:#111;}
/* 鉛筆（編集）はタイトルの右（20260825 でタイトル行へ戻した） */
.project-detail-description-row{display:flex;align-items:center;gap:32px;}
.project-detail-title-pencil{
  width:20px;height:20px;flex:0 0 20px;display:block;border:0;background:none;padding:0;
  border-radius:3px;cursor:pointer;
}
.project-detail-title-pencil:focus-visible{outline:2px solid var(--teal);outline-offset:4px;}
.project-detail-description{
  width:min(650px,100%);min-width:0;font-size:13px;line-height:1.55;color:#242424;
  overflow-wrap:anywhere;word-break:break-word;
}
.project-detail-meta{margin-top:11px;font-size:13px;color:#888;}
.project-detail-actions{display:flex;align-items:flex-start;gap:28px;flex-shrink:0;}
.project-detail-ask{width:211px;height:34px;padding:0;border:0;border-radius:17px;background:transparent;cursor:pointer;display:block;}
.project-detail-ask img{display:block;width:211px;height:34px;}
.project-detail-share{width:64px;height:36px;border:0;border-radius:4px;background:var(--teal);color:#fff;font:600 12px/1 inherit;cursor:pointer;}
.project-detail-body{flex:1;min-height:0;overflow-y:auto;padding:30px 28px 42px;}
/* 20260817: プロジェクト内ステータス（件数表示）を廃止し、階層を示すパンくずに変更 */
.project-detail-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;
  transform:translateY(-8px);
}
.project-detail-breadcrumb{
  min-width:0;font-size:13px;line-height:1.4;color:#666;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.project-detail-breadcrumb-link{padding:0;border:0;background:none;color:#9AA3A3;font:inherit;cursor:pointer;}
.project-detail-breadcrumb-link:hover{text-decoration:underline;text-underline-offset:3px;}
.project-detail-breadcrumb-link:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:2px;}
.project-detail-breadcrumb-link.current{color:#242424;font-weight:500;}
.project-folder-create{
  display:flex;align-items:center;gap:7px;border:0;background:none;color:var(--teal);
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;
}
.project-folder-create img{display:block;width:20px;height:16px;}
.project-file-grid{display:grid;grid-template-columns:repeat(auto-fill,210px);gap:14px;align-content:start;justify-content:start;}
.project-file-card{
  width:210px;height:210px;padding:10px 7px 8px;border:1px solid #CFD8D7;border-radius:6px;background:#fff;
  display:flex;flex-direction:column;position:relative;overflow:hidden;cursor:pointer;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.project-file-card:hover{border-color:#00A3AA;box-shadow:inset 0 0 0 1px #00A3AA;transition-duration:.1s;transition-delay:.1s;}
.project-file-card-head{height:40px;padding:0 23px 5px 0;display:flex;align-items:flex-start;}
.project-file-name{
  font-size:13px;line-height:1.25;font-weight:600;color:#222;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.project-file-more{
  position:absolute;right:5px;top:8px;width:20px;height:24px;padding:0;border:0;background:none;
  color:#555;font-size:19px;line-height:1;cursor:pointer;
}
.project-file-thumb{position:relative;width:100%;height:128px;box-sizing:border-box;border:0;background:#F7F8F8;box-shadow:none;overflow:hidden;}
.project-file-thumb img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transform:scale(1.08);transform-origin:center;}
.project-file-thumb::after{content:"";position:absolute;inset:0;z-index:1;box-sizing:border-box;border:1px solid #DADADA;pointer-events:none;}
.project-file-meta{margin-top:auto;padding-top:7px;font-size:11px;line-height:1.2;color:#999;}
/* フォルダ／物件カード（20260825）: フォルダは淡い水色地にアイコン＋「フォルダー」、物件は白枠のサムネイル */
.project-hierarchy-card{
  width:210px;height:210px;padding:10px 10px 8px;border:1px solid #D4DADA;border-radius:5px;background:#F4FFFF;
  display:flex;flex-direction:column;position:relative;overflow:hidden;cursor:pointer;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.project-hierarchy-card.project-property-card{padding:10px 10px 8px;background:#fff;}
.project-hierarchy-card:hover{border-color:#00A3AA;box-shadow:inset 0 0 0 1px #00A3AA;transition-duration:.1s;transition-delay:.1s;}
.project-hierarchy-card .project-file-card-head{height:35px;padding-right:22px;}
.project-hierarchy-card .project-file-more{right:10px;top:12px;width:14px;height:17px;background:transparent;font-size:0;}
.project-hierarchy-card .project-file-more::before{content:"";display:block;width:3px;height:3px;margin:1px auto 0;border-radius:50%;background:#555;box-shadow:0 5px 0 #555,0 10px 0 #555;}
.project-hierarchy-icon{
  position:absolute;left:50%;top:107px;width:100px;height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  transform:translate(-50%,-50%);
}
.project-hierarchy-icon img{display:block;width:64px;height:64px;object-fit:contain;}
.project-hierarchy-icon-label{color:#00A3AA;font-size:16px;line-height:1;font-weight:600;}
.project-property-card .project-hierarchy-icon{top:115px;width:197px;height:126px;box-sizing:border-box;border:0;background:#fff;box-shadow:none;}
.project-property-card .project-hierarchy-icon::after{content:"";position:absolute;inset:0;box-sizing:border-box;border:1px solid #DADADA;pointer-events:none;}
.project-property-card .project-hierarchy-icon img{width:47px;height:69px;object-fit:contain;}
.project-property-card .project-hierarchy-icon-label{display:none;}
.project-hierarchy-meta{margin-top:auto;padding-top:7px;font-size:11px;line-height:1.2;color:#8A8A8A;white-space:nowrap;}
@media(max-width:1050px){
  .project-detail-head{padding-right:22px}
  .project-detail-actions{gap:12px}
  .project-detail-ask{padding:0}
  .project-detail-body{padding:28px 24px 40px}
}

/* フォルダ／物件／ファイルカードの「⋮」メニュー（20260817） */
.project-item-menu{
  position:fixed;z-index:95;width:190px;padding:8px;background:#fff;border:1px solid #DDE3E3;
  border-radius:12px;box-shadow:0 8px 24px rgba(20,60,60,.18);display:none;
}
.project-item-menu.open{display:block;}
.project-item-menu-button{
  display:flex;align-items:center;gap:12px;width:100%;height:42px;padding:0 12px;border:0;
  border-radius:6px;background:none;color:#111;font-family:inherit;font-size:14px;text-align:left;cursor:pointer;
}
.project-item-menu-button:hover{background:#F2F8F8;}
.project-item-menu-button img{width:16px;height:16px;object-fit:contain;flex:0 0 16px;}
.project-item-menu-button.danger{color:#B42318;}
.project-item-menu-separator{height:1px;margin:5px 4px;background:#D5DADA;}

/* 新規フォルダ作成ダイアログ（20260817） */
.project-folder-layer{
  position:fixed;inset:0;z-index:160;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(0,0,0,.62);
}
.project-folder-layer.open{display:flex;}
.project-folder-dialog{
  position:relative;width:min(520px,calc(100vw - 48px));min-height:250px;padding:44px 56px 46px;
  border-radius:10px;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.24),0 22px 54px rgba(0,0,0,.28);
}
.project-folder-dialog-close{
  position:absolute;right:14px;top:12px;width:28px;height:28px;padding:0;border:0;background:none;
  color:#111;font-size:28px;line-height:1;cursor:pointer;
}
.project-folder-dialog-title{font-size:16px;line-height:1.4;font-weight:600;text-align:center;color:#111;}
.project-folder-dialog-input{
  display:block;width:100%;height:46px;margin-top:25px;padding:0 14px;border:1px solid #C8D2D2;
  border-radius:5px;outline:none;background:#fff;color:#222;font-family:inherit;font-size:15px;
}
.project-folder-dialog-input::placeholder{color:#B8B8B8;}
.project-folder-dialog-input:focus{border-color:var(--teal);box-shadow:0 0 0 2px rgba(0,163,170,.12);}
.project-folder-dialog-actions{display:flex;justify-content:center;gap:22px;margin-top:28px;}
.project-folder-dialog-cancel,.project-folder-dialog-save{
  width:134px;height:39px;border:0;border-radius:5px;color:#fff;font-family:inherit;font-size:15px;
  font-weight:500;cursor:pointer;
}
.project-folder-dialog-cancel{background:#B8B8B8;}
.project-folder-dialog-save{background:var(--teal);}
.project-folder-dialog-save:hover{background:var(--teal-dark);}
@media(max-width:640px){
  .project-folder-dialog{padding:28px 24px 32px;}
  .project-folder-dialog-actions{gap:12px;}
}

/* プロジェクト作成／編集ダイアログ */
.project-create-layer{
  position:fixed;inset:0;z-index:150;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(0,0,0,.6);
}
.project-create-layer.open{display:flex;}
.project-create-dialog{
  width:min(520px,calc(100vw - 48px));min-height:330px;padding:31px 48px 36px;
  background:#fff;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.24),0 22px 54px rgba(0,0,0,.28);
  display:flex;flex-direction:column;align-items:center;position:relative;
}
.project-create-close.modal-close-x{
  position:absolute !important;top:14px !important;right:14px !important;
  width:12px !important;height:12px !important;z-index:2 !important;
}
.project-create-title{font-size:16px;line-height:1.4;font-weight:600;margin-bottom:18px;}
.project-create-input{
  width:100%;height:46px;padding:0 14px;border:1px solid #D5DEDD;border-radius:5px;outline:none;
  font-family:inherit;font-size:15px;color:#242424;
}
.project-create-input::placeholder{color:#A8ACAC;}
.project-create-input:focus{border-color:var(--teal);box-shadow:0 0 0 2px rgba(0,163,170,.12);}
.project-create-description{
  width:100%;height:100px;margin-top:12px;padding:11px 14px;border:1px solid #D5DEDD;border-radius:5px;
  outline:none;resize:none;font-family:inherit;font-size:14px;line-height:1.5;color:#242424;
}
.project-create-description::placeholder{color:#A8ACAC;}
.project-create-description:focus{border-color:var(--teal);box-shadow:0 0 0 2px rgba(0,163,170,.12);}
.project-create-actions{display:flex;justify-content:center;gap:22px;}
.project-create-cancel{
  display:block;width:134px;height:39px;margin-top:23px;border:0;border-radius:5px;background:#B8B8B8;
  color:#fff;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;
}
.project-create-save{
  width:134px;height:39px;margin-top:23px;border:0;border-radius:5px;background:#B8B8B8;color:#fff;
  font-family:inherit;font-size:15px;font-weight:500;cursor:not-allowed;
}
.project-create-save.is-dirty{background:var(--teal);cursor:pointer;}
.project-create-save.is-dirty:hover{background:#008E95;}
@media (max-width:600px){
  .project-create-dialog{padding:28px 24px 32px;}
  .project-create-actions{gap:12px}
  .project-create-cancel,.project-create-save{width:134px;}
}

/* プロジェクト共有ダイアログ */
.project-share-layer{
  position:fixed;inset:0;z-index:110;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(0,0,0,.60);
}
.project-share-layer.open{display:flex;}
.project-share-dialog{
  position:relative;width:min(525px,calc(100vw - 48px));min-height:0;padding:18px 22px;
  border:1px solid #D0DADA;border-radius:10px;background:#fff;box-shadow:0 18px 48px rgba(0,0,0,.30);
  transform:scale(1);animation:projectShareIn .18s ease-out;
}
@keyframes projectShareIn{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:scale(1);}}
.project-share-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.project-share-head h2{font-size:20px;font-weight:500;color:#222;}
.project-share-section-title{font-size:13px;font-weight:500;color:#687070;margin-bottom:6px;}
.project-share-member{height:42px;display:flex;align-items:center;gap:12px;position:relative;}
.project-share-avatar{
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
  background:#687070;color:#fff;font-size:12px;font-weight:500;
}
.project-share-avatar.owner{background:linear-gradient(145deg,#D6B38E,#77614F);font-size:10px;}
.project-share-name{font-size:14px;font-weight:500;color:#161616;}
.project-share-role{margin-left:auto;width:58px;font-size:13px;color:#222;text-align:left;}
.project-role-button{
  margin-left:auto;width:58px;height:30px;padding:0;border:0;background:none;
  display:flex;align-items:center;justify-content:flex-start;gap:6px;
  font-family:inherit;font-size:13px;color:#222;cursor:pointer;
}
.project-role-button svg{width:15px;height:15px;transition:transform .15s;}
.project-role-button[aria-expanded="true"] svg{transform:rotate(180deg);}
.project-role-menu{
  position:absolute;right:0;top:44px;z-index:3;width:200px;padding:5px;display:none;
  border:1px solid #E1E6E6;border-radius:11px;background:#fff;box-shadow:0 8px 24px rgba(20,60,60,.2);
}
.project-role-menu.open{display:block;}
.project-role-option{
  width:100%;height:36px;padding:0 10px;border:0;border-radius:6px;background:none;
  display:flex;align-items:center;gap:9px;font-family:inherit;font-size:13px;color:var(--text);
  cursor:pointer;text-align:left;white-space:nowrap;
}
.project-role-option:hover,.project-role-option.active{background:#F3F8F8;}
.project-role-option svg{width:16px;height:16px;flex-shrink:0;}
.project-role-option.danger{color:#B23A48;}
.project-role-sep{height:1px;background:var(--line);margin:4px 7px;}
.project-share-about{margin-top:12px;}
.project-share-about-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.project-share-about-head .project-share-section-title{margin-bottom:0;}
.project-share-about .project-share-section-title{font-weight:500;}
.project-share-note{
  padding:10px 14px;border-radius:7px;background:#F5F6F6;color:#686E6E;
  font-size:12px;font-weight:300;line-height:1.8;
}
.project-share-footer{display:none;justify-content:flex-end;gap:10px;margin-top:20px;}
.project-share-footer.show{display:flex;}
.project-share-action{
  min-width:92px;height:38px;padding:0 18px;border-radius:6px;font-family:inherit;
  font-size:13px;font-weight:600;cursor:pointer;
}
.project-share-action.cancel{border:1px solid #CDD8D7;background:#fff;color:#555;}
.project-share-action.cancel:hover{background:#F3F8F8;}
.project-share-action.save{border:1px solid var(--teal);background:var(--teal);color:#fff;}
.project-share-action.save:hover{border-color:var(--teal-dark);background:var(--teal-dark);}
.project-copy-link{
  padding:0;border:0;background:none;color:var(--teal);display:inline-flex;align-items:center;gap:5px;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;
}
.project-copy-link:hover{color:var(--teal-dark);text-decoration:underline;}
.project-copy-link svg{width:15px;height:15px;flex-shrink:0;}

/* チャット共有ダイアログ（20260825）: 参加者欄のない「共有リンクについて」だけの版 */
.chat-share-dialog{width:min(560px,calc(100vw - 48px));min-height:0;}
.chat-share-dialog .project-share-about{margin-top:0;}
.chat-share-link-row{display:flex;align-items:center;gap:10px;margin-top:12px;}
.chat-share-link-row[hidden]{display:none;}
.chat-share-link{
  flex:1;min-width:0;height:38px;padding:0 12px;border:1px solid #D5DEDD;border-radius:6px;
  background:#fff;font-family:inherit;font-size:13px;color:#242424;
}
.chat-share-copied{flex-shrink:0;font-size:12px;font-weight:600;color:var(--teal);}

/* ---- カタログ行のアクション（詳細）— 20260817 ---- */
.catalog-row-actions{display:flex;align-items:center;justify-content:center;gap:3.5px;}
.catalog-table.is-file th:nth-child(7),
.catalog-table.is-file td:nth-child(7){width:92px;padding-left:4px;padding-right:4px;}
.catalog-table.is-file th:nth-child(6),.catalog-table.is-file td:nth-child(6){width:18%;}
.catalog-table.is-file .detail-btn{min-width:0;padding:0 12px;font-size:12px;}

/* ---- カタログ表: 辞書表と同じトーン（20260825） ---- */
.catalog-table{font-family:inherit;color:#445050;}
.catalog-table thead th{
  background:#FBFCFC;color:#6F7A7A;font-size:12px;font-weight:600;
  border-bottom:1px solid #E5ECEB;
}
.catalog-table tbody td{color:#445050;border-bottom-color:#EEF2F2;}
.catalog-table .detail-col{background:#FBFCFC;box-shadow:-1px 0 0 #E5ECEB;}
.catalog-table tbody .detail-col{background:#fff;}
.catalog-table tbody tr:hover,
.catalog-table tbody tr.is-selected:hover,
.catalog-table tbody tr.is-detail-active:hover{background:#EEF8F7;}
.catalog-table tbody tr:hover .detail-col,
.catalog-table tbody tr.is-selected:hover .detail-col,
.catalog-table tbody tr.is-detail-active:hover .detail-col{background:#EEF8F7;}

/* 回答本文のファイル名（クリックでプレビュー） */
.answer-file-link{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--teal,#007F85);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.answer-file-link:hover{background:#E9F6F4;}
.source-pid{margin-left:6px;color:#8E9999;font-size:0.85em;}

/* 回答本文の物件 ID の横に出すプロジェクト追加の星 */
.fav-star-btn.inline{margin-left:4px;padding:0 3px;font-size:0.95em;vertical-align:baseline;}

/* 回答本文のファイル名の横の「プレビュー」ボタン */
.answer-preview-btn{margin-left:6px;padding:1px 8px;font-size:11px;line-height:1.5;color:var(--teal,#007F85);background:#fff;border:1px solid var(--teal,#007F85);border-radius:10px;cursor:pointer;vertical-align:baseline;white-space:nowrap;}
.answer-preview-btn:hover{background:#E9F6F4;}

/* ---- プロジェクト内チャット（SPA のプロジェクト詳細。projects.css と同じ定義。変えるときは両方） ---- */
/* プロジェクト内チャット（モックアップ 20260825 の project-mini-chat）。#app-layout の右に重ねてスライドイン */
.project-mini-chat{position:absolute;top:0;right:0;bottom:0;z-index:55;width:min(420px,calc(100% - 32px));background:#fff;border-left:1px solid #D8DDDD;box-shadow:-5px 0 18px rgba(20,45,45,.18);display:flex;flex-direction:column;visibility:hidden;pointer-events:none;transform:translateX(104%);transition:transform .32s cubic-bezier(.22,.72,.24,1),visibility 0s linear .32s;}
.project-mini-chat.open{visibility:visible;pointer-events:auto;transform:translateX(0);transition-delay:0s;}
.project-mini-chat-head{height:64px;padding:0 16px 0 20px;display:flex;align-items:center;gap:12px;flex:0 0 auto;}
.project-mini-chat-title{min-width:0;flex:1;padding:0;border:0;background:none;color:#00A3AA;font:600 13px/1.3 inherit;text-align:left;display:flex;align-items:center;gap:9px;white-space:nowrap;overflow:hidden;visibility:hidden;cursor:pointer;}
.project-mini-chat.conversation .project-mini-chat-title{visibility:visible;}
.project-mini-chat-title img{width:19px;height:19px;flex:0 0 19px;}
.project-mini-chat-icon{width:28px;height:28px;padding:0;border:0;background:none;color:#151515;display:grid;place-items:center;cursor:pointer;border-radius:4px;}
.project-mini-chat-icon:hover{background:#F0F5F5;}
.project-mini-chat-icon img{width:19px;height:19px;display:block;}
.project-mini-chat-close img{width:22px;height:20px;}
.project-mini-chat-main{flex:1;min-height:0;overflow-y:auto;padding:18px 18px 14px;display:flex;flex-direction:column;}
.project-mini-chat-intro{margin:auto 0;align-self:center;width:100%;font-size:14px;line-height:1.55;color:#181818;transform:translateY(-24px);}
.project-mini-chat-intro strong{display:block;margin-bottom:12px;font-size:19px;line-height:1.55;font-weight:600;}
.project-mini-chat-intro p{margin:0 0 6px;}
.project-mini-chat-warning{margin-top:10px;color:#FF554D;font-size:12px;}
.project-mini-chat-log{display:none;flex-direction:column;gap:20px;padding:22px 0 18px;font-size:13px;line-height:1.65;}
.project-mini-chat.conversation .project-mini-chat-intro{display:none;}
.project-mini-chat.conversation .project-mini-chat-log{display:flex;}
/* ChatView（cv-message）の吹き出しをモックアップの見た目に */
.project-mini-chat-log .cv-message{display:flex;flex-direction:column;}
.project-mini-chat-log .cv-message.user{align-items:flex-end;}
.project-mini-chat-log .cv-message.user .cv-bubble{max-width:86%;padding:11px 16px;border-radius:14px;background:#050505;color:#fff;white-space:pre-wrap;}
.project-mini-chat-log .cv-message.assistant .cv-bubble{color:#202020;max-width:100%;}
.project-mini-chat-log .cv-bubble table{font-size:12px;}
.project-mini-chat-log .cv-typing{color:#8E9999;font-size:12px;}
.project-mini-chat-composer{margin:0 16px 14px;padding:13px 14px 10px;border:1px solid #D5DADA;border-radius:9px;background:#fff;flex:0 0 auto;}
.project-mini-chat-composer textarea{display:block;width:100%;height:19px;max-height:114px;padding:0;border:0;outline:0;resize:none;overflow-y:hidden;font:13px/1.45 inherit;color:#222;background:transparent;}
.project-mini-chat-composer textarea::placeholder{color:#B7BBBB;}
.project-mini-chat-compose-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.project-mini-chat-model{position:relative;}
.project-mini-chat-thinking{border:0;background:none;padding:0;color:#666;font:12px/1 inherit;cursor:pointer;}
.project-mini-chat-model-menu{position:absolute;left:0;bottom:22px;min-width:110px;padding:4px 0;background:#fff;border:1px solid #D5DADA;border-radius:8px;box-shadow:0 6px 18px rgba(20,45,45,.15);z-index:3;}
.project-mini-chat-model-menu button{display:block;width:100%;padding:7px 12px;border:0;background:none;text-align:left;font:12px/1.2 inherit;color:#222;cursor:pointer;}
.project-mini-chat-model-menu button:hover,.project-mini-chat-model-menu button.active{background:#F0F5F5;color:#00A3AA;}
.project-mini-chat-send{width:44px;height:44px;border:0;border-radius:50%;background:#C6C6C6;color:#fff;display:grid;place-items:center;cursor:not-allowed;}
.project-mini-chat-send.ready{background:var(--teal,#00A3AA);cursor:pointer;}
.project-mini-chat-send svg{width:44px;height:44px;}
.project-mini-chat-history{position:absolute;inset:0;background:#fff;display:none;flex-direction:column;z-index:2;}
.project-mini-chat.history-open .project-mini-chat-history{display:flex;}
.project-mini-chat-history-head-title{min-width:0;flex:1;border:0;background:none;padding:0;color:#00A3AA;font:600 13px/1.3 inherit;text-align:left;display:flex;align-items:center;gap:9px;cursor:pointer;}
.project-mini-chat-history-head-title img{width:19px;height:19px;}
.project-mini-chat-history-list{overflow-y:auto;padding:26px 12px 18px;display:flex;flex-direction:column;gap:3px;}
.project-mini-chat-history-empty{padding:12px 10px;color:#8E9999;font-size:13px;}
.project-mini-chat-history-item{width:100%;min-height:42px;padding:8px 10px;border:0;border-radius:5px;background:transparent;color:#222;font:13px/1.35 inherit;text-align:left;display:flex;align-items:center;gap:9px;cursor:pointer;transition:background-color .18s ease;}
.project-mini-chat-history-item:hover,.project-mini-chat-history-item.active{background:#F0F2F2;}
.project-mini-chat-history-item>img{width:16px;height:16px;flex:0 0 16px;}
.project-mini-chat-history-label{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.project-mini-chat-history-label input{width:100%;font:inherit;padding:2px 4px;border:1px solid #D5DADA;border-radius:4px;}
.project-mini-chat-history-actions{display:flex;align-items:center;gap:10px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility 0s linear .28s;}
.project-mini-chat-history-item:hover .project-mini-chat-history-actions,.project-mini-chat-history-item.active .project-mini-chat-history-actions{opacity:1;visibility:visible;pointer-events:auto;transition-delay:.15s;}
.project-mini-chat-history-action{width:20px;height:20px;padding:2px;border:0;background:none;cursor:pointer;}
.project-mini-chat-history-action img{width:16px;height:16px;display:block;}
@media(max-width:700px){.project-mini-chat{width:100%;max-width:none}}
@media(prefers-reduced-motion:reduce){.project-mini-chat{transition:none;}}

/* ---- チャット横断検索の結果（履歴ドロワー） ---- */
.hist-item.search{height:auto;min-height:32px;padding:6px 9px;align-items:flex-start;}
.hist-item.search .search-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.hist-item.search .search-title{display:flex;align-items:center;gap:6px;min-width:0;}
.hist-item.search .proj-badge{flex-shrink:0;font-size:10px;line-height:1;padding:3px 6px;border-radius:9px;background:#E0F4F4;color:var(--teal);white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;}
.hist-item.search .proj-badge.chat{background:#EEF1F1;color:var(--text-sub);}
.hist-item.search .snippet{font-size:11.5px;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hist-item.search mark{background:#FFF3B0;color:inherit;padding:0 1px;border-radius:2px;}

/* ---- 検索画面（チャット横断） ---- */
/* 検索欄は左右中央に置き、件数はその下に */
#view-search .tree-toolbar{flex-direction:column;align-items:center;justify-content:center;gap:10px;margin-right:14px;}
#view-search .tree-toolbar .tree-stats{order:2;justify-content:center;}
.chat-search-box{order:1;width:100%;max-width:640px;margin:0 auto;}
.chat-search-list{padding:8px 10px 18px;min-height:320px;}
.chat-search-empty{padding:40px 12px;color:var(--text-sub);font-size:13px;text-align:center;}
.chat-search-item{padding:10px 12px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:4px;}
.chat-search-item:hover,.chat-search-item:focus-visible{background:#F3F8F8;outline:none;}
.chat-search-row{display:flex;align-items:center;gap:10px;min-width:0;}
.chat-search-badge{flex-shrink:0;font-size:11px;line-height:1;padding:4px 8px;border-radius:10px;background:#E0F4F4;color:var(--teal);white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;}
.chat-search-badge.chat{background:#EEF1F1;color:var(--text-sub);}
.chat-search-title{flex:1;min-width:0;color:var(--teal);font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chat-search-date{flex-shrink:0;color:var(--text-sub);font-size:12px;}
.chat-search-snippet{color:#4A5555;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2px;}
.chat-search-item mark{background:#FFF3B0;color:inherit;padding:0 1px;border-radius:2px;}

/* ---- マップ: 行の「⋮」と位置情報の誤り報告 ---- */
.map-popup-item{position:relative;}
.map-popup-more{flex:0 0 auto;width:22px;height:22px;margin-right:4px;border:0;background:none;color:#8E9999;font-size:16px;line-height:1;cursor:pointer;border-radius:4px;}
.map-popup-more:hover{background:#F0F5F5;color:var(--teal);}
.map-item-menu{position:fixed;z-index:140;background:#fff;border-radius:10px;box-shadow:0 8px 24px rgba(20,45,45,.18);padding:6px;}
.map-item-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px;border:0;background:none;font:13px/1.2 inherit;color:#222;cursor:pointer;border-radius:8px;white-space:nowrap;}
.map-item-menu button:hover{background:#F3F8F8;}
.map-item-menu button svg{width:18px;height:18px;color:#444;}
.loc-report-layer{position:fixed;inset:0;z-index:150;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:20px;}
.loc-report-layer.open{display:flex;}
.loc-report-dialog{position:relative;width:min(640px,100%);background:#fff;border-radius:12px;padding:38px 48px 40px;box-shadow:0 18px 48px rgba(0,0,0,.22);text-align:center;}
.loc-report-close{position:absolute;top:14px;right:16px;}
.loc-report-title{font-size:20px;font-weight:700;color:#222;margin:0 0 10px;}
.loc-report-property{color:#444;font-size:14px;margin:0 0 20px;}
.loc-report-text{display:block;width:100%;height:180px;padding:12px 14px;border:1px solid #D5DADA;border-radius:8px;font:14px/1.6 inherit;color:#222;resize:vertical;box-sizing:border-box;}
.loc-report-text:focus{outline:none;border-color:var(--teal);}
.loc-report-actions{display:flex;justify-content:center;gap:24px;margin-top:28px;}
.loc-report-cancel,.loc-report-send{min-width:168px;height:50px;border:0;border-radius:8px;font:600 16px/1 inherit;cursor:pointer;color:#fff;}
.loc-report-cancel{background:#B8BEBE;}
.loc-report-send{background:var(--teal);}
.loc-report-send:hover{background:var(--teal-dark,#008A90);}
.loc-report-send:disabled{opacity:.6;cursor:default;}
.loc-report-done-icon{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:#E0F4F4;color:var(--teal);display:flex;align-items:center;justify-content:center;}
.loc-report-done-icon svg{width:30px;height:30px;}
.loc-report-done-text{color:#444;font-size:14px;line-height:1.7;margin:0;}

/* ---- マップ: 検索窓（モックアップの home-map-search）と左下の +/− ---- */
.home-map-card .map-search-wrap{
  top:22px;right:26px;width:clamp(320px,34vw,360px);height:32px;box-sizing:border-box;padding:0 18px;gap:10px;
  border-radius:17px;border:1px solid #CFE0DF;background:#fff;box-shadow:none;color:#C7CDCF;
}
.home-map-card .map-search-wrap svg{width:20px;height:20px;color:#C7CDCF;flex-shrink:0;}
.home-map-card .map-search-wrap input{font-size:13px;font-weight:500;color:#333;}
.home-map-card .map-search-wrap input::placeholder{color:#BCBCBC;}
.map-zoom{position:absolute;left:28px;bottom:28px;z-index:20;width:44px;display:flex;flex-direction:column;gap:1px;
  filter:drop-shadow(0 3px 8px rgba(70,90,88,.18));}
.map-zoom button{width:44px;height:44px;border:1px solid #D3E1E0;background:#fff;color:var(--teal);font:300 26px/1 inherit;cursor:pointer;padding:0;}
.map-zoom button:first-child{border-radius:6px 6px 0 0;}
.map-zoom button:last-child{border-radius:0 0 6px 6px;border-top:0;}
.map-zoom button:hover{background:#F3F8F8;}

/* マップの物件一覧: 名前はボタン（物件カタログを開く） */
.map-popup-item-body{border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px;}
.map-popup-item-body:hover .map-popup-item-name{color:var(--teal);text-decoration:underline;text-underline-offset:2px;}

/* マップ検索の候補: 全件をスクロールで見せる。上下キーで選択中の行を強調 */
.map-search-results{max-height:min(60vh,520px);overflow-y:auto;}
.map-search-results button.active{background:#E9F6F4;}
.map-search-results button b{display:block;font-size:13px;color:var(--text);}
.map-search-results button small{display:block;font-size:11px;color:var(--text-sub);}
.map-search-count{position:sticky;bottom:0;padding:6px 12px;font-size:11px;color:var(--text-sub);background:#fff;border-top:1px solid #EEF2F2;text-align:right;}
/* 物件一覧（左のパネル）が開いているときは、ズームをパネルの右側に置く */
.home-map-card.has-popup .map-zoom{left:calc(14px + 280px + 14px);}
/* 絞り込み・選択の注記はズームボタンの右（左下のズームと右下の検索フィルタの間） */
.home-map-card .map-filter-note{left:calc(28px + 44px + 12px);bottom:28px;max-width:calc(100% - 84px - 190px);}
.home-map-card.has-popup .map-filter-note{left:calc(14px + 280px + 14px + 44px + 12px);}
