/* 保護者用 時間割（2026-10-01） スマホ前提 */
:root{
  --ink:#1d2433; --mut:#6b7385; --line:#e3e7ef; --bg:#f4f6fa; --card:#fff;
  --pri:#1f4e8c; --pri-2:#2f6fbe; --pri-bg:#eaf1fb;
  --mae:#b4441f; --mae-bg:#fff1ea; --koshu:#1c7a52; --koshu-bg:#e9f7f0;
  --warn:#b45309; --danger:#c0392b;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink)}
body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%;padding-bottom:env(safe-area-inset-bottom)}
button,input,select{font:inherit;color:inherit}
.boot{padding:60px 20px;text-align:center;color:var(--mut)}
.wrap{max-width:560px;margin:0 auto;padding:0 14px 40px}

/* ヘッダー */
.top{background:var(--pri);color:#fff;padding:14px 16px 16px;padding-top:calc(14px + env(safe-area-inset-top))}
.top-in{max-width:560px;margin:0 auto;display:flex;align-items:center;gap:10px}
.top .org{font-size:12.5px;opacity:.85;letter-spacing:.04em}
.top .ttl{font-size:19px;font-weight:700;line-height:1.35}
.top .grow{flex:1;min-width:0}
.menu-btn{background:rgba(255,255,255,.16);border:0;color:#fff;border-radius:10px;padding:8px 12px;font-size:14px;cursor:pointer}
.kids{display:flex;gap:8px;overflow-x:auto;padding:12px 0 2px;margin:0 -2px}
.kid{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 15px;font-size:15px;cursor:pointer}
.kid.on{border-color:var(--pri);background:var(--pri-bg);color:var(--pri);font-weight:700}

/* カード */
.card{background:var(--card);border-radius:16px;box-shadow:0 1px 3px rgba(20,30,60,.08);padding:18px 16px;margin-top:14px}
.card h2{font-size:17px;margin:0 0 4px}
.card .sub{color:var(--mut);font-size:13.5px}
.who{margin-top:14px;padding:0 4px}
.who .nm{font-size:21px;font-weight:700}
.who .meta{color:var(--mut);font-size:14px}

/* タブ */
.tabs{display:flex;gap:6px;margin-top:14px;background:#e6eaf2;border-radius:12px;padding:4px}
.tab{flex:1;border:0;background:transparent;border-radius:9px;padding:9px 4px;font-size:14.5px;font-weight:600;color:#4a5265;cursor:pointer;position:relative}
.tab.on{background:#fff;color:var(--pri);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tab.mae.on{color:var(--mae)} .tab.koshu.on{color:var(--koshu)}
.tab .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mae);margin-left:5px;vertical-align:2px}

/* 通常: 曜日ごと */
.week{margin-top:6px}
.day{display:flex;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.day:first-child{border-top:0}
.dlab{flex:none;width:44px;height:44px;border-radius:12px;background:var(--pri-bg);color:var(--pri);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px}
.day.off .dlab{background:#f0f2f6;color:#a3a9b6}
.day.sat .dlab{background:#e8f0ff;color:#2457b3}
.day.today .dlab{background:var(--pri);color:#fff}
.lessons{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;justify-content:center}
.ls{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ls .tm{font-weight:700;font-variant-numeric:tabular-nums;font-size:16.5px;white-space:nowrap}
.ls .sj{font-size:16.5px}
.none{color:#a3a9b6;font-size:14.5px}

/* 前倒し・講習: 日付ごと */
.banner{border-radius:14px;padding:14px 16px;margin-top:14px}
.banner.mae{background:var(--mae-bg);border:1px solid #f4c9b5}
.banner.koshu{background:var(--koshu-bg);border:1px solid #b9e3cf}
.banner b{font-size:17px;display:block}
.banner.mae b{color:var(--mae)} .banner.koshu b{color:var(--koshu)}
.banner .per{font-weight:700;font-size:15px;margin-top:2px}
.banner .note{font-size:13.5px;color:#4a5265;margin-top:6px}
.dated .day .dlab{width:62px;flex-direction:column;font-size:15px;line-height:1.15}
.dated .day .dlab small{font-size:11.5px;font-weight:600}
.dated.mae .day .dlab{background:var(--mae-bg);color:var(--mae)}
.dated.koshu .day .dlab{background:var(--koshu-bg);color:var(--koshu)}
.dated .day.off .dlab{background:#f0f2f6;color:#a3a9b6}
.dated .day.past{opacity:.45}
.dated .day.today .dlab{background:var(--mae);color:#fff}
.dated.koshu .day.today .dlab{background:var(--koshu);color:#fff}
.term-h{font-weight:700;font-size:14.5px;color:var(--koshu);margin:16px 0 2px;padding-bottom:4px;border-bottom:2px solid var(--koshu-bg)}
.term-h small{color:var(--mut);font-weight:500;margin-left:6px}
.hint{margin-top:10px;font-size:13.5px;color:var(--mut);background:#fff;border-radius:12px;padding:10px 12px;border:1px dashed var(--line)}
.hint a{color:var(--pri);font-weight:700;text-decoration:none}

/* お知らせ */
.msg{white-space:pre-wrap;word-break:break-word;font-size:15px;padding:10px 0;border-top:1px solid var(--line)}
.msg:first-of-type{border-top:0}
.msgs h3{font-size:15px;margin:0 0 2px;color:var(--pri)}

.foot{text-align:center;color:var(--mut);font-size:12.5px;margin-top:18px;line-height:1.7}
.foot a{color:var(--mut)}
.live{display:inline-flex;align-items:center;gap:6px}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:#22a06b;display:inline-block}

/* フォーム */
.entry{max-width:460px;margin:0 auto;padding:0 14px 40px}
.brand{text-align:center;padding:34px 0 8px}
.brand .org{font-size:13.5px;color:var(--mut);letter-spacing:.06em}
.brand h1{font-size:23px;margin:2px 0 0;color:var(--pri)}
.seg{display:flex;background:#e6eaf2;border-radius:12px;padding:4px;margin-top:18px}
.seg button{flex:1;border:0;background:transparent;padding:10px 4px;border-radius:9px;font-weight:700;font-size:14.5px;color:#4a5265;cursor:pointer}
.seg button.on{background:#fff;color:var(--pri);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.f{margin-top:14px}
.f label{display:block;font-weight:700;font-size:14.5px;margin-bottom:5px}
.f label .req{color:var(--danger);font-size:12px;margin-left:4px;font-weight:600}
.f .help{font-size:12.5px;color:var(--mut);margin-top:4px;line-height:1.5}
.f input,.f select{width:100%;border:1.5px solid #cfd6e2;border-radius:11px;padding:12px 12px;font-size:16px;background:#fff;outline:none}
.f input:focus,.f select:focus{border-color:var(--pri-2);box-shadow:0 0 0 3px rgba(47,111,190,.15)}
.f select:disabled{background:#f3f5f9;color:#9aa1ae}
.row2{display:flex;gap:10px}
.row2>div{flex:1;min-width:0}
.row2 .cap{font-size:12.5px;color:var(--mut);margin-bottom:3px}
.pw{position:relative}
.pw input{padding-right:64px}
.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:#eef1f6;border-radius:8px;padding:6px 9px;font-size:12.5px;cursor:pointer}
.sec-h{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);font-weight:700;color:var(--pri);font-size:15px}
.notice{background:#fff8e6;border:1px solid #f1d58a;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.6;margin-top:12px;color:#5c4813}
.btn{display:block;width:100%;border:0;border-radius:12px;padding:14px;font-size:16.5px;font-weight:700;cursor:pointer;margin-top:18px}
.btn.pri{background:var(--pri);color:#fff}
.btn.pri:disabled{opacity:.6}
.btn.ghost{background:#fff;color:var(--pri);border:1.5px solid #cfd6e2}
.err{color:var(--danger);background:#fdeeee;border-radius:10px;padding:10px 12px;font-size:14px;margin-top:12px}
.ok{color:#126b45;background:#e7f6ee;border-radius:10px;padding:10px 12px;font-size:14px;margin-top:12px}
.small{font-size:13px;color:var(--mut);margin-top:14px;line-height:1.7;text-align:center}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 確認待ち */
.pending{text-align:center;padding:26px 18px}
.pending .ic{font-size:40px}
.pending h2{margin:6px 0}
.pending .sub{font-size:14.5px;line-height:1.7}
.kv{text-align:left;background:#f6f8fb;border-radius:12px;padding:10px 14px;margin-top:12px;font-size:14.5px}

/* メニュー */
.sheet-back{position:fixed;inset:0;background:rgba(15,20,35,.4);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:#fff;border-radius:18px 18px 0 0;width:100%;max-width:560px;padding:10px 14px calc(18px + env(safe-area-inset-bottom));max-height:92vh;overflow:auto}
.sheet .grab{width:42px;height:5px;border-radius:3px;background:#d5dae3;margin:2px auto 10px}
.sheet .mi{display:block;width:100%;text-align:left;border:0;background:#f5f7fb;border-radius:12px;padding:14px;font-size:16px;margin-top:8px;cursor:pointer}
.sheet .mi.danger{color:var(--danger)}
.sheet .acct{font-size:13px;color:var(--mut);padding:0 4px}
.sheet h2{font-size:18px;margin:4px 4px 0}

/* 検証環境の目印（本番では出ない） */
.devbar{position:sticky;top:0;z-index:60;background:#b91c1c;color:#fff;font-size:13.5px;line-height:1.5;padding:9px 12px;text-align:center}
.devbar a{color:#fff;font-weight:700;margin-left:8px;text-decoration:underline}

/* 生徒名の横のコメント（時間割アプリで入力した連絡） 2026-10-02 */
.ls .nt{flex-basis:100%;font-size:14px;line-height:1.5;color:#7a4a06;background:#fff6e0;border-left:3px solid #f0b429;border-radius:6px;padding:3px 9px;white-space:pre-wrap;word-break:break-word}
