:root{
  --hub-bg:#f5f6f8;
  --hub-panel:#fff;
  --hub-line:#edf0f3;
  --hub-line-strong:#d8dee4;
  --hub-ink:#1a1d21;
  --hub-muted:#6b7785;
  --hub-green:#157a52;
  --hub-green-bg:#edf8f2;
  --hub-blue:#365aa6;
  --hub-blue-bg:#f1f5ff;
  --hub-amber:#b9750a;
  --hub-amber-bg:#fff6e5;
  --hub-warm:#fffaf2;
  --hub-warm-line:#f0dfc8;
  --hub-red:#c0392b;
  --hub-red-bg:#fcefed;
  --shadow-sm:0 1px 2px rgba(0,0,0,.05);
  --shadow-md:0 2px 8px rgba(0,0,0,.08);
  --shadow-lg:0 8px 24px rgba(0,0,0,.12);
  --radius-card:14px;
  --radius-btn:10px;
  --radius-pill:999px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--hub-bg);color:var(--hub-ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;font-size:14px;line-height:1.6}
body.login-page{overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
:focus-visible{outline:2px solid var(--hub-green);outline-offset:2px;border-radius:4px}
::selection{background:var(--hub-green-bg);color:var(--hub-ink)}
/* スケルトンローダー */
@keyframes skelPulse{0%,100%{opacity:.6}50%{opacity:.3}}
.skel .v,.skel .sub{color:transparent!important;background:var(--hub-line);border-radius:4px;animation:skelPulse 1.2s ease-in-out infinite}
.skel .v{width:60%;height:26px;margin-top:6px}
.skel .sub{width:80%;height:14px;margin-top:6px}
/* ダッシュボード */
.dash-greeting{font-size:16px;font-weight:700;margin:0 0 2px;padding:0;color:var(--hub-ink);background:none;border-radius:0;box-shadow:none}
.dash-date{font-size:12px;color:var(--hub-muted);margin:0 0 16px;padding:0 0 12px;background:none;border-radius:0;box-shadow:none;border-bottom:1px solid var(--hub-line)}
.nav-home{font-weight:800!important;font-size:14px!important;border-bottom:0;box-shadow:inset 0 -1px 0 var(--hub-line);margin-bottom:4px;padding-bottom:10px!important}
/* KPIカード色分け */
.hcard-accent{position:relative;overflow:hidden}
.hcard-accent::before{display:none}
.hcard-accent::after{display:none}
/* カードロードアニメーション */
@keyframes cardIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.hcard{animation:cardIn .25s ease both}
.hcard:nth-child(2){animation-delay:.05s}
.hcard:nth-child(3){animation-delay:.1s}
.hcard:nth-child(4){animation-delay:.15s}
.task{animation:cardIn .2s ease both}
#hubLogin{width:100%;max-width:360px;margin:0 auto;text-align:center;padding:0 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;overflow:hidden}
#hubLogin .mk{width:52px;height:52px;border-radius:12px;background:var(--hub-green);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800;margin:0 auto 20px;box-shadow:0 4px 12px rgba(21,122,82,.25)}
#hubLogin h1{font-size:18px;font-weight:800;margin-bottom:4px}
#hubLogin p{font-size:13px;color:var(--hub-muted);margin-bottom:24px;line-height:1.5}
#hubLogin input{width:100%;max-width:100%;align-self:stretch;text-align:center;letter-spacing:.15em;padding:14px;border:0;border-radius:10px;font-size:16px;box-shadow:inset 0 0 0 1px var(--hub-line-strong);transition:box-shadow .15s}
#hubLogin input:focus{outline:none;box-shadow:inset 0 0 0 1px var(--hub-green),0 0 0 3px rgba(21,122,82,.12)}
#hubLogin .btn{margin-top:14px;width:100%;max-width:100%;align-self:stretch;background:var(--hub-green);color:#fff;border:none;border-radius:10px;padding:14px;font-weight:700;font-size:15px;cursor:pointer;transition:opacity .12s}
#hubLogin .btn:hover{opacity:.9}
#hubLogin .msg{font-size:12px;color:var(--hub-red);margin-top:10px;min-height:16px}
.shell{display:flex;min-height:100vh;background:var(--hub-bg)}
.side{width:246px;flex:none;background:var(--hub-panel);border-right:none;box-shadow:1px 0 3px rgba(0,0,0,.04);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.client{padding:16px;border-bottom:1px solid var(--hub-line)}
.client .switch{display:flex;align-items:center;gap:10px;border:none;border-radius:12px;padding:10px 12px;background:#f5f7f8}
.client .mark{width:30px;height:30px;border-radius:8px;background:var(--hub-green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px}
.client .name{font-weight:700;font-size:13px;line-height:1.25}
.client .name small{display:block;font-weight:400;color:var(--hub-muted);font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.client .caret{margin-left:auto;color:var(--hub-muted);font-size:11px}
.nav{padding:10px;display:flex;flex-direction:column;gap:2px;overflow:auto}
.nav-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--hub-muted);padding:12px 10px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.nav a,.nav button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:9px 11px;border-radius:8px;color:var(--hub-ink);font-size:13.5px;cursor:pointer}
.nav a:hover,.nav button:hover{background:#f5f8f9}
.nav a[target="_blank"]{color:var(--hub-muted);font-size:12.5px}
.nav button[disabled]{cursor:not-allowed;color:var(--hub-muted);opacity:.62}
.nav button[disabled]:hover{background:transparent}
.nav .on{background:var(--hub-green-bg);color:#125b3e;font-weight:700}
.nav .count{margin-left:auto;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--hub-muted);background:#f0f3f5;border-radius:999px;padding:1px 7px}
.side-note{margin-top:auto;padding:12px 14px;border-top:1px solid var(--hub-line);font-size:11px;color:var(--hub-muted)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:10;background:rgba(245,246,248,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:none;box-shadow:0 1px 2px rgba(0,0,0,.04);padding:0 22px;height:52px;display:flex;align-items:center;gap:14px}
.top h1{margin:0;font-size:16px;font-weight:800;white-space:nowrap}
.top-spacer{flex:1}
.top-logout{margin-left:0}
.top-report{color:var(--hub-green)!important}
.search{display:flex;align-items:center;gap:8px;border:none;background:#f0f3f5;border-radius:var(--radius-btn);padding:8px 12px;color:var(--hub-muted);font-size:13px;min-width:200px;max-width:300px}
.search input{border:0;outline:0;flex:1;color:var(--hub-ink);background:transparent}
.btn{border:0;background:var(--hub-green);color:#fff;border-radius:var(--radius-btn);padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .15s}
.btn:hover{opacity:.9}
.btn.ghost{background:#fff;color:var(--hub-ink);box-shadow:inset 0 0 0 1px var(--hub-line-strong)}
.btn.ghost:hover{background:#f5f8f9}
.btn[disabled]{cursor:not-allowed;opacity:.65}
.mnav{display:none}
.btab{display:none}
.btab-sheet{display:none}
.content{padding:20px 22px 60px;max-width:1120px;width:100%;flex:1;display:flex;flex-direction:column}
/* 分割ビュー: ナビで1セクションずつ表示（#アンカー同一ページではなく個別画面化） */
.view{display:none}
.view.view-on{display:flex;flex-direction:column;flex:1;animation:viewIn .18s ease}
@keyframes viewIn{from{opacity:.4}to{opacity:1}}
@media (prefers-reduced-motion: reduce){.view.view-on{animation:none}}
.health{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:24px}
.hcard{background:var(--hub-panel);border:1px solid var(--hub-line);border-radius:var(--radius-card);padding:16px;box-shadow:none;transition:box-shadow .2s}
.hcard:hover{box-shadow:var(--shadow-sm)}
.hcard .k{font-size:11px;letter-spacing:.03em;color:var(--hub-muted);font-weight:600}
.hcard .v{font-size:26px;font-weight:800;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1;color:var(--hub-ink)}
.hcard .sub{font-size:11px;color:var(--hub-muted);margin-top:4px}
.hcard.warn{background:var(--hub-amber-bg);border-color:var(--hub-amber)}
.hcard.warn .v{color:var(--hub-amber)}
.hcard .sub{font-size:11px;color:var(--hub-muted);margin-top:6px;line-height:1.4}
.hcard .d{font-size:11px;margin-top:3px}
.hcard .d.up{color:var(--hub-green)}
.hcard .d.dn{color:var(--hub-red)}
.reception-stop-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--hub-green-bg);border:1px solid rgba(21,122,82,.22);border-radius:var(--radius-card);padding:16px;margin:-8px 0 20px}
.reception-stop-card.stopped{background:var(--hub-red-bg);border-color:rgba(192,57,43,.28)}
.reception-stop-label{font-size:11px;font-weight:700;color:var(--hub-muted);letter-spacing:.04em}
.reception-stop-status{font-size:18px;font-weight:800;color:var(--hub-green);line-height:1.3}
.reception-stop-card.stopped .reception-stop-status{color:var(--hub-red)}
.reception-stop-btn.danger{background:var(--hub-red)}
@media(max-width:860px){.reception-stop-card{align-items:stretch;flex-direction:column}.reception-stop-btn{width:100%}}
/* ファネルバー */
.funnel{display:flex;flex-direction:column;gap:6px;margin-top:8px;margin-bottom:20px}
.funnel-row{display:grid;grid-template-columns:120px 1fr 70px;gap:10px;align-items:center;padding:6px 0}
.funnel-label{font-size:12px;color:var(--hub-muted);text-align:right;white-space:nowrap}
.funnel-bar-wrap{height:28px;background:#f0f3f5;border-radius:6px;overflow:hidden;position:relative}
.funnel-bar{height:100%;border-radius:6px;transition:width .5s ease;min-width:2px}
.funnel-bar.s1{background:var(--hub-green)}
.funnel-bar.s2{background:#3da675}
.funnel-bar.s3{background:#5cb88a}
.funnel-bar.s4{background:#7dcca0}
.funnel-bar.s5{background:#9eddb6}
.funnel-bar.done{background:var(--hub-green);opacity:.9}
.funnel-bar.worst{background:var(--hub-red)}
.funnel-val{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.notice{border:none;background:#fff;border-radius:var(--radius-card);padding:16px 20px;font-size:13px;color:var(--hub-muted);margin-bottom:16px;text-align:center;box-shadow:var(--shadow-sm)}
.data-note{border:0;background:#fafbfc;border-radius:11px;padding:9px 12px;font-size:11.5px;color:var(--hub-muted);margin:-6px 0 16px;box-shadow:var(--shadow-sm)}
.growth-attribution-note{grid-column:1/-1;margin:0}
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:12px;border:none;background:#fff;border-radius:var(--radius-pill);padding:6px 14px;color:var(--hub-muted);cursor:pointer;transition:all .15s;box-shadow:var(--shadow-sm);font-weight:500}
.chip[type="button"]{font:inherit;border:0}
.chip:hover{color:#125b3e;box-shadow:var(--shadow-md)}
.chip.on{color:#125b3e;background:var(--hub-green-bg);font-weight:700;box-shadow:none}
.page-filter-pub.on{color:var(--hub-green);background:var(--hub-green-bg)}
.page-filter-warn.on{color:var(--hub-amber);background:var(--hub-amber-bg)}
.page-filter-func.on{color:var(--hub-blue);background:var(--hub-blue-bg)}
.page-filter-seo.on{color:var(--hub-red);background:var(--hub-red-bg)}
.ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:16px}
.ops-card{background:var(--hub-panel);border:none;border-radius:var(--radius-card);padding:14px 16px;box-shadow:var(--shadow-sm)}
.ops-card .label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--hub-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ops-card .title{font-size:14px;font-weight:800;margin-top:3px}
.ops-card .body{font-size:12px;color:var(--hub-muted);margin-top:3px}
.ops-card .link{display:inline-flex;margin-top:8px;font-size:12px;font-weight:700;color:#125b3e;text-decoration:underline;text-underline-offset:3px}
.task-list{display:grid;gap:6px;margin-bottom:16px}
.task{display:block;background:var(--hub-panel);border:1px solid var(--hub-line);border-radius:10px;padding:12px 14px;transition:background .12s}
.task:hover{background:#fafbfc}
.task .sig{display:none}
.task .ttl{font-size:13px;font-weight:700}
.task .txt{font-size:11px;color:var(--hub-muted);margin-top:2px;line-height:1.5}
.task a{display:inline-block;margin-top:6px;font-size:11px;font-weight:600;color:var(--hub-green);text-decoration:none}
.task a:hover{text-decoration:underline}
.task-red,.task-yellow,.task-green{border-color:var(--hub-line)}
.recent-reservation .ttl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.status-badge{display:inline-flex;align-items:center;border-radius:6px;padding:0 8px;font-size:11px;font-weight:600;height:22px;background:#f0f3f5;color:var(--hub-muted);border:1px solid #e5e7eb;vertical-align:middle;margin-left:6px}
.upcoming-date{font-size:11px;font-weight:700;color:var(--hub-muted);margin-right:4px}
.upcoming-date.today{color:var(--hub-green)}
.status-badge.confirmed{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.status-badge.cancelled{background:#fef2f2;color:#991b1b;border-color:#fecaca}
.status-badge.no_show{background:var(--hub-red-bg);color:var(--hub-red);border-color:#fecaca}
.status-badge.completed{background:var(--hub-blue-bg);color:var(--hub-blue);border-color:#bfdbfe}
.section-title{font-size:14px;font-weight:700;color:var(--hub-ink);letter-spacing:0;text-transform:none;margin:28px 0 12px;padding:0 0 8px;border-bottom:2px solid var(--hub-green)}
.table{background:var(--hub-panel);border:none;border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-sm)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tree{background:var(--hub-panel);border:none;border-radius:var(--radius-card);padding:6px 0;overflow:hidden;box-shadow:var(--shadow-sm)}
.tree-root{padding:7px 16px;font-weight:800;font-size:12px;color:var(--hub-ink);display:flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:0}
.tree-root .host-dot{width:8px;height:8px;border-radius:50%;flex:none}
.tree-root .host-dot.pub{background:var(--hub-green)}
.tree-root .host-dot.func{background:var(--hub-blue)}
.tree-root .count{font-weight:400;font-size:10px;color:var(--hub-muted);margin-left:4px}
.tnode{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:0 8px;align-items:center;padding:4px 16px 4px 20px;border-left:3px solid transparent;transition:background .1s}
.tnode:hover{background:#f6faf8}
.tnode.warn{border-left-color:var(--hub-amber);background:#fffbf5}
.tnode .branch{color:var(--hub-line-strong);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1;white-space:pre;user-select:none;width:20px;text-align:center}
.tnode .pg{display:flex;align-items:center;gap:6px;min-width:0}
.tnode .dot{width:6px;height:6px;border-radius:50%;flex:none}
.tnode .dot.pub{background:var(--hub-green)}
.tnode .dot.paused{background:var(--hub-amber)}
.tnode .dot.func{background:var(--hub-blue)}
.tnode .nm{font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tnode .dir-icon{font-size:11px;flex:none}
.tnode .dir-nm{color:var(--hub-muted);font-weight:700;font-size:11.5px}
.tnode-dir{opacity:.85;cursor:pointer}
.tnode-dir:hover{opacity:1}
.tnode-dir .chevron{font-size:10px;color:var(--hub-muted);transition:transform .15s;display:inline-block;margin-left:2px}
.tnode-dir.collapsed .chevron{transform:rotate(-90deg)}
.tnode-child.hidden{display:none}
.tnode .slug{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--hub-muted);margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tnode .meta{display:flex;gap:4px;align-items:center;justify-content:flex-end;flex:none}
.note-inline{font-size:9px;color:var(--hub-blue);margin-top:0}
.pill{font-size:10px;font-weight:700;border-radius:999px;padding:3px 9px;display:inline-flex;align-items:center;white-space:nowrap;letter-spacing:.02em}
.pill.pub{color:var(--hub-green);background:var(--hub-green-bg)}
.pill.paused{color:var(--hub-amber);background:var(--hub-amber-bg)}
.pill.func{color:var(--hub-blue);background:var(--hub-blue-bg)}
.seo{font-size:9px;font-weight:700;border-radius:999px;padding:1px 6px}
.seo.ok{color:var(--hub-green);background:var(--hub-green-bg)}
.seo.ng{color:#fff;background:var(--hub-amber)}
.updated{font-size:9px;color:var(--hub-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.rowacts{display:flex;gap:3px;justify-content:flex-end;flex:none}
.rowacts a,.rowacts button{font-size:10px;border:0;border-radius:5px;padding:2px 7px;background:#fff;cursor:pointer;color:var(--hub-ink);white-space:nowrap;box-shadow:inset 0 0 0 1px var(--hub-line-strong)}
.rowacts .edit{box-shadow:inset 0 0 0 1px var(--hub-green);color:#125b3e;font-weight:700}
.tr{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:7px 14px;border-bottom:0;box-shadow:inset 0 -1px 0 var(--hub-line)}
.tr:last-child{border-bottom:0}
.thead{background:#fafbfc;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--hub-muted);padding:6px 14px}
.scrim{position:fixed;inset:0;background:rgba(20,26,30,.34);opacity:0;pointer-events:none;transition:opacity .2s;z-index:40}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(430px,100%);background:var(--hub-panel);border-left:none;box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform .24s cubic-bezier(.2,.7,.2,1);z-index:41;display:flex;flex-direction:column}
.drawer.open{transform:none}
.drawer-head{padding:16px 18px;border-bottom:1px solid var(--hub-line);display:flex;align-items:center;justify-content:space-between;gap:10px}
.drawer-title{font-weight:800;font-size:15px}
.drawer-close{border:none;background:#f0f3f5;border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:15px;transition:background .12s}
.drawer-close:hover{background:#e5eaed}
.drawer-body{padding:18px;overflow:auto;display:grid;gap:16px}
.field{display:grid;gap:6px}
.field label{font-size:12px;font-weight:700}
.field input,.field textarea{border:1px solid var(--hub-line);border-radius:var(--radius-btn);padding:10px 12px;font:inherit;font-size:13px;color:var(--hub-ink);background:#fff;transition:border-color .15s,box-shadow .15s}
.field input:focus,.field textarea:focus{border-color:var(--hub-green);box-shadow:0 0 0 3px rgba(21,122,82,.1);outline:none}
.field textarea{min-height:72px;resize:vertical}
.field input[readonly],.field textarea[readonly]{background:#f5f7f8;color:var(--hub-muted)}
.seg{display:flex;border:none;border-radius:var(--radius-btn);overflow:hidden;width:fit-content;background:#f0f3f5}
.seg span{background:transparent;padding:7px 14px;font-size:12px;color:var(--hub-muted)}
.seg span:last-child{border-right:0}
.seg .on{background:var(--hub-green-bg);color:#125b3e;font-weight:800;border-radius:var(--radius-btn)}
.redirect{background:var(--hub-amber-bg);border:none;border-radius:var(--radius-btn);padding:10px 12px;font-size:11.5px;color:var(--hub-amber)}
.counter{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:var(--hub-muted);text-align:right}
.drawer-foot{margin-top:auto;padding:14px 18px;border-top:1px solid var(--hub-line);display:flex;gap:9px}
.page-empty{text-align:left;background:#fff;border:1px dashed var(--hub-line-strong);box-shadow:var(--shadow-sm)}
.page-drawer .drawer-foot .btn{min-height:44px}
.resv-drawer{width:min(720px,100%)}
/* 予約行: クリック可能の視覚フィードバック */
.resv-row{cursor:pointer;transition:background .12s}
.resv-row:hover{background:var(--hub-green-bg)!important}
.resv-row:active{background:#d8f0e2!important}
.resv-row:focus-visible{outline:2px solid var(--hub-green);outline-offset:-2px}
.resv-row td:first-child b{color:var(--hub-green);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.resv-actions{display:flex;flex-wrap:wrap;gap:8px;border:none;background:#f5f7f8;border-radius:var(--radius-card);padding:12px}
.resv-actions button{border:none;background:#fff;border-radius:var(--radius-btn);padding:8px 14px;font-size:12px;font-weight:700;cursor:pointer;color:var(--hub-ink);box-shadow:var(--shadow-sm);transition:all .12s}
.resv-actions button:hover{box-shadow:var(--shadow-md)}
.resv-actions button.danger{color:var(--hub-red);background:var(--hub-red-bg)}
.resv-sec-title{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--hub-muted);margin:4px 0 -6px}
.resv-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.resv-field{border:none;border-radius:10px;background:#f5f7f8;padding:10px 12px;min-width:0}
.resv-field span{display:block;font-size:10.5px;color:var(--hub-muted);margin-bottom:2px}
.resv-field b{display:block;font-size:13px;font-weight:700;word-break:break-word;white-space:pre-wrap}
.resv-timeline{display:grid;gap:8px}
.resv-timeline-item{border:none;border-radius:10px;background:#f5f7f8;padding:10px 12px}
.resv-timeline-item b{display:block;font-size:13px}
.resv-timeline-item span{display:block;font-size:11px;margin-top:1px}
.resv-timeline-item p{margin:5px 0 0;font-size:11.5px;white-space:pre-wrap;word-break:break-word}
.footer-note{padding:20px 0 0;font-size:11px;color:var(--hub-muted)}
.footer-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:24px 22px 8px;margin-top:auto;border-top:1px solid var(--hub-line);font-size:12px}
.footer-bar a,.footer-report{color:var(--hub-muted);text-decoration:none;transition:color .12s}
.footer-bar a:hover,.footer-report:hover{color:var(--hub-green)}
.footer-report{border:0;background:transparent;padding:0;font:inherit;cursor:pointer}
.footer-copy{margin-left:auto;color:var(--hub-line-strong);font-size:11px}
.report-scrim{position:fixed;inset:0;z-index:60;background:rgba(20,26,30,.48);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.report-modal{position:fixed;z-index:61;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100% - 32px));max-height:calc(100vh - 32px);overflow:auto;background:var(--hub-panel);border-radius:var(--radius-card);box-shadow:var(--shadow-lg)}
.report-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 14px;border-bottom:1px solid var(--hub-line)}
.report-modal-head h2{margin:0;font-size:18px;letter-spacing:0}
.report-modal-head p{margin:4px 0 0;color:var(--hub-muted);font-size:12px}
.report-close{border:0;background:#f0f3f5;color:var(--hub-muted);width:36px;height:36px;border-radius:var(--radius-btn);font-size:22px;cursor:pointer;flex:none}
.report-modal-body{display:grid;gap:14px;padding:18px 22px}
.report-modal-body .field{display:grid;gap:6px}
.report-modal-body label{font-size:12px;font-weight:700;color:var(--hub-ink)}
.report-modal-body input,.report-modal-body select,.report-modal-body textarea{width:100%;border:1px solid var(--hub-line-strong);border-radius:var(--radius-btn);background:#fff;color:var(--hub-ink);padding:11px 12px;font:inherit;font-size:14px;letter-spacing:0}
.report-modal-body textarea{resize:vertical;min-height:140px;line-height:1.55}
.report-modal-body input:focus,.report-modal-body select:focus,.report-modal-body textarea:focus{outline:none;border-color:var(--hub-green);box-shadow:0 0 0 3px rgba(21,122,82,.12)}
.report-counter{text-align:right;color:var(--hub-muted);font-size:11px}
.report-error{min-height:18px;margin:0;color:var(--hub-red);font-size:12px}
.report-modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px 20px}
.report-toast{position:fixed;z-index:70;left:50%;bottom:28px;transform:translateX(-50%);background:var(--hub-green);color:#fff;border-radius:var(--radius-btn);padding:12px 18px;font-size:13px;font-weight:700;box-shadow:var(--shadow-md)}
body.report-open{overflow:hidden}
.reports-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.reports-head h3{margin:0;font-size:18px;letter-spacing:0}
.reports-head p{margin:5px 0 0;color:var(--hub-muted);font-size:12px}
.reports-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;background:var(--hub-panel);border:1px solid var(--hub-line);border-radius:var(--radius-card);padding:14px;margin-bottom:12px}
.reports-filters .field{display:grid;gap:5px;min-width:180px}
.reports-filters label{font-size:11px;font-weight:700;color:var(--hub-muted)}
.reports-filters select{border:1px solid var(--hub-line-strong);border-radius:var(--radius-btn);background:#fff;padding:9px 11px;color:var(--hub-ink)}
.reports-state{color:var(--hub-muted);font-size:12px;margin:10px 0}
.reports-list{display:grid;gap:10px}
.report-card{background:var(--hub-panel);border:1px solid var(--hub-line);border-left:4px solid var(--hub-green);border-radius:var(--radius-card);padding:16px;box-shadow:var(--shadow-sm)}
.report-card[data-status="done"],.report-card[data-status="wontfix"]{border-left-color:var(--hub-line-strong)}
.report-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.report-card-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.report-pill{display:inline-flex;border-radius:var(--radius-pill);padding:3px 8px;background:var(--hub-green-bg);color:var(--hub-green);font-size:10px;font-weight:800}
.report-pill.type{background:#f0f3f5;color:var(--hub-ink)}
.report-when{font-size:11px;color:var(--hub-muted);white-space:nowrap}
.report-card-body{margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6}
.report-by{font-size:11px;color:var(--hub-muted);margin-bottom:10px}
.report-context{margin:0 0 12px;border-radius:var(--radius-btn);background:#f5f7f8;padding:8px 10px;font-size:11px;color:var(--hub-muted)}
.report-context summary{cursor:pointer;font-weight:700;color:var(--hub-ink)}
.report-context dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0 0}
.report-context dt{font-weight:700}.report-context dd{margin:0;overflow-wrap:anywhere}
.report-edit{display:grid;grid-template-columns:minmax(140px,190px) 1fr auto;gap:9px;align-items:end}
.report-edit .field{display:grid;gap:5px}.report-edit label{font-size:11px;font-weight:700;color:var(--hub-muted)}
.report-edit select,.report-edit textarea{width:100%;border:1px solid var(--hub-line-strong);border-radius:var(--radius-btn);background:#fff;padding:9px 11px;color:var(--hub-ink);font:inherit;font-size:13px;letter-spacing:0}
.report-edit textarea{min-height:42px;resize:vertical;line-height:1.4}
.report-save-state{grid-column:1/-1;min-height:16px;color:var(--hub-green);font-size:11px}
/* チャネル比較カード */
.channel-card{border-left:3px solid #4285f4;padding:18px 20px!important}
.channel-card.meta{border-left-color:#e1306c}
.channel-label{font-size:13px;font-weight:800;margin-bottom:12px}
.channel-card .channel-label{color:#4285f4}
.channel-card.meta .channel-label{color:#e1306c}
.channel-metric{display:flex;align-items:baseline;gap:8px;margin-top:6px}
.channel-num{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.channel-unit{font-size:11px;color:var(--hub-muted)}
/* 広告評価カード */
.eval-card{display:flex;gap:16px;align-items:flex-start;background:var(--hub-panel);border:none;border-radius:var(--radius-card);padding:22px;margin-bottom:20px;box-shadow:var(--shadow-sm)}
.eval-signal{font-size:36px;line-height:1;flex:none}
.eval-body{flex:1;min-width:0}
.eval-status{font-size:16px;font-weight:800;margin-bottom:6px}
.eval-metrics{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--hub-muted);margin-bottom:8px}
.eval-metrics b{color:var(--hub-ink);font-size:15px}
.eval-action{font-size:13px;color:var(--hub-ink);padding:10px 14px;background:var(--hub-green-bg);border-radius:8px;border-left:3px solid var(--hub-green)}
/* 集客運用ボード */
.analytics-panel[hidden],.growth-panel[hidden]{display:none}
.growth-panel{min-width:0}
.campaign-catalog{display:grid;gap:12px}
.campaign-detail-card{border:1px solid var(--hub-line);border-radius:8px;background:#fff;padding:12px;box-shadow:var(--shadow-sm)}
.campaign-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.campaign-adgroup{border-top:1px solid var(--hub-line);padding-top:10px;margin-top:10px}
.campaign-adgroup-title{font-size:13px;font-weight:700;color:var(--hub-ink);margin-bottom:6px}
.campaign-url{display:block;font-size:11.5px;color:var(--hub-green);overflow-wrap:anywhere;margin:0 0 8px;text-decoration:none}
.campaign-url:hover{text-decoration:underline}
.campaign-copy-list,.campaign-desc-list,.campaign-keyword-list{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.campaign-desc-list .mini-chip{background:#f8fafc}
.campaign-keyword-list .mini-chip{background:#fff7ed;border-color:#fed7aa;color:#7c2d12}
.mini-chip{font-size:11px;line-height:1.35;border:1px solid var(--hub-line);border-radius:6px;background:#f8fff9;color:var(--hub-ink);padding:4px 7px;max-width:100%;overflow-wrap:anywhere}
.campaign-variant{margin-top:8px;padding:8px;border-radius:8px;background:#fafbfc}
.ad-copy-editor{margin-top:10px;border:1px solid var(--hub-line);border-radius:8px;background:#fff;padding:10px;display:grid;gap:7px}
.ad-copy-summary{font-size:12px;font-weight:800;color:var(--hub-green);cursor:pointer}
.ad-copy-label{font-size:11px;font-weight:700;color:var(--hub-muted)}
.ad-copy-input{width:100%;box-sizing:border-box;border:1px solid var(--hub-line);border-radius:7px;padding:8px 10px;font-size:12px;line-height:1.45;resize:vertical;background:#fbfcfd;color:var(--hub-ink)}
.ad-copy-input:focus{outline:none;border-color:var(--hub-green);background:#fff}
.ad-copy-actions{display:flex;gap:7px;flex-wrap:wrap}
.mini-btn{border:1px solid var(--hub-line);background:#fff;color:var(--hub-ink);border-radius:7px;height:30px;padding:0 10px;font-size:12px;font-weight:700;cursor:pointer}
.mini-btn:hover{border-color:var(--hub-green);color:var(--hub-green)}
.mini-btn.primary{background:var(--hub-green);border-color:var(--hub-green);color:#fff}
.gbar{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.gnote-inline{font-size:11.5px;color:var(--hub-muted);line-height:1.5}
.gtr{display:grid;grid-template-columns:1.4fr .7fr .7fr .7fr .5fr .4fr;gap:10px;align-items:center;padding:14px 18px;border-bottom:0;box-shadow:inset 0 -1px 0 var(--hub-line);font-size:13px;transition:background .12s}
.gtr.campaign-tr{grid-template-columns:1.45fr .55fr .7fr .62fr .54fr .54fr}
.gtr:last-child{border-bottom:0}
.gtr:not(.thead):hover{background:#f8fafb}
.gtr.thead{background:#f6f8fa;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--hub-muted);padding:10px 18px;box-shadow:inset 0 -1px 0 var(--hub-line-strong)}
.gtr .theme{font-weight:700;font-size:14px;line-height:1.3}
.gtr .meta{color:var(--hub-muted);font-size:11px;margin-top:4px;line-height:1.4}
.gtr .meta.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}
.gtr .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.gtr .gnum{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
.gtr .sig{text-align:center;font-size:18px;line-height:1}
.gtr .gnext-cell{display:none}
.campaign-source{font-size:12px;font-weight:700;color:var(--hub-muted)}
.sort-btn{-webkit-appearance:none;appearance:none;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0;color:inherit;font:inherit;font-weight:800;padding:0;cursor:pointer;text-align:inherit;min-height:0;line-height:1.2;white-space:nowrap}
.gtr .num .sort-btn{width:auto;height:auto;font-size:10px;color:inherit}
.gtr.thead .sort-btn{font-size:10px;letter-spacing:.06em}
.sort-btn:hover,.sort-btn.on{color:var(--hub-green)}
.sort-btn.on::after{content:" ↓";font-size:10px}
.gcal-cap,.gnext-cap{font-size:13px;font-weight:700;color:var(--hub-ink);margin:24px 0 10px;padding-bottom:6px;border-bottom:0;box-shadow:inset 0 -1px 0 var(--hub-line)}
.gcal{display:grid;grid-template-columns:repeat(12,1fr);gap:6px}
.gcell{border:none;border-radius:10px;padding:10px 4px;text-align:center;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}
.gcell:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.gcell .gm{font-size:12px;font-weight:700}
.gcell .gs{font-size:10px;color:var(--hub-muted);margin-top:3px}
.gcell.on{background:var(--hub-green-bg)}
.gcell.on .gm{color:#125b3e}
.gcell.now{box-shadow:0 0 0 2px var(--hub-green)}
.gcell.off{background:#f4f5f6;color:var(--hub-muted);box-shadow:none}
.gnext{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.gnext li{font-size:13px;padding:12px 16px 12px 32px;position:relative;background:#fff;border:none;border-radius:var(--radius-card);line-height:1.5;box-shadow:var(--shadow-sm)}
.gnext li::before{content:"▸";position:absolute;left:14px;color:var(--hub-green);font-weight:700}
@media(max-width:860px){.gtr{grid-template-columns:1.2fr auto .5fr;gap:6px}.gtr .gcol-ad,.gtr .gcol-cpa{display:none}.gtr.campaign-tr{grid-template-columns:1fr auto auto}.campaign-tr>div:nth-child(2),.campaign-tr>div:nth-child(4),.campaign-tr>div:nth-child(6){display:none}.gcal{grid-template-columns:repeat(6,1fr)}}
.view-btn{font-size:12px;padding:4px 12px;border-radius:999px}
.view-btn.on{background:var(--hub-green-bg);color:#125b3e;box-shadow:inset 0 0 0 1px var(--hub-green);font-weight:700}
#listTable th{cursor:pointer;user-select:none;white-space:nowrap;position:relative}
#listTable th:hover{color:#125b3e}
/* ---- analytics UIUX ブラッシュアップ (plan logical-greeting-flamingo) ---- */
/* 1. KPI ヒーローカード */
.hcard-hero{grid-column:1/-1;background:var(--hub-green-bg);border-left:4px solid var(--hub-green);padding:24px 28px}
.hcard-hero .v{font-size:40px;color:var(--hub-green)}
.hcard-hero .k{font-size:13px;font-weight:700;color:var(--hub-green)}
.hcard.trend-up{border-left:4px solid var(--hub-green)}
.hcard.trend-down{border-left:4px solid var(--hub-amber)}
.hcard.trend-down .v{color:var(--hub-amber)}
/* 4. セクション見出し階層化 */
.section-title-main{font-size:14px;color:var(--hub-ink);letter-spacing:0;text-transform:none;border-bottom:2px solid var(--hub-green);padding-bottom:8px;margin-bottom:16px}
.section-sub{display:block;font-size:11px;font-weight:400;color:var(--hub-muted);margin-top:2px;letter-spacing:0;text-transform:none}
/* 5. 期間フィードバック */
.range-feedback{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.range-dates{font-size:10px;color:var(--hub-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
/* 7. 余白リズム */
.amx-toolbar{justify-content:space-between}
.amx{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin-top:4px;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--hub-line)}
.amx-cap{font-size:12px;font-weight:700;color:var(--hub-ink);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--hub-line)}
/* 2. テーブル行の可読性 */
.atr{display:grid;grid-template-columns:1.8fr .7fr .7fr .6fr;gap:8px;align-items:center;padding:11px 16px;border-bottom:0;box-shadow:inset 0 -1px 0 var(--hub-line);font-size:12.5px}
.atr:last-child{border-bottom:0;box-shadow:none}
.atr:nth-child(even):not(.thead){background:#fafbfc}
.atr:not(.thead):hover{background:var(--hub-green-bg);transition:background .12s}
.atr.atr-top{background:var(--hub-green-bg);border-left:3px solid var(--hub-green);font-weight:600}
.atr.atr-top .num{color:var(--hub-green)}
.atr.thead{background:#fafbfc;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--hub-muted)}
.atr .num{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}
.atr .cvr{font-weight:700;color:var(--hub-ink);font-size:13px}
.atr .src{min-width:0}
.atr .src small{display:block;color:var(--hub-muted);font-size:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;margin-top:1px}
/* 3. ファネル離脱率表示 */
.funnel-drop{text-align:center;font-size:10px;color:var(--hub-muted);padding:2px 0;margin-left:120px}
.funnel-drop-worst{color:var(--hub-red);font-weight:700;font-size:11px}
.funnel-row-worst{background:var(--hub-red-bg);border-radius:8px;padding:8px 6px;margin:2px -6px}
.funnel-row-worst .funnel-label{color:var(--hub-red);font-weight:700}
.sect-toggle{display:flex;align-items:center;gap:10px}
.sect-btn{padding:5px 12px;font-size:12px}
/* サブタブ: アクティブ状態を強く、サイズを少し大きく */
.sub-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:-4px 0 14px}
.sub-tabs[hidden]{display:none}
.sub-tab{border:0;background:#fff;color:var(--hub-muted);border-radius:var(--radius-pill);padding:8px 18px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s}
.sub-tab:hover{color:#125b3e;box-shadow:var(--shadow-md);transform:translateY(-1px)}
.sub-tab.on{background:var(--hub-green);color:#fff;box-shadow:0 2px 8px rgba(21,122,82,.2)}
.admin-embed{
  --line:var(--hub-line);
  --brand:var(--hub-green);
  --brand-d:#0f5e3f;
  --ink:var(--hub-ink);
  --muted:var(--hub-muted);
  --err:var(--hub-red);
  --soft:#f7faf7;
  background:var(--hub-panel);
  border:none;
  border-radius:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
  overflow:hidden;
  margin:8px 0 18px;
}
.admin-embed .admin{max-width:none;margin:0;padding:0 0 28px;border:0;min-height:auto;background:var(--hub-panel)}
.admin-embed #login{display:none}
.admin-embed .abar{display:none}
.admin-embed .pane{padding:18px 20px;display:none;overflow-x:auto}
.admin-embed .pane.on{display:block;animation:viewIn .18s ease}
/* テーブル行の可読性: ゼブラ + ホバー + ステータス色帯 */
.admin-embed table{width:100%;min-width:680px;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.admin-embed th,.admin-embed td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--hub-line);vertical-align:top}
.admin-embed th{color:var(--hub-muted);font-weight:700;font-size:11px;letter-spacing:.02em}
.admin-embed tbody tr:nth-child(even){background:#fafbfc}
.admin-embed tbody tr:hover{background:var(--hub-green-bg);transition:background .12s}
.admin-embed td.r,.admin-embed th.r{text-align:right}
/* ステータスピル: 視認性を上げ、サイズを少し大きく */
.admin-embed .pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:4px 12px;border-radius:var(--radius-pill);font-weight:700;border:none;letter-spacing:.02em}
.admin-embed .pill::before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0}
.admin-embed .pill.confirmed{color:var(--hub-green);background:var(--hub-green-bg)}
.admin-embed .pill.confirmed::before{background:var(--hub-green)}
.admin-embed .pill.cancelled{color:var(--hub-muted);background:#f0f3f5}
.admin-embed .pill.cancelled::before{background:var(--hub-muted)}
.admin-embed .pill.no_show{color:var(--hub-red);background:var(--hub-red-bg)}
.admin-embed .pill.no_show::before{background:var(--hub-red)}
.admin-embed .pill.completed{color:var(--hub-blue);background:var(--hub-blue-bg)}
.admin-embed .pill.completed::before{background:var(--hub-blue)}
.admin-embed .pay-pill{display:inline-flex;align-items:center;white-space:nowrap;font-size:11px;padding:4px 10px;border-radius:var(--radius-pill);font-weight:800;background:#f0f3f5;color:var(--hub-muted)}
.admin-embed .pay-pill.paid{background:var(--hub-green-bg);color:var(--hub-green)}
.admin-embed .pay-pill.shop{background:#fff7e6;color:#8a5a00}
.admin-embed .pay-pill.pending{background:var(--hub-blue-bg);color:var(--hub-blue)}
.admin-embed .pay-pill.refunded{background:var(--hub-red-bg);color:var(--hub-red)}
/* 操作ボタン: 返却は緑、取消は赤を明確に */
.admin-embed .rowbtns{display:flex;gap:6px;flex-wrap:wrap}
.admin-embed .rowbtns button{font-size:11px;border:none;border-radius:var(--radius-btn);padding:7px 12px;cursor:pointer;font-weight:700;transition:all .12s}
.admin-embed .rowbtns button:not(.danger){color:#fff;background:var(--hub-green)}
.admin-embed .rowbtns button:not(.danger):hover{opacity:.85}
.admin-embed .rowbtns button.danger{color:var(--hub-red);background:var(--hub-red-bg)}
.admin-embed .rowbtns button.danger:hover{background:#f9ddd9}
.admin-embed .card{background:var(--hub-panel);border:none;border-radius:var(--radius-card);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm)}
.admin-embed .card h3{font-size:14px;font-weight:800;margin-bottom:10px}
.admin-embed .form-hint{margin:0 0 12px;color:var(--muted);font-size:12px}
.admin-embed .field.invalid input,.admin-embed .field.invalid select{border-color:var(--hub-red);box-shadow:0 0 0 3px rgba(192,57,43,.1)}
.admin-embed .field.invalid label{color:var(--hub-red)}
.proxy-steps{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 10px}
.proxy-step{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;background:#f0f3f5;color:var(--hub-muted);padding:4px 12px;font-size:11px;font-weight:800}
.proxy-step.on{background:var(--hub-green-bg);color:var(--hub-green)}
.setting-state{margin:2px 0 12px;border-radius:10px;background:#f5f7f8;color:var(--hub-muted);padding:10px 12px;font-size:12px;font-weight:700;line-height:1.5}
.setting-state.ok{background:var(--hub-green-bg);color:var(--hub-green)}
.setting-state.warn{background:var(--hub-amber-bg);color:var(--hub-amber)}
.setting-state.err{background:var(--hub-red-bg);color:var(--hub-red)}
.btn.save-ok{background:var(--hub-green)!important;color:#fff!important;box-shadow:0 0 0 3px rgba(21,122,82,.16)!important}
.btn.save-error{background:var(--hub-red)!important;color:#fff!important;box-shadow:0 0 0 3px rgba(192,57,43,.16)!important}
.admin-embed .settings-card{padding:20px;border:1px solid var(--hub-line);box-shadow:var(--shadow-sm)}
.admin-embed .settings-card h3{margin:0 0 4px;font-size:16px;line-height:1.35}
.admin-embed .settings-card .form-hint{margin:0 0 14px;font-size:12.5px;line-height:1.55}
.admin-embed .settings-form-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.admin-embed .settings-form-grid-compact{grid-template-columns:1.2fr .8fr .8fr 1fr auto}
.admin-embed .settings-form-grid-month{grid-template-columns:minmax(180px,260px) auto}
.admin-embed .settings-form-grid .field{min-width:0!important;flex:none!important}
.admin-embed .settings-form-grid input,.admin-embed .settings-form-grid select{width:100%;min-height:44px}
.admin-embed .settings-form-grid .btn{min-height:44px}
.admin-embed .settings-actions{display:flex;justify-content:flex-start;margin-top:14px}
.admin-embed .settings-actions .btn{min-height:44px;min-width:120px}
.admin-embed .settings-group-title{font-size:12px;font-weight:800;color:var(--hub-ink);margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--hub-line)}
.admin-embed .settings-note{margin-top:12px;line-height:1.6;background:#fafbfc;border-radius:10px;padding:10px 12px}
.admin-embed .settings-list{margin-top:12px}
.admin-embed #pane-discount .settings-form-grid{grid-template-columns:1fr 1.1fr .7fr 1fr .8fr auto}
.admin-embed .ig{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.admin-embed .ig .field{margin:0;min-width:120px;flex:1}
.admin-embed .ig .field label{font-size:11px}
.admin-embed .ig input,.admin-embed .ig select{padding:8px 12px;font-size:14px}
.admin-embed .msg{font-size:13px;margin-top:8px}
.admin-embed .msg.ok{color:var(--brand)}
.admin-embed .msg.err{color:var(--err)}
.admin-embed .muted{color:var(--muted);font-size:12px}
.admin-embed .sec{padding:10px 0;border-bottom:2px solid var(--brand);font-size:14px;font-weight:700;color:var(--hub-ink);letter-spacing:0;margin:28px 0 0}
.admin-embed .sec .muted{font-size:11px;font-weight:400}
.admin-embed .range{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;align-items:center}
.admin-embed .range button{border:none;background:#f0f3f5;padding:7px 14px;font-size:12px;color:var(--hub-muted);border-radius:var(--radius-pill);cursor:pointer;font-weight:500;transition:all .12s}
.admin-embed .range button:hover{background:#e5eaed}
.admin-embed .range button.on{color:var(--hub-green);background:var(--hub-green-bg);font-weight:700}
.admin-embed .range .custom{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11px;color:var(--hub-muted)}
.admin-embed .range .custom input{border:1px solid var(--hub-line);padding:6px 10px;font-size:12px;border-radius:var(--radius-btn)}
.admin-embed .kpis{display:grid;grid-template-columns:repeat(3,1fr);border:none;border-radius:var(--radius-card);overflow:hidden;margin:14px 0;box-shadow:var(--shadow-sm);background:var(--hub-panel)}
.admin-embed .kpi{padding:14px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.admin-embed .kpi:nth-child(3n){border-right:none}
.admin-embed .kpi .l{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.02em}
.admin-embed .kpi .v{font-size:26px;font-weight:700;margin-top:4px;color:var(--hub-ink)}
.admin-embed .kpi .v small{font-size:12px;font-weight:400;color:var(--muted);margin-left:2px}
.admin-embed .kpi .d{font-size:11px;margin-top:4px}
.admin-embed .kpi .d.up{color:var(--brand)}
.admin-embed .kpi .d.dn{color:var(--muted)}
.admin-embed .bars .brow{display:flex;align-items:flex-start;gap:12px;margin:8px 0;font-variant-numeric:tabular-nums}
.admin-embed .bars .name{flex:0 1 120px;min-width:72px;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.admin-embed .bars .track{flex:1;height:12px;border:none;border-radius:6px;overflow:hidden;background:var(--hub-green-bg)}
.admin-embed .bars .fill{height:100%;background:var(--brand);border-radius:6px}
.admin-embed .bars .fill.soft{opacity:.4}
.admin-embed .bars .n{flex:0 1 130px;text-align:right;font-size:12px;color:var(--muted);overflow-wrap:anywhere;line-height:1.35}
.admin-embed .chart{display:flex;align-items:flex-end;gap:3px;height:110px;border-bottom:1px solid var(--hub-line);padding:0 2px}
.admin-embed .chart .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.admin-embed .chart .bar{width:100%;max-width:22px;background:var(--brand);min-height:2px;border-radius:3px 3px 0 0}
.admin-embed .chart .bar.wd{opacity:.4}
.admin-embed .xl{display:flex;gap:3px;padding:4px 2px 0}
.admin-embed .xl span{flex:1;text-align:center;font-size:9px;color:var(--muted);overflow:hidden;white-space:nowrap}
.admin-embed .legend{font-size:11px;color:var(--muted);margin-top:8px}
.admin-embed .legend i{display:inline-block;width:9px;height:9px;background:var(--brand);margin-right:4px;vertical-align:-1px}
.admin-embed .legend i.soft{opacity:.4}
.admin-embed .heat{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:none;border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-sm)}
.admin-embed .heat .cell{text-align:center;padding:8px 0 8px;border-right:1px solid var(--line);font-variant-numeric:tabular-nums}
.admin-embed .heat .cell:last-child{border-right:none}
.admin-embed .heat .hl{display:block;font-size:10px;color:var(--muted)}
.admin-embed .heat .hv{font-weight:600;font-size:13px}
.admin-embed .heat .bar2{height:4px;margin:4px 8px 0;background:var(--brand)}
.admin-embed .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.admin-embed .csvbtn{float:right;font-size:11px;color:var(--brand);font-weight:400;text-decoration:underline;text-underline-offset:3px;background:none;border:none;cursor:pointer}
.admin-embed .statnote{font-size:11px;color:var(--muted);margin-top:8px}
/* 統計ページ: 計測ページと同じ設計言語へ寄せる */
.admin-embed #pane-stats .section-title-main{margin:0 0 14px}
.admin-embed #pane-stats .stats-range{justify-content:space-between;margin:0 0 14px;padding:10px;background:#fff;border-radius:var(--radius-card);box-shadow:var(--shadow-sm)}
.admin-embed #pane-stats .stats-sec{border-bottom:1px solid var(--hub-line);padding:0 0 8px;margin:22px 0 12px;color:var(--hub-ink)}
.admin-embed #pane-stats .stats-sec-main{border-bottom:2px solid var(--hub-green);margin-top:10px}
.admin-embed #pane-stats .stats-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;box-shadow:none;background:transparent;overflow:visible}
.admin-embed #pane-stats .stats-kpis .kpi{background:#fff;border:1px solid var(--hub-line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);min-width:0}
.admin-embed #pane-stats .stats-kpis .kpi:nth-child(3n){border-right:1px solid var(--hub-line)}
.admin-embed #pane-stats .stats-kpis .stats-kpi-primary{border-left:4px solid var(--hub-green);background:var(--hub-green-bg)}
.admin-embed #pane-stats .stats-kpis .stats-kpi-primary .l{color:#125b3e;font-weight:800}
.admin-embed #pane-stats .stats-kpis .stats-kpi-primary .v{color:var(--hub-green);font-size:30px}
.admin-embed #pane-stats .two{gap:14px}
.admin-embed #pane-stats table{background:#fff;border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-sm)}
.admin-embed #pane-stats .bars{background:#fff;border-radius:var(--radius-card);padding:12px;box-shadow:var(--shadow-sm)}
.admin-embed #pane-stats .stats-empty{background:#fff;border:1px dashed var(--hub-line-strong);border-radius:var(--radius-card);color:var(--hub-muted);font-size:13px;padding:16px;text-align:center;box-shadow:var(--shadow-sm)}
.admin-embed #pane-stats .stats-empty-compact{padding:12px;font-size:12px;box-shadow:none}
.admin-embed #pane-stats .stats-empty-error{border-color:rgba(192,57,43,.3);background:var(--hub-red-bg);color:var(--hub-red)}
/* カレンダーヘッダー: 月表示を大きく、ナビを明確に */
.admin-embed .calhead{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--hub-line)}
.admin-embed .calhead b{font-size:16px;font-weight:800}
.admin-embed .calnav{padding:6px 14px;font-size:14px;border-radius:var(--radius-btn);background:#f0f3f5;border:none;cursor:pointer;transition:background .12s}
.admin-embed .calnav:hover{background:#e5eaed}
/* 一覧ツールバー: フィルタの視認性UP */
.admin-embed .list-tools{background:var(--hub-panel);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:16px;margin-bottom:14px}
.admin-embed .list-search{margin:0 0 12px}
.admin-embed .list-search input{font-size:14px;padding:12px 16px}
.admin-embed .list-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.admin-embed .list-filters select,.admin-embed .list-filters input{border:1px solid var(--hub-line);background:#fff;border-radius:var(--radius-pill);padding:8px 14px;font-size:12px;color:var(--hub-ink);min-height:38px;transition:border-color .12s}
.admin-embed .list-filters select:focus,.admin-embed .list-filters input:focus{border-color:var(--hub-green);outline:none}
.admin-embed .list-count{margin-top:10px;font-size:12px;font-weight:600}
/* カレンダー: セルを見やすく、今日を目立たせ、予約ありの日を色づけ */
.admin-embed .mcal{display:grid;grid-template-columns:repeat(7,1fr);border:none;border-radius:var(--radius-card);overflow:hidden;font-variant-numeric:tabular-nums;box-shadow:var(--shadow-sm)}
.admin-embed .mcal .wh{text-align:center;font-size:10px;font-weight:700;color:var(--hub-muted);padding:6px 0;border-bottom:1px solid var(--hub-line);border-right:1px solid var(--hub-line);background:var(--hub-warm)}
.admin-embed .mcal .wh:nth-child(7n){border-right:none}
.admin-embed .mcal .dc{min-height:62px;padding:6px 5px;border-bottom:1px solid var(--hub-line);border-right:1px solid var(--hub-line);cursor:pointer;background:var(--hub-panel);position:relative;transition:background .12s}
.admin-embed .mcal .dc:nth-child(7n){border-right:none}
.admin-embed .mcal .dc:hover{background:var(--hub-green-bg)}
.admin-embed .mcal .dc.out{opacity:.25;cursor:default}
.admin-embed .mcal .dc.today{box-shadow:inset 0 0 0 2px var(--hub-green);background:var(--hub-green-bg)}
.admin-embed .mcal .dc.sel{background:#e8f5ee}
.admin-embed .mcal .dc.closed{background:repeating-linear-gradient(-45deg,#fff,#fff 5px,#f3f6f4 5px,#f3f6f4 7px)}
.admin-embed .mcal .dn2{font-size:11px;color:var(--hub-muted)}
.admin-embed .mcal .dc.today .dn2{color:var(--hub-green);font-weight:800;font-size:12px}
.admin-embed .mcal .cnt{font-size:12px;font-weight:700;margin-top:2px;line-height:1.3;color:var(--hub-ink)}
.admin-embed .mcal .cnt small{font-weight:400;color:var(--muted);font-size:10px}
.admin-embed .mcal .load{height:3px;background:var(--brand);margin-top:3px;border-radius:1px}
.admin-embed .mcal .cl{font-size:10px;color:var(--muted)}
@media(max-width:860px){.amx{grid-template-columns:1fr}.hcard-hero{grid-column:1/-1}.hcard-hero .v{font-size:32px}.funnel-drop{margin-left:80px;font-size:9px}}
@media(max-width:860px){
  .admin-embed .kpis{grid-template-columns:repeat(2,1fr)}
  .admin-embed .kpi:nth-child(3n){border-right:1px solid var(--line)}
  .admin-embed .kpi:nth-child(2n){border-right:none}
  .admin-embed .kpi .v{font-size:22px}
  .admin-embed .two{grid-template-columns:1fr!important}
  .side{display:none}
  .mnav{display:none}
  .content{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
  /* ボトムタブバー（プレミアム） */
  .btab{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 -1px 0 var(--hub-line),0 -10px 28px rgba(27,32,36,.08);padding:6px 8px max(6px,env(safe-area-inset-bottom));justify-content:space-around;gap:4px}
  .btab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:var(--hub-muted);font-size:10px;padding:6px 14px;min-height:48px;cursor:pointer;-webkit-tap-highlight-color:transparent;text-decoration:none;min-width:0;flex:1;border-radius:12px;transition:all .15s}
  .btab-svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .btab-label{font-weight:600;white-space:nowrap;letter-spacing:0}
  .btab-item.on{color:var(--hub-green);background:var(--hub-green-bg)}
  .btab-item.on .btab-label{font-weight:800}
  /* ヘッダー C マーク */
  .top-mark{display:none}
  /* ボトムシートメニュー */
  .btab-sheet{position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--hub-panel);border-radius:16px 16px 0 0;box-shadow:0 -8px 32px rgba(0,0,0,.18);max-height:75vh;overflow:auto;animation:sheetUp .28s cubic-bezier(.2,.7,.2,1)}
  .btab-sheet[hidden]{display:none}
  .btab-sheet:not([hidden]){display:block}
  @keyframes sheetUp{from{transform:translateY(100%);opacity:.8}to{transform:translateY(0);opacity:1}}
  .btab-sheet-handle{width:36px;height:4px;background:var(--hub-line-strong);border-radius:2px;margin:10px auto 0}
  .btab-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 10px;font-weight:800;font-size:15px}
  .btab-sheet-close{border:0;background:transparent;font-size:18px;color:var(--hub-muted);cursor:pointer;padding:0;border-radius:8px;width:48px;height:48px;display:grid;place-items:center}
  .btab-sheet-close:active{background:#f0f3f5}
  .btab-sheet-body{padding:4px 12px max(16px,env(safe-area-inset-bottom))}
  .btab-sheet-group{font-size:11px;font-weight:700;color:var(--hub-muted);letter-spacing:.04em;padding:12px 16px 4px;text-transform:uppercase}
  .btab-sheet-sep{height:1px;background:var(--hub-line);margin:8px 16px}
  .btab-sheet-item{display:block;padding:13px 16px;font-size:15px;color:var(--hub-ink);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;background:transparent;width:100%;text-align:left;text-decoration:none;transition:background .1s}
  .btab-sheet-item:active{background:#f0f3f5}
  .btab-logout{color:var(--hub-red);font-weight:700}
  .btab-scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:29;display:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .btab-scrim.open{display:block}
  /* ヘッダー: マーク + タイトルのみ */
  .top{padding:0 16px;height:48px;gap:8px}
  .top h1{font-size:15px}
  .top-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--hub-green);color:#fff;font-size:12px;font-weight:800;flex:none}
  .top-logout{display:none!important}
  .top-report{padding:8px 11px!important;min-height:38px!important;font-size:12px!important}
  .search{display:none}
  .report-modal{width:calc(100% - 20px);max-height:calc(100vh - 20px)}
  .report-modal-head{padding:16px 16px 12px}
  .report-modal-body{padding:16px}
  .report-modal-foot{display:grid;grid-template-columns:1fr 1fr;padding:12px 16px max(16px,env(safe-area-inset-bottom))}
  .report-modal-foot .btn{width:100%}
  .reports-head{align-items:center}
  .reports-filters{display:grid;grid-template-columns:1fr 1fr}
  .reports-filters .field{min-width:0}
  .report-card{padding:14px 12px}
  .report-card-head{display:grid;gap:6px}
  .report-edit{grid-template-columns:1fr}
  .report-edit .btn{width:100%}
  /* コンテンツ: ボトムタブ分の余白 */
  .content{padding:12px 12px calc(72px + env(safe-area-inset-bottom))!important;overflow-x:hidden}
  /* ボタン: タッチ対応 */
  .btn{padding:10px 16px;font-size:14px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .chip{padding:8px 14px;font-size:13px;min-height:44px;display:inline-flex;align-items:center}
  /* サブタブ: 全幅トグルバー（タッチ最適・48px高さ） */
  .sub-tabs{gap:0;margin:0 0 14px;overflow:hidden;flex-wrap:nowrap;padding:3px;background:#f0f3f5;border-radius:var(--radius-btn)}
  .sub-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .sub-tab{padding:9px 12px;font-size:13px;white-space:nowrap;flex:0 0 auto;min-width:104px;text-align:center;min-height:38px;border-radius:8px;box-shadow:none}
  .sub-tab:hover{transform:none;box-shadow:none}
  .sub-tab.on{border-radius:8px;box-shadow:var(--shadow-sm)}
  /* KPIカード: 2列グリッド */
  .health{grid-template-columns:repeat(2,1fr);gap:6px}
  .hcard{padding:10px 12px}
  .hcard .v{font-size:22px}
  .hcard .k{font-size:10px}
  /* セクション見出し */
  .section-title{font-size:13px;margin:14px 0 8px}
  .task-list{gap:4px}
  .task{grid-template-columns:auto 1fr;align-items:flex-start;padding:10px 12px}
  .task,.task .ttl,.task .txt,.hcard,.hcard .sub{min-width:0;overflow-wrap:anywhere;word-break:break-word}
  .task a{grid-column:2;justify-self:start;margin-top:4px;white-space:normal;line-height:1.35}
  /* テーブル */
  .gtr{grid-template-columns:1fr auto auto;gap:8px;padding:12px 14px;font-size:12px}
  .gtr .gcol-ad,.gtr .gcol-cpa,.gtr .gcol-article{display:none}
  .gtr.campaign-tr{grid-template-columns:1fr auto auto}
  .campaign-tr>div:nth-child(2),.campaign-tr>div:nth-child(4),.campaign-tr>div:nth-child(6){display:none}
  .gtr.thead{padding:8px 14px;font-size:9px}
  .gtr .theme{font-size:13px}
  /* ファネルバー */
  .funnel-row{grid-template-columns:80px 1fr 60px;gap:6px;padding:4px 0}
  .funnel-label{font-size:11px}
  .funnel-bar-wrap{height:24px}
  .funnel-val{font-size:12px}
  /* 評価カード */
  .eval-card{flex-direction:column;gap:10px;padding:16px}
  .eval-signal{font-size:28px}
  .eval-metrics{gap:12px;font-size:12px}
  .eval-action{font-size:12px}
  /* 季節カレンダー: 6列 */
  .gcal{grid-template-columns:repeat(6,1fr)}
  /* 今やること */
  .gnext li{font-size:12px;padding:8px 12px 8px 28px}
  /* UTM テーブル */
  .atr{grid-template-columns:1fr auto auto;gap:6px;padding:8px 12px;font-size:12px}
  .atr .cvr{display:none}
  .atr .src small{font-size:9px}
  /* ページ管理 */
  .tnode{grid-template-columns:auto 1fr auto;padding:4px 10px 4px 14px}
  .tnode .meta{display:none}
  .tnode .slug{display:none}
  .tr{grid-template-columns:1fr auto;gap:6px}
  .tr .updated{display:none}
  .tr .seo{font-size:10px}
  .tr .rowacts{flex-wrap:nowrap}
  /* ドロワー */
  .resv-fields{grid-template-columns:1fr}
  .drawer{width:100%}
  .resv-drawer{width:100%}
  .page-drawer .drawer-head{position:sticky;top:0;background:var(--hub-panel);z-index:1;padding:12px 14px}
  .page-drawer .drawer-close{width:44px;height:44px;font-size:18px}
  .page-drawer .drawer-body{padding:14px;gap:12px}
  .page-drawer .drawer-foot{padding:12px 14px max(12px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr;gap:8px}
  .page-drawer .drawer-foot .btn{width:100%;min-height:48px}
  /* 管理画面埋め込み: モバイルファースト改善 */
  .admin-embed .abar{display:none}
  .admin-embed #login{display:none}
  .admin-embed .pane{padding:14px 12px;overflow-x:auto}
  /* カレンダー: セルを大きく、タップしやすく */
  .admin-embed .mcal .dc{min-height:54px;padding:5px 4px}
  .admin-embed .mcal .dc.today .dn2{font-size:13px}
  .admin-embed .calhead{flex-wrap:wrap;gap:8px}
  .admin-embed .calhead b{font-size:15px}
  .admin-embed .calhead .muted{font-size:11px;width:100%;margin:0}
  .admin-embed .calnav{min-height:44px;min-width:44px;display:grid;place-items:center}
  /* テーブル: ヘッダー行を非表示（renderTable は <thead> でなく <tr><th> 直書き）*/
  .admin-embed table{min-width:0}
  .admin-embed thead{display:none}
  .admin-embed table>tr:first-child,.admin-embed table>tbody>tr:first-child{display:none}
  .admin-embed tr:has(th){display:none}
  /* 予約行: カード型レイアウト */
  .admin-embed .resv-row{display:grid;grid-template-columns:1fr;gap:8px;padding:14px 12px;border-bottom:1px solid var(--hub-line);align-items:stretch}
  .admin-embed .resv-row td{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;border:none;padding:0;font-size:13px;min-width:0;overflow-wrap:anywhere;white-space:normal!important}
  .admin-embed .resv-row td[data-label]::before{content:attr(data-label);font-size:10px;font-weight:800;color:var(--hub-muted);flex:0 0 auto}
  .admin-embed .resv-row td[data-label="操作"]::before,.admin-embed .resv-row td[data-label="選択"]::before{display:none}
  .admin-embed .resv-row td[data-label="操作"],.admin-embed .resv-row td[data-label="選択"]{display:block}
  .admin-embed .resv-row td *{min-width:0}
  .admin-embed .resv-row .bulk-cb{display:none}
  .admin-embed .resv-row .pill{font-size:10px;padding:3px 8px}
  .admin-embed .resv-row .rowbtns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-top:8px;gap:8px}
  .admin-embed .resv-row .rowbtns button{flex:1;min-height:44px;font-size:13px;border-radius:var(--radius-btn)}
  /* フィルタ: 縦積みでタッチ最適 */
  .admin-embed .list-tools{padding:12px}
  .admin-embed .list-search input{font-size:16px;padding:14px 16px;border-radius:var(--radius-card)}
  .admin-embed .list-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
  .admin-embed .list-filters select,.admin-embed .list-filters input{font-size:16px;min-height:48px;border-radius:var(--radius-btn);width:100%}
  .admin-embed .list-filters .btn{grid-column:1/-1;min-height:48px;font-size:14px}
  .admin-embed .list-count{margin-top:10px;font-size:13px;text-align:center}
  /* フォーム: 短いグループ(日付+ボタン)は横のまま、多フィールド(代理登録)は縦に */
  .admin-embed .ig{flex-wrap:wrap;gap:10px}
  .admin-embed .ig .field{min-width:auto;flex:1 1 140px}
  .admin-embed .ig input,.admin-embed .ig select{font-size:16px;padding:12px 14px;min-height:48px}
  #dayView .ig{flex-wrap:wrap}
  #dayView .ig .field{flex:1 1 auto}
  #dayView .ig .btn{min-height:48px}
  .admin-embed .kpis{grid-template-columns:repeat(2,1fr)}
  .admin-embed .two{grid-template-columns:1fr}
  .admin-embed .rowbtns{display:flex;flex-wrap:wrap;gap:6px}
  .admin-embed .rowbtns button{padding:8px 12px;font-size:13px;min-height:44px}
  /* 全体: タッチ操作最適化 */
  input[type="date"],input[type="month"],select{font-size:16px;min-height:44px}
  /* ダッシュボード */
  .dash-greeting{font-size:15px;margin:0}
  .dash-date{font-size:11px;margin:0 0 8px;padding:0 0 6px}
  .footer-bar{flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .footer-copy{margin-left:0}
}
@media(max-width:480px){
  .health{grid-template-columns:repeat(2,1fr);gap:6px}
}
@media(max-width:860px){
  .admin-embed #pane-stats .stats-range{display:grid;grid-template-columns:1fr;gap:8px;padding:10px}
  .admin-embed #pane-stats .stats-range button{min-height:44px}
  .admin-embed #pane-stats .stats-range .custom{margin-left:0;width:100%;display:grid;grid-template-columns:1fr auto 1fr;gap:8px}
  .admin-embed #pane-stats .stats-range .custom .btn{grid-column:1/-1;width:100%;min-height:44px}
  .admin-embed #pane-stats .stats-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-embed #pane-stats .stats-kpis .stats-kpi-primary .v{font-size:24px}
  .admin-embed #pane-stats .bars{padding:10px}
  .admin-embed .settings-card{padding:16px}
  .admin-embed .settings-form-grid,
  .admin-embed .settings-form-grid-compact,
  .admin-embed .settings-form-grid-month,
  .admin-embed #pane-discount .settings-form-grid{grid-template-columns:1fr!important}
  .admin-embed .settings-form-grid .btn,
  .admin-embed .settings-actions .btn{width:100%;min-height:48px}
  .admin-embed .settings-list{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .admin-embed .settings-list table{min-width:520px}
}
@media(max-width:480px){
  .admin-embed #pane-stats .stats-kpis{grid-template-columns:1fr}
}
/* 一括操作バー */
.bulk-bar{position:sticky;bottom:0;background:var(--hub-panel);border-top:2px solid var(--hub-green);padding:10px 16px;display:flex;align-items:center;gap:10px;z-index:20;box-shadow:0 -2px 8px rgba(0,0,0,.08)}
.bulk-bar .btn{padding:6px 12px;font-size:12px}
.bulk-bar .danger{background:var(--hub-red);border-color:var(--hub-red);color:#fff}
.bulk-count{font-weight:700;font-size:13px;margin-right:auto}
.bulk-cb,.bulk-select-all{width:16px;height:16px;cursor:pointer;accent-color:var(--hub-green,#157a52)}
/* 広告スケジュール */
:root{--ads-ig:#e6683c;--ads-google:#4285f4;--ads-sunset:#b9750a}
.ad-schedule-wrap{margin-bottom:20px}
.ads-loading{color:var(--hub-muted);font-size:13px;padding:16px 0}
.ads-top-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px;max-width:100%;min-width:0}
.ads-focus-bar{align-items:stretch}
.ads-tc{background:var(--hub-panel);border-radius:var(--radius-card);padding:14px 18px;box-shadow:var(--shadow-sm);min-width:0}
.ads-lbl{font-size:10px;font-weight:700;color:var(--hub-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.ads-val{font-size:20px;font-weight:800;color:var(--hub-ink)}
.ads-val small{font-size:12px;font-weight:600;color:var(--hub-muted)}
.ads-sub{font-size:11px;color:var(--hub-muted);margin-top:3px}
.ads-pill{font-size:10px;font-weight:700;padding:3px 10px;border-radius:20px;display:inline-block}
.ads-pill.ok{background:var(--hub-green-bg);color:var(--hub-green)}
.ads-pill.warn{background:var(--hub-amber-bg);color:var(--hub-amber)}
.ads-pill.stop{background:var(--hub-red-bg);color:var(--hub-red)}
.ads-timezone-note{margin:-8px 0 16px;padding:10px 14px;border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:10px;font-size:11.5px;line-height:1.5;box-shadow:var(--shadow-sm)}
.ads-override-btn{font-size:11px;font-weight:600;padding:0 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff;color:#334155;cursor:pointer;height:28px;display:flex;align-items:center;margin-top:8px;transition:all .12s;width:100%!important;justify-content:center}
.ads-override-btn:hover{background:#f1f5f9;border-color:#94a3b8}
.ads-override-btn.active{background:#0369a1;color:#fff;border-color:#0369a1}
.ads-override-btn.active:hover{background:#075985}
.ads-override-readonly{font-size:11px;font-weight:600;padding:0 12px;border-radius:6px;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;height:28px;display:flex;align-items:center;margin-top:8px;width:100%!important;justify-content:center}
.ads-override-readonly.active{background:#eff6ff;color:#1e40af;border-color:#93c5fd}
.ads-budget-edit{font:inherit;font-size:11px;font-weight:700;color:var(--hub-ink);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:2px 8px;cursor:pointer;transition:all .12s;display:inline-flex;align-items:center;gap:4px;height:24px;vertical-align:middle}
.ads-budget-edit::after{content:'✎';font-size:10px;color:var(--hub-green);opacity:.6}
.ads-budget-edit:hover{background:#dcfce7;border-color:var(--hub-green)}
.ads-budget-readonly{font:inherit;font-size:11px;font-weight:700;color:var(--hub-ink);background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:2px 8px;display:inline-flex;align-items:center;gap:4px;height:24px;vertical-align:middle;box-sizing:border-box}
.ads-readonly-note{font-size:11px;font-weight:600;padding:0 10px;border-radius:6px;border:1px solid #e2e8f0;background:#f8fafc;color:#64748b;display:inline-flex;align-items:center;height:26px;box-sizing:border-box;vertical-align:middle;line-height:1;white-space:nowrap}
.ads-readonly-banner{font-size:12px;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;margin:8px 0 12px;line-height:1.5}
.budget-picker{margin-top:8px;padding:10px;background:#f8fafb;border:1px solid var(--hub-line);border-radius:10px;animation:cardIn .15s ease}
.bp-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.bp-chip{font-size:12px;font-weight:600;padding:0 12px;height:30px;border-radius:6px;border:1px solid var(--hub-line);background:#fff;color:var(--hub-ink);cursor:pointer;transition:all .12s;display:inline-flex;align-items:center}
.bp-chip:hover{border-color:var(--hub-green);color:var(--hub-green)}
.bp-chip.bp-sel{background:var(--hub-green-bg);border-color:var(--hub-green);color:var(--hub-green);font-weight:700}
.bp-custom{display:flex;gap:6px;align-items:center}
.bp-input{flex:1;border:1px solid var(--hub-line);border-radius:6px;padding:6px 10px;font-size:13px;min-width:0}
.bp-input:focus{outline:none;border-color:var(--hub-green)}
.bp-save{font-size:12px;font-weight:600;padding:0 12px;height:30px;border-radius:6px;border:none;background:var(--hub-green);color:#fff;cursor:pointer}
.bp-saving{font-size:12px;color:var(--hub-muted);padding:4px 0}
.ads-override-btn:disabled{opacity:.5;cursor:wait}
.ads-chip{font-size:11px;font-weight:600;padding:0 10px;border-radius:6px;border:1px solid transparent;display:inline-flex;align-items:center;height:26px;box-sizing:border-box;vertical-align:middle;line-height:1;white-space:nowrap}
.ads-status-badge{composes:ads-chip}
.ads-status-badge.active{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.ads-status-badge.paused{background:#fef2f2;color:#991b1b;border-color:#fecaca}
.ads-status-badge.hub{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}
.ads-name-link{color:inherit;text-decoration:none;border-bottom:1px dashed #cbd5e1;transition:all .15s}
.ads-name-link:hover{color:var(--hub-blue);border-bottom-color:var(--hub-blue)}
.ads-toggle-btn{font-size:11px;font-weight:600;padding:0 10px;border-radius:6px;border:1px solid #d1d5db;background:#fff;color:#334155;cursor:pointer;display:inline-flex;align-items:center;height:26px;box-sizing:border-box;transition:all .12s;vertical-align:middle;line-height:1;white-space:nowrap}
.ads-toggle-btn:hover{background:#f8fafc;border-color:#9ca3af}
.ads-toggle-btn.on:hover{background:#fef2f2;border-color:#fca5a5;color:#991b1b}
.ads-toggle-btn.off{background:#f0fdf4;border-color:#86efac;color:#166534}
.ads-toggle-btn.off:hover{background:#dcfce7}
.ads-toggle-btn:disabled{opacity:.5;cursor:wait}
.ads-row-paused{opacity:.55}
.ads-row-paused .ads-thumb{filter:grayscale(.7)}
.ads-paused-divider{font-size:12px;color:var(--hub-muted);border-top:1px dashed #e5e7eb;margin:16px 0 8px;padding-top:8px}
.ads-paused-details{background:var(--hub-panel);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);margin:0 0 20px;overflow:hidden}
.ads-paused-details summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--hub-ink);padding:14px 18px;min-height:44px;display:flex;align-items:center}
.ads-paused-list{padding:0 14px 14px}
.ads-paused-list .ads-row{box-shadow:none;border:1px solid var(--hub-line)}
.ads-section{margin-bottom:28px}
.ads-section-head{font-size:13px;font-weight:700;color:var(--hub-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.ads-platform-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:8px}
.ads-platform-badge.ig{background:#fce4ec;color:#c2185b}
.ads-platform-badge.google{background:#e3f2fd;color:#1565c0}
.ads-platform-badge.sunset{background:#fef3c7;color:#92400e}
.ads-platform-badge.active{background:var(--hub-green-bg);color:var(--hub-green)}
.ads-row{display:grid;grid-template-columns:minmax(260px,320px) 1fr;background:var(--hub-panel);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);margin-bottom:10px;overflow:hidden;min-height:88px}
.ads-info{padding:14px 16px;border-right:1px solid var(--hub-line);display:flex;gap:12px;align-items:center}
.ads-thumb{width:52px;height:52px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--hub-line)}
.ads-icon-box{width:52px;height:52px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:16px;font-weight:800;flex-shrink:0}
.ads-icon-box.ig{background:var(--ads-ig)}
.ads-icon-box.google{background:var(--ads-google)}
.ads-icon-box.sunset{background:linear-gradient(135deg,#f59e0b,#d97706)}
.ads-detail{min-width:0;flex:1}
.ads-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--hub-ink)}
.ads-target{font-size:10px;color:var(--hub-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ads-budget{font-size:11px;font-weight:700;margin-top:3px;color:var(--hub-ink)}
.ads-spend-today{font-weight:400;color:var(--hub-muted);font-size:10px}
.ads-controls{display:flex;align-items:center;gap:5px;margin-top:6px;flex-wrap:wrap}
.ads-link{font-size:9px;color:var(--hub-blue);text-decoration:none;display:block;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ads-tl{padding:10px 12px;display:flex;flex-direction:column;justify-content:center}
.ads-tl-head{display:grid;grid-template-columns:repeat(15,1fr);gap:2px;margin-bottom:4px}
.ads-tl-bars{display:grid;grid-template-columns:repeat(15,1fr);gap:2px}
.ads-tl-h{font-size:8px;color:var(--hub-muted);text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
.ads-tl-h-now{color:var(--hub-green);font-weight:800;font-size:7px;letter-spacing:-.02em}
.ads-tl-c{height:26px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;transition:all .12s;position:relative}
.ads-tl-c:hover{transform:scaleY(1.25);z-index:2}
/* ── 過去: 塗りつぶし = 配信した ── */
.ads-tl-c.past.on-ig{background:rgba(230,104,60,.3)}
.ads-tl-c.past.on-g{background:rgba(66,133,244,.3)}
.ads-tl-c.past.on-sun{background:rgba(245,158,11,.3)}
.ads-tl-c.past.warn{background:rgba(185,117,10,.2)}
.ads-tl-c.past.stop{background:rgba(192,57,43,.15)}
.ads-tl-c.past.off{background:#edeef0}
.ads-tl-c.past{color:transparent}
/* ── 現在: 緑枠パルス + 濃い塗り = 今配信中 ── */
@keyframes nowPulse{0%,100%{box-shadow:0 0 0 2px var(--hub-green)}50%{box-shadow:0 0 0 3px var(--hub-green),0 0 8px rgba(21,122,82,.25)}}
.ads-tl-c.now{outline:none;box-shadow:0 0 0 2px var(--hub-green);animation:nowPulse 2s ease-in-out infinite;z-index:2;border-radius:5px;font-size:10px}
.ads-tl-c.now.on-ig{background:rgba(230,104,60,.35);color:#c2461e}
.ads-tl-c.now.on-g{background:rgba(66,133,244,.35);color:#1a56c4}
.ads-tl-c.now.on-sun{background:rgba(245,158,11,.4);color:#7c3608}
.ads-tl-c.now.off{background:#e8e9eb;color:var(--hub-muted)}
.ads-tl-c.now.stop{background:rgba(192,57,43,.2);color:var(--hub-red)}
/* ── 未来: 出る/出ないだけが重要。プラットフォーム色は使わない ── */
.ads-tl-c.future{background:transparent!important;color:transparent}
.ads-tl-c.future.on-ig,.ads-tl-c.future.on-g,.ads-tl-c.future.on-sun{border:1.5px solid #c5c9cf}
.ads-tl-c.future.warn{border:1.5px dashed var(--hub-amber);background:transparent!important}
.ads-tl-c.future.stop{border:1.5px dashed var(--hub-red);background:rgba(192,57,43,.04)!important;color:transparent}
.ads-tl-c.future.off{border:1.5px dashed #dfe1e4;background:transparent!important}
/* ── フォールバック ── */
.ads-tl-c.on-ig{background:rgba(230,104,60,.2);color:transparent}
.ads-tl-c.on-g{background:rgba(66,133,244,.2);color:transparent}
.ads-tl-c.on-sun{background:rgba(245,158,11,.22);color:transparent}
.ads-tl-c.warn{background:var(--hub-amber-bg);color:var(--hub-amber)}
.ads-tl-c.off{background:#f1f2f4;color:transparent}
.ads-tl-c.stop{background:var(--hub-red-bg);color:var(--hub-red)}
/* ── サマリー + 凡例 ── */
.ads-tl-footer{display:flex;justify-content:space-between;align-items:center;margin-top:5px;font-size:10px;color:var(--hub-muted)}
.ads-tl-summary{font-variant-numeric:tabular-nums}
.ads-tl-legend{display:flex;gap:8px;font-size:9px}
.ads-tl-legend span{display:flex;align-items:center;gap:2px}
.ads-wm-btn{font-size:11px;font-weight:600;padding:0 10px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;cursor:pointer;display:inline-flex;align-items:center;height:26px;box-sizing:border-box;transition:all .12s;vertical-align:middle;line-height:1;white-space:nowrap}
.ads-wm-btn.wm-local{background:#fef3c7;border-color:#fbbf24;color:#92400e}
.ads-wm-btn.wm-always{background:#eff6ff;border-color:#93c5fd;color:#1e40af}
.ads-wm-btn:hover{opacity:.8}
.ads-wm-btn:disabled{opacity:.5;cursor:wait}
.ads-wm-badge{font-size:11px;font-weight:600;padding:0 10px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;display:inline-flex;align-items:center;height:26px;box-sizing:border-box;vertical-align:middle;line-height:1;white-space:nowrap}
.ads-wm-badge.wm-local{background:#fef3c7;border-color:#fbbf24;color:#92400e}
.ads-wm-badge.wm-always{background:#eff6ff;border-color:#93c5fd;color:#1e40af}
.ads-legend{display:flex;gap:16px;flex-wrap:wrap;padding:12px 18px;background:var(--hub-panel);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);margin-bottom:10px}
.ads-lg{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--hub-muted)}
.ads-guide{background:var(--hub-panel);border:1px solid var(--hub-line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:24px;margin-top:0}
.ads-guide-title{font-size:16px;font-weight:800;color:var(--hub-ink);margin-bottom:6px;padding-bottom:10px;border-bottom:2px solid var(--hub-green)}
.ads-guide-lead{font-size:12.5px;color:var(--hub-muted);margin:0 0 18px;line-height:1.6}
.ads-guide-section{margin-bottom:18px;padding:14px;border:1px solid var(--hub-line);border-radius:12px;background:#fff}
.ads-guide-section:last-child{margin-bottom:0}
.ads-guide-h{font-size:13px;font-weight:800;color:var(--hub-ink);margin-bottom:8px}
.ads-guide p{font-size:12px;color:var(--hub-muted);margin:6px 0;line-height:1.6}
.ads-guide-table{width:100%;border-collapse:collapse;font-size:12px;margin:8px 0;overflow:hidden;border-radius:10px}
.ads-guide-table th{text-align:left;padding:6px 10px;background:#f8f9fa;color:var(--hub-muted);font-weight:600;border-bottom:1px solid var(--hub-line);white-space:nowrap}
.ads-guide-table td{padding:6px 10px;border-bottom:1px solid var(--hub-line);color:var(--hub-ink);vertical-align:top}
.ads-guide-table tr:last-child td{border-bottom:none}
.ads-flow{display:flex;flex-direction:column;gap:16px;margin:12px 0}
.ads-flow-row{display:flex;align-items:stretch;gap:0}
.ads-flow-box{flex:1;border-radius:10px;padding:12px 14px;min-width:0}
.ads-flow-box.ext{background:#fef3c7;border:1px solid #fbbf24}
.ads-flow-box.worker{background:#eff6ff;border:1px solid #93c5fd}
.ads-flow-box.db{background:#f0fdf4;border:1px solid #86efac}
.ads-flow-box.hub{background:#faf5ff;border:1px solid #c4b5fd}
.ads-flow-label{font-size:12px;font-weight:700;color:var(--hub-ink)}
.ads-flow-sub{font-size:10px;color:var(--hub-muted);margin-top:2px}
.ads-flow-detail{margin-top:6px;display:flex;flex-direction:column;gap:2px}
.ads-flow-detail span{font-size:10px;color:#4b5563;padding-left:10px;position:relative}
.ads-flow-detail span::before{content:"·";position:absolute;left:2px;font-weight:800}
.ads-flow-arrow{flex:0 0 50px;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--hub-muted);font-weight:600;text-align:center;padding:0 2px}
.ads-flow-arrow.bidir::before{content:"⇄";display:block;font-size:16px;color:#94a3b8}
.ads-flow-arrow:not(.bidir)::before{content:"→";display:block;font-size:16px;color:#94a3b8}
@media(max-width:860px){.ads-flow-row{flex-direction:column;gap:4px}.ads-flow-arrow{flex:0 0 24px;transform:rotate(90deg)}.ads-guide{padding:16px}.ads-guide-section{padding:12px;overflow-x:auto}.ads-guide-table{min-width:520px}.ads-guide-title{font-size:15px}}
.ads-lb{width:14px;height:14px;border-radius:3px;flex-shrink:0}
.ads-budget-summary{background:var(--hub-panel);border-radius:var(--radius-card);padding:16px 20px;box-shadow:var(--shadow-sm);margin-bottom:20px}
.ads-budget-line{font-size:11px;color:var(--hub-muted);padding:3px 0}
.ads-budget-total{font-size:13px;font-weight:700;color:var(--hub-ink);padding-top:8px;margin-top:4px;border-top:1px solid var(--hub-line)}
@media(max-width:860px){
  .ads-top-bar{grid-template-columns:1fr}
  .ads-row{grid-template-columns:1fr}
  .ads-info{border-right:0;border-bottom:1px solid var(--hub-line)}
  .growth-panel,.ad-schedule-wrap,.ads-row{max-width:100%;min-width:0}
  .ads-tl{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .ads-tl-head,.ads-tl-bars,.ads-tl-footer{min-width:560px}
}
/* 印刷 */
@media print{
  .side,.mnav,.top,.footer-bar,.btn,.search,.scrim,.drawer{display:none!important}
  .shell{display:block}
  .main{display:block}
  .content{padding:0;max-width:none}
  .view.view-on{display:block!important}
  .hcard{break-inside:avoid;border:1px solid #ccc;box-shadow:none}
  .table{break-inside:avoid}
  body{background:#fff;font-size:12px}
}
@media screen and (max-width:480px){
  .content .health,
  #dashKpis{
    grid-template-columns:repeat(2,1fr)!important;
    gap:6px;
  }
}
