/* KAIMUくん デモ — デザインシステム */
:root{
  --bg:#F5F5F7; --card:#FFFFFF; --ink:#1D1D1F; --ink2:#3A3A3C; --muted:#6E6E73; --faint:#AEAEB2;
  --line:#E5E5EA; --line2:#F0F0F3; --fill:#F2F2F5;
  --brand:#2F5BFF; --brand-ink:#1C40D8; --brand-soft:#EDF1FF; --brand2:#7B5CFA;
  --grad:linear-gradient(135deg,#2F5BFF 0%,#6A5CFF 60%,#9B6BFF 100%);
  --night:#0B1026;
  --ok:#12A150; --ok-soft:#E6F6EC; --no:#8E8E93; --no-soft:#F0F0F3;
  --maybe:#E58A00; --maybe-soft:#FFF3DE; --proxy:#7B5CFA; --proxy-soft:#F0ECFF;
  --alert:#E5484D; --alert-soft:#FDECEC;
  --c-soshiki:#2F5BFF; --c-kousei:#0EA5A0; --c-kenshu:#E58A00; --c-kouhou:#E5487F; --c-igyo:#7B5CFA; --c-all:#1D1D1F;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  --num:"SF Pro Display",-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;
  --r-lg:22px; --r:16px; --r-sm:11px;
  --sh:0 1px 2px rgba(0,0,0,.04),0 4px 14px rgba(0,0,0,.04);
  --sh-lg:0 2px 6px rgba(0,0,0,.05),0 18px 40px rgba(20,28,60,.10);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.55;
  font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased;letter-spacing:.01em}
button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer;letter-spacing:inherit}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}
svg.i{width:1em;height:1em;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em}
.num{font-family:var(--num);font-feature-settings:"tnum" 1;letter-spacing:-.01em}
.muted{color:var(--muted)} .faint{color:var(--faint)} .b{font-weight:700}
.row{display:flex;align-items:center;gap:10px} .col{display:flex;flex-direction:column} .grow{flex:1;min-width:0}
.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ============ カタログ（デモの外枠） ============ */
.cat{display:grid;grid-template-columns:268px 1fr;min-height:100vh}
.cat-side{position:sticky;top:0;height:100vh;overflow:auto;background:#fff;border-right:1px solid var(--line);padding:22px 14px 30px}
.cat-brand{display:flex;gap:11px;align-items:center;padding:0 8px 18px}
.cat-brand .t{font-weight:800;font-size:17px;letter-spacing:.02em}
.cat-brand .s{font-size:11px;color:var(--muted)}
.cat-label{font-size:11px;font-weight:700;color:var(--faint);letter-spacing:.08em;padding:16px 10px 6px}
.cat-side a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--ink2);text-decoration:none;font-size:13.5px}
.cat-side a:hover{background:var(--fill)}
.cat-side a.on{background:var(--brand-soft);color:var(--brand-ink);font-weight:700}
.cat-side a .no{font-family:var(--num);font-size:11px;color:var(--faint);width:18px}
.cat-side a.on .no{color:var(--brand)}
.cat-note{margin:18px 10px 0;font-size:11px;color:var(--muted);line-height:1.7}
.cat-main{padding:40px 30px 60px;display:flex;flex-direction:column;align-items:center}
.cat-head{width:100%;max-width:1440px;margin-bottom:22px}
.cat-head h1{font-size:28px;font-weight:800;letter-spacing:-.01em}
.cat-head p{color:var(--muted);font-size:14px;margin-top:3px}
body.shot{background:#EEF0F4}
body.shot .cat{display:block}
body.shot .cat-side,body.shot .cat-head{display:none}
body.shot .cat-main{padding:28px}
body.shot.desk-mode .cat-main{padding:0}

.logo{width:36px;height:36px;border-radius:10px;background:var(--grad);display:grid;place-items:center;color:#fff;flex:0 0 auto;
  box-shadow:0 4px 12px rgba(47,91,255,.35)}
.logo svg{width:20px;height:20px;stroke-width:2.2}

/* ============ スマホ枠 ============ */
.phones{display:flex;gap:44px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.phone-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}
.phone-cap{font-size:13px;font-weight:700;color:var(--ink2);background:#fff;border-radius:99px;padding:5px 14px;box-shadow:var(--sh)}
.phone{width:390px;height:844px;border-radius:58px;background:#0c0c0e;padding:11px;box-shadow:0 30px 60px -20px rgba(10,16,40,.35),inset 0 0 0 2px #2a2a2e;position:relative;flex:0 0 auto}
.phone .scr{width:100%;height:100%;border-radius:47px;background:var(--bg);overflow:hidden;position:relative;display:flex;flex-direction:column}
.phone .island{position:absolute;top:22px;left:50%;transform:translateX(-50%);width:118px;height:34px;border-radius:20px;background:#000;z-index:30}
.sbar{height:52px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:6px 30px 0 34px;font-family:var(--num);font-weight:600;font-size:15px;z-index:20}
.sbar .ic{display:flex;gap:5px;align-items:center}
.sbar .batt{width:24px;height:12px;border-radius:4px;border:1.5px solid currentColor;position:relative;opacity:.9}
.sbar .batt::after{content:"";position:absolute;inset:1.5px;width:15px;border-radius:2px;background:currentColor}
.scr.dark .sbar{color:#fff}
.body{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;scrollbar-width:none}
.body::-webkit-scrollbar{display:none}
.pad{padding:0 18px}
.home-ind{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:134px;height:5px;border-radius:3px;background:#1d1d1f;z-index:40}

/* ナビバー */
.nb{display:flex;align-items:center;gap:8px;padding:4px 16px 8px;min-height:44px;position:relative;z-index:10}
.nb .back{display:flex;align-items:center;gap:2px;color:var(--brand);font-size:16px;font-weight:500}
.nb .back svg{font-size:22px;stroke-width:2.2}
.nb .ttl{position:absolute;left:0;right:0;text-align:center;font-weight:700;font-size:16px;pointer-events:none}
.nb .acts{margin-left:auto;display:flex;gap:8px}
.icbtn{width:36px;height:36px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:var(--sh);position:relative;font-size:18px;color:var(--ink)}
.icbtn .dot{position:absolute;top:6px;right:7px;width:9px;height:9px;border-radius:50%;background:var(--alert);border:2px solid #fff}
.lt{font-size:32px;font-weight:800;letter-spacing:-.02em;padding:2px 18px 12px;line-height:1.2}
.lt small{display:block;font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.02em;margin-bottom:2px}

/* タブバー */
.tabbar{position:absolute;left:12px;right:12px;bottom:24px;height:64px;border-radius:32px;background:rgba(255,255,255,.86);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 6px 24px rgba(0,0,0,.10),inset 0 0 0 1px rgba(0,0,0,.04);display:flex;z-index:25;padding:0 6px}
.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:600;color:var(--faint);position:relative}
.tabbar button svg{font-size:23px}
.tabbar button.on{color:var(--brand)}
.tabbar .bdg{position:absolute;top:8px;left:calc(50% + 6px);min-width:17px;height:17px;border-radius:9px;background:var(--alert);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px;font-family:var(--num)}
.tb-space{height:110px}

/* ============ 共通パーツ ============ */
.card{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh)}
.cardp{padding:16px}
.sect{margin:22px 0 10px;display:flex;align-items:baseline;justify-content:space-between;padding:0 4px}
.sect h3{font-size:19px;font-weight:800;letter-spacing:-.01em}
.sect a,.sect .lnk{font-size:13.5px;color:var(--brand);font-weight:600;text-decoration:none}
.pill{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px;border-radius:99px;font-size:11.5px;font-weight:700;white-space:nowrap;background:var(--fill);color:var(--ink2)}
.pill svg{font-size:12px;stroke-width:2.4}
.pill.brand{background:var(--brand-soft);color:var(--brand-ink)}
.pill.ok{background:var(--ok-soft);color:var(--ok)} .pill.no{background:var(--no-soft);color:var(--muted)}
.pill.maybe{background:var(--maybe-soft);color:#B96E00} .pill.proxy{background:var(--proxy-soft);color:var(--proxy)}
.pill.alert{background:var(--alert-soft);color:var(--alert)} .pill.dark{background:var(--ink);color:#fff}
.pill.new{background:linear-gradient(135deg,#FFE8F0,#F0ECFF);color:#B0357A}
.pill.solid{background:var(--brand);color:#fff}
.cdot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 auto}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:44px;padding:0 20px;border-radius:99px;font-weight:700;font-size:15px;white-space:nowrap}
.btn svg{font-size:18px;stroke-width:2.2}
.btn.pri{background:var(--brand);color:#fff;box-shadow:0 6px 16px -6px rgba(47,91,255,.6)}
.btn.sec{background:var(--brand-soft);color:var(--brand-ink)}
.btn.gray{background:var(--fill);color:var(--ink)}
.btn.line{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn.dark{background:var(--ink);color:#fff}
.btn.lg{height:54px;font-size:16.5px;border-radius:18px;width:100%}
.btn.sm{height:34px;padding:0 14px;font-size:13px}
.btn.xs{height:28px;padding:0 11px;font-size:12px}
.btn.w{width:100%}

.chips{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:0 18px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;height:34px;padding:0 14px;border-radius:99px;background:#fff;font-size:13.5px;font-weight:600;color:var(--ink2);display:inline-flex;align-items:center;gap:6px;box-shadow:inset 0 0 0 1px var(--line)}
.chip.on{background:var(--ink);color:#fff;box-shadow:none}
.chip .n{font-family:var(--num);font-size:12px;opacity:.6}

.seg{display:flex;background:#E9E9EE;border-radius:11px;padding:2px}
.seg button{flex:1;height:32px;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--ink2)}
.seg button.on{background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.08);color:var(--ink)}

.search{display:flex;align-items:center;gap:8px;height:40px;border-radius:12px;background:#E9E9EE;padding:0 12px;color:var(--muted);font-size:15px}
.search input{border:none;background:none;outline:none;flex:1;min-width:0}

/* リスト（インセット） */
.list{background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh)}
.li{display:flex;align-items:center;gap:12px;padding:12px 16px;position:relative;min-height:56px}
.li + .li::before{content:"";position:absolute;top:0;left:62px;right:0;height:1px;background:var(--line2)}
.li.noic + .li.noic::before,.list.flat .li + .li::before{left:16px}
.li .t{font-size:15px;font-weight:600;line-height:1.35}
.li .d{font-size:12.5px;color:var(--muted);line-height:1.4;margin-top:1px}
.li .chev{color:var(--faint);font-size:16px}
.sq{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:18px;flex:0 0 auto}
.sq.lg{width:44px;height:44px;border-radius:13px;font-size:22px}

.av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;color:#fff;flex:0 0 auto;letter-spacing:0}
.av.sm{width:30px;height:30px;font-size:12px} .av.lg{width:64px;height:64px;font-size:24px} .av.xl{width:88px;height:88px;font-size:32px}
.avs{display:flex}.avs .av{border:2px solid #fff;margin-left:-8px}.avs .av:first-child{margin-left:0}

/* ステータス印 */
.mk{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;font-size:13px;font-weight:800;font-family:var(--num)}
.mk svg{font-size:14px;stroke-width:3}
.mk.ok{background:var(--ok);color:#fff} .mk.no{background:#E4E4E9;color:#8E8E93}
.mk.maybe{background:var(--maybe-soft);color:var(--maybe);box-shadow:inset 0 0 0 1.5px var(--maybe)}
.mk.proxy{background:var(--proxy);color:#fff;font-size:11px} .mk.none{background:transparent;box-shadow:inset 0 0 0 1.5px #D5D5DB}

/* 回答ボタン */
.rsvp{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rsvp button{height:78px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:13px;font-weight:700;color:var(--ink2);transition:.15s}
.rsvp button .g{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:17px;background:var(--fill);color:var(--muted)}
.rsvp button .g svg{stroke-width:2.6}
.rsvp button.on[data-v=ok]{background:var(--ok-soft);box-shadow:inset 0 0 0 2px var(--ok);color:var(--ok)}
.rsvp button.on[data-v=ok] .g{background:var(--ok);color:#fff}
.rsvp button.on[data-v=no]{background:var(--no-soft);box-shadow:inset 0 0 0 2px #8E8E93;color:var(--ink2)}
.rsvp button.on[data-v=no] .g{background:#8E8E93;color:#fff}
.rsvp button.on[data-v=maybe]{background:var(--maybe-soft);box-shadow:inset 0 0 0 2px var(--maybe);color:#B96E00}
.rsvp button.on[data-v=maybe] .g{background:var(--maybe);color:#fff}
.rsvp button.on[data-v=proxy]{background:var(--proxy-soft);box-shadow:inset 0 0 0 2px var(--proxy);color:var(--proxy)}
.rsvp button.on[data-v=proxy] .g{background:var(--proxy);color:#fff}
.rsvp.mini{grid-template-columns:repeat(3,1fr);gap:6px}
.rsvp.mini button{height:44px;flex-direction:row;border-radius:13px;font-size:13.5px;background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.rsvp.mini button .g{width:20px;height:20px;font-size:12px;background:rgba(255,255,255,.18);color:#fff}

/* 選択トグル（2択） */
.tog{display:flex;gap:6px}
.tog button{flex:1;height:40px;border-radius:12px;background:var(--fill);font-size:13.5px;font-weight:600;color:var(--ink2)}
.tog button.on{background:var(--ink);color:#fff}

/* iOS スイッチ */
.sw{width:51px;height:31px;border-radius:16px;background:#E0E0E5;position:relative;flex:0 0 auto;transition:.2s}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:.2s}
.sw.on{background:var(--ok)} .sw.on::after{left:22px}

/* ヒーロー（濃色カード） */
.hero{border-radius:26px;padding:18px;color:#fff;position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0%,rgba(123,92,250,.55) 0%,rgba(123,92,250,0) 55%),radial-gradient(90% 80% at 0% 100%,rgba(47,91,255,.55) 0%,rgba(47,91,255,0) 60%),#0E1433}
.hero .eb{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#FFD2D4;background:rgba(229,72,77,.22);border-radius:99px;height:24px;padding:0 10px}
.hero .eb .p{width:7px;height:7px;border-radius:50%;background:#FF6B70;box-shadow:0 0 0 4px rgba(255,107,112,.25)}
.hero h4{font-size:21px;font-weight:800;line-height:1.35;margin:10px 0 6px;letter-spacing:-.01em}
.hero .meta{display:flex;flex-direction:column;gap:3px;font-size:13px;color:rgba(255,255,255,.72)}
.hero .meta span{display:flex;align-items:center;gap:6px}

/* 日付ブロック */
.dt{width:50px;flex:0 0 auto;text-align:center;border-radius:14px;background:var(--fill);padding:6px 0 7px;line-height:1.1}
.dt .m{font-size:11px;font-weight:700;color:var(--alert)}
.dt .d{font-family:var(--num);font-size:22px;font-weight:700;letter-spacing:-.02em}
.dt .w{font-size:10.5px;color:var(--muted);font-weight:600}

/* メーター */
.bar{height:8px;border-radius:99px;background:var(--line2);overflow:hidden;display:flex}
.bar i{display:block;height:100%}
.bar .ok{background:var(--ok)} .bar .maybe{background:#FFB84D} .bar .proxy{background:var(--proxy)} .bar .no{background:#C7C7CC} .bar .br{background:var(--brand)}
.ring{--p:70;--c:var(--brand);width:84px;height:84px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*1%),var(--line2) 0);display:grid;place-items:center;flex:0 0 auto}
.ring::before{content:"";grid-area:1/1;width:66px;height:66px;border-radius:50%;background:#fff}
.ring b{grid-area:1/1;font-family:var(--num);font-size:20px;font-weight:700;z-index:1;letter-spacing:-.02em}
.ring b small{font-size:11px}
.legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:5px}
.legend .num{color:var(--ink);font-weight:700}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.kpi{background:#fff;border-radius:18px;padding:12px 12px 11px;box-shadow:var(--sh)}
.kpi .v{font-family:var(--num);font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.kpi .v small{font-size:13px;font-weight:600;margin-left:1px}
.kpi .l{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:3px}

/* フォーム */
.fld{background:#fff;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);padding:9px 14px}
.fld label{display:block;font-size:11.5px;font-weight:700;color:var(--muted)}
.fld input,.fld textarea,.fld .v{border:none;outline:none;background:none;width:100%;font-size:15.5px;padding:2px 0;resize:none;line-height:1.5}
.fld.focus{box-shadow:inset 0 0 0 2px var(--brand)}
.otp{display:flex;gap:10px;justify-content:center}
.otp div{width:62px;height:72px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);display:grid;place-items:center;font-family:var(--num);font-size:32px;font-weight:600}
.otp div.cur{box-shadow:inset 0 0 0 2px var(--brand)}
.otp div.cur::after{content:"";width:2px;height:32px;background:var(--brand);border-radius:1px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.kbd{background:#D1D3D9;padding:8px 5px 34px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.kbd div{height:46px;border-radius:8px;background:#fff;display:grid;place-items:center;font-family:var(--num);font-size:24px;box-shadow:0 1px 0 rgba(0,0,0,.25)}
.kbd div.fn{background:transparent;box-shadow:none;font-size:14px}

/* シート（下から） */
.dim{position:absolute;inset:0;background:rgba(0,0,0,.32);z-index:50}
.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--bg);border-radius:28px 28px 0 0;z-index:51;padding:8px 18px 38px;box-shadow:0 -10px 30px rgba(0,0,0,.12)}
.sheet .grab{width:38px;height:5px;border-radius:3px;background:#C7C7CC;margin:0 auto 12px}
.toast{position:absolute;left:18px;right:18px;top:58px;background:rgba(29,29,31,.92);color:#fff;border-radius:18px;padding:12px 14px;display:flex;gap:10px;align-items:center;z-index:60;font-size:14px;box-shadow:var(--sh-lg)}

/* チャット */
.bub{max-width:76%;padding:9px 13px;border-radius:20px;font-size:15px;line-height:1.5;background:#fff;box-shadow:var(--sh)}
.msg{display:flex;gap:8px;align-items:flex-end;margin-bottom:10px}
.msg .who{font-size:11.5px;color:var(--muted);margin:0 0 3px 4px;font-weight:600}
.msg.me{justify-content:flex-end}
.msg.me .bub{background:var(--brand);color:#fff;box-shadow:none}
.msg .rd{font-size:10.5px;color:var(--muted);line-height:1.3;text-align:right}
.react{display:inline-flex;gap:4px;margin-top:-6px;margin-left:10px;position:relative;z-index:1}
.react span{background:#fff;border-radius:99px;padding:1px 8px;font-size:12px;box-shadow:var(--sh);font-weight:600}
.daysep{text-align:center;margin:12px 0}
.daysep span{font-size:11.5px;color:var(--muted);background:rgba(0,0,0,.05);padding:3px 10px;border-radius:99px;font-weight:600}
.composer{position:absolute;left:0;right:0;bottom:0;padding:8px 12px 32px;background:rgba(245,245,247,.92);backdrop-filter:blur(16px);display:flex;gap:8px;align-items:center;z-index:20;border-top:1px solid var(--line)}
.composer .inp{flex:1;height:38px;border-radius:19px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);display:flex;align-items:center;padding:0 14px;color:var(--faint);font-size:15px}

/* カレンダー */
.cal{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;row-gap:4px}
.cal .h{font-size:11px;color:var(--faint);font-weight:700;padding-bottom:4px}
.cal .c{height:44px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:5px;font-family:var(--num);font-size:15px;position:relative}
.cal .c.o{color:var(--faint)}
.cal .c.today span{background:var(--alert);color:#fff}
.cal .c.sel span{background:var(--ink);color:#fff}
.cal .c span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center}
.cal .c .ds{display:flex;gap:3px;margin-top:2px}
.cal .c .ds i{width:5px;height:5px;border-radius:50%}

/* ============ PC（事務局）枠 ============ */
.desk{width:1440px;min-height:900px;background:var(--bg);border-radius:14px;overflow:hidden;box-shadow:var(--sh-lg);display:grid;grid-template-columns:232px 1fr}
body.shot .desk{border-radius:0;box-shadow:none}
.dside{background:#FBFBFD;border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column}
.dside .brand{display:flex;gap:10px;align-items:center;padding:4px 8px 18px}
.dside .brand .t{font-weight:800;font-size:16px;letter-spacing:.02em}
.dside .brand .s{font-size:10.5px;color:var(--muted)}
.dside .lb{font-size:10.5px;font-weight:700;color:var(--faint);letter-spacing:.08em;padding:14px 10px 5px}
.dside a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;font-size:13.5px;color:var(--ink2);text-decoration:none;font-weight:500}
.dside a svg{font-size:17px;color:var(--muted)}
.dside a.on{background:#fff;color:var(--ink);font-weight:700;box-shadow:var(--sh)}
.dside a.on svg{color:var(--brand)}
.dside a .cnt{margin-left:auto;font-family:var(--num);font-size:11px;font-weight:700;background:var(--alert);color:#fff;border-radius:9px;padding:1px 7px}
.dside .me{margin-top:auto;display:flex;gap:10px;align-items:center;padding:10px;border-radius:14px;background:#fff;box-shadow:var(--sh)}
.dmain{min-width:0;display:flex;flex-direction:column}
.dtop{height:64px;display:flex;align-items:center;gap:14px;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7)}
.dtop h1{font-size:20px;font-weight:800;letter-spacing:-.01em}
.dtop .crumb{font-size:13px;color:var(--muted)}
.dtop .r{margin-left:auto;display:flex;gap:10px;align-items:center}
.fy{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-size:13px;font-weight:600}
.dwrap{padding:24px 28px 40px;display:flex;flex-direction:column;gap:18px}
.grid{display:grid;gap:18px}
.g4{grid-template-columns:repeat(4,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g2{grid-template-columns:1fr 1fr}
.panel{background:#fff;border-radius:20px;box-shadow:var(--sh);padding:20px 22px}
.panel h3{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:14px;letter-spacing:-.01em}
.panel h3 .r{margin-left:auto;font-size:13px;font-weight:600}
.stat{background:#fff;border-radius:20px;box-shadow:var(--sh);padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.stat .l{font-size:12.5px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
.stat .v{font-family:var(--num);font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.05}
.stat .v small{font-size:15px;font-weight:600;margin-left:2px}
.stat .s{font-size:12px;color:var(--muted)}
.up{color:var(--ok);font-weight:700}

table.tb{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
table.tb th{font-size:11.5px;font-weight:700;color:var(--muted);text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fff}
table.tb td{padding:10px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
table.tb tr:last-child td{border-bottom:none}
table.tb .c{text-align:center}
.ledger th.ev{text-align:center;line-height:1.3}
.ledger th.ev .dd{font-family:var(--num);font-size:13px;color:var(--ink);display:block}
.ledger td.nm{position:sticky;left:0;background:#fff}
.ledger tr.hl td{background:#FAFBFF}
.who2 .t{font-weight:700;font-size:14px} .who2 .d{font-size:12px;color:var(--muted)}

.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.drop{border:2px dashed #C9D3FF;border-radius:20px;background:linear-gradient(180deg,#F7F9FF,#EEF2FF);padding:26px;text-align:center}
.scope{display:inline-flex;align-items:center;justify-content:center;min-width:76px;height:28px;padding:0 10px;border-radius:99px;font-size:12px;font-weight:700;cursor:pointer;user-select:none}
.scope.all{background:var(--brand);color:#fff}
.scope.charge{background:var(--proxy-soft);color:var(--proxy);box-shadow:inset 0 0 0 1.5px #CFC3FF}
.scope.own{background:var(--brand-soft);color:var(--brand-ink)}
.scope.self{background:var(--maybe-soft);color:#B96E00}
.scope.view{background:var(--ok-soft);color:var(--ok)}
.scope.none{background:transparent;color:#C7C7CC;box-shadow:inset 0 0 0 1px var(--line)}
.stepper{display:flex;gap:0;align-items:center}
.stp{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--muted)}
.stp i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;background:var(--fill);font-family:var(--num)}
.stp.on{color:var(--ink)} .stp.on i{background:var(--brand);color:#fff}
.stp.done i{background:var(--ok);color:#fff}
.stp-line{width:36px;height:2px;background:var(--line);margin:0 10px}
.modal-dim{position:fixed;inset:0;background:rgba(10,14,30,.35);z-index:80}
.desk{position:relative}
.dmodal{position:absolute;top:90px;left:50%;transform:translateX(-50%);width:620px;background:#fff;border-radius:24px;box-shadow:0 30px 80px rgba(10,16,40,.3);z-index:90;padding:24px 26px}
.ddim{position:absolute;inset:0;background:rgba(10,14,30,.32);z-index:85}
.anno{font-size:12px;color:var(--muted)}

/* 日程調整の枠 */
.slot .pick{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #D5D5DB;color:transparent;font-size:16px;flex:0 0 auto;transition:.15s}
.slot .pick svg{stroke-width:3}
.slot.picked{box-shadow:inset 0 0 0 2px var(--brand),var(--sh)}
.slot.picked .pick{background:var(--brand);color:#fff;box-shadow:none}
.slot{cursor:pointer}
.scr.dark .sbar{position:absolute;top:0;left:0;right:0}
.bar{gap:2px;background:transparent}
.bar i{border-radius:99px}
.bar::after{content:"";flex:1;background:var(--line2);border-radius:99px}
.hbar{height:10px;border-radius:99px;background:var(--line2);overflow:hidden}
.hbar i{display:block;height:100%;border-radius:99px;background:var(--brand)}
.cb{width:18px;height:18px;border-radius:6px;box-shadow:inset 0 0 0 1.5px #C7C7CC;display:inline-grid;place-items:center;color:#fff;font-size:12px;flex:0 0 auto}
.cb.on{background:var(--brand);box-shadow:none}
.cb svg{stroke-width:3.2}
.cell{width:34px;height:34px;border-radius:10px;display:inline-grid;place-items:center;font-size:15px}
.cell.av0{background:transparent}
.cell.can{background:var(--brand-soft);color:var(--brand);box-shadow:inset 0 0 0 1.5px #C9D3FF}
.cell.set{background:var(--brand);color:#fff}
.cell svg{stroke-width:2.8}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}
.tabs button{height:40px;padding:0 14px;font-weight:700;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button.on{color:var(--ink);border-color:var(--ink)}
.minip{border-radius:28px;background:var(--bg);box-shadow:inset 0 0 0 8px #111,0 20px 40px -18px rgba(0,0,0,.35);padding:22px 16px 18px;width:300px;margin:0 auto}
.scope{white-space:nowrap}
.pm .scope{min-width:60px;padding:0 8px;font-size:11.5px;height:26px}
.pm th{padding:9px 4px}

/* ============ 見出し（大きさではなく、あしらいで） ============ */
.ph{display:flex;align-items:center;gap:11px;padding:8px 18px 14px}
.ph .pi{width:36px;height:36px;border-radius:11px;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:19px;flex:0 0 auto;box-shadow:0 4px 10px -3px rgba(47,91,255,.45)}
.ph .pi svg{stroke-width:2.1}
.ph .pe{font-family:var(--num);font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--brand);line-height:1.2}
.ph .pt{font-size:19px;font-weight:800;letter-spacing:-.005em;line-height:1.3}
.ph .pr{margin-left:auto;display:flex;gap:8px}
.sect{margin:20px 0 9px}
.sect h3{font-size:15px;font-weight:800;letter-spacing:0;display:flex;align-items:center;gap:8px}
.sect h3::before{content:"";width:4px;height:15px;border-radius:2px;background:linear-gradient(180deg,#2F5BFF,#9B6BFF);flex:0 0 auto}
.gl{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--ink2);margin:18px 6px 7px}
.gl::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--brand);transform:rotate(45deg)}
.gl .n{margin-left:auto;font-family:var(--num);color:var(--faint);font-weight:600}
.gl:first-child{margin-top:0}
.dt-title{font-size:20px;font-weight:800;letter-spacing:-.01em;line-height:1.4}
.hero h4{font-size:18px}
.panel h3{font-size:15px}

/* ================= 本番アプリ用の調整（枠なし・レスポンシブ） ================= */
body{background:var(--bg);min-height:100vh}
a{color:inherit;text-decoration:none}
.wrap-m{max-width:520px;margin:0 auto;min-height:100vh;background:var(--bg);padding-bottom:120px;position:relative}
.wrap-m .pad{padding:0 16px}
.topbar{position:sticky;top:0;z-index:30;background:rgba(245,245,247,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.tabbar{position:fixed;left:50%;transform:translateX(-50%);width:min(496px,calc(100% - 24px));bottom:14px}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:600;color:var(--faint);position:relative}
.tabbar a svg{font-size:23px}
.tabbar a.on{color:var(--brand)}
.safe-bottom{height:24px}
.flash{margin:10px 16px;padding:12px 14px;border-radius:14px;font-size:13.5px;font-weight:600;display:flex;gap:9px;align-items:center}
.flash.ok{background:var(--ok-soft);color:#12693C}
.flash.err{background:var(--alert-soft);color:var(--alert)}
.empty{text-align:center;padding:48px 20px;color:var(--muted)}
.empty .ic{width:64px;height:64px;border-radius:20px;background:#fff;box-shadow:var(--sh);display:grid;place-items:center;margin:0 auto 14px;font-size:28px;color:var(--faint)}
.empty h4{font-size:16px;font-weight:800;color:var(--ink);margin-bottom:5px}
.empty p{font-size:13.5px;line-height:1.8}
input.txt,textarea.txt{width:100%;border:none;outline:none;background:none;font-size:15.5px;padding:2px 0;resize:none;line-height:1.6;font-family:inherit}
button,.btn{cursor:pointer}
.btn[disabled]{opacity:.45;pointer-events:none}
form{margin:0}

/* 事務局・運営のPC画面 */
.desk{width:100%;min-height:100vh;border-radius:0;box-shadow:none;background:var(--bg)}
.dside{position:sticky;top:0;height:100vh;overflow:auto}
.dside a{cursor:pointer}
.dtop{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}
@media(max-width:900px){
  .desk{grid-template-columns:1fr}
  .dside{display:none}
  .dwrap{padding:16px}
  .grid.g4,.grid.g3,.grid.g2{grid-template-columns:1fr}
  .dtop{padding:0 16px}
  .dtop .search{display:none}
}
.tbl-wrap{overflow-x:auto}
.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ok)}
.live .dot2{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(18,161,80,.18);animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(18,161,80,.06)}}
.feed{display:flex;flex-direction:column;gap:2px;max-height:520px;overflow:auto}
.feed .it{display:flex;gap:11px;padding:9px 2px;border-bottom:1px solid var(--line2);align-items:flex-start}
.feed .it:last-child{border-bottom:none}
.feed .it .sq{width:30px;height:30px;border-radius:9px;font-size:15px}
.feed .it .t{font-size:13.5px;line-height:1.5}
.feed .it .d{font-size:11.5px;color:var(--muted);margin-top:1px}
.feed .it.new{animation:flashin 1.4s ease}
@keyframes flashin{from{background:#EDF1FF}to{background:transparent}}
.tenant-card{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:18px;background:#fff;box-shadow:var(--sh)}
.tenant-card .badge{font-size:11px;font-weight:700;border-radius:99px;padding:2px 10px}
.st-active{background:var(--ok-soft);color:var(--ok)}
.st-trial{background:var(--brand-soft);color:var(--brand-ink)}
.st-demo{background:#F0ECFF;color:var(--proxy)}
.st-blank{background:var(--fill);color:var(--muted)}
.st-suspended{background:var(--alert-soft);color:var(--alert)}
.login-wrap{max-width:420px;margin:0 auto;padding:0 20px 60px}
.otp-in{width:100%;letter-spacing:.5em;text-align:center;font-family:var(--num);font-size:30px;font-weight:700;border:none;outline:none;background:#fff;border-radius:18px;padding:16px 0;box-shadow:inset 0 0 0 1.5px var(--line)}
.otp-in:focus{box-shadow:inset 0 0 0 2px var(--brand)}
.codebox{background:var(--night);color:#fff;border-radius:16px;padding:14px 16px;font-family:var(--num);letter-spacing:.3em;font-size:26px;font-weight:700;text-align:center}
