:root{
  --bg:#f2f2f7; --card:#fff; --ink:#1c1c1e; --sub:#8e8e93; --sep:#e5e5ea;
  --theme:#e5851c; --themeSoft:#fdeee0; --theme2:#f3ab5f;
  --good:#34c759; --warn:#ff9500; --bad:#8e8e93; --gold:#c9971b; --goldSoft:#f7edd2;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{height:-webkit-fill-available}
html,body{height:100%}
body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;min-height:-webkit-fill-available;overscroll-behavior:none}
#app{max-width:520px;margin:0 auto;height:100vh;height:-webkit-fill-available;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.apphdr{flex-shrink:0;background:var(--bg);border-bottom:.5px solid var(--sep);padding:14px 20px 10px;padding-top:calc(14px + env(safe-area-inset-top))}
.apphdr .toprow{display:flex;justify-content:space-between;align-items:center;gap:10px}
.apphdr .hdleft{display:flex;align-items:center;gap:11px;min-width:0}
.apphdr .bigdate{font-size:20px;font-weight:800;letter-spacing:-.3px}
.apphdr .hdright{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.apphdr .biglv{font-size:16px;font-weight:800;color:#fff;background:var(--theme);padding:5px 15px;border-radius:22px}
.apphdr .hdxp{font-size:19px;font-weight:900;color:var(--theme);letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.apphdr .hdxp small{font-size:12px;font-weight:800;opacity:.75;margin-left:1px}
.apphdr .who{font-size:12.5px;color:var(--sub);font-weight:600;margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.poschip{color:var(--theme);font-weight:800;cursor:pointer;background:var(--themeSoft);padding:2px 9px;border-radius:9px}
.lvtoggle{display:flex;justify-content:space-between;align-items:center;width:calc(100% - 28px);margin:16px 14px 8px;padding:15px 18px;border:none;border-radius:14px;background:var(--theme);color:#fff;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 3px 10px rgba(229,133,28,.28)}
.lvtoggle span{font-size:13px;font-weight:700;opacity:.92}
.lvrow{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lvleft{flex:1;min-width:0;text-align:left}
.lvleft .t{font-weight:800;font-size:15px}
.lvright{flex-shrink:0;text-align:right}
.lvright .lvwage{font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
.lvcur{background:var(--themeSoft)}
/* S帯＝濃いグレーの網掛けで隠す（見えるか見えないか） */
.lvrow.lvs{position:relative;background:#4c4c54;overflow:hidden}
.lvrow.lvs .t,.lvrow.lvs .s,.lvrow.lvs .lvwage{color:#8a8a94;font-weight:800}
.lvrow.lvs::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(45deg,rgba(40,40,46,.62) 0 5px,rgba(70,70,80,.30) 5px 10px)}
.apphdr .ava{width:46px;height:46px;border-radius:50%;background:var(--themeSoft);display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;flex-shrink:0;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.12)}
.apphdr .ava img{width:100%;height:100%;object-fit:cover}
.scroll{flex:1;overflow-y:auto;padding-bottom:24px;-webkit-overflow-scrolling:touch}
.nav{flex-shrink:0;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:.5px solid rgba(0,0,0,.1);display:flex;padding:7px 8px calc(34px + env(safe-area-inset-bottom,0px));z-index:10}
@media (hover:hover) and (pointer:fine){ .nav{padding-bottom:12px} }
.nav div{flex:1;text-align:center;font-size:10px;color:var(--sub);font-weight:600;cursor:pointer;position:relative}
.nav .navbadge{position:absolute;top:-3px;right:calc(50% - 24px);background:#d24b4b;color:#fff;font-size:9px;font-weight:800;min-width:15px;height:15px;line-height:15px;border-radius:8px;text-align:center;padding:0 3px}
.nav div .i{font-size:22px;display:block;margin-bottom:1px;opacity:.45;filter:grayscale(1)}
.nav div.on{color:var(--theme)} .nav div.on .i{opacity:1;filter:none}
.hdr{padding:18px 20px 6px}
.hdr .date{font-size:13px;color:var(--sub);font-weight:600}
.hdr .title{font-size:28px;font-weight:800;letter-spacing:-.5px;display:flex;justify-content:space-between;align-items:center}
.lv-pill{font-size:13px;font-weight:800;color:#fff;background:var(--theme);padding:5px 13px;border-radius:20px}
.sect{font-size:12.5px;color:var(--sub);font-weight:700;margin:20px 20px 7px;letter-spacing:.2px}
.sect .r{float:right;font-weight:600}
.group{background:var(--card);border-radius:14px;margin:0 14px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:52px;border-bottom:.5px solid var(--sep)}
.row:last-child{border-bottom:none}
.row .tx{flex:1;min-width:0}
.row .tx .t{font-size:14.5px;font-weight:600;line-height:1.45}
.row .tx .s{font-size:12px;color:var(--sub);margin-top:2px;line-height:1.5}
.star{color:var(--gold);font-weight:800}
.starbadge{font-size:10.5px;font-weight:800;color:var(--gold);background:var(--goldSoft);padding:2px 8px;border-radius:7px;white-space:nowrap;text-align:center}
.starmust{color:var(--gold);font-size:18px;font-weight:800;line-height:1}
.homeright{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.coach{margin:12px 14px 0;background:linear-gradient(135deg,var(--theme),var(--theme2));border-radius:16px;padding:15px 17px;color:#fff}
.coach .chead{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:12px;font-weight:700;opacity:.95}
.coach .msg{font-size:15.5px;font-weight:700;line-height:1.6;margin-top:6px}
.coach .coachmode{background:rgba(255,255,255,.22);color:#fff;border:0;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:800;cursor:pointer;letter-spacing:.02em}
.coach .coachmode:active{background:rgba(255,255,255,.34)}
.coach .coachwait{opacity:.85;font-weight:600}
.cmwrap{display:flex;flex-direction:column;gap:10px}
.cmtitle{font-size:17px;font-weight:800}
.cmsub{font-size:12.5px;color:var(--sub);margin:-4px 0 4px}
.cmcard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;border:2px solid var(--line);border-radius:14px;padding:13px;cursor:pointer;background:var(--card)}
.cmcard.on{border-color:var(--theme);background:color-mix(in srgb,var(--theme) 10%,var(--card))}
.cmcard .cmemoji{font-size:26px;line-height:1}
.cmcard .cmlabel{font-size:15px;font-weight:800}
.cmcard .cmdesc{font-size:12px;color:var(--sub);margin-top:2px}
.cmclose{margin-top:2px}
.tap{display:flex;gap:7px}
.tb{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--sep);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--sub);background:#fff;font-weight:700;cursor:pointer}
.tb.dm.on{background:var(--theme);border-color:var(--theme);color:#fff}
.tb.o.on{background:#b8b8bf;border-color:#b8b8bf;color:#fff}
.tb.x.on{background:#6b7a88;border-color:#6b7a88;color:#fff}
.gauge{letter-spacing:2px;font-size:11px}
.xpbar{height:14px;border-radius:99px;background:#e4e4e9;overflow:hidden;display:flex}
.xpbar .st{background:var(--gold)} .xpbar .no{background:var(--theme)}
.nextcard{margin:12px 14px 0;background:var(--card);border-radius:16px;padding:16px 18px}
.nexthd{font-size:14px;font-weight:700;color:var(--sub);margin-bottom:12px}
.nexthd b{color:var(--ink);font-size:18px;margin:0 2px}
.nextcard .xpbar{margin-bottom:5px}
.xpmini{font-size:11px;color:var(--sub);margin-bottom:6px}
.reqrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--sep);font-size:14px}
.reqrow span{color:var(--sub);font-weight:600}
.reqrow b{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--theme)}
.reqrow b.reqdone{color:var(--good)}
.btn{display:block;width:calc(100% - 28px);margin:16px 14px 6px;padding:15px;border:none;border-radius:14px;background:var(--theme);color:#fff;font-weight:700;font-size:16px;cursor:pointer}
.btn:disabled{background:#c9c9cf}
.btn.ghost{background:var(--themeSoft);color:var(--theme)}
/* ブランドロゴ。白背景JPEGを background-blend-mode で「その要素の背景色」に溶かす。
   mix-blend-mode と違い背後(スタッキング/スクロール層)に依存しないので iOS Safari でも確実。 */
.authlogo{display:flex;justify-content:center;margin:30px 0 2px}
.authswitch{text-align:center;font-size:12.5px;color:var(--sub);font-weight:600;margin:16px 0 0}
.pagelogo{display:flex;justify-content:center;padding:22px 0 30px}
.logomark{background-image:url(logo.png);background-position:center;background-size:contain;background-repeat:no-repeat;background-color:var(--bg);background-blend-mode:multiply}
/* 中間グレー背景では base の background-blend-mode:multiply がそのまま効く（白背景→--bgに一致で箱消え・ロゴは暗色で残る）。旧near-black用のinvert上書きは廃止。 */
.authlogo .logomark{width:168px;height:168px}
.pagelogo .logomark{width:84px;height:84px;opacity:.55}
.badge{font-size:10.5px;font-weight:700;padding:2.5px 8px;border-radius:8px;flex-shrink:0}
.b-ok{background:#e6f8ec;color:var(--good)} .b-wait{background:#fff4e0;color:var(--warn)}
.b-done{background:#e6f8ec;color:var(--good)} .b-star{background:var(--goldSoft);color:var(--gold)}
.b-jibun{background:#fdeee0;color:var(--theme)}
.b-coach{background:#e6f8ec;color:var(--good)}
.sect-coach{color:var(--good)}
.sect.sect-lg{font-size:16px;color:var(--ink);font-weight:800;letter-spacing:0}
.sect.sect-coach.sect-lg{color:var(--good)}
.row.rowc{background:#f2faf4;border-left:3px solid var(--good)}
.row.rowready{background:#eafaef;box-shadow:inset 0 0 0 2px var(--good)}
.readytag{font-size:10.5px;font-weight:800;color:#fff;background:var(--good);padding:2px 8px;border-radius:8px;vertical-align:middle}
.expchips{display:inline-flex;gap:5px;vertical-align:middle;margin-left:2px}
.expchip{font-size:11px;font-weight:800;padding:2px 7px;border-radius:7px;letter-spacing:.2px;font-variant-numeric:tabular-nums}
.xp-dm{background:var(--themeSoft);color:var(--theme)}
.xp-ck{background:var(--goldSoft);color:var(--gold)}
.foot{font-size:12px;color:var(--sub);margin:8px 20px 0;line-height:1.6}
.stairsteps{display:flex;justify-content:center;gap:7px;margin:14px 0 2px}
.stairsteps b{width:30px;height:30px;border-radius:50%;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;background:#e6e6eb;color:#b0b0b8}
.stairsteps b.done{background:var(--good);color:#fff} .stairsteps b.cur{background:var(--theme);color:#fff;transform:scale(1.18)}
.bigcard{margin:8px 14px 0;background:var(--card);border-radius:16px;padding:20px;text-align:center}
.bigcard .lvbig{width:92px;height:92px;border-radius:50%;background:var(--theme);color:#fff;font-size:30px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;box-shadow:0 6px 16px rgba(0,0,0,.14)}
.keyrow{display:flex;justify-content:center;gap:16px;margin-top:10px;font-size:13px;font-weight:700}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:30;align-items:center;justify-content:center;padding:16px 10px}
.modal.open{display:flex}
.modal .box{background:#fff;width:100%;max-width:560px;border-radius:20px;padding:24px 18px;text-align:center;max-height:100%;overflow-y:auto}
.modal.open .box{animation:boxin .3s ease-out both}
@keyframes boxin{0%{opacity:0;transform:scale(.9)}100%{opacity:1;transform:none}}
.modal .box h3{margin:8px 0 6px;font-size:18px}
/* レベルアップ演出 */
.lvup{text-align:center;position:relative;padding:6px 2px 2px}
.lvup-burst{position:absolute;top:56px;left:50%;width:230px;height:230px;transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(circle, var(--c) 0%, transparent 60%);animation:burst .7s ease-out both}
@keyframes burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}55%{opacity:1}100%{opacity:.75;transform:translate(-50%,-50%) scale(1.15)}}
.lvup-badge{position:relative;width:100px;height:100px;border-radius:50%;color:#fff;font-size:35px;font-weight:800;
  display:flex;align-items:center;justify-content:center;margin:4px auto 12px;box-shadow:0 10px 26px rgba(0,0,0,.22);
  animation:badgepop .6s cubic-bezier(.2,1.5,.4,1) both}
@keyframes badgepop{0%{transform:scale(0) rotate(-30deg);opacity:0}70%{transform:scale(1.18) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
.lvup-title{font-size:27px;font-weight:900;letter-spacing:1.5px;animation:titlein .5s .15s both}
@keyframes titlein{0%{opacity:0;transform:translateY(12px) scale(.9)}100%{opacity:1;transform:none}}
.lvup-stage{font-size:16px;font-weight:800;margin-top:6px;animation:titlein .5s .25s both}
.lvup-wage{font-size:13.5px;color:var(--sub);margin-top:8px}
.lvup-wage b{color:var(--ink);font-size:18px}
.lvup-eff{font-size:12px;color:var(--sub);font-weight:600}
.lvup-ok{margin-top:18px;width:100%;padding:14px;border:none;border-radius:12px;color:#fff;font-weight:800;font-size:16px;cursor:pointer}
@media (prefers-reduced-motion:reduce){.lvup-burst,.lvup-badge,.lvup-title,.lvup-stage,.modal.open .box{animation:none}}
.modal .box p{font-size:13px;color:var(--sub);line-height:1.6;margin:0}
.mbtns{display:flex;gap:10px;margin-top:16px}
.mbtns button{flex:1;padding:12px;border:none;border-radius:12px;font-weight:700;font-size:15px;cursor:pointer}
.mbtns .sec{background:#e9e9ec;color:var(--ink)} .mbtns .pri{background:var(--theme);color:#fff}
.seg{display:flex;background:#e9e9ec;border-radius:9px;padding:2px;margin:12px 14px 0}
.seg div{flex:1;text-align:center;padding:7px;border-radius:7px;font-size:13px;font-weight:700;cursor:pointer}
.seg div.on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.treecat{margin:4px 8px 10px}
.treecat .group{margin:0}
.treecat .row{padding-left:14px;padding-right:12px}
.treehead{display:flex;justify-content:space-between;align-items:center;padding:10px 6px;font-size:14px;font-weight:800;cursor:pointer}
.treehead small{color:var(--sub);font-weight:600}
.addbtn{font-size:12px;font-weight:700;color:var(--theme);background:var(--themeSoft);border:none;border-radius:9px;padding:6px 12px;cursor:pointer;flex-shrink:0}
.addbtn:disabled{opacity:.4}
/* スキルツリー右側の操作・状態を同じ大きさに統一 */
.rbox{width:104px;flex-shrink:0;display:flex;flex-direction:column;gap:5px}
.rbox .addbtn{width:100%;padding:11px 0;font-size:13px;text-align:center}
.rbox .addbtn.limit{background:#ececef;color:var(--sub);cursor:default}
.rbox .badge{width:100%;text-align:center;padding:11px 0;font-size:12.5px;border-radius:9px}
.setuprow{margin:10px 14px}
input.txt,select.sel{width:100%;padding:13px;border:1.5px solid var(--sep);border-radius:12px;font-size:16px;font-family:inherit;background:#fff;color:var(--ink)}
.testbar{margin:10px 14px 0;background:#fdf3d6;border:1px solid #e8cf7a;border-radius:12px;padding:10px 14px;font-size:12px;font-weight:700;color:#8a6d15;line-height:1.5}
.testbar span{color:var(--bad);text-decoration:underline;cursor:pointer;margin-left:2px}
.tb.testcert{background:#fff3d6;border-color:var(--gold);color:var(--gold);font-size:17px}
.rbox .testcertbtn{background:var(--goldSoft);color:var(--gold);margin-top:5px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:104px;background:rgba(28,28,30,.94);color:#fff;font-size:13.5px;font-weight:700;padding:11px 18px;border-radius:99px;z-index:40;opacity:0;transition:opacity .25s;pointer-events:none;max-width:86%;text-align:center}
.toast.show{opacity:1}

/* ===== 店長画面（manager.html） ===== */
.mgrtabs{display:flex;gap:6px;padding:12px 14px 4px;position:sticky;top:0;background:var(--bg);z-index:5}
.mgrtab{flex:1;padding:10px 4px;border:none;border-radius:12px;background:var(--card);color:var(--sub);font-weight:800;font-size:13.5px;cursor:pointer;position:relative}
.mgrtab.on{background:var(--theme);color:#fff}
.mgrtabn{display:inline-block;min-width:17px;margin-left:5px;padding:0 5px;font-size:11px;line-height:17px;border-radius:9px;background:var(--bad);color:#fff;vertical-align:top}
.mgrtab.on .mgrtabn{background:rgba(255,255,255,.28)}
/* もう一歩／気づきメモ モーダル（左寄せ） */
.modal .box .omhead{font-size:17px;font-weight:800;text-align:center}
.omsub{font-size:13px;color:var(--sub);text-align:center;margin:3px 0 14px;font-weight:600}
.omlabel{font-size:12px;font-weight:700;color:var(--sub);text-align:left;margin:12px 0 7px}
.omchoices{display:flex;flex-direction:column;gap:7px}
.omchoice{text-align:left;padding:11px 13px;border:1.5px solid var(--sep);border-radius:11px;background:#fff;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer}
.omchoice.on{border-color:var(--theme);background:var(--themeSoft);color:var(--theme)}
.omnote{width:100%;box-sizing:border-box;border:1.5px solid var(--sep);border-radius:11px;padding:10px 12px;font-size:16px;font-family:inherit;resize:vertical;min-height:52px}
.omfoot{font-size:11.5px;color:var(--sub);text-align:left;margin-top:10px;line-height:1.5}
.ombtns{display:flex;gap:8px;margin-top:16px}
.ombtns .btn,.ombtns .pri{flex:1;margin:0}
.ombtns .pri{padding:14px;border:none;border-radius:13px;background:var(--theme);color:#fff;font-weight:800;font-size:15px;cursor:pointer}
.ombtns .pri:disabled{background:#c9c9cf}
.chatin .pri{margin-top:8px;width:100%;padding:12px;border:none;border-radius:12px;background:var(--theme);color:#fff;font-weight:800;font-size:14px;cursor:pointer}
/* 変化フィード */
.feednote{font-size:12.5px;color:var(--sub);margin:6px 18px 12px;line-height:1.6}
.feednote b{color:var(--ink)}
.feedcard{background:var(--card);border-radius:16px;margin:0 14px 10px;padding:15px 16px}
.feedtop{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.feedname{font-size:15.5px;font-weight:800}
.feedpos{font-size:11px;font-weight:700;color:var(--sub);background:var(--bg);padding:2px 8px;border-radius:8px;margin-left:8px}
.feedchips{display:flex;gap:5px;flex-wrap:wrap}
.sigchip{font-size:11px;font-weight:800;color:#fff;background:var(--sc);padding:3px 10px;border-radius:9px}
.feedev{margin:11px 0 12px}
.everow{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);padding:3px 0;line-height:1.5}
.evdot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.feedacts{display:flex;gap:8px}
.feedacts .addbtn{flex:1;padding:10px 0;text-align:center;font-size:12.5px}
/* 気づきメモ一覧 */
.memosign{font-size:10.5px;font-weight:800;color:var(--theme);background:var(--themeSoft);padding:2px 8px;border-radius:7px;margin-left:4px}
.memowhen{font-size:11px;color:var(--sub);font-weight:700;flex-shrink:0}
/* 育成チャット */
.chatlog{max-height:46vh;overflow-y:auto;text-align:left;margin:4px 0;padding:4px 2px;display:flex;flex-direction:column;gap:8px}
.chatempty{font-size:12.5px;color:var(--sub);text-align:center;padding:24px 8px;line-height:1.6}
.bubble{max-width:82%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.bubble .bwho{font-size:10.5px;font-weight:700;opacity:.7;margin-bottom:3px}
.bubble.manager{align-self:flex-end;background:var(--theme);color:#fff;border-bottom-right-radius:5px}
.bubble.coach{align-self:flex-start;background:#eef0f3;color:var(--ink);border-bottom-left-radius:5px}
.bubble.thinking{opacity:.65;font-style:italic;animation:coachpulse 1.1s ease-in-out infinite}
.bubble.me{align-self:flex-end;background:var(--theme);color:#fff;border-bottom-right-radius:5px}
/* コーチタブ（質問チャット） */
.coach.coachtop .qachips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.coach.coachtop .qachip{background:rgba(255,255,255,.92);color:#20211d;border:0;border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:700;cursor:pointer;text-align:left;line-height:1.35}
.coach.coachtop .qachip:active{background:#fff}
.qacta{margin:10px 14px 0;background:var(--card);border:1.5px solid var(--theme);border-radius:13px;padding:11px 14px;font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer;line-height:1.5}
.qacta:active{background:color-mix(in srgb,var(--theme) 10%,var(--card))}
.coachtab{display:flex;flex-direction:column;height:100%}
.coachhdr{display:flex;align-items:center;gap:10px;padding:10px 16px 6px;flex-shrink:0}
.coachhdr .title{font-size:26px;font-weight:800;letter-spacing:-.01em;flex:1}
.coachhdr .coachmode{background:var(--theme);color:#fff;border:0;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:800;cursor:pointer}
.coachhdr .qareset{font-size:12px;color:var(--sub);text-decoration:underline;cursor:pointer}
.qascroll{flex:1;min-height:0;overflow-y:auto}
.qalog{margin:12px 14px 0;display:flex;flex-direction:column;gap:8px;text-align:left}
.qabar{display:flex;gap:8px;margin:10px 14px 14px;align-items:flex-end;flex-shrink:0}
.qabar textarea{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:12px;padding:9px 11px;font-size:16px;font-family:inherit;line-height:1.5;resize:none;background:var(--card);color:var(--ink);max-height:120px}
.qasend{border:0;border-radius:12px;padding:0 16px;height:42px;background:var(--theme);color:#fff;font-weight:800;font-size:14px;cursor:pointer;white-space:nowrap}
@keyframes coachpulse{0%,100%{opacity:.45}50%{opacity:.85}}
.chatin{margin-top:8px}
.chathdr{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px}
.chathdr .omhead{text-align:left}
.policylink{text-align:center;margin:12px 0 2px;flex-shrink:0}
.policylink span{font-size:11px;color:var(--sub);text-decoration:underline;cursor:pointer}
.chatfoot{text-align:center;margin:12px 0 2px;flex-shrink:0;font-size:11px;color:var(--sub);display:flex;justify-content:center;align-items:center;gap:5px;flex-wrap:wrap}
.chatfoot .pwrby{font-weight:600;color:var(--sub)}
.chatfoot .claudelogo{height:14px;width:auto;display:inline-block;vertical-align:middle;flex-shrink:0}
.chatfoot .fdot{opacity:.6;margin:0 1px}
.chatfoot .plink{text-decoration:underline;cursor:pointer}
.storegoal{font-size:11.5px;color:var(--sub);text-align:center;margin:2px 0 0;padding-top:6px;border-top:.5px solid var(--sep)}
.storegoal b{color:var(--ink)}
.secttoggle{font-size:12px;font-weight:700;color:var(--theme)}
/* 育成方針カード（変化タブ・本人非公開） */
.dirbox{border:1.5px solid var(--themeSoft);background:color-mix(in srgb,var(--theme) 7%,var(--card));border-radius:12px;margin:12px 0 4px;padding:11px 13px}
.dirhd{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--ink)}
.diredit{font-size:12px;color:var(--theme);font-weight:800;cursor:pointer;white-space:nowrap}
.dirbody{font-size:13.5px;line-height:1.6;margin-top:6px;color:var(--ink)}
.dirempty{font-size:12.5px;color:var(--sub);line-height:1.6;margin-top:6px}
.dirset{display:inline-block;margin-top:8px;background:var(--theme);color:#fff;font-weight:800;font-size:12.5px;border-radius:9px;padding:7px 13px;cursor:pointer}
/* スキルツリー：習得済み（認定済み）の項目行を薄く色付け（未習得と区別） */
.row.rowdone{background:color-mix(in srgb,var(--good) 10%,var(--card))}
/* 育成チャット：方針に反映されない旨の注記 */
.chatnote{font-size:10.5px;color:var(--sub);text-align:center;margin:7px 0 0;line-height:1.5;flex-shrink:0}
/* 分析ダッシュボード：経験値の推移チャート */
.chartcard{background:var(--card);border-radius:14px;margin:0 14px;padding:14px 14px 8px}
.charttabs{display:flex;gap:6px;justify-content:flex-end;margin-bottom:6px}
.ctab{border:1.5px solid var(--sep);background:transparent;color:var(--sub);border-radius:999px;padding:4px 14px;font-size:12px;font-weight:800;cursor:pointer}
.ctab.on{background:var(--theme);border-color:var(--theme);color:#fff}
.chartkpi{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:2px 0 6px}
.chartkpi .ckv{font-size:26px;font-weight:900;color:var(--theme);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.chartkpi .ckl{font-size:12px;color:var(--sub);font-weight:700}
.chartkpi .ckrate{margin-left:auto;font-size:12px;font-weight:800;padding:3px 9px;border-radius:8px}
.chartkpi .ckrate.up{color:var(--good);background:color-mix(in srgb,var(--good) 14%,transparent)}
.chartkpi .ckrate.down{color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}
.chartkpi .ckrate.flat{color:var(--sub)}
.chartsvg{width:100%;height:auto;display:block}
/* トレーナー機能（新人をアルバイトが教育・日単位） */
.trainerbar{display:flex;align-items:center;gap:9px;margin:12px 14px 0;padding:12px 13px;border-radius:14px;background:linear-gradient(135deg,var(--theme),var(--theme2));color:#fff;font-size:13.5px;font-weight:700;line-height:1.5;cursor:pointer}
.trainerbar .tbi{font-size:19px;flex-shrink:0}
.trainerbar b{font-weight:900}
.trainerbar .tbjump{margin-left:auto;font-size:10.5px;font-weight:800;background:rgba(255,255,255,.24);padding:3px 8px;border-radius:8px;white-space:nowrap}
.traineenote{display:flex;gap:10px;align-items:flex-start;background:var(--card);border-radius:14px;margin:12px 14px 0;padding:13px 15px}
.traineenote .tni{font-size:20px;flex-shrink:0}
.traineenote .tnt{font-size:14px;font-weight:800;line-height:1.5;display:block}
.traineenote .tns{font-size:11.5px;color:var(--sub);font-weight:600;margin-top:3px;line-height:1.55;display:block}
.traineecard{background:var(--card);border-radius:15px;margin:8px 14px 0;padding:14px 15px}
.tchd{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.tchd .tcname{font-size:16px;font-weight:900}
.tchd .tcstage{font-size:12px;color:var(--sub);font-weight:700}
.tcitem{border-top:.5px solid var(--sep);padding:10px 0 2px}
.tcitem:first-of-type{border-top:none;padding-top:0}
.tciname{font-size:14px;font-weight:800;line-height:1.45}
.tcdone{font-size:12.5px;color:var(--good);font-weight:700;margin-top:4px;line-height:1.55}
.tcprog{font-size:12px;color:var(--sub);font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums}
.tcempty{font-size:12.5px;color:var(--sub);line-height:1.6}
.focustrainer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:.5px solid var(--sep);font-size:12.5px;color:var(--sub)}
.focustrainer b{color:var(--ink)}
.assignbtn{border:1.5px solid var(--sep);background:var(--card);border-radius:10px;padding:6px 12px;font-size:12.5px;font-weight:800;color:var(--ink);cursor:pointer;white-space:nowrap;flex-shrink:0}
.pickwrap{display:flex;flex-direction:column;gap:7px;margin-top:6px}
.pickopt{display:flex;align-items:center;gap:8px;text-align:left;border:1.5px solid var(--sep);border-radius:11px;padding:11px 13px;font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer}
.pickopt.on{border-color:var(--theme);background:var(--themeSoft);color:var(--theme)}
.viewasbar{margin:0 0 2px;padding:9px 16px;background:#2b6cb0;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.viewasbar b{font-weight:900}
.viewasbar span{margin-left:auto;text-decoration:underline;cursor:pointer;font-weight:800}
/* 管理者：スマホ用 上部ジャンプメニュー（縦長対策・デスクトップは非表示） */
.adminnav{position:sticky;top:0;z-index:6;background:var(--bg);padding:8px 14px 6px;margin-bottom:2px}
.adminnav select{width:100%;box-sizing:border-box;padding:11px 12px;border:1.5px solid var(--sep);border-radius:11px;background:var(--card);color:var(--ink);font-size:15px;font-weight:700;font-family:inherit}
@media (min-width:700px){ .adminnav{display:none} }
.lamp{font-size:16px;flex-shrink:0;line-height:1}
.lamp.grn{color:#2e9b57}
.lamp.ylw{color:#e0a90a}
.lamp.red{color:#d24b4b}
.warnbadge{font-size:10.5px;font-weight:800;color:#a8560f;background:#fcecd9;padding:2px 8px;border-radius:7px;white-space:nowrap}
.charttabs.storechips{flex-wrap:wrap;gap:6px;margin-bottom:8px}
.storesub{font-size:11.5px;color:var(--sub);text-align:center;margin-top:8px;padding-top:8px;border-top:.5px solid var(--sep)}
.storesub b{color:var(--ink)}
/* ESアンケート */
.escard{display:flex;align-items:center;gap:10px;margin:12px 14px 0;padding:12px 14px;border-radius:14px;background:var(--themeSoft);border:1.5px solid var(--theme);cursor:pointer}
.escard.done{background:var(--card);border-color:var(--sep)}
.escard .esci{font-size:20px;flex-shrink:0}
.escard .esct{flex:1;min-width:0;display:flex;flex-direction:column}
.escard .esct b{font-size:13.5px;font-weight:800;color:var(--ink)}
.escard .essub{font-size:11px;color:var(--sub);font-weight:600;margin-top:2px;line-height:1.4}
.escard .escta{font-size:12.5px;font-weight:800;color:#fff;background:var(--theme);border-radius:9px;padding:6px 12px;white-space:nowrap;flex-shrink:0}
.escard.done .escta{background:transparent;color:var(--theme);text-decoration:underline;padding:6px 4px}
.esq{margin:14px 0 0;text-align:left}
.esqt{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.5;margin-bottom:7px}
.esopts{display:flex;gap:5px}
.esopt{flex:1;min-width:0;border:1.5px solid var(--sep);background:var(--card);border-radius:9px;padding:8px 2px;font-size:10.5px;font-weight:700;color:var(--sub);cursor:pointer;line-height:1.25}
.esopt.on{border-color:var(--theme);background:var(--themeSoft);color:var(--theme)}
.estitle{font-size:14px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.esrow{display:flex;align-items:center;gap:8px;margin-top:7px}
.esrow .eslabel{font-size:12px;color:var(--ink);flex:1;min-width:0;line-height:1.4}
.esrow .esval{font-size:13px;font-weight:800;color:var(--theme);width:30px;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}
.esrow .esbar{width:72px;height:8px;border-radius:5px;background:var(--sep);overflow:hidden;flex-shrink:0}
.esrow .esbarfill{display:block;height:100%;background:var(--theme);border-radius:5px}
/* ES詳細モーダル */
.eddq{text-align:left;margin:12px 0 0}
.eddqt{font-size:13px;font-weight:700;color:var(--ink);line-height:1.4;margin-bottom:5px}
.eddqt b{color:var(--theme);font-size:14px}
.edbar{display:flex;align-items:center;gap:7px;margin-top:3px}
.edbar .edv{font-size:11px;font-weight:800;color:var(--sub);width:12px;text-align:center;flex-shrink:0}
.edbar .edtrack{flex:1;height:9px;border-radius:5px;background:var(--sep);overflow:hidden}
.edbar .edfill{display:block;height:100%;background:var(--theme);border-radius:5px}
.edbar .edc{font-size:11px;color:var(--sub);width:20px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}
.eddsec{font-size:12px;font-weight:800;color:var(--sub);text-align:left;margin:16px 0 6px;padding-top:10px;border-top:.5px solid var(--sep)}
.edcomment{text-align:left;font-size:13px;line-height:1.55;color:var(--ink);background:var(--bg);border-radius:10px;padding:9px 12px;margin-top:6px}
.edind{text-align:left;font-size:13px;margin-top:8px;padding-bottom:8px;border-bottom:.5px solid var(--sep)}
.edind .edscores{color:var(--theme);font-weight:800;font-variant-numeric:tabular-nums}
.edind .ednote{font-size:12.5px;color:var(--sub);margin-top:3px;line-height:1.5}
.policybody{text-align:left;font-size:12.5px;line-height:1.7;color:var(--ink);max-height:60vh;overflow-y:auto;margin:8px 0}
.policybody p{margin:0 0 10px}
.policybody b{color:var(--ink)}
/* 管理者：店舗ベース時給入力 */
.wageinput{width:82px;box-sizing:border-box;border:1.5px solid var(--sep);border-radius:9px;padding:8px 9px;font-size:16px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
/* 認定タブ 2階層（人リスト→その人の項目） */
.certrow{cursor:pointer}
@media(hover:hover){.certrow:active{background:var(--themeSoft)}}
/* 管理者・全店一覧：暗カード上に3指標をテキストで並べる（白タイルは廃止・読みやすさ優先） */
.row.col{flex-direction:column;align-items:stretch;gap:0}
.storehd{display:flex;justify-content:space-between;align-items:center;width:100%}
.adminstores .storehd .t{color:var(--ink);font-weight:800;font-size:16px}
.store3t{display:flex;gap:6px;margin:11px 0 9px}
.store3t .s3t{flex:1;text-align:center}
.store3t .s3tv{display:block;font-size:23px;font-weight:900;color:var(--ink);letter-spacing:-.5px;line-height:1.05;font-variant-numeric:tabular-nums}
.store3t .s3tv.accent{color:var(--theme2)}
.store3t .s3tl{display:block;font-size:10.5px;font-weight:700;color:var(--sub);margin-top:3px}
.adminstores .storedist .dc{background:rgba(255,255,255,.06)}
.adminstores .storedist .dn{color:var(--ink)}
/* スタッフ一覧：ランクバッジ幅をそろえ、右側（申請バッジ＋›）を縦中央でそろえる */
.stfrow{align-items:center}
.stfrow .rankbadge.sm{min-width:42px;text-align:center}
.stfright{display:flex;align-items:center;gap:8px;flex-shrink:0}
.certcount{min-width:24px;height:24px;line-height:24px;text-align:center;font-size:13px;font-weight:800;color:#fff;background:var(--theme);border-radius:12px;flex-shrink:0}
.chev{color:var(--sub);font-size:20px;font-weight:700;flex-shrink:0;margin-left:2px}
.backbtn{margin:14px 14px 0;background:none;border:none;color:var(--theme);font-weight:800;font-size:14px;cursor:pointer;padding:2px 0}
/* 店長：スタッフ別ヘッダー（名前＋ランク固定） */
.mgrshdr{display:flex;align-items:center;gap:10px}
.backbtn2{background:none;border:none;color:var(--theme);font-weight:800;font-size:14px;cursor:pointer;padding:0;flex-shrink:0}
.mgrsmain{flex:1;min-width:0}
.mgrsname{font-size:22px;font-weight:800;letter-spacing:-.3px;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mgrsmeta{font-size:12px;color:var(--sub);font-weight:600;margin-top:3px}
.rankbadge{color:#fff;font-weight:800;font-size:15px;padding:4px 12px;border-radius:20px;flex-shrink:0}
.rankbadge.sm{font-size:12.5px;padding:3px 9px;border-radius:14px;flex-shrink:0}
/* スタッフ一覧の変化ドット */
.sigdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:2px;vertical-align:middle}
/* 教育ロードマップ */
.roadmap{display:flex;align-items:flex-start;justify-content:space-between;margin:0 14px;background:var(--card);border-radius:16px;padding:16px 12px}
.rmstage{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}
.rmstage b{width:34px;height:34px;border-radius:50%;color:#fff;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center}
.rmstage span{font-size:9.5px;color:var(--sub);font-weight:700;white-space:nowrap}
.rmstage.cur b{transform:scale(1.2);box-shadow:0 3px 10px rgba(0,0,0,.22)}
.rmstage.cur span{color:var(--ink);font-weight:800}
/* 数値タイル */
.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 14px}
.stat{background:var(--card);border-radius:13px;padding:12px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.stat.tap{display:flex;flex-direction:column}
.statl{max-width:100%}
.stat.up{box-shadow:inset 0 0 0 2px var(--good)}
.statv{font-size:24px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.stat.up .statv{color:var(--good)}
.statl{font-size:11.5px;font-weight:700;margin-top:4px}
.stats{font-size:10px;color:var(--sub);margin-top:2px}
/* コーチ要約・育成方針 */
.coachbox{margin:0 14px;background:var(--card);border-radius:16px;padding:15px 16px}
.coachph{font-size:12.5px;font-weight:800;color:var(--theme);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ph2{font-size:10px;font-weight:700;color:var(--sub);background:var(--bg);padding:2px 8px;border-radius:8px}
.coachcur{font-size:13px;line-height:1.6;margin:10px 0 12px;color:var(--ink)}
.coachsum{font-size:13.5px;line-height:1.75;margin:10px 0 12px;color:var(--ink);white-space:pre-wrap;border-left:3px solid var(--theme);padding-left:11px}
/* 傾向マップ（柱別の強み・取組） */
.pillrow{padding:10px 14px;border-bottom:.5px solid var(--sep)}
.pillrow:last-child{border-bottom:none}
.pilltop{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}
.pillname{font-size:12.5px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pillnum{font-size:11px;color:var(--sub);font-weight:700;flex-shrink:0;font-variant-numeric:tabular-nums}
.pillbar{display:flex;height:8px;border-radius:5px;background:#ececef;overflow:hidden}
.pillcert{background:var(--gold)}
.pillact{background:var(--theme);opacity:.55}
.pilllegend{display:flex;gap:16px;margin:6px 20px 0;font-size:11px;color:var(--sub)}
.pilllegend i.lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}
.pilllegend i.cert{background:var(--gold)} .pilllegend i.act{background:var(--theme);opacity:.55}
/* 方向性カード */
.dircard{margin:10px 14px 0;background:linear-gradient(135deg,var(--theme),var(--theme2));border-radius:16px;padding:14px 16px;color:#fff}
.dirhd{font-size:13px;font-weight:800;margin-bottom:5px}
.dirtext{font-size:13.5px;line-height:1.6}
.dirtext b{font-weight:800}
/* プロフィール設定：入社日ラベル */
.setuplabel{display:block;font-size:12px;font-weight:700;color:var(--sub);margin:0 2px 5px}
/* 変化タブ：トータル経験値を大きく */
.bigexp{font-size:40px;font-weight:900;line-height:1;letter-spacing:-1px;margin-top:10px;font-variant-numeric:tabular-nums}
.bigexpu{font-size:15px;font-weight:800;margin-left:4px}
.bigexpsub{font-size:11px;color:var(--sub);font-weight:700;margin-top:2px}
/* 店ダッシュボード */
.storeexp{font-size:42px;font-weight:900;line-height:1;letter-spacing:-1px;color:var(--theme);font-variant-numeric:tabular-nums}
.storeexpl{font-size:12px;color:var(--sub);font-weight:700;margin-top:3px}
/* 店の目標：主役2数字（1人あたり経験値＋充足率） */
.twostat{display:flex;align-items:stretch;justify-content:center}
.twostat .tsitem{flex:1;text-align:center;padding:2px 6px}
.twostat .tsv{font-size:34px;font-weight:900;line-height:1.05;letter-spacing:-.5px;color:var(--theme);font-variant-numeric:tabular-nums}
.twostat .tsl{font-size:11.5px;font-weight:700;color:var(--sub);margin-top:5px}
.twostat .tsdiv{width:1px;background:var(--sep);margin:6px 2px}
.goalcard{margin:0 14px;background:var(--card);border-radius:16px;padding:18px 16px 16px}
.goalbar{position:relative;height:14px;border-radius:8px;background:#ececef;overflow:visible;margin:14px 0 8px}
.goalfill{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--theme2),var(--theme))}
.goalmark{position:absolute;top:-4px;height:22px;border-left:2px dashed #b0b0b8}
.goalmark::after{content:attr(data-l);position:absolute;top:-16px;left:-14px;font-size:9px;color:var(--sub);font-weight:700;white-space:nowrap}
.goalnums{font-size:12.5px;color:var(--sub);font-weight:700}
.goalnums b{color:var(--theme);font-size:15px}
.goalnext{margin-top:10px;padding-top:10px;border-top:.5px solid var(--sep);font-size:13.5px;font-weight:700}
.goalnext b{color:var(--theme)}
.distrow{display:flex;gap:8px;margin:0 14px}
.distcell{flex:1;background:var(--card);border-radius:13px;padding:12px 4px 10px;text-align:center}
.distn{font-size:24px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.distbadge{display:inline-block;margin-top:6px;width:22px;height:22px;line-height:22px;border-radius:50%;color:#fff;font-size:12px;font-weight:800}
.rankpos{min-width:20px;text-align:center;font-size:14px;font-weight:900;color:var(--sub);flex-shrink:0}
.storelvnum{font-size:22px;font-weight:900;color:var(--theme);line-height:1;font-variant-numeric:tabular-nums}
/* 店長・管理者：ダークテーマ（真っ黒でなくダークグレー。カードも背景トーンに合わせる）。
   CSS変数を上書きするので、var(--card)/var(--sep)/var(--ink)/var(--sub)を使う要素は自動でダーク化 */
.darkbg{
  --bg:#f7f5f8; --card:#ffffff; --sep:#e6e2ea;
  --ink:#1d1c1d; --sub:#6b676e; --theme:#611f69; --theme2:#8a4e90; --themeSoft:#f0e9f1; --goldSoft:#f3edd6;
  background:var(--bg);
}
/* Slack風：ヘッダー・ボトムナビは濃いオーバジン、メインは白系（店長ダッシュボードのみ・管理/アルバイト画面は不変） */
.darkbg .apphdr{background:#3f0e40;border-bottom-color:#521a54}
.darkbg .apphdr .storename,.darkbg .apphdr .bigdate,.darkbg .apphdr .mgrsname{color:#fff}
.darkbg .apphdr .hdsub,.darkbg .apphdr .mgrsmeta{color:#c19ac4}
.darkbg .apphdr .biglv{background:rgba(255,255,255,.16);color:#f4e9f5}
.darkbg .apphdr .hdxp,.darkbg .apphdr .hdxp small{color:#e7c6ea}
.darkbg .apphdr .ava{background:#6d3170;border-color:rgba(255,255,255,.6)}
.darkbg .apphdr .backbtn2{color:#e0b8e3}
.darkbg .who{color:#c19ac4}
.darkbg .nav{background:rgba(63,14,64,.98);border-top-color:rgba(255,255,255,.12)}
.darkbg .nav div{color:#a98cab}
.darkbg .nav div .i{opacity:.85;filter:none}
.darkbg .nav div.on{color:#fff}
.darkbg .nav div.on .i{opacity:1;filter:none}
.darkbg .nav .navbadge{background:#e01e5a}
.darkbg .feednote b{color:var(--ink)}
.darkbg .mgrtab{background:#ece8ee;color:#6b676e}
.darkbg .mgrtab.on{background:var(--theme);color:#fff}
.darkbg .feedpos{background:#e9e4ec;color:#6b5a70}
.darkbg .pillbar,.darkbg .goalbar{background:#e6e2ea}
.darkbg .goalmark{border-color:#c9c2cf}
.darkbg .ph2{background:#efe9f0;color:#8a7d8c}
/* モーダル・入力もダークに */
.darkbg .modal .box{background:#ffffff}
.darkbg .omchoice{background:#f2eef4;color:var(--ink);border-color:var(--sep)}
.darkbg .omchoice.on{background:var(--themeSoft);border-color:var(--theme);color:var(--theme2)}
.darkbg .omnote,.darkbg .wageinput{background:#ffffff;color:var(--ink);border-color:var(--sep)}
.darkbg .bubble.coach{background:#f0edf2;color:var(--ink)}
/* タップできるカード/行 */
.stat.tap{cursor:pointer}
@media(hover:hover){.stat.tap:active{background:var(--themeSoft)}}
.pillrow{cursor:pointer}
@media(hover:hover){.pillrow:active{background:var(--themeSoft)}}
/* 詳細モーダルのリスト */
.dlist{max-height:52vh;overflow-y:auto;text-align:left;margin:8px 0 2px}
.dsec{font-size:11.5px;font-weight:800;color:var(--theme);margin:12px 0 4px}
.drow{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:8px 2px;border-bottom:.5px solid var(--sep);font-size:13px}
.drow:last-child{border-bottom:none}
.dname{font-weight:600;line-height:1.45}
.dnote{font-size:11px;color:var(--sub);font-weight:700;flex-shrink:0;white-space:nowrap}
.dempty{font-size:12.5px;color:var(--sub);text-align:center;padding:22px 8px}
/* 店長・管理者：ログアウトを常に最下段に固定 */
.darkbg .scroll{display:flex;flex-direction:column}
.darkbg .scroll > *{flex-shrink:0}   /* flex子が縮んでカードがクリップされるのを防ぐ */
.mgrfoot{margin-top:auto;padding-top:24px}
/* 認定申請の件数＝赤い通知バッジ（目立たせる） */
.pendbadge{background:#e5484d;color:#fff;font-size:11.5px;font-weight:800;padding:5px 11px;border-radius:13px;flex-shrink:0;white-space:nowrap;box-shadow:0 1px 5px rgba(229,72,77,.45)}
.mgrtabn.pend{background:#e5484d;color:#fff}
.mgrtab.on .mgrtabn.pend{background:#fff;color:#e5484d}
.darkbg .pendbadge{background:#fbe1e8;color:#c31d4f;box-shadow:none}
/* 画面遷移スライド（スワイプで戻る等）。ゆっくりめ 0.6s */
.nav-back{animation:slideBack .6s cubic-bezier(.25,.8,.35,1)}
.nav-fwd{animation:slideFwd .6s cubic-bezier(.25,.8,.35,1)}
@keyframes slideBack{from{transform:translateX(-26%);opacity:.25}to{transform:none;opacity:1}}
@keyframes slideFwd{from{transform:translateX(26%);opacity:.25}to{transform:none;opacity:1}}
/* 連続利用を目立たせるチップ */
.streakchip{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:800;color:#fff;background:#4b8f5a;padding:3px 11px;border-radius:12px;vertical-align:middle;letter-spacing:.2px}
.streakchip.hot{background:linear-gradient(90deg,#ff8a3d,#ff5a2c);box-shadow:0 1px 8px rgba(255,90,44,.45)}
/* 店長トップ：店舗名を大きく */
.hdtitle{min-width:0}
.storename{font-size:22px;font-weight:800;letter-spacing:-.3px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdsub{font-size:12px;color:var(--sub);font-weight:600;margin-top:1px}
/* 店の目標タブ：人員計画 */
.plannum{font-size:18px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}
.plannum.ok{color:var(--good)} .plannum.short{color:var(--warn)}
.planrow{display:flex;align-items:center;gap:10px;margin:10px 0}
.planlabel{flex:1;font-size:14px;font-weight:600}
/* 充足率・時給パネル：明るいグレー地＋濃色文字（Sなど暗い色も読める） */
.darkbg .graybox{background:#eeebf1}
.darkbg .graybox .row{border-bottom-color:#ddd8e2}
.darkbg .graybox .row .tx .t{color:#1c1c1e}
.darkbg .graybox .row .tx .s,.darkbg .graybox .stats{color:#565961}
.darkbg .graybox .feedpos{background:#e2dee8;color:#5a5563}
.darkbg .graybox .storelvnum{color:#611f69}
.darkbg .graybox .wageinput{background:#fff;color:#1c1c1e;border-color:#cfc8d6}
.darkbg .graybox .addbtn{background:#efe4f0;color:#611f69}
/* テスト表示切替（店長/管理者→管理者/店長/アルバイト） */
.viewswitch{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:9px 0 1px}
.vslabel{font-size:10px;font-weight:800;color:var(--sub);margin-right:2px}
.vsbtn{font-size:11.5px;font-weight:800;padding:5px 11px;border-radius:20px;border:1.5px solid var(--sep);background:var(--card);color:var(--sub);cursor:pointer}
.vsbtn.on{background:var(--theme);color:#fff;border-color:var(--theme)}
/* 登録：アイコン設定 */
.avapick{display:flex;flex-direction:column;align-items:center;gap:8px;margin:6px 0 16px}
.avapick .ava{width:84px;height:84px;border-radius:50%;background:var(--themeSoft);display:flex;align-items:center;justify-content:center;font-size:38px;overflow:hidden;cursor:pointer;border:2px solid var(--card);box-shadow:0 1px 6px rgba(0,0,0,.12)}
.avapick .ava img{width:100%;height:100%;object-fit:cover}
.avapicklabel{font-size:12.5px;font-weight:700;color:var(--theme);cursor:pointer}
/* 人員計画：表形式 */
.plantable{width:calc(100% - 28px);margin:0 14px;border-collapse:collapse;background:var(--card);border-radius:14px;overflow:hidden;table-layout:fixed}
.plantable .c-rank{width:48%}
.plantable .c-num{width:16%}
.plantable .c-stat{width:20%}
.plantable th,.plantable td{padding:11px 6px;text-align:center;border-bottom:.5px solid var(--sep);vertical-align:middle}
.plantable thead th{font-size:11px;font-weight:800;color:var(--sub);background:var(--bg)}
.plantable thead th:first-child{text-align:left;padding-left:14px}
.plantable tbody tr:last-child td{border-bottom:none}
.plantable .pl-rank{text-align:left;padding-left:14px}
.plantable .pl-rankwrap{display:flex;align-items:center;gap:8px;white-space:nowrap}
.plantable .pl-label{font-weight:700;font-size:13px}
.plantable .pl-num{font-weight:800;font-variant-numeric:tabular-nums;font-size:16px}
.plantable .pl-stat{font-weight:800;font-size:12px}
.plantable .pl-stat.ok{color:var(--good)}
.plantable .pl-stat.short{color:#e8890c}
.plantable .pl-d .pl-label{color:var(--sub)}
/* 今日の課題（営業中の早見表） */
.focusitems{margin-top:8px;display:flex;flex-direction:column;gap:2px}
.focusempty{font-size:12.5px;color:var(--sub)}
.focusname{flex:1;min-width:0}
.focustag{margin-left:6px;font-size:10.5px;font-weight:800;color:#fff;background:var(--theme);padding:1px 8px;border-radius:7px;flex-shrink:0}
/* 認定でランクアップ（時給↑）の告知 */
.rankupbanner{margin:10px 14px;padding:10px 13px;border-radius:12px;background:#fff6e9;color:#8a4b00;font-size:12.5px;font-weight:700;line-height:1.65;border:1.5px solid #f0c98a}
.rankupbanner b{color:#7a3f00}
.rankuptag{display:inline-block;margin-left:8px;font-size:11px;font-weight:800;color:#fff;background:#e8890c;padding:2px 8px;border-radius:8px;vertical-align:middle;white-space:nowrap}
.row.rowrankup{box-shadow:inset 0 0 0 2px #e8890c}
/* 全店一覧：S/A/B/C/D 分布を5等分グリッドで縦に揃える */
.storedist{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:8px}
.storedist .dc{background:#fff;border-radius:8px;padding:5px 0;text-align:center}
.storedist .dl{display:block;font-size:10px;font-weight:800;line-height:1}
.storedist .dn{display:block;font-size:16px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums;color:#1c1c1e}
