*{margin:0;padding:0;box-sizing:border-box}
/* ── デジタル庁デザインシステム準拠カラー (2025) ── */
:root{
  --pri:#0017C1;           /* デジタル庁ブルー */
  --pri-d:#00119A;
  --acc:#2E50C8;
  --bg:#F4F6F9;            /* ニュートラルライトグレー */
  --card:#FFFFFF;
  --txt:#1A1A1C;           /* テキスト：ほぼ黒 */
  --txt-l:#595959;         /* テキスト：セカンダリ */
  --sh:0 1px 3px rgba(0,0,0,.08);
  --sh-h:0 4px 16px rgba(0,0,0,.10);
  --r:6px;                 /* 角丸：控えめ */
  --tr:.2s ease;
}
body{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','BIZ UDPGothic',Meiryo,'Segoe UI',sans-serif;background:var(--bg);color:var(--txt);min-height:100vh;-webkit-font-smoothing:antialiased}

/* ═══ LOGIN ═══ */
#loginScreen{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;
background:linear-gradient(135deg,#fafbff 0%,#eaf1fb 40%,#f4ebe0 100%);overflow:hidden}
#loginScreen::before{content:'';position:absolute;top:-20%;right:-10%;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(0,0,143,.25) 0%,rgba(0,0,143,0) 70%);pointer-events:none;animation:softFloat 14s ease-in-out infinite}
#loginScreen::after{content:'';position:absolute;bottom:-15%;left:-8%;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(100,160,230,.22) 0%,rgba(100,160,230,0) 70%);pointer-events:none;animation:softFloat 16s ease-in-out infinite reverse}
@keyframes softFloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-20px,20px) scale(1.06)}}
#loginScreen.hidden{display:none}
.login-bg-lines{position:absolute;inset:0;overflow:hidden}
.login-bg-lines span{position:absolute;background:linear-gradient(90deg,transparent,rgba(74,111,165,.12),transparent);width:200%;height:1px;animation:bgLine 8s linear infinite}
.login-bg-lines span:nth-child(1){top:20%;animation-delay:0s;animation-duration:7s}
.login-bg-lines span:nth-child(2){top:40%;animation-delay:1s;animation-duration:9s}
.login-bg-lines span:nth-child(3){top:60%;animation-delay:2s;animation-duration:6s}
.login-bg-lines span:nth-child(4){top:80%;animation-delay:3s;animation-duration:8s}
@keyframes bgLine{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}

.login-container{position:relative;z-index:2;text-align:center;width:400px;max-width:90vw}
.login-logo-wrap{margin-bottom:40px;position:relative}
.login-logo{width:280px;max-width:70vw;opacity:0;transform:scale(.7);animation:logoPhase1 2.2s cubic-bezier(.16,1,.3,1) .3s forwards;
filter:drop-shadow(0 6px 24px rgba(0,0,143,.35)) drop-shadow(0 2px 8px rgba(50,80,140,.15))}
@keyframes logoPhase1{
  0%{opacity:0;transform:scale(.7);filter:blur(24px) brightness(2)}
  25%{opacity:.3;transform:scale(.82);filter:blur(14px) brightness(1.6)}
  50%{opacity:.7;transform:scale(.94);filter:blur(5px) brightness(1.2)}
  75%{opacity:.92;transform:scale(1.01);filter:blur(1px) brightness(1.05)}
  100%{opacity:1;transform:scale(1);filter:blur(0) brightness(1)}
}
.login-logo.loaded{opacity:1;transform:scale(1);filter:drop-shadow(0 6px 24px rgba(0,0,143,.35)) drop-shadow(0 2px 8px rgba(50,80,140,.15));animation:logoFloat 5s ease-in-out infinite}
@keyframes logoFloat{0%,100%{transform:translateY(0);filter:drop-shadow(0 6px 24px rgba(0,0,143,.35)) drop-shadow(0 2px 8px rgba(50,80,140,.15))}50%{transform:translateY(-10px);filter:drop-shadow(0 10px 32px rgba(0,0,143,.45)) drop-shadow(0 4px 12px rgba(50,80,140,.2))}}
.login-logo-glow{position:absolute;top:50%;left:50%;width:220px;height:220px;transform:translate(-50%,-50%);
background:radial-gradient(circle,rgba(0,0,143,.28) 0%,rgba(0,0,143,.08) 40%,transparent 70%);
opacity:0;animation:glowIn 2.5s .5s forwards;pointer-events:none;border-radius:50%}
@keyframes glowIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}50%{opacity:1}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.login-logo-glow.loaded{animation:glowPulse 3.5s ease-in-out infinite}
@keyframes glowPulse{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.12)}}
.login-orb{position:absolute;border-radius:50%;pointer-events:none;animation:orbFloat 6s ease-in-out infinite}
.login-orb:nth-child(2){width:6px;height:6px;background:rgba(100,150,255,.3);top:20%;left:30%;animation-delay:0s}
.login-orb:nth-child(3){width:4px;height:4px;background:rgba(255,100,80,.25);top:70%;right:25%;animation-delay:1.5s}
.login-orb:nth-child(4){width:5px;height:5px;background:rgba(150,180,255,.2);bottom:25%;left:20%;animation-delay:3s}
@keyframes orbFloat{0%,100%{transform:translateY(0) translateX(0)}25%{transform:translateY(-12px) translateX(5px)}75%{transform:translateY(8px) translateX(-5px)}}

.login-subtitle{color:rgba(60,80,120,.7);font-size:13px;letter-spacing:3px;margin-top:8px;
opacity:0;animation:fadeUp .8s .8s forwards;font-weight:600}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
.login-subtitle{transform:translateY(10px)}

.login-card{background:rgba(255,255,255,.78);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.9);
border-radius:18px;padding:36px 32px;opacity:0;animation:fadeUp .8s 1.2s forwards;transform:translateY(10px);box-shadow:0 20px 60px rgba(40,60,100,.12),0 6px 20px rgba(0,0,143,.08)}
.login-field{margin-bottom:18px;text-align:left}
.login-field label{display:block;font-size:12px;color:rgba(60,80,120,.75);margin-bottom:6px;font-weight:700;letter-spacing:1px}
.login-field input{width:100%;padding:12px 16px;background:rgba(255,255,255,.85);border:1.5px solid rgba(140,165,200,.25);
border-radius:10px;color:#2d3748;font-size:15px;outline:none;transition:var(--tr)}
.login-field input:focus{border-color:rgba(0,0,143,.6);background:#fff;box-shadow:0 0 0 3px rgba(0,0,143,.15)}
.login-field input::placeholder{color:rgba(100,120,150,.45)}
.login-btn{width:100%;padding:14px;background:linear-gradient(135deg,#1a1ab5,#3a3acc);border:none;
border-radius:10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:var(--tr);
letter-spacing:1px;margin-top:8px;box-shadow:0 4px 14px rgba(0,0,143,.3)}
.login-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,143,.45)}
.login-btn:active{transform:translateY(0)}
.login-error{color:#e53e3e;font-size:13px;margin-top:12px;min-height:20px}

/* ═══ HEADER ═══ */
.header{background:#ffffff;padding:0 32px;height:64px;
display:flex;align-items:center;justify-content:space-between;box-shadow:none;border-bottom:2px solid #0017C1;position:sticky;top:0;z-index:100}
.header-left{display:flex;align-items:center;gap:14px;cursor:pointer}
.header-logo{height:48px;width:auto;max-height:calc(100% - 8px);filter:none;opacity:1;object-fit:contain;display:block}
.header-right{display:flex;align-items:center;gap:16px}
.header-date{color:#595959;font-size:13px;font-weight:400}
.header-user{display:flex;align-items:center;gap:8px;color:#1A1A1C;font-size:14px;background:#EEF2FF;padding:6px 14px;border-radius:4px;cursor:pointer;transition:var(--tr);border:1px solid #C8D0F0;font-weight:600}
.header-user:hover{background:#DCE4FF;border-color:#9AAAD9}
.header-logout{background:#fff;border:1px solid #D4D8E0;color:#595959;padding:5px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:var(--tr);font-weight:600}
.header-logout:hover{background:#F4F6F9;color:#0017C1;border-color:#0017C1}

/* ─── ヘッダー歯車メニュー ─── */
.hdr-gear-wrap{position:relative}
.hdr-gear-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff;border:1px solid #D4D8E0;border-radius:4px;cursor:pointer;transition:var(--tr);color:#595959}
.hdr-gear-btn:hover,.hdr-gear-btn.open{background:#F4F6F9;color:#0017C1;border-color:#0017C1}
.hdr-gear-btn.open svg{animation:gearSpin .4s ease}
@keyframes gearSpin{from{transform:rotate(0)}to{transform:rotate(60deg)}}
.hdr-gear-menu{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:#fff;border:1px solid #e2e8f0;border-radius:10px;
  box-shadow:0 8px 28px rgba(0,0,0,.13),0 2px 8px rgba(0,0,0,.07);
  min-width:180px;z-index:200;overflow:hidden;
  animation:gearMenuIn .15s ease
}
@keyframes gearMenuIn{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}
.hdr-gear-menu.open{display:block}
.hdr-gear-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;background:none;border:none;font-size:13px;font-weight:600;color:#1A1A1C;cursor:pointer;text-align:left;transition:background .12s,color .12s;font-family:inherit}
.hdr-gear-item:hover{background:#EEF2FF;color:#0017C1}
.hdr-gear-item svg{flex-shrink:0;opacity:.65}
.hdr-gear-item:hover svg{opacity:1}
.hdr-gear-sep{height:1px;background:#e2e8f0;margin:4px 0}
.hdr-gear-logout{color:#dc2626}
.hdr-gear-logout:hover{background:#fff5f5;color:#b91c1c}

/* ─── ユーザーメニュー ─── */
.hdr-user-wrap{position:relative}
.hdr-user-chevron{transition:transform .2s ease;flex-shrink:0;opacity:.6}
.header-user[aria-expanded="true"] .hdr-user-chevron{transform:rotate(180deg)}
.hdr-user-menu{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:#fff;border:1px solid #e2e8f0;border-radius:10px;
  box-shadow:0 8px 28px rgba(0,0,0,.13),0 2px 8px rgba(0,0,0,.07);
  min-width:150px;z-index:200;overflow:hidden;
  animation:gearMenuIn .15s ease
}
.hdr-user-menu.open{display:block}

/* アプリ起動中: AI Bot / クイックメモ をヘッダーに格納するスロット */
.header-app-tools{display:flex;align-items:center;gap:8px;margin-right:4px}
.header-app-tools:empty{display:none}
/* AI Bot ボタンをヘッダー内で水平・コンパクトに表示 */
body .header-app-tools #aiBotTab{
  position:static!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;
  width:auto!important;height:34px!important;
  padding:0 12px!important;gap:7px!important;
  border-radius:8px!important;
  background:linear-gradient(180deg,#ff7c00,#e05a00)!important;
  box-shadow:0 2px 6px rgba(255,100,0,.35)!important;
  z-index:auto!important;
  transition:transform .15s,box-shadow .15s!important;
}
body .header-app-tools #aiBotTab:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(255,100,0,.5)!important;padding:0 12px!important}
body .header-app-tools #aiBotTab img{width:20px!important;height:20px!important;margin:0!important;animation:none!important;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))!important;display:block!important}
body .header-app-tools #aiBotTab #aiBotTab-label{
  display:inline!important;
  writing-mode:horizontal-tb!important;text-orientation:initial!important;
  font-size:12px!important;font-weight:700!important;letter-spacing:.5px!important;color:#fff!important;
}
/* クイックメモボタンをヘッダー内に */
body .header-app-tools #iosQNTrigger.ios-qn-trigger{
  position:static!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  width:34px!important;height:34px!important;
  border-radius:8px!important;
  background:rgba(0,0,143,.08)!important;
  color:#00008F!important;
  border:1px solid rgba(0,0,143,.2)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  z-index:auto!important;
}
body .header-app-tools #iosQNTrigger.ios-qn-trigger:hover{background:rgba(0,0,143,.15)!important;transform:translateY(-1px)!important}
body .header-app-tools #iosQNTrigger.ios-qn-trigger svg{width:18px;height:18px}
/* 小画面ではラベル省略でコンパクトに */
@media (max-width:780px){
  body .header-app-tools #aiBotTab{padding:0 8px!important;height:32px!important}
  body .header-app-tools #aiBotTab #aiBotTab-label{display:none!important}
  body .header-app-tools #iosQNTrigger.ios-qn-trigger{width:32px!important;height:32px!important}
}

/* ═══ TABS ═══ */
.category-bar{background:#fff;padding:0 32px;display:flex;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.category-tab{padding:14px 28px;font-size:14px;font-weight:600;color:var(--txt-l);cursor:pointer;border-bottom:3px solid transparent;transition:var(--tr);user-select:none}
.category-tab:hover{color:var(--acc);background:#f7fafc}
.category-tab.active{color:var(--acc);border-bottom-color:var(--acc)}

/* ═══ MAIN ═══ */
.main{max-width:1200px;margin:0 auto;padding:32px 24px}
.notice-section{background:#fff;border-radius:var(--r);padding:20px 28px;margin-bottom:28px;box-shadow:var(--sh);display:flex;align-items:center;gap:12px}
.notice-icon{width:36px;height:36px;background:#fef3c7;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.notice-title{font-weight:700;font-size:15px}.notice-text{color:var(--txt-l);font-size:13px;margin-left:auto}
.category-content{display:none}.category-content.active{display:block}

/* ═══ GRID ═══ */
.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}
.app-card{background:var(--card);border-radius:var(--r);padding:28px 20px 22px;text-align:center;cursor:pointer;transition:var(--tr);box-shadow:var(--sh);position:relative;overflow:hidden}
.app-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--acc),#7c9fd6);opacity:0;transition:var(--tr)}
.app-card:hover{transform:translateY(-4px);box-shadow:var(--sh-h)}.app-card:hover::before{opacity:1}
.app-card-icon{width:72px;height:72px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center}
.app-card-icon img{width:64px;height:64px;object-fit:contain;filter:grayscale(20%) opacity(.85);transition:var(--tr)}
.app-card:hover .app-card-icon img{filter:none;transform:scale(1.08)}
.app-card-name{font-size:14px;font-weight:700;margin-bottom:4px}
.app-card-desc{font-size:11px;color:var(--txt-l);line-height:1.4}
.badge{display:inline-block;background:var(--acc);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;margin-top:6px}

/* ═══ LIST ═══ */
.app-list{display:flex;flex-direction:column;gap:10px}
.app-list-item{background:var(--card);border-radius:10px;padding:16px 24px;display:flex;align-items:center;gap:16px;cursor:pointer;transition:var(--tr);box-shadow:var(--sh)}
.app-list-item:hover{transform:translateX(6px);box-shadow:var(--sh-h)}
.app-list-icon{width:42px;height:42px;background:linear-gradient(135deg,var(--acc),#6b8ec7);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.app-list-name{font-size:14px;font-weight:700}.app-list-desc{font-size:12px;color:var(--txt-l);margin-left:auto}

/* ═══ DASHBOARD ═══ */
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.dashboard-panel,.full-panel{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;margin-bottom:20px}
.panel-header{background:linear-gradient(135deg,var(--acc),#6b8ec7);color:#fff;padding:14px 20px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.panel-body{padding:16px;max-height:360px;overflow:auto}
/* full-height list view: table data scrolls, header sticks */
.panel-body-full{padding:0;max-height:calc(100vh - 215px);overflow-y:auto;overflow-x:auto}
.panel-table{width:100%;border-collapse:collapse;font-size:13px}
.panel-table th{background:#f7fafc;padding:10px 12px;text-align:left;font-weight:600;color:var(--txt-l);border-bottom:2px solid #e2e8f0;font-size:12px;white-space:nowrap;position:sticky;top:0;z-index:2;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.panel-table td{padding:10px 12px;border-bottom:1px solid #edf2f7;white-space:nowrap}
.panel-table tr:hover td{background:#f7fafc}
.sb{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600}
.sb-g{background:#f0fff4;color:#276749}.sb-b{background:#ebf8ff;color:#2b6cb0}.sb-y{background:#fefcbf;color:#975a16}.sb-r{background:#fff5f5;color:#c53030}.sb-o{background:#fffaf0;color:#c05621}
.payment-ghost-row{background:linear-gradient(90deg,#fffcf0 0%,#fff 100%);border-left:3px solid #f6ad55}
.payment-ghost-row td:first-child::before{content:"▶ ";color:#f6ad55;font-size:10px}
.payment-ghost-row:hover{background:linear-gradient(90deg,#fef3c7 0%,#fffbeb 100%)!important}
.empty-state{text-align:center;padding:32px;color:var(--txt-l);font-size:13px}

/* ═══ APP DETAIL ═══ */
#appView{display:none;position:fixed;inset:0;z-index:150;background:var(--bg);overflow-y:auto}
#appView.active{display:block}
/* ── List-scroll mode: lock page, scroll only table (shared: cust / anken / realestate) ── */
#appView.cust-mode,#appView.anken-mode,#appView.realestate-mode{display:none;flex-direction:column;overflow:hidden}
#appView.cust-mode.active,#appView.anken-mode.active,#appView.realestate-mode.active{display:flex}
#appView.cust-mode .av-header,#appView.anken-mode .av-header,#appView.realestate-mode .av-header,
#appView.weekly-mode .av-header,#appView.gchat-mode .av-header,
#appView.cust-mode .av-tabs,#appView.anken-mode .av-tabs,#appView.realestate-mode .av-tabs{flex-shrink:0}
#appView.cust-mode .av-tabs,#appView.anken-mode .av-tabs,#appView.realestate-mode .av-tabs{display:none!important}
#appView.cust-mode .av-body,#appView.anken-mode .av-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:16px 24px 0}
#appView.realestate-mode .av-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:0}
#appView.cust-mode .av-content,#appView.anken-mode .av-content,#appView.realestate-mode .av-content{flex:1;min-height:0;display:none;flex-direction:column}
#appView.cust-mode .av-content.active,#appView.anken-mode .av-content.active,#appView.realestate-mode .av-content.active{display:flex}
#appView.cust-mode #avList,#appView.anken-mode #avList{flex:1;min-height:0;display:flex;flex-direction:column;gap:0}
#appView.realestate-mode #avList{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}
/* ── realestate-mode: #avSidebarを常時サイドバーとして使用 (sidebar-layout 不要) ── */
#appView.realestate-mode.active{flex-direction:row}
#appView.realestate-mode #avSidebar{display:flex;flex-direction:column;width:220px;min-width:220px;flex-shrink:0;background:#fff;border-right:1px solid #dce3ee;overflow-y:auto;overflow-x:hidden}
#appView.realestate-mode .av-header{height:auto;padding:16px 14px 12px;flex-direction:column;align-items:flex-start;gap:4px;border-bottom:1px solid rgba(255,255,255,.12)}
#appView.realestate-mode .av-back{font-size:12px;padding:5px 10px;align-self:flex-start}
#appView.realestate-mode .av-title{font-size:15px;font-weight:800}
#appView.realestate-mode .av-count{display:none}
#appView.realestate-mode .av-tabs{display:none}
#appView.realestate-mode .av-sb-footer{display:none}
#appView.realestate-mode .av-body{flex:1;min-width:0;max-width:none;margin:0;overflow:hidden;display:flex;flex-direction:column;padding:0}
#appView.realestate-mode #avRePanel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding:8px 12px 12px}
#appView.realestate-mode #avRePanel>.re-card{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#appView.cust-mode .toolbar,#appView.anken-mode .toolbar{flex-shrink:0;margin-bottom:10px}
#appView.anken-mode #avForm{overflow-y:auto}
#appView.cust-mode .cust-filter-bar,#appView.anken-mode .anken-filter-bar{flex-shrink:0}
#appView.cust-mode .cust-tbl-wrap,#appView.anken-mode .anken-tbl-wrap{flex:1;min-height:0;overflow-y:auto;margin-bottom:0}

/* ── Anken list table ── */
.anken-tbl-wrap{background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(40,60,100,.05);border:1px solid rgba(60,80,120,.06);overflow:hidden}
.anken-tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.anken-tbl thead th{background:#f8fafd;padding:10px 12px;text-align:left;font-size:10.5px;font-weight:800;color:#8096b0;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-bottom:2px solid #e8edf5;position:sticky;top:0;z-index:4}
.anken-tbl thead th.c-th-center{text-align:center}
.anken-row{cursor:pointer;transition:background .12s,box-shadow .12s;border-left:3px solid #e2e8f0}
.anken-row td{padding:0 12px;height:54px;vertical-align:middle;border-bottom:1px solid #edf2f7;font-size:13px;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.anken-row td:first-child{padding:0 8px 0 10px;text-align:center}
.anken-row td:last-child{padding:0 8px;text-align:center}
.anken-row:hover td{background:#f0f5ff}
.anken-row:hover{box-shadow:0 2px 10px rgba(74,111,165,.1)}
.anken-row:last-child td{border-bottom:none}
/* 案件状況バッジ */
.ak-s{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:10px;white-space:nowrap;letter-spacing:.4px}
.ak-s.ak-g{background:#ebfdf3;color:#276749}      /* 成約 */
.ak-s.ak-b{background:#ebf4ff;color:#4a6fa5}      /* 追客中 */
.ak-s.ak-r{background:#fff5f5;color:#c53030}      /* 失注 */
.ak-s.ak-n{background:#f7fafc;color:#718096}      /* 問い合わせのみ */
/* 行ボーダー（状況別）*/
.anken-row.ak-st-g{border-left:3px solid #38a169}
.anken-row.ak-st-b{border-left:3px solid #4a6fa5}
.anken-row.ak-st-r{border-left:3px solid #e53e3e}

@media(max-width:768px){
  .cust-tbl .c-col-zip,.anken-tbl .ak-col-addr{display:none}
}
.av-header{background:var(--pri);padding:0 32px;height:64px;display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--pri-d)}
.av-back{background:rgba(255,255,255,.15);border:none;color:#fff;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:var(--tr);display:flex;align-items:center;gap:6px}
.av-back:hover{background:rgba(255,255,255,.25)}
.av-title{color:#fff;font-size:20px;font-weight:700}
.av-count{color:rgba(255,255,255,.7);font-size:13px;margin-left:8px}
.av-tabs{background:#fff;padding:0 32px;display:flex;border-bottom:1px solid #e2e8f0}
.av-tab{padding:12px 24px;font-size:14px;font-weight:600;color:var(--txt-l);cursor:pointer;border-bottom:3px solid transparent;transition:var(--tr)}
.av-tab:hover{color:var(--acc)}.av-tab.active{color:var(--acc);border-bottom-color:var(--acc)}
.av-body{max-width:1200px;margin:0 auto;padding:24px}
.av-content{display:none}.av-content.active{display:block}

/* Toolbar */
.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}
.toolbar-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 12px;flex:1;max-width:400px}
.toolbar-search input{border:none;outline:none;font-size:14px;flex:1;font-family:inherit}
.toolbar-info{font-size:13px;color:var(--txt-l);font-weight:600}
.btn-new{background:var(--acc);color:#fff;border:none;padding:8px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:var(--tr)}
.btn-new:hover{background:var(--pri-d)}

/* Form */
.form-row{display:flex;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.fg{display:flex;flex-direction:column;flex:1;min-width:180px}
.fg.full{min-width:100%;flex-basis:100%}
.fg label{font-size:12px;font-weight:600;color:var(--txt-l);margin-bottom:4px}
.fg .req{color:#e53e3e;margin-left:2px}
.fi,.fs,.ft{border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;transition:var(--tr);background:#fff;width:100%}
.fi:focus,.fs:focus,.ft:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(74,111,165,.15)}
.ft{min-height:80px;resize:vertical}
.fi[disabled]{background:#f7fafc;color:var(--txt-l)}
.radio-group{display:flex;gap:16px;padding-top:6px}
.radio-group label{display:flex;align-items:center;gap:4px;font-size:14px;cursor:pointer}
.checkbox-group{display:flex;gap:12px;flex-wrap:wrap;padding:4px 0}
.checkbox-group label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}
.subtable-wrap{width:100%;margin-top:4px}
/* カード型 subtable */
.subtable-cards{display:flex;flex-direction:column;gap:14px}
.subtable-cards .st-cards-list{display:flex;flex-direction:column;gap:14px}
.subtable-cards .st-card{background:#fafbfc;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px 14px 16px;position:relative;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.subtable-cards .st-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.subtable-cards .st-card-no{font-size:11px;font-weight:800;color:#a0aec0;letter-spacing:.06em}
.subtable-cards .st-row-del{width:28px;height:28px;border:none;border-radius:50%;background:#fff5f5;color:#c53030;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.subtable-cards .st-row-del:hover{background:#fed7d7}
.subtable-cards .st-card-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px;align-items:flex-end}
.subtable-cards .st-card-row:last-child{margin-bottom:0}
.subtable-cards .st-cell{display:flex;flex-direction:column;flex:1 1 160px;min-width:140px}
.subtable-cards .st-cell-ta{flex:1 1 280px;min-width:240px}
.subtable-cards .st-cell-lbl{font-size:12px;font-weight:700;color:#4a5568;margin-bottom:5px}
.subtable-cards .st-fi,.subtable-cards .st-fs{border:1px solid #e2e8f0;border-radius:6px;padding:9px 11px;font-size:14px;font-family:inherit;background:#fff;width:100%}
.subtable-cards .st-ft{border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;font-size:14px;font-family:inherit;background:#fff;width:100%;min-height:70px;resize:vertical;line-height:1.6}
.subtable-cards .st-fi:focus,.subtable-cards .st-fs:focus,.subtable-cards .st-ft:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 2px rgba(74,111,165,.12)}
/* 詳細ビュー: カード版 */
.st-view-cards{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.st-view-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;position:relative;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.st-view-no{position:absolute;top:10px;right:14px;font-size:11px;font-weight:800;color:#a0aec0;letter-spacing:.06em}
.st-view-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px;padding-right:30px}
.st-view-row:last-child{margin-bottom:0}
.st-view-cell{flex:1 1 140px;min-width:120px}
.st-view-cell-ta{flex:1 1 280px;min-width:240px}
.st-view-lbl{font-size:11px;font-weight:700;color:#718096;margin-bottom:3px;letter-spacing:.03em}
.st-view-val{font-size:14px;color:#1a202c;line-height:1.6;word-break:break-word}
/* 旧テーブル型(他フォーム用に残置) */
.subtable-scroll{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
.subtable{width:100%;border-collapse:collapse;font-size:14px}
.subtable thead{background:#f7fafc}
.subtable th{padding:10px 12px;text-align:left;font-weight:700;color:#2d3748;font-size:13px;border-bottom:1px solid #e2e8f0;white-space:nowrap}
.subtable td{padding:8px 10px;border-bottom:1px solid #edf2f7;vertical-align:top}
.subtable tbody tr:last-child td{border-bottom:none}
.subtable .st-fi,.subtable .st-fs{width:100%;border:1px solid #e2e8f0;border-radius:6px;padding:8px 10px;font-size:14px;font-family:inherit;background:#fff}
.subtable .st-ft{width:100%;border:1px solid #e2e8f0;border-radius:6px;padding:8px 10px;font-size:14px;font-family:inherit;background:#fff;min-height:48px;resize:vertical;line-height:1.5}
.subtable .st-fi:focus,.subtable .st-fs:focus,.subtable .st-ft:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 2px rgba(74,111,165,.12)}
.subtable .st-td-ta{min-width:200px}
.subtable .st-act-col{width:36px;text-align:center;vertical-align:middle}
.subtable .st-row-del{width:26px;height:26px;border:none;border-radius:50%;background:#fff5f5;color:#c53030;cursor:pointer;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.subtable .st-row-del:hover{background:#fed7d7}
/* 詳細ビュー用サブテーブル */
.subtable-view-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fff;margin-top:4px}
.subtable-view{width:100%;border-collapse:collapse;font-size:14px}
.subtable-view thead{background:#f7fafc}
.subtable-view th{padding:10px 12px;text-align:left;font-weight:700;color:#2d3748;font-size:12px;border-bottom:2px solid #e2e8f0;white-space:nowrap}
.subtable-view td{padding:10px 12px;border-bottom:1px solid #edf2f7;vertical-align:top;font-size:14px;color:#2d3748;line-height:1.6;word-break:break-word}
.subtable-view tbody tr:last-child td{border-bottom:none}
.subtable-view tbody tr:hover{background:#fafbfc}
.st-view-empty{color:#cbd5e0}
/* 申請フォーム拡大 */
.form-card-wide .form-row{gap:18px;margin-bottom:22px}
.form-card-wide .fi,.form-card-wide .fs,.form-card-wide .ft{font-size:15px;padding:12px 14px}
.form-card-wide .ft{min-height:120px;line-height:1.6}
.form-card-wide .fg label{font-size:13px;margin-bottom:6px}
.form-card-wide .radio-group label{font-size:15px}
.form-card-wide .rv-section-title{font-size:14px;margin-top:18px;margin-bottom:10px}
/* 詳細ビュー: 申請アプリ広め */
.rv-card{font-size:14px}
.rv-row .rv-lbl{font-size:12px;color:#4a5568;font-weight:700}
.rv-row .rv-val{font-size:15px;line-height:1.6;color:#1a202c}
.rv-row.rv-full .rv-val{font-size:14px}
/* 却下モーダル */
.ap-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.ap-modal.show{display:flex;animation:apmFade .15s ease-out}
@keyframes apmFade{from{opacity:0}to{opacity:1}}
.ap-modal-card{background:#fff;border-radius:14px;width:520px;max-width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
.ap-modal-head{padding:18px 22px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;display:flex;align-items:center;gap:10px}
.ap-modal-head h3{margin:0;font-size:15px;font-weight:800}
.ap-modal-icon{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;background:rgba(255,255,255,.22);border-radius:50%;font-weight:800}
.ap-modal-body{padding:20px 22px;flex:1;overflow-y:auto}
.ap-modal-lbl{display:block;font-size:13px;font-weight:700;color:#374151;margin-bottom:8px}
.ap-modal-ta{width:100%;border:1.5px solid #e2e8f0;border-radius:8px;padding:12px 14px;font-size:15px;font-family:inherit;line-height:1.6;min-height:130px;resize:vertical;background:#fff;color:#1a202c}
.ap-modal-ta:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.15)}
.ap-modal-hint{font-size:11px;color:#9ca3af;margin:8px 0 0}
.ap-modal-foot{padding:14px 22px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:10px;background:#fafbfc}
.btn-reject-confirm{padding:10px 22px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 2px 6px rgba(239,68,68,.3)}
.btn-reject-confirm:hover{filter:brightness(1.05)}
.btn-st-add{margin-top:8px;padding:6px 14px;background:#edf2f7;color:#2d3748;border:1px dashed #cbd5e0;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.btn-st-add:hover{background:#e2e8f0;border-style:solid}
/* 申請アプリ 承認パネル */
.apply-status-bar{border-radius:12px;padding:16px 20px;margin-bottom:16px;display:flex;align-items:center;flex-wrap:wrap;gap:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.apply-status-bar.ap-wait{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f6cc4a}
.apply-status-bar.ap-ok{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #34d399}
.apply-status-bar.ap-ng{background:linear-gradient(135deg,#fee2e2,#fecaca);border:1px solid #f87171}
.apply-status-bar .ap-badge{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px;color:#1f2937;padding:6px 14px;background:rgba(255,255,255,.7);border-radius:999px}
.apply-status-bar .ap-icon{font-size:18px}
.apply-status-bar .ap-meta{display:flex;flex-wrap:wrap;gap:18px;flex:1}
.apply-status-bar .ap-meta-item{display:flex;flex-direction:column;gap:2px}
.apply-status-bar .ap-meta-lbl{font-size:10px;font-weight:700;color:#4b5563;letter-spacing:.04em}
.apply-status-bar .ap-meta-val{font-size:13px;font-weight:600;color:#1f2937}
.apply-status-bar .ap-reject-reason{flex-basis:100%;padding:10px 12px;background:rgba(255,255,255,.7);border-radius:8px;font-size:13px;color:#7f1d1d;display:flex;flex-direction:column;gap:4px}
.apply-status-bar .ap-actions{display:flex;gap:8px}
.apply-status-bar .btn-approve,.apply-status-bar .btn-reject{padding:8px 18px;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:transform .15s,filter .15s}
.apply-status-bar .btn-approve{background:#10b981;color:#fff;box-shadow:0 2px 6px rgba(16,185,129,.35)}
.apply-status-bar .btn-approve:hover{filter:brightness(1.05);transform:translateY(-1px)}
.apply-status-bar .btn-reject{background:#ef4444;color:#fff;box-shadow:0 2px 6px rgba(239,68,68,.35)}
.apply-status-bar .btn-reject:hover{filter:brightness(1.05);transform:translateY(-1px)}
.apply-status-bar .ap-note{font-size:11px;color:#6b7280;font-style:italic}
.form-actions{display:flex;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}
.btn{border:none;padding:10px 28px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:var(--tr)}
.btn-p{background:var(--acc);color:#fff}.btn-p:hover{background:var(--pri-d)}
.btn-s{background:#edf2f7;color:var(--txt)}.btn-s:hover{background:#e2e8f0}
.btn-d{background:#fff5f5;color:#c53030}.btn-d:hover{background:#fed7d7}

/* Row actions */
.row-act{display:flex;gap:4px}
.row-btn{width:28px;height:28px;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr);font-size:14px}
.row-btn-edit{background:#ebf8ff;color:#2b6cb0}.row-btn-edit:hover{background:#bee3f8}
.row-btn-del{background:#fff5f5;color:#c53030}.row-btn-del:hover{background:#fed7d7}

/* Toast */
.toast{position:fixed;bottom:32px;right:32px;background:#276749;color:#fff;padding:14px 24px;border-radius:10px;font-size:14px;font-weight:600;box-shadow:0 4px 20px rgba(0,0,0,.2);z-index:999;transform:translateY(80px);opacity:0;transition:.3s}
.toast.show{transform:translateY(0);opacity:1}

@media(max-width:768px){
  .header{padding:0 12px;height:56px}.category-bar,.av-tabs{padding:0 8px;overflow-x:auto}
  .category-tab,.av-tab{padding:10px 14px;white-space:nowrap;font-size:13px}
  .main,.av-body{padding:16px 10px}.app-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .dashboard-grid{grid-template-columns:1fr}.form-row{flex-direction:column}
  .panel-body-full{max-height:calc(100vh - 190px)}
  .login-container{width:92vw}.login-logo{width:200px}
  .login-card{padding:28px 20px}
  .login-field input{font-size:16px}/* 16px prevents iOS auto-zoom */
  .rv-row{grid-template-columns:140px 1fr}.rv-lbl,.rv-val{padding:10px 14px}
  .header-date{display:none}
  .header-user span{display:none}/* hide name, show icon only */
}
@media(max-width:480px){
  .login-container{width:96vw}
  .login-card{padding:22px 16px;border-radius:14px}
  .login-logo{width:160px}
  .login-subtitle{font-size:11px}
  .login-btn{font-size:14px;padding:13px}
  .header{height:52px}
  .header-logo{height:26px}
  .app-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .app-card{padding:20px 14px 16px}
  .main,.av-body{padding:12px 8px}
}

/* ═══ RECORD VIEW ═══ */
#recordView{display:none;padding:20px 24px;min-height:calc(100vh - 56px)}
#recordView.active{display:block}
.rv-bar{display:flex;align-items:center;gap:10px;background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:12px 18px;margin-bottom:16px;flex-wrap:wrap}
.rv-back{display:flex;align-items:center;gap:6px;background:none;border:1px solid #ddd;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:13px;color:var(--txt);transition:var(--tr);white-space:nowrap}
.rv-back:hover{background:var(--bg);border-color:var(--acc);color:var(--acc)}
.rv-crumb{flex:1;font-size:14px;color:var(--txt-l);padding:0 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.rv-crumb strong{color:var(--txt)}
.rv-nav-wrap{display:flex;align-items:center;gap:4px}
.rv-nav-btn{background:#fff;border:1px solid #ddd;border-radius:6px;width:30px;height:30px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:var(--tr);padding:0}
.rv-nav-btn:hover:not(:disabled){border-color:var(--acc);color:var(--acc);background:rgba(74,111,165,.06)}
.rv-nav-btn:disabled{opacity:.3;cursor:not-allowed}
.rv-pos{font-size:13px;color:var(--txt-l);padding:0 8px;min-width:80px;text-align:center;white-space:nowrap}
.rv-act-btns{display:flex;gap:8px}
.rv-card{background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;max-width:860px}
.rv-section-title{padding:14px 20px;font-size:12px;font-weight:700;color:var(--txt-l);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid #edf2f7;background:#f7fafc}
.rv-row{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid #edf2f7}
.rv-row:last-child{border-bottom:none}
.rv-lbl{padding:12px 20px;background:#f7fafc;font-size:13px;font-weight:600;color:var(--txt-l);display:flex;align-items:flex-start;padding-top:14px;word-break:break-all}
.rv-val{padding:12px 20px;font-size:14px;color:var(--txt);display:flex;align-items:center;min-height:46px;white-space:pre-wrap;word-break:break-word;line-height:1.55}
.rv-empty{color:#ccc;font-style:italic}
.rv-edit-form{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:28px 32px;max-width:860px}
.rv-edit-form h3{font-size:16px;margin-bottom:20px;color:var(--txt);font-weight:600}
.rv-edit-form .form-row{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.rv-edit-form .fg{flex:1;min-width:180px}
.rv-edit-form .fg.full{flex:1 0 100%}
.rv-edit-form label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--txt-l)}
.rv-edit-form .fi,.rv-edit-form .fs{width:100%;padding:9px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:var(--tr);font-family:inherit;background:#fff;color:var(--txt)}
.rv-edit-form .ft{width:100%;padding:9px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;min-height:80px;resize:vertical;transition:var(--tr)}
.rv-edit-form .fi:focus,.rv-edit-form .fs:focus,.rv-edit-form .ft:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(74,111,165,.12)}
.rv-edit-form .fi:disabled{background:#f7fafc;color:var(--txt-l);cursor:not-allowed}
.rv-edit-form .radio-group{display:flex;gap:16px;padding:8px 0;flex-wrap:wrap}
.rv-edit-form .radio-group label{display:flex;align-items:center;gap:6px;font-weight:400;color:var(--txt);margin-bottom:0;cursor:pointer;font-size:14px}
.rv-edit-form .checkbox-group{display:flex;gap:12px;flex-wrap:wrap;padding:4px 0}
.rv-edit-form .checkbox-group label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}
/* ── 2-column record view ── */
.rv-section-body{display:grid;grid-template-columns:1fr 1fr;background:#edf2f7;column-gap:1px;row-gap:1px}
.rv-section-body+.rv-section-title{border-top:1px solid #edf2f7}
.rv-section-body .rv-row{background:#fff;border-bottom:none;grid-template-columns:120px 1fr}
.rv-section-body .rv-row.rv-full{grid-column:1/-1}
/* ── Compact edit section ── */
.form-sec-compact{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-bottom:12px;padding:12px;background:#f7fafc;border-radius:8px;border:1px solid #edf2f7}
.form-sec-compact .form-row{margin-bottom:6px;gap:8px}
.form-sec-compact .form-row:last-child{margin-bottom:0}
.form-sec-compact .form-row-full{grid-column:1/-1}
.form-sec-compact .fg{min-width:80px}
.form-sec-compact .fg label{font-size:11px;margin-bottom:1px}
.form-sec-compact .radio-group{gap:6px;padding:2px 0}
.form-sec-compact .radio-group label{font-size:12px;font-weight:400}
.form-sec-compact .fi,.form-sec-compact .fs{padding:6px 10px;font-size:13px}
/* ── Customer select field ── */
.customer-select-wrap{position:relative;width:100%}
.customer-select-wrap input{width:100%}
.cs-list{position:absolute;top:calc(100% + 2px);left:0;right:0;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:9999;display:none}
.cs-list.open{display:block}
.cs-item{padding:8px 14px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #f0f4f8}
.cs-item:last-child{border-bottom:none}
.cs-item:hover{background:#ebf4ff}
.cs-code{font-size:11px;color:var(--txt-l);background:#f0f4f8;padding:2px 6px;border-radius:4px;white-space:nowrap}
/* ── Anken New / Edit Full-Screen Form ── */
#ankenNewView{display:none;position:fixed;inset:0;z-index:500;flex-direction:column;background:#f0f4f9;overflow:hidden}
#ankenNewView.active{display:flex}
.anv-hd{background:linear-gradient(135deg,#ffffff 0%,#f0f2ff 60%,#e8eaff 100%);border-bottom:2px solid rgba(0,0,143,.15);padding:0 28px;height:58px;display:flex;align-items:center;gap:16px;flex-shrink:0;box-shadow:0 2px 10px rgba(40,60,100,.07)}
.anv-back{display:flex;align-items:center;gap:6px;background:none;border:1.5px solid #d1d9e6;border-radius:9px;padding:7px 16px;cursor:pointer;font-size:13px;font-weight:600;color:#4a6fa5;transition:.15s;white-space:nowrap}
.anv-back:hover{background:#ebf4ff;border-color:#4a6fa5}
.anv-title{flex:1;font-size:18px;font-weight:800;color:#2d3748;padding:0 8px}
.anv-save{padding:9px 24px;background:linear-gradient(135deg,#1a1ab5,#3a3acc);border:none;border-radius:9px;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:.15s;font-family:inherit}
.anv-save:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,143,.35)}
.anv-mode-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 15px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;font-family:inherit;transition:.15s}
.anv-edit-btn{background:#3b5bdb;color:#fff;border:none}
.anv-edit-btn:hover{background:#2f4abd;transform:translateY(-1px)}
.anv-del-btn{background:#fff;color:#dc2626;border:1px solid #fca5a5}
.anv-del-btn:hover{background:#fff5f5;border-color:#f87171}
.anv-body{flex:1;min-height:0;overflow-y:auto;padding:24px 20px}
.anv-inner{max-width:1400px;margin:0 auto;padding:0 4px}
.anv-section{background:#fff;border-radius:12px;border:1px solid #e8edf5;margin-bottom:18px;overflow:visible}
.anv-stitle{padding:12px 20px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#4a6fa5 0%,#5b82c0 100%);border-bottom:1px solid #3d5e94;border-radius:12px 12px 0 0;cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;transition:filter .15s;text-shadow:0 1px 2px rgba(0,0,0,.15)}
.anv-stitle:hover{filter:brightness(1.1)}
.anv-stitle::after{content:'';display:inline-block;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .22s cubic-bezier(.4,0,.2,1);flex-shrink:0;opacity:.9}
.anv-section.collapsed .anv-stitle{border-bottom-color:transparent;border-radius:12px}
.anv-section.collapsed .anv-stitle::after{transform:rotate(-90deg)}
.anv-section.collapsed .anv-sec-body{display:none}
.anv-sec-body{overflow:visible}
@media(min-width:1300px){
  .anv-inner{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
  .anv-inner>.anv-section{margin-bottom:0}
  .anv-section.anv-col2{grid-column:1/-1}
}
.anv-row{display:flex;border-bottom:1px solid #e8edf5;flex-wrap:wrap}
.anv-row:last-child{border-bottom:none}
.anv-field{display:flex;align-items:center;gap:0;flex:1;min-width:260px;border-right:1px solid #e8edf5}
.anv-field:last-child{border-right:none}
.anv-field.full{flex:1 0 100%;min-width:100%;border-right:none}
.anv-lbl{width:130px;min-width:130px;padding:10px 14px;font-size:11.5px;font-weight:700;color:#4a5568;background:#eef2f8;align-self:stretch;display:flex;align-items:center;border-right:1px solid #dde4f0}
.anv-lbl.req::after{content:' *';color:#e53e3e}
.anv-ctl{flex:1;padding:8px 12px;min-width:0}
.anv-inp{width:100%;padding:8px 11px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;color:#2d3748;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}
.anv-inp:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(74,111,165,.1)}
.anv-inp[readonly]{background:#fffbf0;border-color:#f6d860;color:#744210;cursor:default}
.anv-sel{width:100%;padding:8px 11px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;color:#2d3748;background:#fff;outline:none;transition:.15s;box-sizing:border-box}
.anv-ta{width:100%;min-height:90px;padding:8px 11px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;color:#2d3748;resize:vertical;outline:none;transition:.15s;box-sizing:border-box}
.anv-ta:focus,.anv-sel:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(74,111,165,.1)}
.anv-radio{display:flex;gap:10px;padding:4px 0;flex-wrap:wrap}
.anv-radio label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}
.anv-note{font-size:11px;color:#a0aec0;margin-left:8px;font-weight:400}
.anv-check{display:flex;gap:10px;padding:4px 0;flex-wrap:wrap}
.anv-check label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}
.anv-cs-table{width:100%;border-collapse:collapse;font-size:13px;margin:4px 0}
.anv-cs-table th{padding:5px 8px;background:#f8fafd;font-size:11px;font-weight:700;color:#718096;border:1px solid #e8edf5;text-align:center}
.anv-cs-table td{padding:5px 8px;border:1px solid #e8edf5;text-align:center;vertical-align:middle}
.anv-cs-table label{display:inline-flex;align-items:center;gap:3px;font-size:12px;margin:0 4px 0 0;white-space:nowrap}
.anv-cs-td-hd{font-weight:700;text-align:left!important;white-space:nowrap;color:#4a5568;padding-left:10px!important}
.anv-cs-num{width:76px;padding:4px 6px;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;text-align:right;box-sizing:border-box}
.anv-cs-futai{display:flex;flex-wrap:wrap;gap:6px 10px;padding:2px 0}
.anv-cs-futai-item{display:inline-flex;align-items:center;gap:4px;min-width:128px}
.anv-cs-futai-item.full{flex:1 0 100%;min-width:100%}
.anv-cs-futai-lbl{font-size:12px;color:#718096;white-space:nowrap;min-width:68px}
.anv-cs-futai-unit{font-size:12px;color:#718096}
.anv-cs-ashika-wrap{display:flex;flex-direction:column;gap:0}
.anv-cs-ashika-lbl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#718096;padding:8px 0 4px;margin-top:6px}
.anv-cs-ashika-lbl:first-child{margin-top:0}
.anv-cs-add-btn{margin-top:6px;padding:5px 14px;background:#4a6fa5;color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s;display:inline-flex;align-items:center;gap:4px}
.anv-cs-add-btn:hover{background:#3a5a8a}
.anv-cs-del-btn{padding:2px 9px;background:#fff;color:#e53e3e;border:1.5px solid #fed7d7;border-radius:6px;font-size:14px;font-weight:700;cursor:pointer;transition:.15s;line-height:1.4;flex-shrink:0}
.anv-cs-del-btn:hover{background:#fff5f5;border-color:#fc8181}
.anv-cs-building-group{border:1.5px solid #e8edf5;border-radius:10px;padding:10px 12px 8px;margin-bottom:8px;background:#fdfdff}
.anv-cs-building-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.anv-cs-building-name{flex:1;font-size:13px;font-weight:600;border-color:#c3d0e5;background:#f5f8ff}
/* ── Estimate inline table ── */
.infotab-bar{display:flex;gap:2px;padding:10px 16px 0;background:#f8fafd;border-bottom:1px solid #e8edf5}
.infotab-btn{padding:7px 22px;font-size:12px;font-weight:700;color:#718096;border:1.5px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;cursor:pointer;background:#f0f4f8;transition:.15s;white-space:nowrap}
.infotab-btn:hover{background:#e4eaf3;color:#4a6fa5}
.infotab-btn.active{background:#fff;color:#4a6fa5;border-color:#e8edf5;border-bottom-color:#fff;position:relative;bottom:-1px}
.infotab-panel{display:none}
.infotab-panel.active{display:block}
/* ── 確認書ビュー ── */
.cs-kn-tbl{width:100%;border-collapse:collapse;font-size:13px}
.cs-kn-tbl thead th{background:#1a3a6b;color:#fff;padding:6px 8px;font-size:11px;font-weight:700;border:1px solid #162e5a;text-align:left}
.cs-kn-tbl td{border:1px solid #d1d5db;padding:0;vertical-align:middle}
.cs-kn-lbl{background:#eef2fb;font-weight:700;padding:7px 10px;color:#2b4680;white-space:nowrap;font-size:12px;min-width:116px}
.cs-kn-no{display:inline-block;background:#2b4680;color:#fff;border-radius:50%;width:16px;height:16px;text-align:center;line-height:16px;font-size:9px;margin-right:5px}
.cs-kn-cell{cursor:pointer;text-align:center}
.cs-kn-cell:hover .cs-kn-inner{background:#e8f0fe}
.cs-kn-cell.sel{background:#dbeafe}
.cs-kn-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 8px;gap:2px;min-width:56px}
.cs-kn-mark{font-size:17px;font-weight:900;color:#1a3a6b;line-height:1;min-height:20px;display:flex;align-items:center}
.cs-kn-opt{font-size:11px;color:#4a5568;white-space:nowrap}
.cs-kn-cond td{padding:5px 8px}
.cs-kn-cond input{width:100%;border:1px solid #d1d5db;border-radius:4px;padding:4px 7px;font-size:12px;box-sizing:border-box}
.est-wrap{padding:0}
.est-tabs{display:flex;flex-wrap:wrap;gap:2px;padding:10px 14px 0;background:#f8fafd;border-bottom:1px solid #e8edf5}
.est-tab{padding:7px 14px;font-size:12px;font-weight:700;color:#718096;border:1.5px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;cursor:pointer;background:#f0f4f8;transition:.15s;white-space:nowrap}
.est-tab:hover{background:#e4eaf3;color:#4a6fa5}
.est-tab.active{background:#fff;color:#4a6fa5;border-color:#e8edf5;border-bottom-color:#fff;position:relative;bottom:-1px}
.est-panel{display:none;padding:14px 12px}
.est-panel.active{display:block}
.est-tbl{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}
.est-tbl th{padding:6px 7px;background:#f4f7fb;font-size:11px;font-weight:700;color:#718096;border:1px solid #e2e8f0;text-align:center;white-space:nowrap}
.est-tbl td{padding:4px 5px;border:1px solid #e8edf5;vertical-align:middle;overflow:hidden}
.est-cell{width:100%;padding:5px 7px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:12px;font-family:inherit;color:#2d3748;background:#fff;outline:none;box-sizing:border-box;min-width:0}
.est-cell:focus{border-color:#4a6fa5;box-shadow:0 0 0 2px rgba(74,111,165,.12)}
.est-cell.right{text-align:right}
.est-sel{width:100%;padding:5px 6px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:12px;font-family:inherit;color:#2d3748;background:#fff;outline:none;box-sizing:border-box}
.est-sel:focus{border-color:#4a6fa5}
.est-amt{text-align:right;font-size:12px;font-weight:600;padding:4px 8px!important;white-space:nowrap;color:#2d3748}
.est-amt.zero{color:#c0ccd8}
.est-act{display:flex;gap:4px;justify-content:center}
.est-btn-add{padding:2px 8px;background:#4a6fa5;color:#fff;border:none;border-radius:5px;font-size:14px;font-weight:700;cursor:pointer;line-height:1.4}
.est-btn-del{padding:2px 8px;background:#fff;color:#e53e3e;border:1.5px solid #fed7d7;border-radius:5px;font-size:14px;font-weight:700;cursor:pointer;line-height:1.4}
.est-btn-add:hover{background:#3a5a8a}
.est-btn-del:hover{background:#fff5f5}
.est-btn-move{padding:2px 6px;background:#f0f4f8;color:#4a6fa5;border:1.5px solid #d1d9e6;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;line-height:1.4}
.est-btn-move:hover{background:#e2e8f0}
.est-row-blank td{background:#f8fafc!important}
.est-blank-label{color:#a0aec0;font-size:12px;padding:0 8px}
.est-add-row{padding:8px 4px;display:flex;align-items:center;gap:8px}
.est-add-btn{padding:5px 14px;background:#f0f4f8;color:#4a6fa5;border:1.5px solid #d1d9e6;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer;transition:.15s}
.est-add-btn:hover{background:#e4eaf3}
.est-subtotal{padding:7px 12px;background:#f4f7fb;border-top:2px solid #e8edf5;display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#4a5568}
.est-subtotal span{color:#4a6fa5}
.est-summary{padding:14px 16px}
.est-sum-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:16px}
.est-sum-tbl td{padding:8px 14px;border-bottom:1px solid #edf2f7}
.est-sum-tbl tr:last-child td{border-bottom:none}
.est-sum-cat{color:#718096;font-weight:600}
.est-sum-amt{text-align:right;font-weight:700;color:#2d3748}
.est-sum-total{background:#ebf4ff}
.est-sum-total td{padding:10px 14px;font-size:15px;font-weight:800;color:#2b6cb0}
.est-confirm{padding:14px 16px}
.est-confirm-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.est-confirm-colwrap{display:flex;flex-direction:column;gap:5px}
.est-confirm-row{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#f8fafd;border-radius:8px;border:1px solid #e8edf5}
.est-confirm-lbl{font-size:12px;font-weight:700;color:#718096;min-width:160px;white-space:nowrap}
.est-confirm-opts{display:flex;gap:8px;flex-wrap:wrap}
.est-confirm-opts label{display:flex;align-items:center;gap:3px;font-size:12px;cursor:pointer;white-space:nowrap}
.est-cf-sub{border-left:3px solid #93c5fd !important;background:#eef4ff !important}
.est-cf-sub .est-confirm-lbl{font-style:italic;color:#5a72a0;font-size:11px}
.est-confirm-note{width:100%;padding:5px 9px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:12px;font-family:inherit;box-sizing:border-box}
.est-cf-kaoku-row{display:flex;gap:6px;align-items:center;margin-top:2px}
.est-cf-kaoku-row input{flex:1;padding:5px 9px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:12px;font-family:inherit;outline:none;transition:.15s;box-sizing:border-box}
.est-cf-kaoku-row input:focus{border-color:#4a6fa5;box-shadow:0 0 0 2px rgba(74,111,165,.1)}
.est-cf-add-note{margin-top:5px;padding:4px 12px;background:#f0f4f8;color:#4a6fa5;border:1.5px solid #d1d9e6;border-radius:7px;font-size:11px;font-weight:700;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.est-cf-add-note:hover{background:#e4eaf3}
.est-footer{padding:12px 16px;background:#f8fafd;border-top:2px solid #e8edf5;display:flex;justify-content:flex-end;gap:24px;align-items:center}
.est-footer-item{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#718096}
.est-footer-item span{font-size:15px;font-weight:800;color:#2d3748}
.est-footer-item.grand span{font-size:17px;color:#2b6cb0}
.est-toolbar{padding:8px 14px;background:#f0f4f8;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.est-tmpl-wrap{position:relative;display:inline-block}
.est-tmpl-btn{padding:5px 14px;background:#fff;color:#4a6fa5;border:1.5px solid #c3d0e6;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:5px;transition:.15s}
.est-tmpl-btn:hover{background:#ebf4ff;border-color:#4a6fa5}
.est-tmpl-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:999;background:#fff;border:1.5px solid #d1d9e6;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.12);min-width:220px;overflow:hidden;display:none}
.est-tmpl-menu.open{display:block}
.est-tmpl-item{padding:9px 16px;font-size:13px;color:#2d3748;cursor:pointer;transition:.1s;border-bottom:1px solid #f0f4f8}
.est-tmpl-item:last-child{border-bottom:none}
.est-tmpl-item:hover{background:#ebf4ff;color:#2b6cb0}
.est-tmpl-lbl{font-size:10px;font-weight:700;color:#a0aec0;text-transform:uppercase;padding:6px 16px 2px;letter-spacing:.05em}
/* PDF Preview Modal */
.est-pdf-modal{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);align-items:center;justify-content:center}
.est-pdf-modal.open{display:flex}
.est-pdf-box{background:#fff;border-radius:14px;box-shadow:0 8px 40px rgba(0,0,0,.3);width:92vw;height:90vh;display:flex;flex-direction:column;overflow:hidden}
.est-pdf-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#4a6fa5;color:#fff;border-radius:14px 14px 0 0}
.est-pdf-hdr-title{font-size:14px;font-weight:800}
.est-pdf-hdr-close{background:none;border:none;color:#fff;font-size:22px;cursor:pointer;line-height:1;opacity:.8}
.est-pdf-hdr-close:hover{opacity:1}
.est-pdf-frame{flex:1;border:none;width:100%;background:#e8e8e8}
.anv-est-bar{display:none!important}
.anv-section:has(.anv-est-bar){display:none!important}
.anv-file-area{padding:16px}
.anv-drop{border:2px dashed #cbd5e0;border-radius:12px;padding:28px 20px;text-align:center;cursor:pointer;transition:.2s;background:#f7fafc}
.anv-drop:hover,.anv-drop.drag-over{border-color:var(--acc);background:#ebf4ff}
.anv-drop-ico{font-size:32px;margin-bottom:8px}
.anv-drop-lbl{font-size:13px;color:#718096}
.anv-drop-lbl small{display:block;margin-top:4px;font-size:11px;color:#a0aec0}
.anv-previews{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.anv-fitem{display:flex;align-items:center;gap:8px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 12px;min-width:200px;max-width:100%}
.anv-fthumb{width:44px;height:44px;object-fit:cover;border-radius:7px;border:1px solid #e2e8f0;flex-shrink:0}
.anv-ficon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}
.anv-finfo{flex:1;min-width:0}
.anv-fname{font-size:12px;font-weight:600;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.anv-ftype{font-size:11px;color:#718096;margin-top:2px}
.anv-fdel{border:none;background:none;color:#a0aec0;cursor:pointer;font-size:18px;padding:0 4px;line-height:1}
.anv-fdel:hover{color:#e53e3e}
/* ── Photo drop zone ── */
.photo-drop-zone{border:2px dashed #cbd5e0;border-radius:12px;padding:24px 16px;text-align:center;cursor:pointer;transition:var(--tr);background:#f7fafc;min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%}
.photo-drop-zone.drag-over{border-color:var(--acc);background:#ebf4ff;transform:scale(1.01)}
.photo-drop-label{font-size:13px;color:var(--txt-l);line-height:1.6}
.photo-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;justify-content:flex-start;width:100%}
.photo-thumb{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;border:2px solid #e2e8f0;flex-shrink:0}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.photo-thumb .rm-btn{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.photo-status{font-size:12px;color:var(--txt-l);margin-top:4px}
.photo-status.ok{color:#0f9d58}
.photo-status.err{color:#e53e3e}
/* ── 名刺管理: スキャン/OCR ── */
.meishi-ocr{width:100%;display:flex;flex-direction:column;gap:10px}
.meishi-drop{border:2px dashed #cbd5e0;border-radius:12px;padding:16px;text-align:center;cursor:pointer;transition:var(--tr);background:#f7fafc;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%}
.meishi-drop.drag-over{border-color:var(--acc);background:#ebf4ff;transform:scale(1.01)}
.meishi-drop.has-img{padding:10px;background:#fff}
.meishi-drop img{max-width:100%;max-height:260px;border-radius:8px;display:block}
.meishi-actions{display:flex;gap:8px;flex-wrap:wrap}
/* ── Sortable table headers ── */
.sortable-th{cursor:pointer;user-select:none;white-space:nowrap}
.sortable-th:hover{background:rgba(74,111,165,.08);color:var(--acc)}
.sort-ic{display:inline-block;width:14px;font-size:11px;color:var(--acc);font-weight:700}
.clickable-row{cursor:pointer;transition:background .12s}
.clickable-row:hover td{background:#f5f8ff}
/* ── Sheets sync buttons ── */
.btn-sheets{display:flex;align-items:center;gap:5px;padding:7px 12px;background:#0f9d58;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;white-space:nowrap;transition:var(--tr);font-family:inherit}
.btn-sheets:hover{background:#0b7a44}
.btn-sheets.secondary{background:#fff;color:#0f9d58;border:1px solid #0f9d58}
.btn-sheets.secondary:hover{background:#e6f4ea}
.sync-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--txt-l);padding:4px 8px;background:var(--bg);border-radius:6px;white-space:nowrap}
.sync-dot{width:7px;height:7px;border-radius:50%;background:#ccc;flex-shrink:0}
.sync-dot.ok{background:#0f9d58}
.sync-dot.err{background:#e53e3e}
.sync-dot.loading{background:#d69e2e;animation:pulse 1s infinite}
/* ── Googleログイン ── */
.login-divider{display:flex;align-items:center;gap:10px;margin:14px 0 10px;color:rgba(60,80,120,.45);font-size:12px;font-weight:600}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:rgba(60,80,120,.14)}
#googleSignInBtn{display:flex;justify-content:center;margin-bottom:4px}
.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 16px;
background:#fff;border:1.5px solid rgba(140,165,200,.25);border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;
color:#3c4043;transition:var(--tr);letter-spacing:.2px;font-family:inherit}
.google-btn:hover{background:#f6faff;border-color:rgba(0,0,143,.5);box-shadow:0 4px 14px rgba(40,60,100,.1)}
.google-btn:active{background:#e8e8e8}
/* ── 同期エラー回復モーダル ── */
.sync-err-clickable{cursor:pointer;text-decoration:underline dotted;animation:errBlink 2s ease-in-out infinite}
@keyframes errBlink{0%,100%{opacity:1}50%{opacity:.55}}
.sync-recovery-btn{display:block;width:100%;padding:11px 14px;margin:5px 0;border-radius:8px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05);color:#e4ecfa;font-size:13px;cursor:pointer;text-align:left;transition:.18s}
.sync-recovery-btn:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.28)}
.sync-recovery-btn.primary{border-color:rgba(100,160,255,.4);color:#7ab3ff}
.sync-recovery-btn.primary:hover{background:rgba(26,115,232,.18)}
.sync-recovery-btn.danger{border-color:rgba(231,76,60,.25);color:#ff8a80}
.sync-recovery-btn.danger:hover{background:rgba(231,76,60,.12)}
.sync-recovery-btn.warn{border-color:rgba(214,158,46,.3);color:#f6c34a}
.sync-recovery-btn.warn:hover{background:rgba(214,158,46,.1)}
/* 同期エラー詳細展開 */
.sync-detail{margin:6px 0}
.sync-detail summary{padding:9px 14px;color:#a0c4ff;font-size:12px;font-weight:700;cursor:pointer;list-style:none;border:1px dashed rgba(255,255,255,.2);border-radius:8px;transition:.15s}
.sync-detail summary:hover{background:rgba(255,255,255,.06)}
.sync-detail[open] summary{margin-bottom:4px}
.sync-detail-body{border-left:2px solid rgba(255,255,255,.1);padding-left:8px;margin-left:4px}
#syncErrDetail{color:#ff8a80;font-size:12px;background:rgba(231,76,60,.1);border-radius:6px;padding:8px 12px;margin-bottom:10px;line-height:1.5;display:none}
.sync-paused-badge{background:rgba(214,158,46,.2);color:#f6c34a;border:1px solid rgba(214,158,46,.3);border-radius:4px;padding:2px 7px;font-size:11px;margin-left:6px}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
/* ── Google Drive field ── */
.gdrive-wrap{display:flex;gap:8px;align-items:center}
.gdrive-wrap .fi{flex:1;min-width:0}
.btn-gdrive{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#1a73e8;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;white-space:nowrap;transition:var(--tr);font-family:inherit}
.btn-gdrive:hover{background:#1557b0}
.btn-gdrive.open{background:#fff;color:#1a73e8;border:1px solid #1a73e8}
.btn-gdrive.open:hover{background:#e8f0fe}
.gdrive-link{display:inline-flex;align-items:center;gap:6px;color:#1a73e8;text-decoration:none;font-weight:500}
.gdrive-link:hover{text-decoration:underline}
/* ── Admin-only elements ── */
/* inline style="display:none" は HTML から除去済み。CSS のみで制御する */
.admin-only{display:none}
body.is-admin .admin-only{display:inline-flex}
/* ポータルサイドバーの <a>/<span> は inline-flex より inline が自然 */
body.is-admin .pd-sys-links .admin-only{display:inline}

/* ── サブドロワー共通（Drive / User 設定） ── */
#driveDrawer,#userDrawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:460px;max-width:100vw;z-index:1201;background:#fff;border-radius:16px 0 0 16px;box-shadow:-6px 0 48px rgba(0,0,0,.22);display:none;flex-direction:column;overflow:hidden;transform:translateX(105%);transition:transform .32s cubic-bezier(.4,0,.2,1)}
#driveDrawer.open,#userDrawer.open{transform:translateX(0)}
@media(max-width:480px){#driveDrawer,#userDrawer{width:100vw;border-radius:0}}
.sub-drawer-hdr{padding:14px 18px;display:flex;align-items:center;gap:10px;flex-shrink:0}
.sub-drawer-hdr h3{flex:1;margin:0;font-size:15px;font-weight:700;color:#fff}
.sub-drawer-hdr svg{flex-shrink:0;opacity:.9}
.sub-drawer-body{flex:1;overflow-y:auto;padding:20px 18px}
.sub-drawer-body label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--txt-l)}
.sub-drawer-body .fi{width:100%;padding:9px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;margin-bottom:12px;box-sizing:border-box}

/* ═══ PORTAL LIGHT THEME ═══ */
/* ヘッダーロゴ：透過PNGをそのまま表示（フルカラー） */
.header-logo-wrap{background:transparent;border-radius:8px;padding:2px 4px;display:flex;align-items:center;height:100%}
.header-logo{height:34px;filter:none;opacity:1}

/* ポータル全体：明るい柔らかな配色 */
#portalView{background:linear-gradient(135deg,#fafbff 0%,#eef3fa 50%,#f4ebe0 100%);min-height:calc(100vh - 64px);position:relative;overflow:hidden}
#portalView::before{content:'';position:absolute;top:-10%;right:-8%;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(0,0,143,.16) 0%,rgba(0,0,143,0) 70%);pointer-events:none}
#portalView::after{content:'';position:absolute;bottom:-10%;left:-6%;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(100,160,230,.14) 0%,rgba(100,160,230,0) 70%);pointer-events:none}

/* カテゴリータブバー */
#portalView .category-bar{background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(60,80,120,.08);box-shadow:0 1px 6px rgba(40,60,100,.04);position:relative;z-index:2}
#portalView .category-tab{color:rgba(80,100,140,.6)}
#portalView .category-tab:hover{color:#00008F;background:rgba(0,0,143,.06)}
#portalView .category-tab.active{color:#00008F;border-bottom-color:#00008F;background:transparent}

/* お知らせ */
#portalView .notice-section{background:rgba(255,255,255,.85);border:1px solid rgba(60,80,120,.06);box-shadow:0 2px 10px rgba(40,60,100,.05)}
#portalView .notice-title{color:#2d3748}
#portalView .notice-text{color:#718096}

/* アプリアイコン：カードなし・アイコン＋名前のみ */
#portalView .main{background:transparent;position:relative;z-index:1}
#portalView .app-grid{grid-template-columns:repeat(5,1fr);gap:12px 8px}
@media(max-width:640px){#portalView .app-grid{grid-template-columns:repeat(5,1fr);gap:8px 4px}}
@media(max-width:400px){#portalView .app-grid{grid-template-columns:repeat(3,1fr)}}
#portalView .app-card{background:none!important;border:none!important;box-shadow:none!important;padding:16px 8px 12px;color:#2d3748;border-radius:14px;transition:var(--tr)}
#portalView .app-card::before{display:none!important}
#portalView .app-card:hover{background:rgba(255,255,255,.65)!important;box-shadow:0 4px 18px rgba(40,60,100,.09)!important;transform:translateY(-4px)}
#portalView .app-card-name{color:#2d3748;font-size:12px;font-weight:700;margin-top:6px;text-shadow:none;line-height:1.3;word-break:keep-all}
#portalView .app-card-desc{display:none}
/* アイコン：フルカラー・大きく */
#portalView .app-card-icon{width:76px;height:76px;margin:0 auto}
#portalView .app-card-icon img{
  width:68px;height:68px;
  filter:drop-shadow(0 3px 8px rgba(40,60,100,.14));
  opacity:.92;
  transition:var(--tr);
}
#portalView .app-card:hover .app-card-icon img{
  filter:drop-shadow(0 5px 14px rgba(0,0,143,.35));
  opacity:1;
  transform:scale(1.13);
}
/* マスタリスト */
#portalView .app-list-item{background:rgba(255,255,255,.82);border:1px solid rgba(60,80,120,.06);box-shadow:0 3px 12px rgba(40,60,100,.05)}
#portalView .app-list-item:hover{background:#fff;transform:translateX(6px);box-shadow:0 8px 22px rgba(0,0,143,.14)}
#portalView .app-list-name{color:#2d3748;font-weight:700}
#portalView .app-list-desc{color:#718096}
#portalView .app-list-icon{background:linear-gradient(135deg,#1a1ab5,#3a3acc)}
#portalView .app-list-icon img{filter:brightness(0) invert(1);opacity:.95}

/* バッジ */
#portalView .badge{background:rgba(0,0,143,.15);color:#d57a1f;border:1px solid rgba(0,0,143,.25)}

/* ─── デザイン切替ボタン ─── */
.portal-theme-btn{
  display:inline-flex;align-items:center;gap:5px;
  flex-shrink:0;margin-left:14px;
  padding:5px 14px;
  background:rgba(255,255,255,.7);border:1px solid rgba(60,80,120,.18);
  border-radius:20px;font-size:12px;font-weight:600;
  color:#4a6fa5;cursor:pointer;transition:var(--tr);font-family:inherit;
  white-space:nowrap;letter-spacing:.01em;
}
.portal-theme-btn:hover{background:#fff;border-color:rgba(74,111,165,.4);box-shadow:0 2px 8px rgba(74,111,165,.12)}
body.portal-v2 .portal-theme-btn{background:rgba(79,172,254,.14);border-color:rgba(79,172,254,.35);color:#4facfe}
body.portal-v2 .portal-theme-btn:hover{background:rgba(79,172,254,.24);box-shadow:0 2px 10px rgba(79,172,254,.2)}

/* ═══ PORTAL V2 — Dark Intelligence ═══ */
body.portal-v2 #portalView{
  background:linear-gradient(135deg,#0b0f1e 0%,#0f1629 55%,#090e20 100%);
}
body.portal-v2 #portalView::before{
  background:radial-gradient(circle,rgba(79,172,254,.15) 0%,rgba(79,172,254,0) 70%);
  width:640px;height:640px;
}
body.portal-v2 #portalView::after{
  background:radial-gradient(circle,rgba(138,79,255,.12) 0%,rgba(138,79,255,0) 70%);
  width:560px;height:560px;
}
/* カテゴリタブバー */
body.portal-v2 #portalView .category-bar{
  background:rgba(9,13,28,.88);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(79,172,254,.14);
  box-shadow:0 1px 0 rgba(79,172,254,.07);
}
body.portal-v2 #portalView .category-tab{color:rgba(155,180,220,.5)}
body.portal-v2 #portalView .category-tab:hover{color:#4facfe;background:rgba(79,172,254,.08)}
body.portal-v2 #portalView .category-tab.active{color:#4facfe;border-bottom-color:#4facfe;background:transparent}
/* お知らせ */
body.portal-v2 #portalView .notice-section{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(79,172,254,.14);
  box-shadow:none;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
body.portal-v2 #portalView .notice-title{color:#c8d8f0}
body.portal-v2 #portalView .notice-text{color:rgba(130,158,200,.6)}
body.portal-v2 #portalView .notice-icon{background:rgba(79,172,254,.18);filter:none}
body.portal-v2 #portalView .notice-icon svg{filter:brightness(0) saturate(0) brightness(10) opacity(.7)}
/* メインエリア */
body.portal-v2 #portalView .main{background:transparent}
/* グリッド列数 */
body.portal-v2 #portalView .app-grid{grid-template-columns:repeat(4,1fr)!important;gap:16px!important}
/* アプリカード — glass morphism */
body.portal-v2 #portalView .app-card{
  background:rgba(255,255,255,.055)!important;
  border:1px solid rgba(255,255,255,.1)!important;
  box-shadow:0 4px 24px rgba(0,0,0,.4)!important;
  border-radius:18px;
  padding:22px 20px 18px;
  text-align:left;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:all .25s cubic-bezier(.25,.8,.25,1);
}
body.portal-v2 #portalView .app-card::before{
  display:block!important;
  content:'';
  position:absolute;
  top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(79,172,254,.55) 50%,transparent 100%);
  opacity:0;transition:opacity .25s;
  border-radius:0;
}
body.portal-v2 #portalView .app-card:hover{
  background:rgba(255,255,255,.09)!important;
  border-color:rgba(79,172,254,.38)!important;
  box-shadow:0 14px 40px rgba(0,0,0,.45),0 0 0 1px rgba(79,172,254,.18),0 0 28px rgba(79,172,254,.09)!important;
  transform:translateY(-6px)!important;
}
body.portal-v2 #portalView .app-card:hover::before{opacity:1}
/* アイコン — 角丸バッジ */
body.portal-v2 #portalView .app-card-icon{
  width:50px;height:50px;
  margin:0 0 14px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(79,172,254,.2);
  transition:transform .2s;
}
/* 6色サイクル */
body.portal-v2 #portalView .app-card:nth-child(6n+2) .app-card-icon{background:rgba(154,82,255,.22)}
body.portal-v2 #portalView .app-card:nth-child(6n+3) .app-card-icon{background:rgba(72,187,120,.2)}
body.portal-v2 #portalView .app-card:nth-child(6n+4) .app-card-icon{background:rgba(246,173,85,.2)}
body.portal-v2 #portalView .app-card:nth-child(6n+5) .app-card-icon{background:rgba(252,129,74,.2)}
body.portal-v2 #portalView .app-card:nth-child(6n) .app-card-icon{background:rgba(26,115,232,.22)}
body.portal-v2 #portalView .app-card-icon img{
  width:28px;height:28px;
  filter:brightness(0) invert(1) opacity(.78);
  transition:filter .2s,transform .2s;
}
body.portal-v2 #portalView .app-card:hover .app-card-icon{transform:scale(1.08)}
body.portal-v2 #portalView .app-card:hover .app-card-icon img{filter:brightness(0) invert(1) opacity(1);transform:none}
/* テキスト */
body.portal-v2 #portalView .app-card-name{
  color:#dce8fa;font-size:13px;font-weight:700;
  margin-top:0;line-height:1.35;text-shadow:none;
}
body.portal-v2 #portalView .app-card-desc{
  display:block!important;
  color:rgba(130,158,200,.48);font-size:11px;margin-top:4px;line-height:1.4;
}
/* マスタリスト */
body.portal-v2 #portalView .app-list-item{
  background:rgba(255,255,255,.05)!important;
  border:1px solid rgba(79,172,254,.12)!important;
  box-shadow:none!important;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
body.portal-v2 #portalView .app-list-item:hover{
  background:rgba(255,255,255,.09)!important;
  border-color:rgba(79,172,254,.32)!important;
  box-shadow:0 4px 18px rgba(79,172,254,.1)!important;
  transform:translateX(6px);
}
body.portal-v2 #portalView .app-list-name{color:#dce8fa}
body.portal-v2 #portalView .app-list-desc{color:rgba(130,158,200,.55)}
body.portal-v2 #portalView .app-list-icon{background:linear-gradient(135deg,#4facfe,#00f2fe)}
body.portal-v2 #portalView .app-list-icon img{filter:brightness(0) invert(1) opacity(.95)}
body.portal-v2 #portalView .badge{background:rgba(79,172,254,.2);color:#4facfe;border-color:rgba(79,172,254,.3)}

/* ── AI Bot ────────────────────────────────────────────────── */
@keyframes aiBotFloat{
  0%,100%{transform:translateY(0px) rotate(-.8deg)}
  50%{transform:translateY(-14px) rotate(.8deg)}
}
/* タブボタン（右端固定） */
#aiBotTab{position:fixed;bottom:80px;right:0;z-index:1201;display:none;flex-direction:column;align-items:center;gap:6px;background:linear-gradient(180deg,#ff7c00,#e05a00);border-radius:14px 0 0 14px;padding:14px 10px 10px;cursor:pointer;box-shadow:-4px 0 20px rgba(255,100,0,.45);border:none;transition:padding .2s,box-shadow .2s;user-select:none}
#aiBotTab.visible{display:flex}
#aiBotTab:hover{padding:14px 14px 10px 10px;box-shadow:-8px 0 28px rgba(255,100,0,.6)}
#aiBotTab img{width:36px;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));pointer-events:none;animation:aiBotFloat 3s ease-in-out infinite}
#aiBotTab-label{writing-mode:vertical-rl;text-orientation:mixed;color:#fff;font-size:11px;font-weight:700;letter-spacing:1.5px;pointer-events:none}
/* バックドロップ */
#aiBotOverlay{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:1199;display:none;opacity:0;transition:opacity .3s}
#aiBotOverlay.open{opacity:1}
/* ドロワー：右から全画面高さでスライドイン */
#aiBotPanel{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:440px;max-width:100vw;z-index:1200;background:#f7f8fc;border-radius:16px 0 0 16px;box-shadow:-6px 0 48px rgba(0,0,0,.22);display:none;flex-direction:column;overflow:hidden;transform:translateX(105%);transition:transform .32s cubic-bezier(.4,0,.2,1)}
#aiBotPanel.open{transform:translateX(0)}
@media(max-width:480px){#aiBotPanel{width:100vw;border-radius:0}}
/* ヘッダー */
.aib-header{background:linear-gradient(135deg,#ff7c00,#ffb347);padding:12px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0}
.aib-header-info{flex:1}
.aib-header-info h4{color:#fff;margin:0;font-size:15px;font-weight:700;line-height:1.2}
.aib-header-info p{color:rgba(255,255,255,.85);margin:2px 0 0;font-size:11px}
.aib-close{background:rgba(255,255,255,.2);border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.aib-close:hover{background:rgba(255,255,255,.35)}
/* キャラクター表示エリア */
.aib-character-wrap{background:linear-gradient(160deg,#fff8f0 0%,#fff0e0 100%);display:flex;justify-content:center;align-items:flex-end;padding:16px 16px 0;flex-shrink:0;overflow:hidden;border-bottom:1px solid #ffe0b2}
.aib-character-wrap img{width:280px;height:auto;filter:drop-shadow(0 8px 24px rgba(255,100,0,.22));animation:aiBotFloat 3.2s ease-in-out infinite;pointer-events:none}
/* メッセージエリア */
.aib-msgs{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:9px;background:#f7f8fc;min-height:0}
.aib-bubble{display:flex;align-items:flex-end;gap:6px}
.aib-bubble.user{flex-direction:row-reverse}
.aib-msg{max-width:88%;padding:9px 13px;border-radius:16px;font-size:13px;line-height:1.65;word-break:break-word}
.aib-msg.user{white-space:pre-wrap}
.aib-msg.bot{background:#fff;border:1px solid #e8e8ec;border-bottom-left-radius:4px;color:#333;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.aib-msg.user{background:linear-gradient(135deg,#ff7c00,#ffb347);color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 8px rgba(255,120,0,.3)}
/* Markdown要素スタイル */
.aib-msg.bot p{margin:0 0 6px}.aib-msg.bot p:last-child{margin:0}
.aib-msg.bot ul,.aib-msg.bot ol{margin:4px 0 6px 18px;padding:0}
.aib-msg.bot li{margin:2px 0}
.aib-msg.bot h3,.aib-msg.bot h4{font-size:13px;font-weight:700;margin:6px 0 2px}
.aib-msg.bot pre{background:#f3f4f6;border-radius:8px;padding:10px;margin:6px 0;overflow-x:auto;font-size:12px}
.aib-msg.bot code{background:#f3f4f6;padding:1px 5px;border-radius:4px;font-family:monospace;font-size:12px}
.aib-msg.bot pre code{background:none;padding:0}
.aib-msg.bot strong{font-weight:700}.aib-msg.bot em{font-style:italic}
.aib-msg.bot a{color:#ff7c00;text-decoration:underline}
.aib-msg.bot hr{border:none;border-top:1px solid #e8e8ec;margin:8px 0}
.aib-msg.bot blockquote{border-left:3px solid #ffd0a0;margin:4px 0;padding:4px 10px;color:#666;background:#fffaf5;border-radius:0 6px 6px 0}
.aib-msg.bot table{border-collapse:collapse;width:100%;font-size:12px;margin:6px 0}
.aib-msg.bot th,.aib-msg.bot td{border:1px solid #e8e8ec;padding:4px 8px;text-align:left}
.aib-msg.bot th{background:#fff4e6;font-weight:600}
/* タイピングアニメーション */
.aib-typing-dots{display:inline-flex;gap:5px;align-items:center;padding:2px 4px}
.aib-typing-dots span{width:8px;height:8px;background:#d0d0d8;border-radius:50%;animation:aibDot 1.2s ease-in-out infinite}
.aib-typing-dots span:nth-child(2){animation-delay:.2s}
.aib-typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes aibDot{0%,60%,100%{transform:translateY(0);background:#d0d0d8}30%{transform:translateY(-7px);background:#ff9c40}}
/* 吹き出しアバター */
.aib-msg-avatar{width:28px;height:36px;border-radius:8px;background:rgba(255,140,0,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:2px;overflow:hidden}
.aib-msg-avatar img{width:100%;height:100%;object-fit:contain;display:block}
.aib-msg-avatar svg{width:20px;height:20px}
/* クイックボタン */
.aib-quick{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px;border-top:1px solid #eef0f4;background:#fff;flex-shrink:0}
.aib-quick-btn{background:#fff4e6;border:1px solid #ffd0a0;color:#cc5500;border-radius:20px;font-size:11px;padding:5px 11px;cursor:pointer;white-space:nowrap;transition:background .15s,transform .1s}
.aib-quick-btn:hover{background:#ffe6c0;transform:translateY(-1px)}
/* 入力欄 */
.aib-input-row{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid #eef0f4;background:#fff;flex-shrink:0}
#aibInput{flex:1;border:1.5px solid #e0e0e8;border-radius:10px;padding:8px 11px;font-size:13px;font-family:inherit;resize:none;line-height:1.4;max-height:120px;overflow-y:auto;transition:border-color .15s;outline:none}
#aibInput:focus{border-color:#ff7c00}
#aibSendBtn{background:linear-gradient(135deg,#ff7c00,#ffb347);border:none;color:#fff;width:38px;height:38px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s,transform .1s;box-shadow:0 2px 8px rgba(255,120,0,.3)}
#aibSendBtn:hover{transform:scale(1.07)}
#aibSendBtn:disabled{background:#ccc;box-shadow:none;cursor:default;transform:none}
.aib-ai-key-hint{font-size:11px;color:#aaa;text-align:center;padding:4px 0 2px;background:#fff}

/* ═══ SIDEBAR LAYOUT ═══ */
/* Normal mode: #avSidebar is a transparent wrapper (display:contents) */
#avSidebar{display:contents}


/* ── Sidebar footer: portal & app ── */
/* 通常モードでは非表示 */
.sb-footer{display:none}
.av-sb-footer{display:none}
.sb-footer-sep{height:1px;background:rgba(60,80,120,.1);margin:4px 12px}
.sb-footer-btn{display:flex;align-items:center;gap:9px;width:100%;padding:10px 20px;background:none;border:none;cursor:pointer;font-size:13px;color:rgba(60,80,120,.65);text-align:left;transition:background .15s,color .15s;font-family:inherit;font-weight:500}
.sb-footer-btn:hover{background:rgba(60,80,120,.06);color:var(--acc)}
.sb-footer-toggle{color:rgba(74,111,165,.8)}
.sb-footer-toggle:hover{background:rgba(74,111,165,.08);color:var(--acc)}


/* ── 週次進捗ヘッダーボタン（通常モード: 従来と同じスタイル） ── */
.weekly-hdr-btn{margin-left:8px;padding:6px 14px;background:rgba(255,255,255,.15);color:#fff;border:1.5px solid rgba(255,255,255,.5);border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.weekly-hdr-btn.weekly-hdr-save{background:rgba(255,255,255,.95);color:#000070;border:2px solid #fff}
/* 週次進捗 保存ドロップダウン */
.wkly-save-wrap{position:relative;margin-left:8px}
.wkly-save-trigger{display:inline-flex;align-items:center;gap:5px;margin-left:0}
.wkly-chev{transition:transform .2s ease;flex-shrink:0}
.wkly-save-wrap.open .wkly-chev{transform:rotate(180deg)}
.wkly-save-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.14);min-width:150px;overflow:hidden;z-index:300;animation:gearMenuIn .15s ease}
.wkly-save-wrap.open .wkly-save-menu{display:block}
.wkly-save-item{display:block;width:100%;padding:11px 16px;background:none;border:none;font-size:13px;font-weight:600;color:#1a1a1c;cursor:pointer;text-align:left;transition:.12s;font-family:inherit}
.wkly-save-item:hover{background:#eef2ff;color:#0017c1}
/* 診断ボタン（アイコンのみ、控えめ） */
.wkly-diag-btn{padding:6px 10px;opacity:.75;font-size:13px}

/* ── KPI / 週次進捗 / Google Chat サイドバー wrapper ── */
/* 通常モード: transparent */
#kpiSbWrap,#weeklySbWrap,#gchatSbWrap{display:contents}


/* ═══ モードパネル (KPI / 週次 / GChat) ═══ */
/* 通常: 非表示 */
.av-mode-panel{display:none}
/* 通常モード: 各モードでパネル表示 (display:contents の #avSidebar 経由でフロー) */
#appView.kpi-mode #avKpiPanel{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--pri-d),var(--pri));padding:8px 32px;flex-shrink:0}
#appView.kpi-mode #avKpiPanel #kpiLastUpdated{color:rgba(255,255,255,.55)}
#appView.weekly-mode #avWeeklyPanel{display:flex;align-items:center;gap:4px;background:linear-gradient(135deg,var(--pri-d),var(--pri));padding:6px 16px;flex-shrink:0;flex-wrap:wrap}
#appView.gchat-mode #avGchatPanel{display:flex;align-items:center;gap:8px;background:#fff;border-bottom:1px solid #e2e8f0;padding:8px 32px;flex-shrink:0}
/* タブ非表示 */
#appView.kpi-mode .av-tabs,#appView.weekly-mode .av-tabs,
#appView.gchat-mode .av-tabs{display:none!important}
/* 特殊コンテンツ: デフォルト非表示 */
#avKpi,#avWeekly,#avGchat{display:none}
/* 特殊モード時: 通常の av-content (avList/avForm) を非表示にして前アプリの残骸を消す */
#appView.kpi-mode .av-content,
#appView.weekly-mode .av-content,
#appView.gchat-mode .av-content{display:none!important}
/* コンテンツ表示 */
#appView.kpi-mode .av-body{max-width:none;padding:0;margin:0}
#appView.kpi-mode #avKpi{display:block}
#appView.weekly-mode.active{display:flex;flex-direction:column;overflow:hidden}
#appView.weekly-mode .av-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:0;margin:0;max-width:none}
#appView.weekly-mode #avWeekly{display:flex;flex:1;flex-direction:column;min-height:0}
#appView.gchat-mode.active{display:flex;flex-direction:column;overflow:hidden}
#appView.gchat-mode .av-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:0;margin:0;max-width:none}
#appView.gchat-mode #avGchat{display:flex;flex:1;flex-direction:column;min-height:0}
#appView.gchat-mode .gc-chat{flex:1;min-height:0}

/* ═══ KPI DASHBOARD ═══ */
.kpi-main{max-width:1320px;margin:0 auto;padding:20px 20px}
.kpi-ctrl-row{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.kpi-btn-group{display:flex;background:#fff;border-radius:10px;box-shadow:var(--sh);overflow:hidden}
.kpi-btn{padding:8px 15px;font-size:12px;font-weight:600;color:var(--txt-l);cursor:pointer;border:none;background:none;transition:var(--tr);white-space:nowrap;font-family:inherit}
.kpi-btn:hover{background:#f0f4f8;color:var(--acc)}
.kpi-btn.active{background:var(--acc);color:#fff}
.kpi-sep{width:1px;background:#e2e8f0;flex-shrink:0}
.kpi-spacer{flex:1}
/* KPI期間セレクト */
.kpi-period-sel{padding:8px 32px 8px 12px;font-size:13px;font-weight:600;color:var(--txt);background:#fff;border:1px solid #d4d8e0;border-radius:10px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpolyline points='1,1 6,6 11,1' fill='none' stroke='%23718096' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;box-shadow:var(--sh);transition:var(--tr);font-family:inherit}
.kpi-period-sel:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(0,23,193,.1)}
/* KPI CSV エリア */
.kpi-csv-area{display:flex;align-items:center;gap:6px}
.kpi-csv-btn{padding:7px 12px;font-size:12px;font-weight:600;background:#9f7aea;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:var(--tr);font-family:inherit}
.kpi-csv-btn:hover{background:#805ad5}
.kpi-csv-btn.kpi-csv-reset{background:#fff;color:#4a5568;border:1px solid #cbd5e0}
.kpi-csv-btn.kpi-csv-reset:hover{background:#f7fafc}
.kpi-csv-status{font-size:11px;color:#9f7aea;font-weight:700}
.kpi-refresh{display:flex;align-items:center;gap:6px;padding:8px 15px;background:#fff;border:none;border-radius:10px;font-size:12px;font-weight:600;color:var(--acc);cursor:pointer;box-shadow:var(--sh);transition:var(--tr);font-family:inherit}
.kpi-refresh:hover{box-shadow:var(--sh-h)}
.kpi-refresh.loading svg{animation:kpiSpin .7s linear infinite}
@keyframes kpiSpin{to{transform:rotate(360deg)}}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin-bottom:18px}
.kpi-card{background:var(--card);border-radius:var(--r);padding:18px 20px;box-shadow:var(--sh);position:relative;overflow:hidden;transition:var(--tr)}
.kpi-card:hover{box-shadow:var(--sh-h);transform:translateY(-2px)}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.kpi-card.kc-blue::before{background:linear-gradient(90deg,#4a6fa5,#7c9fd6)}
.kpi-card.kc-green::before{background:linear-gradient(90deg,#48bb78,#9ae6b4)}
.kpi-card.kc-orange::before{background:linear-gradient(90deg,#ed8936,#fbd38d)}
.kpi-card.kc-purple::before{background:linear-gradient(90deg,#9f7aea,#d6bcfa)}
.kpi-card.kc-teal::before{background:linear-gradient(90deg,#4fd1c5,#9decf9)}
.kpi-card.kc-red::before{background:linear-gradient(90deg,#fc8181,#feb2b2)}
.kpi-ic{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.kc-blue .kpi-ic{background:#ebf4ff}.kc-green .kpi-ic{background:#f0fff4}
.kc-orange .kpi-ic{background:#fffaf0}.kc-purple .kpi-ic{background:#faf5ff}
.kc-teal .kpi-ic{background:#e6fffa}.kc-red .kpi-ic{background:#fff5f5}
.kpi-lbl{font-size:10px;font-weight:700;color:var(--txt-l);letter-spacing:.05em;margin-bottom:5px;text-transform:uppercase;display:flex;align-items:center;gap:4px;justify-content:space-between}
.kpi-src{font-size:8px;font-weight:600;padding:1px 4px;border-radius:2px;background:#edf2f7;color:#4a5568;letter-spacing:0;text-transform:none}
.kc-blue .kpi-src{background:#e6f0ff;color:#4a6fa5}
.kc-green .kpi-src{background:#e6fffa;color:#2f855a}
.kc-orange .kpi-src{background:#fffaf0;color:#000070}
.kc-purple .kpi-src{background:#faf5ff;color:#6b46c1}
.kc-teal .kpi-src{background:#e6fffa;color:#319795}
.kc-red .kpi-src{background:#fff5f5;color:#c53030}
.kpi-val{font-size:22px;font-weight:800;color:var(--txt);line-height:1;margin-bottom:3px}
.kpi-sub{font-size:11px;color:var(--txt-l)}
.kpi-chart-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px}
.kpi-chart-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:18px}
.kpi-chart-card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.kpi-chart-hdr{padding:14px 18px 10px;display:flex;align-items:flex-start;justify-content:space-between}
.kpi-chart-title{font-size:13px;font-weight:700;color:var(--txt)}
.kpi-chart-sub{font-size:11px;color:var(--txt-l);margin-top:2px}
.kpi-chart-body{padding:0 14px 14px;position:relative}
.kpi-tbl-card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;margin-bottom:14px}
.kpi-tbl-hdr{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf2f7}
.kpi-tbl-title{font-size:13px;font-weight:700;color:var(--txt)}
.kpi-tbl-sub{font-size:11px;color:var(--txt-l)}
.kpi-sum-tbl{width:100%;border-collapse:collapse;font-size:12px}
.kpi-sum-tbl th{background:#f7fafc;padding:9px 12px;text-align:right;font-weight:700;color:var(--txt-l);font-size:10px;letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid #e2e8f0;white-space:nowrap}
.kpi-sum-tbl th:first-child{text-align:left}
.kpi-sum-tbl td{padding:10px 12px;border-bottom:1px solid #edf2f7;text-align:right;white-space:nowrap}
.kpi-sum-tbl td:first-child{text-align:left;font-weight:700}
.kpi-sum-tbl tr:last-child td{border-bottom:none}
.kpi-sum-tbl tr.kpi-total td{background:#f7fafc;font-weight:800;border-top:2px solid #e2e8f0}
.kpi-sum-tbl tr:hover:not(.kpi-total) td{background:#f7fbff}
.kpi-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle;flex-shrink:0}
.kpi-person-cell{display:flex;align-items:center}
.kpi-rank{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;font-size:10px;font-weight:800;margin-right:5px;flex-shrink:0}
.kpi-rank-1{background:#fef3c7;color:#92400e}.kpi-rank-2{background:#f0f0f0;color:#555}.kpi-rank-3{background:#fdf0e0;color:#9c4221}
.mg-good{color:#276749;font-weight:700}.mg-mid{color:#975a16;font-weight:700}.mg-low{color:#c53030;font-weight:700}
.kpi-recent-scroll{max-height:240px;overflow-y:auto}
.kpi-recent-tbl{width:100%;border-collapse:collapse;font-size:12px}
.kpi-recent-tbl th{background:#f7fafc;padding:8px 11px;text-align:left;font-weight:600;color:var(--txt-l);font-size:10px;border-bottom:2px solid #e2e8f0;white-space:nowrap;position:sticky;top:0;z-index:2}
.kpi-recent-tbl td{padding:8px 11px;border-bottom:1px solid #edf2f7;white-space:nowrap}
.kpi-recent-tbl tr:hover td{background:#f7fafc}
@media(max-width:900px){.kpi-chart-grid{grid-template-columns:1fr}.kpi-chart-grid3{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.kpi-grid{grid-template-columns:1fr 1fr}.kpi-chart-grid3{grid-template-columns:1fr}.kpi-main{padding:14px 10px}}
/* 月比較バナー */
.kpi-mom-banner{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#fff,#f0f7ff);border:1px solid #c2d9f5;border-radius:14px;padding:12px 18px;margin-bottom:14px;box-shadow:0 2px 10px rgba(60,90,150,.06);flex-wrap:wrap}
.kpi-mom-title{font-size:12px;font-weight:700;color:#4a6fa5;display:flex;align-items:center;gap:6px}
.kpi-mom-item{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(60,90,150,.07)}
.kpi-mom-lbl{font-size:11px;color:#718096;font-weight:600}
.kpi-mom-val{font-size:13px;font-weight:800;color:#2d3748}
.kpi-mom-delta{font-size:11px;font-weight:800;padding:2px 8px;border-radius:10px}
.kpi-mom-up{background:#c6f6d5;color:#22543d}
.kpi-mom-down{background:#fed7d7;color:#742a2a}
.kpi-mom-flat{background:#edf2f7;color:#4a5568}
/* セグメント概要パネル（全体/営業/会社/成約） */
.kpi-seg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
@media(max-width:900px){.kpi-seg-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.kpi-seg-grid{grid-template-columns:1fr}}
.kpi-seg-card{background:linear-gradient(135deg,#fff,#fafbff);border-radius:14px;padding:16px 18px;box-shadow:0 4px 16px rgba(40,60,100,.08);position:relative;overflow:hidden;transition:.25s ease;border:1px solid rgba(60,80,120,.05)}
.kpi-seg-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(40,60,100,.12)}
.kpi-seg-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;border-radius:14px 14px 0 0}
.kpi-seg-all::before{background:linear-gradient(90deg,#4a6fa5,#7c9fd6)}
.kpi-seg-sales::before{background:linear-gradient(90deg,#48bb78,#9ae6b4)}
.kpi-seg-company::before{background:linear-gradient(90deg,#ed8936,#fbd38d)}
.kpi-seg-contract::before{background:linear-gradient(90deg,#9f7aea,#d6bcfa)}
.kpi-seg-head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#2d3748;margin-bottom:10px}
.kpi-seg-ic{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px}
.kpi-seg-all .kpi-seg-ic{background:#ebf4ff;color:#4a6fa5}
.kpi-seg-sales .kpi-seg-ic{background:#f0fff4;color:#276749}
.kpi-seg-company .kpi-seg-ic{background:#fffaf0;color:#000070}
.kpi-seg-contract .kpi-seg-ic{background:#faf5ff;color:#6b46c1}
.kpi-seg-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:1px dashed #edf2f7}
.kpi-seg-row:last-child{border-bottom:none}
.kpi-seg-rl{font-size:11px;color:#718096;font-weight:600}
.kpi-seg-rv{font-size:14px;font-weight:800;color:#2d3748}
.kpi-seg-rv.small{font-size:13px}

/* ═══ GOOGLE CHAT VIEW ═══ */
/* gc-main: スペースリストはサイドバーへ。チャット本体のみ */
.gc-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff}
/* #avGchatPanel: スペースリスト含む */
.gc-panel-top{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid #e2e8f0;flex-shrink:0}
.gc-panel-spaces-head{padding:10px 14px;font-size:12px;font-weight:800;color:#4a5568;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;background:#f7f9fc;flex-shrink:0}
/* 通常モード(非サイドバー)での #avGchatPanel スペースリスト高さ制限 */
#appView.gchat-mode #avGchatPanel{flex-direction:column!important;padding:0!important;background:#f7f9fc!important;border-bottom:1px solid #e2e8f0;max-height:220px;overflow:hidden}
#appView.gchat-mode #avGchatPanel .gc-space-list{overflow-y:auto;flex:1;min-height:0}
.gc-side-head{padding:14px 16px;font-size:13px;font-weight:800;color:#2d3748;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;background:#fff}
.gc-side-actions{display:flex;gap:4px}
.gc-iconbtn{width:26px;height:26px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#718096;transition:.15s}
.gc-iconbtn:hover{background:#edf2f7;color:#2d3748}
.gc-space-list{flex:1;overflow-y:auto;padding:6px}
.gc-space{padding:9px 12px;cursor:pointer;border-radius:8px;margin-bottom:2px;font-size:13px;color:#2d3748;display:flex;align-items:center;gap:8px;transition:.12s}
.gc-space:hover{background:#edf2f7}
.gc-space.active{background:#dbeafe;color:#1e40af;font-weight:700}
.gc-space-ic{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}
.gc-space.active .gc-space-ic{background:linear-gradient(135deg,#1e40af,#3b82f6)}
.gc-space-nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gc-side-empty{padding:24px 14px;color:#a0aec0;font-size:12px;text-align:center;line-height:1.6}
.gc-chat{display:flex;flex-direction:column;overflow:hidden;background:#fff}
.gc-chat-head{padding:12px 18px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.03);flex-shrink:0}
.gc-chat-title{font-size:14px;font-weight:800;color:#2d3748;display:flex;align-items:center;gap:8px}
.gc-chat-actions{display:flex;gap:6px;align-items:center}
.gc-link-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#1a73e8;color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;text-decoration:none;transition:.15s}
.gc-link-btn:hover{background:#1557b0}
.gc-msgs{flex:1;min-height:0;overflow-y:auto;padding:18px 22px;background:linear-gradient(180deg,#fafbfc 0%,#fff 100%)}
.gc-msg{margin-bottom:14px;display:flex;gap:10px}
.gc-msg-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#a8b9d4,#5b7ec1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0}
.gc-msg-body{flex:1;min-width:0}
.gc-msg-hdr{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.gc-msg-name{font-size:13px;font-weight:800;color:#2d3748}
.gc-msg-time{font-size:11px;color:#a0aec0}
.gc-msg-text{font-size:13.5px;color:#2d3748;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.gc-msg-text a{color:#1a73e8;text-decoration:none}
.gc-msg-text a:hover{text-decoration:underline}
.gc-msg.own .gc-msg-avatar{background:linear-gradient(135deg,#48bb78,#38a169)}
.gc-msgs-empty{text-align:center;padding:60px 20px;color:#a0aec0;font-size:13px;line-height:1.7}
.gc-msgs-empty .gc-emp-ic{font-size:48px;margin-bottom:12px;opacity:.5}
.gc-compose{padding:14px 18px;background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0}
.gc-compose-row{display:flex;gap:8px;align-items:flex-end;background:#f7f9fc;border:1.5px solid #e2e8f0;border-radius:14px;padding:8px 12px;transition:.15s}
.gc-compose-row:focus-within{border-color:#1a73e8;background:#fff;box-shadow:0 0 0 3px rgba(26,115,232,.08)}
.gc-compose-input{flex:1;border:none;background:none;outline:none;font-size:13.5px;color:#2d3748;font-family:inherit;resize:none;min-height:24px;max-height:120px;line-height:1.5}
.gc-send-btn{padding:7px 16px;background:#1a73e8;color:#fff;border:none;border-radius:10px;font-size:12.5px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:5px;transition:.15s;flex-shrink:0;white-space:nowrap}
.gc-send-btn:hover:not(:disabled){background:#1557b0}
.gc-send-btn:disabled{background:#cbd5e0;cursor:not-allowed}
.gc-tplbtn{padding:5px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#edf2f7;color:#4a5568;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;line-height:1.4;font-family:inherit;transition:.15s}
.gc-tplbtn:hover{background:#e2e8f0;border-color:#cbd5e0;color:#2d3748}
.gc-status-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#f0fff4;color:#22543d;border-radius:10px;font-size:10px;font-weight:700}
.gc-status-pill.off{background:#fef5e7;color:#92400e}
.gc-empty{text-align:center;padding:80px 30px;color:#718096}
.gc-empty h3{font-size:18px;font-weight:800;color:#2d3748;margin-bottom:8px}
.gc-empty p{font-size:13px;line-height:1.7;margin-bottom:14px}
.gc-empty .gc-emp-ic{font-size:64px;margin-bottom:18px;opacity:.7}
.gc-empty .gc-btn-cta{display:inline-block;padding:10px 22px;background:#1a73e8;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:800;cursor:pointer;text-decoration:none}
.gc-empty .gc-btn-cta:hover{background:#1557b0}
/* .gc-sidebar は #avGchatPanel に統合済み */

/* ══ Customer List View ══ */
/* フィルターバー（全て / 法人 / 個人） */
.cust-filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(40,60,100,.05);border:1px solid rgba(60,80,120,.06);flex-shrink:0}
.cust-flt{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border:none;border-radius:22px;font-size:13px;font-weight:600;cursor:pointer;background:#f7fafc;color:#4a5568;transition:var(--tr);font-family:inherit;letter-spacing:.3px}
.cust-flt:hover{background:#edf2f7;color:#2d3748;transform:translateY(-1px)}
.cust-flt .cust-flt-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:rgba(60,80,120,.1);color:#4a5568;font-size:10px;font-weight:700;border-radius:10px;transition:var(--tr)}
.cust-flt.on{background:linear-gradient(135deg,#4a6fa5,#5b8def);color:#fff;box-shadow:0 4px 12px rgba(74,111,165,.3)}
.cust-flt.on .cust-flt-count{background:rgba(255,255,255,.25);color:#fff}
.cust-flt.on-g{background:linear-gradient(135deg,#38a169,#48bb78);color:#fff;box-shadow:0 4px 12px rgba(56,161,105,.3)}
.cust-flt.on-g .cust-flt-count{background:rgba(255,255,255,.25);color:#fff}
.cust-flt.on-n{background:linear-gradient(135deg,#1a1ab5,#3a3acc);color:#fff;box-shadow:0 4px 12px rgba(0,0,143,.3)}
.cust-flt.on-n .cust-flt-count{background:rgba(255,255,255,.28);color:#fff}
.cust-flt.on-y{background:linear-gradient(135deg,#b7791f,#ecc94b);color:#fff;box-shadow:0 4px 12px rgba(183,121,31,.3)}
.cust-flt.on-y .cust-flt-count{background:rgba(255,255,255,.25);color:#fff}
.cust-flt.on-r{background:linear-gradient(135deg,#c53030,#e53e3e);color:#fff;box-shadow:0 4px 12px rgba(197,48,48,.3)}
.cust-flt.on-r .cust-flt-count{background:rgba(255,255,255,.25);color:#fff}
/* ── Anken filter bar (pill + dropdown) ── */
.anken-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:8px 14px;background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(40,60,100,.05);border:1px solid rgba(60,80,120,.06);flex-shrink:0}
/* pill wrapper */
.ak-flt-pill{position:relative}
/* pill button */
.ak-pill-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1.5px solid #e2e8f0;border-radius:22px;font-size:13px;font-weight:600;cursor:pointer;background:#f7fafc;color:#4a5568;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;font-family:inherit;white-space:nowrap;user-select:none}
.ak-pill-btn:hover{background:#edf2f7;border-color:#cbd5e0}
.ak-pill-btn.ak-pill-on{background:linear-gradient(135deg,#4a6fa5,#5b8def);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(74,111,165,.3)}
.ak-pill-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:rgba(60,80,120,.1);color:#4a5568;font-size:10px;font-weight:700;border-radius:10px;transition:background .15s,color .15s}
.ak-pill-btn.ak-pill-on .ak-pill-badge{background:rgba(255,255,255,.25);color:#fff}
.ak-pill-arr{font-size:10px;opacity:.55;transition:transform .18s;display:inline-block}
.ak-flt-pill.open .ak-pill-arr{transform:rotate(180deg)}
.ak-pill-dot{font-size:8px;margin-left:-2px}
/* dropdown panel */
.ak-dropdown{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:300;background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(40,60,100,.16);border:1px solid rgba(60,80,120,.1);min-width:200px;overflow:hidden;animation:akDdIn .12s ease}
.ak-flt-pill.open .ak-dropdown{display:block}
@keyframes akDdIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
/* dropdown option list */
.ak-dd-opts{display:flex;flex-direction:column;padding:6px}
.ak-dd-opt{display:flex;align-items:center;gap:8px;padding:8px 12px;border:none;border-radius:8px;background:none;cursor:pointer;font-size:13px;font-family:inherit;color:#2d3748;text-align:left;transition:background .12s;width:100%}
.ak-dd-opt:hover{background:#f0f4ff}
.ak-dd-opt.ak-dd-on{background:#ebf0ff;color:#3b5fc0;font-weight:700}
.ak-dd-label{flex:1}
.ak-dd-cnt{font-size:11px;font-weight:700;color:#718096;background:#f0f4f8;border-radius:8px;padding:1px 7px;min-width:24px;text-align:center}
.ak-dd-opt.ak-dd-on .ak-dd-cnt{background:rgba(59,95,192,.15);color:#3b5fc0}
/* colored dots */
.ak-dd-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#cbd5e0;flex-shrink:0}
.ak-dot-b{background:#4a6fa5}
.ak-dot-g{background:#38a169}
.ak-dot-y{background:#d69e2e}
.ak-dot-r{background:#e53e3e}
.ak-dot-person{background:#805ad5}
/* date dropdown */
.ak-dropdown-date{min-width:280px;padding:14px 16px}
.ak-dd-sec{font-size:11px;font-weight:700;color:#718096;letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px}
.ak-dd-sort-row{display:flex;gap:6px;margin-bottom:4px}
.ak-dd-sort-btn{flex:1;padding:7px 10px;border:1.5px solid #e2e8f0;border-radius:8px;background:#f7fafc;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;color:#4a5568;transition:background .12s,border-color .12s,color .12s}
.ak-dd-sort-btn:hover{background:#edf2f7;border-color:#cbd5e0}
.ak-dd-sort-btn.ak-dd-sort-on{background:linear-gradient(135deg,#4a6fa5,#5b8def);color:#fff;border-color:transparent}
.ak-dd-date-row{display:flex;align-items:center;gap:8px}
.ak-date-in{height:34px;padding:0 8px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:12px;color:#2d3748;background:#f7fafc;cursor:pointer;font-family:inherit;outline:none;transition:border-color .15s;flex:1;min-width:0}
.ak-date-in:focus{border-color:#5b8def;background:#fff}
.ak-date-sep{font-size:13px;color:#a0aec0;font-weight:600;user-select:none;flex-shrink:0}
.ak-dd-reset-row{display:flex;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #edf2f7;flex-wrap:wrap}
.ak-dd-reset-btn{padding:5px 10px;border:1.5px solid #e2e8f0;border-radius:7px;background:#f7fafc;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;color:#718096;transition:background .12s,color .12s}
.ak-dd-reset-btn:hover{background:#fed7d7;border-color:#feb2b2;color:#c53030}
/* テーブルラッパー */
.cust-tbl-wrap{flex:1;min-height:0;overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(40,60,100,.05);border:1px solid rgba(60,80,120,.06)}
.cust-tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.cust-tbl colgroup .c-col-folder{width:52px}
.cust-tbl colgroup .c-col-code{width:108px}
.cust-tbl colgroup .c-col-name{width:200px}
.cust-tbl colgroup .c-col-zip{width:92px}
.cust-tbl colgroup .c-col-addr{min-width:180px}
.cust-tbl colgroup .c-col-tel{width:120px}
.cust-tbl colgroup .c-col-act{width:80px}
/* スティッキーヘッダー */
.cust-tbl thead th{background:#f8fafd;padding:10px 12px;text-align:left;font-size:10.5px;font-weight:800;color:#8096b0;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-bottom:2px solid #e8edf5;position:sticky;top:0;z-index:4}
.cust-tbl thead th.c-th-center{text-align:center}
/* データ行 */
.cust-row{cursor:pointer;transition:background .12s,box-shadow .12s;border-left:3px solid transparent}
.cust-row td{padding:0 12px;height:54px;vertical-align:middle;border-bottom:1px solid #edf2f7;font-size:13px;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cust-row td:first-child{padding:0 8px 0 10px;text-align:center}
.cust-row td:last-child{padding:0 8px;text-align:center}
.cust-row.hj{border-left-color:#4a6fa5}
.cust-row.kj{border-left-color:#38a169}
.cust-row:hover td{background:#f0f5ff}
.cust-row:hover{box-shadow:0 2px 10px rgba(74,111,165,.1)}
.cust-row:last-child td{border-bottom:none}
/* 顧客種別バッジ */
.c-badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:8px;white-space:nowrap;letter-spacing:.4px;vertical-align:middle;margin-right:6px}
.c-badge.hj{background:#ebf4ff;color:#4a6fa5}
.c-badge.kj{background:#ebfdf3;color:#38a169}
/* 顧客コード */
.c-code{font-family:'SF Mono','Consolas','Courier New',monospace;font-size:12px;color:#7086a0;letter-spacing:.3px}
/* 顧客名 */
.c-name{font-weight:700;font-size:13.5px;color:#2d3748}
/* フォルダアイコン */
.c-folder-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;cursor:pointer;transition:var(--tr);color:#4a6fa5;text-decoration:none}
.c-folder-btn:hover{background:#ebf4ff;color:#3a5f95;transform:scale(1.12)}
.c-folder-btn.empty{color:#c0cad8;cursor:default}
.c-folder-btn.empty:hover{background:transparent;transform:none}
/* 操作ボタン */
.c-act-wrap{display:flex;align-items:center;justify-content:center;gap:4px}
.c-btn{width:30px;height:30px;border:none;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:var(--tr);font-size:14px;background:transparent}
.c-btn-edit{color:#4a6fa5}
.c-btn-edit:hover{background:#ebf4ff;color:#2c5282}
.c-btn-del{color:#a0aec0}
.c-btn-del:hover{background:#fff5f5;color:#e53e3e}
/* 空行 */
.cust-empty{text-align:center;padding:60px 20px;color:#a0aec0;font-size:14px}

/* ══ Customer Drawer ══ */
.cdov{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:600;opacity:0;pointer-events:none;transition:opacity .25s}
.cdov.open{opacity:1;pointer-events:auto}
.cdrw{position:fixed;top:0;right:0;height:100%;width:480px;max-width:100vw;background:#fff;box-shadow:-6px 0 40px rgba(0,0,0,.18);z-index:601;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.cdrw.open{transform:translateX(0)}
.cdrw-hd{padding:18px 22px;border-bottom:1px solid #edf2f7;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:#f7fafc}
.cdrw-tit{font-size:16px;font-weight:700}
.cdrw-x{width:32px;height:32px;border:none;background:#e2e8f0;border-radius:8px;cursor:pointer;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;color:#718096;transition:var(--tr)}
.cdrw-x:hover{background:#cbd5e0;color:var(--txt)}
.cdrw-bd{flex:1;overflow-y:auto;padding:20px 22px}
.cdrw-sec{margin-bottom:22px}
.cdrw-sttl{font-size:10px;font-weight:800;color:var(--txt-l);letter-spacing:.1em;text-transform:uppercase;padding-bottom:7px;border-bottom:1px solid #edf2f7;margin-bottom:12px}
.cdrw-row{display:flex;gap:12px;margin-bottom:12px}
.cdrw-f{flex:1;min-width:0}
.cdrw-f label{display:block;font-size:12px;font-weight:600;color:var(--txt-l);margin-bottom:5px}
.cdrw-f input,.cdrw-f select,.cdrw-f textarea{width:100%;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:inherit;color:var(--txt);background:#fff;transition:var(--tr);outline:none}
.cdrw-f input:focus,.cdrw-f select:focus,.cdrw-f textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(74,111,165,.1)}
.cdrw-f input[readonly]{background:#f7fafc;color:#999}
.cdrw-f textarea{min-height:70px;resize:vertical}
.cdrw-radio{display:flex;gap:8px}
.cdrw-ro{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1.5px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;color:var(--txt-l);transition:var(--tr);user-select:none}
.cdrw-ro:hover{border-color:var(--acc);color:var(--acc)}
.cdrw-ro.on{border-color:#4a6fa5;background:#ebf4ff;color:#4a6fa5}
.cdrw-ro.on-g{border-color:#38a169;background:#ebfdf3;color:#38a169}
.cdrw-ft{padding:16px 22px;border-top:1px solid #edf2f7;display:flex;gap:10px;flex-shrink:0}
.cdrw-save{flex:1;padding:13px;background:linear-gradient(135deg,var(--acc),#5b8def);border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:var(--tr);font-family:inherit}
.cdrw-save:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(74,111,165,.35)}
.cdrw-cancel{padding:13px 20px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;font-size:14px;font-weight:600;cursor:pointer;color:var(--txt-l);transition:var(--tr);font-family:inherit}
.cdrw-cancel:hover{background:#f7fafc}
/* タスク削除アイコンボタン */
.cdrw-del-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fff;border:1.5px solid #fed7d7;border-radius:10px;color:#c53030;cursor:pointer;flex-shrink:0;transition:var(--tr)}
.cdrw-del-icon:hover{background:#fff5f5;border-color:#fc8181}
@media(max-width:640px){
  .cust-grid{grid-template-columns:1fr 1fr}
  .cdrw{width:100vw}
  .cust-ch{padding:12px 12px 8px;gap:10px}
  .cust-av{width:38px;height:38px;font-size:15px;border-radius:10px}
  .cust-nm{font-size:13px}
}
/* ═══ タスク Kanban ═══ */
.tk-board{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;padding:16px;align-items:flex-start}
.tk-col{background:#fff;border-radius:14px;border:1px solid #e8eaf0;display:flex;flex-direction:column;min-height:240px;overflow:hidden}
.tk-col-todo{background:linear-gradient(180deg,#fff,#fde8ee);border-color:#f7c8d4}
.tk-col-doing{background:linear-gradient(180deg,#fff,#d8f1e3);border-color:#b8e1c8}
.tk-col-done{background:linear-gradient(180deg,#fff,#dbeefb);border-color:#bfe0f5}
.tk-col-hd{display:flex;align-items:center;gap:8px;padding:12px 16px 10px;border-bottom:1px dashed rgba(0,0,0,.06)}
.tk-col-todo .tk-col-hd{color:#d33b66}
.tk-col-doing .tk-col-hd{color:#23895a}
.tk-col-done .tk-col-hd{color:#2475c9}
.tk-col-name{font-weight:700;font-size:14px;letter-spacing:.04em}
.tk-col-cnt{font-size:12px;color:#666;background:rgba(0,0,0,.04);padding:2px 8px;border-radius:10px}
.tk-col-bd{display:flex;flex-direction:column;gap:10px;padding:12px;overflow-y:auto;max-height:calc(100vh - 280px)}
.tk-empty{text-align:center;color:#aaa;font-size:12px;padding:20px 0}
.tk-card{background:#fff;border:1px solid #e3e6ee;border-radius:10px;padding:12px 14px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.03);transition:transform .15s,box-shadow .15s,border-color .15s}
.tk-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.08);border-color:#c7cee0}
.tk-title{font-weight:700;font-size:14px;color:#222;margin-bottom:8px;line-height:1.4;word-break:break-word}
.tk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.tk-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
.tk-lbl{font-size:11px;color:#8a8f9c;font-weight:600;letter-spacing:.04em}
.tk-uchip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;background:#eef4ff;border-radius:14px;font-size:12px;color:#2a4789;font-weight:600;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tk-uchip-empty{background:#f3f3f5;color:#999;padding:3px 10px;font-weight:500}
.tk-av{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#94a3b8;color:#fff;font-size:11px;font-weight:700;flex-shrink:0}
.tk-me{color:#666;font-weight:500;margin-left:2px}
.tk-section{margin-bottom:8px}
.tk-detail{font-size:12px;color:#555;background:#fafbfd;border-radius:6px;padding:6px 8px;white-space:pre-wrap;word-break:break-word;max-height:60px;overflow:hidden}
.tk-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;margin-top:6px;padding-top:8px;border-top:1px dashed #eef0f5}
.tk-foot-l,.tk-foot-r{display:flex;flex-direction:column;gap:4px;min-width:0}
.tk-foot-r{align-items:flex-end}
.tk-pr{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px;white-space:nowrap}
.tk-pr-u{background:#ede9fe;color:#7c3aed}
.tk-pr-h{background:#fef3c7;color:#b45309}
.tk-pr-m{background:#e0f2fe;color:#0369a1}
.tk-pr-l{background:#f1f5f9;color:#64748b}
.tk-due{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#444;background:#f3f4f6;padding:3px 10px;border-radius:12px;white-space:nowrap}
.tk-due.empty{color:#aaa;background:#f8f8fa}
@media(max-width:900px){
  .tk-board{grid-template-columns:1fr;gap:12px}
  .tk-col-bd{max-height:none}
}
/* ═══ 週次進捗ダッシュボード ═══ */
.weekly-main{flex:1;min-height:0;overflow-y:auto;padding:20px;width:100%;max-width:1320px;margin:0 auto;box-sizing:border-box}
.weekly-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.weekly-kpi-card{background:var(--card);border-radius:var(--r);padding:18px 20px;box-shadow:var(--sh);position:relative;overflow:hidden;transition:var(--tr)}
.weekly-kpi-card:hover{box-shadow:var(--sh-h);transform:translateY(-2px)}
.weekly-kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.wkc-blue::before{background:linear-gradient(90deg,#4a6fa5,#7c9fd6)}
.wkc-green::before{background:linear-gradient(90deg,#48bb78,#9ae6b4)}
.wkc-orange::before{background:linear-gradient(90deg,#ed8936,#fbd38d)}
.wkc-red::before{background:linear-gradient(90deg,#fc8181,#feb2b2)}
.wkc-purple::before{background:linear-gradient(90deg,#9f7aea,#d6bcfa)}
.wkc-teal::before{background:linear-gradient(90deg,#319795,#81e6d9)}
/* ─── 月次進捗バー ─── */
.wmcp-wrap{margin:10px 0 4px;padding:10px 12px;background:#f0f7ff;border-radius:8px;border:1px solid #c3d9f5}
.wmcp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.wmcp-title{font-size:10px;font-weight:800;color:#2b6cb0;letter-spacing:.04em;text-transform:uppercase}
.wmcp-pct{font-size:16px;font-weight:900;padding:2px 10px;border-radius:20px;transition:all .3s;min-width:60px;text-align:center}
.wmcp-pct-best{color:#276749;background:#c6f6d5}.wmcp-pct-good{color:#2b6cb0;background:#bee3f8}.wmcp-pct-warn{color:#92400e;background:#fef3c7}.wmcp-pct-bad{color:#9b2c2c;background:#fed7d7}.wmcp-pct-init{color:#a0aec0;background:#f7fafc}
.wmcp-bar{height:12px;background:#e2e8f0;border-radius:10px;overflow:hidden;margin-bottom:8px}
.wmcp-bar-fill{height:100%;border-radius:10px;transition:width .4s ease}
.bar-best{background:linear-gradient(90deg,#38a169,#68d391)}.bar-good{background:linear-gradient(90deg,#3182ce,#63b3ed)}.bar-warn{background:linear-gradient(90deg,#d69e2e,#f6e05e)}.bar-bad{background:linear-gradient(90deg,#e53e3e,#fc8181)}.bar-neutral{background:#e2e8f0}
.wmcp-stats{display:flex;gap:16px;font-size:11px;color:#4a5568;margin-bottom:8px;flex-wrap:wrap}
.wmcp-stats strong{color:#2d3748;font-weight:800}
.wmcp-pace{display:flex;gap:16px;padding:7px 10px;background:#fff;border-radius:7px;border:1px solid #e2e8f0;font-size:11px;color:#4a5568;flex-wrap:wrap;align-items:center}
.wmcp-pace strong{color:#1a3a6b;font-weight:800;font-size:13px}
.wmth-disp{min-width:120px;text-align:right;font-weight:800;font-size:13px;padding:4px 9px;background:#ebf4ff;border-radius:5px;color:#2b6cb0;cursor:pointer;display:inline-block}
.wmth-disp:hover{background:#bee3f8}
/* ─── 月次目標モーダル ─── */
#mthTargetModal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.55);align-items:center;justify-content:center}
#mthTargetModal.show{display:flex}
.mtm-card{background:#fff;border-radius:14px;width:480px;max-width:95vw;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
.mtm-head{background:linear-gradient(135deg,#1a3a6b,#2a5298);padding:16px 22px;display:flex;align-items:center;gap:10px;color:#fff}
.mtm-body{padding:20px 24px}
.mtm-mem-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #edf2f7}
.mtm-mem-row:last-child{border-bottom:none}
.mtm-mem-label{width:110px;font-size:13px;font-weight:700;color:#2d3748;display:flex;align-items:center;gap:6px}
.mtm-mem-inp{flex:1;padding:8px 10px;border:1.5px solid #cbd5e0;border-radius:7px;font-size:14px;font-weight:700;text-align:right;color:#2d3748;font-family:inherit}
.mtm-mem-inp:focus{outline:none;border-color:#4a6fa5;background:#f0f7ff}
.weekly-kpi-label{font-size:10px;font-weight:700;color:var(--txt-l);letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}
.weekly-kpi-val{font-size:20px;font-weight:800;color:var(--txt);line-height:1.2;margin-bottom:4px}
.weekly-kpi-input{width:100%;border:1px solid #e2e8f0;border-radius:6px;padding:6px 8px;font-size:16px;font-weight:700;color:var(--txt);background:#f7fafc;font-family:inherit;text-align:right;box-sizing:border-box}
.weekly-kpi-input:focus{outline:none;border-color:var(--acc);background:#fff}
.weekly-kpi-sub{font-size:10px;color:var(--txt-l);margin-top:5px}
.weekly-section{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:14px;overflow:hidden}
.weekly-section-hdr{padding:13px 18px;border-bottom:1px solid #edf2f7;display:flex;align-items:center;gap:8px;background:#f7fafc}
.weekly-section-title{font-size:13px;font-weight:700;color:var(--txt)}
.weekly-section-body{padding:0;overflow-x:auto}
.weekly-tbl{width:100%;border-collapse:collapse;font-size:12px}
.weekly-tbl th{background:#f7fafc;padding:9px 10px;text-align:right;font-weight:700;color:var(--txt-l);font-size:10px;letter-spacing:.04em;border-bottom:2px solid #e2e8f0;white-space:nowrap}
.weekly-tbl th:first-child,.weekly-tbl th:nth-child(2){text-align:left}
.weekly-tbl td{padding:7px 10px;border-bottom:1px solid #edf2f7;text-align:right;white-space:nowrap;vertical-align:middle}
.weekly-tbl td:first-child{text-align:left;font-weight:700;color:#4a5568}
.weekly-tbl td:nth-child(2){text-align:left;color:var(--txt-l)}
.weekly-tbl tr:last-child td{border-bottom:none}
.weekly-tbl tr.wt-total td{background:#f0f5ff;font-weight:800;border-top:2px solid #e2e8f0}
.weekly-tbl tr.wt-diff td{background:#fff5f0;color:#000070;font-size:11px}
.weekly-tbl tr.wt-profit td{background:#f0fff4;color:#2f855a;font-weight:700}
.weekly-inp{width:100%;border:1px solid #cbd5e0;border-radius:5px;padding:5px 8px;font-size:12px;text-align:right;background:#fff;font-family:inherit;color:var(--txt);box-sizing:border-box;min-width:80px;transition:all .15s;font-weight:500}
.weekly-inp:hover{border-color:#a0aec0;background:#f8fafc}
.weekly-inp:focus{outline:none;border-color:var(--acc);background:#fff;box-shadow:0 0 0 2px rgba(74,111,165,.15)}
.weekly-inp[type="date"]{font-size:11px;padding:4px 6px;letter-spacing:-.02em}
.weekly-inp::placeholder{color:#a0aec0;font-weight:400}
select.weekly-inp{cursor:pointer}
.weekly-add-row-btn{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:5px 10px;background:#f0f5ff;color:var(--acc);border:1px solid #bee3f8;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:var(--tr)}
.weekly-add-row-btn:hover{background:#ebf8ff}
.weekly-del-btn{background:none;border:none;cursor:pointer;color:#fc8181;padding:2px 5px;font-size:16px;line-height:1;vertical-align:middle}
.weekly-del-btn:hover{color:#e53e3e}
.weekly-date-label{font-size:11px;color:rgba(255,255,255,.6);margin-left:auto}
/* ビジュアル分析 */
.weekly-viz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:18px;perspective:1400px}
@media(max-width:760px){.weekly-viz-grid{grid-template-columns:1fr;gap:14px}}
/* 履歴モーダル */
@keyframes weeklyDirtyPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.04)}}
#weeklyHistModal,#weeklySaveNameModal,#weeklyCompareModal,#weeklyTrendModal{display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.55);align-items:center;justify-content:center;padding:20px}
#weeklyTrendModal.show{display:flex}
.wv-mtab{padding:3px 10px;background:#fff;color:#4a5568;border:none;font-size:10px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.wv-mtab+.wv-mtab{border-left:1px solid #cbd5e0}
.wv-mtab.active{background:#4a6fa5;color:#fff}
.wv-mtab:not(.active):hover{background:#f7fafc}
.wtm-toolbar{padding:10px 18px;border-bottom:1px solid #e2e8f0;background:#f7fafc;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.wtm-toolbtn{padding:5px 10px;background:#fff;color:#4a6fa5;border:1px solid #cbd5e0;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit}
.wtm-toolbtn:hover{background:#ebf8ff;border-color:#4a6fa5}
.wtm-body{flex:1;overflow-y:auto;max-height:48vh;padding:6px 0}
.wtm-row{display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid #f0f3f7;cursor:pointer;transition:background .15s}
.wtm-row:hover{background:#f8fafc}
.wtm-row input[type="checkbox"]{width:16px;height:16px;cursor:pointer;accent-color:#4a6fa5;flex-shrink:0}
.wtm-info{flex:1;min-width:0}
.wtm-name{font-size:12px;font-weight:700;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wtm-date{font-size:10px;color:#a0aec0;margin-top:2px;font-weight:600}
.wtm-foot{padding:12px 18px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:8px;background:#fafbfc}
.wtm-cancel{padding:8px 18px;background:#fff;color:#4a5568;border:1.5px solid #cbd5e0;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.wtm-apply{padding:8px 22px;background:linear-gradient(135deg,#4a6fa5,#667eea);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(74,111,165,.3)}
.wtm-apply:hover{filter:brightness(1.08)}
#weeklyCompareModal.show{display:flex}
.wcm-card{background:#fff;border-radius:12px;width:920px;max-width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.4);overflow:hidden}
.wcm-head{padding:16px 20px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#48bb78,#38a169);color:#fff}
.wcm-head h3{margin:0;font-size:15px;font-weight:800;flex:1}
.wcm-toolbar{padding:11px 20px;border-bottom:1px solid #e2e8f0;background:#f7fafc;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wcm-select{padding:6px 10px;border:1.5px solid #cbd5e0;border-radius:6px;font-size:12px;background:#fff;font-family:inherit;cursor:pointer;flex:1;min-width:160px;font-weight:600;color:#2d3748}
.wcm-select:focus{outline:none;border-color:#48bb78}
.wcm-body{flex:1;overflow-y:auto;padding:18px 20px}
.wcm-section{margin-bottom:22px}
.wcm-section h4{margin:0 0 8px;font-size:12px;font-weight:800;color:#2d3748;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:6px;padding-bottom:8px;border-bottom:2px solid #e2e8f0}
.wcm-tbl{width:100%;border-collapse:collapse;font-size:12px}
.wcm-tbl th{background:#fafbfc;padding:8px 10px;text-align:right;font-weight:700;color:#718096;font-size:10px;border-bottom:1px solid #e2e8f0;letter-spacing:.04em;white-space:nowrap}
.wcm-tbl th:first-child{text-align:left}
.wcm-tbl td{padding:8px 10px;border-bottom:1px solid #f0f3f7;text-align:right;font-weight:600;color:#2d3748;white-space:nowrap}
.wcm-tbl td:first-child{text-align:left;font-weight:700;color:#2d3748}
.wcm-tbl tr:last-child td{border-bottom:none}
.wcm-tbl tr:hover td{background:#f8fafc}
.wcm-diff-up{color:#2f855a;font-weight:800}
.wcm-diff-down{color:#c53030;font-weight:800}
.wcm-diff-zero{color:#a0aec0;font-weight:600}
.wcm-bar-track{display:inline-block;width:78px;height:8px;background:#edf2f7;border-radius:4px;overflow:hidden;vertical-align:middle;position:relative;border:1px solid #e2e8f0}
.wcm-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#48bb78,#9ae6b4);border-radius:4px;transition:width .35s ease;min-width:0}
.wcm-bar-fill.down{background:linear-gradient(90deg,#fc8181,#feb2b2)}
.wcm-bar-fill.zero{display:none}
.wcm-bar-zero{display:inline-block;width:78px;text-align:center;color:#a0aec0;font-size:11px;font-weight:700;vertical-align:middle}
.wcm-empty{padding:60px 20px;text-align:center;color:#a0aec0;font-size:13px}
.wcm-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}
.wcm-sum-card{background:linear-gradient(135deg,#f7fafc,#edf2f7);border-radius:8px;padding:12px 14px;border-left:4px solid #48bb78}
.wcm-sum-card.down{border-left-color:#e53e3e}
.wcm-sum-card.zero{border-left-color:#cbd5e0}
.wcm-sum-label{font-size:10px;color:#718096;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.wcm-sum-val{font-size:15px;font-weight:800;color:#2d3748;line-height:1.2}
.wcm-sum-diff{font-size:11px;margin-top:2px;font-weight:700}
#weeklyHistModal.show,#weeklySaveNameModal.show{display:flex}
#weeklySaveNameInput:focus{outline:none;border-color:#4a6fa5;box-shadow:0 0 0 3px rgba(74,111,165,.18)}
.whm-card{background:#fff;border-radius:12px;width:520px;max-width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.4);overflow:hidden}
.whm-head{padding:16px 20px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#4a6fa5,#667eea);color:#fff}
.whm-head h3{margin:0;font-size:15px;font-weight:800;flex:1}
.whm-close{background:rgba(255,255,255,.2);color:#fff;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px}
.whm-close:hover{background:rgba(255,255,255,.35)}
.whm-body{flex:1;overflow-y:auto;padding:8px 0}
.whm-row{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid #f0f3f7;transition:background .15s}
.whm-row:hover{background:#f8fafc}
.whm-row:last-child{border-bottom:none}
.whm-name{flex:1;font-size:13px;font-weight:700;color:#2d3748}
.whm-date{font-size:10px;color:#a0aec0;margin-top:2px;font-weight:500}
.whm-load{padding:5px 12px;background:#4a6fa5;color:#fff;border:none;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit}
.whm-load:hover{background:#3b5a8a}
.whm-del{padding:5px 10px;background:transparent;color:#e53e3e;border:1px solid #fbb;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit}
.whm-del:hover{background:#fff5f5}
.whm-empty{padding:40px 20px;text-align:center;color:#a0aec0;font-size:12px}
.weekly-viz-card{
  background:linear-gradient(145deg,#ffffff 0%,#f7fafc 100%);
  border-radius:14px;
  padding:18px 20px;
  display:flex;flex-direction:column;min-height:260px;
  position:relative;
  border:1px solid rgba(255,255,255,.7);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 -2px 0 rgba(0,0,0,.02) inset,
    0 1px 3px rgba(0,0,0,.04),
    0 6px 18px rgba(40,60,100,.08),
    0 18px 40px rgba(40,60,100,.06);
  transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .35s ease;
  transform-style:preserve-3d;
  overflow:hidden;
}
.weekly-viz-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:55%;
  background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 100%);
  pointer-events:none;border-radius:14px 14px 0 0;z-index:0;
}
.weekly-viz-card::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:6px;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.05) 100%);
  pointer-events:none;border-radius:0 0 14px 14px;z-index:0;
}
.weekly-viz-card>*{position:relative;z-index:1}
.weekly-viz-card:hover{
  transform:translateY(-4px) rotateX(2deg) scale(1.005);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 -2px 0 rgba(0,0,0,.02) inset,
    0 4px 10px rgba(0,0,0,.06),
    0 14px 32px rgba(40,60,100,.14),
    0 28px 60px rgba(40,60,100,.1);
}
.weekly-viz-card h4{margin:0 0 12px;font-size:12px;font-weight:800;color:var(--txt);letter-spacing:.04em;display:flex;align-items:center;gap:6px;text-shadow:0 1px 0 rgba(255,255,255,.5)}
.weekly-viz-card h4 .wv-badge{margin-left:auto;font-size:10px;padding:3px 10px;border-radius:12px;background:linear-gradient(135deg,#f7fafc,#edf2f7);color:var(--txt-l);font-weight:700;border:1px solid rgba(0,0,0,.04);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 1px 2px rgba(0,0,0,.04)}
.weekly-viz-canvas-wrap{flex:1;position:relative;min-height:200px}
/* 進捗ステータス：ゲージ直下に大きく配置 */
.weekly-status-banner{margin:10px 0;padding:14px 18px;border-radius:12px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;background:linear-gradient(135deg,#edf2f7,#e2e8f0);border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 12px rgba(0,0,0,.06),inset 0 1px 0 rgba(255,255,255,.6);transition:all .3s cubic-bezier(.22,.61,.36,1);position:relative;overflow:hidden}
.weekly-status-banner::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,0) 50%);pointer-events:none}
.wsb-icon{grid-row:span 2;font-size:38px;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));z-index:1}
.wsb-text{font-size:18px;font-weight:900;color:#2d3748;letter-spacing:.02em;line-height:1.1;z-index:1;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.wsb-sub{font-size:11px;color:#718096;font-weight:600;line-height:1.3;z-index:1;margin-top:2px}
.weekly-status-banner.s-good{background:linear-gradient(135deg,#c6f6d5 0%,#9ae6b4 100%);border-color:#48bb78;box-shadow:0 6px 18px rgba(72,187,120,.25),inset 0 1px 0 rgba(255,255,255,.8)}
.weekly-status-banner.s-good .wsb-text{color:#22543d}
.weekly-status-banner.s-good .wsb-sub{color:#2f855a}
.weekly-status-banner.s-warn{background:linear-gradient(135deg,#fbd38d 0%,#f6ad55 100%);border-color:#ed8936;box-shadow:0 6px 18px rgba(237,137,54,.25),inset 0 1px 0 rgba(255,255,255,.8)}
.weekly-status-banner.s-warn .wsb-text{color:#7b341e}
.weekly-status-banner.s-warn .wsb-sub{color:#9c4221}
.weekly-status-banner.s-bad{background:linear-gradient(135deg,#feb2b2 0%,#fc8181 100%);border-color:#e53e3e;box-shadow:0 6px 18px rgba(252,129,129,.3),inset 0 1px 0 rgba(255,255,255,.8);animation:wsbPulse 2.4s ease-in-out infinite}
.weekly-status-banner.s-bad .wsb-text{color:#742a2a}
.weekly-status-banner.s-bad .wsb-sub{color:#9b2c2c}
.weekly-status-banner.s-best{background:linear-gradient(135deg,#fefcbf 0%,#f6e05e 50%,#ecc94b 100%);border-color:#d69e2e;box-shadow:0 6px 22px rgba(214,158,46,.4),inset 0 1px 0 rgba(255,255,255,.8)}
.weekly-status-banner.s-best .wsb-text{color:#5f370e;text-shadow:0 1px 0 rgba(255,255,255,.5)}
.weekly-status-banner.s-best .wsb-sub{color:#744210}
@keyframes wsbPulse{0%,100%{box-shadow:0 6px 18px rgba(252,129,129,.3),inset 0 1px 0 rgba(255,255,255,.8)}50%{box-shadow:0 8px 26px rgba(252,129,129,.55),inset 0 1px 0 rgba(255,255,255,.8)}}
.wgi-amounts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wgi-amt{padding:10px 12px;background:linear-gradient(135deg,#fff,#f7fafc);border-radius:8px;display:flex;flex-direction:column;gap:3px;border:1px solid #edf2f7;box-shadow:0 2px 6px rgba(0,0,0,.04),inset 0 1px 0 rgba(255,255,255,.8)}
.wgi-label{font-size:9px;color:#718096;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.wgi-value{font-size:14px;font-weight:800;color:#2d3748;line-height:1.2}
.weekly-progress-card{background:linear-gradient(135deg,#4a6fa5 0%,#667eea 100%);color:#fff;padding:20px 24px;border-radius:var(--r);box-shadow:var(--sh);margin-bottom:14px}
.weekly-progress-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.weekly-progress-label{font-size:11px;opacity:.85;letter-spacing:.05em;text-transform:uppercase;font-weight:700}
.weekly-progress-val{font-size:28px;font-weight:800;line-height:1}
.weekly-progress-bar{height:12px;background:rgba(255,255,255,.2);border-radius:6px;overflow:hidden;position:relative}
.weekly-progress-fill{height:100%;background:linear-gradient(90deg,#48bb78,#9ae6b4);border-radius:6px;transition:width .6s cubic-bezier(.22,.61,.36,1);box-shadow:0 0 10px rgba(154,230,180,.5)}
.weekly-progress-fill.danger{background:linear-gradient(90deg,#fc8181,#feb2b2);box-shadow:0 0 10px rgba(252,129,129,.5)}
.weekly-progress-fill.warn{background:linear-gradient(90deg,#ed8936,#fbd38d)}
.weekly-progress-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;opacity:.85}
.weekly-insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:16px}
.weekly-insight-card{background:var(--card);border-radius:10px;padding:12px 14px;box-shadow:var(--sh);border-left:4px solid var(--acc);transition:var(--tr)}
.weekly-insight-card:hover{transform:translateY(-2px);box-shadow:var(--sh-h)}
.weekly-insight-card.ic-good{border-left-color:#48bb78}
.weekly-insight-card.ic-warn{border-left-color:#ed8936}
.weekly-insight-card.ic-bad{border-left-color:#e53e3e}
.weekly-insight-label{font-size:10px;color:var(--txt-l);font-weight:700;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.weekly-insight-val{font-size:18px;font-weight:800;color:var(--txt);line-height:1.15}
.weekly-insight-sub{font-size:10px;color:var(--txt-l);margin-top:2px}
.weekly-viz-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--txt-l);font-size:12px;font-weight:600;text-align:center;padding:20px}
/* 担当者ページ切替タブ */
.weekly-mem-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.wmem-tab{padding:8px 18px;background:#fff;color:#4a5568;border:1.5px solid #cbd5e0;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.wmem-tab:hover{background:#f7fafc;border-color:#a0aec0}
.wmem-tab.active{background:linear-gradient(135deg,#4a6fa5,#667eea);color:#fff;border-color:#4a6fa5;box-shadow:0 2px 8px rgba(74,111,165,.3)}
/* 担当者カード */
.weekly-member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(540px,1fr));gap:14px;margin-bottom:16px}
.weekly-member-grid.single-view{grid-template-columns:minmax(0,1fr)}
.weekly-member-card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;border-top:4px solid var(--acc)}
.weekly-member-card.mc-araki{border-top-color:#4a6fa5}
.weekly-member-card.mc-iwamoto{border-top-color:#48bb78}
.weekly-member-head{padding:14px 18px;background:linear-gradient(135deg,#f7fafc,#edf2f7);display:flex;align-items:center;gap:10px;border-bottom:1px solid #e2e8f0}
.weekly-member-avatar{width:38px;height:38px;border-radius:50%;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;letter-spacing:.05em;flex-shrink:0}
.mc-araki .weekly-member-avatar{background:linear-gradient(135deg,#4a6fa5,#7c9fd6)}
.mc-iwamoto .weekly-member-avatar{background:linear-gradient(135deg,#48bb78,#68d391)}
.weekly-member-name{font-size:15px;font-weight:800;color:var(--txt)}
.weekly-member-role{font-size:11px;color:var(--txt-l);margin-left:auto}
.weekly-member-body{padding:0}
.weekly-sub{border-bottom:1px solid #edf2f7}
.weekly-sub:last-child{border-bottom:none}
.weekly-sub-hdr{padding:9px 18px;background:#f7fafc;font-size:11px;font-weight:700;color:#4a5568;letter-spacing:.05em;text-transform:uppercase;display:flex;align-items:center;gap:6px}
.weekly-sub-hdr .ws-icon{font-size:13px}
.weekly-sub-hdr .ws-add{margin-left:auto;padding:3px 10px;background:#fff;color:var(--acc);border:1px solid #bee3f8;border-radius:5px;font-size:10px;font-weight:700;cursor:pointer;font-family:inherit}
.weekly-sub-hdr .ws-add:hover{background:#ebf8ff}
.weekly-sub-body{padding:0;overflow-x:auto}
.weekly-mc-tbl{width:100%;border-collapse:collapse;font-size:12px}
.weekly-mc-tbl th{background:#fafbfc;padding:7px 10px;text-align:right;font-weight:700;color:var(--txt-l);font-size:10px;letter-spacing:.04em;border-bottom:1px solid #e2e8f0;white-space:nowrap}
.weekly-mc-tbl th:first-child{text-align:left}
.weekly-mc-tbl td{padding:6px 10px;border-bottom:1px solid #f0f3f7;text-align:right;white-space:nowrap;vertical-align:middle}
.weekly-mc-tbl td:first-child{text-align:left;font-weight:600;color:#4a5568;font-size:11px}
.weekly-mc-tbl tr:last-child td{border-bottom:none}
.weekly-mc-tbl tr.mt-total td{background:#f0f5ff;font-weight:800}
.weekly-mc-tbl tr.mt-profit td{background:#f0fff4;color:#2f855a;font-weight:700;font-size:11px}
.weekly-empty-row td{text-align:center;color:var(--txt-l);font-size:11px;padding:14px 10px;font-style:italic}
/* 未入金テーブル: 顧客名固定+横スクロール */
.weekly-recv-tbl{min-width:880px}
.weekly-recv-tbl thead th:first-child,.weekly-recv-tbl tbody td:first-child{position:sticky;left:0;z-index:2;background:#fff;border-right:2px solid #cbd5e0;box-shadow:2px 0 4px -2px rgba(0,0,0,.08)}
.weekly-recv-tbl thead th:first-child{background:#fafbfc}
.weekly-recv-tbl tr:hover td:first-child{background:#f7fafc}
.weekly-recv-tbl .weekly-empty-row td:first-child{box-shadow:none;border-right:none}
/* 土井カード（オレンジ系） */
.weekly-member-card.mc-doi{border-top-color:#000070}
.mc-doi .weekly-member-avatar{background:linear-gradient(135deg,#000070,#ed8936)}
.weekly-doi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px;margin-bottom:16px}
@media(max-width:760px){.weekly-kpi-grid{grid-template-columns:repeat(2,1fr)}.weekly-tbl,.weekly-mc-tbl{font-size:11px}.weekly-progress-val{font-size:22px}.weekly-member-grid{grid-template-columns:1fr}}

/* ═══ 面積計算CAD ═══ */
.anv-cs-cad-row{margin:0 0 8px}
.anv-cad-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 14px;background:linear-gradient(135deg,#e8f5ee,#d4edda);border:1.5px solid #4a7c59;border-radius:8px;font-size:13px;font-weight:700;color:#2d6a4f;cursor:pointer;white-space:nowrap;font-family:inherit;letter-spacing:.3px;transition:all .15s}
.anv-cad-btn:hover{background:linear-gradient(135deg,#c3e6cb,#b2dfbf);box-shadow:0 2px 8px rgba(74,124,89,.2)}
.anv-cad-btn:active{transform:scale(.98);opacity:.9}
/* ═══ Jw_cad風 詳細CAD ═══ */
#cadModal{display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.55);padding:0}
#cadModal.cadm-open{display:flex}
.cadm-box{background:#fff;display:flex;flex-direction:column;width:100vw;height:100dvh;overflow:hidden;font-family:inherit}
.cadm-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid #cbd5e0;flex-shrink:0;background:linear-gradient(180deg,#f0f4f8,#e2e8f0)}
.cadm-head h3{font-size:13px;font-weight:700;color:#1a202c;margin:0;display:flex;align-items:center;gap:6px}
.cadm-close{border:none;background:none;font-size:18px;cursor:pointer;color:#4a5568;line-height:1;padding:4px 8px;border-radius:5px}
.cadm-close:hover{background:#cbd5e0}
/* タブ */
.cadm-tabs{display:flex;border-bottom:1px solid #cbd5e0;flex-shrink:0;background:#edf2f7}
.cadm-tab{flex:1;padding:7px 4px;border:none;background:none;font-size:12px;font-weight:600;color:#718096;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:4px}
.cadm-tab.act{color:#2d6a4f;border-bottom-color:#4a7c59;background:#fff}
.cadm-tab-check{width:13px;height:13px;border-radius:50%;background:#c6f6d5;color:#276749;font-size:8px;display:none;align-items:center;justify-content:center;font-weight:800}
.cadm-tab.done .cadm-tab-check{display:flex}
/* ボディ：左ツールバー｜キャンバス｜右パネル */
.cadm-body{display:flex;flex:1;overflow:hidden;min-height:0}
/* 左ツールバー */
.cadm-toolbar{width:70px;flex-shrink:0;background:#2d3748;display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:4px;overflow-y:auto}
.cadm-tool{width:60px;height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:#4a5568;color:#e2e8f0;cursor:pointer;border-radius:8px;font-size:10px;font-family:inherit;padding:2px;transition:background .12s}
.cadm-tool:hover{background:#5a6878}
.cadm-tool.act{background:#4a7c59;color:#fff;box-shadow:inset 0 0 0 1.5px #9ae6b4}
.cadm-tool svg{flex-shrink:0}
.cadm-tool-sep{width:54px;height:1px;background:#4a5568;margin:4px 0}
/* キャンバスエリア */
.cadm-canvas-area{flex:1;position:relative;overflow:hidden;background:#fefefe;touch-action:none;cursor:crosshair}
.cadm-canvas-area canvas{position:absolute;top:0;left:0;touch-action:none}
.cadm-canvas-area canvas#cadmMainCanvas{z-index:1}
.cadm-canvas-area canvas#cadmOverlayCanvas{z-index:2}
.cadm-hint{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);background:rgba(26,32,44,.78);color:#fff;font-size:12px;padding:7px 16px;border-radius:14px;pointer-events:none;z-index:5;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.cadm-dim-input{position:absolute;top:10px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,0.98);border:2px solid #4a7c59;border-radius:10px;padding:8px 12px;z-index:10;display:none;flex-direction:column;gap:6px;box-shadow:0 6px 18px rgba(0,0,0,.22);font-size:12px;min-width:300px;max-width:400px}
.cadm-dim-input.show{display:flex}
.cadm-dim-input .dim-row1{display:flex;align-items:center;gap:6px;width:100%}
.cadm-dim-input label{font-weight:700;color:#2d6a4f;white-space:nowrap;font-size:13px}
.cadm-dim-input input{flex:1;padding:8px 10px;border:1.5px solid #c3d0e5;border-radius:6px;font-size:20px;font-weight:700;outline:none;font-family:'Consolas','Menlo',monospace;color:#1a202c;text-align:right;letter-spacing:.5px;min-width:0;cursor:pointer}
.cadm-dim-unit-label{font-size:14px;font-weight:700;color:#2d6a4f;padding:0 6px;flex-shrink:0;line-height:1}
.cadm-dim-input input:focus{border-color:#4a7c59;box-shadow:0 0 0 2px rgba(74,124,89,0.15)}
.cadm-dim-input .dim-hint{font-size:9.5px;color:#718096;line-height:1.3;text-align:center;padding:2px 0}
.cadm-dim-toggle{padding:5px 8px;border:1.5px solid #4a7c59;border-radius:6px;background:#fff;cursor:pointer;font-size:13px;color:#2d6a4f;font-weight:700;font-family:inherit;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;line-height:1}
.cadm-dim-toggle.active{background:#4a7c59;color:#fff}
/* オンスクリーン数値パッド（小型・トグル式） */
.cadm-numpad{display:none;grid-template-columns:repeat(4,1fr);gap:3px;width:100%}
.cadm-numpad.show{display:grid}
.cadm-numpad-btn{padding:8px 2px;border:1.2px solid #c3d0e5;border-radius:6px;background:#fff;font-size:17px;font-weight:700;cursor:pointer;color:#1a202c;font-family:inherit;user-select:none;touch-action:manipulation;min-height:48px;-webkit-tap-highlight-color:transparent;line-height:1}
.cadm-numpad-btn:active{background:#e8f5ee;transform:scale(0.93);transition:transform .05s}
.cadm-numpad-btn.special{background:#f7fafc;color:#4a5568;font-size:11px}
.cadm-numpad-btn.enter{background:linear-gradient(135deg,#4a7c59,#2d9e5f);color:#fff;border-color:#4a7c59;font-size:12px}
.cadm-numpad-btn.cancel{background:#fff5f5;color:#c53030;border-color:#feb2b2;font-size:11px}
.cadm-numpad-btn.wide{grid-column:span 2}
.cadm-numpad-btn.dir{background:linear-gradient(135deg,#ebf8ff,#bee3f8);color:#2b6cb0;border-color:#90cdf4;font-size:22px;font-weight:900}
.cadm-numpad-btn.dir:active{background:#90cdf4;transform:scale(0.93)}
@media(max-width:640px){
  .cadm-dim-input{min-width:230px;padding:5px 8px}
  .cadm-dim-input input{font-size:14px;padding:5px 7px}
  .cadm-numpad-btn{font-size:12px;min-height:28px;padding:5px 2px}
  .cadm-numpad-btn.special,.cadm-numpad-btn.enter,.cadm-numpad-btn.cancel{font-size:10px}
}
.cadm-statusbar{position:absolute;bottom:0;left:0;right:0;height:26px;background:#2d3748;color:#e2e8f0;font-size:11px;display:flex;align-items:center;gap:14px;padding:0 12px;z-index:4;font-family:'Consolas','Menlo',monospace}
.cadm-statusbar .sb-coord{color:#9ae6b4;min-width:170px}
.cadm-statusbar .sb-snap{color:#fcd34d}
.cadm-statusbar .sb-tool{color:#90cdf4}
.cadm-statusbar .sb-spacer{flex:1}
/* 右サイドパネル */
.cadm-side{width:270px;flex-shrink:0;border-left:1px solid #cbd5e0;display:flex;flex-direction:column;overflow:hidden;background:#f7fafc}
.cadm-side-scroll{flex:1;overflow-y:auto;padding:8px 10px}
.cadm-panel{margin-bottom:9px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}
.cadm-panel-hd{padding:6px 10px;background:#edf2f7;font-size:11px;font-weight:700;color:#2d3748;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:5px}
.cadm-panel-bd{padding:7px 10px}
/* レイヤー */
.cadm-layer-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:12px}
.cadm-layer-row input[type=radio]{margin:0}
.cadm-layer-color{width:14px;height:14px;border-radius:2px;flex-shrink:0;border:1px solid #cbd5e0}
.cadm-layer-name{flex:1;cursor:pointer;color:#2d3748}
.cadm-layer-row input[type=checkbox]{margin:0;cursor:pointer}
.cadm-layer-row.active{background:#e6fffa;border-radius:4px;padding:3px 4px;margin:0 -4px}
/* スナップ */
.cadm-snap-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.cadm-snap-btn{display:flex;align-items:center;gap:4px;padding:10px 8px;border:1px solid #cbd5e0;border-radius:6px;background:#fff;font-size:12px;cursor:pointer;color:#4a5568;font-family:inherit}
.cadm-snap-btn.on{background:#4a7c59;color:#fff;border-color:#4a7c59}
/* 単位 */
.cadm-unit-row{display:flex;align-items:center;gap:6px;font-size:11px;color:#4a5568}
.cadm-sel{padding:3px 5px;border:1px solid #c3d0e5;border-radius:4px;font-size:11px;background:#fff;color:#1a202c;outline:none;font-family:inherit}
/* 計測ボックス */
.cadm-measure-box{background:linear-gradient(135deg,#e8f5ee,#d4edda);border:1px solid #4a7c59;border-radius:6px;padding:10px 8px;text-align:center}
.cadm-measure-lbl{font-size:10px;color:#2d6a4f;font-weight:700;margin-bottom:2px}
.cadm-measure-val{font-size:32px;font-weight:800;color:#1a4a2e;line-height:1.05}
.cadm-measure-unit{font-size:11px;color:#2d6a4f;font-weight:600}
.cadm-measure-sub{font-size:10px;color:#4a5568;margin-top:3px}
/* メモ */
.cadm-memo-area{width:100%;min-height:70px;padding:6px 8px;border:1px solid #c3d0e5;border-radius:5px;font-size:12px;resize:vertical;font-family:inherit;color:#1a202c;background:#fff;outline:none;box-sizing:border-box;line-height:1.5}
.cadm-memo-area:focus{border-color:#4a7c59}
/* 辺編集パネル */
.cadm-edge-panel{display:none;margin-bottom:9px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}
.cadm-edge-panel.show{display:block}
.cadm-edge-row{display:flex;align-items:center;gap:4px;margin-bottom:5px;padding:2px 4px;border-radius:5px;transition:background .12s}
.cadm-edge-row.act{background:#e8f4ee}
.cadm-edge-badge{width:20px;height:20px;border-radius:50%;background:#4a7c59;color:#fff;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.cadm-edge-row.act .cadm-edge-badge{background:#2d6a4f}
.cadm-edge-len{flex:1;font-size:15px;font-weight:700;color:#1a202c;text-align:right;font-family:'Consolas','Menlo',monospace;min-width:0}
.cadm-edge-unit{font-size:10px;color:#718096;width:16px;flex-shrink:0}
.cadm-edge-ang{font-size:11px;color:#3182ce;width:44px;text-align:right;flex-shrink:0}
.cadm-edge-edit-btn{padding:6px 9px;font-size:15px;background:#f7fafc;border:1.5px solid #c3d0e5;border-radius:7px;cursor:pointer;flex-shrink:0;line-height:1;transition:background .1s,border-color .1s}
.cadm-edge-edit-btn:active,.cadm-edge-edit-btn:hover{background:#e8f4ee;border-color:#4a7c59}
.cadm-edge-row.act .cadm-edge-edit-btn{background:#4a7c59;color:#fff;border-color:#4a7c59}
.cadm-edge-empty{font-size:11px;color:#a0aec0;text-align:center;padding:6px 0}
/* 操作行 */
.cadm-action-row{display:flex;gap:5px;margin-top:5px}
.cadm-sm-btn{flex:1;padding:10px 4px;border-radius:6px;border:1px solid #d1d5db;background:#fff;font-size:12px;color:#4a5568;cursor:pointer;font-family:inherit}
.cadm-sm-btn:hover{background:#f7fafc}
.cadm-sm-btn.danger{border-color:#feb2b2;color:#c53030;background:#fff5f5}
/* フッター */
.cadm-foot{display:flex;gap:8px;padding:8px 14px;border-top:1px solid #cbd5e0;flex-shrink:0;background:#edf2f7}
.cadm-ok{flex:1;padding:10px;background:linear-gradient(135deg,#4a7c59,#2d9e5f);border:none;border-radius:7px;color:#fff;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;letter-spacing:.3px}
.cadm-ok:active{opacity:.85}
.cadm-cancel{padding:10px 18px;border:1.5px solid #c3d0e5;border-radius:7px;background:#fff;font-size:12px;font-weight:600;cursor:pointer;color:#718096;font-family:inherit}
.cadm-tools-collapse{display:flex;flex-direction:column;gap:1px}
@media(max-width:640px){
  .cadm-toolbar{width:58px}
  .cadm-tool{width:50px;height:50px;font-size:9px}
  .cadm-side{width:180px}
  .cadm-measure-val{font-size:24px}
  .cadm-statusbar .sb-coord{min-width:130px;font-size:10px}
  .cadm-numpad-btn{font-size:14px;min-height:40px}
}

/* ─── 工程表（Googleカレンダー風スケジュール） ─── */
.kt-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fff;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;gap:12px}
.kt-nav{display:flex;align-items:center;gap:6px}
.kt-btn{background:#fff;border:1px solid #cbd5e0;border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer;color:#2d3748;transition:all .15s}
.kt-btn:hover{background:#f7fafc;border-color:#a0aec0}
.kt-today{font-weight:600}
.kt-anchor{font-size:16px;font-weight:600;color:#2d3748;margin-left:12px}
.kt-view-switch{display:flex;gap:0;border:1px solid #cbd5e0;border-radius:6px;overflow:hidden}
.kt-vbtn{background:#fff;border:none;padding:6px 14px;font-size:13px;cursor:pointer;color:#4a5568;border-right:1px solid #e2e8f0}
.kt-vbtn:last-child{border-right:none}
.kt-vbtn.active{background:#4f6df5;color:#fff}
.kt-vbtn:hover:not(.active){background:#f7fafc}
.kt-actions{display:flex;gap:8px}
.kt-sync{background:#10b981;color:#fff;border-color:#059669;font-weight:600}
.kt-sync:hover{background:#059669}
.kt-month{background:#fff;padding:0}
.kt-month-hd{display:grid;grid-template-columns:repeat(7,1fr);background:#f7fafc;border-bottom:1px solid #e2e8f0}
.kt-wd{text-align:center;padding:8px 0;font-size:12px;font-weight:600;color:#4a5568}
.kt-wd.kt-sun{color:#e53e3e}
.kt-wd.kt-sat{color:#3182ce}
.kt-month-grid{display:grid;grid-template-columns:repeat(7,1fr);background:#e2e8f0;gap:1px}
.kt-cell{background:#fff;min-height:100px;padding:4px;cursor:pointer;display:flex;flex-direction:column;transition:background .15s}
.kt-cell:hover{background:#f7fafc}
.kt-cell.kt-out{background:#fafafa;color:#a0aec0}
.kt-cell.kt-today-cell{background:#fef3c7}
.kt-cell.kt-today-cell:hover{background:#fde68a}
.kt-cell.kt-sun .kt-cell-h{color:#e53e3e}
.kt-cell.kt-sat .kt-cell-h{color:#3182ce}
.kt-cell-h{font-size:12px;font-weight:600;padding:2px 4px;color:#2d3748}
.kt-cell.kt-out .kt-cell-h{color:#cbd5e0}
.kt-cell-b{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}
.kt-evt{padding:2px 6px;font-size:11px;color:#fff;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.4}
.kt-evt-s{border-top-left-radius:6px;border-bottom-left-radius:6px}
.kt-evt-e{border-top-right-radius:6px;border-bottom-right-radius:6px}
.kt-more{font-size:10px;color:#4a5568;padding:1px 4px;cursor:pointer;font-weight:600}
.kt-more:hover{color:#4f6df5}
.kt-week{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e2e8f0;padding:0}
.kt-wcol{background:#fff;min-height:400px;display:flex;flex-direction:column}
.kt-wcol.kt-today-col{background:#fef3c7}
.kt-wcol-hd{padding:8px 12px;border-bottom:1px solid #e2e8f0;display:flex;align-items:baseline;gap:8px;background:#f7fafc}
.kt-wcol.kt-today-col .kt-wcol-hd{background:#fde68a}
.kt-wd-lbl{font-size:11px;font-weight:600;color:#4a5568}
.kt-wd-lbl.kt-sun{color:#e53e3e}
.kt-wd-lbl.kt-sat{color:#3182ce}
.kt-wd-d{font-size:20px;font-weight:700;color:#2d3748}
.kt-wcol-b{padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}
.kt-wevt{background:#f7fafc;border-left:4px solid #3b82f6;border-radius:4px;padding:6px 8px;cursor:pointer;font-size:12px;transition:all .15s}
.kt-wevt:hover{background:#edf2f7;transform:translateX(2px)}
.kt-wevt-ttl{font-weight:600;color:#2d3748;margin-bottom:2px}
.kt-wevt-meta{font-size:10px;color:#718096;margin-bottom:4px}
.kt-wevt-bdg{display:flex;gap:4px}
.kt-wevt-empty{color:#a0aec0;font-size:11px;text-align:center;padding:20px 0}
.kt-st{font-size:10px;padding:2px 6px;border-radius:10px;font-weight:600}
.kt-st-todo{background:#fef3c7;color:#92400e}
.kt-st-doing{background:#dbeafe;color:#1e40af}
.kt-st-done{background:#d1fae5;color:#065f46}
.kt-st-pause{background:#fee2e2;color:#991b1b}
.kt-gantt{background:#fff;overflow-x:auto;max-width:100%}
.kt-g-head{display:flex;position:sticky;top:0;z-index:5;background:#fff;border-bottom:2px solid #e2e8f0}
.kt-g-rh-spacer{width:200px;flex-shrink:0;background:#f7fafc;border-right:1px solid #e2e8f0}
.kt-g-head-r{flex-shrink:0}
.kt-g-months{display:flex;background:#edf2f7;border-bottom:1px solid #e2e8f0}
.kt-g-month{flex-shrink:0;text-align:center;padding:6px 0;font-size:12px;font-weight:600;color:#2d3748;border-right:1px solid #cbd5e0}
.kt-g-days{display:flex}
.kt-g-day{flex-shrink:0;text-align:center;padding:4px 0;font-size:10px;color:#718096;border-right:1px solid #f1f5f9}
.kt-g-day.kt-sun{background:#fef2f2;color:#e53e3e}
.kt-g-day.kt-sat{background:#eff6ff;color:#3182ce}
.kt-g-day.kt-today-d{background:#fbbf24;color:#fff;font-weight:700}
.kt-g-body{display:flex;flex-direction:column}
.kt-g-row{display:flex;border-bottom:1px solid #f1f5f9;min-height:46px;align-items:center}
.kt-g-row:hover{background:#fafafa}
.kt-g-rh{width:200px;flex-shrink:0;padding:8px 12px;border-right:1px solid #e2e8f0;cursor:pointer;background:#fff}
.kt-g-rh:hover{background:#f7fafc}
.kt-g-rh-t{font-size:13px;font-weight:600;color:#2d3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kt-g-rh-m{font-size:10px;color:#718096;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kt-g-track{position:relative;height:46px;flex-shrink:0}
.kt-g-bar{position:absolute;top:8px;height:22px;border-radius:4px;cursor:pointer;display:flex;align-items:center;padding:0 8px;color:#fff;font-size:11px;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12);transition:all .15s}
.kt-g-bar:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.15)}
.kt-g-bar-lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kt-g-phase{position:absolute;top:32px;height:8px;border-radius:3px;font-size:9px;color:#fff;padding:0 4px;white-space:nowrap;overflow:hidden;opacity:.85}
.kt-g-today-line{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;z-index:3;pointer-events:none}
.kt-g-empty{padding:60px 20px;text-align:center;color:#a0aec0;font-size:14px}
.kt-drw-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1000;display:none;align-items:center;justify-content:center;padding:24px}
.kt-drw-ov.active{display:flex}
.kt-drw{background:#fff;border-radius:12px;width:min(820px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 48px rgba(0,0,0,.2)}
.kt-drw-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #e2e8f0;background:#f7fafc}
.kt-drw-tit{font-size:16px;font-weight:700;color:#2d3748}
.kt-drw-x{background:none;border:none;font-size:24px;color:#718096;cursor:pointer;padding:0;line-height:1;width:32px;height:32px;border-radius:6px}
.kt-drw-x:hover{background:#edf2f7;color:#2d3748}
.kt-drw-bd{flex:1;overflow-y:auto;padding:20px 24px}
.kt-drw-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.kt-drw-grid label{display:flex;flex-direction:column;font-size:12px;color:#4a5568;gap:4px}
.kt-color-row{display:flex;align-items:center;gap:12px;margin-top:12px}
.kt-color-lbl{font-size:12px;color:#4a5568;font-weight:600}
.kt-color-list{display:flex;gap:6px}
.kt-color-sw{width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #cbd5e0;cursor:pointer;padding:0}
.kt-color-sw.active{box-shadow:0 0 0 2px #2d3748}
.kt-color-sw.kt-sw-sm{width:18px;height:18px}
.kt-memo-row{display:flex;flex-direction:column;font-size:12px;color:#4a5568;margin-top:12px;gap:4px}
.cdrw-sttl-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.kt-add-phase{background:#4f6df5;color:#fff;border-color:#4f6df5;font-size:12px}
.kt-add-phase:hover{background:#4338ca}
.kt-phase-list{display:flex;flex-direction:column;gap:8px}
.kt-phase-empty{color:#a0aec0;font-size:12px;text-align:center;padding:20px;background:#f7fafc;border-radius:6px}
.kt-phase-row{display:grid;grid-template-columns:1.4fr .9fr auto .9fr .8fr auto auto;gap:6px;align-items:center;padding:8px;background:#f7fafc;border-radius:6px}
.kt-phase-tilde{font-size:12px;color:#718096}
.kt-phase-colors{display:flex;gap:3px}
.kt-phase-del{background:#fee2e2;border:1px solid #fecaca;color:#dc2626;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;padding:0}
.kt-phase-del:hover{background:#fecaca}
.kt-drw-foot{display:flex;justify-content:space-between;padding:16px 24px;border-top:1px solid #e2e8f0;background:#f7fafc}
.kt-del{background:#fff5f5;border-color:#fed7d7;color:#c53030}
.kt-del:hover{background:#fed7d7}
.kt-save{background:#4f6df5;color:#fff;border-color:#4f6df5;font-weight:600;padding:8px 24px}
.kt-save:hover{background:#4338ca}
.kt-day-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1001;display:none;align-items:center;justify-content:center;padding:24px}
.kt-day-ov.active{display:flex}
.kt-day-card{background:#fff;border-radius:12px;width:min(480px,100%);max-height:80vh;display:flex;flex-direction:column;overflow:hidden}
.kt-day-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e2e8f0;background:#f7fafc;font-weight:700;color:#2d3748}
.kt-day-cls{background:none;border:none;font-size:22px;cursor:pointer;color:#718096}
.kt-day-lst{padding:12px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}
.kt-day-itm{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;font-size:13px}
.kt-day-itm:hover{background:#f7fafc;border-color:#4f6df5}
.kt-day-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.kt-day-itm-m{margin-left:auto;font-size:10px;color:#718096}
@media (max-width:768px){
  .kt-cell{min-height:70px;padding:2px}
  .kt-cell-h{font-size:10px}
  .kt-evt{font-size:9px;padding:1px 3px}
  .kt-toolbar{flex-direction:column;align-items:stretch}
  .kt-drw-grid{grid-template-columns:1fr}
  .kt-phase-row{grid-template-columns:1fr 1fr 1fr;gap:4px}
  .kt-week{grid-template-columns:1fr;min-height:auto}
  .kt-wcol{min-height:auto}
}

/* ═══ 不動産会社リスト (REALESTATE DIRECTORY) ═══ */
/* 2カラム: [マップ 1fr] [会社一覧 1fr] — サイドバーは #avSidebar に集約 */
.re-wrap{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:12px;padding:12px 16px;flex:1;min-height:0;overflow:hidden}
/* ─ サイドバー内パネル: 検索+市町村件数 ─ */
.re-sep{border:none;border-top:1px solid #e2e8f0;margin:12px 0 10px;flex-shrink:0}
.re-city-list-wrap{flex:1;min-height:0;overflow-y:auto}
/* ─ マップ列: 全高フィル ─ */
.re-map-col{min-height:0;display:flex;flex-direction:column}
.re-map-col>.re-card{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#appView.realestate-mode .re-map-wrap{flex:1;min-height:0;height:auto;aspect-ratio:unset;overflow:hidden}
/* ─ 会社一覧列: 全高フィル ─ */
.re-list-col{min-height:0;overflow:hidden;display:flex;flex-direction:column}
.re-list-card{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.re-list-card .re-list-head{flex-shrink:0}
.re-list-card .re-tbl-wrap{flex:1;min-height:0;overflow:auto}
.re-list-card .re-pager{flex-shrink:0}
/* タブレット (769〜1100px): マップ非表示・会社一覧1カラム */
@media (max-width:1100px) and (min-width:769px){
  .re-wrap{grid-template-columns:1fr;grid-template-rows:1fr}
  .re-map-col{display:none}
}
/* スマホ: サイドバーを上部に、コンテンツを縦積み */
@media (max-width:768px){
  #appView.realestate-mode.active{flex-direction:column}
  #appView.realestate-mode #avSidebar{width:100%;min-width:0;border-right:none;border-bottom:1px solid #dce3ee;overflow-y:visible;flex-shrink:0}
  #appView.realestate-mode #avRePanel{flex:none;min-height:0;overflow:visible;padding:6px 10px 8px}
  #appView.realestate-mode #avRePanel>.re-card{flex:none;overflow:visible}
  .re-city-list-wrap{flex:none;max-height:160px;overflow-y:auto}
  #appView.realestate-mode .av-body{overflow-y:auto;display:block;flex:none}
  .re-wrap{grid-template-columns:1fr;grid-template-rows:auto;flex:none;overflow:visible;padding:10px}
  .re-map-col{min-height:auto;display:flex}
  .re-map-col>.re-card{flex:none;overflow:visible}
  #appView.realestate-mode .re-map-wrap{flex:none;aspect-ratio:8/7;overflow:hidden}
  .re-list-col{min-height:auto;overflow:visible}
  .re-list-card{flex:none;overflow:visible}
  .re-list-card .re-tbl-wrap{flex:none;overflow-x:auto}
}
.re-card{background:var(--card);border:1px solid #d8e0eb;border-radius:10px;padding:14px 16px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.re-card h3{margin:0 0 10px;font-size:14px;color:var(--pri);border-left:4px solid var(--acc);padding-left:8px;font-weight:700}
.re-hint{font-size:11px;color:var(--txt-l);font-weight:400;margin-left:8px}
#reKw{width:100%;padding:8px 10px;font-size:13px;border:1px solid #cbd5e0;border-radius:6px;font-family:inherit}
#reKw:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(74,111,165,.15)}
.re-filter-row{display:flex;gap:14px;margin:10px 0;font-size:12px;color:var(--txt)}
.re-filter-row label{cursor:pointer;display:flex;align-items:center;gap:4px}
.re-hits{font-size:12px;color:var(--txt-l);margin:8px 0 6px}
.re-hits strong{color:var(--acc);font-size:14px}
.re-clear-btn{background:#eef2f7;border:1px solid #cbd5e0;padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;color:var(--txt);width:100%}
.re-clear-btn:hover{background:#e0e7ef}
.re-city-list{list-style:none;margin:0;padding:0;max-height:340px;overflow:auto;border:1px solid #e2e8f0;border-radius:6px}
.re-city-list li{border-bottom:1px solid #e2e8f0}
.re-city-list li:last-child{border-bottom:none}
.re-city-pick{display:flex;justify-content:space-between;align-items:center;width:100%;padding:7px 10px;background:transparent;border:none;text-align:left;cursor:pointer;font-size:13px;color:var(--txt);font-family:inherit}
.re-city-pick:hover{background:#eef2f7}
.re-city-pick.active{background:var(--acc);color:#fff}
.re-city-pick.active b{color:#fff}
.re-city-pick b{color:var(--acc);font-weight:700;font-size:12px}
.re-map-wrap{position:relative;width:100%;aspect-ratio:8/7;background:var(--bg);border-radius:6px;overflow:hidden}
.re-loupe-tip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#a0aec0;font-size:12px;text-align:center;pointer-events:none}
.re-loupe-tip svg{opacity:.5}
.re-pref-tile.re-city-tile.re-loupe-hi .re-city-shape{fill:#ffd485;filter:brightness(1.12)}
.re-map-wrap svg{width:100%;height:100%;display:block}
.re-city-shape{fill:#cfe2f3;stroke:#1d2733;stroke-width:0.7;stroke-linejoin:round;cursor:pointer;transition:fill .15s}
.re-city-tile.h0 .re-city-shape{fill:#edf3f8}
.re-city-tile.h1 .re-city-shape{fill:#bcd9ef}
.re-city-tile.h2 .re-city-shape{fill:#7faed8}
.re-city-tile.h3 .re-city-shape{fill:#3e7cb3}
.re-city-tile:hover .re-city-shape{fill:#ffd485}
.re-city-tile.active .re-city-shape{fill:#d68b1e}
.re-city-label{font-size:11px;fill:#1d2733;pointer-events:none;text-anchor:middle;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:2px;stroke-linejoin:round}
.re-city-count{font-size:10px;fill:#1e6dbf;pointer-events:none;text-anchor:middle;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:2px;stroke-linejoin:round}
.re-map-tip{font-size:12px;color:var(--txt-l);margin-top:6px;text-align:center}
.re-map-tip b{color:var(--txt);font-size:13px}
.re-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.re-chip{display:inline-block;background:#eef2f7;color:var(--acc);padding:3px 10px;border-radius:99px;font-size:11px}
.re-chip.hidden{display:none}
.re-tbl-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
.re-tbl{width:100%;border-collapse:collapse;font-size:12px}
.re-tbl th,.re-tbl td{border-bottom:1px solid #edf1f6;padding:8px 6px;vertical-align:top;text-align:left}
.re-tbl th{background:#f7f9fc;font-size:11px;color:var(--pri);font-weight:700;letter-spacing:.02em;position:sticky;top:0;z-index:1}
.re-tbl tbody tr:hover{background:#fff8e6}
.re-c-no{width:40px;text-align:center;color:var(--txt-l)}
.re-c-no.re-src-hato{border-left:3px solid #d68b1e}
.re-c-no.re-src-zennichi{border-left:3px solid #3f9c4f}
.re-org-pill{display:inline-block;padding:2px 8px;border-radius:99px;font-size:10px;color:#fff;font-weight:700}
.re-org-pill.re-hato{background:#d68b1e}
.re-org-pill.re-zennichi{background:#3f9c4f}
.re-map-link{display:inline-block;padding:3px 8px;border:1px solid var(--acc);border-radius:4px;font-size:11px;color:var(--acc);text-decoration:none}
.re-map-link:hover{background:var(--acc);color:#fff}
.re-pager{display:flex;justify-content:center;align-items:center;gap:6px;margin:14px 0 4px;flex-wrap:wrap}
.re-pager button{padding:5px 10px;border:1px solid #cbd5e0;background:#fff;border-radius:5px;font-size:12px;cursor:pointer;color:var(--txt);font-family:inherit}
.re-pager button.active{background:var(--acc);color:#fff;border-color:var(--acc)}
.re-pager button:hover:not(:disabled){background:#eef2f7}
.re-pager button:disabled{opacity:.4;cursor:not-allowed}
#mitEdit{display:none;position:fixed;inset:0;z-index:1100;background:#f0f3f7;color:#1a2233;font-size:13px;flex-direction:column;overflow:hidden}
#mitEdit.open{display:flex}
#mitEdit *{box-sizing:border-box}
.me-hdr{height:56px;background:#1a3a6b;display:flex;align-items:center;padding:0 20px;gap:12px;box-shadow:0 2px 8px rgba(0,0,0,.2);flex-shrink:0}
.me-logo{width:30px;height:30px;background:#0099cc;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;color:#fff}
.me-title{color:#fff;font-size:16px;font-weight:700}
.me-sub{color:rgba(255,255,255,.6);font-size:12px;margin-left:4px}
.me-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
/* 見積書 左端閉じるボタン */
.me-close-left{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:6px;color:rgba(255,255,255,.85);cursor:pointer;flex-shrink:0;transition:.15s}
.me-close-left:hover{background:rgba(255,255,255,.2);color:#fff}
.me-btn{padding:8px 18px;border-radius:6px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}
.me-btn-outline{background:transparent;color:rgba(255,255,255,.85);border:1.5px solid rgba(255,255,255,.4)}
.me-btn-outline:hover{background:rgba(255,255,255,.1)}
.me-btn-success{background:#00a86b;color:#fff}
.me-btn-success:hover{background:#008f5a}
.me-btn-danger{background:transparent;color:rgba(255,255,255,.85);border:1.5px solid rgba(255,255,255,.4)}
.me-infobar{background:#fff;border-bottom:1px solid #dde3ed;padding:12px 20px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;flex-shrink:0}
.me-if{display:flex;align-items:center;gap:8px}
.me-if label{font-size:11px;color:#5a6a82;font-weight:600;white-space:nowrap}
.me-if input,.me-if select{border:1.5px solid #dde3ed;border-radius:5px;padding:5px 8px;font-size:13px;font-family:inherit;color:#1a2233;outline:none;transition:border .15s}
.me-if input:focus,.me-if select:focus{border-color:#0099cc}
.me-if .w-wide{width:220px}.me-if .w-med{width:140px}.me-if .w-nar{width:110px}
.me-tabs{background:#fff;border-bottom:2px solid #dde3ed;display:flex;overflow-x:auto;scrollbar-width:none;flex-shrink:0}
.me-tabs::-webkit-scrollbar{display:none}
.me-tab{padding:0 20px;height:44px;border:none;background:transparent;color:#5a6a82;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s;display:flex;align-items:center;gap:6px;font-family:inherit}
.me-tab:hover{color:#1a3a6b;background:#e8f4fb}
.me-tab.active{color:#1a3a6b;border-bottom-color:#1a3a6b}
.me-badge{background:#e8f4fb;color:#0099cc;font-size:11px;padding:2px 7px;border-radius:10px;font-weight:700}
.me-tab.active .me-badge{background:#1a3a6b;color:#fff}
.me-main{flex:1;overflow-y:auto;padding:16px 20px 80px}
.me-subbar{background:#fff;border:1px solid #dde3ed;border-radius:8px;padding:10px 16px;display:flex;align-items:center;gap:10px;margin-bottom:12px}
.me-subbar label{font-size:12px;color:#5a6a82;font-weight:600}
.me-subbar span{font-size:18px;font-weight:800;color:#1a3a6b}
.me-tblwrap{background:#fff;border:1px solid #dde3ed;border-radius:8px;overflow:hidden}
.me-tbl{width:100%;border-collapse:collapse}
.me-tbl thead tr{background:#1a3a6b;color:#fff}
.me-tbl thead th{padding:10px 8px;font-size:12px;font-weight:600;text-align:left;white-space:nowrap}
.me-tbl thead th.c{text-align:center}
.me-tbl tbody tr{border-bottom:1px solid #dde3ed;transition:background .1s}
.me-tbl tbody tr:last-child{border-bottom:none}
.me-tbl tbody tr:hover{background:#f8fafd}
.me-tbl tbody td{padding:6px;vertical-align:middle}
.me-cinp{width:100%;border:1.5px solid transparent;border-radius:4px;padding:5px 6px;font-size:13px;font-family:inherit;color:#1a2233;background:transparent;outline:none;transition:all .15s}
.me-cinp:hover{border-color:#dde3ed;background:#fff}
.me-cinp:focus{border-color:#0099cc;background:#fff;box-shadow:0 0 0 3px rgba(0,153,204,.1)}
.me-cinp.r{text-align:right}
.me-csel{width:100%;border:1.5px solid transparent;border-radius:4px;padding:5px 4px;font-size:12px;font-family:inherit;color:#1a2233;background:transparent;outline:none;cursor:pointer;transition:all .15s}
.me-csel:hover{border-color:#dde3ed;background:#fff}
.me-csel:focus{border-color:#0099cc;background:#fff}
.me-amt{text-align:right;font-weight:600;color:#1a2233;padding-right:10px;white-space:nowrap;font-size:13px}
.me-amt.zero{color:#dde3ed}
.me-racts{display:flex;gap:4px;justify-content:center}
.me-rbtn{width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s;font-family:inherit}
.me-rbtn-add{background:#e8f7f0;color:#00a86b}
.me-rbtn-add:hover{background:#00a86b;color:#fff}
.me-rbtn-del{background:#ffeaea;color:#e53935}
.me-rbtn-del:hover{background:#e53935;color:#fff}
.me-addrow{width:100%;padding:10px;background:#e8f4fb;border:none;border-top:1px dashed #dde3ed;color:#0099cc;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}
.me-addrow:hover{background:#d0eaf6}
.me-sumgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.me-sumgrid{grid-template-columns:1fr}}
.me-sumcard{background:#fff;border:1px solid #dde3ed;border-radius:8px;overflow:hidden}
.me-sumcard table{width:100%;border-collapse:collapse}
.me-sumcard thead tr{background:#1a3a6b;color:#fff}
.me-sumcard thead th{padding:10px 14px;font-size:12px;font-weight:600}
.me-sumcard tbody tr{border-bottom:1px solid #dde3ed}
.me-sumcard tbody tr:last-child{border-bottom:none}
.me-sumcard tbody td{padding:10px 14px;font-size:13px}
.me-sumcard tbody td.amt{text-align:right;font-weight:700}
.me-sumtotal{background:#e8f4fb !important}
.me-sumtotal td{font-weight:800 !important;color:#1a3a6b;font-size:15px !important}
.me-conf{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.me-confcard{background:#fff;border:1px solid #dde3ed;border-radius:8px;padding:14px 16px}
.me-conft{font-size:11px;font-weight:700;color:#5a6a82;letter-spacing:.08em;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #dde3ed;text-transform:uppercase}
.me-radio,.me-check{display:flex;gap:12px;flex-wrap:wrap}
.me-radio label,.me-check label{display:flex;align-items:center;gap:5px;font-size:13px;cursor:pointer}
.me-radio input,.me-check input{accent-color:#1a3a6b}
.me-condlist{display:flex;flex-direction:column;gap:8px}
.me-condrow{display:flex;align-items:center;gap:8px}
.me-condrow label{font-size:12px;color:#5a6a82;white-space:nowrap;min-width:40px}
.me-condrow input{flex:1;border:1.5px solid #dde3ed;border-radius:5px;padding:6px 8px;font-size:12px;font-family:inherit;outline:none}
.me-condrow input:focus{border-color:#0099cc}
.me-foot{background:#fff;border-top:1px solid #dde3ed;padding:12px 20px;display:flex;align-items:center;gap:12px;flex-shrink:0}
.me-foot .me-foot-btn{padding:8px 16px;border-radius:6px;border:1.5px solid #dde3ed;background:transparent;color:#5a6a82;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.me-foot .me-foot-btn:hover{background:#f8fafd}
.me-foot-total{margin-left:auto;display:flex;align-items:center;gap:20px}
.me-foot-item{text-align:right}
.me-foot-item label{font-size:11px;color:#5a6a82;display:block;margin-bottom:2px}
.me-foot-item span{font-size:16px;font-weight:800;color:#1a3a6b}
.me-foot-item.grand span{font-size:22px}
.me-toast{position:fixed;bottom:85px;left:50%;transform:translateX(-50%) translateY(20px);background:#1a3a6b;color:#fff;padding:10px 24px;border-radius:20px;font-size:13px;font-weight:600;opacity:0;transition:all .3s;pointer-events:none;z-index:1110}
.me-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.me-colt{width:80px}.me-colx{width:70px}.me-colc{width:130px}.me-coln{min-width:200px}
.me-colq{width:80px}.me-colu{width:60px}.me-colp{width:100px}.me-cola{width:110px}.me-colz{min-width:120px}.me-cold{width:70px}

/* ════════════════════════════════════════════════════════════════
   📋 案件状況別フォームのドロワー表示
   ═══════════════════════════════════════════════════════════════ */
#anvStatusDrawer{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(900px,96vw);max-height:92vh;z-index:1300;background:#fff;box-shadow:0 24px 72px rgba(0,0,0,.28);display:none;flex-direction:column;border-radius:16px;overflow:hidden}
#anvStatusDrawer.open{display:flex;animation:asdModalIn .28s cubic-bezier(.4,0,.2,1) forwards}
@keyframes asdModalIn{from{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.asdr-overlay{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:1299;display:none}
.asdr-overlay.open{display:block}
.asdr-head{padding:18px 24px;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.asdr-head.s-成約{background:linear-gradient(135deg,#48bb78 0%,#38a169 100%)}
.asdr-head.s-追客中{background:linear-gradient(135deg,#4a6fa5 0%,#3b4c6b 100%)}
.asdr-head.s-問い合わせのみ{background:linear-gradient(135deg,#9f7aea 0%,#7c52d1 100%)}
.asdr-head.s-失注{background:linear-gradient(135deg,#a0aec0 0%,#718096 100%)}
.asdr-title{font-size:16px;font-weight:800;display:flex;align-items:center;gap:10px;letter-spacing:.04em}
.asdr-title-sub{font-size:11px;font-weight:600;opacity:.9;margin-left:4px}
.asdr-close{background:rgba(255,255,255,.2);color:#fff;border:none;width:34px;height:34px;border-radius:8px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}
.asdr-close:hover{background:rgba(255,255,255,.32);transform:rotate(90deg)}
.asdr-body{flex:1;overflow-y:auto;padding:0;-webkit-overflow-scrolling:touch}
.asdr-body .anv-section{margin-bottom:0;border:none;box-shadow:none;border-radius:0}
.asdr-body .anv-section .anv-stitle{display:none}
.asdr-body .anv-section .anv-sec-body{padding:0}
/* フィールドを縦積み、label左+input右はメインフォームと同じ見た目 */
.asdr-body .anv-row{display:flex;flex-direction:column;gap:0;margin-bottom:0;border-bottom:none!important;flex-wrap:nowrap}
.asdr-body .anv-field{display:flex;align-items:center;min-width:100%!important;flex-basis:100%;border-bottom:1px solid #e8edf5;border-right:none!important;padding:0}
.asdr-body .anv-field:last-child{border-bottom:none}
.asdr-body .anv-lbl{width:150px;min-width:150px;padding:11px 14px;font-size:12px;font-weight:700;color:#4a5568;background:#eef2f8;align-self:stretch;display:flex;align-items:center;border-right:1px solid #dde4f0;letter-spacing:.02em}
.asdr-body .anv-ctl{flex:1;padding:8px 14px;min-width:0}
.asdr-body .anv-inp,.asdr-body .anv-sel{width:100%;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;color:#2d3748;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}
.asdr-body .anv-inp:focus,.asdr-body .anv-sel:focus{border-color:#00008F;box-shadow:0 0 0 3px rgba(0,0,143,.1)}
.asdr-body .anv-ta{width:100%;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;color:#2d3748;resize:vertical;outline:none;transition:.15s;box-sizing:border-box;min-height:90px}
.asdr-body .anv-ta:focus{border-color:#00008F;box-shadow:0 0 0 3px rgba(0,0,143,.1)}
.asdr-body .anv-field.full .anv-ctl{width:100%;display:block}
.asdr-foot{padding:14px 24px;border-top:1px solid #edf2f7;background:#f8fafc;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-shrink:0;font-size:12px;color:#718096}
.asdr-foot-btn{padding:9px 18px;background:#fff;color:#4a6fa5;border:1.5px solid #cbd5e0;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:.15s}
.asdr-foot-btn:hover{background:#f7fafc}
.asdr-foot-btn.primary{background:linear-gradient(135deg,#4a6fa5,#3b4c6b);color:#fff;border-color:transparent}
.asdr-foot-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(74,111,165,.35)}
/* 案件状況ピル（ドロワーを再オープンするボタン）*/
.anv-status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#fff;border:1.5px solid #e2e8f0;border-radius:18px;font-size:11px;font-weight:700;cursor:pointer;transition:.15s;margin-left:10px;color:#3b4c6b}
.anv-status-pill:hover{background:#f7fafc;border-color:#4a6fa5;color:#4a6fa5}
.anv-status-pill.s-成約{border-color:#48bb78;color:#38a169}
.anv-status-pill.s-成約:hover{background:#f0fdf4}
.anv-status-pill.s-追客中{border-color:#4a6fa5;color:#3b4c6b}
.anv-status-pill.s-問い合わせのみ{border-color:#9f7aea;color:#7c52d1}
.anv-status-pill.s-問い合わせのみ:hover{background:#faf5ff}
.anv-status-pill.s-失注{border-color:#a0aec0;color:#718096}
.anv-status-pill.s-失注:hover{background:#f7fafc}
@media(max-width:640px){#anvStatusDrawer{width:98vw;max-height:95vh}}


/* ════════════════════════════════════════════════════════════════
   📱 モバイル / タブレット 包括的最適化（追加レイヤ）
   - タッチ向けターゲット拡大 / iOS auto-zoom 防止
   - テーブル横スクロール / フォーム縦積み / モーダル全画面
   ═══════════════════════════════════════════════════════════════ */

/* タッチデバイス全般 */
@media(pointer:coarse){
  /* ボタンの最小タッチターゲットを 44px 以上 */
  .btn,.cdrw-save,.cdrw-cancel,.av-tab,.category-tab,.av-newrow-btn,
  .anv-section .btn-action,.weekly-add-row-btn,.whm-load,.whm-del{
    min-height:44px;padding-top:10px;padding-bottom:10px;
  }
  /* タップ時の青フラッシュを抑制 */
  *{-webkit-tap-highlight-color:rgba(74,111,165,.18)}
  /* スクロール慣性 */
  .av-body,.cust-tbl-wrap,.anken-tbl-wrap,.kpi-main,.weekly-main,
  .anv-body,#recordView,.modal-body,.whm-body{-webkit-overflow-scrolling:touch}
}

/* タブレット縦 / 大きめスマホ ~1024px */
@media(max-width:1024px){
  /* テーブル横スクロール */
  .cust-tbl-wrap,.anken-tbl-wrap{overflow-x:auto}
  .cust-tbl,.anken-tbl{min-width:760px;table-layout:auto}
  .est-tbl,.mit-tbl,.panel-table{min-width:600px}
  .panel-body{overflow-x:auto}
  /* セクション間の余白を適度に圧縮 */
  .anv-body{padding:18px 14px}
  .anv-section{margin-bottom:14px}
  /* レコードビュー */
  #recordView{padding:14px 14px}
}

/* タブレット縦 / スマホ横 ~768px */
@media(max-width:768px){
  /* フォーム行を完全に縦積み */
  .form-row{flex-direction:column;gap:10px}
  .fg{min-width:100%!important;flex-basis:100%}
  /* 案件登録: フィールドを縦積み */
  .anv-inner{display:block!important}
  .anv-section{margin-bottom:12px}
  .anv-row{flex-direction:column}
  .anv-field{min-width:100%!important;flex-basis:100%;border-right:none!important;border-bottom:1px solid #e8edf5}
  .anv-field:last-child{border-bottom:none}
  .anv-lbl{width:120px!important;min-width:120px;font-size:11px;padding:9px 10px}
  .anv-ctl{padding:8px 10px}
  .anv-stitle{padding:10px 14px;font-size:11px}
  .anv-body{padding:12px 10px}
  /* レコードビュー行 */
  .rv-row{grid-template-columns:120px 1fr}
  .rv-lbl{font-size:11px;padding:8px 10px;line-height:1.3}
  .rv-val{font-size:13px;padding:8px 12px;min-height:40px}
  .rv-section-body .rv-row{grid-template-columns:100px 1fr}
  /* テーブル文字サイズ */
  .cust-tbl,.anken-tbl,.est-tbl,.mit-tbl,.panel-table{font-size:12px}
  .cust-tbl th,.cust-tbl td,.anken-tbl th,.anken-tbl td{padding:8px 6px}
  /* ドロワー全幅 */
  .cdrw,#userDrawer,#driveDrawer,#aiBotPanel{width:100vw!important;max-width:100vw!important;border-radius:0!important}
  /* モーダル幅 */
  .whm-card{width:96vw!important;max-width:96vw!important;max-height:88vh}
  /* ヘッダー余白縮小 */
  .header{padding:0 10px}
  .av-header,.kpi-header,.weekly-header{padding:10px 12px;flex-wrap:wrap;gap:6px}
  .av-header .av-title,.kpi-header .kpi-title,.weekly-header .weekly-title{font-size:14px}
  /* iOS auto-zoom 防止: 全input/textareaを16px以上に */
  input[type=text],input[type=number],input[type=email],input[type=password],
  input[type=date],input[type=tel],input[type=search],textarea,select{
    font-size:16px!important;
  }
  /* ただし大量データ表示の小さな入力欄はそのまま（テーブル内など） */
  .est-cell,.weekly-num,.anv-cs-input,.cs-kn-mark{font-size:14px!important}
  /* ボタン群はタッチしやすい間隔に */
  .form-row .btn+.btn,.av-header .btn+.btn{margin-left:6px}
  /* ポータルアプリグリッド */
  #portalView .app-grid{grid-template-columns:repeat(3,1fr)!important;gap:8px}
  /* KPI ダッシュボード */
  .kpi-main{padding:12px 10px}
  .kpi-grid{grid-template-columns:1fr 1fr;gap:10px}
  .kpi-card{padding:14px 12px}
  /* 週次ダッシュボード */
  .weekly-main{padding:12px 10px}
  .weekly-kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .weekly-kpi-card{padding:12px 14px}
  .weekly-kpi-val{font-size:16px}
  .weekly-section-body{overflow-x:auto}
  .weekly-tbl{min-width:560px}
  /* 見積編集 */
  #mitEdit .me-hdr{flex-wrap:wrap;padding:10px 12px;gap:8px}
  #mitEdit .me-title{font-size:14px}
  /* チェックシート: 列幅を圧縮 */
  .cs-kn-lbl{min-width:96px;font-size:11px;padding:6px 8px}
  .cs-kn-inner{min-width:48px;padding:4px 6px}
}

/* スマホ縦 ~480px */
@media(max-width:480px){
  /* ヘッダーをコンパクトに */
  .header{height:48px}
  .header-logo{height:22px}
  .header-date{display:none}
  /* ポータル */
  #portalView .app-grid{grid-template-columns:repeat(3,1fr)!important;gap:6px}
  #portalView .app-card{padding:12px 6px 10px}
  #portalView .app-card-icon{width:54px;height:54px}
  #portalView .app-card-icon img{width:48px;height:48px}
  #portalView .app-card-name{font-size:10.5px;line-height:1.2}
  /* 案件登録: ラベル幅さらに圧縮 */
  .anv-lbl{width:96px!important;min-width:96px;font-size:10.5px;padding:7px 8px}
  /* セクションタイトル */
  .anv-stitle{font-size:10.5px;padding:9px 10px}
  /* レコードビュー */
  .rv-row{grid-template-columns:96px 1fr}
  .rv-lbl{font-size:10.5px;padding:7px 8px}
  .rv-val{font-size:12.5px;padding:7px 10px}
  /* 週次 KPI 1列 */
  .weekly-kpi-grid{grid-template-columns:1fr}
  /* タブバー横スクロール */
  .av-tabs,.category-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .av-tab,.category-tab{flex-shrink:0;font-size:12px;padding:9px 12px}
  /* モーダル: 画面いっぱい */
  .whm-card,#weeklyDiagModal>div:first-child{width:100vw!important;max-width:100vw!important;max-height:94vh;border-radius:14px 14px 0 0}
  /* AI Bot パネル */
  #aiBotPanel{width:100vw;height:80vh}
}

/* iPad 横向き専用最適化 (768~1180px) */
@media(min-width:768px) and (max-width:1180px) and (orientation:landscape){
  /* iPad 横では2カラム維持、ただし余白を控えめに */
  .anv-body{padding:16px 14px}
  .anv-inner{gap:12px}
  /* テーブルは画面幅一杯に */
  .cust-tbl-wrap,.anken-tbl-wrap{margin:0}
  /* ヘッダー圧縮 */
  .header{padding:0 14px;height:54px}
}

/* セーフエリア（iPhone X 系のノッチ対応） */
@supports(padding:max(0px)){
  body{
    padding-left:env(safe-area-inset-left);
    padding-right:env(safe-area-inset-right);
  }
  .header{padding-top:env(safe-area-inset-top)}
}

/* ═══ SPI3 社内適性 AIレポート ═══ */
#spi3View{display:none;position:fixed;inset:0;background:#f5f6f8;z-index:100;overflow:auto}
#spi3View.active{display:block}
/* SPI3 ステップインジケータ */
.spi3-steps{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #e3e6eb;display:flex;align-items:center;padding:8px 20px;overflow-x:auto;scrollbar-width:none;gap:0;box-shadow:0 2px 6px rgba(0,0,0,.05)}
.spi3-steps::-webkit-scrollbar{display:none}
.spi3-step-dot{width:26px;height:26px;border-radius:50%;background:#e2e8f0;color:#9ca3af;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:default;transition:.2s}
.spi3-step-dot.spi3-step-active{background:#4a6fa5;color:#fff;box-shadow:0 2px 8px rgba(74,111,165,.4)}
.spi3-step-conn{width:16px;height:2px;background:#e2e8f0;flex-shrink:0;transition:.2s}
.spi3-step-dot.spi3-step-active+.spi3-step-conn{background:#4a6fa5}
.spi3-main{max-width:1140px;margin:24px auto;padding:0 16px 40px}
.spi3-card{background:#fff;border:1px solid #e3e6eb;border-radius:10px;padding:20px;margin-bottom:18px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.spi3-card h2{margin:0 0 12px;font-size:16px;border-left:4px solid #198754;padding-left:10px;display:flex;align-items:center;gap:8px;color:#1f2937}
.spi3-num{display:inline-block;background:#198754;color:#fff;font-size:11px;border-radius:50%;width:22px;height:22px;line-height:22px;text-align:center;font-weight:700}
.spi3-drop{display:block;border:2px dashed #aab;border-radius:14px;padding:48px 24px;text-align:center;background:#fafbfc;transition:.2s;cursor:pointer}
.spi3-drop.over{border-color:#198754;background:#eaf6ef}
.spi3-drop p{margin:6px 0;font-size:14px;color:#1f2937}
.spi3-drop-big{font-size:18px;font-weight:600;color:#0f5132}
.spi3-status{margin-top:8px;font-size:13px;color:#6b7280}
.spi3-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;font-size:13px}
.spi3-meta div{padding:6px 0;border-bottom:1px dotted #e5e7eb}
.spi3-meta strong{color:#0f5132;margin-right:6px}
.spi3-table{width:100%;border-collapse:collapse;font-size:13px}
.spi3-table th,.spi3-table td{border-bottom:1px solid #e3e6eb;padding:8px 10px;text-align:left;vertical-align:top}
.spi3-table th{background:#f8fafc;font-weight:600;color:#374151}
.spi3-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.spi3-bar{display:inline-block;height:6px;background:#e5e7eb;border-radius:3px;width:100px;vertical-align:middle;margin-left:6px;overflow:hidden}
.spi3-bar>span{display:block;height:100%}
.spi3-rank{display:inline-block;padding:2px 8px;border-radius:10px;color:#fff;font-size:11px;font-weight:600}
.spi3-rank.S{background:#0f5132}.spi3-rank.A{background:#198754}.spi3-rank.B{background:#0d6efd}.spi3-rank.C{background:#6b7280}.spi3-rank.D{background:#b45309}.spi3-rank.E{background:#b91c1c}
.spi3-lv-Excellent{color:#0f5132;font-weight:700}.spi3-lv-VeryGood{color:#198754;font-weight:700}
.spi3-lv-Good{color:#0d6efd;font-weight:700}.spi3-lv-Average{color:#b45309;font-weight:700}.spi3-lv-Poor{color:#b91c1c;font-weight:700}
.spi3-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:760px){.spi3-grid2{grid-template-columns:1fr}}
.spi3-role-card{border:1px solid #e3e6eb;border-radius:8px;padding:12px;margin-bottom:10px;background:#fcfdff;transition:.15s}
.spi3-role-card:hover{border-color:#198754;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.spi3-role-card .top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.spi3-role-card .name{font-weight:600;font-size:14px;color:#1f2937}
.spi3-role-card .desc{font-size:12px;color:#6b7280;margin:4px 0 6px}
.spi3-role-card .reason{font-size:12px;color:#374151;background:#f8fafc;border-radius:6px;padding:6px 8px;margin-top:4px}
.spi3-toolbar{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}
.spi3-btn{background:#198754;color:#fff;border:0;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;font-family:inherit}
.spi3-btn.spi3-sec{background:#6b7280}
.spi3-btn.spi3-ai-btn{background:linear-gradient(135deg,#7c3aed,#a855f7);box-shadow:0 1px 4px rgba(124,58,237,.3)}
.spi3-btn:hover{filter:brightness(1.1)}
.spi3-btn:disabled{opacity:.5;cursor:not-allowed}
.spi3-compact{margin:4px 0;padding-left:18px}
.spi3-compact li{margin-bottom:4px;font-size:13px}
.spi3-pill{display:inline-block;background:#eef2ff;color:#3730a3;border-radius:10px;padding:2px 8px;font-size:11px;margin:2px}
.spi3-pill.neg{background:#fee2e2;color:#991b1b}
.spi3-summary-box{background:#f0fdf4;border-left:4px solid #198754;padding:12px 14px;border-radius:6px;font-size:13.5px;line-height:1.8;color:#1f2937}
.spi3-ai-box{background:linear-gradient(135deg,#faf5ff,#f5f3ff);border-left:4px solid #7c3aed;padding:14px 16px;border-radius:6px;font-size:13.5px;line-height:1.9;color:#1f2937;white-space:pre-wrap}
.spi3-ai-box h3{color:#6d28d9;font-size:13px;margin:10px 0 4px;border-bottom:1px dashed #c4b5fd;padding-bottom:2px}
.spi3-ai-box h3:first-child{margin-top:0}
.spi3-ai-loading{display:inline-block;width:14px;height:14px;border:2px solid #c4b5fd;border-top-color:#7c3aed;border-radius:50%;animation:spi3sp .8s linear infinite;vertical-align:middle;margin-right:6px}
@keyframes spi3sp{to{transform:rotate(360deg)}}
.spi3-hidden{display:none}
#spi3-scores details{margin-top:8px}
#spi3-scores details summary{cursor:pointer;font-size:13px;color:#374151;padding:4px 0}
.spi3-editable{border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;font-size:12px;width:60px;text-align:right;font-family:inherit}
.spi3-radar-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:760px){.spi3-radar-wrap{grid-template-columns:1fr}}
.spi3-radar-wrap > div{text-align:center;background:#fafbfc;border-radius:8px;padding:10px}
.spi3-radar-wrap h3{font-size:13px;color:#0f5132;margin:0 0 6px}
.spi3-persona-axis{display:flex;flex-direction:column;gap:14px}
.spi3-pa-row{display:grid;grid-template-columns:130px 1fr 130px;gap:8px;align-items:center;font-size:13px}
.spi3-pa-bar{position:relative;height:18px;background:#e5e7eb;border-radius:9px;overflow:hidden}
.spi3-pa-bar > div.spi3-pa-dot{position:absolute;top:0;height:100%;background:linear-gradient(90deg,#0d6efd,#7c3aed);width:6px;transform:translateX(-3px);border-radius:3px;box-shadow:0 0 4px rgba(124,58,237,.4)}
.spi3-pa-bar > .spi3-pa-scale{position:absolute;top:50%;left:50%;width:1px;height:60%;background:#cbd5e1;transform:translate(-50%,-50%)}
.spi3-pa-left{text-align:right;color:#0d6efd;font-weight:600}
.spi3-pa-right{text-align:left;color:#7c3aed;font-weight:600}
.spi3-narrative-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:8px}
.spi3-narrative-card{background:#fffefb;border:1px solid #fde68a;border-radius:8px;padding:12px 14px;border-left:4px solid #f59e0b}
.spi3-narrative-card h4{margin:0 0 6px;font-size:12px;color:#92400e;font-weight:700;display:flex;align-items:center;gap:6px}
.spi3-narrative-card p{margin:0;font-size:12.5px;line-height:1.7;color:#1f2937}
.spi3-comm-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-top:4px}
.spi3-comm-card{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:8px 12px;font-size:12.5px;color:#1e40af;display:flex;gap:6px;align-items:start;line-height:1.6}
.spi3-comm-card::before{content:'▸';color:#3b82f6;font-weight:700;flex-shrink:0}
.spi3-iv-card{background:#fdf2f8;border:1px solid #fbcfe8;border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:13px}
.spi3-iv-card .iv-kw{font-weight:700;color:#9d174d;margin-right:8px}
.spi3-iv-card .iv-star{color:#e11d48;font-weight:700;margin-right:4px}
.spi3-iv-card .iv-q{display:block;color:#374151;font-size:12px;margin-top:4px;padding-left:8px;border-left:2px solid #f9a8d4}
.spi3-insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:8px}
.spi3-insight-card{background:#f8fafc;border:1px solid #e3e6eb;border-radius:8px;padding:10px 12px}
.spi3-insight-card h4{margin:0 0 4px;font-size:12px;color:#0f5132;font-weight:600}
.spi3-insight-card p{margin:0;font-size:12.5px;line-height:1.6;color:#374151}
.spi3-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;z-index:200}
.spi3-modal-bg.open{display:flex}
.spi3-modal{background:#fff;border-radius:10px;padding:24px;max-width:480px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,.3)}
.spi3-modal h3{margin:0 0 12px;font-size:16px;color:#0f5132}
.spi3-modal-foot{margin-top:16px;display:flex;gap:8px;justify-content:flex-end}
.spi3-hist-row{display:flex;justify-content:space-between;padding:6px 8px;border-bottom:1px solid #e3e6eb;font-size:13px;cursor:pointer}
.spi3-hist-row:hover{background:#f0fdf4}
.spi3-hist-row .meta-s{color:#6b7280;font-size:11px}
@media print{
  body *{visibility:hidden}
  #appShell{display:block!important}
  #spi3View,#spi3View *{visibility:visible}
  #spi3View{position:absolute;inset:0;background:#fff;overflow:visible;display:block!important}
  #spi3View .av-header,#spi3-file-section,.spi3-toolbar,.spi3-modal-bg,.spi3-steps{display:none!important}
  .spi3-card{break-inside:avoid;box-shadow:none;border:1px solid #cbd5e1;page-break-inside:avoid;margin-bottom:8px;padding:10px}
  .spi3-main{margin:0;padding:0}
  #spi3-scores details{display:block!important}
  #spi3-scores details summary{display:none}
}

/* ════════════════════════════════════════════════════════════
   PORTAL DASHBOARD (2026 リニューアル)
   ════════════════════════════════════════════════════════════ */
:root{--pd-accent:#0017C1;--pd-accent-d:#00119A;--pd-bg:#F4F6F9;--pd-side:#ffffff}

/* ヘッダー：検索・Portalタグ・ベル */
.header-portal-tag{font-size:13px;font-weight:700;color:rgba(60,80,120,.5);letter-spacing:.04em;padding-left:2px}
.header-search{flex:1;max-width:560px;display:flex;align-items:center;gap:9px;
  background:rgba(255,255,255,.92);border:1px solid rgba(60,80,120,.14);border-radius:11px;
  padding:8px 14px;margin:0 24px;color:#9aa4b5;transition:var(--tr)}
.header-search:focus-within{border-color:var(--pd-accent);box-shadow:0 0 0 3px rgba(0,0,143,.13);color:var(--pd-accent)}
.header-search input{flex:1;border:none;background:none;outline:none;font-size:13.5px;color:#2d3748;font-family:inherit}
.header-search input::placeholder{color:#a8b0bf}
.header-search-kbd{font-size:11px;font-weight:700;color:#9aa4b5;background:rgba(60,80,120,.07);
  border-radius:5px;padding:2px 6px;border:1px solid rgba(60,80,120,.1)}
.header-bell{position:relative;background:rgba(255,255,255,.85);border:1px solid rgba(60,80,120,.14);
  color:#5a6b85;width:38px;height:38px;border-radius:10px;cursor:pointer;display:flex;
  align-items:center;justify-content:center;transition:var(--tr)}
.header-bell:hover{background:#fff;color:var(--pd-accent);border-color:rgba(0,0,143,.35)}
.header-bell-dot{position:absolute;top:-5px;right:-5px;background:var(--pd-accent);color:#fff;
  font-size:10px;font-weight:800;min-width:17px;height:17px;border-radius:9px;display:flex;
  align-items:center;justify-content:center;border:2px solid #fff;padding:0 3px}
@media(max-width:760px){.header-search{display:none}}

/* ポータル土台 */
/* sidebar-layout クラスが付いていても新ダッシュボードで上書きする */
#portalView{display:block!important;overflow:visible!important;
  background:var(--pd-bg)!important;min-height:calc(100vh - 64px);width:100%}
#portalView::before,#portalView::after{display:none!important}
/* .pd-wrap が #portalView 全幅を占める */
.pd-wrap{display:flex;align-items:flex-start;min-height:calc(100vh - 64px);width:100%;box-sizing:border-box}

/* サイドバー */
.pd-side{width:218px;min-width:218px;flex-shrink:0;background:var(--pd-side);
  border-right:1px solid #e2e6ee;position:sticky;top:64px;height:calc(100vh - 64px);
  display:flex;flex-direction:column;padding:18px 14px;overflow-y:auto;z-index:5}
.pd-nav{display:flex;flex-direction:column;gap:3px}
.pd-nav-item{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;
  font-size:14px;font-weight:600;color:#5a6577;cursor:pointer;transition:var(--tr);user-select:none}
.pd-nav-item svg{width:19px;height:19px;flex-shrink:0;opacity:.7}
.pd-nav-item:hover{background:#f4f5f8;color:var(--pd-accent)}
.pd-nav-item:hover svg{opacity:1}
.pd-nav-item.active{background:linear-gradient(135deg,rgba(0,0,143,.13),rgba(0,0,143,.06));
  color:var(--pd-accent-d);font-weight:700;box-shadow:inset 3px 0 0 var(--pd-accent)}
.pd-nav-item.active svg{opacity:1;color:var(--pd-accent)}
.pd-side-label{font-size:11px;font-weight:700;color:#9aa4b5;letter-spacing:.06em;
  padding:0 6px 7px;text-transform:uppercase}
.pd-pinned{margin-top:22px}
.pd-pin{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;
  font-size:13px;font-weight:600;color:#5a6577;cursor:pointer;transition:var(--tr)}
.pd-pin:hover{background:#f4f5f8;color:var(--pd-accent)}
.pd-pin-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.pd-sysbox{margin-top:auto;background:#f5f6f9;border:1px solid #e6e9f0;border-radius:12px;
  padding:13px 14px;font-size:12px}
.pd-sys-title{font-size:10.5px;font-weight:800;color:#9aa4b5;letter-spacing:.1em;margin-bottom:7px}
.pd-sys-row{display:flex;align-items:center;gap:7px;font-weight:700;color:#3d4759;margin-bottom:9px}
.pd-sys-ok{width:8px;height:8px;border-radius:50%;background:#36b37e;box-shadow:0 0 0 3px rgba(54,179,126,.18)}
.pd-sys-stat{display:flex;justify-content:space-between;align-items:baseline;color:#7a8499;margin-bottom:5px}
.pd-sys-stat b{color:#2d3748;font-size:14px;font-weight:800}
.pd-sys-links{margin-top:8px;padding-top:9px;border-top:1px solid #e6e9f0;color:#9aa4b5;font-size:11px}
.pd-sys-links a{color:#7a8499;cursor:pointer;transition:var(--tr)}
.pd-sys-links a:hover{color:var(--pd-accent)}

/* メイン領域 */
.pd-main{flex:1;min-width:0;padding:26px 30px 48px}
.pd-sec{display:none}
.pd-sec.active{display:block;animation:pdFade .25s ease}
@keyframes pdFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pd-sec-head{margin-bottom:18px}
.pd-sec-head h2,.pd-apps-head h2{font-size:18px;font-weight:800;color:#2d3748;margin:0}

/* 上段2カラム（ヒーロー＋お知らせ） */
.pd-top-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch;margin-bottom:22px}
.pd-top-row .pd-hero{margin-bottom:0}
.pd-top-row .pd-notice{height:100%;box-sizing:border-box}

/* ── ヒーローカード (デジタル庁スタイル) ── */
.pd-hero{background:#fff;border-radius:var(--r);
  padding:28px 32px;display:flex;justify-content:space-between;align-items:center;
  border:1px solid #D4D8E0;border-left:4px solid var(--pd-accent);
  box-shadow:var(--sh);position:relative;overflow:hidden}
.pd-hero-l{position:relative;z-index:1}
.pd-hero-date{display:inline-block;background:var(--pd-accent);color:#fff;font-size:11px;
  font-weight:700;padding:3px 10px;border-radius:3px;letter-spacing:.04em}
.pd-hero-greet{font-size:26px;font-weight:700;color:#1A1A1C;line-height:1.3;margin:12px 0 6px}
.pd-hero-greet b{color:var(--pd-accent)}
.pd-hero-sub{font-size:13px;color:#595959;margin:0 0 16px;font-weight:400;line-height:1.6}
.pd-hero-btns{display:flex;gap:10px}
.pd-btn-primary{background:var(--pd-accent);color:#fff;border:none;padding:10px 20px;border-radius:4px;
  font-size:14px;font-weight:700;cursor:pointer;transition:var(--tr)}
.pd-btn-primary:hover{background:var(--pd-accent-d)}
.pd-btn-ghost{background:#fff;color:#1A1A1C;border:1px solid #D4D8E0;padding:10px 20px;border-radius:4px;
  font-size:14px;font-weight:700;cursor:pointer;transition:var(--tr)}
.pd-btn-ghost:hover{border-color:var(--pd-accent);color:var(--pd-accent)}
.pd-hero-deco{display:none}

/* ── KPIカード (デジタル庁スタイル) ── */
.pd-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}
.pd-kpi{background:#fff;border-radius:var(--r);padding:16px 18px;
  border:1px solid #D4D8E0;border-left:4px solid #D4D8E0;
  position:relative;overflow:hidden;transition:var(--tr)}
.pd-kpi:hover{box-shadow:var(--sh-h);border-color:#B8BEC8}
.pd-kpi::before{display:none}
.pd-kpi.k-blue{border-left-color:#0017C1}
.pd-kpi.k-orange{border-left-color:#C96000}
.pd-kpi.k-green{border-left-color:#007A3B}
.pd-kpi.k-red{border-left-color:#C02A2A}
.pd-kpi-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pd-kpi-ic{font-size:16px;width:30px;height:30px;border-radius:4px;display:flex;
  align-items:center;justify-content:center}
.pd-kpi.k-blue .pd-kpi-ic{background:rgba(0,23,193,.10);color:#0017C1}
.pd-kpi.k-orange .pd-kpi-ic{background:rgba(201,96,0,.10);color:#C96000}
.pd-kpi.k-green .pd-kpi-ic{background:rgba(0,122,59,.10);color:#007A3B}
.pd-kpi.k-red .pd-kpi-ic{background:rgba(192,42,42,.10);color:#C02A2A}
.pd-kpi-label{font-size:11px;font-weight:700;color:#595959;letter-spacing:.03em;text-transform:none}
.pd-kpi-val{font-size:28px;font-weight:700;color:#1A1A1C;line-height:1.1}
.pd-kpi-val small{font-size:13px;font-weight:400;color:#595959;margin-left:2px}
.pd-kpi-sub{font-size:11px;color:#8A8A8A;font-weight:400;margin-top:4px}

/* 業務アプリ見出し */
.pd-apps-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.pd-apps-meta{font-size:12px;color:#9aa4b5;font-weight:600}

/* アプリグリッド */
.pd-app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pd-app-grid-full{grid-template-columns:repeat(4,1fr)}

/* ── アプリカード (デジタル庁スタイル) ── */
.pd-app{background:#fff;border-radius:var(--r);border:1px solid #D4D8E0;padding:14px 16px;
  display:flex;align-items:center;gap:12px;cursor:pointer;transition:var(--tr);
  box-shadow:none;position:relative;overflow:hidden}
.pd-app::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--pd-tint,var(--pd-accent));opacity:0;transition:var(--tr)}
.pd-app:hover{box-shadow:var(--sh-h);border-color:#B8BEC8}
.pd-app:hover::before{opacity:1}
.pd-app-ic{width:44px;height:44px;border-radius:6px;background:#EEF2FF;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.pd-app-ic img{width:28px;height:28px;object-fit:contain;filter:grayscale(20%) opacity(.85)}
.pd-app-ic svg{width:26px;height:26px}
.pd-app:hover .pd-app-ic{background:#DCE4FF}
.pd-app:hover .pd-app-ic img{filter:none}
.pd-app-tx{min-width:0}
.pd-app-name{font-size:14px;font-weight:700;color:#1A1A1C;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.pd-app-sub{font-size:11px;color:#595959;font-weight:400;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-app-feat .pd-app-ic{background:color-mix(in srgb,var(--pd-tint,#0017C1) 12%,#fff)}
.pd-app-badge{position:absolute;top:8px;right:10px;background:#C02A2A;color:#fff;
  font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;padding:0 5px}

/* ── お知らせパネル (デジタル庁スタイル) ── */
.pd-notice{background:#fff;border-radius:var(--r);border:1px solid #D4D8E0;padding:16px;box-shadow:none}
.pd-notice-head{display:flex;align-items:center;justify-content:space-between;
  font-size:14px;font-weight:700;color:#1A1A1C;margin-bottom:12px;border-bottom:2px solid #0017C1;padding-bottom:8px}
.pd-notice-cnt{background:#EEF2FF;color:var(--pd-accent-d);font-size:11px;
  font-weight:800;min-width:20px;height:20px;border-radius:10px;display:flex;
  align-items:center;justify-content:center}
.pd-notice-list{display:flex;flex-direction:column;gap:13px}
.pd-notice-item{display:flex;gap:10px;align-items:flex-start}
.pd-notice-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}
.pd-notice-dot.c0{background:#e35d6a}
.pd-notice-dot.c1{background:#f6a623}
.pd-notice-dot.c2{background:#36b37e}
.pd-notice-title{font-size:13px;font-weight:700;color:#3d4759}
.pd-notice-meta{font-size:11px;color:#9aa4b5;font-weight:600;margin-top:2px}
.pd-notice-all{display:inline-block;margin-top:14px;font-size:12px;font-weight:700;
  color:var(--pd-accent);cursor:pointer}
.pd-notice-all:hover{text-decoration:underline}
.pd-notice-clickable{border-radius:6px;padding:4px 6px;margin:-4px -6px;transition:background .15s}
.pd-notice-clickable:hover{background:rgba(0,0,143,.05)}
/* ドットの色の意味を入金アラート向けに上書き: c0=info(青), c1=warn(オレンジ), c2=alert(赤) */
.pd-notice-dot.c0{background:#4299e1}
.pd-notice-dot.c1{background:#f6a623}
.pd-notice-dot.c2{background:#e35d6a}

/* アプリタブバー */
.pd-apps-bar{display:flex;align-items:center;gap:16px;margin-bottom:18px;margin-top:4px}
.pd-tab-bar{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid #e8ecf2;
  border-radius:12px;padding:4px;box-shadow:0 2px 8px rgba(40,60,100,.04)}
.pd-tab{background:none;border:none;padding:8px 18px;border-radius:9px;font-size:13.5px;
  font-weight:700;color:#7a8499;cursor:pointer;transition:var(--tr);white-space:nowrap}
.pd-tab:hover{color:#3d4759;background:#f4f5f8}
.pd-tab.active{background:var(--pd-accent);color:#fff;box-shadow:0 3px 10px rgba(0,0,143,.35)}

/* ピン留めボタン（アプリカード内） */
.pd-pin-btn{position:absolute;top:8px;right:8px;background:none;border:none;
  font-size:14px;cursor:pointer;opacity:0;transition:opacity .18s,transform .18s;
  line-height:1;padding:3px;border-radius:6px;color:#9aa4b5}
.pd-app:hover .pd-pin-btn{opacity:.55}
.pd-pin-btn:hover{opacity:1!important;transform:scale(1.15)}
.pd-pin-btn.pinned{opacity:1;filter:none}
.pd-pin-btn.pinned::after{content:'';position:absolute;inset:0;border-radius:6px;
  background:rgba(0,0,143,.12)}

/* ピン留め空状態テキスト */
.pd-pin-empty{font-size:11.5px;color:#b0b8c8;padding:6px 8px;font-weight:600}

/* タスクセクション内の既存パネル */
#pdSec-task .dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
#pdSec-task .dashboard-grid,#pdSec-task .full-panel{margin-top:0}

/* レスポンシブ */
@media(max-width:1180px){
  .pd-top-row{grid-template-columns:1fr}
  .pd-app-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:980px){
  .pd-kpi-row{grid-template-columns:repeat(2,1fr)}
  .pd-app-grid,.pd-app-grid-full{grid-template-columns:repeat(2,1fr)}
  #pdSec-task .dashboard-grid{grid-template-columns:1fr}
  .pd-tab{padding:7px 13px;font-size:13px}
}
@media(max-width:720px){
  .pd-side{width:62px;min-width:62px;padding:14px 7px}
  .pd-nav-item span,.pd-side-label,.pd-pinned,.pd-sysbox{display:none}
  .pd-nav-item{justify-content:center;padding:11px 0}
  .pd-main{padding:18px 14px 40px}
  .pd-hero{padding:22px}
  .pd-hero-greet{font-size:23px}
  .pd-kpi-row{grid-template-columns:1fr 1fr}
  .pd-app-grid,.pd-app-grid-full{grid-template-columns:1fr}
  .pd-tab-bar{flex-wrap:wrap}
  .pd-tab{padding:6px 11px;font-size:12px}
}

/* ── ANKEN DETAIL MODAL ── */
#ankenDetailModal{position:fixed;top:50%;left:50%;transform:translate(-50%,-52%) scale(.95);
  width:min(700px,95vw);max-height:88vh;z-index:1300;background:#fff;
  box-shadow:0 24px 72px rgba(0,0,0,.28);display:flex;flex-direction:column;
  border-radius:16px;overflow:hidden;opacity:0;pointer-events:none;
  transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .25s ease}
#ankenDetailModal.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
.akdm-hd{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 15px;
  border-bottom:3px solid #e2e8f0;background:#fff;flex-shrink:0}
.akdm-hd-left{display:flex;align-items:center;gap:10px;min-width:0}
.akdm-hd-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.akdm-status-tag{font-size:11px;font-weight:800;padding:3px 10px;border-radius:20px;letter-spacing:.03em}
.akdm-title{font-size:16px;font-weight:800;color:#2d3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.akdm-edit-btn{background:#00008F;color:#fff;border:none;padding:7px 16px;border-radius:8px;
  font-size:13px;font-weight:700;cursor:pointer;transition:.15s}
.akdm-edit-btn:hover{background:#000070;transform:translateY(-1px)}
.akdm-close-btn{background:#f5f6f9;color:#6b7280;border:none;width:32px;height:32px;border-radius:8px;
  font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}
.akdm-close-btn:hover{background:#e5e7eb;color:#374151;transform:rotate(90deg)}
.akdm-body{flex:1;overflow-y:auto;padding:0;-webkit-overflow-scrolling:touch}
.akdm-grid{padding:6px 0 20px}
.akdm-sec{margin-bottom:4px}
.akdm-sec-title{font-size:11px;font-weight:800;color:#9aa4b5;letter-spacing:.08em;text-transform:uppercase;
  padding:14px 22px 6px;border-top:1px solid #f1f5f9}
.akdm-sec:first-child .akdm-sec-title{border-top:none;padding-top:16px}
.akdm-fields{display:grid;grid-template-columns:1fr 1fr;gap:0}
.akdm-field{display:flex;flex-direction:column;padding:8px 22px;border-bottom:1px solid #f8fafc}
.akdm-field:nth-child(odd){border-right:1px solid #f1f5f9}
.akdm-lbl{font-size:11px;font-weight:700;color:#9aa4b5;margin-bottom:3px}
.akdm-val{font-size:14px;font-weight:600;color:#2d3748;line-height:1.5;word-break:break-word}
.akdm-folder-row{padding:16px 22px;border-top:1px solid #f1f5f9}
.akdm-folder-link{display:inline-flex;align-items:center;gap:6px;color:#00008F;font-size:13px;
  font-weight:700;text-decoration:none;padding:8px 14px;background:#f0f0ff;border-radius:8px;transition:.15s}
.akdm-folder-link:hover{background:#e0e0ff;transform:translateY(-1px)}
/* 詳細ボタン（一覧行内） */
.c-detail-btn{background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:6px;
  color:#00008F;display:inline-flex;align-items:center;vertical-align:middle;transition:.15s;margin-left:3px;opacity:.75}
.c-detail-btn:hover{background:#e8e8ff;color:#00008F;opacity:1}
.c-detail-btn svg{width:15px;height:15px}
.c-icon-cell{white-space:nowrap;vertical-align:middle;overflow:visible!important}
@media(max-width:640px){
  #ankenDetailModal{width:98vw;max-height:95vh}
  .akdm-fields{grid-template-columns:1fr}
  .akdm-field:nth-child(odd){border-right:none}
}

/* ════════════════════════════════════════════════════════════════
   💬 ACTIVE Chat
   ═══════════════════════════════════════════════════════════════ */
#actChatView{position:fixed;inset:0;z-index:500;display:none;flex-direction:column;overflow:hidden;background:#f4f6fa}
#actChatView.open{display:flex}
#actChatView>.av-header{flex-shrink:0}
.acc-body{flex:1;display:flex;flex-direction:row;overflow:hidden;min-height:0}

/* サイドバー */
.acc-sidebar{width:260px;min-width:260px;background:#1a1d2e;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid rgba(255,255,255,.06)}
.acc-sidebar-top{padding:18px 16px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.acc-workspace-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.acc-workspace{font-size:15px;font-weight:800;color:#e8ecf8;letter-spacing:.02em}
.acc-close-btn{background:rgba(255,255,255,.08);border:none;color:rgba(200,210,240,.6);width:28px;height:28px;border-radius:7px;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;flex-shrink:0;line-height:1}
.acc-close-btn:hover{background:rgba(255,255,255,.18);color:#fff}
.acc-me{font-size:11px;color:rgba(200,210,240,.55);font-weight:600}
.acc-ch-scroll{flex:1;overflow-y:auto;padding:8px 0}
.acc-ch-scroll::-webkit-scrollbar{width:4px}
.acc-ch-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
.acc-section-head{padding:14px 14px 4px;font-size:10.5px;font-weight:800;color:rgba(200,210,240,.45);letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between}
.acc-add-btn{background:none;border:none;color:rgba(200,210,240,.5);font-size:16px;cursor:pointer;padding:0 4px;line-height:1;transition:.15s}
.acc-add-btn:hover{color:#fff}
.acc-ch-item{display:flex;align-items:center;gap:7px;padding:6px 14px;cursor:pointer;border-radius:6px;margin:1px 6px;transition:.12s;color:rgba(200,210,240,.7);font-size:13px}
.acc-ch-item:hover{background:rgba(255,255,255,.08);color:#fff}
.acc-ch-item.acc-ch-active{background:rgba(255,255,255,.12);color:#fff;font-weight:700}
.acc-ch-ic{font-size:13px;color:rgba(200,210,240,.45);width:16px;text-align:center;flex-shrink:0}
.acc-ch-nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-unread{background:#e53e3e;color:#fff;font-size:10px;font-weight:800;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}
.acc-presence-dot{width:8px;height:8px;border-radius:50%;background:rgba(200,210,240,.25);flex-shrink:0;border:1.5px solid rgba(200,210,240,.35)}
.acc-presence-dot.on{background:#48bb78;border-color:#48bb78;box-shadow:0 0 5px rgba(72,187,120,.5)}
.acc-ch-empty{padding:14px;font-size:12px;color:rgba(200,210,240,.4);text-align:center}
.acc-sidebar-footer{padding:10px 12px;border-top:1px solid rgba(255,255,255,.07)}
.acc-online-label{font-size:10px;font-weight:700;color:rgba(200,210,240,.4);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.acc-avatar-sm{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:#fff;font-size:11px;font-weight:800;margin-right:4px;margin-bottom:4px}
.acc-loading{padding:14px;font-size:12px;color:rgba(200,210,240,.4);text-align:center}

/* メインエリア */
.acc-main{flex:1;display:flex;flex-direction:column;min-width:0;background:#fff}
.acc-chat-header{padding:0 20px;height:56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8edf5;background:#fff;box-shadow:0 1px 4px rgba(40,60,100,.06);flex-shrink:0}
.acc-chat-title-wrap{display:flex;align-items:center;gap:8px}
.acc-chat-icon{font-size:16px;color:#4a6fa5;font-weight:800;width:22px;text-align:center}
.acc-chat-title{font-size:15px;font-weight:800;color:#2d3748}
.acc-header-actions{display:flex;gap:6px}
.acc-hdr-btn{background:none;border:1.5px solid #e2e8f0;border-radius:8px;padding:5px 10px;font-size:14px;cursor:pointer;color:#718096;transition:.15s}
.acc-hdr-btn:hover{background:#f0f5ff;border-color:#4a6fa5;color:#4a6fa5}

/* メッセージリスト */
.acc-msg-list{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:0}
.acc-msg-list::-webkit-scrollbar{width:5px}
.acc-msg-list::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:3px}
.acc-msg-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#a0aec0;gap:10px;font-size:14px}
.acc-emp-ic{font-size:48px}
.acc-date-sep{display:flex;align-items:center;gap:10px;margin:12px 0;color:#a0aec0;font-size:11px;font-weight:700}
.acc-date-sep::before,.acc-date-sep::after{content:'';flex:1;height:1px;background:#edf2f7}
.acc-date-sep span{white-space:nowrap;padding:2px 10px;background:#f7fafc;border-radius:10px;border:1px solid #edf2f7}
.acc-msg-sys{display:flex;align-items:flex-start;gap:8px;padding:8px 14px;background:#fffbea;border-left:3px solid #f6c90e;border-radius:8px;margin:6px 0;font-size:12px;color:#744210;line-height:1.5}
.acc-msg-row{display:flex;align-items:flex-start;gap:10px;margin:3px 0;padding:2px 0}
.acc-msg-row.self{flex-direction:row-reverse}
.acc-avatar-wrap{width:32px;flex-shrink:0}
.acc-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:800}
.acc-avatar-ph{width:32px;height:32px}
.acc-msg-body{max-width:72%;display:flex;flex-direction:column;gap:2px}
.acc-msg-row.self .acc-msg-body{align-items:flex-end}
.acc-msg-meta{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.acc-msg-meta b{font-size:12px;font-weight:700;color:#2d3748}
.acc-msg-time{font-size:10.5px;color:#a0aec0;font-weight:500}
.acc-bubble{padding:8px 13px;border-radius:14px;font-size:13.5px;line-height:1.55;color:#2d3748;background:#f0f4fa;border-radius:4px 14px 14px 14px;word-break:break-word;max-width:100%}
.acc-bubble.self{background:#00008F;color:#fff;border-radius:14px 4px 14px 14px}

/* 入力エリア */
.acc-input-area{padding:12px 16px;border-top:1px solid #e8edf5;background:#fff;display:flex;align-items:flex-end;gap:10px;flex-shrink:0}
.acc-input-wrap{flex:1;display:flex;align-items:flex-end;gap:8px;background:#f7fafc;border:1.5px solid #e2e8f0;border-radius:12px;padding:6px 10px;transition:.15s}
.acc-input-wrap:focus-within{border-color:#00008F;box-shadow:0 0 0 3px rgba(0,0,143,.08)}
.acc-msg-input{flex:1;border:none;background:transparent;outline:none;font-size:14px;font-family:inherit;color:#2d3748;resize:none;max-height:120px;line-height:1.5}
.acc-send-btn{width:36px;height:36px;border-radius:9px;background:#00008F;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:.15s;flex-shrink:0}
.acc-send-btn:hover{background:#0000b8;transform:scale(1.05)}

/* モーダル */
.acc-modal-ov{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1400;display:flex;align-items:center;justify-content:center}
.acc-modal{background:#fff;border-radius:14px;width:min(440px,94vw);box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden}
.acc-modal-head{padding:16px 20px;background:linear-gradient(135deg,#00008F,#0000c8);color:#fff;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:800}
.acc-modal-close{background:rgba(255,255,255,.2);border:none;color:#fff;width:30px;height:30px;border-radius:7px;font-size:14px;cursor:pointer;transition:.15s}
.acc-modal-close:hover{background:rgba(255,255,255,.32)}
.acc-modal-body{padding:18px 20px}
.acc-modal-label{font-size:11.5px;font-weight:700;color:#4a5568;margin-bottom:6px;display:block}
.acc-modal-input{width:100%;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;outline:none;box-sizing:border-box;transition:.15s}
.acc-modal-input:focus{border-color:#00008F;box-shadow:0 0 0 3px rgba(0,0,143,.1)}
.acc-modal-btn{margin-top:16px;width:100%;padding:10px;background:#00008F;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s}
.acc-modal-btn:hover{background:#0000b8}
.acc-user-pick-list{display:flex;flex-direction:column;gap:3px;max-height:260px;overflow-y:auto}
.acc-pick-item{display:flex;align-items:center;padding:10px 12px;cursor:pointer;border-radius:8px;font-size:13px;color:#2d3748;transition:.12s;border:1px solid #edf2f7}
.acc-pick-item:hover{background:#f0f5ff;border-color:#4a6fa5}
.acc-member-check-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;padding:4px 0}
.acc-chk-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#2d3748;cursor:pointer;padding:6px 8px;border-radius:6px;transition:.12s}
.acc-chk-label:hover{background:#f7fafc}

/* レスポンシブ */
@media(max-width:640px){
  .acc-sidebar{width:210px;min-width:210px}
  .acc-msg-body{max-width:85%}
}

/* ════════════════════════════════════════════════════════════════
   📱 iOS ホーム画面モード  — Redesigned
   ═══════════════════════════════════════════════════════════════ */

/* ── トグルボタン（標準表示は廃止のため非表示） ── */
.ios-toggle-wrap{display:none!important}
.ios-toggle-wrap-old{padding:10px 12px 8px;border-top:1px solid rgba(0,0,0,.07)}
.ios-toggle-btn{width:100%;padding:8px 10px;background:rgba(74,111,165,.08);border:1.5px solid rgba(74,111,165,.2);border-radius:10px;font-size:11.5px;font-weight:700;color:#4a6fa5;cursor:pointer;font-family:inherit;transition:.18s;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:6px}
.ios-toggle-btn:hover{background:rgba(74,111,165,.16);transform:translateY(-1px)}
body.pd-ios .ios-toggle-btn{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(79,172,254,.45)}

/* ── iOSモード: 既存ホームセクション要素を隠す ── */
body.pd-ios #pdSec-home .pd-top-row,
body.pd-ios #pdSec-home .pd-kpi-row,
body.pd-ios #pdSec-home .pd-apps-bar,
body.pd-ios #pdSec-home #pdHomeApps{display:none!important}
body.pd-ios #iosHomeView{display:block!important}
#iosHomeView{display:none}

/* ── 壁紙背景 ── */
body.pd-ios #portalView{
  background:linear-gradient(160deg,#0f0c29 0%,#1a1a4e 25%,#0d3b6e 55%,#1a3a5c 75%,#0b2240 100%)!important;
  min-height:calc(100vh - 64px)
}
body.pd-ios #portalView::before{background:radial-gradient(circle,rgba(79,172,254,.2) 0%,transparent 70%)!important;opacity:1}
body.pd-ios #portalView::after{background:radial-gradient(circle,rgba(138,79,255,.18) 0%,transparent 70%)!important;opacity:1}
/* ポータルのメイン領域を透明に */
body.pd-ios .pd-main{background:transparent}

/* ── ウィジェット（iPad Smart Stack 風 3枚カード） ── */
.ios-widgets{padding:10px 38px 12px;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}
.ios-widgets>.ios-widget{flex:1 1 300px;max-width:480px;min-width:260px}
@media(max-width:640px){.ios-widgets{padding:10px 16px}.ios-widgets>.ios-widget{flex:1 1 100%;max-width:100%}}

/* 時計ウィジェット */
.ios-widget-clock{background:rgba(255,255,255,.1);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:20px;padding:18px 20px;border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 32px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:space-between}
.ios-clock-time{font-size:38px;font-weight:200;color:#1a1a1a;letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums}
.ios-clock-right{text-align:right}
.ios-clock-date{font-size:13px;font-weight:600;color:rgba(0,0,0,.8);letter-spacing:.02em}
.ios-clock-greet{font-size:11px;color:rgba(0,0,0,.55);margin-top:3px;font-weight:500}

/* KPIウィジェット */
.ios-widget-kpi{background:rgba(255,255,255,.1);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:20px;padding:14px 18px;border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 32px rgba(0,0,0,.2)}
.ios-widget-label{font-size:10px;font-weight:800;color:rgba(0,0,0,.5);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px}
.ios-kpi-row{display:flex;gap:0}
.ios-kpi-card{flex:1;text-align:center}
.ios-kpi-val{font-size:24px;font-weight:700;color:#1a1a1a;line-height:1}
.ios-kpi-lbl{font-size:10px;color:rgba(0,0,0,.55);margin-top:4px;font-weight:600}
.ios-kpi-divider{width:1px;background:rgba(0,0,0,.12);align-self:stretch;margin:4px 0}

/* ── アプリグリッド（ページング対応：横スワイプ可能なフレックススクローラー） ── */
.ios-grid{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;width:100%;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;-webkit-user-select:none;user-select:none}
.ios-grid::-webkit-scrollbar{display:none;width:0;height:0}
.ios-page{flex:0 0 100%;display:grid;grid-template-columns:repeat(6,1fr);gap:30px 14px;padding:18px 38px;scroll-snap-align:start;box-sizing:border-box;max-width:1100px;margin:0 auto;width:100%;align-content:start}
@media(min-width:1100px){.ios-page{grid-template-columns:repeat(7,1fr);gap:32px 16px}}
@media(max-width:760px){.ios-page{grid-template-columns:repeat(5,1fr);gap:26px 10px;padding:16px 22px}}
@media(max-width:540px){.ios-page{grid-template-columns:repeat(4,1fr);gap:22px 6px;padding:14px 16px}}
@media(max-width:380px){.ios-page{grid-template-columns:repeat(3,1fr);gap:18px 4px}}

/* ── 検索アクティブ時：ページング無効・フラット表示 ── */
body.ios-searching .ios-grid{overflow-x:hidden;display:grid;grid-template-columns:repeat(6,1fr);gap:30px 14px;padding:18px 38px;max-width:1100px;margin:0 auto}
body.ios-searching .ios-page{display:contents}
body.ios-searching .ios-page>.ios-icon-wrap{display:flex}
body.ios-searching .ios-page>.ios-icon-wrap.hidden-by-search{display:none!important}
body.ios-searching .ios-widgets,
body.ios-searching #iosPageDots,
body.ios-searching .ios-dock{display:none}
body.ios-searching #iosSearchNoRes{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:rgba(255,255,255,.6);text-align:center;grid-column:1/-1}
#iosSearchNoRes{display:none}
.ios-search-noresults-icon{font-size:42px;opacity:.5;margin-bottom:12px}
.ios-search-noresults-text{font-size:15px;font-weight:500}

/* ── ページ切替アニメーション ── */
.ios-grid.ios-grid-instant{scroll-behavior:auto}

/* ── スワイプ中のエッジハイライト ── */
.ios-grid.ios-drag-edge-left::before,
.ios-grid.ios-drag-edge-right::before{content:'';position:absolute;top:0;bottom:0;width:50px;pointer-events:none;z-index:5;background:linear-gradient(90deg,rgba(255,255,255,.18),transparent);animation:iosEdgePulse .6s ease-in-out infinite alternate}
.ios-grid.ios-drag-edge-left::before{left:0}
.ios-grid.ios-drag-edge-right::before{right:0;background:linear-gradient(270deg,rgba(255,255,255,.18),transparent)}
@keyframes iosEdgePulse{from{opacity:.5}to{opacity:1}}
.ios-grid{position:relative}

/* ── アイコンラッパー ── */
@keyframes iosIconIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
.ios-icon-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;position:relative;touch-action:none;-webkit-tap-highlight-color:transparent;animation:iosIconIn .32s cubic-bezier(.34,1.56,.64,1) both}
.ios-icon-wrap:nth-child(1){animation-delay:.02s}.ios-icon-wrap:nth-child(2){animation-delay:.04s}
.ios-icon-wrap:nth-child(3){animation-delay:.06s}.ios-icon-wrap:nth-child(4){animation-delay:.08s}
.ios-icon-wrap:nth-child(5){animation-delay:.10s}.ios-icon-wrap:nth-child(6){animation-delay:.12s}
.ios-icon-wrap:nth-child(7){animation-delay:.14s}.ios-icon-wrap:nth-child(8){animation-delay:.16s}
.ios-icon-wrap:nth-child(9){animation-delay:.18s}.ios-icon-wrap:nth-child(10){animation-delay:.20s}
.ios-icon-wrap:nth-child(11){animation-delay:.22s}.ios-icon-wrap:nth-child(12){animation-delay:.24s}
.ios-icon-wrap:nth-child(n+13){animation-delay:.26s}
.ios-icon-wrap:active .ios-icon{transform:scale(.88);transition:transform .08s}

/* ── アイコン本体（プロ仕様：微細なベベル+ハイライト） ── */
.ios-icon{width:72px;height:72px;border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;position:relative;box-shadow:0 10px 22px -10px rgba(0,0,0,.55),0 2px 4px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(0,0,0,.22),inset 0 0 0 .5px rgba(255,255,255,.04)!important}
.ios-icon::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(255,255,255,.18) 0%,transparent 60%);pointer-events:none;border-radius:inherit;z-index:1}
.ios-icon::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,rgba(255,255,255,0) 30%,rgba(0,0,0,.12) 100%);pointer-events:none;border-radius:inherit;z-index:1}
.ios-icon img{width:42px;height:42px;object-fit:contain;filter:brightness(0) invert(1);opacity:.94;position:relative;z-index:2}
.ios-icon svg.ios-glyph{width:40px;height:40px;position:relative;z-index:2;display:block}
.ios-icon svg.ios-glyph path,.ios-icon svg.ios-glyph rect,.ios-icon svg.ios-glyph circle,.ios-icon svg.ios-glyph polyline,.ios-icon svg.ios-glyph line{stroke:rgba(255,255,255,.94);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;vector-effect:non-scaling-stroke}
.ios-icon svg.ios-glyph .fill{fill:rgba(255,255,255,.94);stroke:none}

/* ── アイコンラベル（タイポ洗練） ── */
.ios-icon-label{font-size:11.5px;font-weight:500;color:rgba(255,255,255,.78);text-align:center;max-width:92px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.4);letter-spacing:.015em;margin-top:4px;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif}

/* ── バッジ ── */
.ios-badge{position:absolute;top:-5px;right:-3px;min-width:19px;height:19px;padding:0 5px;background:#ff3b30;color:#fff;font-size:10px;font-weight:800;border-radius:10px;display:flex;align-items:center;justify-content:center;pointer-events:none;box-shadow:0 2px 6px rgba(255,59,48,.5);border:2px solid rgba(255,255,255,.9);box-sizing:border-box;z-index:2}

/* ── ジグルモード ── */
@keyframes iosJiggle{
  0%{transform:rotate(-1.5deg) translate(-0.5px,0)}
  25%{transform:rotate(0deg) translate(0,0.5px)}
  50%{transform:rotate(1.5deg) translate(0.5px,0)}
  75%{transform:rotate(0deg) translate(0,-0.5px)}
  100%{transform:rotate(-1.5deg) translate(-0.5px,0)}
}
body.pd-ios-edit .ios-icon-wrap{animation:iosJiggle .28s ease-in-out infinite!important}
body.pd-ios-edit .ios-icon-wrap:nth-child(2n){animation-delay:.05s!important}
body.pd-ios-edit .ios-icon-wrap:nth-child(3n){animation-delay:.1s!important}
body.pd-ios-edit .ios-icon-wrap:nth-child(4n){animation-delay:.15s!important}

/* ── ドラッグ ── */
.ios-icon-wrap.ios-dragging{opacity:.15}
/* 中心ドロップ：フォルダ作成（強いハイライト） */
.ios-icon-wrap.ios-drag-over .ios-icon{box-shadow:0 0 0 3px rgba(var(--ios-accent-rgb,10,132,255),.85),0 0 30px rgba(var(--ios-accent-rgb,10,132,255),.5),0 8px 18px rgba(0,0,0,.5)!important;transform:scale(1.18)!important}
/* 近接ドロップ：並び替え（控えめなインジケーター） */
.ios-icon-wrap.ios-drag-near .ios-icon{box-shadow:0 0 0 2px rgba(255,255,255,.55),0 6px 16px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.16)!important;transform:scale(1.06) translateX(-3px)!important;transition:transform .18s,box-shadow .18s}
#iosDragGhost{position:fixed;z-index:9999;pointer-events:none;transition:none;transform:scale(1.06);opacity:.95;filter:drop-shadow(0 18px 38px rgba(0,0,0,.55)) drop-shadow(0 4px 10px rgba(0,0,0,.3))}

/* ════════════════════════════════════════════
   🔒 ロック画面
   ════════════════════════════════════════════ */
.ios-lock-screen{
  position:fixed;inset:0;z-index:800;
  display:flex;flex-direction:column;
  background:
    radial-gradient(ellipse 1300px 1000px at 8% 5%,rgba(135,165,235,.55) 0%,transparent 60%),
    radial-gradient(ellipse 1100px 900px at 95% 95%,rgba(100,125,200,.5) 0%,transparent 62%),
    radial-gradient(ellipse 800px 600px at 50% 40%,rgba(80,100,160,.25) 0%,transparent 60%),
    linear-gradient(170deg,#1A2440 0%,#27315A 40%,#22315A 70%,#1A2440 100%);
  color:#fff;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  opacity:0;
  transition:opacity .45s cubic-bezier(.32,.72,0,1),transform .55s cubic-bezier(.32,.72,0,1);
  overflow:hidden;
  user-select:none;-webkit-user-select:none;
  cursor:pointer;
}
.ios-lock-screen.show{opacity:1}
.ios-lock-screen.unlocking{opacity:0;transform:translateY(-100%);pointer-events:none}
.ios-lock-screen::before{
  content:'';position:absolute;inset:-100px;
  background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.04) 0%,transparent 50%);
  pointer-events:none;
}

/* ステータスバー（ロック画面用） */
.ios-lock-status-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 30px 0;height:32px;
  font-family:inherit;
  flex-shrink:0;
}
.ios-lock-status-time{font-size:14px;font-weight:600;color:rgba(255,255,255,.85);letter-spacing:-.1px;font-variant-numeric:tabular-nums}
.ios-lock-status-icons{display:flex;align-items:center;gap:6px;opacity:.75}

/* メインコンテンツ */
.ios-lock-content{
  flex:1;
  display:flex;flex-direction:column;
  align-items:center;
  padding:30px 28px 18px;
  max-width:540px;margin:0 auto;width:100%;
  box-sizing:border-box;
  overflow:hidden;
  position:relative;
}

/* 巨大時計 */
.ios-lock-clock{
  text-align:center;
  margin-top:5vh;
  margin-bottom:5vh;
  animation:iosLockClockIn .8s cubic-bezier(.32,.72,0,1) both;
}
@keyframes iosLockClockIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
.ios-lock-time{
  font-size:clamp(72px,12vw,124px);
  font-weight:200;
  letter-spacing:-5px;
  line-height:.92;
  font-variant-numeric:tabular-nums;
  font-feature-settings:'tnum';
  color:#fff;
  text-shadow:0 6px 28px rgba(0,0,0,.35),0 2px 4px rgba(0,0,0,.2);
}
.ios-lock-date{
  font-size:clamp(13px,1.6vw,18px);
  font-weight:500;
  color:rgba(255,255,255,.92);
  margin-top:6px;
  letter-spacing:.02em;
  text-shadow:0 2px 10px rgba(0,0,0,.3);
}
.ios-lock-greet{
  font-size:13px;font-weight:500;
  color:rgba(255,255,255,.65);
  margin-top:18px;
  letter-spacing:.02em;
  text-shadow:0 2px 10px rgba(0,0,0,.3);
}
.ios-lock-greet b{color:rgba(255,255,255,.92);font-weight:600}

/* ── ロック画面ウィジェット（iPad iOS 16+ 仕様） ── */
.ios-lock-widgets{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:8px;
  width:100%;
  margin:0 0 18px;
  animation:iosLockWidgetsIn .8s .08s cubic-bezier(.32,.72,0,1) both;
}
@keyframes iosLockWidgetsIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.ios-lock-widget{
  display:flex;align-items:center;gap:9px;
  padding:10px 12px;
  background:rgba(255,255,255,.13);
  backdrop-filter:blur(40px) saturate(160%);
  -webkit-backdrop-filter:blur(40px) saturate(160%);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  cursor:pointer;
  transition:.18s;
}
.ios-lock-widget:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.ios-lock-widget-icon{
  width:30px;height:30px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  box-shadow:0 3px 8px -3px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.12);
}
.ios-lock-widget-icon svg.ios-glyph{width:17px;height:17px}
.ios-lock-widget-info{flex:1;min-width:0}
.ios-lock-widget-num{
  font-size:18px;font-weight:600;color:rgba(255,255,255,.97);
  line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.3px;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
}
.ios-lock-widget-lbl{
  font-size:10px;color:rgba(255,255,255,.6);
  margin-top:2px;letter-spacing:.04em;font-weight:500;
}

/* 通知 */
.ios-lock-notif-section{
  width:100%;
  flex:1;
  overflow-y:auto;
  scrollbar-width:none;
  animation:iosLockNotifIn .9s .15s cubic-bezier(.32,.72,0,1) both;
}
@keyframes iosLockNotifIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.ios-lock-notif-section::-webkit-scrollbar{display:none}
.ios-lock-notif-header{
  font-size:11px;font-weight:700;
  color:rgba(255,255,255,.65);
  letter-spacing:.16em;text-transform:uppercase;
  margin:0 4px 10px;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}
.ios-lock-notif-list{display:flex;flex-direction:column;gap:8px}
.ios-lock-notif-card{
  display:flex;align-items:flex-start;gap:11px;
  padding:13px;
  background:rgba(255,255,255,.13);
  backdrop-filter:blur(40px) saturate(160%);
  -webkit-backdrop-filter:blur(40px) saturate(160%);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  cursor:pointer;
  transition:.18s;
}
.ios-lock-notif-card:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.ios-lock-notif-icon{
  width:32px;height:32px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  box-shadow:0 3px 8px -3px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.12);
}
.ios-lock-notif-icon svg.ios-glyph{width:19px;height:19px}
.ios-lock-notif-body{flex:1;min-width:0}
.ios-lock-notif-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.ios-lock-notif-app{font-size:11px;font-weight:600;color:rgba(255,255,255,.7);letter-spacing:.04em;text-transform:uppercase}
.ios-lock-notif-time{font-size:10.5px;color:rgba(255,255,255,.55);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:500}
.ios-lock-notif-title{font-size:13px;font-weight:600;color:rgba(255,255,255,.98);letter-spacing:.005em;line-height:1.3}
.ios-lock-notif-text{font-size:12px;color:rgba(255,255,255,.78);line-height:1.35;margin-top:1px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* 下部：スワイプヒント + ホームインジケーター（クリックで解除可能） */
.ios-lock-bottom{
  display:flex;flex-direction:column;align-items:center;gap:14px;
  margin-top:24px;
  padding:8px 20px 6px;
  flex-shrink:0;
  cursor:pointer;
  border-radius:18px;
  transition:background .15s;
}
.ios-lock-bottom:hover{background:rgba(255,255,255,.04)}
.ios-lock-screen{cursor:default}
.ios-lock-swipe-hint{
  display:flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:500;
  color:rgba(255,255,255,.55);
  letter-spacing:.04em;
  animation:iosLockHint 2.2s ease-in-out infinite;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}
.ios-lock-swipe-hint svg{opacity:.7}
@keyframes iosLockHint{
  0%,100%{opacity:.5;transform:translateY(2px)}
  50%{opacity:1;transform:translateY(-4px)}
}
.ios-lock-indicator-bar{
  width:134px;height:5px;
  background:rgba(255,255,255,.55);
  border-radius:3px;
  box-shadow:0 1px 2px rgba(0,0,0,.2);
}

/* ════════════════════════════════════════════
   ☀️ Today View（ウィジェット集約画面）
   ════════════════════════════════════════════ */
.ios-today-view{
  position:fixed;inset:0;z-index:660;
  background:
    radial-gradient(ellipse 1100px 800px at 5% 0%,rgba(115,145,215,.5) 0%,transparent 58%),
    radial-gradient(ellipse 900px 700px at 100% 100%,rgba(80,100,160,.4) 0%,transparent 60%),
    linear-gradient(170deg,#1A2138 0%,#252E48 40%,#222A45 70%,#1A2138 100%);
  display:flex;flex-direction:column;
  opacity:0;transform:translateX(-30px);
  transition:opacity .35s cubic-bezier(.32,.72,0,1),transform .42s cubic-bezier(.32,.72,0,1);
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  overflow:hidden;
}
.ios-today-view.open{opacity:1;transform:translateX(0)}

.ios-today-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 30px 14px;
  border-bottom:1px solid rgba(255,255,255,.05);
  flex-shrink:0;
}
.ios-today-back{
  display:flex;align-items:center;gap:5px;
  background:none;border:none;
  color:rgba(135,170,235,1);
  font-size:14px;font-weight:500;
  cursor:pointer;font-family:inherit;
  padding:6px 8px;border-radius:8px;
  transition:.15s;
  letter-spacing:.005em;
}
.ios-today-back:hover{background:rgba(255,255,255,.06)}
.ios-today-title{font-size:18px;font-weight:600;color:rgba(255,255,255,.95);letter-spacing:-.2px}

.ios-today-content{
  flex:1;overflow-y:auto;
  padding:18px 30px 28px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;
}
.ios-today-content::-webkit-scrollbar{width:5px}
.ios-today-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px}

/* ヒーローセクション（巨大時計） */
.ios-today-hero{
  text-align:center;
  padding:22px 0 30px;
  border-bottom:1px solid rgba(255,255,255,.05);
  margin-bottom:24px;
}
.ios-today-hero-time{
  font-size:clamp(56px,8vw,84px);
  font-weight:200;
  letter-spacing:-3px;
  line-height:.95;
  color:rgba(255,255,255,.98);
  font-variant-numeric:tabular-nums;
}
.ios-today-hero-date{
  font-size:14.5px;font-weight:500;
  color:rgba(255,255,255,.7);
  margin-top:8px;
  letter-spacing:.02em;
}
.ios-today-hero-greet{
  font-size:12px;font-weight:500;
  color:rgba(255,255,255,.5);
  margin-top:6px;
  letter-spacing:.02em;
}

/* KPI スタッツグリッド（6 セル） */
.ios-today-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:10px;
  margin-bottom:24px;
}
.ios-today-stat{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.06);
  border-radius:16px;
  padding:18px 14px;
  text-align:center;
  cursor:pointer;
  transition:.18s;
}
.ios-today-stat:hover{background:rgba(255,255,255,.09);transform:translateY(-2px);border-color:rgba(255,255,255,.12)}
.ios-today-stat-num{font-size:30px;font-weight:300;color:rgba(255,255,255,.96);letter-spacing:-.8px;line-height:1;font-variant-numeric:tabular-nums}
.ios-today-stat-lbl{font-size:11px;color:rgba(255,255,255,.55);margin-top:8px;letter-spacing:.04em;font-weight:500}

/* 詳細カードグリッド */
.ios-today-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:14px;
}
.ios-today-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.06);
  border-radius:18px;
  padding:18px 18px 16px;
  min-height:200px;
}
.ios-today-card-head{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:14px;
}
.ios-today-card-title{font-size:13.5px;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:.01em}
.ios-today-card-count{font-size:11px;font-weight:500;color:rgba(255,255,255,.45);letter-spacing:.04em;font-variant-numeric:tabular-nums}

/* 本日のタスク */
.ios-today-tasks{display:flex;flex-direction:column;gap:8px}
.ios-today-task{
  display:flex;align-items:center;gap:11px;
  padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.ios-today-task:last-child{border-bottom:none}
.ios-today-task-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,170,0,.85);
  flex-shrink:0;
}
.ios-today-task-text{flex:1;font-size:12.5px;color:rgba(255,255,255,.88);letter-spacing:.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ios-today-task-due{font-size:10.5px;color:rgba(255,255,255,.4);font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.ios-today-empty{font-size:12.5px;color:rgba(255,255,255,.4);text-align:center;padding:32px 0;font-weight:500;letter-spacing:.01em}

/* アクティビティ */
.ios-today-activity{display:flex;flex-direction:column;gap:0}
.ios-today-act{
  display:flex;align-items:center;gap:11px;
  padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.ios-today-act:last-child{border-bottom:none}
.ios-today-act-text{flex:1;font-size:12px;color:rgba(255,255,255,.85);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.005em}
.ios-today-act-time{font-size:10.5px;color:rgba(255,255,255,.4);font-weight:500;font-variant-numeric:tabular-nums}

@media(max-width:760px){
  .ios-today-head{padding:14px 18px 12px}
  .ios-today-content{padding:14px 18px 24px}
  .ios-today-stats{grid-template-columns:repeat(2,1fr)}
  .ios-today-grid{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════
   🔔 通知センター
   ════════════════════════════════════════════ */
.ios-nc-backdrop{position:fixed;inset:0;z-index:580;background:rgba(0,0,0,.35);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;transition:opacity .35s}
.ios-nc-backdrop.open{opacity:1;pointer-events:auto}
.ios-nc{
  position:fixed;top:0;left:50%;transform:translateX(-50%) translateY(-110%);
  width:min(440px,calc(100vw - 28px));z-index:620;
  background:rgba(28,32,44,.85);
  backdrop-filter:blur(60px) saturate(160%);
  -webkit-backdrop-filter:blur(60px) saturate(160%);
  border:1px solid rgba(255,255,255,.07);
  border-top:none;
  border-radius:0 0 24px 24px;
  padding:36px 18px 20px;
  box-shadow:0 30px 60px rgba(0,0,0,.55);
  transition:transform .45s cubic-bezier(.32,.72,0,1);
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  max-height:calc(100vh - 40px);
  overflow-y:auto;
}
.ios-nc.open{transform:translateX(-50%) translateY(0)}
.ios-nc-head{text-align:center;padding:14px 0 18px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:14px}
.ios-nc-time{font-size:44px;font-weight:200;color:rgba(255,255,255,.97);letter-spacing:-2px;line-height:1;font-variant-numeric:tabular-nums}
.ios-nc-date{font-size:13px;font-weight:500;color:rgba(255,255,255,.7);margin-top:6px;letter-spacing:.02em}
.ios-nc-greet{font-size:11px;color:rgba(255,255,255,.45);margin-top:6px;letter-spacing:.04em}
.ios-nc-section-row{display:flex;align-items:center;justify-content:space-between;padding:0 4px;margin-bottom:10px}
.ios-nc-section-title{font-size:11px;font-weight:700;color:rgba(255,255,255,.6);letter-spacing:.14em;text-transform:uppercase}
.ios-nc-section-count{font-size:11px;color:rgba(255,255,255,.4);font-weight:500;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.ios-nc-list{display:flex;flex-direction:column;gap:8px}
.ios-nc-card{
  display:flex;align-items:flex-start;gap:11px;
  padding:12px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.04);
  border-radius:14px;
  cursor:pointer;
  transition:.16s;
}
.ios-nc-card:hover{background:rgba(255,255,255,.09);transform:translateY(-1px)}
.ios-nc-card:active{transform:scale(.985)}
.ios-nc-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 3px 8px -3px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.12)}
.ios-nc-icon svg.ios-glyph{width:20px;height:20px}
.ios-nc-content{flex:1;min-width:0}
.ios-nc-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.ios-nc-app-name{font-size:11px;font-weight:600;color:rgba(0,0,0,.55);letter-spacing:.02em;text-transform:uppercase}
.ios-nc-card-time{font-size:10.5px;color:rgba(0,0,0,.4);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:500}
.ios-nc-card-title{font-size:13px;font-weight:600;color:rgba(0,0,0,.85);margin-bottom:1px;letter-spacing:.005em}
.ios-nc-card-text{font-size:12px;color:rgba(0,0,0,.6);line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;letter-spacing:.005em}
.ios-nc-empty{padding:40px 20px;text-align:center;color:rgba(0,0,0,.5);font-size:13px;display:flex;flex-direction:column;align-items:center;gap:12px}
.ios-nc-empty svg{stroke:rgba(0,0,0,.4)}

/* スクロールバー非表示 */
.ios-nc::-webkit-scrollbar{width:0;display:none}

/* ════════════════════════════════════════════
   🔄 App スイッチャー
   ════════════════════════════════════════════ */
.ios-as-backdrop{position:fixed;inset:0;z-index:610;background:rgba(0,0,0,.55);backdrop-filter:blur(30px) saturate(140%);-webkit-backdrop-filter:blur(30px) saturate(140%);opacity:0;pointer-events:none;transition:opacity .3s}
.ios-as-backdrop.open{opacity:1;pointer-events:auto}
.ios-as{
  position:fixed;inset:0;z-index:640;
  display:flex;flex-direction:column;
  padding:50px 40px 80px;
  opacity:0;pointer-events:none;
  transition:opacity .3s;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
}
.ios-as.open{opacity:1;pointer-events:auto}
.ios-as-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 8px}
.ios-as-title{font-size:24px;font-weight:600;color:rgba(255,255,255,.95);letter-spacing:-.3px}
.ios-as-close{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.8);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:.18s;
  font-family:inherit;
}
.ios-as-close:hover{background:rgba(255,255,255,.18);color:#fff}
.ios-as-cards{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;
  flex:1;overflow-y:auto;
  align-content:start;
  padding:4px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;
}
.ios-as-cards::-webkit-scrollbar{width:6px}
.ios-as-cards::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
.ios-as-card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  overflow:hidden;
  cursor:pointer;
  transition:transform .2s cubic-bezier(.32,.72,0,1),box-shadow .2s;
  height:200px;display:flex;flex-direction:column;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  animation:iosAsCardIn .35s cubic-bezier(.34,1.4,.64,1) both;
}
@keyframes iosAsCardIn{from{opacity:0;transform:translateY(20px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
.ios-as-card:nth-child(1){animation-delay:.02s}
.ios-as-card:nth-child(2){animation-delay:.05s}
.ios-as-card:nth-child(3){animation-delay:.08s}
.ios-as-card:nth-child(4){animation-delay:.11s}
.ios-as-card:nth-child(5){animation-delay:.14s}
.ios-as-card:nth-child(n+6){animation-delay:.17s}
.ios-as-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 24px 50px rgba(0,0,0,.5)}
.ios-as-card:active{transform:scale(.98)}
.ios-as-card-bar{
  display:flex;align-items:center;gap:9px;
  padding:12px 14px;
  background:rgba(0,0,0,.18);
  border-bottom:1px solid rgba(255,255,255,.04);
}
.ios-as-card-icon-mini{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ios-as-card-icon-mini svg.ios-glyph{width:13px;height:13px}
.ios-as-card-name{font-size:13px;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ios-as-card-preview{flex:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.03) 0%,transparent 60%)}
.ios-as-card-big-icon{width:72px;height:72px;border-radius:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 32px -8px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.18)}
.ios-as-card-big-icon svg.ios-glyph{width:40px;height:40px}
.ios-as-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:rgba(255,255,255,.55);font-size:14px;display:flex;flex-direction:column;align-items:center;gap:12px}
.ios-as-empty-sub{font-size:12px;color:rgba(255,255,255,.4);margin-top:-4px}

/* ════════════════════════════════════════════
   📋 コンテキストメニュー（長押し）
   ════════════════════════════════════════════ */
.ios-ctx-menu{
  position:fixed;z-index:700;
  min-width:220px;max-width:280px;
  background:rgba(38,44,58,.92);
  backdrop-filter:blur(40px) saturate(160%);
  -webkit-backdrop-filter:blur(40px) saturate(160%);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:6px;
  box-shadow:0 20px 50px rgba(0,0,0,.55),0 4px 12px rgba(0,0,0,.35);
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  opacity:0;transform:scale(.92) translateY(-4px);
  transition:opacity .18s,transform .22s cubic-bezier(.32,.72,0,1);
  transform-origin:top center;
  overflow:hidden;
}
.ios-ctx-menu.open{opacity:1;transform:scale(1) translateY(0)}
.ios-ctx-title{font-size:11px;font-weight:600;color:rgba(255,255,255,.5);letter-spacing:.08em;text-transform:uppercase;padding:8px 12px 6px}
.ios-ctx-sep{height:1px;background:rgba(255,255,255,.08);margin:4px 4px}
.ios-ctx-item{
  width:100%;
  background:transparent;border:none;
  display:flex;align-items:center;gap:11px;
  padding:11px 12px;border-radius:8px;
  color:rgba(255,255,255,.94);
  font-size:13.5px;font-weight:500;
  font-family:inherit;letter-spacing:.005em;
  cursor:pointer;transition:.12s;
  text-align:left;
}
.ios-ctx-item:hover{background:rgba(255,255,255,.08)}
.ios-ctx-item:active{background:rgba(255,255,255,.14);transform:scale(.985)}
.ios-ctx-item svg{flex-shrink:0;opacity:.72}
.ios-ctx-item.primary{color:#7DB9FF}
.ios-ctx-item.primary svg{opacity:.95;color:#7DB9FF}
.ios-ctx-item.danger{color:#FF8B85}
.ios-ctx-item.danger svg{color:#FF8B85}

/* ── Dock がドロップターゲットの時 ── */
.ios-dock.ios-dock-drop-target .ios-dock-inner{background:rgba(255,255,255,.16)!important;border-color:rgba(255,255,255,.22)!important;box-shadow:0 0 0 2px rgba(255,255,255,.18),0 20px 44px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.16)!important;transition:all .2s}

/* ── 編集モード時はグリッド全体でドラッグ優先（スクロール抑止） ── */
body.pd-ios-edit .ios-grid{touch-action:none}
body.pd-ios-edit .ios-page{touch-action:none}
body.pd-ios-edit .ios-dock{touch-action:none}

/* ── ×削除ボタン（非表示：ビジネス仕様では誤削除リスクを排除） ── */
.ios-del-btn{display:none!important}

/* ── フォルダアイコン ── */
.ios-folder-canvas{width:78px;height:78px;border-radius:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:10px;background:rgba(255,255,255,.14);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 22px -6px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden}
.ios-folder-canvas::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,transparent 50%);pointer-events:none}
.ios-folder-cell{border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);position:relative}
.ios-folder-cell img{width:80%;height:80%;object-fit:contain;filter:brightness(0) invert(1);opacity:.9}
.ios-folder-cell svg.ios-glyph{width:78%;height:78%}
.ios-folder-cell svg.ios-glyph path,.ios-folder-cell svg.ios-glyph rect,.ios-folder-cell svg.ios-glyph circle{stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;fill:none}
.ios-folder-cell svg.ios-glyph .fill{fill:#fff;stroke:none}

/* ── ドック：洗練されたフロート ── */
/* ▼▼ Dock 非表示（ユーザー要望 2026-06-04：現時点で不要）
   復活させる場合は次の2行を削除するだけ。ドック内アプリはホームのグリッドからも開ける。 ▼▼ */
.ios-dock{display:none!important}
@media(max-width:900px){#portalView{padding-bottom:0!important}}
/* ▲▲ Dock 非表示ここまで ▲▲ */
.ios-dock{position:sticky;bottom:0;padding:10px 22px 14px;z-index:10;display:flex;justify-content:center}
.ios-dock-inner{background:rgba(255,255,255,.08);backdrop-filter:blur(50px) saturate(160%);-webkit-backdrop-filter:blur(50px) saturate(160%);border-radius:26px;padding:10px 14px;display:flex;gap:14px;align-items:center;border:1px solid rgba(255,255,255,.08);box-shadow:0 16px 36px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.1);max-width:920px;min-height:80px;transition:all .2s}
.ios-dock-item{display:flex;flex-direction:column;align-items:center;gap:0;cursor:pointer;-webkit-tap-highlight-color:transparent;width:64px;transition:transform .18s;touch-action:none}
.ios-dock-item:hover{transform:translateY(-2px)}
.ios-dock-item:active .ios-icon{transform:scale(.88)}
.ios-dock-item .ios-icon-label{display:none}
.ios-dock-inner .ios-icon{width:60px;height:60px;border-radius:14px}
.ios-dock-inner .ios-icon svg.ios-glyph{width:32px;height:32px}
/* Dock 区切り線（最近使ったアプリの前） */
.ios-dock-divider{
  width:1px;height:40px;
  background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.18) 30%,rgba(255,255,255,.18) 70%,transparent 100%);
  margin:0 6px;flex-shrink:0;
}
/* Dock の最近アプリ：透明度をやや下げる */
.ios-dock-recent{opacity:.88;transition:.18s;width:64px;display:flex;flex-direction:column;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ios-dock-recent:hover{opacity:1;transform:translateY(-2px)}
.ios-dock-recent .ios-icon{width:60px;height:60px;border-radius:14px}
.ios-dock-recent .ios-icon svg.ios-glyph{width:32px;height:32px}
@media(max-width:760px){.ios-dock-recent{width:54px}.ios-dock-recent .ios-icon{width:54px;height:54px;border-radius:13px}.ios-dock-recent .ios-icon svg.ios-glyph{width:28px;height:28px}}

/* 編集モードヒント（初回のみ表示） */
.ios-edit-hint{
  position:fixed;bottom:200px;left:50%;transform:translateX(-50%);
  z-index:570;
  display:flex;align-items:center;gap:12px;
  padding:14px 18px;
  background:rgba(22,24,32,.92);
  backdrop-filter:blur(40px) saturate(160%);
  -webkit-backdrop-filter:blur(40px) saturate(160%);
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.5);
  max-width:380px;
  color:#fff;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  animation:iosEditHintIn .4s cubic-bezier(.32,.72,0,1) both;
}
@keyframes iosEditHintIn{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.ios-edit-hint-icon{
  width:36px;height:36px;border-radius:9px;
  background:rgba(var(--ios-accent-rgb,10,132,255),.18);
  border:1px solid rgba(var(--ios-accent-rgb,10,132,255),.3);
  color:var(--ios-accent-light,#5AC8FA);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.ios-edit-hint-text{flex:1;font-size:12.5px;line-height:1.4;letter-spacing:.01em}
.ios-edit-hint-text b{font-weight:600;color:rgba(255,255,255,.95);display:block;margin-bottom:2px}
.ios-edit-hint-text span{color:rgba(255,255,255,.65);font-size:11px}
.ios-edit-hint-close{
  background:none;border:none;color:rgba(255,255,255,.5);
  font-size:18px;cursor:pointer;padding:4px 8px;
  font-family:inherit;line-height:1;
}
.ios-edit-hint-close:hover{color:#fff}

/* 編集モード時：Dock も jiggle */
body.pd-ios-edit .ios-dock-item{animation:iosJiggle .28s ease-in-out infinite!important}
body.pd-ios-edit .ios-dock-item:nth-child(2n){animation-delay:.05s!important}
body.pd-ios-edit .ios-dock-item:nth-child(3n){animation-delay:.1s!important}
@media(max-width:760px){.ios-dock-inner{padding:8px 10px;gap:10px}.ios-dock-item{width:54px}.ios-dock-inner .ios-icon{width:54px;height:54px;border-radius:13px}.ios-dock-inner .ios-icon svg.ios-glyph{width:28px;height:28px}}

/* ── 編集モードバー（iPadOS 標準：右上「完了」/左上「リセット」） ── */
.ios-edit-bar{
  position:fixed;top:46px;left:0;right:0;
  z-index:560;
  opacity:0;pointer-events:none;
  transform:translateY(-14px);
  transition:opacity .32s cubic-bezier(.32,.72,0,1),transform .35s cubic-bezier(.32,.72,0,1);
  display:flex;justify-content:space-between;align-items:center;
  padding:0 24px;pointer-events:none;
}
body.pd-ios-edit .ios-edit-bar{opacity:1;pointer-events:none;transform:translateY(0)}
body.pd-ios-edit .ios-edit-bar button{pointer-events:auto}

/* ラッパは flex を継承するだけのコンテナに */
.ios-edit-bar-wrap{display:contents}

.ios-reset-btn,
.ios-done-btn{
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  letter-spacing:.005em;
  cursor:pointer;
  transition:transform .14s ease,background .18s,filter .18s,box-shadow .18s;
  -webkit-tap-highlight-color:transparent;
  display:inline-flex;align-items:center;justify-content:center;
}

/* リセット（左上）— ガラス調・赤テキスト */
.ios-reset-btn{
  background:rgba(255,255,255,.13);
  backdrop-filter:blur(28px) saturate(180%);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  color:#FF453A;
  border:1px solid rgba(255,255,255,.16);
  border-radius:980px;
  padding:8px 18px;
  font-size:13.5px;font-weight:600;
  box-shadow:0 6px 18px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.18);
}
.ios-reset-btn:hover{background:rgba(255,255,255,.2);color:#FF6B62}
.ios-reset-btn:active{transform:scale(.95)}

/* 完了（右上）— iOS Blue グラデーション */
.ios-done-btn{
  background:linear-gradient(180deg,#5AC8FA 0%,#0A84FF 100%);
  color:#fff;
  border:1px solid rgba(255,255,255,.22);
  border-radius:980px;
  padding:9px 26px;
  font-size:14.5px;font-weight:700;
  box-shadow:0 8px 22px rgba(10,132,255,.45),0 2px 4px rgba(10,132,255,.25),inset 0 1px 0 rgba(255,255,255,.35);
}
.ios-done-btn:hover{filter:brightness(1.07);box-shadow:0 10px 26px rgba(10,132,255,.55),0 2px 4px rgba(10,132,255,.3),inset 0 1px 0 rgba(255,255,255,.4)}
.ios-done-btn:active{transform:scale(.95);box-shadow:0 4px 12px rgba(10,132,255,.4),inset 0 1px 0 rgba(255,255,255,.3)}

/* 編集モード時は背景を少しぼかして集中させる（iPadOS と同じ） */
body.pd-ios-edit #portalView::before{
  content:'';position:fixed;inset:0;z-index:1;pointer-events:none;
  background:rgba(0,0,0,.18);
  backdrop-filter:saturate(.9);
  animation:iosEditBgIn .25s ease forwards;
}
@keyframes iosEditBgIn{from{opacity:0}to{opacity:1}}

/* ── フォルダポップアップ ── */
.ios-folder-popup{position:fixed;inset:0;z-index:600;display:flex;align-items:center;justify-content:center;background:rgba(8,12,28,.65);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.ios-folder-inner{background:rgba(255,255,255,.12);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border-radius:26px;padding:22px 20px;width:min(440px,92vw);box-shadow:0 32px 80px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);max-height:80vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.ios-folder-inner::-webkit-scrollbar{width:5px}
.ios-folder-inner::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
.ios-folder-name{font-size:16px;font-weight:700;color:#fff;text-align:center;width:100%;border:none;background:transparent;outline:none;margin-bottom:16px;font-family:inherit;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.ios-folder-name:focus{background:rgba(255,255,255,.08);border-radius:10px;padding:4px 10px}
.ios-folder-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:4px 0}
@media(max-width:540px){.ios-folder-grid{grid-template-columns:repeat(3,1fr);gap:12px}}
.ios-folder-grid .ios-icon-label{color:rgba(255,255,255,.9)!important}
.ios-folder-close-btn{margin-top:18px;width:100%;padding:13px;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:14px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s;backdrop-filter:blur(10px)}
.ios-folder-close-btn:hover{background:rgba(255,255,255,.25)}

/* ── ステータスバー ── */
.ios-status-bar{height:44px;display:flex;align-items:center;justify-content:space-between;padding:6px 20px 0;position:sticky;top:0;z-index:50;pointer-events:none;flex-shrink:0}
.ios-status-time{font-size:15px;font-weight:700;color:#fff;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.ios-status-icons{display:flex;align-items:center;gap:7px}

/* ── ホームインジケーター ── */
.ios-home-indicator{height:34px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ios-home-indicator::after{content:'';width:134px;height:5px;background:rgba(255,255,255,.35);border-radius:3px;display:block}

/* ── フォルダ解除ボタン ── */
.ios-folder-dissolve-btn{margin-top:10px;width:100%;padding:12px;background:rgba(255,80,60,.18);color:rgba(255,140,120,1);border:1px solid rgba(255,80,60,.3);border-radius:14px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s;box-sizing:border-box}
.ios-folder-dissolve-btn:hover{background:rgba(255,80,60,.32)}

/* ── 旧バージョンのバー無効化（新しい上部レイアウトに統合） ── */

/* ── 壁紙：デフォルト「Gov」（デジタル庁スタイル・ライトブルー） ── */
body.pd-ios #portalView{
  background:
    radial-gradient(ellipse 1800px 1200px at 0% 0%,rgba(0,23,193,.08) 0%,transparent 60%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(0,23,193,.05) 0%,transparent 60%),
    linear-gradient(170deg,#F0F3FA 0%,#EAF0FF 40%,#EEF2FF 70%,#F2F5FF 100%)!important;
  position:relative;
}
/* iOS ホーム上のテキスト・アイコンを暗色に（白背景なので） */
body.pd-ios #iosGrid .ios-icon-label,
body.pd-ios #iosDockEl .ios-icon-label{color:#1A1A1C!important;text-shadow:none!important}
/* 壁紙バリアント：Dawn（旧デフォルト：深めのブルー） */
body.pd-ios.wall-dawn #portalView{
  background:
    radial-gradient(ellipse 1500px 1100px at 0% 0%,rgba(140,175,235,.50) 0%,transparent 58%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(110,140,200,.42) 0%,transparent 62%),
    radial-gradient(ellipse 800px 800px at 55% 45%,rgba(95,120,180,.18) 0%,transparent 65%),
    linear-gradient(170deg,#283556 0%,#36456F 35%,#33426A 65%,#283556 100%)!important;
}
body.pd-ios.wall-dawn #iosGrid .ios-icon-label,
body.pd-ios.wall-dawn #iosDockEl .ios-icon-label{color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.5)!important}
/* 壁紙バリアント：Steel（中間グレー・ニュートラル） */
body.pd-ios.wall-steel #portalView{
  background:
    radial-gradient(ellipse 1400px 1000px at 0% 0%,rgba(160,170,185,.32) 0%,transparent 58%),
    radial-gradient(ellipse 1000px 800px at 100% 100%,rgba(120,130,150,.28) 0%,transparent 62%),
    linear-gradient(170deg,#363943 0%,#414550 35%,#3F434E 65%,#363943 100%)!important;
}
/* 壁紙バリアント：Midnight（深い夜） */
body.pd-ios.wall-midnight #portalView{
  background:
    radial-gradient(ellipse 1400px 1000px at 0% 0%,rgba(85,108,150,.32) 0%,transparent 55%),
    radial-gradient(ellipse 1000px 800px at 100% 100%,rgba(45,58,85,.28) 0%,transparent 60%),
    linear-gradient(170deg,#0F1322 0%,#161B2C 35%,#141A2A 65%,#11151F 100%)!important;
}
/* 壁紙バリアント：Aurora（緑紫オーロラ） */
body.pd-ios.wall-aurora #portalView{
  background:
    radial-gradient(ellipse 1400px 1000px at 0% 0%,rgba(125,180,205,.42) 0%,transparent 55%),
    radial-gradient(ellipse 1100px 900px at 100% 100%,rgba(155,120,200,.32) 0%,transparent 62%),
    radial-gradient(ellipse 800px 800px at 50% 50%,rgba(105,165,180,.16) 0%,transparent 65%),
    linear-gradient(170deg,#1F3447 0%,#27424E 35%,#352F4F 65%,#22273E 100%)!important;
}
/* ── 明るい壁紙テーマ（6種追加） ── */
body.pd-ios.wall-pearl #portalView{
  background:
    radial-gradient(ellipse 1500px 1100px at 0% 0%,rgba(225,235,250,.5) 0%,transparent 60%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(205,220,240,.42) 0%,transparent 62%),
    linear-gradient(170deg,#4D6485 0%,#6B85AB 35%,#6883A9 65%,#4A6182 100%)!important;
}
body.pd-ios.wall-sky #portalView{
  background:
    radial-gradient(ellipse 1500px 1100px at 0% 0%,rgba(180,215,250,.6) 0%,transparent 60%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(140,185,235,.5) 0%,transparent 62%),
    linear-gradient(170deg,#5478A5 0%,#7BA0CC 35%,#779DC9 65%,#5176A3 100%)!important;
}
body.pd-ios.wall-mint #portalView{
  background:
    radial-gradient(ellipse 1500px 1100px at 0% 0%,rgba(190,230,215,.55) 0%,transparent 60%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(160,210,195,.45) 0%,transparent 62%),
    linear-gradient(170deg,#4B7E72 0%,#6FA597 35%,#6CA294 65%,#487B6F 100%)!important;
}
body.pd-ios.wall-lavender #portalView{
  background:
    radial-gradient(ellipse 1500px 1100px at 0% 0%,rgba(220,210,245,.55) 0%,transparent 60%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(200,190,230,.45) 0%,transparent 62%),
    linear-gradient(170deg,#6B5F8C 0%,#8E80B0 35%,#897CAB 65%,#685C89 100%)!important;
}
body.pd-ios.wall-sand #portalView{
  background:
    radial-gradient(ellipse 1500px 1100px at 0% 0%,rgba(245,230,200,.55) 0%,transparent 60%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(220,200,170,.45) 0%,transparent 62%),
    linear-gradient(170deg,#8B7553 0%,#B09674 35%,#AC9170 65%,#88724F 100%)!important;
}
body.pd-ios.wall-rose #portalView{
  background:
    radial-gradient(ellipse 1500px 1100px at 0% 0%,rgba(250,210,215,.55) 0%,transparent 60%),
    radial-gradient(ellipse 1200px 900px at 100% 100%,rgba(225,180,190,.45) 0%,transparent 62%),
    linear-gradient(170deg,#8B5868 0%,#B17C8B 35%,#AE7886 65%,#885564 100%)!important;
}

/* 壁紙バリアント：Custom（ユーザー指定の2色＋角度） */
body.pd-ios.wall-custom #portalView{
  background:
    radial-gradient(ellipse 1400px 1000px at 0% 0%,rgba(255,255,255,.08) 0%,transparent 60%),
    radial-gradient(ellipse 1000px 800px at 100% 100%,rgba(0,0,0,.18) 0%,transparent 62%),
    linear-gradient(var(--ios-wall-angle,170deg),var(--ios-wall-c1,#283556) 0%,var(--ios-wall-c2,#36456F) 100%)!important;
}
/* カスタム壁紙：単色モード */
body.pd-ios.wall-custom.wall-custom-solid #portalView{
  background:
    radial-gradient(ellipse 1400px 1000px at 0% 0%,rgba(255,255,255,.05) 0%,transparent 65%),
    var(--ios-wall-c1,#283556)!important;
}

/* ════════════════════════════════════════════
   🎨 アクセントカラー（CSS変数でシステム全体に適用）
   ════════════════════════════════════════════ */
:root{
  --ios-accent:#0A84FF;
  --ios-accent-light:#5AC8FA;
  --ios-accent-dark:#0066CC;
  --ios-accent-rgb:10,132,255;
}

/* 既存要素にアクセント反映 */
.ios-done-btn{background:linear-gradient(180deg,var(--ios-accent-light) 0%,var(--ios-accent) 100%)!important;box-shadow:0 8px 22px rgba(var(--ios-accent-rgb),.45),0 2px 4px rgba(var(--ios-accent-rgb),.25),inset 0 1px 0 rgba(255,255,255,.35)!important}
.ios-done-btn:hover{box-shadow:0 10px 26px rgba(var(--ios-accent-rgb),.55),0 2px 4px rgba(var(--ios-accent-rgb),.3),inset 0 1px 0 rgba(255,255,255,.4)!important}
.ios-today-back{color:var(--ios-accent-light)!important}
.ios-ctx-item.primary,.ios-ctx-item.primary svg{color:var(--ios-accent-light)!important}
.ios-search-bar:focus-within{border-color:rgba(var(--ios-accent-rgb),.4)!important}

/* ════════════════════════════════════════════
   🎨 カスタム壁紙ビルダー
   ════════════════════════════════════════════ */
.ios-cc-customwall{padding:14px 16px;display:none}
.ios-cc-customwall.open{display:block}
.ios-cc-cw-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.ios-cc-cw-row:last-child{margin-bottom:0}
.ios-cc-cw-label{font-size:11px;font-weight:600;color:rgba(255,255,255,.65);letter-spacing:.06em;text-transform:uppercase;min-width:60px}
.ios-cc-cw-color{
  width:42px;height:30px;border-radius:8px;
  border:1.5px solid rgba(255,255,255,.18);
  cursor:pointer;
  -webkit-appearance:none;appearance:none;
  background:transparent;padding:0;overflow:hidden;
  box-shadow:0 2px 6px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.12);
}
.ios-cc-cw-color::-webkit-color-swatch{border:none;border-radius:6px}
.ios-cc-cw-color::-moz-color-swatch{border:none;border-radius:6px}
.ios-cc-cw-slider{
  flex:1;-webkit-appearance:none;appearance:none;
  height:4px;border-radius:2px;
  background:rgba(255,255,255,.18);
  outline:none;
}
.ios-cc-cw-slider::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:18px;height:18px;border-radius:50%;
  background:#fff;cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,.3);
  border:1px solid rgba(255,255,255,.3);
}
.ios-cc-cw-slider::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;background:#fff;cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.3);
}
.ios-cc-cw-value{font-size:11px;color:rgba(255,255,255,.55);font-variant-numeric:tabular-nums;min-width:36px;text-align:right;font-weight:500}
.ios-cc-cw-preview{
  width:100%;height:60px;border-radius:10px;
  border:1px solid rgba(255,255,255,.08);
  margin-bottom:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}

/* ════════════════════════════════════════════
   🎨 アクセントカラーピッカー
   ════════════════════════════════════════════ */
.ios-cc-accent{padding:11px 13px}
.ios-cc-accent-grid{display:flex;gap:7px;flex-wrap:wrap;justify-content:space-between;padding:2px 0}
.ios-cc-accent-swatch{
  width:32px;height:32px;border-radius:50%;
  border:2px solid transparent;
  cursor:pointer;padding:0;
  position:relative;
  transition:transform .15s,box-shadow .15s;
  flex-shrink:0;
}
.ios-cc-accent-swatch:hover{transform:scale(1.1)}
.ios-cc-accent-swatch.active{
  border-color:rgba(255,255,255,.95);
  box-shadow:0 0 0 2px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.35);
}
.ios-cc-accent-swatch.active::after{
  content:'';position:absolute;inset:5px;
  border-radius:50%;
  background:inherit;
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.ac-blue{background:linear-gradient(180deg,#5AC8FA,#0A84FF)}
.ac-purple{background:linear-gradient(180deg,#A78BFA,#5E5CE6)}
.ac-pink{background:linear-gradient(180deg,#FF6482,#FF375F)}
.ac-red{background:linear-gradient(180deg,#FF6961,#FF453A)}
.ac-orange{background:linear-gradient(180deg,#FFB340,#FF9500)}
.ac-yellow{background:linear-gradient(180deg,#FFE066,#FFCC00)}
.ac-green{background:linear-gradient(180deg,#5BE36E,#30D158)}
.ac-teal{background:linear-gradient(180deg,#64D2FF,#0A84FF)}
.ac-graphite{background:linear-gradient(180deg,#AEAEB2,#636366)}

/* ════════════════════════════════════════════
   🎯 フォーカスモード
   ════════════════════════════════════════════ */
.ios-cc-focus{padding:11px 13px}
.ios-cc-focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.ios-cc-focus-btn{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.05);
  border-radius:11px;padding:9px 6px;
  display:flex;flex-direction:column;align-items:center;gap:5px;
  color:rgba(255,255,255,.75);
  font-family:inherit;cursor:pointer;
  transition:.18s;
}
.ios-cc-focus-btn svg{opacity:.75}
.ios-cc-focus-btn span{font-size:11px;font-weight:500;letter-spacing:.02em}
.ios-cc-focus-btn:hover{background:rgba(255,255,255,.08)}
.ios-cc-focus-btn.active{background:rgba(var(--ios-accent-rgb),.18);border-color:rgba(var(--ios-accent-rgb),.4);color:#fff}
.ios-cc-focus-btn.active svg{opacity:1;color:var(--ios-accent-light)}

/* 集中モードのステータスバーバッジ */
.ios-status-focus{
  display:none;align-items:center;gap:5px;
  padding:2px 8px;border-radius:10px;
  background:rgba(var(--ios-accent-rgb),.16);
  border:1px solid rgba(var(--ios-accent-rgb),.3);
  font-size:10.5px;font-weight:600;
  color:var(--ios-accent-light);
  letter-spacing:.04em;
}
body.focus-work .ios-status-focus,
body.focus-deep .ios-status-focus,
body.focus-off .ios-status-focus{display:inline-flex}
.ios-status-focus-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--ios-accent-light);
  box-shadow:0 0 8px var(--ios-accent-light);
  animation:focusPulse 1.8s ease-in-out infinite;
}
@keyframes focusPulse{0%,100%{opacity:.6}50%{opacity:1}}

/* 集中モード中はホーム画面が引き締まる */
body.focus-deep .ios-grid{filter:saturate(.85)}
body.focus-off #portalView::before{
  content:'';position:fixed;inset:0;z-index:1;pointer-events:none;
  background:rgba(0,0,0,.25);
}

/* ════════════════════════════════════════════
   📝 Quick Note（クイックメモ）
   ════════════════════════════════════════════ */
.ios-qn-trigger{
  position:fixed;bottom:130px;right:22px;z-index:520;
  width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(30px) saturate(160%);
  -webkit-backdrop-filter:blur(30px) saturate(160%);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.85);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.18);
  transition:transform .18s,background .18s;
}
.ios-qn-trigger:hover{transform:translateY(-2px) scale(1.04);background:rgba(255,255,255,.18)}
.ios-qn-trigger:active{transform:scale(.94)}
body.ios-searching .ios-qn-trigger,body.pd-ios-edit .ios-qn-trigger{display:none}

.ios-qn-panel{
  position:fixed;bottom:130px;right:22px;z-index:540;
  width:340px;max-width:calc(100vw - 44px);
  max-height:60vh;
  background:rgba(255,247,210,.97);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-radius:14px;
  box-shadow:0 26px 60px rgba(0,0,0,.45),0 6px 16px rgba(0,0,0,.25);
  border:1px solid rgba(0,0,0,.06);
  display:none;flex-direction:column;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  transform:translateY(20px) scale(.96);opacity:0;
  transition:transform .3s cubic-bezier(.32,.72,0,1),opacity .25s;
  transform-origin:bottom right;
  color:#222;
}
.ios-qn-panel.open{display:flex;transform:translateY(0) scale(1);opacity:1}
.ios-qn-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 14px;
  border-bottom:1px solid rgba(0,0,0,.08);
  background:rgba(255,232,170,.7);
  border-radius:14px 14px 0 0;
}
.ios-qn-title{font-size:12.5px;font-weight:600;color:#5e4a18;letter-spacing:.02em;display:flex;align-items:center;gap:6px}
.ios-qn-actions{display:flex;gap:4px}
.ios-qn-btn{
  width:22px;height:22px;border-radius:50%;
  background:transparent;border:none;
  color:#7d6a3a;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:.15s;font-family:inherit;
}
.ios-qn-btn:hover{background:rgba(0,0,0,.06);color:#222}
.ios-qn-textarea{
  flex:1;width:100%;min-height:200px;max-height:50vh;
  background:transparent;border:none;outline:none;
  padding:12px 14px 14px;
  font-family:'SF Pro Text',-apple-system,sans-serif;
  font-size:13.5px;line-height:1.5;
  color:#2a2310;
  resize:none;
}
.ios-qn-textarea::placeholder{color:rgba(80,60,30,.4)}
.ios-qn-foot{
  padding:6px 14px 10px;
  border-top:1px solid rgba(0,0,0,.06);
  font-size:10px;color:rgba(80,60,30,.5);
  font-weight:500;letter-spacing:.04em;
  display:flex;justify-content:space-between;align-items:center;
}
body.pd-ios #portalView::before{display:none!important}
body.pd-ios #portalView::after{
  content:''!important;position:fixed!important;inset:0!important;pointer-events:none;z-index:1;
  background-image:
    linear-gradient(rgba(255,255,255,.011) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.011) 1px,transparent 1px)!important;
  background-size:54px 54px!important;
  background-position:0 0!important;
  opacity:1!important;
  display:block!important;
  width:auto!important;height:auto!important;border-radius:0!important;
}
body.pd-ios #pdSec-home{position:relative}
body.pd-ios #iosHomeView{position:relative;z-index:2}
body.pd-ios #iosHomeView::before{display:none}
body.pd-ios #iosHomeView>*{position:relative;z-index:2}

/* ── iPad検索バー（Spotlight） ── */
.ios-search-wrap{padding:6px 38px 4px;max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}
@media(max-width:760px){.ios-search-wrap{padding:6px 22px 4px}}
.ios-search-bar{display:flex;align-items:center;gap:8px;height:42px;padding:0 16px;background:rgba(255,255,255,.13);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid rgba(255,255,255,.14);border-radius:14px;box-shadow:0 4px 16px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.12);cursor:text;transition:.18s}
.ios-search-bar:hover{background:rgba(255,255,255,.18)}
.ios-search-bar svg{flex-shrink:0;opacity:.7}
.ios-search-input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-size:14px;font-family:inherit;letter-spacing:.01em}
.ios-search-input::placeholder{color:rgba(255,255,255,.55)}

/* ── ページインジケータードット ── */
.ios-page-dots{display:flex;justify-content:center;align-items:center;gap:7px;padding:14px 0 6px}
.ios-page-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);transition:.2s}
.ios-page-dot.active{background:rgba(255,255,255,.95)}

/* ── ステータスバー（プロ仕様：会社名/ユーザー名表示） ── */
.ios-status-bar{height:30px;padding:10px 28px 0;justify-content:space-between}
.ios-status-time{font-size:13px;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;letter-spacing:-.05px;color:rgba(255,255,255,.78);font-variant-numeric:tabular-nums;min-width:48px}
.ios-status-center{
  display:flex;align-items:center;gap:7px;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  font-size:11.5px;font-weight:500;
  color:rgba(255,255,255,.55);
  letter-spacing:.04em;
  flex:1;justify-content:center;
}
.ios-status-company{color:rgba(255,255,255,.82);font-weight:600;letter-spacing:.06em}
.ios-status-dot{color:rgba(255,255,255,.3);font-weight:400}
.ios-status-user{color:rgba(255,255,255,.55);font-weight:500}
.ios-status-bar svg{filter:none;opacity:.55}
.ios-status-icons{min-width:60px;justify-content:flex-end;display:flex}
.ios-status-icons:hover svg{opacity:.8}
@media(max-width:540px){
  .ios-status-center{display:none}
}

/* ── 時計ウィジェット改善（より上品に） ── */
.ios-widget-clock{padding:22px 26px;border-radius:22px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 36px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.12)}
.ios-clock-time{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;font-weight:100;font-size:54px;letter-spacing:-2px;line-height:.95}
.ios-clock-date{font-size:14px;font-weight:600;letter-spacing:.02em}
.ios-clock-greet{font-size:12px;font-weight:500;margin-top:4px}

/* ── KPIウィジェット改善 ── */
.ios-widget-kpi{padding:18px 22px;border-radius:22px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 36px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:space-between}
.ios-widget-label{font-size:10.5px;letter-spacing:.14em;margin-bottom:12px}
.ios-kpi-val{font-size:30px;font-weight:700;letter-spacing:-.5px;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif}
.ios-kpi-lbl{font-size:11px;font-weight:600}
.ios-kpi-divider{margin:8px 4px;width:1px}

/* ── 削除ボタンを上品に ── */
.ios-del-btn{top:-6px;left:-4px;width:22px;height:22px;background:rgba(40,40,55,.95);border:1.5px solid rgba(255,255,255,.95);color:#fff;font-size:11px;box-shadow:0 2px 8px rgba(0,0,0,.4)}

/* ── バッジを iPad 風に ── */
.ios-badge{box-shadow:0 2px 8px rgba(255,59,48,.5);border:2px solid rgba(0,0,0,.05);background:linear-gradient(180deg,#ff5247,#ff3b30)}

/* ── ドラッグ中の影 ── */
#iosDragGhost{filter:drop-shadow(0 18px 38px rgba(0,0,0,.55)) drop-shadow(0 4px 10px rgba(0,0,0,.3))}
#iosDragGhost .ios-icon{transform:scale(1.08)}

/* ── ホームインジケーター位置 ── */
.ios-home-indicator{height:24px;padding-bottom:6px}

/* ════════════════════════════════════════════
   📱 iPad フル没入モード v4
   ════════════════════════════════════════════ */
body.pd-ios{overflow:hidden!important}
body.pd-ios .pd-side{display:none!important}
body.pd-ios .pd-wrap{padding:0!important;margin:0!important;display:block!important;max-width:none!important;width:100vw!important;height:100vh!important}
body.pd-ios #portalView{position:fixed!important;inset:0!important;z-index:200;overflow:hidden;width:100vw;height:100vh;margin:0;padding:0;max-width:none}
body.pd-ios .pd-main{padding:0!important;margin:0!important;height:100vh!important;width:100vw!important;overflow:hidden;flex:none}
body.pd-ios #pdSec-home{padding:0!important;margin:0!important;height:100vh;display:flex;flex-direction:column;width:100vw;background:transparent}
body.pd-ios #iosHomeView{flex:1;display:flex!important;flex-direction:column;overflow:hidden;width:100vw;height:100vh;position:relative}
body.pd-ios .ios-grid{flex:1;min-height:0}
body.pd-ios .ios-page{height:auto;min-height:0}
body.pd-ios #pdSec-business,
body.pd-ios #pdSec-master,
body.pd-ios #pdSec-task,
body.pd-ios #pdSec-other,
body.pd-ios #pdSec-report{display:none!important}
/* iPad モード中の AI Bot：QuickNote 直下に丸ボタン化 */
body.pd-ios #aiBotTab{
  position:fixed!important;
  bottom:74px!important;right:22px!important;
  top:auto!important;left:auto!important;
  width:48px!important;height:48px!important;
  border-radius:50%!important;
  padding:0!important;
  background:linear-gradient(180deg,#ff8a30,#e15800)!important;
  box-shadow:0 8px 24px rgba(255,140,40,.4),0 2px 6px rgba(0,0,0,.25)!important;
  display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;
  gap:0!important;
  transition:transform .18s,box-shadow .18s!important;
  z-index:520!important;
}
body.pd-ios #aiBotTab:hover{transform:translateY(-2px) scale(1.04)!important;box-shadow:0 12px 32px rgba(255,140,40,.5),0 2px 6px rgba(0,0,0,.3)!important}
body.pd-ios #aiBotTab:active{transform:scale(.94)!important}
body.pd-ios #aiBotTab img{width:28px!important;height:auto!important;margin:0!important;animation:none!important;display:block!important}
body.pd-ios #aiBotTab #aiBotTab-label{display:none!important}
/* 検索・編集モード・ロック中は非表示 */
body.pd-ios.ios-searching #aiBotTab,
body.pd-ios.pd-ios-edit #aiBotTab,
body.pd-ios.ios-locked #aiBotTab,
body.pd-ios.ios-locked #iosQNTrigger{display:none!important}
/* アプリ表示時は z-index:200 の portalView より上に */
body.pd-ios #appView{z-index:300}
body.pd-ios #actChatView{z-index:300}
body.pd-ios #spi3View{z-index:300}
body.pd-ios #recordView{z-index:310}
body.pd-ios #weeklyView{z-index:300}
body.pd-ios #kpiView{z-index:300}
/* アプリ起動中はヘッダーを最前面に固定 */
body.pd-ios.app-open .header{
  display:flex!important;
  position:fixed!important;
  top:0;left:0;right:0;
  z-index:400!important;
  width:100vw;
  box-sizing:border-box;
}
/* アプリ画面はヘッダー分下にずらす */
body.pd-ios.app-open #appView,
body.pd-ios.app-open #spi3View,
body.pd-ios.app-open #weeklyView,
body.pd-ios.app-open #kpiView,
body.pd-ios.app-open #actChatView{
  top:64px!important;
  height:calc(100vh - 64px)!important;
}
/* ホーム表示時はヘッダー非表示（タブレットの没入感維持） */
body.pd-ios:not(.app-open) .header{display:none!important}

/* ════════════════════════════════════════════
   🎬 アプリ起動ズームアニメーション
   ════════════════════════════════════════════ */
.ios-app-open-overlay{
  position:fixed;z-index:9000;pointer-events:none;
  box-shadow:0 30px 80px rgba(0,0,0,.45),0 6px 18px rgba(0,0,0,.2);
  overflow:hidden;
}
.ios-app-open-overlay::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,transparent 50%,rgba(0,0,0,.08) 100%);
  pointer-events:none;
}
.ios-icon-launching{visibility:hidden}

/* ════════════════════════════════════════════
   🎛️ コントロールセンター
   ════════════════════════════════════════════ */
.ios-cc-backdrop{position:fixed;inset:0;z-index:550;background:rgba(0,0,0,.25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .3s}
.ios-cc-backdrop.open{opacity:1;pointer-events:auto}
.ios-cc{position:fixed;top:0;right:14px;width:360px;max-width:calc(100vw - 28px);z-index:600;
  background:rgba(22,24,32,.88);backdrop-filter:blur(60px) saturate(160%);
  -webkit-backdrop-filter:blur(60px) saturate(160%);
  border-radius:0 0 20px 20px;padding:38px 12px 16px;
  transform:translateY(-110%);transition:transform .42s cubic-bezier(.32,.72,0,1);
  border:1px solid rgba(255,255,255,.06);border-top:none;
  box-shadow:0 24px 48px rgba(0,0,0,.6);
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  max-height:calc(100vh - 20px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.18) transparent;
}
.ios-cc::-webkit-scrollbar{width:4px}
.ios-cc::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:2px}
.ios-cc::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}
.ios-cc::-webkit-scrollbar-track{background:transparent}
.ios-cc.open{transform:translateY(0)}
.ios-cc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.ios-cc-card{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);border-radius:13px;padding:11px 13px;border:1px solid rgba(255,255,255,.05);color:#fff;font-size:12px;position:relative}
.ios-cc-card-wide{grid-column:span 2}
.ios-cc-h{font-size:9.5px;font-weight:700;color:rgba(255,255,255,.45);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.ios-cc-h-sub{font-size:9px;font-weight:600;color:rgba(255,255,255,.38);letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;padding-left:2px}

/* システムステータスカード */
.ios-cc-status-card{display:flex;flex-direction:column;gap:6px}
.ios-cc-status-row{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.ios-cc-status-row.primary{padding:5px 7px;background:rgba(125,200,140,.1);border:1px solid rgba(125,200,140,.18);border-radius:8px;margin-bottom:1px}
.ios-cc-status-row.primary .ios-cc-status-text{color:#9CDDAA;font-weight:600}
.ios-cc-dot{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:7px}
.ios-cc-dot.ok{background:#5CB370;color:#fff}
.ios-cc-status-text{flex:1;font-size:12px;color:rgba(255,255,255,.9);font-weight:500}
.ios-cc-status-label{color:rgba(255,255,255,.55);font-weight:500;font-size:11px;letter-spacing:.01em}
.ios-cc-status-val{color:rgba(255,255,255,.95);font-weight:600;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.ios-cc-unit{font-size:10px;font-weight:500;color:rgba(255,255,255,.5);margin-left:2px}

/* ユーザーカード */
.ios-cc-user-card{display:flex;align-items:center;padding:11px 13px}
.ios-cc-user-row{display:flex;align-items:center;gap:10px;width:100%}
.ios-cc-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(160deg,#5876A8 0%,#2E4366 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:15px;flex-shrink:0;border:1px solid rgba(255,255,255,.12);font-family:inherit;letter-spacing:.01em}
.ios-cc-user-meta{flex:1;min-width:0}
.ios-cc-user-name{font-size:13px;font-weight:600;color:rgba(255,255,255,.95);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em}
.ios-cc-user-role{font-size:10px;color:rgba(125,200,140,.85);margin-top:1px;letter-spacing:.04em;display:flex;align-items:center;gap:4px}
.ios-cc-user-role::before{content:'';width:5px;height:5px;border-radius:50%;background:#5CB370;display:inline-block}

/* クイックナビ */
.ios-cc-quicknav{padding:11px 10px}
.ios-cc-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.ios-cc-nav-grid button{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.04);color:rgba(255,255,255,.88);padding:9px 6px 8px;border-radius:10px;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:4px;transition:.16s}
.ios-cc-nav-grid button svg{opacity:.75}
.ios-cc-nav-grid button span{font-size:10px;font-weight:500;letter-spacing:.02em}
.ios-cc-nav-grid button:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.1);transform:translateY(-1px)}
.ios-cc-nav-grid button:hover svg{opacity:1}

/* 表示設定（トグルスイッチ） */
.ios-cc-settings{padding:14px 16px}
.ios-cc-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:4px 0;-webkit-tap-highlight-color:transparent;user-select:none}
.ios-cc-switch-label{flex:1;min-width:0}
.ios-cc-switch-title{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.95);letter-spacing:.01em}
.ios-cc-switch-sub{font-size:10.5px;color:rgba(255,255,255,.5);margin-top:2px;letter-spacing:.02em}
.ios-cc-switch{
  width:44px;height:26px;border-radius:14px;border:none;
  background:rgba(120,120,135,.45);
  position:relative;cursor:pointer;
  transition:background .25s cubic-bezier(.32,.72,0,1);
  padding:0;flex-shrink:0;
}
.ios-cc-switch.on{background:#30C36C}
.ios-cc-switch-knob{
  position:absolute;top:2px;left:2px;
  width:22px;height:22px;border-radius:50%;
  background:#fff;
  box-shadow:0 2px 4px rgba(0,0,0,.18),0 1px 2px rgba(0,0,0,.1);
  transition:transform .25s cubic-bezier(.32,.72,0,1);
}
.ios-cc-switch.on .ios-cc-switch-knob{transform:translateX(18px)}

/* ── 壁紙ピッカー ── */
.ios-cc-wall-picker{padding:11px 13px}
.ios-cc-wall-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.ios-cc-wall{background:transparent;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:2px;font-family:inherit;transition:.18s}
.ios-cc-wall-prev{width:100%;aspect-ratio:3/4;border-radius:7px;border:2px solid rgba(255,255,255,.08);box-shadow:0 3px 8px rgba(0,0,0,.25);transition:.18s}
.ios-cc-wall.active .ios-cc-wall-prev{border-color:rgba(120,170,240,.9);box-shadow:0 0 0 1.5px rgba(120,170,240,.4),0 4px 10px rgba(0,0,0,.32)}
.ios-cc-wall span{font-size:9.5px;font-weight:500;color:rgba(255,255,255,.6);letter-spacing:.01em}
.ios-cc-wall.active span{color:rgba(255,255,255,.95);font-weight:600}
.ios-cc-wall:hover .ios-cc-wall-prev{transform:translateY(-1px)}
.wall-prev-dawn{background:linear-gradient(170deg,#283556 0%,#36456F 100%)}
.wall-prev-steel{background:linear-gradient(170deg,#363943 0%,#414550 100%)}
.wall-prev-aurora{background:linear-gradient(170deg,#1F3447 0%,#352F4F 100%)}
.wall-prev-midnight{background:linear-gradient(170deg,#0F1322 0%,#161B2C 100%)}
.wall-prev-pearl{background:linear-gradient(170deg,#4D6485 0%,#6B85AB 100%)}
.wall-prev-sky{background:linear-gradient(170deg,#5478A5 0%,#7BA0CC 100%)}
.wall-prev-mint{background:linear-gradient(170deg,#4B7E72 0%,#6FA597 100%)}
.wall-prev-lavender{background:linear-gradient(170deg,#6B5F8C 0%,#8E80B0 100%)}
.wall-prev-sand{background:linear-gradient(170deg,#8B7553 0%,#B09674 100%)}
.wall-prev-rose{background:linear-gradient(170deg,#8B5868 0%,#B17C8B 100%)}
.wall-prev-forest{background:linear-gradient(170deg,#1A2E1F 0%,#243D2B 100%)}
.ios-cc-wall-add-prev{background:rgba(255,255,255,.04);border:1.5px dashed rgba(255,255,255,.22)!important;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.45)}
.ios-cc-wall-add:hover .ios-cc-wall-add-prev{border-color:rgba(255,255,255,.5)!important;color:rgba(255,255,255,.8)}
.ios-cc-wall-add.active .ios-cc-wall-add-prev{border-color:rgba(120,170,240,.9)!important;color:rgba(120,170,240,.9)}

/* カスタムモード切替（グラデーション/単色） */
.ios-cc-cw-mode{display:flex;background:rgba(255,255,255,.05);border-radius:9px;padding:3px;margin-bottom:12px;border:1px solid rgba(255,255,255,.04)}
.ios-cc-cw-mode-btn{flex:1;background:transparent;border:none;color:rgba(255,255,255,.55);font-size:11.5px;font-weight:500;padding:7px 10px;border-radius:7px;cursor:pointer;font-family:inherit;transition:.16s;letter-spacing:.02em}
.ios-cc-cw-mode-btn.active{background:rgba(255,255,255,.13);color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.ios-cc-customwall.mode-solid .ios-cc-cw-row-2,
.ios-cc-customwall.mode-solid .ios-cc-cw-row-angle{display:none}
.ios-cc-customwall.mode-solid .ios-cc-cw-label-c1::after{content:''}
.ios-cc-customwall.mode-solid .ios-cc-cw-label-c1{}

.ios-cc-actions{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ios-cc-divider{height:1px;background:rgba(255,255,255,.06);margin:8px -4px 0}
.ios-cc-pill{background:rgba(255,255,255,.05);color:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.06);padding:10px 13px;border-radius:11px;font-weight:500;cursor:pointer;width:100%;font-family:inherit;font-size:12.5px;letter-spacing:.01em;transition:.18s;display:flex;align-items:center;justify-content:center;gap:8px}
.ios-cc-pill svg{opacity:.65}
.ios-cc-pill:hover{background:rgba(255,255,255,.1)}
.ios-cc-exit{background:rgba(140,52,52,.18);color:#E08680;border-color:rgba(180,70,70,.28)}
.ios-cc-exit:hover{background:rgba(160,60,60,.28);color:#EE9A93}
.ios-status-icons{cursor:pointer;padding:4px 6px;margin:-4px -6px;border-radius:8px;transition:.15s;pointer-events:auto}
.ios-status-icons:hover{background:rgba(255,255,255,.08)}

/* ════════════════════════════════════════════
   📱 iPadOS Widget System v3 — Smart Stack 風
   ════════════════════════════════════════════ */
.ios-widget{
  background:
    linear-gradient(160deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.06) 100%);
  backdrop-filter:blur(48px) saturate(180%);
  -webkit-backdrop-filter:blur(48px) saturate(180%);
  border:1px solid rgba(255,255,255,.13);
  border-radius:22px;
  padding:18px 20px;
  min-height:165px;
  box-shadow:
    0 16px 44px -10px rgba(0,0,0,.4),
    0 2px 6px rgba(0,0,0,.12),
    inset 0 1px 0 rgba(255,255,255,.14);
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
}
.ios-widget::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,transparent 50%);
  border-radius:inherit;
}

/* ── ヘッダー ── */
.ios-w-header{display:flex;align-items:center;gap:7px;margin-bottom:10px}
.ios-w-h-icon{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.ios-w-h-title{font-size:11.5px;font-weight:700;color:rgba(0,0,0,.78);letter-spacing:.04em;text-transform:none}

/* ── 共通ウィジェット ── */
.ios-widget{
  background:linear-gradient(160deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.025) 100%)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 18px 40px -16px rgba(0,0,0,.55),0 2px 4px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
.ios-w-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px}
.ios-w-h-title{font-size:11.5px;font-weight:600;color:rgba(0,0,0,.55);letter-spacing:.16em;text-transform:uppercase}
.ios-w-h-meta{font-size:10.5px;font-weight:500;color:rgba(0,0,0,.4);letter-spacing:.05em;font-variant-numeric:tabular-nums}

/* ── Time Widget（プロフェッショナル：静的＆数値整列） ── */
.ios-widget.ios-w-time{
  background:linear-gradient(165deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.02) 100%)!important;
}
.ios-w-time-meta{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;color:rgba(0,0,0,.55);letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px;font-variant-numeric:tabular-nums}
.ios-w-day{color:rgba(0,0,0,.82);font-weight:600}
.ios-w-divider{color:rgba(0,0,0,.25);font-weight:400}
.ios-w-date{color:rgba(0,0,0,.55)}
.ios-w-time-display{font-size:58px;font-weight:300;color:rgba(0,0,0,.88);letter-spacing:-2.8px;line-height:.96;font-variant-numeric:tabular-nums;margin:4px 0 10px;font-feature-settings:'tnum';font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif}
.ios-w-greet{font-size:11px;font-weight:500;color:rgba(0,0,0,.5);margin-top:auto;letter-spacing:.02em}
.ios-w-greet b{color:rgba(0,0,0,.82);font-weight:600}

/* ── KPI Summary Widget（プロ仕様：数値+トレンドインジケーター） ── */
.ios-w-stats{display:flex;flex:1;align-items:stretch;gap:0;margin-top:0;border-radius:10px;overflow:hidden;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.04)}
.ios-w-stat{flex:1;text-align:left;padding:14px 12px 12px;cursor:pointer;transition:.18s;position:relative;border-right:1px solid rgba(255,255,255,.05)}
.ios-w-stat:last-child{border-right:none}
.ios-w-stat:hover{background:rgba(255,255,255,.03)}
.ios-w-stat-num{font-size:24px;font-weight:400;color:rgba(0,0,0,.88);letter-spacing:-.8px;line-height:1;font-feature-settings:'tnum';font-variant-numeric:tabular-nums;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif}
.ios-w-stat-lbl{font-size:10px;font-weight:500;color:rgba(0,0,0,.45);margin-top:6px;letter-spacing:.06em;text-transform:uppercase}
.ios-w-trend{display:flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;letter-spacing:.04em;margin-top:10px;font-variant-numeric:tabular-nums}
.ios-w-trend.up{color:#5DD693}
.ios-w-trend.down{color:#F37A6B}

/* ── Activity Widget ── */
.ios-w-activity-list{display:flex;flex-direction:column;gap:0;flex:1}
.ios-w-act-item{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.ios-w-act-item:last-child{border-bottom:none}
.ios-w-act-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;box-shadow:none}
.ios-w-act-dot.blue{background:#7A9DC4}
.ios-w-act-dot.green{background:#7BA89A}
.ios-w-act-dot.orange{background:#C99464}
.ios-w-act-dot.pink{background:#C97884}
.ios-w-act-text{flex:1;font-size:12px;color:rgba(0,0,0,.8);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em}
.ios-w-act-time{font-size:10.5px;color:rgba(0,0,0,.4);font-weight:500;flex-shrink:0;font-variant-numeric:tabular-nums;letter-spacing:.02em}

/* ── ホバー時の上品な浮き ── */
@media(hover:hover){
  .ios-icon-wrap:hover .ios-icon{transform:translateY(-1.5px);box-shadow:0 14px 22px -10px rgba(0,0,0,.55),0 4px 8px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.16),inset 0 -1px 0 rgba(0,0,0,.18)!important}
  .ios-icon-wrap:hover .ios-icon-label{color:rgba(255,255,255,.95)}
}
.ios-icon-wrap:active .ios-icon{transform:scale(.92)!important;transition:transform .08s!important}

/* ── 検索バー：洗練されたミニマル ── */
.ios-search-wrap{padding:2px 38px 6px;max-width:480px;margin:0 auto}
.ios-search-bar{height:34px;padding:0 12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.07);border-radius:10px;box-shadow:none;gap:7px}
.ios-search-bar:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.1)}
.ios-search-bar:focus-within{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15)}
.ios-search-input{font-size:12.5px;font-weight:500;letter-spacing:.01em}
.ios-search-input::placeholder{color:rgba(255,255,255,.4);font-weight:500}
.ios-search-bar svg{opacity:.5;width:13px;height:13px}

/* ── 旧ウィジェットを非表示（v3 へ移行） ── */
body.pd-ios .ios-widget-clock,
body.pd-ios .ios-widget-kpi{display:none}

/* ── 承認ステータスウィジェット ── */
.ios-w-apv{grid-column:1/-1;min-height:auto}
.ios-w-apv-section-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:rgba(255,255,255,.55);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.ios-w-apv-sec-icon{font-size:13px}
.ios-w-apv-badge{display:inline-flex;align-items:center;justify-content:center;background:#ed8936;color:#fff;border-radius:9px;font-size:10px;font-weight:700;min-width:16px;height:16px;padding:0 4px;letter-spacing:0;text-transform:none;vertical-align:middle;margin-left:3px}
.ios-w-apv-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;max-height:220px;overflow-y:auto;overflow-x:hidden;padding-right:2px}
.ios-w-apv-item{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:8px;row-gap:2px;align-items:center;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:9px 12px;cursor:default;transition:.15s}
.ios-w-apv-item[onclick]{cursor:pointer}
.ios-w-apv-item[onclick]:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.ios-w-apv-state{grid-column:1;grid-row:1;font-size:11px;font-weight:700;border-radius:6px;padding:2px 7px;white-space:nowrap;letter-spacing:.02em}
.ios-w-apv-state.apv-pending{background:rgba(237,137,54,.22);color:#fbd38d}
.ios-w-apv-state.apv-ok{background:rgba(72,187,120,.2);color:#9ae6b4}
.ios-w-apv-state.apv-ng{background:rgba(229,62,62,.2);color:#feb2b2}
.ios-w-apv-label{grid-column:2;grid-row:1;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ios-w-apv-time{grid-column:3;grid-row:1;font-size:10.5px;color:rgba(255,255,255,.38);white-space:nowrap;font-variant-numeric:tabular-nums}
.ios-w-apv-sub{grid-column:1/-1;grid-row:2;font-size:10.5px;color:rgba(255,255,255,.42);padding-left:2px}
.ios-w-apv-comment{grid-column:1/-1;grid-row:3;font-size:10.5px;color:#feb2b2;padding-left:2px;font-style:italic}

/* ── ベルバッジ（承認件数表示） ── */
.header-bell-dot{font-size:10px;font-weight:800;min-width:17px;height:17px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0 3px;letter-spacing:0}

/* ── ステータスバー：右側のインジケーター追加 ── */
.ios-status-bar{padding-top:10px}
.ios-status-icons svg{margin-left:1px}

/* ── ホームインジケーター（細く上品に） ── */
.ios-home-indicator{height:22px;padding-bottom:6px}
.ios-home-indicator::after{width:128px;height:4px;background:rgba(255,255,255,.28);border-radius:2px}

/* ── ドック微調整：仕切り線追加（最後の2アプリの前） ── */
.ios-dock-inner{position:relative}

/* ── ページドット（控えめ・App Libraryは円輪郭で区別） ── */
.ios-page-dots{padding:14px 0 8px;gap:7px;align-items:center}
.ios-page-dot{width:5px;height:5px;background:rgba(255,255,255,.22);cursor:pointer;border-radius:50%;transition:.2s}
.ios-page-dot:hover{background:rgba(255,255,255,.45);transform:scale(1.2)}
.ios-page-dot.active{background:rgba(255,255,255,.85);box-shadow:none;width:5px;height:5px}

/* ── 全国不動産マップ（全国版・2026-05追加） ── */
.re-wrap.re-wrap-1col{grid-template-columns:1fr}
.re-japan-wrap{background:#eef4fa}
.re-inset-box{fill:none;stroke:#9bb3c9;stroke-width:1.2;stroke-dasharray:5 3}
.re-pref-tile{cursor:pointer}
.re-pref-tile .re-city-shape{stroke-width:0.6}
.re-pref-tile:hover .re-city-shape{filter:brightness(1.12)}
.re-pref-label{font-size:9px;fill:#2d3748;font-weight:700}
.re-pref-count{font-size:8px;fill:#2b6cb0}
.re-pref-pick{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:5px 8px;font-size:12px;cursor:pointer;color:var(--txt);font-family:inherit;margin-bottom:3px;transition:.15s}
.re-pref-pick:hover{background:#eef2f7;border-color:var(--acc)}
.re-pref-pick.active,.re-pref-pick:active{background:var(--acc);color:#fff;border-color:var(--acc)}
.re-pref-pick b{font-size:11px;color:var(--acc);min-width:40px;text-align:right}
.re-pref-pick.active b{color:#fff}
.re-pref-pick.re-pref-empty{opacity:.55}
.re-back-btn{width:100%;background:#eef2f7;border:1px solid #cbd5e0;padding:7px 10px;border-radius:6px;font-size:12px;cursor:pointer;color:var(--acc);font-weight:700;font-family:inherit;margin-bottom:12px;transition:.15s}
.re-back-btn:hover{background:var(--acc);color:#fff}
.re-map-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.re-map-hdr h3{margin:0}
.re-map-view-btn{font-size:11px;padding:3px 10px;border-radius:12px;border:1px solid var(--acc);background:#fff;color:var(--acc);cursor:pointer;font-family:inherit;font-weight:700;transition:.15s;white-space:nowrap}
.re-map-view-btn:hover{background:var(--acc);color:#fff}

/* ════════════════════════════════════════════
   🔝 ヘッダー格納時の最終オーバーライド
   （iPad モードの #aiBotTab 位置指定よりソース順で勝つために末尾に配置）
   ════════════════════════════════════════════ */
body.pd-ios .header-app-tools #aiBotTab,
body.app-open .header-app-tools #aiBotTab{
  position:static!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;
  width:auto!important;height:34px!important;
  padding:0 12px!important;gap:7px!important;margin:0!important;
  border-radius:8px!important;
  background:linear-gradient(180deg,#ff7c00,#e05a00)!important;
  box-shadow:0 2px 6px rgba(255,100,0,.35)!important;
  z-index:auto!important;
  transform:none!important;
}
body.pd-ios .header-app-tools #aiBotTab img,
body.app-open .header-app-tools #aiBotTab img{
  width:20px!important;height:20px!important;margin:0!important;animation:none!important;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))!important;display:block!important;
}
body.pd-ios .header-app-tools #aiBotTab #aiBotTab-label,
body.app-open .header-app-tools #aiBotTab #aiBotTab-label{
  display:inline!important;
  writing-mode:horizontal-tb!important;text-orientation:initial!important;
  font-size:12px!important;font-weight:700!important;letter-spacing:.5px!important;color:#fff!important;
}
body.pd-ios .header-app-tools #iosQNTrigger.ios-qn-trigger,
body.app-open .header-app-tools #iosQNTrigger.ios-qn-trigger{
  position:static!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  width:34px!important;height:34px!important;margin:0!important;
  border-radius:8px!important;
  background:rgba(0,0,143,.08)!important;
  color:#00008F!important;
  border:1px solid rgba(0,0,143,.2)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  z-index:auto!important;transform:none!important;
}
@media (max-width:780px){
  body.pd-ios .header-app-tools #aiBotTab,
  body.app-open .header-app-tools #aiBotTab{padding:0 8px!important;height:32px!important}
  body.pd-ios .header-app-tools #aiBotTab #aiBotTab-label,
  body.app-open .header-app-tools #aiBotTab #aiBotTab-label{display:none!important}
  body.pd-ios .header-app-tools #iosQNTrigger.ios-qn-trigger,
  body.app-open .header-app-tools #iosQNTrigger.ios-qn-trigger{width:32px!important;height:32px!important}
}

/* ════════════════════════════════════════════
   📊 KPIダッシュボード — デジタル庁デザイン準拠
   ════════════════════════════════════════════ */

/* ── レイアウト ── */
.kpi-main{max-width:1280px;margin:0 auto;padding:24px 28px;font-family:'Noto Sans JP',sans-serif}

/* ── フィルターバー（セグメントコントロール） ── */
.kpi-ctrl-row{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap;
  padding:12px 16px;background:#fff;border:1px solid #D4D8E0;border-radius:var(--r)}
.kpi-btn-group{display:flex;background:#F4F6F9;border:1px solid #D4D8E0;border-radius:4px;overflow:hidden}
.kpi-btn{padding:7px 14px;font-size:12px;font-weight:400;color:#595959;cursor:pointer;
  border:none;background:none;transition:var(--tr);white-space:nowrap;font-family:inherit;
  border-right:1px solid #D4D8E0}
.kpi-btn:last-child{border-right:none}
.kpi-btn:hover{background:#DCE4FF;color:#0017C1}
.kpi-btn.active{background:#0017C1;color:#fff;font-weight:700}

/* ── 月比較バナー（DA：横並び比較テーブル形式） ── */
.kpi-mom-banner{display:flex;align-items:stretch;gap:0;background:#fff;
  border:1px solid #D4D8E0;border-left:4px solid #0017C1;border-radius:var(--r);
  padding:0;margin-bottom:18px;overflow:hidden}
.kpi-mom-title{font-size:11px;font-weight:700;color:#0017C1;display:flex;align-items:center;
  gap:6px;padding:12px 16px;border-right:1px solid #D4D8E0;background:#EEF2FF;white-space:nowrap}
.kpi-mom-item{display:flex;flex-direction:column;gap:2px;padding:10px 16px;
  border-right:1px solid #F0F2F6;flex:1;min-width:0}
.kpi-mom-item:last-child{border-right:none}
.kpi-mom-lbl{font-size:10px;color:#595959;font-weight:400}
.kpi-mom-val{font-size:15px;font-weight:700;color:#1A1A1C}
.kpi-mom-delta{font-size:11px;font-weight:700;padding:1px 6px;border-radius:2px;width:fit-content}
.kpi-mom-up{background:#E6F4ED;color:#007A3B}
.kpi-mom-down{background:#FDEAEA;color:#C02A2A}
.kpi-mom-flat{background:#F4F6F9;color:#595959}

/* ── KPIカード（DA：左ボーダー数値カード） ── */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:18px}
.kpi-card{background:#fff;border-radius:var(--r);padding:16px 18px;
  border:1px solid #D4D8E0;border-left:4px solid #D4D8E0;
  position:relative;overflow:hidden;transition:var(--tr)}
.kpi-card:hover{box-shadow:var(--sh-h);border-color:#B8BEC8}
.kpi-card::before{display:none}
.kpi-card.kc-blue{border-left-color:#0017C1}
.kpi-card.kc-green{border-left-color:#007A3B}
.kpi-card.kc-orange{border-left-color:#C96000}
.kpi-card.kc-purple{border-left-color:#6B3B9B}
.kpi-card.kc-teal{border-left-color:#00665F}
.kpi-card.kc-red{border-left-color:#C02A2A}

/* KPIカード内部 */
.kpi-ic{display:none}
.kpi-lbl{font-size:11px;font-weight:700;color:#595959;letter-spacing:.02em;
  margin-bottom:6px;text-transform:none;display:flex;align-items:center;gap:4px;
  justify-content:space-between}
.kpi-val{font-size:24px;font-weight:700;color:#1A1A1C;line-height:1.15;margin-bottom:2px;
  font-variant-numeric:tabular-nums}
.kpi-val small{font-size:12px;font-weight:400;color:#595959;margin-left:2px}
.kpi-sub{font-size:11px;color:#8A8A8A;font-weight:400;margin-top:4px}
.kpi-src{font-size:10px;color:#B0B0B0;font-weight:400}

/* ── セグメント概要パネル（DA：左ボーダー2カラムグリッド） ── */
.kpi-seg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.kpi-seg-card{background:#fff;border-radius:var(--r);padding:14px 16px;
  border:1px solid #D4D8E0;border-left:4px solid #D4D8E0;
  position:relative;overflow:hidden;transition:var(--tr)}
.kpi-seg-card:hover{box-shadow:var(--sh-h)}
.kpi-seg-card::before{display:none}
.kpi-seg-all{border-left-color:#0017C1}
.kpi-seg-sales{border-left-color:#007A3B}
.kpi-seg-company{border-left-color:#C96000}
.kpi-seg-contract{border-left-color:#6B3B9B}
.kpi-seg-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;
  color:#1A1A1C;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #F0F2F6}
.kpi-seg-ic{width:22px;height:22px;border-radius:3px;display:flex;align-items:center;
  justify-content:center;font-size:12px}
.kpi-seg-all .kpi-seg-ic{background:#EEF2FF;color:#0017C1}
.kpi-seg-sales .kpi-seg-ic{background:#E6F4ED;color:#007A3B}
.kpi-seg-company .kpi-seg-ic{background:#FFF3E6;color:#C96000}
.kpi-seg-contract .kpi-seg-ic{background:#F5EEFF;color:#6B3B9B}
.kpi-seg-row{display:flex;justify-content:space-between;align-items:baseline;
  padding:4px 0;border-bottom:1px solid #F4F6F9}
.kpi-seg-row:last-child{border-bottom:none}
.kpi-seg-rl{font-size:11px;color:#595959;font-weight:400}
.kpi-seg-rv{font-size:13px;font-weight:700;color:#1A1A1C;font-variant-numeric:tabular-nums}
.kpi-seg-rv.small{font-size:12px}

/* ── チャートカード（DA：ヘッダー付きホワイトカード） ── */
.kpi-chart-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:12px}
.kpi-chart-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:16px}
.kpi-chart-card{background:#fff;border-radius:var(--r);overflow:hidden;
  border:1px solid #D4D8E0}
.kpi-chart-hdr{padding:12px 16px 8px;border-bottom:1px solid #F0F2F6;
  display:flex;align-items:flex-start;justify-content:space-between}
.kpi-chart-title{font-size:13px;font-weight:700;color:#1A1A1C}
.kpi-chart-sub{font-size:11px;color:#595959;margin-top:2px;font-weight:400}
.kpi-chart-body{padding:12px 14px 14px;position:relative}

/* ── テーブルカード ── */
.kpi-tbl-card{background:#fff;border-radius:var(--r);overflow:hidden;
  border:1px solid #D4D8E0;margin-bottom:12px}
.kpi-tbl-hdr{padding:12px 16px;border-bottom:2px solid #0017C1;
  display:flex;align-items:center;justify-content:space-between}
.kpi-tbl-title{font-size:13px;font-weight:700;color:#1A1A1C}
.kpi-tbl-sub{font-size:11px;color:#595959;font-weight:400}
.kpi-sum-tbl th{background:#F4F6F9;padding:8px 10px;text-align:right;font-weight:700;
  color:#595959;font-size:11px;letter-spacing:.02em;text-transform:none;
  border-bottom:2px solid #D4D8E0;white-space:nowrap}
.kpi-sum-tbl td{padding:8px 10px;border-bottom:1px solid #F0F2F6;font-size:12px;
  font-variant-numeric:tabular-nums}
.kpi-sum-tbl tr:last-child td{border-bottom:none}
.kpi-sum-tbl tr:hover td{background:#F8F9FF}

/* ランクバッジ */
.kpi-rank{display:inline-flex;width:18px;height:18px;align-items:center;
  justify-content:center;border-radius:2px;font-size:10px;font-weight:700;
  margin-right:4px;flex-shrink:0}
.kpi-rank-1{background:#FFF3E0;color:#C96000}
.kpi-rank-2{background:#F4F6F9;color:#595959}
.kpi-rank-3{background:#FFF3E0;color:#9C6000;opacity:.8}

/* ── KPIダッシュボード全体コントロール ── */
#appView.kpi-mode #avSidebar{background:#fff;border-right:1px solid #D4D8E0}
#appView.kpi-mode #avKpiPanel{background:#fff;border-bottom:1px solid #D4D8E0;padding:10px 20px}
#appView.kpi-mode #avKpiPanel .kpi-refresh{background:#0017C1;color:#fff;border:none;
  border-radius:4px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}
#appView.kpi-mode #avKpiPanel .kpi-refresh:hover{background:#00119A}

/* ── レスポンシブ ── */
@media(max-width:900px){
  .kpi-chart-grid{grid-template-columns:1fr}
  .kpi-chart-grid3{grid-template-columns:1fr 1fr}
  .kpi-seg-grid{grid-template-columns:1fr 1fr}
  .kpi-mom-banner{flex-wrap:wrap}
}
@media(max-width:600px){
  .kpi-chart-grid3{grid-template-columns:1fr}
  .kpi-seg-grid{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════
   🏠 ポータル画面 — シンプル化
   ════════════════════════════════════════════ */

/* ── サイドバー：クリーン ── */
.pd-side{border-right:1px solid #E8EDF4}
.pd-nav-item{border-radius:4px;font-size:13px;font-weight:400;color:#595959;padding:9px 12px}
.pd-nav-item.active{
  background:#EEF2FF;color:#0017C1;font-weight:700;
  box-shadow:none;
  border-left:3px solid #0017C1;padding-left:9px
}
.pd-nav-item:hover{background:#F4F6F9;color:#0017C1}
.pd-nav-item svg{width:17px;height:17px}
.pd-side-label{font-size:10px;color:#B0B0B0;letter-spacing:.04em;text-transform:none;font-weight:700}
.pd-sysbox{background:#F8F9FC;border:1px solid #E8EDF4;border-radius:4px;padding:10px 12px}
.pd-sys-title{font-size:10px;font-weight:700;color:#B0B0B0;letter-spacing:.04em}
.pd-sys-ok{background:#007A3B;box-shadow:none}
.pd-sys-stat b{font-size:13px;font-weight:700;color:#1A1A1C}

/* ── ヒーロー：左ボーダー廃止・よりフラット ── */
.pd-hero{
  background:#fff;border-radius:var(--r);
  padding:22px 28px;
  border:1px solid #E8EDF4;border-left:none;
  box-shadow:none
}
.pd-hero-date{border-radius:2px;font-size:11px;font-weight:700}
.pd-hero-greet{font-size:22px;font-weight:700;margin:10px 0 4px}
.pd-hero-sub{font-size:12px;color:#8A8A8A;margin:0 0 14px}
.pd-btn-primary{border-radius:4px;font-size:13px;padding:9px 18px}
.pd-btn-ghost{border-radius:4px;font-size:13px;padding:9px 18px}

/* ── ホームKPI：アイコンカラー廃止・左ボーダーのみ ── */
.pd-kpi{border:1px solid #E8EDF4}
.pd-kpi:hover{box-shadow:none;border-color:#C8D0E0}
.pd-kpi-ic{display:none}             /* アイコン非表示（すっきり） */
.pd-kpi-top{margin-bottom:4px}
.pd-kpi-label{font-size:11px;font-weight:700;color:#8A8A8A}
.pd-kpi-val{font-size:24px;font-weight:700}

/* ── アプリカード：全カード同一・カラー廃止 ── */
.pd-app{
  background:#fff;border:1px solid #E8EDF4;
  border-radius:var(--r);padding:12px 14px;
  display:flex;align-items:center;gap:12px;
  cursor:pointer;transition:background .12s,border-color .12s;
  box-shadow:none;position:relative;overflow:hidden
}
.pd-app::before{display:none}        /* 左カラーボーダー廃止 */
.pd-app:hover{background:#F8F9FC;border-color:#C8D0E0;box-shadow:none}
/* アイコン背景：全アプリ同一のニュートラルグレー */
.pd-app-ic,
.pd-app-feat .pd-app-ic,
.pd-app:hover .pd-app-ic{
  width:40px;height:40px;border-radius:4px;
  background:#F0F2F6;flex-shrink:0;
  display:flex;align-items:center;justify-content:center
}
/* アイコン画像：グレースケール統一 */
.pd-app-ic img{width:26px;height:26px;object-fit:contain;filter:grayscale(40%) opacity(.75)}
.pd-app:hover .pd-app-ic img{filter:grayscale(10%) opacity(.9)}
.pd-app-ic svg{width:24px;height:24px;color:#595959}
.pd-app-name{font-size:13px;font-weight:700;color:#1A1A1C}
.pd-app-sub{font-size:11px;color:#8A8A8A;font-weight:400;margin-top:1px}

/* ── タブバー：シンプルなテキストタブ ── */
.pd-apps-bar{margin-bottom:14px;margin-top:0}
.pd-tab-bar{
  display:flex;align-items:center;gap:0;
  background:none;border:none;border-bottom:2px solid #E8EDF4;
  border-radius:0;padding:0;box-shadow:none
}
.pd-tab{
  background:none;border:none;border-bottom:2px solid transparent;
  margin-bottom:-2px;
  padding:8px 16px;border-radius:0;
  font-size:13px;font-weight:400;color:#595959;
  cursor:pointer;transition:var(--tr)
}
.pd-tab:hover{color:#0017C1;background:none}
.pd-tab.active{
  color:#0017C1;font-weight:700;
  border-bottom-color:#0017C1;background:none;box-shadow:none
}

/* ── お知らせパネル ── */
.pd-notice{background:#fff;border-radius:var(--r);border:1px solid #E8EDF4;padding:16px;box-shadow:none}
.pd-notice-head{font-size:13px;font-weight:700;color:#1A1A1C;border-bottom:1px solid #E8EDF4;padding-bottom:8px;margin-bottom:10px}
.pd-notice-cnt{background:#EEF2FF;color:#0017C1;border-radius:2px;font-size:10px;font-weight:700;padding:1px 6px}
.pd-notice-title{font-size:12px;font-weight:600;color:#1A1A1C}
.pd-notice-meta{font-size:11px;color:#8A8A8A;margin-top:1px}
.pd-notice-dot{border-radius:2px}    /* 丸ドット→正角に */

/* ── アプリグリッド：4列（より情報密度を上げる） ── */
.pd-app-grid{grid-template-columns:repeat(4,1fr);gap:10px}
.pd-app-grid-full{grid-template-columns:repeat(4,1fr)}

/* ── ピン留め ── */
.pd-pin-btn{color:#C8D0E0}
.pd-pin-btn.pinned{opacity:1}
.pd-pin-btn.pinned::after{display:none}

/* ── セクション見出し ── */
.pd-sec-head h2,.pd-apps-head h2{font-size:16px;font-weight:700;color:#1A1A1C}
.pd-top-row{gap:14px;margin-bottom:16px}
.pd-kpi-row{gap:10px;margin-bottom:16px}
.pd-main{padding:20px 24px 40px}

/* ════════════════════════════════════════════
   📁 案件見積管理 — デジタル庁デザイン準拠
   ════════════════════════════════════════════ */

/* ── 一覧テーブル ── */
.anken-tbl-wrap{
  background:#fff;
  border-radius:var(--r);
  box-shadow:none;
  border:1px solid #D4D8E0;
  overflow:hidden
}
.anken-tbl thead th{
  background:#F4F6F9;
  padding:10px 12px;
  text-align:left;
  font-size:11px;
  font-weight:700;
  color:#595959;
  letter-spacing:0;
  text-transform:none;
  border-bottom:2px solid #D4D8E0;
  white-space:nowrap
}
.anken-row{
  cursor:pointer;
  transition:background .1s;
  border-left:3px solid transparent
}
.anken-row td{
  padding:0 12px;
  height:50px;
  vertical-align:middle;
  border-bottom:1px solid #F0F2F6;
  font-size:13px;
  color:#1A1A1C
}
.anken-row:hover td{background:#F0F4FF}
.anken-row:hover{box-shadow:none}
.anken-row:last-child td{border-bottom:none}

/* ステータスバッジ */
.ak-s{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  padding:2px 8px;
  border-radius:2px;
  white-space:nowrap;
  letter-spacing:0
}
.ak-s.ak-g{background:#E6F4ED;color:#007A3B}     /* 成約 */
.ak-s.ak-b{background:#EEF2FF;color:#0017C1}     /* 追客中 */
.ak-s.ak-r{background:#FDEAEA;color:#C02A2A}     /* 失注 */
.ak-s.ak-n{background:#F4F6F9;color:#595959}     /* その他 */

/* 行左ボーダー（DAカラー） */
.anken-row.ak-st-g{border-left-color:#007A3B}
.anken-row.ak-st-b{border-left-color:#0017C1}
.anken-row.ak-st-r{border-left-color:#C02A2A}

/* 行内ボタン */
.c-folder-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:4px;border:none;
  background:transparent;cursor:pointer;transition:var(--tr);
  color:#0017C1;text-decoration:none
}
.c-folder-btn:hover{background:#EEF2FF;color:#00119A}
.c-btn{
  width:28px;height:28px;border:none;border-radius:4px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:var(--tr);font-size:14px;background:transparent
}
.c-btn-edit{color:#0017C1}
.c-btn-edit:hover{background:#EEF2FF;color:#00119A}
.c-btn-del{color:#B0B0B0}
.c-btn-del:hover{background:#FDEAEA;color:#C02A2A}
.c-detail-btn{background:none;border:none;cursor:pointer;padding:4px 6px;
  border-radius:4px;color:#0017C1;opacity:.75}
.c-detail-btn:hover{background:#EEF2FF;color:#0017C1;opacity:1}

/* ── ドロワー（簡易編集パネル） ── */
.cdrw{
  position:fixed;top:0;right:0;height:100%;width:480px;max-width:100vw;
  background:#fff;border-left:1px solid #D4D8E0;
  box-shadow:-2px 0 16px rgba(0,0,0,.10);
  z-index:601;transform:translateX(100%);
  transition:transform .25s ease;display:flex;flex-direction:column
}
.cdrw-hd{
  padding:16px 20px;
  border-bottom:2px solid #0017C1;
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;background:#fff
}
.cdrw-tit{font-size:15px;font-weight:700;color:#1A1A1C}
.cdrw-x{
  width:30px;height:30px;border:1px solid #D4D8E0;
  background:#fff;border-radius:4px;cursor:pointer;
  font-size:16px;line-height:1;display:flex;align-items:center;
  justify-content:center;color:#595959;transition:var(--tr)
}
.cdrw-x:hover{background:#F4F6F9;border-color:#B8BEC8}
.cdrw-sttl{
  font-size:11px;font-weight:700;color:#0017C1;
  letter-spacing:0;text-transform:none;
  padding-bottom:6px;border-bottom:2px solid #0017C1;margin-bottom:10px
}
.cdrw-f input,.cdrw-f select,.cdrw-f textarea{
  width:100%;padding:8px 10px;
  border:1px solid #D4D8E0;border-radius:4px;
  font-size:13px;font-family:inherit;color:#1A1A1C;
  background:#fff;transition:var(--tr);outline:none
}
.cdrw-f input:focus,.cdrw-f select:focus,.cdrw-f textarea:focus{
  border-color:#0017C1;box-shadow:0 0 0 3px rgba(0,23,193,.10)
}
.cdrw-ro{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:9px;border:1px solid #D4D8E0;border-radius:4px;
  cursor:pointer;font-size:13px;font-weight:600;color:#595959;
  transition:var(--tr);user-select:none
}
.cdrw-ro:hover{border-color:#0017C1;color:#0017C1}
.cdrw-ro.on{border-color:#0017C1;background:#EEF2FF;color:#0017C1}
.cdrw-ro.on-g{border-color:#007A3B;background:#E6F4ED;color:#007A3B}
.cdrw-ft{padding:14px 20px;border-top:1px solid #D4D8E0;display:flex;gap:8px;flex-shrink:0}
.cdrw-save{
  flex:1;padding:11px;background:#0017C1;border:none;border-radius:4px;
  color:#fff;font-size:14px;font-weight:700;cursor:pointer;
  transition:var(--tr);font-family:inherit
}
.cdrw-save:hover{background:#00119A;transform:none;box-shadow:none}
.cdrw-cancel{
  padding:11px 18px;border:1px solid #D4D8E0;border-radius:4px;
  background:#fff;font-size:13px;font-weight:600;cursor:pointer;
  color:#595959;transition:var(--tr);font-family:inherit
}
.cdrw-cancel:hover{background:#F4F6F9}

/* ── フルスクリーンフォーム（新規・編集）── */
.anv-hd{
  background:#fff;
  border-bottom:2px solid #0017C1;
  padding:0 28px;height:58px;
  display:flex;align-items:center;gap:16px;flex-shrink:0;box-shadow:none
}
.anv-back{
  display:flex;align-items:center;gap:6px;
  background:#fff;border:1px solid #D4D8E0;border-radius:4px;
  padding:7px 14px;cursor:pointer;font-size:13px;font-weight:600;
  color:#595959;transition:var(--tr)
}
.anv-back:hover{border-color:#0017C1;color:#0017C1;background:#EEF2FF}
.anv-title{flex:1;font-size:17px;font-weight:700;color:#1A1A1C;padding:0 8px}
.anv-save{
  padding:8px 22px;background:#0017C1;border:none;border-radius:4px;
  color:#fff;font-size:14px;font-weight:700;cursor:pointer;
  transition:var(--tr);font-family:inherit
}
.anv-save:hover{background:#00119A;transform:none;box-shadow:none}

/* フォームセクション */
.anv-section{
  background:#fff;border-radius:var(--r);
  border:1px solid #D4D8E0;margin-bottom:14px;overflow:visible
}
.anv-stitle{
  padding:10px 16px;font-size:12px;font-weight:700;
  letter-spacing:0;text-transform:none;color:#0017C1;
  background:#EEF2FF;border-bottom:1px solid #D4D8E0;
  border-radius:var(--r) var(--r) 0 0;
  cursor:pointer;user-select:none;
  display:flex;align-items:center;justify-content:space-between;
  transition:background .15s;text-shadow:none
}
.anv-stitle:hover{background:#DCE4FF}
.anv-stitle::after{
  content:'';display:inline-block;width:14px;height:14px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230017C1' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .2s ease;flex-shrink:0
}
.anv-section.collapsed .anv-stitle{border-bottom-color:transparent;border-radius:var(--r)}
.anv-section.collapsed .anv-stitle::after{transform:rotate(-90deg)}

/* フォームフィールド */
.anv-row{display:flex;border-bottom:1px solid #F0F2F6;flex-wrap:wrap}
.anv-row:last-child{border-bottom:none}
.anv-field{display:flex;align-items:center;gap:0;flex:1;min-width:260px;border-right:1px solid #F0F2F6}
.anv-field:last-child{border-right:none}
.anv-lbl{
  width:130px;min-width:130px;padding:10px 12px;
  font-size:11px;font-weight:700;color:#595959;
  background:#F8F9FC;align-self:stretch;
  display:flex;align-items:center;border-right:1px solid #E8EDF4
}
.anv-lbl.req::after{content:' *';color:#C02A2A}
.anv-inp{
  width:100%;padding:8px 10px;
  border:1px solid #D4D8E0;border-radius:4px;
  font-size:13px;font-family:inherit;color:#1A1A1C;
  background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;
  box-sizing:border-box
}
.anv-inp:focus{border-color:#0017C1;box-shadow:0 0 0 3px rgba(0,23,193,.10)}
.anv-inp[readonly]{background:#FFFBF0;border-color:#E8D060;color:#6B4A00;cursor:default}
.anv-sel{
  width:100%;padding:8px 10px;
  border:1px solid #D4D8E0;border-radius:4px;
  font-size:13px;font-family:inherit;color:#1A1A1C;
  background:#fff;outline:none;transition:.15s;box-sizing:border-box
}
.anv-sel:focus{border-color:#0017C1;box-shadow:0 0 0 3px rgba(0,23,193,.10)}
.anv-ta{
  width:100%;padding:8px 10px;
  border:1px solid #D4D8E0;border-radius:4px;
  font-size:13px;font-family:inherit;color:#1A1A1C;
  background:#fff;outline:none;resize:vertical;
  transition:border-color .15s;box-sizing:border-box;min-height:72px
}
.anv-ta:focus{border-color:#0017C1;box-shadow:0 0 0 3px rgba(0,23,193,.10)}

/* 現地チェックシート追加ボタン */
.anv-cs-add-btn{
  padding:5px 12px;background:#0017C1;color:#fff;
  border:none;border-radius:4px;font-size:12px;cursor:pointer
}
.anv-cs-add-btn:hover{background:#00119A}
.anv-cs-del-btn{
  border:1px solid #FDEAEA;background:#fff;color:#C02A2A;
  border-radius:4px;padding:3px 8px;cursor:pointer;font-size:12px
}
.anv-cs-del-btn:hover{background:#FDEAEA}

/* ── 案件詳細モーダル ── */
#ankenDetailModal{
  position:fixed;top:50%;left:50%;
  transform:translate(-50%,-52%) scale(.97);
  width:min(680px,96vw);max-height:88vh;
  background:#fff;border-radius:var(--r);border:1px solid #D4D8E0;
  box-shadow:0 8px 40px rgba(0,0,0,.15);
  z-index:620;opacity:0;pointer-events:none;
  transition:transform .2s ease,opacity .2s ease;
  display:flex;flex-direction:column;overflow:hidden
}
#ankenDetailModal.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
.akdm-hd{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px 12px;
  background:#0017C1;
  border-radius:var(--r) var(--r) 0 0
}
.akdm-hd-left{display:flex;align-items:center;gap:8px;min-width:0}
.akdm-hd-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.akdm-status-tag{
  font-size:11px;font-weight:700;
  padding:2px 8px;border-radius:2px;letter-spacing:0
}
.akdm-title{font-size:15px;font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.akdm-edit-btn{
  background:rgba(255,255,255,.18);color:#fff;
  border:1px solid rgba(255,255,255,.4);padding:6px 14px;
  border-radius:4px;font-size:12px;font-weight:700;cursor:pointer;transition:var(--tr)
}
.akdm-edit-btn:hover{background:rgba(255,255,255,.30)}
.akdm-close-btn{
  background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);
  width:28px;height:28px;border-radius:4px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--tr)
}
.akdm-close-btn:hover{background:rgba(255,255,255,.25);transform:none}
.akdm-sec-title{
  font-size:11px;font-weight:700;color:#0017C1;
  letter-spacing:0;text-transform:none;
  padding:10px 18px 6px;border-top:1px solid #F0F2F6
}
.akdm-sec:first-child .akdm-sec-title{border-top:none;padding-top:12px}
.akdm-fields{display:grid;grid-template-columns:1fr 1fr;gap:0}
.akdm-field{display:flex;flex-direction:column;padding:8px 18px;border-bottom:1px solid #F8F9FC}
.akdm-field:nth-child(odd){border-right:1px solid #F0F2F6}
.akdm-lbl{font-size:10px;font-weight:700;color:#8A8A8A;margin-bottom:2px}
.akdm-val{font-size:13px;font-weight:600;color:#1A1A1C;line-height:1.5;word-break:break-word}

/* ════════════════════════════════════════════
   📋 成約アプリ
   ════════════════════════════════════════════ */
#seiyakuView{display:none;position:fixed;inset:0;background:#f3f4f6;z-index:100;overflow:hidden;flex-direction:column}
#seiyakuView.active{display:flex}
.seiy-body{display:flex;flex:1;overflow:hidden;gap:0}
.seiy-left{width:320px;min-width:260px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}
.seiy-left-head{padding:14px 16px 10px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;background:#f8fafc}
.seiy-left-head span{font-size:13px;font-weight:700;color:#1a3a6b}
.seiy-count{background:#1a6fc4;color:#fff;border-radius:12px;font-size:11px;font-weight:700;padding:2px 8px}
.seiy-search{padding:10px 12px;border-bottom:1px solid #e2e8f0}
.seiy-search input{width:100%;box-sizing:border-box;border:1px solid #d1d9e6;border-radius:8px;padding:7px 12px;font-size:13px;outline:none;transition:.2s}
.seiy-search input:focus{border-color:#1a6fc4;box-shadow:0 0 0 3px rgba(26,111,196,.12)}
.seiy-sort-btns{display:flex;gap:6px;margin-top:7px}
.seiy-sort-btn{flex:1;padding:5px 0;border:1px solid #d1d9e6;border-radius:6px;background:#f8fafc;font-size:11px;font-weight:600;color:#64748b;cursor:pointer;transition:.15s}
.seiy-sort-btn:hover{border-color:#1a6fc4;color:#1a6fc4}
.seiy-sort-btn.active{background:#1a6fc4;border-color:#1a6fc4;color:#fff}
.seiy-list{flex:1;overflow-y:auto}
.seiy-item{padding:12px 16px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:.15s}
.seiy-item:hover{background:#eef4ff}
.seiy-item.active{background:#dbeafe;border-left:3px solid #1a6fc4}
.seiy-item-no{font-size:10px;color:#6b7280;font-weight:600;margin-bottom:2px}
.seiy-item-name{font-size:13px;font-weight:700;color:#1e3a5f;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seiy-item-site{font-size:12px;color:#4b5563;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seiy-item-meta{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}
.seiy-item-date{font-size:11px;color:#9ca3af}
.seiy-item-amt{font-size:11px;font-weight:700;color:#1a6fc4}
.seiy-right{flex:1;overflow-y:auto;padding:20px}
.seiy-empty{display:flex;align-items:center;justify-content:center;height:200px;color:#9ca3af;font-size:15px}
.seiy-case-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.seiy-case-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
.seiy-case-title{font-size:18px;font-weight:800;color:#1e3a5f}
.seiy-open-btn{flex-shrink:0;padding:6px 14px;background:#1a6fc4;color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap}
.seiy-open-btn:hover{background:#1558a0;box-shadow:0 2px 8px rgba(26,111,196,.3)}
.seiy-amt-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px;margin-top:16px}
.seiy-amt-title{font-size:13px;font-weight:800;color:#1a3a6b;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #e2e8f0;display:flex;align-items:center;gap:6px}
.seiy-amt-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border-bottom:1px solid #f0f4f8}
.seiy-amt-row:last-child{border-bottom:none}
.seiy-amt-cell{padding:7px 10px}
.seiy-amt-cell-lbl{font-size:10px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
.seiy-amt-cell-val{font-size:13px;color:#1f2937;font-weight:600}
.seiy-amt-row.total .seiy-amt-cell{background:#f0f4fa}
.seiy-amt-row.total .seiy-amt-cell-val{font-weight:700;color:#1a3a6b}
.seiy-amt-row.profit .seiy-amt-cell{background:#eaf4ea}
.seiy-amt-row.profit .seiy-amt-cell-val{font-weight:800;color:#007a3b;font-size:14px}
.seiy-amt-row.profit .seiy-amt-cell:nth-child(2) .seiy-amt-cell-val{color:#007a3b}
.seiy-amt-spacer{padding:5px 0}
.anv-back-seiyaku{color:#1a6fc4!important}
.seiy-case-no{font-size:12px;color:#6b7280;margin-bottom:14px}
.seiy-case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 16px}
.seiy-case-field{display:flex;flex-direction:column;gap:2px}
.seiy-case-label{font-size:10px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}
.seiy-case-val{font-size:13px;color:#1f2937;font-weight:600}
.seiy-docs-title{font-size:14px;font-weight:800;color:#1a3a6b;margin-bottom:12px;padding-bottom:6px;border-bottom:2px solid #1a3a6b;display:flex;align-items:center;gap:8px}
.seiy-docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.seiy-doc-btn{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:16px 14px;cursor:pointer;transition:.2s;text-align:left;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.seiy-doc-btn:hover{border-color:#1a6fc4;background:#eef4ff;box-shadow:0 4px 12px rgba(26,111,196,.15);transform:translateY(-1px)}
.seiy-doc-btn:active{transform:translateY(0)}
.seiy-doc-icon{font-size:22px;line-height:1}
.seiy-doc-name{font-size:13px;font-weight:700;color:#1e3a5f;line-height:1.3}
.seiy-doc-desc{font-size:11px;color:#6b7280}
/* 書類モーダル */
.seiy-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:500;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}
.seiy-modal.open{display:flex}
.seiy-modal-inner{background:#fff;border-radius:12px;width:100%;max-width:860px;box-shadow:0 20px 60px rgba(0,0,0,.25);flex-shrink:0}
.seiy-modal-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#1a3a6b;border-radius:12px 12px 0 0}
.seiy-modal-hd-title{color:#fff;font-size:16px;font-weight:700}
.seiy-modal-hd-actions{display:flex;gap:8px}
.seiy-modal-hd-actions button{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;border:none}
.seiy-btn-print{background:#fff;color:#1a3a6b}
.seiy-btn-close{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.4)!important}
.seiy-doc-body{padding:32px 40px;min-height:400px}
/* 書類共通スタイル */
.sdoc{font-family:'Yu Mincho','游明朝','MS Mincho',serif;font-size:13px;line-height:1.8;color:#111}
.sdoc h1{text-align:center;font-size:22px;font-weight:900;margin:0 0 24px;letter-spacing:.1em}
.sdoc h2{font-size:15px;font-weight:800;border-bottom:2px solid #333;margin:20px 0 8px;padding-bottom:4px}
.sdoc .sdoc-meta{display:flex;justify-content:space-between;margin-bottom:16px;font-size:12px}
.sdoc .sdoc-to{font-size:16px;font-weight:700;margin-bottom:20px}
.sdoc table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12px}
.sdoc table th,.sdoc table td{border:1px solid #999;padding:6px 10px}
.sdoc table th{background:#f0f0f0;font-weight:700;text-align:center}
.sdoc table .num{text-align:right}
.sdoc .sdoc-sign{margin-top:40px;text-align:right}
.sdoc .sdoc-sign-box{display:inline-block;border:1px solid #999;padding:16px 40px;text-align:center;min-width:200px}
.sdoc .draft-mark{background:#fff3cd;border:2px dashed #f59e0b;border-radius:6px;padding:8px 16px;color:#92400e;font-size:12px;font-weight:700;text-align:center;margin-bottom:16px;font-family:sans-serif}
/* 印刷 */
@media print{
  #seiyakuView .seiy-modal{position:static!important;background:none!important;padding:0!important;display:block!important}
  #seiyakuView .seiy-modal-inner{box-shadow:none!important;border-radius:0!important;max-width:none!important}
  #seiyakuView .seiy-modal-hd{display:none!important}
  #seiyakuView .seiy-doc-body{padding:0!important}
  body>*:not(#seiyakuView):not(#spi3View){display:none!important}
}
body.pd-ios #seiyakuView{z-index:300}
body.pd-ios.app-open #seiyakuView{top:64px!important;height:calc(100vh - 64px)!important}

/* ════════════════════════════════════════════
   🏠 ポータル（iOSホーム）— シンプル仕上げ
   ・装飾（光沢/影/ガラス感）を抑えフラットに
   ・アプリアイコン色をブランド紺で統一
   ※ レイアウト・機能・壁紙ピッカー等の仕様は不変
   ════════════════════════════════════════════ */

/* ── アプリアイコン：紺で統一・フラットなソリッドタイル ── */
body.pd-ios .ios-icon{
  background:#2B4A82 !important;                       /* 全アプリ共通のブランド紺 */
  box-shadow:0 3px 8px -3px rgba(20,30,55,.30) !important;  /* 影を1枚に簡素化 */
}
body.pd-ios .ios-icon::before,
body.pd-ios .ios-icon::after{display:none !important;}      /* 上部グロス／下部陰影の立体演出を除去 */

/* ── ウィジェット：強い影・ガラス感を抑えてフラットに ── */
body.pd-ios .ios-widget-clock,
body.pd-ios .ios-widget-kpi{
  box-shadow:0 2px 10px rgba(20,30,55,.10) !important;
  border-color:rgba(255,255,255,.12) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
}

/* ── ドック：過剰なブラー・ドロップシャドウを軽減 ── */
body.pd-ios .ios-dock-inner{
  backdrop-filter:blur(20px) saturate(130%) !important;
  -webkit-backdrop-filter:blur(20px) saturate(130%) !important;
  box-shadow:0 6px 18px rgba(20,30,55,.22) !important;
  border-color:rgba(255,255,255,.10) !important;
}

/* ── 検索バー：影を軽減して馴染ませる ── */
body.pd-ios .ios-search-bar{
  box-shadow:0 2px 8px rgba(20,30,55,.10) !important;
}

/* ══════════════════════════════════════════════════════════════
   📱 スマホ・タブレット 追加レスポンシブ対応
   デスクトップ(≥1025px)は一切変更なし
   ══════════════════════════════════════════════════════════════ */

/* ─── 1. ヘッダー: 管理ボタンをタブレット以下で非表示 ───
   管理者専用ボタン(ユーザー管理・DB診断)はタブレットでも使わない
   Drive・レイアウト切替はスマホには不要                      */
@media(max-width:1024px){
  #headerUserBtn,#headerDiagBtn{display:none!important}
  .header-right{gap:10px}
}
@media(max-width:768px){
  #headerDriveBtn,#layoutToggleBtn{display:none!important}
  .header-right{gap:8px}
  .header-user{padding:5px 10px;font-size:13px}
  .header-logout{padding:5px 10px;font-size:11px}
}
@media(max-width:480px){
  .header-right{gap:6px}
  .header-bell{width:32px!important;height:32px!important;border-radius:8px!important}
  .header-logout{padding:5px 8px;font-size:11px}
}


/* ─── 3. KPI コントロール行: スマホで縦積み ─── */
@media(max-width:600px){
  .kpi-ctrl-row{flex-direction:column;align-items:stretch}
  .kpi-btn-group{width:100%}
  #kpiSegGroup{margin-left:0!important}
}

/* ─── 4. 見積編集 infobar: スマホで2列→1列 ─── */
@media(max-width:600px){
  .me-infobar{padding:10px 12px;gap:10px}
  .me-if{flex:0 0 calc(50% - 5px)}
  .me-if .w-wide{width:100%!important}
  .me-if .w-med{width:100%!important}
  .me-if .w-nar{width:100%!important}
}
@media(max-width:400px){
  .me-if{flex:0 0 100%}
  #mitEdit .me-actions{flex-wrap:wrap;gap:6px}
  #mitEdit .me-actions .me-btn{flex:1 1 calc(50% - 3px);font-size:12px;padding:8px 6px}
  .me-foot{flex-wrap:wrap;gap:8px}
  .me-foot-total{width:100%}
}

/* ─── 5. ACTIVE Chat: スマホで縦積み ─── */
@media(max-width:480px){
  .acc-body{flex-direction:column!important}
  .acc-sidebar{
    width:100%!important;min-width:100%!important;
    height:auto;max-height:150px;
    border-right:none!important;
    border-bottom:1px solid rgba(255,255,255,.1)
  }
  .acc-ch-scroll{
    flex-direction:row;flex-wrap:nowrap;
    overflow-x:auto;padding:5px 8px;
    -webkit-overflow-scrolling:touch;gap:4px;
    height:auto
  }
  .acc-ch-item{
    flex-shrink:0;white-space:nowrap;
    padding:6px 10px;border-radius:6px;font-size:12px
  }
  .acc-sidebar-footer,.acc-online-area,.acc-me{display:none!important}
  .acc-sidebar-top{padding:8px 12px 6px}
  .acc-workspace-row{margin-bottom:0}
  .acc-main{flex:1;min-height:0;overflow:hidden}
}

/* ─── 6. レコードビュー: アクションボタンをスマホで全幅 ─── */
@media(max-width:600px){
  .rv-act-btns{width:100%;justify-content:flex-end;margin-left:0}
}

/* ─── 7. SPI3ビュー: スマホのパディング最適化 ─── */
@media(max-width:480px){
  .spi3-main{padding:0 8px 40px}
  .spi3-card{padding:16px 14px}
  .spi3-card h2{font-size:14px}
  .spi3-drop{padding:32px 16px}
  .spi3-drop-big{font-size:15px}
}

/* ─── 8. 工程表ドロワー: スマホで全幅 ─── */
@media(max-width:600px){
  .kt-drw{width:100vw!important;border-radius:0}
}

/* ─── 9. ログイン: タブレット最適化 ─── */
@media(min-width:481px) and (max-width:767px){
  .login-container{width:440px}
  .login-card{padding:32px 28px}
}

/* ─── 10. weekly: タブレット縦でメンバーカード1列 ─── */
@media(max-width:900px){
  .weekly-doi-grid{grid-template-columns:1fr!important}
  /* グリッドアイテムの min-width:auto を解除 → .weekly-sub-body の overflow-x:auto が確実に効き
     880px テーブル（未入金）がページ全体ではなくカード内でスクロールするようになる */
  .weekly-member-card{min-width:0}
}

/* ─── 11. 週次推移モーダル: スマホ全幅 ─── */
@media(max-width:540px){
  #weeklyTrendModal .wcm-card{width:98vw!important}
  #weeklyCompareModal .wcm-card{width:98vw!important}
}

/* ════════════════════════════════════════════════════════════════
   MOBILE UX PATCH  v3  —  ≤900px のみ適用、PC(901px+)は無影響
   ════════════════════════════════════════════════════════════════ */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 1  ポータル縦スクロール
   ─ #portalView を固定高さのスクロールコンテナにする
   ─ .ios-dock は position:fixed で常に画面最下部へ
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:900px){
  /* スクロールコンテナ：高さの上限を設けて初めて overflow-y:auto が効く */
  #portalView{
    height:calc(100vh - 56px)!important;   /* svh 未対応ブラウザ向けフォールバック */
    height:calc(100svh - 56px)!important;  /* svh = Small Viewport Height（アドレスバー除く） */
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
    /* fixed ドック（高さ≈96px）の下に隠れないよう余白 */
    padding-bottom:96px!important;
    box-sizing:border-box;
  }
  /* .ios-grid の水平スワイプが縦スクロールを飲み込まないよう pan-x に限定 */
  .ios-grid{
    touch-action:pan-x;
    overscroll-behavior-x:contain;
  }
  /* ドック: position:fixed で #portalView スクロールに関係なく常に最下部 */
  .ios-dock{
    position:fixed!important;
    bottom:0!important; left:0!important; right:0!important;
    padding:6px 8px calc(env(safe-area-inset-bottom,0px) + 6px)!important;
    margin:0!important;
    z-index:120;
    border-radius:0!important;
    width:100%;
    box-sizing:border-box;
  }
  .ios-dock-inner{
    border-radius:0!important;
    max-width:100%!important;
    min-height:64px;
  }
}
/* 480px 以下: ヘッダー高 52px に合わせて再計算 */
@media(max-width:480px){
  #portalView{
    height:calc(100vh - 52px)!important;
    height:calc(100svh - 52px)!important;
  }
}
/* ウィジェット: スマホで 1 列コンパクト */
@media(max-width:640px){
  .ios-widgets{padding:6px 10px 2px!important;gap:8px!important}
  .ios-widgets>.ios-widget{flex:1 1 100%!important;max-width:100%!important;min-width:0!important}
}
/* アイコンページ: 左右パディング・行間を縮小してアイコンを大きく見せる */
@media(max-width:640px){
  .ios-page{padding:8px 10px 4px!important;gap:14px 4px!important}
}
@media(max-width:380px){
  .ios-page{padding:6px 8px 4px!important;gap:10px 2px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 2  ヘッダー: スマホでの視認性・操作性
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  /* ヘッダー左右ツール群の間隔を詰める */
  .header-app-tools{gap:6px!important}
}
@media(max-width:480px){
  .header-app-tools{gap:3px!important}
  .header-search-wrap{flex:1;max-width:none!important}
  /* アイコンボタン最小タップ領域 */
  .header-app-tools button,.header-app-tools .hdr-btn{
    min-width:36px;min-height:36px;padding:4px!important
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 3  ドロワー共通（.cdrw）: 下部シート化
   ─ 従来: 右サイドから出現 → モバイル: 下から全幅シートで出現
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* ドロワー本体 */
  .cdrw{
    width:100%!important;
    max-width:100%!important;
    /* 最大高さ: 画面の 88%（フォームが長い場合もスクロール可） */
    max-height:88dvh!important;
    max-height:88vh!important;
    height:auto!important;
    /* 右端から出現 → 下端から出現 へ変更 */
    top:auto!important;
    bottom:0!important;
    right:0!important;
    left:0!important;
    border-radius:18px 18px 0 0!important;
    /* 下からスライドイン */
    transform:translateY(102%)!important;
  }
  .cdrw.open{
    transform:translateY(0)!important;
  }
  /* ドロワーヘッダー */
  .cdrw-hd{
    border-radius:18px 18px 0 0;
    /* ドラッグハンドル風の視覚ヒント */
    background:#fff;
    padding:14px 16px 10px!important;
  }
  .cdrw-hd::before{
    content:'';
    display:block;
    width:36px;height:4px;
    background:#d1d9e6;
    border-radius:2px;
    margin:0 auto 10px;
  }
  /* ドロワー本体部: 残り高さをスクロール可能に */
  .cdrw-bd{
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    max-height:calc(88dvh - 120px)!important;
    max-height:calc(88vh - 120px)!important;
    padding:0 14px 16px!important;
  }
  /* フォームグループ: min-width 制約を撤廃してはみ出し防止 */
  .cdrw .fg{min-width:0!important;width:100%!important}
  .cdrw .form-row{flex-direction:column!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 4  フォームフィールド: min-width 制約解除
   ─ .fg / .anv-field / .anv-lbl が小画面でもはみ出さないよう
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* フォームグループ最小幅撤廃 */
  .fg{min-width:0!important}
  /* 案件フォームフィールド */
  .anv-field{min-width:0!important;flex:1 1 100%!important}
  .anv-lbl{min-width:86px!important;width:86px!important;flex-shrink:0!important}
}
@media(max-width:400px){
  .anv-lbl{min-width:72px!important;width:72px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 5  テーブル: 全テーブルラップに横スクロール付与
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  /* 顧客・案件・KPI・見積・週次・確認書テーブルラップ */
  .cust-tbl-wrap,.anken-tbl-wrap,
  .kpi-sum-tbl-wrap,.kpi-recent-tbl-wrap,
  .est-tbl-wrap,.mit-tbl-wrap,
  .panel-table-wrap,.sdoc-tbl-wrap{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  /* テーブルヘッダーの sticky が z-index 競合しないよう調整 */
  .cust-tbl thead th,.anken-tbl thead th{z-index:3!important}
}
/* 案件テーブル: 480px 以下で備考列を非表示（重要列を優先） */
@media(max-width:480px){
  .anken-tbl .ak-col-memo,.cust-tbl .c-col-memo{display:none!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 6  案件管理: アクションバー・フォームのモバイル改善
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* アクションボタン群を折り返し */
  .anv-actions{flex-wrap:wrap!important;gap:6px!important}
  .anv-actions .btn{flex:1 1 calc(50% - 3px);text-align:center;min-height:40px}
  /* セクション間パディングを縮小 */
  .anv-section{padding:12px 10px!important}
  .anv-section-title{font-size:12px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 7  KPI ダッシュボード: スマホ用レイアウト
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:600px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}
  .kpi-card{padding:12px 10px!important}
  .kpi-val{font-size:20px!important}
  .kpi-label{font-size:10px!important}
  /* KPI コントロール行を縦積み */
  .kpi-ctrl-row{flex-direction:column!important;align-items:stretch!important;gap:8px!important}
  .kpi-btn-group{width:100%!important}
  #kpiSegGroup{margin-left:0!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 8  見積書: 情報バー・アクション・テーブル
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* 情報バー 2 列化 */
  .me-infobar{gap:6px 8px!important;padding:8px 10px!important;flex-wrap:wrap!important}
  .me-if{flex:0 0 calc(50% - 4px)!important;font-size:11px!important}
  .me-if .w-wide,.me-if .w-med,.me-if .w-nar{width:100%!important}
  /* タブバー横スクロール */
  .me-tabs{overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-width:none!important}
  .me-tabs::-webkit-scrollbar{display:none}
  /* アクションボタン折り返し */
  .me-actions{flex-wrap:wrap!important;gap:6px!important}
  .me-btn{flex:1 1 auto!important;min-width:calc(50% - 3px)!important;justify-content:center!important;min-height:40px}
  /* フッター */
  .me-foot{flex-wrap:wrap!important;gap:8px!important}
  .me-foot-total{width:100%!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 9  ACTIVE Chat: サイドバーを横スクロールタブに
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .acc-body{flex-direction:column!important}
  .acc-sidebar{
    width:100%!important;min-width:100%!important;
    height:auto!important;max-height:108px!important;
    border-right:none!important;
    border-bottom:1px solid rgba(255,255,255,.12)!important;
    flex-shrink:0!important;
  }
  .acc-ch-scroll{
    flex-direction:row!important;flex-wrap:nowrap!important;
    overflow-x:auto!important;-webkit-overflow-scrolling:touch;
    padding:5px 8px!important;gap:4px!important;
    height:auto!important;scrollbar-width:none!important;
  }
  .acc-ch-scroll::-webkit-scrollbar{display:none}
  .acc-ch-item{
    flex-shrink:0!important;white-space:nowrap!important;
    padding:6px 10px!important;border-radius:6px!important;font-size:12px!important;
  }
  .acc-sidebar-footer,.acc-online-area,.acc-me,.acc-sidebar-top .acc-workspace-row{
    display:none!important;
  }
  .acc-main{flex:1!important;min-height:0!important;overflow:hidden!important}
}
@media(max-width:480px){
  .acc-msg-body{max-width:94%!important}
  .acc-msg-input-wrap{padding:6px 8px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 10  週次管理: グラフ・ボタン
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* グラフ切替タブ */
  .wv-mtab{min-height:36px!important;padding:6px 10px!important}
  /* 日付ラベル省略 */
  .weekly-date-label{font-size:11px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   § 11  タッチターゲット / アクセシビリティ
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  /* テーブル内アクションボタン */
  .anken-row .btn-sm,.cust-tbl .btn-sm{
    min-height:40px!important;min-width:40px!important;padding:8px!important;
  }
  /* トースト: 画面中央下部に表示 + safe-area 対応 */
  .toast{
    bottom:calc(env(safe-area-inset-bottom,0px) + 16px)!important;
    right:50%!important;
    transform:translateX(50%) translateY(100px)!important;
    max-width:min(88vw,340px);
    text-align:center;
    border-radius:12px!important;
  }
  .toast.show{
    transform:translateX(50%) translateY(0)!important;
  }
}

/* ════════════════════════════════════════════════════════════════
   MOBILE VISUAL REDESIGN  v1
   ポータル・一覧・ドロワー・ナビを総合リデザイン
   ※ すべて max-width:900px 以下のみ適用
   ════════════════════════════════════════════════════════════════ */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   A. ポータル: ウィジェット圧縮 → 画面内により多くのアイコンを表示
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* ウィジェット間隔を詰める */
@media(max-width:640px){
  .ios-widgets{gap:8px!important;padding:6px 12px 4px!important}
}
/* 時計ウィジェット: パディング・フォントを圧縮 */
@media(max-width:640px){
  .ios-widget-clock{padding:10px 16px!important;border-radius:16px!important}
  .ios-clock-time{font-size:38px!important;letter-spacing:-1.5px!important;line-height:1!important}
  .ios-clock-date{font-size:12px!important;margin-top:2px!important}
  /* グリーティングはスペース節約のため非表示 */
  .ios-clock-greet{display:none!important}
}
/* KPI ウィジェット: 数値を 2 列グリッドに再配置してコンパクト化 */
@media(max-width:640px){
  .ios-widget-kpi{padding:10px 14px!important;border-radius:16px!important}
  .ios-kpi-val{font-size:22px!important;letter-spacing:-.3px!important}
  .ios-kpi-lbl{font-size:10px!important}
  .ios-kpi-row{gap:6px!important}
  .ios-kpi-divider{margin:6px 4px!important}
  .ios-widget-label{font-size:9.5px!important;margin-bottom:6px!important}
}
/* 検索バー: 横幅 100% + 高さ最適化 */
@media(max-width:640px){
  .ios-search-wrap{padding:4px 12px 6px!important;max-width:100%!important}
  .ios-search-bar{height:36px!important;border-radius:12px!important;background:rgba(255,255,255,.18)!important}
  .ios-search-input{font-size:14px!important}
}
/* ページドット: コンパクト */
@media(max-width:640px){
  .ios-page-dots,.ios-page-dot-wrap{padding:6px 0 2px!important;gap:5px!important}
  .ios-page-dot{width:5px!important;height:5px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   B. iOS アイコン: スマホ向けに見やすくリサイズ
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* アイコン本体を少し小さく → 4列でも窮屈にならない */
  .ios-icon{width:58px!important;height:58px!important;border-radius:14px!important}
  .ios-icon svg,.ios-icon img{width:30px!important;height:30px!important}
  /* ラベル: 読みやすいサイズ・行間 */
  .ios-icon-label{
    font-size:10.5px!important;
    max-width:70px!important;
    line-height:1.25!important;
    margin-top:3px!important;
    -webkit-line-clamp:2!important;
  }
  .ios-icon-wrap{gap:0!important}
}
/* Dock アイコン: コンパクト化 */
@media(max-width:640px){
  .ios-dock-inner{
    padding:8px 12px calc(env(safe-area-inset-bottom,0px) + 6px)!important;
    gap:10px!important;
    min-height:58px!important;
  }
  .ios-dock-item .ios-icon{width:52px!important;height:52px!important;border-radius:12px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   C. AppView ヘッダー: コンパクト・クリアなナビゲーション
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  /* ヘッダー高さを統一 */
  .av-header{height:52px!important;padding:0 14px!important;min-height:52px!important}
  /* 戻るボタン: ピル型で視認性アップ */
  .av-back{
    border-radius:20px!important;
    padding:6px 14px 6px 10px!important;
    font-size:13px!important;
    font-weight:600!important;
    background:rgba(255,255,255,.22)!important;
    backdrop-filter:blur(8px);
    min-height:36px!important;
    gap:4px!important;
  }
  /* タイトル */
  .av-title{font-size:16px!important;font-weight:700!important;letter-spacing:-.02em}
  /* 件数バッジ */
  .av-count{font-size:11px!important;opacity:.8}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   D. ナビゲーションタブ: 横スクロール・大きなタップ領域
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  /* タブバー横スクロール化 */
  .av-tabs,.category-bar{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none!important;
    flex-wrap:nowrap!important;
    padding:0 10px!important;
  }
  .av-tabs::-webkit-scrollbar,.category-bar::-webkit-scrollbar{display:none}
  /* タブ: 収縮禁止 + 大きなタップ領域 */
  .av-tab,.category-tab{
    flex-shrink:0!important;
    white-space:nowrap!important;
    min-height:44px!important;
    padding:0 14px!important;
    font-size:13px!important;
    font-weight:600!important;
    display:flex!important;
    align-items:center!important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   E. テーブルリスト: 行を大きく・視認性を向上
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* 行の高さを 54px → 60px に拡大（タップ領域確保） */
  .anken-row td,.cust-row td{
    height:60px!important;
    padding:0 10px!important;
    font-size:13px!important;
  }
  /* テーブルヘッダー: 小さくして行スペースを確保 */
  .anken-tbl thead th,.cust-tbl thead th{
    padding:8px 10px!important;
    font-size:10px!important;
  }
  /* 行アクティブ状態（タップ時のフィードバック） */
  .anken-row:active,.cust-row:active{
    background:#e8eeff!important;
    transform:scale(.99);
    transition:none;
  }
  /* 状況カラーバーを少し太く */
  .anken-row,.cust-row{border-left-width:4px!important}
}
/* テーブルラップ: スクロールヒント（フェードアウト） */
@media(max-width:768px){
  .cust-tbl-wrap,.anken-tbl-wrap{
    border-radius:10px!important;
    box-shadow:0 2px 8px rgba(0,0,0,.06)!important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   F. ドロワー（登録フォーム）: モダンな底部シート
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* ヘッダー内タイトル */
  .cdrw-tit{font-size:15px!important;font-weight:700!important}
  /* ×ボタン: 大きく */
  .cdrw-x{
    width:36px!important;height:36px!important;
    border-radius:50%!important;
    background:#f0f2f5!important;
    font-size:18px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  /* フォームラベル: 大文字・スペーシング */
  .cdrw .fg>label,.cdrw-f>label{
    font-size:11px!important;
    font-weight:700!important;
    letter-spacing:.04em!important;
    text-transform:uppercase!important;
    color:#8096b0!important;
    margin-bottom:5px!important;
  }
  /* 入力フィールド */
  .cdrw-f input:not([type=checkbox]):not([type=radio]),
  .cdrw-f select,
  .cdrw-f textarea{
    border-radius:10px!important;
    padding:11px 13px!important;
    font-size:16px!important;
    border:1.5px solid #e2e8f0!important;
    background:#fafbfc!important;
    line-height:1.4!important;
  }
  .cdrw-f input:focus,.cdrw-f select:focus,.cdrw-f textarea:focus{
    border-color:var(--pri)!important;
    background:#fff!important;
    box-shadow:0 0 0 3px rgba(0,23,193,.08)!important;
    outline:none!important;
  }
  /* textarea: 最低高さ */
  .cdrw-f textarea{min-height:80px!important;resize:vertical!important}
  /* セクション区切り */
  .cdrw-section-title,.cdrw-sep{
    font-size:11px!important;
    font-weight:800!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
    color:#8096b0!important;
    padding:12px 0 6px!important;
    border-bottom:1px solid #f0f2f5!important;
    margin-bottom:10px!important;
  }
  /* フッターボタン */
  .cdrw-ft{
    padding:10px 14px calc(env(safe-area-inset-bottom,0px) + 10px)!important;
    gap:8px!important;
    border-top:1px solid #f0f2f5!important;
    background:#fff!important;
  }
  .cdrw-save{
    flex:1!important;
    min-height:46px!important;
    border-radius:10px!important;
    font-size:15px!important;
    font-weight:700!important;
    letter-spacing:.01em!important;
    background:var(--pri)!important;
  }
  .cdrw-cancel{
    min-height:46px!important;
    border-radius:10px!important;
    font-size:14px!important;
    font-weight:600!important;
    padding:0 20px!important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   G. KPI カード: 2列・読みやすい数値表示
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .kpi-card{
    padding:14px 12px!important;
    border-radius:10px!important;
  }
  .kpi-val{font-size:22px!important;font-weight:800!important;line-height:1.1!important}
  .kpi-lbl{font-size:10px!important;letter-spacing:.04em!important}
  /* KPI カードのアクセントラインを太く */
  .kpi-card::before{height:3px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   H. ボタン全般: 押しやすいサイズ・フィードバック
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  /* 汎用ボタン */
  .btn{min-height:40px!important;padding:9px 16px!important;font-size:13px!important;border-radius:8px!important}
  .btn-sm{min-height:36px!important;padding:6px 12px!important;font-size:12px!important}
  /* プライマリボタン */
  .btn-primary{font-weight:700!important;letter-spacing:.01em!important}
  /* タップ時のフィードバック */
  .btn:active{opacity:.85!important;transform:scale(.97)!important;transition:none!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   I. 案件詳細・レコードビュー: モバイル向け最適化
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* レコードカードをフルワイド */
  .rv-card{border-radius:0!important;max-width:100%!important;box-shadow:none!important;border:none!important}
  /* レコードヘッダー */
  .rv-hdr{padding:12px 14px!important;gap:8px!important}
  .rv-crumb{font-size:13px!important}
  /* レコードボディ */
  .rv-body{padding:12px 14px!important}
  /* ラベル・値の行 */
  .rv-row{
    padding:10px 0!important;
    border-bottom:1px solid #f0f2f5!important;
    gap:8px!important;
  }
  .rv-lbl{
    font-size:11px!important;
    font-weight:700!important;
    min-width:80px!important;
    color:#8096b0!important;
  }
  .rv-val{font-size:14px!important;font-weight:500!important;flex:1!important;word-break:break-all!important}
  /* アクションボタン群 */
  .rv-act-btns{flex-wrap:wrap!important;gap:6px!important;width:100%!important}
  .rv-act-btns .btn{flex:1 1 calc(50% - 3px)!important;min-width:0!important;justify-content:center!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   J. AI Bot ボタン: ポータル上のドック非干渉
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:768px){
  /* AI ボットタブをドック上部に配置 */
  #aiBotTab{
    bottom:calc(env(safe-area-inset-bottom,0px) + 96px)!important;
    right:8px!important;
    border-radius:12px 0 0 12px!important;
    padding:10px 8px!important;
  }
  /* iOS クイックノートトリガー */
  .ios-qn-trigger{
    bottom:calc(env(safe-area-inset-bottom,0px) + 100px)!important;
    right:16px!important;
    width:44px!important;height:44px!important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   K. モーダル: スマホで全幅・下部固定
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .ap-modal{padding:0!important;align-items:flex-end!important}
  .ap-modal-card{
    width:100%!important;
    max-width:100%!important;
    border-radius:18px 18px 0 0!important;
    max-height:90dvh!important;
    max-height:90vh!important;
  }
  .ap-modal-card .modal-hdr{padding:14px 16px 10px!important}
  .ap-modal-card .modal-body{padding:14px 16px!important}
  .ap-modal-card .modal-ft{
    padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 10px)!important;
    gap:8px!important;
    flex-wrap:wrap!important;
  }
  .ap-modal-card .modal-ft .btn{flex:1!important;min-height:44px!important;justify-content:center!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   L. 全体タイポグラフィ / スペーシング補正
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* メインコンテンツパディング */
  .main,.av-body{padding:12px 12px!important}
  /* パネルカード */
  .dashboard-panel,.full-panel{border-radius:10px!important;margin-bottom:12px!important;padding:14px!important}
  /* カードタイトル */
  .panel-title{font-size:13px!important;font-weight:700!important;padding:12px 14px!important}
  /* カテゴリーバー内の .main オーバーライド */
  #portalView .main{padding:8px 12px 12px!important}
}

/* ════════════════════════════════════════════════════════════════
   📱 MOBILE FIT v4 — 横スクロール撲滅 / 見切れ防止 / 一覧カード化
   ────────────────────────────────────────────────────────────────
   ユーザー要望: 画面が途切れる・横スクロールが出る「無駄」を排除し、
                 基本は縦スクロールのみ・画面内に収まりよく。
   方針: ≤900px のみ適用（PC 901px+ は一切不変）。
         根本原因 = 固定幅 #appView 内で .av-body(max-width:1200px) が
         中身(テーブル)の最小幅に引っ張られ 1200px に膨張→右側が見切れる。
         flex チェーン各段に min-width:0 を入れて確実に画面幅へ収縮させる。
   ════════════════════════════════════════════════════════════════ */
@media(max-width:900px){
  /* 0) ルート横溢れガード（clip は scroll-container を作らず position:sticky を壊さない） */
  html,body{overflow-x:clip;max-width:100%}

  /* 1) flex の自動最小幅(min-width:auto)を解除 → 見切れ/横溢れの根本修正 */
  #appView .av-body,#appView .av-content,#appView #avList,#appView #avForm,
  #appView .toolbar,#appView .cust-filter-bar,#appView .anken-filter-bar,
  .cust-tbl-wrap,.anken-tbl-wrap,
  .kpi-main,.weekly-main,.spi3-main,
  .anv-body,.anv-inner,#rvBody,.rv-card,.rv-edit-form,.me-main{
    min-width:0!important;max-width:100%!important;
  }
  #appView .av-body{margin-left:0!important;margin-right:0!important;width:100%!important}

  /* 2) はみ出すテーブルは“カード内だけ”横スクロール（ページは縦のみ） */
  .cust-tbl-wrap,.anken-tbl-wrap,.kpi-sum-tbl-wrap,
  .est-tbl-wrap,.mit-tbl-wrap,.panel-table-wrap{
    overflow-x:auto!important;-webkit-overflow-scrolling:touch;
  }

  /* 3) 画像/SVG/動画/長い文字列が幅を突き破らない */
  #appShell img,#appShell canvas,#appShell video,#appShell svg{max-width:100%}
  #appShell pre,#appShell code{white-space:pre-wrap;word-break:break-word}

  /* 4) pd-ios(iPad没入)の 100vw を 100% に統一して縦スクロールバー分の溢れ防止 */
  body.pd-ios .pd-wrap,body.pd-ios #portalView,body.pd-ios .pd-main,
  body.pd-ios #pdSec-home,body.pd-ios #iosHomeView,body.pd-ios.app-open .header{
    width:100%!important;max-width:100%!important;
  }
}

/* ───────────────────────────────────────────────────────────────
   ≤640px: 顧客 / 案件 一覧を「カード型」に再構成
   1件=1カードの縦並び。表の横スクロールを廃し縦スクロールのみに。
   （onclick 等の挙動は不変。見た目だけを再構成）
   ─────────────────────────────────────────────────────────────── */
@media(max-width:640px){
  /* テーブル枠をブロック化（colgroup/thead は隠す） */
  #appView.cust-mode .cust-tbl,#appView.cust-mode .cust-tbl tbody,
  #appView.anken-mode .anken-tbl,#appView.anken-mode .anken-tbl tbody{
    display:block;width:100%;min-width:0!important;
  }
  #appView.cust-mode .cust-tbl colgroup,#appView.cust-mode .cust-tbl thead,
  #appView.anken-mode .anken-tbl colgroup,#appView.anken-mode .anken-tbl thead{
    display:none!important;
  }
  /* カード化したらラップの横スクロールは不要 */
  #appView.cust-mode .cust-tbl-wrap,#appView.anken-mode .anken-tbl-wrap{
    overflow-x:hidden!important;
  }
  /* 行＝カード */
  #appView.cust-mode .cust-row,#appView.anken-mode .anken-row{
    display:flex!important;flex-direction:column;gap:2px;
    position:relative;
    padding:11px 78px 11px 14px!important;   /* 右=操作ボタン用の余白 */
    height:auto!important;
    border-bottom:1px solid #eef1f6!important;
  }
  /* セル初期化 */
  #appView.cust-mode .cust-row td,#appView.anken-mode .anken-row td{
    display:block;height:auto!important;padding:0!important;border:none!important;
    white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
    font-size:13px;line-height:1.45;color:#2d3748;max-width:100%;
  }
  #appView.cust-mode .cust-row td:empty,#appView.anken-mode .anken-row td:empty{display:none!important}
  /* フォルダ等のアイコンセルはカード下部にインライン配置 */
  #appView.cust-mode .cust-row td:nth-child(1),
  #appView.anken-mode .anken-row td:nth-child(1){order:6;display:flex;gap:6px;margin-top:5px}
  /* 操作ボタンは右上に固定クラスタ */
  #appView.cust-mode .cust-row .c-act-wrap,#appView.anken-mode .anken-row .c-act-wrap{display:flex;gap:5px}
  #appView.cust-mode .cust-row .c-btn,#appView.anken-mode .anken-row .c-btn{width:32px;height:32px}

  /* ── 顧客カード（td: 📁1 / コード2 / 名前3 / 〒4 / 住所5 / TEL6 / 操作7）── */
  #appView.cust-mode .cust-row td:nth-child(3){order:1;font-size:15.5px;font-weight:700;color:#16233d;line-height:1.3}
  #appView.cust-mode .cust-row td:nth-child(2){order:2;font-size:11px;color:#8096b0;font-weight:600;letter-spacing:.02em}
  #appView.cust-mode .cust-row td:nth-child(4){order:3;font-size:12px;color:#5a6b85}
  #appView.cust-mode .cust-row td:nth-child(5){order:4;font-size:12.5px;color:#41506b}
  #appView.cust-mode .cust-row td:nth-child(5):not(:empty)::before{content:'📍 '}
  #appView.cust-mode .cust-row td:nth-child(6){order:5;font-size:13.5px;color:#1d4ed8;font-weight:600}
  #appView.cust-mode .cust-row td:nth-child(6):not(:empty)::before{content:'📞 '}
  #appView.cust-mode .cust-row td:nth-child(7){position:absolute;top:8px;right:8px}

  /* ── 案件カード（td: 📁1 / 日付2 / 顧客3 / 現場4 / 住所5 / 状況6 / 担当7 / 操作8）── */
  #appView.anken-mode .anken-row td:nth-child(6){order:0;text-align:left!important;margin-bottom:2px}        /* 状況バッジ */
  #appView.anken-mode .anken-row td:nth-child(4){order:1;font-size:15px;font-weight:700;color:#16233d;line-height:1.3} /* 現場名=主役 */
  #appView.anken-mode .anken-row td:nth-child(3){order:2;font-size:12.5px;color:#41506b}                     /* 顧客名 */
  #appView.anken-mode .anken-row td:nth-child(3):not(:empty)::before{content:'🏢 '}
  #appView.anken-mode .anken-row td:nth-child(2){order:3;font-size:11.5px;color:#8096b0}                     /* 発生日 */
  #appView.anken-mode .anken-row td:nth-child(2):not(:empty)::before{content:'🗓 '}
  #appView.anken-mode .anken-row td:nth-child(5){order:4;font-size:12px;color:#5a6b85}                       /* 現場住所 */
  #appView.anken-mode .anken-row td:nth-child(5):not(:empty)::before{content:'📍 '}
  #appView.anken-mode .anken-row td:nth-child(7){order:5;font-size:12px;color:#5a6b85}                       /* 担当者 */
  #appView.anken-mode .anken-row td:nth-child(7):not(:empty)::before{content:'👤 '}
  #appView.anken-mode .anken-row td:nth-child(8){position:absolute;top:8px;right:8px}                        /* 操作 */
}

/* ───────────────────────────────────────────────────────────────
   ≤640px: 汎用データテーブル(#aT.panel-table)を「ラベル付きカード」化
   対象: 見積/外注/入金/廃材/安全/チェックシート/作業指示/申請/人事評価/
        日報/名刺/各マスタ 等（refreshList・buildPaymentList 共通の #aT）
   各 <td> に data-label（列見出し）付与済 → CSS でラベル表示し縦並びに。
   → 横スクロール必須を解消（カンバン=taskMgr / ガント=koutei は対象外）
   ─────────────────────────────────────────────────────────────── */
@media(max-width:640px){
  /* パネル枠: 横スクロール廃止・縦に流す */
  #appView .full-panel{border-radius:0!important;box-shadow:none!important;border:none!important;margin:0!important}
  #appView .panel-body-full{overflow-x:hidden!important;max-height:none!important}
  /* テーブル→ブロック化 / ヘッダー非表示 */
  #appView #aT.panel-table,#appView #aT.panel-table tbody{display:block;width:100%;min-width:0!important}
  #appView #aT.panel-table thead{display:none!important}
  /* 行＝カード */
  #appView #aT.panel-table tr{
    display:block;position:relative;
    padding:10px 46px 10px 14px;
    border-bottom:1px solid #eef1f6!important;background:#fff;
  }
  #appView #aT.panel-table tr.clickable-row:active{background:#f0f5ff!important}
  /* セル＝「ラベル : 値」の行 */
  #appView #aT.panel-table td{
    display:flex;gap:10px;align-items:baseline;
    padding:2px 0!important;border:none!important;height:auto!important;
    white-space:normal!important;word-break:break-word;
    font-size:13px;line-height:1.45;color:#2d3748;max-width:100%;
  }
  #appView #aT.panel-table td::before{
    content:attr(data-label);
    flex:0 0 92px;color:#8096b0;font-size:10.5px;font-weight:700;letter-spacing:.02em;line-height:1.6;
  }
  /* 空セルは隠す（見やすさ優先） */
  #appView #aT.panel-table td:empty{display:none!important}
  /* 先頭列の値を少し強調（カードの視認アンカー） */
  #appView #aT.panel-table td:first-child{font-weight:700;color:#16233d}
  /* 削除ボタン(row-act)は右上に固定 */
  #appView #aT.panel-table td.row-act{position:absolute;top:7px;right:8px;padding:0!important}
  #appView #aT.panel-table td.row-act::before{display:none!important}
  #appView #aT.panel-table td.row-act:empty{display:none!important}
  #appView #aT.panel-table td.row-act .row-btn-del{width:30px;height:30px;font-size:14px}
  /* ゴースト行(成約・未入金)の視覚キュー */
  #appView #aT.panel-table tr.payment-ghost-row{border-left:3px solid #f6ad55}
}

/* ───────────────────────────────────────────────────────────────
   ≤640px: 一覧ツールバーの折返し最適化（件数表示の右端はみ出し防止）
   検索を全幅 → 件数/ボタンを次の行へ。全アプリ一覧で共通。
   ─────────────────────────────────────────────────────────────── */
@media(max-width:640px){
  #appView .toolbar{gap:8px!important;row-gap:8px!important}
  #appView .toolbar-search{flex:1 1 100%!important;max-width:none!important}
  #appView .toolbar-info{font-size:12px!important;white-space:nowrap;color:#5a6b85}
}

/* ───────────────────────────────────────────────────────────────
   ≤760px: 成約管理を「ドリルダウン型」に
   従来は .seiy-left(320px)+.seiy-right が横並びで、スマホでは右ペインが
   ~55pxに潰れ文字が1字ずつ縦になる壊滅状態だった。
   → 一覧を全幅／案件を選ぶと詳細を全幅表示（.seiy-mobile-detail で切替）。
   ─────────────────────────────────────────────────────────────── */
.seiy-back-list{display:none}
@media(max-width:760px){
  #seiyakuView .seiy-body{flex-direction:column!important}
  #seiyakuView .seiy-left{width:100%!important;min-width:0!important;border-right:none!important;flex:1 1 auto!important;min-height:0!important}
  #seiyakuView .seiy-right{width:100%!important;flex:1 1 auto!important;min-height:0!important;padding:14px 14px 28px!important}
  #seiyakuView:not(.seiy-mobile-detail) .seiy-right{display:none!important}
  #seiyakuView.seiy-mobile-detail .seiy-left{display:none!important}
  #seiyakuView.seiy-mobile-detail .seiy-back-list{display:inline-flex;align-items:center;gap:5px;margin-bottom:14px;padding:8px 16px 8px 11px;background:#1a6fc4;color:#fff;border:none;border-radius:20px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
  #seiyakuView.seiy-mobile-detail .seiy-back-list:active{background:#1558a0}
  #seiyakuView .seiy-item{padding:14px 16px!important}
  #seiyakuView .seiy-item-name,#seiyakuView .seiy-item-site{white-space:normal!important}
  #seiyakuView .seiy-amt-row{grid-template-columns:1fr!important}
  #seiyakuView .seiy-amt-cell{display:flex!important;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 6px!important;border-bottom:1px solid #f0f4f8}
  #seiyakuView .seiy-amt-cell-lbl{margin-bottom:0!important}
  #seiyakuView .seiy-case-grid{grid-template-columns:1fr 1fr!important}
  #seiyakuView .seiy-docs-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  #seiyakuView .seiy-case-title-row{flex-wrap:wrap!important}
  #seiyakuView .seiy-case-title{font-size:16px!important}
  #seiyakuView .seiy-doc-btn{padding:12px 12px!important}
  #seiyakuView .av-header{flex-wrap:wrap!important;height:auto!important;min-height:52px;padding:8px 12px!important;gap:6px 8px!important}
  #seiyakuView .seiy-empty{height:auto!important;min-height:120px;padding:30px 16px!important;text-align:center}
  #seiyakuView .seiy-modal{padding:0!important}
  #seiyakuView .seiy-modal-inner{border-radius:0!important;max-width:none!important}
  #seiyakuView .seiy-doc-body{padding:16px 14px!important}
  #seiyakuView .seiy-modal-hd{flex-wrap:wrap!important;gap:6px!important;padding:10px 14px!important}
}

/* pd-ios 没入時: アプリ画面トップオフセットを実ヘッダー高に同期（iOSホーム検索の覗き解消）*/
@media(max-width:768px){
  body.pd-ios.app-open #appView,body.pd-ios.app-open #spi3View,body.pd-ios.app-open #weeklyView,
  body.pd-ios.app-open #kpiView,body.pd-ios.app-open #actChatView,body.pd-ios.app-open #seiyakuView,
  body.pd-ios.app-open #recordView{top:56px!important;height:calc(100vh - 56px)!important;height:calc(100svh - 56px)!important}
}
@media(max-width:480px){
  body.pd-ios.app-open #appView,body.pd-ios.app-open #spi3View,body.pd-ios.app-open #weeklyView,
  body.pd-ios.app-open #kpiView,body.pd-ios.app-open #actChatView,body.pd-ios.app-open #seiyakuView,
  body.pd-ios.app-open #recordView{top:48px!important;height:calc(100vh - 48px)!important;height:calc(100svh - 48px)!important}
}

/* ≤640px: 案件フォームヘッダー(.anv-hd)のボタン潰れ(CJK縦書き化)防止 */
@media(max-width:640px){
  #ankenNewView .anv-hd{height:auto!important;min-height:52px;flex-wrap:wrap!important;padding:8px 10px!important;gap:7px!important;align-items:center}
  #ankenNewView .anv-hd>*{flex-shrink:0!important;white-space:nowrap!important}
  #ankenNewView .anv-back{padding:7px 12px!important;font-size:12px!important}
  #ankenNewView .anv-title{flex:1 1 auto!important;font-size:15px!important;font-weight:700!important;padding:0 2px!important;min-width:0!important;overflow:hidden;text-overflow:ellipsis}
  #ankenNewView #anvPreviewBtn,#ankenNewView .anv-mode-btn,#ankenNewView .anv-save{padding:7px 12px!important;font-size:12px!important;min-height:36px;flex:0 1 auto!important}
}

/* ════════════════════════════════════════════════════════════════
   📱 MOBILE POLISH v5 — 残り全画面の実用改善（2026-06-05）
   実測で確認した問題点を全て修正。PC(≥901px)は一切不変。
   ════════════════════════════════════════════════════════════════ */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §1 KPI 月比較バナー：横スクロール化
   実測: item幅41px/ラベル幅10px/高58px → 縦書き化で完全破綻
   → overflow-x:auto + flex-wrap:nowrap + 各item最小幅確保
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:760px){
  .kpi-mom-banner{
    overflow-x:auto!important;-webkit-overflow-scrolling:touch;
    flex-wrap:nowrap!important;gap:0!important;
    scrollbar-width:none;
  }
  .kpi-mom-banner::-webkit-scrollbar{display:none}
  .kpi-mom-title{
    min-width:60px!important;max-width:60px!important;
    font-size:10px!important;padding:8px 10px!important;
    line-height:1.4!important;white-space:normal!important;
    flex-shrink:0!important;
  }
  .kpi-mom-item{
    flex:0 0 84px!important;  /* flex-grow/shrink/basis を一括上書き */
    min-width:84px!important;
    padding:8px 10px!important;
  }
  .kpi-mom-lbl{white-space:nowrap!important;font-size:10px!important}
  .kpi-mom-val{font-size:13px!important;white-space:nowrap!important}
  .kpi-mom-delta{white-space:nowrap!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §2 KPI コントロール行：スマホで整然と折返し
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .kpi-ctrl-row{
    flex-direction:column!important;align-items:stretch!important;
    gap:8px!important;padding:12px!important;
  }
  .kpi-period-sel{width:100%!important;font-size:14px!important;padding:9px 12px!important}
  .kpi-btn-group{display:flex!important;flex-wrap:wrap!important;gap:6px!important;width:100%!important}
  .kpi-btn{flex:1 1 auto!important;min-height:38px!important;white-space:nowrap!important;padding:6px 10px!important;font-size:13px!important}
  #kpiSegGroup{margin-left:0!important}
  .kpi-csv-area{width:100%!important;gap:6px!important}
  .kpi-csv-btn{flex:1!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §3 KPI/週次 モードパネル（avKpiPanel/avWeeklyPanel）
   ─ ヘッダー下のボタン群がスマホで横からはみ出す
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  #appView.kpi-mode #avKpiPanel{
    flex-wrap:wrap!important;padding:8px 12px!important;gap:6px!important;height:auto!important
  }
  #appView.kpi-mode #avKpiPanel .kpi-refresh{flex:1 1 auto!important;white-space:nowrap!important}
  #appView.weekly-mode #avWeeklyPanel{
    flex-wrap:wrap!important;padding:8px 12px!important;gap:6px 8px!important;height:auto!important;align-items:center!important
  }
  .weekly-hdr-btn{
    padding:6px 10px!important;font-size:11px!important;margin-left:0!important;
    white-space:nowrap!important;flex-shrink:0!important;min-height:34px!important;
  }
  .weekly-date-label{font-size:11px!important;flex-shrink:0!important}
  .av-mode-hdr-btns{display:flex!important;flex-wrap:wrap!important;gap:5px!important}
  .wkly-save-wrap{flex-shrink:0!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §4 レコード詳細バー（.rv-bar）：ボタン整頓
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .rv-bar{
    padding:8px 12px!important;gap:6px!important;
    margin-bottom:0!important;border-radius:0!important;
    box-shadow:0 1px 3px rgba(0,0,0,.06)!important;
  }
  .rv-back{
    padding:6px 12px 6px 8px!important;font-size:12px!important;
    border-radius:16px!important;flex-shrink:0!important;white-space:nowrap!important;
  }
  .rv-crumb{font-size:12px!important;min-width:0!important}
  .rv-nav-wrap{flex-shrink:0!important}
  .rv-act-btns{
    width:100%!important;justify-content:flex-end!important;
    flex-wrap:wrap!important;gap:6px!important;
  }
  .rv-act-btns .btn{
    flex:1 1 calc(50% - 3px)!important;justify-content:center!important;
    min-height:40px!important;white-space:nowrap!important;font-size:13px!important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §5 見積編集ネイティブ（#mitEdit / .me-hdr）
   ─ ヘッダーボタン・情報バー・フッターをスマホ向けに再構成
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  /* ヘッダー */
  .me-hdr{
    height:auto!important;min-height:52px;
    flex-wrap:wrap!important;padding:8px 12px!important;gap:6px!important;
  }
  .me-logo{flex-shrink:0!important}
  .me-title{font-size:14px!important;font-weight:700!important;flex-shrink:0!important}
  .me-sub{display:none!important}
  .me-actions{
    margin-left:0!important;width:100%!important;
    flex-wrap:wrap!important;gap:5px!important;order:10;
  }
  .me-btn{
    flex:1 1 auto!important;padding:7px 10px!important;font-size:12px!important;
    white-space:nowrap!important;min-height:36px!important;text-align:center!important;
  }
  .me-close-left{flex-shrink:0!important;margin-left:auto!important;order:1}
  /* 情報バー */
  .me-infobar{
    flex-wrap:wrap!important;gap:8px 10px!important;padding:8px 10px!important;
  }
  .me-if{flex:0 0 calc(50% - 5px)!important}
  .me-if .w-wide,.me-if .w-med,.me-if .w-nar{width:100%!important;font-size:13px!important}
  /* タブ */
  .me-tab{padding:0 12px!important;font-size:12px!important}
  /* 本体 */
  .me-main{padding:10px 10px 80px!important}
  /* フッター */
  .me-foot{flex-wrap:wrap!important;gap:8px!important;padding:8px 12px!important}
  .me-foot-total{
    width:100%!important;order:-1!important;/* 合計を最上段へ */
    justify-content:space-between!important;
  }
  .me-foot-btn{flex:1 1 auto!important;text-align:center!important;justify-content:center!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §6 不動産（realestate-mode）≤760px：サイドバー→トップバーに
   ─ width:220pxのサイドバーと地図コンテンツが横並びで幅不足
   → ヘッダーのみ上部に表示、地図エリアを全幅で使う
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:760px){
  #appView.realestate-mode{flex-direction:column!important}
  #appView.realestate-mode #avSidebar{
    width:100%!important;min-width:0!important;
    flex-direction:row!important;
    border-right:none!important;border-bottom:1px solid #e2e8f0!important;
    overflow:hidden!important;flex-shrink:0!important;height:52px!important;max-height:52px!important;
  }
  #appView.realestate-mode #avSidebar .av-header{
    flex:1!important;height:52px!important;padding:0 12px!important;
    border-bottom:none!important;flex-direction:row!important;align-items:center!important;
  }
  #appView.realestate-mode #avRePanel{display:none!important}
  #appView.realestate-mode .av-body{flex:1!important;min-height:0!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §7 SPI3 ステップバー：横スクロール改善＋カード余白圧縮
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .spi3-steps{
    overflow-x:auto!important;-webkit-overflow-scrolling:touch;
    scrollbar-width:none!important;flex-wrap:nowrap!important;
    padding:8px 14px!important;justify-content:flex-start!important;
  }
  .spi3-steps::-webkit-scrollbar{display:none}
  .spi3-step-dot{flex-shrink:0!important;min-width:26px!important;min-height:26px!important;font-size:11px!important}
  .spi3-step-conn{flex-shrink:0!important;min-width:10px!important;max-width:16px!important}
  .spi3-main{padding:0 8px 40px!important}
  .spi3-card{padding:14px 12px!important}
  .spi3-card h2{font-size:13px!important;line-height:1.4!important}
  .spi3-drop{padding:28px 14px!important}
  .spi3-drop-big{font-size:15px!important}
  /* ステップバーをヘッダーにぴったりくっつける */
  #spi3View{padding-top:0!important}
  #spi3StepBar{margin-top:0!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §8 KPIカードグリッド: スマホで2列を確実に維持
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .kpi-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .kpi-card{padding:12px 10px!important;border-radius:8px!important}
  .kpi-val{font-size:20px!important;font-weight:800!important;line-height:1.1!important;word-break:break-all!important}
  .kpi-lbl{font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .kpi-sub{font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §9 チャート: モバイルで高さを適正化（過剰に高いと空白多い）
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .kpi-chart-body{height:200px!important}
  .kpi-chart-card{padding:12px!important;border-radius:10px!important}
  .kpi-chart-title{font-size:12px!important}
  .kpi-chart-sub{font-size:11px!important}
  /* KPIセグメントパネル */
  .kpi-seg-grid{gap:8px!important}
  .kpi-seg-panel{padding:12px!important}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   §10 週次: ゲージカード・KPIカードの高さ最適化
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:640px){
  .weekly-viz-card{padding:12px!important;border-radius:10px!important}
  .weekly-viz-card h4{font-size:12px!important;flex-wrap:wrap!important;gap:4px!important}
  .weekly-kpi-card{padding:12px 10px!important;border-radius:8px!important}
  .weekly-kpi-label{font-size:11px!important}
  .weekly-kpi-input{font-size:16px!important}
  /* ゲージは高さを維持（視認性上重要） */
  .weekly-gauge-card .weekly-viz-canvas-wrap{min-height:180px!important;height:190px!important}
}

/* ═══════════════════════════════════════════════════════════════
   KPI Card v2 — Segmented display + click-to-chart toggle
   ═══════════════════════════════════════════════════════════════ */
.kpi-grid-seg{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.kpi-card-seg{cursor:pointer;user-select:none;min-height:unset}
.kpi-card-seg:hover{box-shadow:var(--sh-h);border-color:#B8BEC8;transform:translateY(-1px)}

/* 数字面 */
.kpi-cs-num{display:flex;flex-direction:column;gap:0}
.kpi-cs-chart{display:none;flex-direction:column;gap:4px}
.kpi-card-seg.kpi-card-flipped .kpi-cs-num{display:none}
.kpi-card-seg.kpi-card-flipped .kpi-cs-chart{display:flex}

/* セグメント行 */
.kpi-seg-rows{display:flex;flex-direction:column;gap:4px;margin:8px 0 2px}
.kpi-seg-row-item{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 0;border-bottom:1px solid #F4F6F9}
.kpi-seg-row-item:last-child{border-bottom:none}
.kpi-seg-badge{font-size:9px;font-weight:700;padding:1px 6px;border-radius:2px;white-space:nowrap;letter-spacing:.03em;flex-shrink:0}
.kpi-seg-badge.seg-all{background:#EEF2FF;color:#0017C1}
.kpi-seg-badge.seg-sales{background:#E6F4ED;color:#007A3B}
.kpi-seg-badge.seg-company{background:#FFF3E6;color:#C96000}
.kpi-seg-num{font-size:12px;font-weight:700;color:#1A1A1C;font-variant-numeric:tabular-nums;text-align:right;flex:1;white-space:nowrap}

/* グラフ面 */
.kpi-cs-chart-wrap{flex:1;height:120px;position:relative}
.kpi-cs-chart-wrap canvas{width:100%!important}

/* トグルヒント */
.kpi-card-toggle-hint{font-size:9px;color:#B0B0B0;text-align:right;margin-top:5px;display:flex;align-items:center;justify-content:flex-end;gap:3px;line-height:1}

/* ═══════════════════════════════════════════════════════════════
   KPI 個人担当者 進捗セクション
   ═══════════════════════════════════════════════════════════════ */
.kpi-person-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
@media(max-width:900px){.kpi-person-progress{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.kpi-person-progress{grid-template-columns:1fr}}

.kpi-person-card{background:#fff;border-radius:var(--r);padding:16px 18px;
  border:1px solid #D4D8E0;border-left:4px solid #D4D8E0;transition:var(--tr)}
.kpi-person-card:hover{box-shadow:var(--sh-h);transform:translateY(-1px)}

.kpi-person-card-hd{display:flex;align-items:center;gap:8px;margin-bottom:12px;
  padding-bottom:10px;border-bottom:1px solid #F0F2F6}
.kpi-person-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.kpi-person-name{font-size:14px;font-weight:700;color:#1A1A1C;flex:1}
.kpi-person-seg-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:2px}
.kpi-person-seg-sales{background:#E6F4ED;color:#007A3B}
.kpi-person-seg-company{background:#FFF3E6;color:#C96000}

.kpi-person-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.kpi-person-metric{background:#F7F9FC;border-radius:4px;padding:8px 10px;border:1px solid #F0F2F6}
.kpi-person-metric-lbl{font-size:10px;color:#595959;font-weight:400;margin-bottom:4px}
.kpi-person-metric-cnt{font-size:15px;font-weight:700;color:#1A1A1C;font-variant-numeric:tabular-nums;line-height:1.2}
.kpi-person-metric-amt{font-size:11px;color:#595959;margin-top:2px;font-variant-numeric:tabular-nums}

.kpi-person-rate-wrap{border-top:1px solid #F0F2F6;padding-top:10px}
.kpi-person-rate-lbl{display:flex;justify-content:space-between;align-items:baseline;font-size:10px;color:#595959;margin-bottom:6px}
.kpi-person-rate-val{font-size:16px;font-weight:800;color:#1A1A1C;font-variant-numeric:tabular-nums}
.kpi-person-bar-bg{height:6px;background:#EDF2F7;border-radius:3px;overflow:hidden;margin-bottom:6px}
.kpi-person-bar-fill{height:100%;border-radius:3px;transition:width .7s cubic-bezier(.4,0,.2,1)}
.kpi-person-profit-row{display:flex;justify-content:space-between;font-size:10px;color:#595959;margin-top:2px}
