/* Routine の画面。Ink v1.0（ink.css。2026-10-29 コピー）の上に、チェックの行・日付の切り替え・今週の表だけ足す。
   色・線・角丸・影は ink.css の --ink-* を使い、ここに値を直書きしない（チェックの印の線の太さなど寸法だけ）。
   ライトだけ。艶のある黒は「チェック済みの箱」だけに使う */

html { -webkit-text-size-adjust: 100%; background: var(--ink-canvas); }
/* ボタンの初期化は効きを 0 にする（ink-btn・ink-icon-btn の線や黒い地を消さない） */
:where(.ink-ui) :where(button) { border: 0; background: none; padding: 0; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
:where(.ink-ui) :where(button:disabled) { cursor: default; }

/* ページの枠: スマホ 1 カラム。上は白い帯、下は薄いグレーの地に白いカード */
.rt { min-height: 100dvh; }
.rt-wrap { width: 100%; max-width: 560px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }
.rt-head { background: var(--ink-surface); border-bottom: 1px solid var(--ink-line); padding-top: env(safe-area-inset-top); }
.rt-head .rt-wrap { padding-top: 16px; padding-bottom: 14px; }
.rt-brand { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; }
.rt-main { display: flex; flex-direction: column; gap: var(--ink-gap); padding-top: 18px; padding-bottom: calc(env(safe-area-inset-bottom) + 32px); }
@media (min-width: 621px) {
  .rt-wrap { padding-left: 24px; padding-right: 24px; }
  .rt-head .rt-wrap { padding-top: 24px; }
  .rt-main { padding-top: 24px; }
}

/* 日付の切り替え */
.rt-datebar { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 8px; margin-top: 12px; }
.ink-ui .rt-nav { width: 44px; height: 44px; border-radius: var(--ink-r-ctl); }
.rt-datebox { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; text-align: center; }
.rt-datebox h1 { font-size: 22px; font-weight: 700; line-height: 1.35; letter-spacing: -0.01em; white-space: nowrap; }
.ink-ui .rt-sub { height: 24px; padding: 0 10px; border: 1px solid var(--ink-line-2); border-radius: var(--ink-r-pill); background: var(--ink-surface);
  color: var(--ink-text); font-size: var(--ink-fs-sm); font-weight: 500; line-height: 22px; white-space: nowrap; }
.ink-ui .rt-sub:hover:not(:disabled) { border-color: var(--ink-text-3); }
/* 今日を見ているときは押せない印だけ（薄い塗り） */
.ink-ui .rt-sub:disabled { border-color: transparent; background: var(--ink-fill); color: var(--ink-text-2); }

/* カードの見出しの右（数・基準） */
.rt .ink-panel-head > span { font-size: var(--ink-fs-sm); color: var(--ink-text-3); white-space: nowrap; }
.ink-panel-head .rt-score { font-family: var(--ink-mono); font-feature-settings: "tnum" 1; color: var(--ink-text-2); }
.rt-score b { font-size: var(--ink-fs-lg); font-weight: 500; color: var(--ink-text); letter-spacing: -0.02em; }
.rt-pct { margin-left: 10px; }

/* その日の進み（1 項目 = 1 マス） */
.rt-segbar { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 4px; margin-bottom: 4px; }
.rt-segbar i { height: 6px; border-radius: var(--ink-r-pill); background: var(--ink-fill-2); }
.rt-segbar i.on { background: var(--ink-text); }

/* チェックの行。未チェック＝線の箱、チェック済み＝艶のある黒の箱＋白い印 */
.rt-habits { list-style: none; margin: 0; padding: 0; }
.rt-habits li + li { border-top: 1px solid var(--ink-line); }
.ink-ui .habit { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 60px; padding: 12px 4px; border-radius: var(--ink-r-sm); text-align: left; transition: background-color 0.12s; }
.ink-ui .habit:hover { background: var(--ink-hover); }
.ink-ui .habit:active { background: var(--ink-fill); }
.habit .box { position: relative; flex: none; width: 26px; height: 26px; border: 1.5px solid var(--ink-line-2); border-radius: var(--ink-r-sm); background: var(--ink-surface);
  transition: background-color 0.12s, border-color 0.12s; }
.habit .name { font-size: 15px; font-weight: 500; line-height: 1.5; color: var(--ink-text); overflow-wrap: anywhere; }
.habit[aria-pressed="true"] .box { border-color: transparent; background: var(--ink-black); box-shadow: var(--ink-black-shadow-sm); }
.habit[aria-pressed="true"] .box::after { content: ""; position: absolute; left: 8.5px; top: 4px; width: 6px; height: 12px;
  border: solid var(--ink-on-black); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.habit[aria-pressed="true"] .name { color: var(--ink-text-2); }
.rt-status { min-height: 18px; margin-top: 4px; font-size: var(--ink-fs-sm); line-height: 18px; color: var(--ink-text-3); }
.rt-status.err { color: var(--ink-text); font-weight: 600; }

/* 連続日数 */
.rt-streak { display: flex; align-items: baseline; gap: 8px; }
.rt-streak b { font-family: var(--ink-mono); font-feature-settings: "tnum" 1; font-size: var(--ink-fs-kpi); font-weight: 500; line-height: 1.15; letter-spacing: -0.03em; }
.rt-streak span { font-size: var(--ink-fs-base); color: var(--ink-text-3); }
.rt-hint { margin-top: 6px; font-size: var(--ink-fs-base); color: var(--ink-text-2); }

/* 今週（7 日。押すとその日へ）。見ている日＝線の枠と薄い塗り、達成した日＝数が濃いグレーの丸 */
.rt-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.ink-ui .wd { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; padding: 8px 0 10px;
  border: 1px solid transparent; border-radius: var(--ink-r-ctl); }
.ink-ui .wd:hover:not(:disabled) { background: var(--ink-hover); }
.wd .l { font-size: var(--ink-fs-xs); color: var(--ink-text-3); }
.wd .n { font-family: var(--ink-mono); font-feature-settings: "tnum" 1; font-size: var(--ink-fs-md); font-weight: 500; line-height: 1.4; color: var(--ink-text-2); }
.wd .dots { display: flex; flex-direction: column; gap: 3px; margin: 2px 0; }
.wd .dots i { display: block; width: 8px; height: 8px; border-radius: 2px; background: var(--ink-fill-2); }
.wd .dots i.on { background: var(--ink-text); }
.wd .dots i.na { visibility: hidden; }
.wd .c { min-height: 20px; padding: 0 6px; border-radius: var(--ink-r-pill); font-family: var(--ink-mono); font-feature-settings: "tnum" 1; font-size: var(--ink-fs-xs); line-height: 20px; color: var(--ink-text-3); }
.wd.ok .c { background: var(--ink-solid); color: var(--ink-on-black); }
.wd.today .n { color: var(--ink-text); font-weight: 700; }
.wd.today .l { color: var(--ink-text); }
.ink-ui .wd.sel { border-color: var(--ink-line-2); background: var(--ink-fill); }
.wd.sel .n { color: var(--ink-text); }
.ink-ui .wd:disabled { opacity: 0.4; }
.wd:disabled .dots i { background: var(--ink-fill-2); }
@media (max-width: 380px) {
  .rt-week { gap: 2px; }
  .wd .c { padding: 0 3px; }
}

.rt-foot { display: flex; justify-content: center; padding-top: 4px; }

/* 読み込み中 */
.rt[aria-busy="true"] :is(.rt-habits, .rt-week) { opacity: 0.45; transition: opacity 0.2s; }

/* ---------- ログイン ---------- */
.rt-login { display: grid; place-items: center; min-height: 100dvh; padding: calc(env(safe-area-inset-top) + 24px) 16px calc(env(safe-area-inset-bottom) + 24px); }
.rt-login .ink-form-card { gap: 18px; }
.rt-login .rt-brand { font-size: var(--ink-fs-lg); }
.rt-login form { display: flex; flex-direction: column; gap: 14px; }
.rt-login .ink-input { font-size: 16px; } /* iOS の自動ズームを防ぐ */
.rt-login .ink-error { display: none; }
.rt-login .ink-error.show { display: block; }
