/* =============================================
   リセット・基本スタイル
   ============================================= */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{overflow-x:hidden;}
:root{
  /*
   * Rep Craft Design Tokens
   * - Primary: 主要操作、保存、実行、次セット
   * - Accent: 選択中、補助的な強調、分析ハイライト
   * - Surface: カード/モーダル背景
   * - Success: PR/保存成功/良好
   * - Warning: 注意、疲労、入力不足
   * - Risk: 痛み、危険、削除
   *
   * Phase 1では既存UIを大きく変えず、今後の120点デザインへ
   * 安全に移行するための共通土台として定義する。
   */
  --color-bg:#F3F7F6;
  --color-bg-depth:#EAF2F0;
  --color-surface:#FFFFFF;
  --color-surface-soft:#F7FAF9;
  --color-primary:#0B6F68;
  --color-primary-soft:#E3F3F1;
  --color-primary-dark:#064E49;
  --color-accent:#2E9FA6;
  --color-accent-soft:#e8f6f7;
  --color-success:#16865F;
  --color-success-soft:#e8f6ef;
  --color-warning:#B7791F;
  --color-warning-soft:#fff6e6;
  --color-risk:#C2413B;
  --color-risk-soft:#fff1ef;
  --color-text:#102027;
  --color-muted:#72808a;
  --color-muted-strong:#4e5d66;
  --color-border:rgba(15,118,110,.14);
  --color-border-strong:rgba(15,118,110,.24);
  --font-size-xs:11px;
  --font-size-sm:12px;
  --font-size-md:15px;
  --font-size-lg:17px;
  --font-size-xl:20px;
  --font-size-2xl:24px;
  --line-height-tight:1.25;
  --line-height-normal:1.55;
  --line-height-relaxed:1.75;
  --font-weight-regular:400;
  --font-weight-medium:500;
  --font-weight-semibold:700;
  --font-weight-bold:850;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:18px;
  --shadow-soft:0 1px 2px rgba(15,23,42,.04),0 12px 30px rgba(15,118,110,.08);
  --shadow-floating:0 18px 48px rgba(15,23,42,.18),0 8px 24px rgba(15,118,110,.10);
  --space-xs:6px;
  --space-sm:8px;
  --space-md:12px;
  --space-lg:16px;
  --rest-timer-reserve:220px;
  --rest-timer-reserve-mobile:190px;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;background:radial-gradient(circle at 12% -10%,rgba(11,111,104,.08),transparent 30%),linear-gradient(180deg,var(--color-bg),var(--color-bg-depth));color:var(--color-text);min-height:100vh;}
input,select,textarea,button{font-size:16px;font-family:inherit;-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);padding:10px 12px;width:100%;outline:none;box-sizing:border-box;}
input,select,textarea,button{scroll-margin-bottom:calc(var(--rest-timer-reserve) + 24px);}
input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(11,111,104,.15);}
button{cursor:pointer;width:auto;padding:10px 16px;border-color:var(--color-border-strong);background:var(--color-surface);}
button:active{opacity:.75;}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;}
textarea{resize:vertical;line-height:1.6;}

/* =============================================
   Rep Craft Button System
   Primary:  今押すべき主要操作（ログ保存・実行・次セット）
   Secondary: 補助的だがよく使う操作（セット追加・構成保存/読込）
   Tertiary: 詳細/追加/折りたたみなど控えめな操作
   Danger:   削除やアカウント削除など注意操作
   Ghost:    キャンセル・閉じる・戻る操作
   ============================================= */
.btn-primary,.btn-secondary,.btn-tertiary,.btn-danger,.btn-ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-xs);
  min-height:42px;
  border-radius:var(--radius-md);
  font-weight:800;
  line-height:1.25;
  touch-action:manipulation;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s;
}
.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 5px 14px rgba(11,111,104,.18);}
.btn-secondary{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-soft);}
.btn-tertiary{background:var(--color-surface-soft);border-color:var(--color-border);color:var(--color-muted-strong);box-shadow:none;}
.btn-danger{background:var(--color-risk-soft);border-color:var(--color-risk);color:#b42318;box-shadow:none;}
.btn-ghost{background:transparent;border-color:transparent;color:var(--color-muted-strong);box-shadow:none;}
.btn-primary:active,.btn-secondary:active,.btn-tertiary:active,.btn-danger:active,.btn-ghost:active{transform:translateY(1px);opacity:.9;}

/* =============================================
   レイアウト
   ============================================= */
.app{max-width:600px;margin:0 auto;padding:16px 16px 60px;}
.hidden{display:none!important;}
.card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-soft);}

/* =============================================
   認証画面
   ============================================= */
.auth-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;background:linear-gradient(135deg,#f0faf6 0%,#e8f4fe 100%);}
.auth-logo{margin-bottom:8px;}
.auth-title{font-size:22px;font-weight:700;color:#1a1a1a;margin-bottom:4px;}
.auth-sub{font-size:14px;color:#666;margin-bottom:32px;}
.auth-card{background:var(--color-surface);border-radius:16px;padding:28px 24px;width:100%;max-width:360px;box-shadow:0 4px 24px rgba(0,0,0,.08);}
.auth-tabs{display:flex;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;margin-bottom:20px;}
.auth-tab{flex:1;padding:10px 0;font-size:14px;font-weight:500;border:none;background:#f8f8f8;color:#888;cursor:pointer;}
.auth-tab.active{background:var(--color-primary);color:#fff;}
.auth-field{margin-bottom:14px;}
.auth-field label{font-size:13px;color:#555;margin-bottom:5px;display:block;}
.auth-submit{width:100%;padding:12px;background:var(--color-primary);border:none;color:#fff;font-size:15px;font-weight:600;border-radius:var(--radius-sm);margin-top:4px;cursor:pointer;}
.auth-submit:active{background:#178a65;}
.auth-msg{font-size:13px;margin-top:10px;min-height:18px;text-align:center;}
.auth-msg.error{color:#e24b4b;}
.auth-msg.success{color:var(--color-success);}
.forgot-link{text-align:right;margin-top:4px;margin-bottom:0;}
.forgot-link button{background:none;border:none;color:var(--color-primary);font-size:12px;padding:0;width:auto;cursor:pointer;text-decoration:underline;}


/* =============================================
   ヘッダー
   ============================================= */
.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:12px 16px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;}
.header-title{font-size:16px;font-weight:700;color:#1a1a1a;}
.header-user{font-size:12px;color:#666;}
.header-btns{display:flex;gap:6px;}
.header-btn{font-size:12px;padding:6px 10px;background:#f5f5f5;border-color:#e0e0e0;color:#555;}
/* ── ハンバーガーメニュー ── */
.hamburger-btn{width:38px;height:38px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:4px;border-radius:8px;}
.hamburger-btn:active{background:#f0f0f0;}
.hamburger-line{width:22px;height:2px;background:#555;border-radius:2px;transition:all .2s;}
.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:660;display:block;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s ease,visibility .2s ease;}
.drawer-overlay.open{visibility:visible;opacity:1;pointer-events:auto;}
@keyframes fadeInOverlay{from{opacity:0;}to{opacity:1;}}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(86vw,320px);background:#fff;z-index:661;visibility:hidden;opacity:0;pointer-events:none;transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .18s ease,visibility .18s ease;overflow-y:auto;box-shadow:-4px 0 20px rgba(0,0,0,.15);will-change:transform;}
.drawer.open{visibility:visible;opacity:1;pointer-events:auto;transform:translateX(0);}
body:not(.drawer-open) .drawer,
body:not(.drawer-open) .drawer-overlay,
.drawer[aria-hidden="true"],
.drawer-overlay[aria-hidden="true"]{visibility:hidden!important;opacity:0!important;pointer-events:none!important;}
body:not(.drawer-open) .drawer,
.drawer[aria-hidden="true"]{transform:translateX(100%)!important;}
.drawer:not(.open) .drawer-item{pointer-events:none;}
.drawer[aria-hidden="true"] .drawer-item{pointer-events:none!important;}
.drawer.open .drawer-item{pointer-events:auto;}
.drawer-header{padding:20px 20px 16px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;}
.drawer-title{font-size:15px;font-weight:800;color:#1a1a1a;}
.drawer-close{width:32px;height:32px;border:none;background:#f5f5f5;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#555;}
.drawer-section{padding:13px 20px 6px;font-size:10px;font-weight:850;color:#6f8580;text-transform:uppercase;letter-spacing:.08em;}
.drawer-item{display:flex;align-items:center;gap:12px;padding:12px 20px;font-size:14px;font-weight:600;color:#1a1a1a;cursor:pointer;border:none;background:none;width:100%;text-align:left;text-decoration:none;}
.drawer-item:active{background:#f5f5f5;}
.drawer-item-icon{font-size:20px;width:28px;text-align:center;flex-shrink:0;}
.drawer-item-sub{font-size:11px;color:#aaa;font-weight:400;display:block;margin-top:1px;}
.drawer-item-feedback .drawer-item-sub{color:#73867d;}
.drawer-item-external{margin-left:auto;font-size:12px;color:#a7b0ab;flex-shrink:0;}
.drawer-item.evidence-bridge{background:none;border-radius:0;margin:0;padding:12px 20px;width:100%;box-sizing:border-box;}
.drawer-item.evidence-bridge .drawer-item-icon{font-size:22px;}
.drawer-item-danger{color:#b42318;}
.drawer-item-danger .drawer-item-sub{color:#d27a72;}
.drawer-divider{height:1px;background:#eef2f2;margin:9px 20px 2px;}
/* =============================================
   タブバー
   ============================================= */
.tab-bar{display:flex;background:var(--color-surface);border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;margin-bottom:14px;}
.tab{flex:1;min-width:0;padding:11px 0;font-size:14px;font-weight:600;background:#fff;border:none;cursor:pointer;color:#999;transition:all .15s;white-space:nowrap;}
.tab.active{background:var(--color-primary);color:#fff;}

/* =============================================
   セクション
   ============================================= */
.sec-title{font-size:11px;font-weight:600;color:#888;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;}
/* 今日の指示カード */
.directive-card{background:linear-gradient(135deg,#f0faf6,#eef4ff);border:1px solid #c8e6da;border-radius:14px;padding:14px 16px;margin-bottom:12px;}
.directive-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.directive-title{font-size:11px;font-weight:700;color:#0B6F68;letter-spacing:.08em;text-transform:uppercase;}
.directive-intensity{font-size:15px;font-weight:800;color:#1a1a1a;}
.directive-intensity-badge{display:inline-block;padding:3px 12px;border-radius:20px;font-size:12px;font-weight:700;color:#fff;margin-left:8px;vertical-align:middle;}
.directive-parts{font-size:14px;font-weight:700;color:#1a1a1a;margin-bottom:8px;}
.directive-parts-label{font-size:11px;color:#888;font-weight:500;margin-right:4px;}
.directive-reasons{list-style:none;padding:0;margin:0 0 8px;}
.directive-reasons li{font-size:12px;color:#555;line-height:1.8;padding-left:2px;}
.directive-warning{font-size:12px;color:#92400E;background:#FEF3C7;border-radius:8px;padding:6px 10px;margin-top:4px;}
.field-group{margin-bottom:12px;}
.field-group:last-child{margin-bottom:0;}
.field-label{font-size:13px;color:#555;margin-bottom:5px;display:block;}
.field-row{display:flex;align-items:center;gap:8px;}
.field-row input{flex:1;}
.field-unit{font-size:13px;color:#888;white-space:nowrap;flex-shrink:0;}
.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.col-label{font-size:11px;color:#999;text-align:center;margin-top:3px;}
.hr-hint{font-size:12px;color:#888;background:#f8f8f8;border-radius:8px;padding:10px 12px;margin-top:8px;line-height:1.7;border:1px solid #eee;}
/* 疲労スコアUI */
.recovery-score-wrap{background:#f8f8f8;border-radius:10px;padding:12px 14px;margin-top:12px;border:1px solid #eee;}
/* 部位別回復ダッシュボード */
.part-recovery-wrap{margin-top:10px;}
.part-recovery-title{font-size:11px;font-weight:700;color:#888;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;}
.part-recovery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;}
.part-chip{border-radius:8px;padding:5px 4px;text-align:center;border:1px solid transparent;cursor:default;}
.part-chip-name{font-size:10px;font-weight:700;display:block;margin-bottom:2px;}
.part-chip-state{font-size:9px;display:block;opacity:.8;}
.part-chip.good{background:#f0faf6;border-color:#0B6F68;color:#0a5c3f;}
.part-chip.normal{background:#eef4ff;border-color:#378ADD;color:#1a3d6e;}
.part-chip.tired{background:#fffbec;border-color:#F59E0B;color:#7a4500;}
.part-chip.fatigue{background:#fff0f0;border-color:#EF6363;color:#7a0000;}
.recovery-score-row{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.recovery-score-circle{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;color:#fff;flex-shrink:0;}
.recovery-score-info{flex:1;}
.recovery-score-label{font-size:11px;color:#aaa;font-weight:600;margin-bottom:2px;}
.recovery-score-msg{font-size:14px;font-weight:700;color:#1a1a1a;}
.recovery-score-bar-wrap{height:6px;background:#e8e8e8;border-radius:3px;margin-bottom:8px;overflow:hidden;}
.recovery-score-bar{height:100%;border-radius:3px;transition:width .4s;}
.recovery-score-reasons{font-size:12px;color:#666;line-height:1.8;}

/* =============================================
   日付・店舗
   ============================================= */
.date-row{display:flex;align-items:center;gap:8px;}
.date-display{flex:1;font-size:15px;background:#f8f8f8;border:1px solid #e8e8e8;border-radius:8px;padding:10px 12px;color:#1a1a1a;}
.btn-auto{padding:10px 14px;white-space:nowrap;width:auto;flex-shrink:0;background:#f0faf6;border-color:#0B6F68;color:#0B6F68;font-weight:500;}
.gym-input-row{display:flex;gap:6px;flex-wrap:wrap;}
.gym-input-row input{flex:1;min-width:120px;}
.gym-btn{white-space:nowrap;width:auto;flex-shrink:0;font-size:13px;padding:10px 11px;}
.gym-btn-last{background:#fff9ec;border-color:#BA7517;color:#BA7517;font-weight:500;}
.gym-btn-last.done{background:#f0faf6;border-color:#0B6F68;color:#0B6F68;}
.gym-btn-history{background:#f5f5f5;border-color:#d0d0d0;color:#555;}
.gym-hint{font-size:12px;color:#555;padding:6px 10px;background:#f8f8f8;border-radius:8px;margin-top:6px;display:none;border:1px solid #eee;}
.gym-dropdown{background:#fff;border:1px solid var(--color-border-strong,#d0d0d0);border-radius:12px;margin-top:6px;overflow:hidden;display:none;box-shadow:0 6px 18px rgba(15,23,42,.08);max-height:min(40vh,300px);overflow-y:auto;}
.gym-dropdown-item{display:flex;align-items:center;width:100%;min-height:42px;padding:10px 13px;font-size:14px;cursor:pointer;border:0;border-bottom:1px solid #f0f0f0;background:#fff;text-align:left;color:inherit;}
.gym-dropdown-item:last-child{border-bottom:none;}
.gym-dropdown-item:active{background:#f5f5f5;}
.gym-empty{padding:10px 14px;font-size:13px;color:#aaa;}
.location-suggestion-item{line-height:1.35;}
.location-suggestion-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--color-text,#1a1a1a);}
.location-suggestion-meta,.location-suggestion-exercises,.location-suggestion-actions{display:none;}

/* =============================================
   チップ
   ============================================= */
.chip-group{display:flex;flex-wrap:wrap;gap:8px;}
.chip{padding:7px 14px;border-radius:20px;border:1px solid #d0d0d0;background:#fff;font-size:14px;color:#666;cursor:pointer;user-select:none;touch-action:manipulation;width:auto;transition:all .15s;}
.chip.active{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.chip.active-blue{background:#378ADD;border-color:#378ADD;color:#fff;}
.chip.legacy-part-chip{border-style:dashed;background:#f8fbfa;color:#7b8b90;}
.chip.legacy-part-chip::after{content:'旧';font-size:10px;font-weight:800;margin-left:5px;color:#9aa8ad;}

/* =============================================
   種目ブロック
   ============================================= */
.ex-block{position:relative;border:1px solid #e8e8e8;border-radius:10px;padding:12px;margin-bottom:10px;background:#fafafa;}
.ex-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap;}
.ex-name-wrap{flex:1;min-width:140px;position:relative;}
.ex-name-input{width:100%;font-size:15px;font-weight:600;background:#fff;}
.ex-suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #d0d0d0;border-radius:8px;z-index:100;max-height:200px;overflow-y:auto;display:none;box-shadow:0 4px 16px rgba(0,0,0,.10);}
.ex-suggest-item,.ex-search-item{padding:10px 14px;font-size:14px;cursor:pointer;border-bottom:1px solid #f0f0f0;}
.ex-suggest-item:last-child,.ex-search-item:last-child{border-bottom:none;}
.ex-suggest-item:active,.ex-search-item:active{background:#f5f5f5;}
.ex-suggest-item mark,.ex-search-item mark{background:none;color:#0B6F68;font-weight:600;}
.ex-search-panel{background:#fff;border:1px solid #d0d0d0;border-radius:10px;padding:12px;margin-bottom:8px;display:none;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.ex-search-panel-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.ex-search-panel-head input{flex:1;font-size:15px;}
.ex-search-panel-head button{width:auto;padding:8px 12px;font-size:13px;}
.ex-search-list{max-height:200px;overflow-y:auto;}
.ex-search-empty,.ex-suggest-empty{padding:10px 14px;font-size:13px;color:#aaa;}
.ex-search-count{font-size:11px;color:#aaa;margin-bottom:6px;}
.ex-head-btns{display:flex;gap:4px;align-items:center;flex-shrink:0;}
.ex-del-btn{background:none;border:none;color:#ccc;font-size:22px;line-height:1;padding:4px 6px;width:auto;}
.ex-del-card-btn{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;border-radius:999px;border:1px solid #ead8d8;background:#fffafa;color:#b66b6b;font-size:20px;font-weight:800;line-height:1;box-shadow:0 4px 12px rgba(100,30,30,.06);}
.ex-del-card-btn:active{background:var(--color-risk-soft,#fff0f0);border-color:#e6b2b2;color:var(--color-risk,#b42318);}
.search-ex-btn{font-size:12px;padding:7px 10px;background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);white-space:nowrap;width:auto;font-weight:700;border-radius:var(--radius-sm);}
.inherit-btn{font-size:12px;padding:7px 10px;background:var(--color-warning-soft);border-color:#BA7517;color:#BA7517;white-space:nowrap;width:auto;font-weight:700;border-radius:var(--radius-sm);}
.inherit-btn.done{background:#f0faf6;border-color:#0B6F68;color:#0B6F68;}
.inherit-hint{font-size:12px;color:#555;margin-bottom:8px;padding:6px 10px;background:#f8f8f8;border-radius:8px;display:none;line-height:1.5;border:1px solid #eee;}
.sub-label{font-size:12px;color:#888;margin-bottom:5px;display:block;font-weight:500;}
/* ウォームアップ提案 */
.warmup-suggest{background:#fff9ec;border:1px solid #f0d99a;border-radius:8px;padding:8px 10px;margin-bottom:8px;display:none;}
.warmup-suggest-title{font-size:11px;font-weight:700;color:#92400E;margin-bottom:5px;display:flex;align-items:center;justify-content:space-between;}
.warmup-suggest-list{font-size:12px;color:#555;line-height:1.9;}
.warmup-apply-btn{font-size:11px;padding:3px 10px;background:#BA7517;border:none;color:#fff;border-radius:8px;cursor:pointer;width:auto;font-weight:600;}

/* =============================================
   セットカード
   ============================================= */
.set-card{background:#fff;border-radius:8px;padding:10px 12px;margin-bottom:8px;border:1px solid #eee;}
.set-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.set-card-head-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.set-num{font-size:13px;font-weight:600;color:#888;}
.side-toggle{display:flex;border:1px solid #d0d0d0;border-radius:20px;overflow:hidden;flex-shrink:0;min-height:36px;background:#fff;}
.side-btn{font-size:12px;padding:7px 12px;border:none;background:transparent;color:#888;cursor:pointer;width:auto;touch-action:manipulation;line-height:1.4;font-weight:600;min-width:48px;}
.side-btn.active-side{background:#378ADD;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);}
.support-toggle{display:flex;border:1px solid #d0d0d0;border-radius:20px;overflow:hidden;flex-shrink:0;margin-left:2px;min-height:36px;background:#fff;}
.support-btn{font-size:12px;padding:7px 12px;border:none;background:transparent;color:#888;cursor:pointer;width:auto;touch-action:manipulation;line-height:1.4;font-weight:600;min-width:64px;}
.support-btn.active-support{background:#8B5CF6;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);}
.prev-set-btn{font-size:13px;padding:10px 12px;background:var(--color-accent-soft);border:1.5px solid var(--color-accent);color:var(--color-accent);width:100%;border-radius:var(--radius-sm);font-weight:700;text-align:center;cursor:pointer;}
.prev-set-btn.flashed{background:#f0faf6;border-color:#0B6F68;color:#0B6F68;}
.set-del{background:none;border:none;color:#ccc;font-size:18px;padding:2px 4px;width:auto;}
.set-inputs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:6px;}
.set-inputs input{font-size:14px;padding:8px 10px;text-align:center;}
.inp-label,.kg-label{font-size:11px;color:#aaa;text-align:center;margin-top:2px;}
.advanced-set-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:2px 4px 8px;}
.advanced-set-field{position:relative;}
.advanced-set-field input{font-size:16px;padding:7px 7px;min-height:36px;text-align:center;}
.advanced-set-label{display:flex;align-items:center;justify-content:center;gap:4px;font-size:10px;color:#888;line-height:1.2;margin:2px 0 4px;}
.advanced-help-btn{width:17px;height:17px;min-width:17px;padding:0;border-radius:50%;border:1px solid #d8d8d8;background:#f6f6f6;color:#7a7a7a;font-size:10px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.advanced-help-btn:active{background:#ececec;}
.advanced-help-popover{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:35;background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:8px 10px;box-shadow:0 4px 12px rgba(0,0,0,.08);font-size:11px;color:#555;line-height:1.6;text-align:left;}
.advanced-help-popover.open{display:block;}
.advanced-help-close{margin-top:6px;padding:4px 9px;font-size:10px;background:#f5f5f5;border:1px solid #ddd;color:#666;border-radius:999px;width:auto;}
.add-set-btn{width:100%;margin-top:6px;padding:10px;font-size:14px;background:var(--color-surface-soft);border-color:var(--color-border);color:var(--color-muted-strong);}
.add-ex-btn{width:100%;margin-top:4px;padding:12px;font-size:15px;background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);font-weight:600;}
.add-exercise-btn{margin-top:16px;padding:14px 12px;border:1.5px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-primary-soft);color:#0F6E56;font-weight:800;box-shadow:0 2px 8px rgba(11,111,104,.08);}
/* =============================================
   折りたたみカード
   ============================================= */
.collapsible-card{background:#fff;border-radius:12px;border:1px solid #e8e8e8;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden;}
.collapsible-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:none;border:none;cursor:pointer;text-align:left;font-size:14px;font-weight:600;color:#555;}
.collapsible-toggle:active{background:#f8f8f8;}
.collapsible-toggle-left{display:flex;align-items:center;gap:8px;}
.collapsible-toggle-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;}
.collapsible-title{display:block;color:var(--color-text);font-size:14px;font-weight:900;line-height:1.3;}
.collapsible-summary{display:block;color:var(--color-muted);font-size:12px;font-weight:800;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.collapsible-icon{font-size:12px;color:#0B6F68;background:#f0faf6;border:1px solid #0B6F68;border-radius:12px;padding:2px 10px;white-space:nowrap;}
.collapsible-arrow{font-size:14px;color:#aaa;transition:transform .2s,background .15s,color .15s;flex-shrink:0;}
.collapsible-arrow.open{transform:rotate(180deg);}
.collapsible-body{padding:0 16px 14px;}
.collapsible-has-value .collapsible-icon{background:#E1F5EE;color:#0F6E56;border-color:#0F6E56;}
.collapsible-has-value .collapsible-summary{color:var(--color-primary-dark);}

/* =============================================
   種目ブロック改善
   ============================================= */
.ex-block{border:1.5px solid #d8e8ff;border-radius:12px;padding:12px;margin-bottom:12px;background:#fff;box-shadow:0 2px 6px rgba(55,138,221,.08);}
.ex-name-input{width:100%;font-size:16px;font-weight:700;background:#f0f4ff;border:1.5px solid #c5d8ff;border-radius:8px;padding:10px 12px;color:#1a1a1a;}
.ex-name-input:focus{background:#fff;border-color:#378ADD;box-shadow:0 0 0 3px rgba(55,138,221,.15);}
/* 前回プレビュー */
.ex-prev-preview{font-size:12px;color:#BA7517;background:#fff9ec;border:1px solid #f0d99a;border-radius:8px;padding:6px 10px;margin-bottom:8px;line-height:1.6;display:none;}
.ex-prev-preview strong{color:#7a4f00;}
/* プログレッション提案カード */
.prog-card{font-size:12px;border-radius:8px;padding:7px 10px;margin-bottom:8px;line-height:1.6;border:1px solid transparent;}
.prog-card.up{background:#f0faf6;border-color:#0B6F68;color:#0a5c3f;}
.prog-card.hold{background:#eef4ff;border-color:#378ADD;color:#1a3d6e;}
.prog-card.rep{background:#f4f0ff;border-color:#8B5CF6;color:#3b1f7a;}
.prog-card.deload{background:#fff7ec;border-color:#F59E0B;color:#7a4500;}
.prog-card.nodata{background:#f8f8f8;border-color:#d0d0d0;color:#aaa;}
.prog-card-label{font-weight:700;margin-right:4px;}
.prog-card-reason{font-size:11px;opacity:.75;display:block;margin-top:1px;}
/* セット行テーブル化 */
.set-table{width:100%;border-collapse:collapse;margin-bottom:6px;}
.set-table-head{display:grid;grid-template-columns:32px 1fr 1fr 1fr auto;gap:4px;padding:0 4px 4px;border-bottom:1px solid #f0f0f0;margin-bottom:4px;}
.set-table-head-cell{font-size:10px;font-weight:600;color:#aaa;text-align:center;}
.set-row{display:grid;grid-template-columns:32px 1fr 1fr 1fr auto;gap:5px;align-items:center;padding:6px;border-radius:8px;background:#fafafa;margin-bottom:6px;}
.set-row:last-child{margin-bottom:0;}
.set-row-num{font-size:12px;font-weight:700;color:#aaa;text-align:center;}
.set-row input{font-size:16px;padding:9px 6px;min-height:42px;text-align:center;border-radius:8px;border:1px solid #dcdcdc;background:#fff;font-weight:700;}
.set-row input:focus{border-color:#0B6F68;box-shadow:0 0 0 2px rgba(11,111,104,.1);}
.set-row-del{background:none;border:none;color:#ddd;font-size:16px;padding:6px 7px;min-width:34px;min-height:34px;width:auto;cursor:pointer;text-align:center;}
.set-row-del:active{color:#e24b4b;}
/* クイック重量補助ボタン */
.weight-quick-btns{display:flex;gap:3px;padding:0 4px 4px;}
.weight-quick-btn{flex:1;font-size:11px;padding:5px 2px;border-radius:6px;border:1px solid #d0d0d0;background:#f5f5f5;color:#555;cursor:pointer;width:auto;font-weight:600;text-align:center;}
.weight-quick-btn:active{background:#e0e0e0;}
.weight-quick-btn.plus{border-color:#0B6F68;color:#0B6F68;background:#f0faf6;}
.weight-quick-btn.minus{border-color:#EF6363;color:#EF6363;background:#fff5f5;}
/* 最終セット追加ボタン */
.add-next-set-btn{width:100%;padding:12px;font-size:14px;min-height:46px;background:var(--color-accent-soft);border:1px dashed var(--color-accent);color:var(--color-accent);border-radius:10px;margin-top:8px;font-weight:800;cursor:pointer;}
.add-set-btn{background:var(--color-accent-soft);border:1.5px solid var(--color-accent);color:#1f5f9e;border-radius:var(--radius-md);font-weight:850;letter-spacing:.01em;box-shadow:var(--shadow-soft);}
.intent-block .add-set-btn{margin-top:12px;margin-bottom:2px;}
.add-set-btn:active{background:#dcecff;opacity:1;transform:translateY(1px);}
/* レストタイマー
   下部固定UIの優先順位:
   1. レストタイマー起動中はタイマーを最優先で下部固定
   2. 通常入力画面は .app の下余白で最後の入力/保存ボタンを守る
   3. 実行モードは footer の下余白で「完了」操作をタイマーの上に逃がす
*/
.rest-timer-bar{background:#1a2d3a;border-radius:14px;padding:14px 16px;margin-bottom:12px;display:none;}
.rest-timer-bar.visible{display:block;}
.rest-timer-bar.fixed{
  position:fixed;
  left:50%;
  right:auto;
  bottom:calc(env(safe-area-inset-bottom,0px) + 8px);
  width:calc(100% - 24px);
  max-width:600px;
  transform:translateX(-50%);
  z-index:620;
  margin:0;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
}
body.has-rest-timer .app{padding-bottom:calc(var(--rest-timer-reserve) + env(safe-area-inset-bottom,0px));}
body.has-rest-timer .exec-body{padding-bottom:calc(var(--rest-timer-reserve) - 20px);}
body.has-rest-timer .exec-footer{padding-bottom:calc(var(--rest-timer-reserve) - 36px + env(safe-area-inset-bottom,0px));}
.rest-timer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.rest-timer-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.06em;}
.rest-timer-hint{font-size:11px;color:rgba(255,255,255,.4);}
.rest-timer-display{font-size:44px;font-weight:900;color:#fff;text-align:center;line-height:1;margin-bottom:12px;letter-spacing:-.02em;transition:color .3s;}
.rest-timer-display.warning{color:#F59E0B;}
.rest-timer-display.done{color:#EF6363;animation:timer-done-pulse .6s infinite alternate;}
@keyframes timer-done-pulse{from{opacity:1;}to{opacity:.5;}}
.rest-timer-presets{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.rest-timer-preset{flex:1;min-width:0;padding:7px 4px;font-size:12px;font-weight:700;border-radius:8px;border:1.5px solid rgba(255,255,255,.2);background:transparent;color:rgba(255,255,255,.7);cursor:pointer;text-align:center;white-space:nowrap;}
.rest-timer-preset.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}
.rest-timer-controls{display:flex;gap:8px;}
.rest-timer-btn{flex:1;padding:10px;font-size:14px;font-weight:700;border-radius:10px;cursor:pointer;border:none;}
.rest-timer-btn.start{background:var(--color-primary);color:#fff;}
.rest-timer-btn.stop{background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.2);}
.rest-timer-btn.reset{background:transparent;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.15);}
/* セット行のタイマー起動ボタン */
.set-timer-btn{font-size:12px;padding:7px 10px;min-height:34px;background:rgba(55,138,221,.12);border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-sm);cursor:pointer;width:auto;white-space:nowrap;margin-top:4px;font-weight:700;}
.set-side-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 4px 4px;}
.set-side-row .set-timer-btn{margin-top:0;margin-left:auto;}
/* 種目恒常メモ */
.ex-note-wrap{margin-top:8px;border-top:1px solid #f0f0f0;padding-top:8px;}
.ex-note-label{font-size:11px;font-weight:700;color:#aaa;display:flex;align-items:center;gap:4px;margin-bottom:4px;}
.ex-note-saving{font-size:10px;color:#0B6F68;margin-left:auto;}
.ex-note-input{width:100%;font-size:12px;color:#555;background:#fafafa;border:1px solid #e8e8e8;border-radius:7px;padding:7px 10px;resize:none;min-height:52px;box-sizing:border-box;line-height:1.6;}
.ex-note-input:focus{outline:none;border-color:#0B6F68;background:#fff;}
.set-row input.flashed{border-color:#0B6F68;background:#f0faf6;transition:background .3s,border-color .3s;}
.set-memo{width:100%;font-size:13px;padding:6px 10px;margin-bottom:4px;border-radius:6px;border:1px solid #eee;background:#fff;}
.set-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px;}
.intent-blocks-wrap{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.intent-block{border:1px solid #e8edf6;border-radius:10px;padding:10px;background:#fbfcfe;}
.intent-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.intent-block-title{font-size:12px;font-weight:800;color:#1a1a1a;}
.intent-block-meta{font-size:11px;color:#7d8899;margin-top:2px;}
.intent-block-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.intent-block-merge-btn{width:auto;padding:5px 9px;border-radius:999px;border:1px solid #d8e2ef;background:#fff;color:#6f7f95;font-size:11px;font-weight:700;cursor:pointer;}
.intent-block-merge-btn:active{background:#eef4ff;color:#378ADD;}
.intent-block-config{background:#f5f8fc;border:1px solid #e9eef5;border-radius:8px;padding:8px 8px 6px;margin-bottom:8px;}
.intent-block-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:6px;}
.intent-block-field{margin-bottom:0;}
.intent-block-label{font-size:10px;color:#96a0ae;display:flex;align-items:center;gap:4px;margin-bottom:4px;}
.intent-block-select,.intent-block-input,.intent-block-note-input{font-size:12px;padding:7px 9px;min-height:34px;border-radius:7px;border:1px solid #dde5f0;background:#fff;}
.intent-block-field-help{position:relative;}
.intent-block-help-btn{width:16px;height:16px;min-width:16px;font-size:9px;}
.intent-block-help-popover{left:auto;right:0;top:calc(100% + 4px);min-width:220px;max-width:280px;}
.intent-block-note-row{display:flex;justify-content:flex-start;margin-bottom:4px;}
.intent-block-note-toggle{padding:4px 10px;font-size:11px;background:#fff;border:1px dashed #c8d4e6;color:#708099;border-radius:999px;width:auto;}
.intent-block-note{margin-bottom:0;}
.intent-blocks-wrap + .add-block-btn{margin-top:14px;}
.add-block-btn{display:block;width:calc(100% - 16px);margin:14px auto 18px;padding:10px 12px;min-height:42px;background:#fbfdff;border:1px dashed #b8cce8;color:#5e7fa7;border-radius:10px;font-size:13px;font-weight:700;box-shadow:none;}
.add-block-btn:active{background:#f2f7ff;color:#378ADD;}
.add-block-action-wrap{position:relative;display:flex;align-items:center;gap:8px;margin:14px 8px 18px;}
.add-block-action-wrap .add-block-btn{margin:0;flex:1;width:auto;}
.add-block-help-wrap{position:relative;flex:0 0 auto;}
.add-block-help-btn{width:28px;height:28px;min-width:28px;font-size:12px;background:#fff;border-color:#d8e2ef;color:#6f7f95;}
.add-block-help-popover{left:auto;right:0;top:calc(100% + 6px);min-width:240px;max-width:min(310px,72vw);}
.block-split-control{display:flex;align-items:center;gap:8px;margin:7px 4px 9px;}
.block-split-control:before,.block-split-control:after{content:"";height:1px;border-top:1px dashed #d8e2ef;flex:1;}
.block-split-btn{width:auto;padding:5px 11px;border-radius:999px;border:1px dashed #9ab8df;background:#f7fbff;color:#378ADD;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap;}
.block-split-btn:active{background:#eef4ff;}

html.app-settings-open,
body.app-settings-open{overscroll-behavior:none;}
.block-intent-overlay{position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:330;display:none;align-items:flex-end;justify-content:center;padding:18px 12px calc(18px + env(safe-area-inset-bottom));box-sizing:border-box;backdrop-filter:blur(8px);overscroll-behavior:contain;touch-action:none;}
.block-intent-overlay.open{display:flex;}
.block-intent-sheet{width:min(720px,100%);max-height:min(82vh,760px);overflow:hidden;border:1px solid rgba(11,111,104,.16);border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 24px 64px rgba(15,23,42,.22);display:flex;flex-direction:column;touch-action:auto;}
.block-intent-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 18px 14px;border-bottom:1px solid rgba(11,111,104,.12);background:linear-gradient(135deg,rgba(227,243,241,.88),rgba(255,255,255,.92));}
.block-intent-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary,#0B6F68);margin-bottom:4px;}
.block-intent-title{font-size:18px;font-weight:900;color:#10201f;}
.block-intent-sub{font-size:12px;color:#64748b;line-height:1.55;margin-top:4px;}
.block-intent-body{overflow:auto;min-height:0;padding:14px 16px 18px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.app-settings-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;padding:6px;border:1px solid rgba(11,111,104,.12);border-radius:20px;background:linear-gradient(135deg,rgba(227,243,241,.62),rgba(255,255,255,.78));}
.app-settings-tabs button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:62px;padding:11px 34px 11px 12px;border:1px solid rgba(15,23,42,.07);border-radius:15px;background:rgba(255,255,255,.82);color:#52616f;text-align:left;box-shadow:0 8px 18px rgba(15,23,42,.045);}
.app-settings-tabs button span{display:block;min-width:0;max-width:100%;font-size:13px;font-weight:900;color:inherit;overflow-wrap:anywhere;}
.app-settings-tabs button small{display:block;min-width:0;max-width:100%;font-size:10px;line-height:1.35;color:#81909f;font-weight:700;overflow-wrap:anywhere;}
.app-settings-tabs button::after{content:'›';position:absolute;right:12px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#f3f8f7;border:1px solid rgba(11,111,104,.12);color:#0B6F68;font-size:16px;font-weight:950;line-height:1;}
.app-settings-tabs button.active{background:linear-gradient(135deg,#e3f3f1,#f7fffd);border-color:rgba(11,111,104,.3);color:#0B6F68;box-shadow:0 12px 26px rgba(11,111,104,.13);}
.app-settings-tabs button.active::after{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.app-settings-tabs button.active small{color:#3f706c;}
.app-settings-subtabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 12px;padding:5px;border:1px solid rgba(11,111,104,.1);border-radius:18px;background:rgba(248,250,252,.76);}
.app-settings-subtabs button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:52px;padding:9px 28px 9px 10px;border:1px solid rgba(15,23,42,.06);border-radius:14px;background:rgba(255,255,255,.74);color:#64748b;text-align:left;box-shadow:0 6px 14px rgba(15,23,42,.035);}
.app-settings-subtabs button span{display:block;min-width:0;max-width:100%;font-size:12px;font-weight:950;color:inherit;overflow-wrap:anywhere;}
.app-settings-subtabs button small{display:block;min-width:0;max-width:100%;font-size:9px;line-height:1.35;color:#8a97a4;font-weight:800;overflow-wrap:anywhere;}
.app-settings-subtabs button::after{content:'›';position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#f3f8f7;border:1px solid rgba(11,111,104,.1);color:#0B6F68;font-size:13px;font-weight:950;line-height:1;}
.app-settings-subtabs button.active{background:linear-gradient(135deg,#e3f3f1,#fbfffe);border-color:rgba(11,111,104,.28);color:#0B6F68;box-shadow:0 9px 20px rgba(11,111,104,.11);}
.app-settings-subtabs button.active::after{content:'✓';background:#0B6F68;border-color:#0B6F68;color:#fff;font-size:10px;}
.app-settings-subtabs button.active small{color:#477672;}
.template-manager-type-tabs{grid-template-columns:repeat(2,minmax(0,1fr));}
.app-settings-category-lead{margin-bottom:10px;}
.app-settings-section{min-width:0;}
.template-manager-lead{border-color:rgba(11,111,104,.16);background:linear-gradient(135deg,rgba(227,243,241,.72),rgba(255,255,255,.96));}
.template-manager-note{display:inline-flex;align-items:center;margin-top:8px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid rgba(11,111,104,.12);color:#4d6470;font-size:11px;font-weight:850;line-height:1.45;}
.template-manager-list{display:grid;gap:10px;min-width:0;}
.template-manager-loading,.template-manager-empty{padding:18px;border:1px dashed rgba(11,111,104,.22);border-radius:18px;background:rgba(248,250,252,.82);color:#64748b;font-size:13px;font-weight:800;line-height:1.65;text-align:center;}
.template-manager-empty strong{display:block;color:#10202b;font-size:14px;margin-bottom:4px;}
.template-manager-empty span{display:block;color:#64748b;}
.template-manager-card{min-width:0;padding:13px;border:1px solid rgba(11,111,104,.14);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 12px 28px rgba(15,23,42,.07);}
.template-manager-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;}
.template-manager-card-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;}
.template-manager-card-main strong{font-size:15px;font-weight:950;color:#10202b;line-height:1.35;word-break:break-word;}
.template-manager-card-main small{font-size:11px;font-weight:800;color:#758493;line-height:1.45;}
.template-manager-actions{display:grid;grid-template-columns:auto auto auto;align-items:start;justify-content:end;gap:6px;flex:0 0 auto;position:relative;}
.template-manager-actions button,.template-manager-more summary{width:auto;min-height:34px;padding:7px 10px;border-radius:999px;border:1px solid rgba(11,111,104,.16);background:#f4f8f7;color:#0B6F68;font-size:11px;font-weight:900;box-shadow:none;cursor:pointer;box-sizing:border-box;list-style:none;}
.template-manager-actions button.template-manager-primary-action{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.template-manager-actions button.danger{background:var(--color-risk-soft);border-color:rgba(226,75,75,.24);color:#b42318;}
.template-manager-more{position:relative;margin:0;}
.template-manager-more summary::-webkit-details-marker{display:none;}
.template-manager-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:25;display:grid;gap:6px;min-width:138px;padding:7px;border:1px solid rgba(15,23,42,.1);border-radius:14px;background:rgba(255,255,255,.98);box-shadow:0 16px 34px rgba(15,23,42,.14);}
.template-manager-more-menu button{width:100%;justify-content:center;background:#fff;}
.template-manager-meta{display:grid;gap:4px;margin-top:10px;padding:9px 10px;border-radius:13px;background:#f8fafc;color:#52616f;font-size:12px;font-weight:800;line-height:1.55;}
.template-manager-meta span{color:#0B6F68;font-size:10px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;}
.template-manager-meta strong{color:#263542;font-size:12px;font-weight:950;}
.template-manager-meta em{color:#64748b;font-style:normal;font-size:11px;font-weight:800;}
.template-manager-details{margin-top:10px;border:1px solid rgba(11,111,104,.12);border-radius:14px;background:rgba(227,243,241,.26);overflow:hidden;}
.template-manager-details summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;cursor:pointer;color:#0B6F68;font-size:12px;font-weight:950;list-style:none;}
.template-manager-details summary::-webkit-details-marker{display:none;}
.template-manager-details summary::after{content:'∨';display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.8);border:1px solid rgba(11,111,104,.12);color:#0B6F68;font-weight:950;}
.template-manager-details[open] summary::after{content:'∧';}
.template-manager-content{display:grid;gap:10px;padding:0 10px 10px;}
.template-manager-content-empty{padding:10px;color:#64748b;font-size:12px;font-weight:800;}
.template-manager-exercise{padding:10px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.07);}
.template-manager-ex-title{font-size:13px;font-weight:950;color:#10202b;line-height:1.4;margin-bottom:8px;}
.template-manager-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0;}
.template-manager-summary-grid div{min-width:0;padding:7px 8px;border-radius:12px;background:#f8fafc;border:1px solid rgba(15,23,42,.05);}
.template-manager-summary-grid dt{font-size:10px;font-weight:900;color:#7a8794;margin-bottom:2px;}
.template-manager-summary-grid dd{margin:0;font-size:11px;font-weight:850;color:#263542;line-height:1.45;word-break:break-word;}
.template-manager-blocks{display:grid;gap:7px;margin-top:8px;}
.template-manager-block{margin-top:8px;padding:9px;border-radius:13px;background:rgba(227,243,241,.24);border:1px solid rgba(11,111,104,.1);}
.template-manager-block-title{font-size:11px;font-weight:950;color:#0B6F68;margin-bottom:7px;text-transform:uppercase;letter-spacing:.04em;}
.template-manager-plan-note{margin-top:8px;padding:7px 9px;border-radius:12px;background:#eef4ff;color:#3563a8;font-size:10px;font-weight:850;line-height:1.5;}
.template-manager-plan-sets{display:grid;gap:5px;margin-top:8px;}
.template-manager-plan-sets div{display:grid;grid-template-columns:28px minmax(54px,.8fr) repeat(3,minmax(0,1fr));gap:5px;align-items:center;padding:6px 7px;border-radius:11px;background:rgba(255,255,255,.82);border:1px solid rgba(15,23,42,.06);font-size:10px;font-weight:850;color:#344452;}
.template-manager-plan-sets div span:first-child{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#e3f3f1;color:#0B6F68;font-weight:950;}
.template-manager-plan-sets small{color:#64748b;font-size:10px;font-weight:850;}
.template-edit-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:13px;border:1px solid rgba(11,111,104,.18);border-radius:18px;background:linear-gradient(135deg,rgba(227,243,241,.88),rgba(255,255,255,.95));box-shadow:0 12px 26px rgba(11,111,104,.08);}
.template-edit-banner div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0;}
.template-edit-banner strong{font-size:13px;font-weight:950;color:#0B6F68;}
.template-edit-banner span{font-size:15px;font-weight:950;color:#10202b;word-break:break-word;}
.template-edit-banner small{font-size:11px;font-weight:750;color:#60707d;line-height:1.45;}
.template-edit-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto;}
.template-edit-actions button{width:auto;min-height:38px;padding:8px 11px;border-radius:999px;font-size:12px;font-weight:950;box-shadow:none;}
.template-edit-save{background:#0B6F68;border:1px solid #0B6F68;color:#fff;}
.template-edit-cancel{background:#fff;border:1px solid rgba(15,23,42,.12);color:#52616f;}
.block-intent-lead{border:1px solid rgba(11,111,104,.12);border-radius:16px;background:#f7fbfa;padding:13px;margin-bottom:12px;}
.block-intent-lead strong{display:block;color:#123735;font-size:14px;margin-bottom:4px;}
.block-intent-lead p,.block-intent-footer p{margin:0;color:#64748b;font-size:12px;line-height:1.6;}
.block-intent-count{display:inline-flex;margin-top:9px;padding:5px 9px;border-radius:999px;background:#e3f3f1;color:#0B6F68;font-size:11px;font-weight:850;}
.block-intent-add{border:1px solid rgba(11,111,104,.12);border-radius:16px;background:#fff;padding:12px;margin-bottom:12px;}
.block-intent-add-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:9px;margin-bottom:10px;}
.block-intent-add-grid.compact{grid-template-columns:1fr 1.4fr;}
.block-intent-add label,.block-intent-field{display:flex;flex-direction:column;gap:4px;min-width:0;}
.block-intent-add span,.block-intent-field span{font-size:10px;color:#7a8a99;font-weight:850;}
.block-intent-add input,.block-intent-field input{width:100%;min-height:38px;border:1px solid #dce7e5;border-radius:11px;background:#fff;color:#10201f;font-size:13px;padding:8px 10px;box-sizing:border-box;}
.block-intent-primary-btn{min-height:40px;border-radius:999px;border:1px solid var(--color-primary,#0B6F68);background:var(--color-primary,#0B6F68);color:#fff;font-size:13px;font-weight:850;}
.block-intent-list{display:flex;flex-direction:column;gap:10px;}
.block-intent-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.04);}
.block-intent-row.is-hidden{background:#f8fafc;border-style:dashed;opacity:.78;}
.block-intent-row-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.block-intent-status,.block-intent-system,.block-intent-custom,.block-intent-used{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:850;}
.block-intent-status{background:#e3f3f1;color:#0B6F68;}
.block-intent-row.is-hidden .block-intent-status{background:#edf2f7;color:#718096;}
.block-intent-system{background:#f1f5f9;color:#475569;}
.block-intent-custom{background:#fff7ed;color:#9a3412;}
.block-intent-used{background:#eef4ff;color:#3563a8;}
.block-intent-row-main{min-width:0;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;}
.block-intent-row-top{grid-column:1/-1;}
.block-intent-preview{grid-column:1/-1;padding:10px 11px;border-radius:13px;background:#f7fbfa;border:1px solid rgba(11,111,104,.1);}
.block-intent-preview.compact{background:#fbfefd;}
.block-intent-preview strong{display:block;font-size:14px;color:#10201f;margin-bottom:3px;}
.block-intent-preview p{margin:0;color:#334155;font-size:12px;line-height:1.55;}
.block-intent-preview small,.block-intent-preview em{display:block;margin-top:4px;color:#64748b;font-size:11px;line-height:1.55;font-style:normal;}
.block-intent-preview em{color:#0B6F68;font-weight:800;}
.block-intent-row-actions{display:flex;flex-direction:column;gap:6px;align-self:stretch;min-width:74px;}
.block-intent-row-actions button,.block-intent-reset-btn{width:auto;min-height:32px;padding:6px 9px;border:1px solid #d6e3e1;border-radius:999px;background:#f8fbfa;color:#42526b;font-size:11px;font-weight:850;box-shadow:none;}
.block-intent-row-actions button:disabled{opacity:.42;}
.block-intent-row-actions button.danger{border-color:#f1c4c4;color:#b45353;background:#fff7f7;}
.block-intent-row-actions button.danger:disabled{color:#b0b8c3;border-color:#dde5ec;background:#f8fafc;}
.block-intent-footer{margin-top:13px;padding:12px;border-top:1px solid rgba(11,111,104,.1);}
.block-intent-reset-btn{margin-bottom:8px;background:#fff;color:#0B6F68;border-color:#b8d8d5;}

@media(max-width:520px){
  .block-intent-overlay{padding:10px 8px calc(10px + env(safe-area-inset-bottom));}
  .block-intent-sheet{max-height:88vh;border-radius:20px;}
  .block-intent-head{padding:15px 14px 12px;}
  .block-intent-body{padding:12px;}
  .app-settings-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:6px;}
  .app-settings-tabs button{min-height:58px;padding:9px 36px 9px 10px;}
  .app-settings-tabs button::after{right:10px;}
  .app-settings-subtabs{gap:6px;padding:5px;}
  .app-settings-subtabs button{min-height:50px;padding:8px 30px 8px 9px;}
  .app-settings-subtabs button::after{right:7px;}
  .app-settings-subtabs button small{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .template-manager-card-head,.template-edit-banner{flex-direction:column;align-items:stretch;}
  .template-manager-actions{display:grid;grid-template-columns:1fr 1fr 84px;width:100%;}
  .template-edit-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .template-manager-actions button,.template-manager-more summary,.template-edit-actions button{width:100%;}
  .template-manager-more-menu{right:0;min-width:126px;}
  .template-manager-summary-grid{grid-template-columns:1fr;}
  .template-manager-plan-sets div{grid-template-columns:24px 1fr 1fr;gap:5px;}
  .template-manager-plan-sets div span:nth-child(5){grid-column:2 / span 2;}
  .template-manager-note{align-items:flex-start;border-radius:14px;}
  .block-intent-add-grid,.block-intent-add-grid.compact,.block-intent-row,.block-intent-row-main{grid-template-columns:1fr;}
  .block-intent-row-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-width:0;}
  .block-intent-row-actions button{min-height:36px;padding:6px 5px;}
}


/* =============================================
   オートセーブ・ボタン
   ============================================= */
.autosave-bar{display:flex;align-items:center;gap:7px;font-size:12px;color:#aaa;margin-bottom:12px;min-height:20px;}
.autosave-dot{width:8px;height:8px;border-radius:50%;background:#d0d0d0;flex-shrink:0;transition:background .3s;}
.autosave-dot.saving{background:#EF9F27;}
.autosave-dot.saved{background:#0B6F68;}
.save-status-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:auto;
  max-width:100%;
  margin:-4px 0 10px;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(15,118,110,.16);
  background:rgba(240,250,246,.92);
  color:#0F6E56;
  font-size:12px;
  font-weight:900;
  line-height:1.35;
  box-shadow:0 8px 22px rgba(15,118,110,.08);
  transition:opacity .2s ease,transform .2s ease;
}
.save-status-chip::before{
  content:'✓';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:999px;
  background:#0B6F68;
  color:#fff;
  font-size:11px;
  font-weight:950;
  flex:0 0 auto;
}
.save-status-chip.saving{
  border-color:rgba(239,159,39,.22);
  background:rgba(255,247,232,.94);
  color:#8A5A0A;
}
.save-status-chip.saving::before{
  content:'…';
  background:#EF9F27;
}
.save-status-chip.error{
  border-color:rgba(214,69,69,.22);
  background:rgba(255,241,241,.94);
  color:#B94141;
}
.save-status-chip.error::before{
  content:'!';
  background:#D64545;
}
.save-status-chip.soft{
  opacity:.82;
}
.save-status-chip.hidden,
.save-error-banner.hidden{
  display:none!important;
}
.save-error-banner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin:0 0 12px;
  padding:12px;
  border:1px solid rgba(214,69,69,.22);
  border-radius:16px;
  background:rgba(255,241,241,.94);
  color:#913434;
  font-size:12px;
  line-height:1.55;
  box-shadow:0 10px 24px rgba(214,69,69,.08);
}
.save-error-banner strong,
.save-error-banner span{
  display:block;
}
.save-error-banner strong{
  margin-bottom:2px;
  font-size:13px;
  font-weight:950;
  color:#B94141;
}
.save-retry-btn{
  flex:0 0 auto;
  width:auto;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(185,65,65,.24);
  background:#fff;
  color:#B94141;
  font-size:12px;
  font-weight:950;
  box-shadow:none;
}
.save-flow-hint{font-size:12px;line-height:1.6;color:#6B7280;background:#f0faf6;border:1px solid #d7f0e5;border-radius:10px;padding:9px 11px;margin:4px 0 8px;text-align:center;}
.save-flow-hint.active{color:#0F6E56;border-color:#0B6F68;background:#e9f8f1;font-weight:700;}
.save-btn{width:100%;padding:15px;font-size:16px;font-weight:850;margin-bottom:8px;background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;border-radius:var(--radius-md);box-shadow:0 5px 14px rgba(11,111,104,.18);min-height:48px;}
.save-btn:active{background:#178a65;}
.save-btn.saved{background:#0F6E56;}
.save-btn.save-flow-highlight{animation:save-flow-pulse 1.1s ease-in-out 0s 3;box-shadow:0 0 0 4px rgba(11,111,104,.15),0 8px 20px rgba(11,111,104,.24);}
@keyframes save-flow-pulse{0%,100%{transform:translateY(0);}50%{transform:translateY(-1px);}}
/* SNS共有カードモーダル */
.share-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:320;display:none;align-items:flex-end;justify-content:center;}
.share-overlay.open{display:flex;}
.share-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .25s ease;}
.share-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #eee;flex-shrink:0;}
.share-title{font-size:16px;font-weight:700;}
.share-close{background:none;border:none;font-size:22px;color:#aaa;cursor:pointer;width:auto;padding:4px 8px;}
.share-body{overflow-y:auto;padding:16px 20px 32px;flex:1;}
.share-type-bar{display:flex;gap:8px;margin-bottom:16px;}
.share-type-btn{flex:1;padding:10px;font-size:13px;font-weight:600;border-radius:8px;border:1.5px solid #d0d0d0;background:#fff;color:#888;cursor:pointer;width:auto;}
.share-type-btn.active{border-color:#0B6F68;color:#0B6F68;background:#f0faf6;}
/* 重量表示トグル */
.share-weight-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:8px 12px;background:#f8f8f8;border-radius:8px;}
.share-weight-label{font-size:13px;font-weight:600;color:#555;}
.share-weight-toggle{display:flex;gap:0;border:1.5px solid #d0d0d0;border-radius:8px;overflow:hidden;}
.share-weight-toggle button{padding:5px 12px;font-size:12px;font-weight:600;border:none;background:#fff;color:#aaa;cursor:pointer;width:auto;}
.share-weight-toggle button.active{background:#0B6F68;color:#fff;}
.share-preview-wrap{background:#f4f4f4;border-radius:12px;padding:12px;margin-bottom:14px;display:flex;justify-content:center;overflow:auto;}
.share-save-btn{width:100%;padding:12px;background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;font-size:15px;font-weight:800;border-radius:var(--radius-md);cursor:pointer;min-height:44px;box-shadow:0 4px 12px rgba(11,111,104,.14);}
.share-save-btn:disabled{opacity:.5;cursor:not-allowed;}
/* 共有カード本体 - iOS WebKit安定版 */
/* display:grid廃止・flex統一・専用クラス設計 */
.share-card{
  width:360px;border-radius:20px;padding:0;
  font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  overflow:hidden;box-sizing:border-box;
  -webkit-font-smoothing:antialiased;
  letter-spacing:0;display:block;position:relative;
}
.share-card.capture-mode *{
  transform:none!important;animation:none!important;transition:none!important;
  box-shadow:none!important;text-shadow:none!important;letter-spacing:0!important;
}

/* ── ダークカード ── */
.share-card.dark{background:#111e28;}
.sc-dark-inner{padding:16px 22px 12px;box-sizing:border-box;display:block;}

/* ヘッダー：flexでバッジ＋日付を揃える */
.sc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px;}
.sc-app-badge{
  display:inline-block;
  font-size:10px;font-weight:700;color:#0B6F68;
  background:rgba(11,111,104,.15);
  padding:5px 12px;border-radius:20px;
  text-transform:uppercase;line-height:1.4;
  white-space:nowrap;letter-spacing:0;box-sizing:border-box;
}
.sc-date-dark{
  display:inline-block;
  padding-top:4px;
  font-size:11px;color:rgba(255,255,255,.4);
  line-height:1.4;white-space:nowrap;letter-spacing:0;
}
.sc-parts-dark{display:block;font-size:20px;font-weight:800;color:#fff;line-height:1.4;margin-bottom:2px;word-break:break-word;letter-spacing:0;}
.sc-style-dark{display:block;font-size:12px;color:rgba(255,255,255,.5);margin-bottom:10px;line-height:1.6;letter-spacing:0;}

/* 数値カード：flexで3等分 */
.sc-stats-grid{display:flex;gap:8px;margin-bottom:10px;}
.sc-stat{flex:1;background:rgba(255,255,255,.07);border-radius:8px;padding:10px 6px;text-align:center;box-sizing:border-box;}
.sc-stat-val{display:block;font-size:17px;font-weight:800;color:#fff;line-height:1.3;letter-spacing:0;}
.sc-stat-label{display:block;font-size:9px;color:rgba(255,255,255,.4);text-transform:uppercase;line-height:1.4;margin-top:3px;letter-spacing:0;}

.sc-divider-dark{height:1px;background:rgba(255,255,255,.08);margin:8px 0;display:block;}
.sc-ex-list{margin-bottom:8px;display:block;}

/* 種目行：gridをやめてflexに。左：種目名、右：2行固定 */
.sc-ex-row{
  display:flex;align-items:flex-start;
  padding:5px 0;
  border-bottom:1px solid rgba(255,255,255,.05);
  box-sizing:border-box;min-height:26px;
}
.sc-ex-row:last-child{border-bottom:none;}
.sc-ex-name{
  display:block;flex:1;min-width:0;
  font-size:12px;font-weight:600;color:rgba(255,255,255,.85);
  line-height:1.6;word-break:break-word;letter-spacing:0;
}
.sc-ex-detail{
  display:block;flex-shrink:0;width:144px;
  text-align:right;
}
.sc-ex-detail-line1{
  display:block;font-size:10px;color:rgba(255,255,255,.45);
  line-height:1.6;text-align:right;white-space:nowrap;letter-spacing:0;
}
.sc-ex-detail-line2{
  display:block;font-size:10px;color:rgba(255,255,255,.35);
  line-height:1.6;text-align:right;white-space:nowrap;letter-spacing:0;
}
.sc-pr-badge{
  display:inline-block;font-size:9px;font-weight:800;color:#F59E0B;
  background:rgba(245,158,11,.15);padding:1px 5px;border-radius:4px;
  margin-left:3px;line-height:1.4;letter-spacing:0;
}

/* コンディション欄：gridをやめてflexに。左固定幅スコア＋右縦並び */
.sc-cond-row{
  display:flex;align-items:center;
  background:rgba(255,255,255,.05);
  border-radius:10px;padding:10px 12px;margin-bottom:8px;
  box-sizing:border-box;
}
.sc-cond-score{
  display:block;width:52px;flex-shrink:0;
  font-size:30px;font-weight:800;line-height:1.2;
  text-align:center;letter-spacing:0;
}
.sc-cond-info{display:block;flex:1;min-width:0;padding-left:10px;}
.sc-cond-label{display:block;font-size:9px;color:rgba(255,255,255,.4);text-transform:uppercase;line-height:1.5;margin-bottom:2px;letter-spacing:0;}
.sc-cond-msg{display:block;font-size:13px;font-weight:700;color:#fff;line-height:1.5;margin-bottom:4px;word-break:break-word;letter-spacing:0;}
/* 理由：1件=1blockで確実に分割 */
.sc-cond-reasons{display:block;min-width:0;}
.sc-cond-reason-item{display:block;font-size:10px;color:rgba(255,255,255,.5);line-height:1.7;word-break:break-word;letter-spacing:0;white-space:normal;}

/* コメント欄：左バー要素＋右本文要素に完全分離（border-left廃止） */
.sc-summary-dark{
  display:flex;align-items:flex-start;gap:8px;
  margin-bottom:8px;
}
.sc-summary-bar{
  display:block;flex-shrink:0;
  width:2px;min-height:1em;align-self:stretch;
  background:#0B6F68;border-radius:1px;
}
.sc-summary-text{
  display:block;flex:1;min-width:0;
  font-size:11px;color:rgba(255,255,255,.6);font-style:normal;
  line-height:1.8;word-break:break-word;letter-spacing:0;
}
.sc-footer-dark{display:flex;align-items:center;justify-content:space-between;padding-top:4px;}
.sc-hashtag-dark{display:block;font-size:10px;color:rgba(255,255,255,.2);line-height:1.4;letter-spacing:0;}
.sc-accent-bar{height:3px;background:linear-gradient(90deg,#0B6F68,#378ADD);display:block;}

/* ── ライトカード ── */
.share-card.light{background:#fff;border:1px solid #eee;display:block;position:relative;}
.sc-light-top{display:block;background:linear-gradient(135deg,#0B6F68 0%,#378ADD 100%);padding:18px 22px 14px;box-sizing:border-box;}
.sc-parts-light{display:block;font-size:19px;font-weight:800;color:#fff;line-height:1.4;margin-bottom:2px;word-break:break-word;letter-spacing:0;}
.sc-style-light{display:block;font-size:12px;color:rgba(255,255,255,.75);line-height:1.5;letter-spacing:0;}
.sc-light-body{display:block;padding:14px 22px 16px;box-sizing:border-box;}
.sc-stats-grid-light{display:flex;gap:8px;margin-bottom:12px;}
.sc-stat-light{flex:1;background:#f6f6f6;border-radius:8px;padding:10px 6px;text-align:center;box-sizing:border-box;}
.sc-stat-val-light{display:block;font-size:17px;font-weight:800;color:#1a1a1a;line-height:1.3;letter-spacing:0;}
.sc-stat-label-light{display:block;font-size:9px;color:#aaa;text-transform:uppercase;line-height:1.4;margin-top:3px;letter-spacing:0;}
.sc-divider-light{height:1px;background:#eee;margin:10px 0;display:block;}
/* 種目行ライト */
.sc-ex-row-light{
  display:flex;align-items:flex-start;
  padding:5px 0;border-bottom:1px solid #f2f2f2;
  box-sizing:border-box;min-height:26px;
}
.sc-ex-row-light:last-child{border-bottom:none;}
.sc-ex-name-light{display:block;flex:1;min-width:0;font-size:12px;font-weight:600;color:#333;line-height:1.6;word-break:break-word;letter-spacing:0;}
.sc-ex-detail-light{display:block;flex-shrink:0;width:144px;text-align:right;}
.sc-ex-detail-line1-light{display:block;font-size:10px;color:#999;line-height:1.6;text-align:right;white-space:nowrap;letter-spacing:0;}
.sc-ex-detail-line2-light{display:block;font-size:10px;color:#bbb;line-height:1.6;text-align:right;white-space:nowrap;letter-spacing:0;}
/* コンディションスコアライト */
.sc-cond-row-light{
  display:flex;align-items:center;
  background:#f0faf6;border-radius:10px;
  padding:10px 12px;margin-bottom:10px;
  border:1px solid #c8e6da;box-sizing:border-box;
}
.sc-cond-score-light{display:block;width:52px;flex-shrink:0;font-size:30px;font-weight:800;line-height:1.2;text-align:center;letter-spacing:0;}
.sc-cond-info-light{display:block;flex:1;min-width:0;padding-left:10px;}
.sc-cond-label-light{display:block;font-size:9px;color:#aaa;text-transform:uppercase;line-height:1.5;margin-bottom:2px;letter-spacing:0;}
.sc-cond-msg-light{display:block;font-size:13px;font-weight:700;color:#1a1a1a;line-height:1.5;margin-bottom:4px;word-break:break-word;letter-spacing:0;}
.sc-cond-reasons-light{display:block;min-width:0;}
.sc-cond-reason-item-light{display:block;font-size:10px;color:#666;line-height:1.7;word-break:break-word;letter-spacing:0;white-space:normal;}
.sc-footer-light{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.sc-app-light{display:block;font-size:10px;font-weight:700;color:#0B6F68;line-height:1.4;letter-spacing:0;}
.sc-hashtag-light{display:block;font-size:10px;color:#ccc;line-height:1.4;letter-spacing:0;}
.copy-log-btn,.new-log-btn{width:100%;padding:12px;font-size:14px;margin-bottom:8px;}
.edit-label{font-size:12px;color:#aaa;text-align:center;margin-top:2px;}
/* 振り返りメモ入力エリア */
.ai-review-area{background:#fafafa;border:1px solid #e8e8e8;border-radius:10px;padding:14px 16px;margin-top:8px;}
.ai-review-label{font-size:12px;font-weight:600;color:#378ADD;margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.ai-review-label span{background:#E6F1FB;color:#378ADD;font-size:10px;padding:2px 7px;border-radius:8px;}
.ai-review-textarea{width:100%;min-height:100px;resize:vertical;font-size:14px;line-height:1.7;border:1px solid #d0d0d0;border-radius:8px;padding:10px 12px;background:#fff;}
.ai-review-textarea:focus{border-color:#378ADD;box-shadow:0 0 0 3px rgba(55,138,221,.12);}
/* フィードバック保存済みバッジ */
.fb-saved-badge{font-size:11px;background:#E1F5EE;color:#0F6E56;padding:3px 10px;border-radius:10px;margin-left:8px;vertical-align:middle;}
/* 週間ボリュームカード */
.weekly-vol-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.weekly-vol-item{background:#f8f8f8;border-radius:10px;padding:10px 12px;border:1px solid #eee;}
.weekly-vol-part{font-size:12px;font-weight:700;color:#555;margin-bottom:6px;}
.weekly-vol-stats{font-size:13px;color:#1a1a1a;font-weight:600;}
.weekly-vol-sub{font-size:11px;color:#aaa;margin-top:2px;}
.weekly-vol-diff{font-size:11px;font-weight:700;margin-left:6px;}
.weekly-vol-diff.up{color:#0B6F68;}.weekly-vol-diff.down{color:#e24b4b;}.weekly-vol-diff.same{color:#aaa;}
.weekly-vol-empty{font-size:13px;color:#aaa;text-align:center;padding:1rem 0;}
/* トレーニング頻度可視化 */
.freq-summary-row{display:flex;align-items:baseline;gap:12px;margin-bottom:14px;}
.freq-this-week{font-size:32px;font-weight:900;color:#0B6F68;line-height:1;}
.freq-this-week-unit{font-size:13px;color:#aaa;font-weight:600;}
.freq-vs-last{font-size:12px;font-weight:700;padding:3px 8px;border-radius:10px;}
.freq-vs-last.up{background:#f0faf6;color:#0B6F68;}
.freq-vs-last.down{background:#fff0f0;color:#EF6363;}
.freq-vs-last.same{background:#f4f4f4;color:#aaa;}
.freq-mini-chart{margin-bottom:16px;}
.freq-mini-chart-title{font-size:11px;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px;}
.freq-bars{display:flex;align-items:flex-end;gap:6px;min-height:84px;padding-top:12px;box-sizing:border-box;}
.freq-bar-wrap{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;}
.freq-bar{width:100%;border-radius:4px 4px 0 0;min-height:4px;transition:height .3s;}
.freq-bar-current{background:#0B6F68;}
.freq-bar-past{background:#d0e8df;}
.freq-bar-label{font-size:9px;color:#bbb;white-space:nowrap;line-height:1.2;}
.freq-bar-val{display:block;min-height:14px;font-size:10px;font-weight:700;color:#555;line-height:1.2;}
.freq-goal-line{font-size:11px;color:#378ADD;margin-top:4px;}
.freq-parts-title{font-size:11px;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.freq-part-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.freq-part-name{font-size:12px;font-weight:700;color:#555;width:40px;flex-shrink:0;}
.freq-part-bar-wrap{flex:1;background:#f0f0f0;border-radius:4px;height:8px;overflow:hidden;}
.freq-part-bar{height:100%;border-radius:4px;background:#0B6F68;transition:width .4s;}
.freq-part-val{font-size:11px;font-weight:700;color:#555;white-space:nowrap;width:48px;text-align:right;}
/* ボリューム適正判定 */
.vol-status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.vol-status-item{border-radius:10px;padding:10px 12px;border:1px solid transparent;}
.vol-status-item.low{background:#fff7ec;border-color:#F59E0B;}
.vol-status-item.ok{background:#f0faf6;border-color:#0B6F68;}
.vol-status-item.high{background:#fff0f0;border-color:#EF6363;}
.vol-status-item.nodata{background:#f8f8f8;border-color:#e0e0e0;}
.vol-status-part{font-size:12px;font-weight:700;margin-bottom:3px;}
.vol-status-item.low .vol-status-part{color:#7a4500;}
.vol-status-item.ok .vol-status-part{color:#0a5c3f;}
.vol-status-item.high .vol-status-part{color:#7a0000;}
.vol-status-item.nodata .vol-status-part{color:#aaa;}
.vol-status-label{font-size:13px;font-weight:800;display:block;margin-bottom:2px;}
.vol-status-item.low .vol-status-label{color:#F59E0B;}
.vol-status-item.ok .vol-status-label{color:#0B6F68;}
.vol-status-item.high .vol-status-label{color:#EF6363;}
.vol-status-item.nodata .vol-status-label{color:#ccc;}
.vol-status-comment{font-size:10px;color:#888;line-height:1.5;}
/* 部位別体組成 */
.seg-toggle-btn{width:100%;text-align:left;background:none;border:none;padding:8px 0 4px;font-size:12px;font-weight:600;color:#378ADD;cursor:pointer;}
.seg-body-wrap{display:none;margin-top:8px;}
.seg-section-label{font-size:11px;font-weight:700;color:#888;letter-spacing:.06em;margin:10px 0 6px;}
.seg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:4px;}
.seg-field{background:#f8f8f8;border-radius:8px;padding:8px 10px;}
.seg-field input{width:100%;font-size:14px;border:none;background:transparent;text-align:center;color:#1a1a1a;}
.seg-field input:focus{outline:none;color:#0B6F68;}
.seg-field-label{font-size:10px;color:#aaa;text-align:center;margin-top:2px;}
/* 部位別分析カード */
.seg-compare-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;}
.seg-compare-table th{font-size:11px;font-weight:600;color:#888;padding:5px 6px;text-align:right;border-bottom:2px solid #eee;}
.seg-compare-table th:first-child{text-align:left;}
.seg-compare-table td{padding:6px 6px;border-bottom:1px solid #f0f0f0;text-align:right;color:#1a1a1a;}
.seg-compare-table td:first-child{text-align:left;color:#555;font-weight:600;}
.seg-diff-up{color:#0B6F68;font-weight:700;}
.seg-diff-down{color:#EF6363;font-weight:700;}
.seg-diff-same{color:#aaa;}
.seg-asym-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f0f0f0;font-size:12px;}
.seg-asym-label{color:#555;font-weight:600;flex:1;}
.seg-asym-bar-wrap{flex:2;height:8px;background:#eee;border-radius:4px;overflow:hidden;position:relative;}
.seg-asym-bar-l{height:100%;background:#378ADD;position:absolute;right:50%;}
.seg-asym-bar-r{height:100%;background:#0B6F68;position:absolute;left:50%;}
.seg-asym-val{font-size:11px;color:#888;min-width:60px;text-align:right;}
.seg-asym-val .notice{color:#B7791F;font-weight:700;}
.seg-analysis-card{border:1px solid var(--color-border,rgba(15,118,110,.14));border-radius:20px;background:linear-gradient(180deg,#fff 0%,var(--color-surface-soft,#F7FAF9) 100%);box-shadow:var(--shadow-soft,0 12px 30px rgba(15,118,110,.08));padding:16px;margin-top:6px;overflow:hidden;}
.seg-analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.seg-analysis-kicker{font-size:10px;font-weight:900;letter-spacing:.16em;color:var(--color-primary,#0B6F68);text-transform:uppercase;margin-bottom:3px;}
.seg-analysis-title{font-size:16px;font-weight:900;color:#18312F;letter-spacing:.02em;}
.seg-analysis-date{font-size:11px;font-weight:700;color:#6B7C7A;background:rgba(255,255,255,.72);border:1px solid var(--color-border,rgba(15,118,110,.14));border-radius:999px;padding:5px 9px;white-space:nowrap;}
.seg-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
.seg-summary-chip{background:rgba(255,255,255,.78);border:1px solid var(--color-border,rgba(15,118,110,.14));border-radius:14px;padding:10px 11px;min-width:0;}
.seg-summary-chip span{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#7A8C89;margin-bottom:4px;}
.seg-summary-chip strong{display:block;font-size:12px;line-height:1.55;color:#223D39;font-weight:800;}
.seg-mode-switch{position:relative;}
.seg-mode-input{position:absolute;opacity:0;pointer-events:none;}
.seg-mode-label{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--color-border,rgba(15,118,110,.14));background:rgba(255,255,255,.74);color:#627572;font-size:12px;font-weight:900;cursor:pointer;margin:0 6px 12px 0;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;}
#seg-mode-muscle:checked ~ label[for="seg-mode-muscle"],#seg-mode-fat:checked ~ label[for="seg-mode-fat"]{background:var(--color-primary-soft,#E3F3F1);border-color:rgba(11,111,104,.26);color:var(--color-primary-dark,#064E49);box-shadow:0 6px 16px rgba(15,118,110,.09);}
.seg-mode-panel{display:none;}
#seg-mode-muscle:checked ~ .seg-mode-panels .seg-mode-panel.muscle,#seg-mode-fat:checked ~ .seg-mode-panels .seg-mode-panel.fat{display:block;}
.body-part-map{border:1px solid var(--color-border,rgba(15,118,110,.14));border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(247,250,249,.82));padding:13px;box-shadow:0 10px 24px rgba(15,118,110,.06);}
.body-part-map-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.body-part-map-head span{font-size:10px;font-weight:900;letter-spacing:.18em;color:#78908C;}
.body-part-map-head strong{font-size:12px;font-weight:900;color:#18312F;}
.body-part-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.body-part-card{position:relative;min-width:0;border:1px solid var(--color-border,rgba(15,118,110,.14));border-radius:15px;background:rgba(255,255,255,.84);padding:12px 12px 10px;overflow:hidden;}
.body-part-card::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:rgba(15,118,110,.18);}
.body-part-card.trunk{grid-column:1/-1;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(227,243,241,.42));}
.body-part-card.arm::after,.body-part-card.leg::after,.body-part-card.trunk::after{content:'';position:absolute;right:11px;top:11px;width:24px;height:6px;border-radius:999px;background:rgba(15,118,110,.09);}
.body-part-card.leg::after{width:18px;height:18px;border-radius:6px 6px 12px 12px;}
.body-part-card.trunk::after{width:28px;height:24px;border-radius:10px;background:rgba(15,118,110,.08);}
.body-part-map.muscle .body-part-card::before{background:linear-gradient(180deg,#14766E,#88CEC5);}
.body-part-map.fat .body-part-card::before{background:linear-gradient(180deg,#B87922,#EFCB82);}
.body-part-map.fat .body-part-card.trunk{background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(250,238,216,.5));}
.body-part-label{font-size:11px;font-weight:900;color:#627572;margin-bottom:4px;padding-right:30px;}
.body-part-value{font-size:19px;font-weight:900;color:#18312F;letter-spacing:-.03em;}
.body-part-delta{font-size:10px;font-weight:900;color:#8A9B98;margin-top:5px;}
.body-part-card.up .body-part-delta{color:var(--color-primary,#0B6F68);}
.body-part-card.down .body-part-delta{color:#B7791F;}
.body-part-balance{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:9px 10px;border-radius:13px;background:rgba(255,255,255,.68);border:1px solid rgba(15,118,110,.1);}
.body-part-balance span{font-size:10px;font-weight:900;letter-spacing:.08em;color:#78908C;}
.body-part-balance strong{font-size:12px;font-weight:900;color:#243F3B;text-align:right;line-height:1.45;}
.body-part-note{margin-top:12px;border-radius:14px;border:1px solid rgba(217,154,39,.22);background:#FFF8EA;color:#7A5214;font-size:12px;font-weight:700;line-height:1.6;padding:10px 12px;}
.seg-detail-details{margin-top:12px;border-top:1px solid var(--color-border,rgba(15,118,110,.14));padding-top:10px;}
.seg-detail-details summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;color:var(--color-primary,#0B6F68);font-size:12px;font-weight:900;}
.seg-detail-details summary::-webkit-details-marker{display:none;}
.seg-detail-details summary::after{content:'∨';display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:var(--color-primary-soft,#E3F3F1);color:var(--color-primary,#0B6F68);font-weight:900;}
.seg-detail-details[open] summary::after{content:'∧';}
.seg-detail-body{padding-top:2px;}
.seg-detail-caption{font-size:12px;font-weight:900;color:#536864;margin:10px 0 5px;}
.seg-detail-muted{font-size:12px;color:#8A9B98;line-height:1.6;padding:8px 0;}
.seg-compare-table th{border-bottom-color:var(--color-border,rgba(15,118,110,.14));}
.seg-compare-table td{border-bottom-color:rgba(15,118,110,.08);}
@media (max-width:420px){
  .seg-analysis-card{padding:13px;border-radius:18px;}
  .seg-analysis-head{flex-direction:column;gap:7px;}
  .seg-analysis-date{white-space:normal;}
  .seg-summary-grid{grid-template-columns:1fr;}
  .body-part-map{padding:11px;border-radius:16px;}
  .body-part-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .body-part-card{padding:10px 10px 9px;}
  .body-part-card.trunk{grid-column:1/-1;}
  .body-part-value{font-size:17px;}
  .body-part-balance{align-items:flex-start;flex-direction:column;gap:4px;}
  .body-part-balance strong{text-align:left;}
  .seg-asym-row{align-items:flex-start;flex-wrap:wrap;}
  .seg-asym-label{flex:0 0 100%;}
  .seg-asym-bar-wrap{flex:1 1 120px;}
  .seg-asym-val{min-width:92px;}
}
/* 停滞検知カード */
.plateau-item{background:#f8f8f8;border-radius:10px;padding:12px 14px;margin-bottom:8px;border-left:4px solid #d0d0d0;}
.plateau-item.stalled{border-left-color:#EF6363;}
.plateau-item.ok{border-left-color:#0B6F68;}
.plateau-item.pending{border-left-color:#F59E0B;}
.plateau-item-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.plateau-item-name{font-size:14px;font-weight:700;color:#1a1a1a;}
.plateau-status-badge{font-size:11px;font-weight:700;padding:2px 10px;border-radius:10px;color:#fff;}
.plateau-status-badge.stalled{background:#EF6363;}
.plateau-status-badge.ok{background:#0B6F68;}
.plateau-status-badge.pending{background:#F59E0B;}
.plateau-reasons{font-size:12px;color:#666;line-height:1.8;margin-bottom:4px;}
.plateau-advice{font-size:12px;font-weight:600;color:#378ADD;}
/* 代替種目提案 */
.alt-suggest-wrap{margin-top:8px;padding-top:8px;border-top:1px solid #eee;}
.alt-suggest-label{font-size:11px;font-weight:700;color:#aaa;margin-bottom:6px;display:flex;align-items:center;gap:4px;}
.alt-suggest-reason{font-size:11px;color:#888;margin-bottom:6px;line-height:1.5;}
.alt-chips{display:flex;flex-wrap:wrap;gap:5px;}
.alt-chip{font-size:11px;padding:4px 10px;border-radius:14px;background:#f0f4ff;border:1px solid #c5d8ff;color:#378ADD;font-weight:600;cursor:default;}

/* 過去ログ編集モードバナー */
.edit-mode-banner{
  display:none;
  background:linear-gradient(90deg,#EF9F27,#E8830A);
  color:#fff;
  padding:10px 16px;
  font-size:13px;
  font-weight:600;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  border-radius:10px;
  box-shadow:0 2px 8px rgba(239,159,39,.3);
}
.edit-mode-banner.active{display:flex;}
.edit-mode-banner-text{flex:1;line-height:1.4;}
.edit-mode-cancel{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);color:#fff;font-size:12px;padding:5px 12px;border-radius:16px;width:auto;white-space:nowrap;cursor:pointer;font-weight:600;}
.edit-mode-cancel:active{background:rgba(255,255,255,.35);}
/* 編集シート内では既存の過去ログ編集バナーを非表示（ヘッダーで代替） */
.edit-sheet-overlay .edit-mode-banner{display:none!important;}
.pane-input-editing{outline:2.5px solid #EF9F27;outline-offset:-2px;border-radius:4px;}
/* ログ一覧タブ内の編集シート（pane-inputをオーバーレイ表示） */
.edit-sheet-overlay{
  display:none;position:fixed;inset:0;z-index:200;
  background:#fff;overflow-y:auto;
  animation:slideUp .25s ease;
}
.edit-sheet-overlay.open{display:block;}
.edit-sheet-header{
  display:flex;align-items:center;justify-content:space-between;
  background:#EF9F27;color:#fff;
  padding:12px 16px;position:sticky;top:0;z-index:1;
}
.edit-sheet-header-text{font-size:14px;font-weight:700;line-height:1.3;}
.edit-sheet-header-sub{font-size:11px;opacity:.85;font-weight:400;}
.edit-sheet-close{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);color:#fff;font-size:12px;padding:6px 14px;border-radius:16px;font-weight:600;cursor:pointer;width:auto;white-space:nowrap;}
.edit-sheet-body{padding:0;}


/* =============================================
   ローディング
   ============================================= */
.loading-overlay{position:fixed;inset:0;background:radial-gradient(circle at 18% 8%,rgba(11,111,104,.16),transparent 34%),linear-gradient(180deg,#F8FBFA,#EAF2F0);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:900;gap:12px;padding:24px;text-align:center;}
.loading-app-icon{width:78px;height:78px;border-radius:22px;overflow:hidden;box-shadow:0 18px 46px rgba(15,23,42,.16),0 8px 22px rgba(11,111,104,.13);}
.loading-app-icon svg,.loading-app-icon img{display:block;width:100%;height:100%;object-fit:cover;}
.loading-brand{font-size:24px;font-weight:950;letter-spacing:-.04em;color:var(--color-text);}
.loading-spinner{width:34px;height:34px;border:3px solid rgba(11,111,104,.12);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:14px;font-weight:850;color:var(--color-muted-strong);}
.loading-subtext{max-width:280px;font-size:12px;font-weight:700;line-height:1.6;color:var(--color-muted);}
.loading-retry-btn{margin-top:4px;min-height:38px;padding:8px 14px;border-radius:999px;border:1px solid rgba(15,118,110,.24);background:rgba(255,255,255,.76);color:var(--color-primary-dark);font-size:12px;font-weight:900;box-shadow:0 8px 22px rgba(15,118,110,.10);}

/* =============================================
   ログ一覧
   ============================================= */
.search-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.search-bar input,.search-bar select{flex:1;min-width:130px;}
.copy-all-btn{width:100%;margin-bottom:12px;font-size:14px;padding:11px;}
.copy-all-btn.copied{background:#f0faf6;border-color:#0B6F68;color:#0B6F68;}
/* ゴミ箱切替 */
.trash-toggle-bar{display:flex;gap:8px;margin-bottom:12px;}
.trash-toggle-btn{flex:1;padding:9px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid #d0d0d0;background:#fff;color:#888;cursor:pointer;width:auto;}
.trash-toggle-btn.active{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.trash-toggle-btn.trash-active{background:#e24b4b;border-color:#e24b4b;color:#fff;}
.log-card.deleted{opacity:.7;border-color:#e24b4b22;background:#fff8f8;}
.log-card.deleted .log-card-date{color:#e24b4b;}
.export-bar{display:flex;gap:8px;margin-bottom:12px;align-items:stretch;position:relative;z-index:3;}
.export-help-row{display:flex;align-items:center;gap:6px;flex:1;min-width:0;position:relative;}
.export-btn{flex:1;padding:10px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid #d0d0d0;background:#fff;color:#555;cursor:pointer;min-width:0;}
.export-btn:active{opacity:.7;}
.export-btn.json{border-color:#378ADD;color:#378ADD;background:#f0f6ff;}
.export-btn.csv{border-color:#0B6F68;color:#0B6F68;background:#f0faf6;}
.export-btn.import-json-btn{border-color:#2f7a87;color:#1f6874;background:#eef9fb;}
.export-help{position:relative;flex:0 0 auto;}
.export-help summary{list-style:none;}
.export-help summary::-webkit-details-marker{display:none;}
.export-help-btn{width:30px;height:30px;border-radius:999px;border:1px solid rgba(28,86,112,.2);background:rgba(255,255,255,.86);color:#55727d;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 8px 18px rgba(12,55,66,.08);}
.export-help-btn:active{transform:translateY(1px);}
.export-help-popover{position:absolute;top:calc(100% + 7px);right:0;width:min(286px,calc(100vw - 36px));padding:12px 13px;border-radius:14px;border:1px solid rgba(15,118,110,.16);background:rgba(255,255,255,.96);box-shadow:0 18px 42px rgba(13,44,50,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#36545c;font-size:12px;line-height:1.55;z-index:40;}
.export-help-popover strong{display:block;color:#174f5c;font-size:12.5px;margin-bottom:5px;}
.export-help-popover p{margin:0 0 6px;}
.export-help-popover span{display:block;color:#6f858d;}
.json-import-panel{margin:-2px 0 12px;}
.import-preview-card,
.import-result-card{
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(15,118,110,.16);
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 32px rgba(13,44,50,.10);
}
.import-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
.import-preview-head strong,
.import-result-card strong{display:block;color:#173f48;font-size:14px;font-weight:950;}
.import-preview-head span{display:block;margin-top:3px;color:#70868d;font-size:11px;line-height:1.45;word-break:break-all;}
.import-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0;}
.import-summary-grid div{padding:9px 8px;border-radius:12px;background:#f5fafb;border:1px solid rgba(15,118,110,.10);}
.import-summary-grid span{display:block;font-size:10px;font-weight:850;color:#6c8188;}
.import-summary-grid strong{display:block;margin-top:3px;color:#153f47;font-size:16px;font-weight:950;}
.import-warning-note{margin:10px 0 0;padding-left:18px;color:#536b72;font-size:12px;line-height:1.65;}
.import-preview-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.import-confirm-btn,
.import-cancel-btn{min-height:40px;border-radius:999px;padding:9px 14px;font-size:12px;font-weight:900;cursor:pointer;border:1px solid rgba(15,118,110,.18);width:auto;}
.import-confirm-btn{background:linear-gradient(135deg,var(--color-primary),#139288);color:#fff;box-shadow:0 9px 20px rgba(15,118,110,.16);}
.import-confirm-btn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none;}
.import-cancel-btn{background:#fff;color:#687b82;border-color:#d7e3e6;}
.import-result-card p{margin:6px 0 0;color:#536b72;font-size:12px;line-height:1.65;}
.import-result-card.success{border-color:rgba(15,118,110,.22);background:#f2fbf8;}
.import-result-card.error{border-color:rgba(194,65,59,.24);background:#fff7f6;}
.import-result-card.error strong{color:#8f1f15;}
.import-result-card.info{border-color:rgba(47,122,135,.18);background:#f4fbfc;}
@media(max-width:420px){
  .export-bar{flex-direction:column;gap:7px;}
  .export-help-popover{right:-2px;width:min(300px,calc(100vw - 32px));}
  .import-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .import-confirm-btn,
  .import-cancel-btn{flex:1 1 100%;}
}
.log-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:14px 16px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.log-card-date{font-size:12px;color:#aaa;}
.log-card-theme{font-size:15px;font-weight:600;margin-top:3px;}
.log-meta{font-size:12px;color:#888;margin-top:5px;line-height:1.6;}
.log-actions{display:flex;gap:5px;flex-wrap:nowrap;margin-top:12px;}
.log-actions button{font-size:12px;padding:8px 6px;width:auto;flex:1;min-width:0;white-space:nowrap;}
.log-actions button.danger{color:#e24b4b;border-color:#e24b4b;}
.log-detail{background:#f8f8f8;border-radius:8px;padding:10px;font-size:12px;color:#555;white-space:pre-wrap;word-break:break-all;margin-top:10px;max-height:220px;overflow-y:auto;display:none;line-height:1.6;border:1px solid #eee;}
.badge{display:inline-block;font-size:11px;padding:3px 9px;border-radius:10px;margin-right:4px;margin-bottom:3px;}
.badge.green{background:#E1F5EE;color:#0F6E56;}
.badge.blue{background:#E6F1FB;color:#185FA5;}
.badge.amber{background:#FAEEDA;color:#854F0B;}
.empty{text-align:center;color:#aaa;font-size:14px;padding:2.5rem 0;}
.empty-state{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  background:var(--color-surface-soft,#f8f8f8);
  border:1px solid var(--color-border,#e8e8e8);
  border-radius:var(--radius-lg,14px);
  padding:24px 18px;
  color:var(--color-muted,#888);
  text-align:center;
  line-height:1.65;
}
.empty-state.compact{padding:18px 14px;}
.empty-state-icon{
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--color-surface,#fff);
  border:1px solid var(--color-border,#e8e8e8);
  color:var(--color-primary,#0B6F68);
  font-size:18px;
  line-height:1;
  margin-bottom:2px;
}
.empty-state-title{
  font-size:var(--font-size-md,15px);
  font-weight:var(--font-weight-bold,800);
  color:var(--color-text,#17212b);
}
.empty-state-text{
  max-width:30rem;
  font-size:var(--font-size-sm,12px);
  color:var(--color-muted,#777);
}
@media (max-width:420px){
  .empty-state{padding:18px 14px;}
  .empty-state.compact{padding:15px 12px;}
  .empty-state-icon{width:32px;height:32px;font-size:16px;}
  .empty-state-title{font-size:14px;}
  .empty-state-text{font-size:12px;line-height:1.6;}
}
/* =============================================
   分析タブ
   ============================================= */
.chart-card{background:#fff;border-radius:12px;border:1px solid #e8e8e8;padding:16px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.chart-title{font-size:14px;font-weight:700;color:#1a1a1a;margin-bottom:4px;}
.chart-sub{font-size:12px;color:#aaa;margin-bottom:12px;}
.chart-wrap{position:relative;width:100%;overflow-x:auto;}
.chart-canvas{display:block;touch-action:manipulation;}
.chart-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.chart-filter select,.chart-filter input{flex:1;min-width:120px;font-size:13px;padding:8px 10px;}
.style-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.style-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:3px;}
.style-legend-item{display:flex;align-items:flex-start;gap:4px;font-size:11px;color:#666;}
.chart-empty{text-align:center;color:#aaa;font-size:13px;padding:2rem 0;}
.chart-empty.empty-state{padding:20px 14px;}
.chart-summary-card{
  margin:10px 0 12px;
  padding:13px;
  border:1px solid rgba(11,111,104,.16);
  border-radius:15px;
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(247,250,249,.92));
  box-shadow:0 1px 2px rgba(15,23,42,.03),0 10px 22px rgba(11,111,104,.05);
}
.chart-summary-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.chart-summary-head strong{
  display:block;
  color:var(--color-primary-dark,#064E49);
  font-size:14px;
  line-height:1.4;
}
.chart-summary-head span{
  display:block;
  color:var(--color-muted,#888);
  font-size:11px;
  font-weight:800;
  line-height:1.5;
}
.chart-summary-head em{
  flex-shrink:0;
  align-self:flex-start;
  font-style:normal;
  border:1px solid rgba(11,111,104,.14);
  border-radius:999px;
  background:var(--color-primary-soft,#E3F3F1);
  color:var(--color-primary-dark,#064E49);
  font-size:10px;
  font-weight:900;
  padding:5px 8px;
  white-space:nowrap;
}
.chart-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.chart-summary-metric{
  min-width:0;
  padding:9px;
  border:1px solid rgba(11,111,104,.12);
  border-radius:12px;
  background:#fff;
}
.chart-summary-label{
  display:block;
  margin-bottom:3px;
  color:var(--color-muted,#888);
  font-size:10px;
  font-weight:850;
}
.chart-summary-value{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--color-text,#1a1a1a);
  font-size:14px;
  font-weight:900;
  line-height:1.35;
}
.chart-summary-delta{
  display:block;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--color-muted,#777);
  font-size:10px;
  font-style:normal;
  font-weight:750;
  line-height:1.4;
}
.chart-summary-note{
  margin-top:8px;
  padding-top:8px;
  border-top:1px dashed rgba(11,111,104,.14);
  color:var(--color-muted,#888);
  font-size:11px;
  line-height:1.7;
}
.chart-summary-empty .chart-summary-note{
  border-top:none;
  padding-top:0;
  margin-top:0;
}
.cardio-summary-card{
  border-color:rgba(11,111,104,.18);
}
.body-data-summary-card{
  margin-bottom:14px;
}
/* チャートタップ時のログ表示 */
.chart-log-card{background:#fff;border:1.5px solid #0B6F68;border-radius:12px;padding:14px 16px;margin-top:12px;animation:fadeIn .2s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.chart-log-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.chart-log-kicker{font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--color-muted,#888);margin-bottom:2px;}
.chart-log-date{font-size:13px;font-weight:700;color:#0B6F68;}
.chart-log-close{background:none;border:none;color:#aaa;font-size:18px;padding:0 4px;width:auto;cursor:pointer;line-height:1;}
.chart-log-meta{font-size:12px;color:#888;margin-bottom:10px;line-height:1.6;}
.chart-log-ex{margin-bottom:8px;}
.chart-log-ex-name{font-size:13px;font-weight:700;color:#1a1a1a;margin-bottom:4px;}
.chart-log-sets{font-size:12px;color:#555;line-height:1.8;padding-left:8px;}
.chart-log-summary{font-size:12px;color:#888;margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;line-height:1.6;}
.chart-log-hint{display:flex;flex-direction:column;gap:3px;background:var(--color-surface-soft,#F7FAF9);border:1px dashed rgba(11,111,104,.18);border-radius:12px;padding:11px 12px;margin-top:10px;font-size:12px;color:var(--color-muted,#777);line-height:1.6;}
.chart-log-hint strong{font-size:12px;color:var(--color-primary,#0B6F68);}
.selected-ex-chart-log{border-color:rgba(11,111,104,.28);box-shadow:0 1px 2px rgba(15,23,42,.04),0 10px 24px rgba(11,111,104,.08);}
.chart-log-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0 10px;}
.chart-log-metrics div{border:1px solid var(--color-border,#e8e8e8);border-radius:12px;background:var(--color-surface-soft,#F7FAF9);padding:8px 9px;min-width:0;}
.chart-log-metrics span{display:block;font-size:10px;font-weight:800;color:var(--color-muted,#888);margin-bottom:3px;}
.chart-log-metrics strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--color-text,#1a1a1a);}
.chart-log-detail-btn{width:100%;min-height:42px;border:none;border-radius:999px;background:var(--color-primary,#0B6F68);color:#fff;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(11,111,104,.12);}
.chart-open-log-btn{margin-top:8px;background:linear-gradient(135deg,var(--color-primary,#0B6F68),#0f8a7f);box-shadow:0 10px 22px rgba(11,111,104,.18);}
.chart-log-selected-note{margin:8px 0 2px;padding:8px 9px;border-radius:10px;background:rgba(255,247,237,.78);border:1px solid rgba(217,119,6,.14);color:#8a4b12;font-size:11px;font-weight:750;line-height:1.55;}
.chart-selected-log-card{border-color:rgba(217,119,6,.34);box-shadow:0 0 0 3px rgba(251,146,60,.10),0 14px 30px rgba(11,111,104,.10);}
.chart-selected-log-highlight{animation:chartSelectedPulse 1.2s ease;}
@keyframes chartSelectedPulse{0%{box-shadow:0 0 0 0 rgba(217,119,6,.34),0 14px 30px rgba(11,111,104,.10)}100%{box-shadow:0 0 0 10px rgba(217,119,6,0),0 14px 30px rgba(11,111,104,.10)}}
.chart-log-fallback{font-size:11px;line-height:1.6;color:var(--color-muted,#888);background:var(--color-surface-soft,#F7FAF9);border-radius:10px;padding:8px 9px;}
.chart-compare-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 12px;padding:10px 12px;border:1px solid rgba(11,111,104,.14);border-radius:14px;background:rgba(255,255,255,.78);box-shadow:0 10px 24px rgba(11,111,104,.06);backdrop-filter:blur(12px);}
.chart-compare-toolbar.active{align-items:flex-start;flex-wrap:wrap;border-color:rgba(11,111,104,.24);background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(227,243,241,.62));}
.chart-compare-copy{display:flex;flex-direction:column;gap:2px;min-width:0;}
.chart-compare-copy strong{font-size:13px;font-weight:900;color:var(--color-text,#102027);line-height:1.35;}
.chart-compare-copy span,.chart-compare-active-note{font-size:11px;line-height:1.55;color:var(--color-muted,#72808a);}
.chart-compare-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.chart-compare-btn,.chart-compare-return-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border-radius:999px;border:1px solid rgba(11,111,104,.24);background:var(--color-primary,#0B6F68);color:#fff;padding:0 13px;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap;box-shadow:0 8px 16px rgba(11,111,104,.10);}
.chart-compare-btn.ghost,.chart-compare-return-btn{background:#fff;color:var(--color-primary,#0B6F68);box-shadow:none;}
.chart-compare-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;}
.chart-compare-selected-list{display:flex;flex-direction:column;gap:4px;flex-basis:100%;font-size:11px;color:var(--color-muted-strong,#4e5d66);line-height:1.55;}
.chart-compare-selected-list span{border:1px dashed rgba(11,111,104,.16);border-radius:10px;background:rgba(255,255,255,.78);padding:6px 8px;}
.chart-compare-active-note{flex-basis:100%;border-radius:10px;background:var(--color-primary-soft,#E3F3F1);color:var(--color-primary-dark,#064E49);font-weight:750;padding:7px 9px;}
.chart-compare-panel{margin:12px 0 14px;padding:13px;border:1px solid rgba(11,111,104,.18);border-radius:16px;background:linear-gradient(135deg,#fff,var(--color-surface-soft,#F7FAF9));box-shadow:0 14px 32px rgba(11,111,104,.08);}
.chart-compare-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.chart-compare-panel-head strong{display:block;font-size:15px;font-weight:900;color:var(--color-text,#102027);}
.chart-compare-panel-head span{display:block;margin-top:2px;font-size:11px;line-height:1.5;color:var(--color-muted,#72808a);}
.chart-compare-log-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.chart-compare-log-card{border:1px solid rgba(11,111,104,.16);border-radius:14px;background:rgba(255,255,255,.86);padding:12px;min-width:0;}
.chart-compare-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:9px 0;}
.chart-compare-metric-grid div{min-width:0;border:1px solid rgba(15,118,110,.10);border-radius:10px;background:var(--color-surface-soft,#F7FAF9);padding:7px 8px;}
.chart-compare-metric-grid span{display:block;font-size:10px;font-weight:850;color:var(--color-muted,#72808a);line-height:1.25;margin-bottom:2px;}
.chart-compare-metric-grid strong{display:block;font-size:12px;font-weight:900;color:var(--color-text,#102027);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chart-compare-diff-card{margin-top:11px;border:1px solid rgba(11,111,104,.18);border-radius:14px;background:rgba(227,243,241,.46);padding:12px;}
.chart-compare-diff-card>strong{display:block;font-size:13px;font-weight:900;color:var(--color-primary-dark,#064E49);margin-bottom:8px;}
.chart-compare-diff-card p{margin:8px 0 0;font-size:11px;line-height:1.65;color:var(--color-muted-strong,#4e5d66);}
.log-detail-return-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 10px;padding:10px 11px;border:1px solid rgba(217,119,6,.26);border-radius:14px;background:linear-gradient(135deg,rgba(255,247,237,.96),rgba(255,255,255,.88));box-shadow:0 10px 24px rgba(217,119,6,.12);}
.log-detail-return-bar span{font-size:11px;color:#8a4b12;line-height:1.4;font-weight:700;}
.chart-return-btn{border:1px solid rgba(194,65,12,.28);background:linear-gradient(135deg,#c2410c,#ea580c);color:#fff;border-radius:999px;min-height:40px;padding:0 15px;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap;box-shadow:0 10px 20px rgba(194,65,12,.16);}
.chart-return-btn:active{transform:translateY(1px);}
.log-card.chart-log-highlight{border-color:rgba(11,111,104,.48);box-shadow:0 0 0 3px rgba(11,111,104,.12),0 12px 28px rgba(11,111,104,.14);}
@media (max-width:420px){
  .chart-summary-card{padding:11px;border-radius:14px;}
  .chart-summary-head{flex-direction:column;gap:5px;}
  .chart-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .chart-summary-value{font-size:13px;}
  .chart-log-card{padding:12px 13px;}
  .chart-log-metrics{grid-template-columns:1fr;gap:7px;}
  .chart-log-detail-btn{min-height:44px;}
  .chart-compare-toolbar{align-items:stretch;flex-direction:column;padding:11px;}
  .chart-compare-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .chart-compare-btn,.chart-compare-return-btn{min-height:42px;width:100%;}
  .chart-compare-panel-head{flex-direction:column;}
  .chart-compare-log-list{grid-template-columns:1fr;}
  .chart-compare-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .log-detail-return-bar{align-items:stretch;flex-direction:column;}
  .chart-return-btn{width:100%;min-height:40px;}
}

.body-evaluation-card{margin-top:14px;border:1px solid rgba(11,111,104,.16);border-radius:16px;background:linear-gradient(135deg,var(--color-surface,#fff),var(--color-surface-soft,#F7FAF9));padding:14px;box-shadow:0 1px 2px rgba(15,23,42,.03),0 10px 24px rgba(11,111,104,.06);}
.body-evaluation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.body-evaluation-kicker{font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--color-primary,#0B6F68);line-height:1.3;}
.body-evaluation-title{font-size:15px;font-weight:900;color:var(--color-text,#102027);line-height:1.4;}
.body-evaluation-sub{max-width:18em;font-size:11px;line-height:1.6;color:var(--color-muted,#72808a);text-align:right;}
.body-evaluation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.body-evaluation-item{border:1px solid var(--color-border,rgba(15,118,110,.14));border-radius:14px;background:rgba(255,255,255,.78);padding:11px;min-width:0;}
.body-evaluation-item.good{border-color:rgba(22,134,95,.24);background:linear-gradient(180deg,#fff,var(--color-success-soft,#e8f6ef));}
.body-evaluation-item.keep{border-color:rgba(11,111,104,.18);}
.body-evaluation-item.watch{border-color:rgba(183,121,31,.24);background:linear-gradient(180deg,#fff,var(--color-warning-soft,#fff6e6));}
.body-evaluation-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.body-evaluation-label{font-size:13px;font-weight:900;color:var(--color-text,#102027);}
.body-evaluation-status{display:inline-flex;align-items:center;justify-content:center;min-height:26px;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900;white-space:nowrap;border:1px solid var(--color-border,rgba(15,118,110,.14));background:var(--color-surface-soft,#F7FAF9);color:var(--color-muted-strong,#4e5d66);}
.body-evaluation-status.good{background:var(--color-success-soft,#e8f6ef);border-color:rgba(22,134,95,.22);color:var(--color-success,#16865F);}
.body-evaluation-status.keep{background:var(--color-primary-soft,#E3F3F1);border-color:rgba(11,111,104,.18);color:var(--color-primary-dark,#064E49);}
.body-evaluation-status.watch{background:var(--color-warning-soft,#fff6e6);border-color:rgba(183,121,31,.22);color:var(--color-warning,#B7791F);}
.body-evaluation-status.insufficient,.body-evaluation-status.hold{background:#f5f7f8;color:var(--color-muted-strong,#4e5d66);}
.body-evaluation-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:8px;}
.body-evaluation-metrics div{min-width:0;border-radius:10px;background:rgba(247,250,249,.86);border:1px solid rgba(15,118,110,.09);padding:7px 8px;}
.body-evaluation-metrics span{display:block;font-size:10px;font-weight:800;color:var(--color-muted,#72808a);line-height:1.3;margin-bottom:2px;}
.body-evaluation-metrics strong{display:block;font-size:12px;font-weight:900;color:var(--color-text,#102027);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.body-evaluation-text{font-size:11px;line-height:1.7;color:var(--color-muted-strong,#4e5d66);}
.body-evaluation-note{margin-top:10px;font-size:11px;line-height:1.6;color:var(--color-primary,#0B6F68);font-weight:750;background:var(--color-primary-soft,#E3F3F1);border-radius:10px;padding:8px 9px;}
.body-evaluation-warning{margin-top:10px;font-size:11px;line-height:1.65;color:var(--color-muted,#72808a);border-top:1px dashed rgba(15,118,110,.16);padding-top:9px;}
.body-evaluation-empty{font-size:12px;line-height:1.7;color:var(--color-muted-strong,#4e5d66);background:var(--color-surface-soft,#F7FAF9);border:1px dashed rgba(15,118,110,.16);border-radius:12px;padding:12px;}
.advanced-body-evaluation{border-color:rgba(11,111,104,.16);background:linear-gradient(135deg,#fff,var(--color-surface-soft,#F7FAF9));}
.advanced-body-evaluation-headline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.advanced-body-evaluation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:9px 0;}
.advanced-body-evaluation-metric{border:1px solid rgba(15,118,110,.12);border-radius:12px;background:#fff;padding:9px 10px;min-width:0;}
.advanced-body-evaluation-metric span{display:block;font-size:11px;color:var(--color-muted,#72808a);font-weight:800;margin-bottom:3px;}
.advanced-body-evaluation-metric strong{display:block;font-size:13px;color:var(--color-muted-strong,#4e5d66);font-weight:900;line-height:1.4;}
.advanced-body-evaluation-metric strong.good{color:var(--color-success,#16865F);}
.advanced-body-evaluation-metric strong.keep{color:var(--color-primary-dark,#064E49);}
.advanced-body-evaluation-metric strong.watch{color:var(--color-warning,#B7791F);}
.advanced-body-evaluation-metric em{display:block;font-style:normal;font-size:10px;color:var(--color-muted,#72808a);line-height:1.4;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.advanced-body-evaluation-relation{display:flex;flex-direction:column;gap:4px;border:1px solid rgba(15,118,110,.12);border-radius:12px;background:rgba(255,255,255,.72);padding:10px 11px;margin:8px 0;}
.advanced-body-evaluation-relation strong{font-size:11px;font-weight:900;color:var(--color-primary-dark,#064E49);}
.advanced-body-evaluation-relation span{font-size:12px;line-height:1.75;color:var(--color-muted-strong,#4e5d66);}
.advanced-body-evaluation-empty{border:1px dashed rgba(15,118,110,.18);border-radius:12px;background:rgba(255,255,255,.72);padding:12px;font-size:12px;line-height:1.75;color:var(--color-muted-strong,#4e5d66);margin-top:8px;}
@media (max-width:720px){
  .body-evaluation-grid{grid-template-columns:1fr;}
  .body-evaluation-head{flex-direction:column;gap:6px;}
  .body-evaluation-sub{text-align:left;max-width:none;}
  .advanced-body-evaluation-grid{grid-template-columns:1fr;}
  .advanced-body-evaluation-headline{align-items:flex-start;flex-direction:column;}
}
@media (max-width:420px){
  .body-evaluation-card{padding:12px;margin-top:12px;border-radius:14px;}
  .body-evaluation-metrics{grid-template-columns:1fr 1fr;}
  .body-evaluation-metrics strong{font-size:11px;}
}

.body-chart-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.body-chart-tab{font-size:12px;padding:5px 12px;border-radius:16px;border:1px solid #d0d0d0;background:#fff;color:#888;cursor:pointer;width:auto;}
.body-chart-tab.active{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.bodypart-chart-panel .chart-sub{
  line-height:1.65;
}
.bodypart-filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:10px 0 12px;
}
.bodypart-chip{
  width:auto;
  min-height:36px;
  padding:7px 12px;
  border:1px solid var(--color-border,#d0d0d0);
  border-radius:999px;
  background:var(--color-surface-soft,#F7FAF9);
  color:var(--color-muted,#777);
  box-shadow:none;
  cursor:pointer;
  font-size:12px;
  font-weight:800;
}
.bodypart-chip.active{
  border-color:var(--color-primary,#0B6F68);
  background:var(--color-primary-soft,#E3F3F1);
  color:var(--color-primary-dark,#064E49);
}
.bodypart-summary-card,
.bodypart-day-card{
  margin-top:12px;
  padding:13px;
  border:1px solid rgba(11,111,104,.16);
  border-radius:14px;
  background:var(--color-surface-soft,#F7FAF9);
  box-shadow:0 1px 2px rgba(15,23,42,.03),0 10px 22px rgba(11,111,104,.05);
}
.bodypart-summary-head,
.bodypart-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.bodypart-summary-head strong{
  color:var(--color-primary-dark,#064E49);
  font-size:14px;
}
.bodypart-summary-head span{
  flex-shrink:0;
  color:var(--color-muted,#888);
  font-size:11px;
  font-weight:800;
}
.bodypart-summary-grid,
.bodypart-day-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.bodypart-day-metrics{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.bodypart-summary-grid div,
.bodypart-day-metrics div{
  min-width:0;
  padding:9px;
  border:1px solid rgba(11,111,104,.12);
  border-radius:12px;
  background:#fff;
}
.bodypart-summary-grid span,
.bodypart-day-metrics span{
  display:block;
  margin-bottom:3px;
  color:var(--color-muted,#888);
  font-size:10px;
  font-weight:850;
}
.bodypart-summary-grid strong,
.bodypart-day-metrics strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--color-text,#1a1a1a);
  font-size:14px;
  font-weight:900;
}
.bodypart-main-exercises{
  margin-top:9px;
  color:var(--color-muted,#777);
  font-size:12px;
  line-height:1.7;
}
.bodypart-summary-note{
  margin-top:8px;
  padding-top:8px;
  border-top:1px dashed rgba(11,111,104,.14);
  color:var(--color-muted,#888);
  font-size:11px;
  line-height:1.7;
}
@media (max-width:420px){
  .bodypart-filter-row{
    gap:6px;
  }
  .bodypart-chip{
    flex:1 1 calc(33.333% - 6px);
    min-width:74px;
    padding-left:8px;
    padding-right:8px;
  }
  .bodypart-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .bodypart-summary-head{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .bodypart-summary-card,
  .bodypart-day-card{
    padding:11px;
  }
}
/* ログ一覧サブタブ固定バー */
.logs-subtab-bar{
  position:sticky;
  top:57px; /* ヘッダーの高さ分下げる */
  z-index:40;
  background:#f5f5f5;
  padding:8px 0 6px;
  margin:0 -16px 12px;
  padding-left:16px;
  padding-right:16px;
  border-bottom:1px solid #e8e8e8;
  display:flex;
  gap:6px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.logs-subtab-bar::-webkit-scrollbar{display:none;}
.analysis-subtab-bar{
  margin-bottom:14px;
}
.analysis-overview-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
  padding:14px 16px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f5fbfa);
  box-shadow:0 2px 12px rgba(11,111,104,.06);
}
.analysis-overview-main{
  min-width:0;
}
.analysis-overview-kicker{
  font-size:10px;
  font-weight:950;
  letter-spacing:.12em;
  color:var(--color-primary);
  margin-bottom:3px;
}
.analysis-overview-title{
  font-size:17px;
  font-weight:950;
  color:var(--color-text);
  line-height:1.35;
}
.analysis-overview-note{
  margin-top:5px;
  font-size:12px;
  font-weight:750;
  color:var(--color-muted-strong);
  line-height:1.55;
}
.analysis-overview-chips{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
  flex:0 0 124px;
}
.analysis-overview-chips span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(15,118,110,.16);
  background:#fff;
  color:var(--color-primary-dark);
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.analysis-subtab-bar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  overflow-x:visible;
}
.analysis-subtab-bar .subtab-btn{
  width:100%;
  min-width:0;
  white-space:normal;
  line-height:1.35;
  padding:8px 7px;
  text-align:center;
}
.subtab-btn{
  flex-shrink:0;
  font-size:13px;
  padding:7px 14px;
  border-radius:20px;
  border:1px solid #d0d0d0;
  background:#fff;
  color:#666;
  cursor:pointer;
  width:auto;
  font-weight:500;
  white-space:nowrap;
  transition:all .15s;
}
.subtab-btn.active{
  background:#0B6F68;
  border-color:#0B6F68;
  color:#fff;
}
/* ベスト記録パネル */
.best-search-wrap{margin-bottom:10px;}
.best-search-wrap input{width:100%;font-size:14px;padding:9px 12px;border:1.5px solid #e0e0e0;border-radius:8px;box-sizing:border-box;}
.best-search-wrap input:focus{border-color:#0B6F68;outline:none;}
.best-sort-bar{display:flex;align-items:center;margin-bottom:12px;gap:6px;flex-wrap:wrap;}
.best-sort-btn{font-size:11px;padding:5px 10px;border-radius:16px;border:1.5px solid #d0d0d0;background:#fff;color:#888;cursor:pointer;width:auto;font-weight:600;}
.best-sort-btn.active{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.best-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:14px 16px;margin-bottom:10px;cursor:pointer;}
.best-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.best-card-name{font-size:15px;font-weight:700;color:#1a1a1a;flex:1;min-width:0;}
.best-card-orm{font-size:14px;font-weight:800;color:#0B6F68;white-space:nowrap;margin-left:8px;}
.best-card-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:8px;}
.best-metric{background:#f8f8f8;border-radius:8px;padding:8px 10px;}
.best-metric-label{font-size:9px;color:#aaa;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:2px;}
.best-metric-val{font-size:14px;font-weight:700;color:#333;display:block;}
.best-metric-date{font-size:10px;color:#bbb;display:block;margin-top:1px;}
.best-card-detail{margin-top:10px;border-top:1px solid #f0f0f0;padding-top:10px;display:none;}
.best-card-detail.open{display:block;}
.best-detail-row{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;border-bottom:1px solid #f8f8f8;}
.best-detail-row:last-child{border-bottom:none;}
.best-detail-label{color:#aaa;font-weight:600;}
.best-detail-val{color:#333;font-weight:700;}
.advanced-panel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px;}
.advanced-panel-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:14px 16px;margin-bottom:12px;}
.advanced-panel-main-flow,.advanced-panel-detail-flow,.advanced-panel-lower-flow{display:flex;flex-direction:column;gap:0;}
.advanced-panel-section{border-color:#dbe9e3;}
.advanced-panel-section-muted{border-color:#eee;background:#fff;}
.advanced-section-divider{height:1px;background:#ececec;margin:4px 0 14px;}
.advanced-log-selector{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:12px 14px;margin-bottom:10px;}
.advanced-log-selector-label{font-size:11px;font-weight:700;color:#666;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;}
.advanced-log-select{width:100%;font-size:13px;padding:9px 12px;border:1px solid #d8d8d8;border-radius:10px;background:#fff;color:#1a1a1a;}
.advanced-current-log{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;background:#f8f8f8;border:1px solid #eee;border-radius:10px;padding:10px 12px;margin-bottom:10px;}
.advanced-current-log-label{font-size:11px;font-weight:700;color:#666;white-space:nowrap;}
.advanced-current-log-text{font-size:12px;color:#333;line-height:1.6;text-align:right;flex:1;}
.advanced-decision-hero{background:linear-gradient(135deg,#eef8f4,#eef4ff);border:1px solid #d5e7df;border-radius:12px;padding:14px 16px;margin-bottom:12px;}
.advanced-decision-hero-label{font-size:11px;font-weight:700;color:#666;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;}
.advanced-decision-hero-text{font-size:14px;font-weight:600;color:#1a1a1a;line-height:1.75;}
.advanced-analysis-meta{font-size:12px;font-weight:700;color:#365b76;line-height:1.6;margin-top:10px;}
.advanced-analysis-targetline{font-size:11px;color:#6b7280;line-height:1.6;margin-top:2px;}
.advanced-panel-score{font-size:12px;font-weight:800;color:#378ADD;white-space:nowrap;}
.advanced-panel-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0 12px;}
.advanced-panel-metric{background:#f8f8f8;border:1px solid #eee;border-radius:10px;padding:10px 12px;}
.advanced-panel-metric span{display:block;font-size:11px;color:#888;margin-bottom:2px;}
.advanced-panel-metric strong{font-size:18px;color:#1a1a1a;}
.advanced-panel-metric em{display:block;font-style:normal;font-size:10px;color:#777;line-height:1.5;margin-top:4px;}
.analysis-loading-card,
.analysis-error-card{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(135deg,#f7fbfa,#f4f8ff);border:1px solid #dbe9e3;border-radius:14px;padding:16px;margin:12px 0;box-shadow:0 10px 28px rgba(15,118,110,.08);}
.analysis-loading-spinner{width:22px;height:22px;border-radius:50%;border:3px solid rgba(15,118,110,.16);border-top-color:#0F766E;flex:0 0 auto;animation:analysisSpin .8s linear infinite;margin-top:2px;}
.analysis-loading-title,
.analysis-error-title{font-size:14px;font-weight:900;color:#123832;line-height:1.5;}
.analysis-loading-note,
.analysis-error-note{font-size:12px;color:#64748b;line-height:1.7;margin-top:3px;}
.analysis-error-card{display:block;background:#fff8f5;border-color:rgba(194,65,59,.22);}
.analysis-error-title{color:#84231f;}
.analysis-retry-btn{margin-top:10px;width:auto;min-height:38px;border:1px solid rgba(194,65,59,.25);background:#fff;color:#84231f;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:800;cursor:pointer;}
@keyframes analysisSpin{to{transform:rotate(360deg);}}
.advanced-score-compact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0;}
.advanced-score-compact-item{background:#f8f8f8;border:1px solid #eee;border-radius:10px;padding:10px 12px;min-height:88px;}
.advanced-score-compact-label{display:block;font-size:11px;color:#777;line-height:1.4;}
.advanced-score-compact-value{display:flex;align-items:baseline;gap:4px;font-size:22px;font-weight:800;color:#1a1a1a;line-height:1.1;margin-top:5px;}
.advanced-score-compact-value.is-empty{display:block;font-size:13px;letter-spacing:0;color:#6b7280;line-height:1.45;margin-top:8px;}
.advanced-score-compact-state{display:block;font-style:normal;font-size:11px;color:#4b5563;line-height:1.5;margin-top:4px;}
.analysis-score-confidence{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:900;line-height:1.3;background:#f2f6f5;border:1px solid rgba(15,118,110,.12);color:#4b5563;}
.analysis-score-confidence.high{background:var(--color-primary-soft,#E3F3F1);border-color:rgba(11,111,104,.18);color:var(--color-primary-dark,#064E49);}
.analysis-score-confidence.medium{background:#eef8f4;border-color:rgba(11,111,104,.14);color:#0B6F68;}
.analysis-score-confidence.low{background:#fff8ea;border-color:rgba(183,121,31,.18);color:#9A6700;}
.analysis-score-confidence.insufficient{background:#f3f4f6;border-color:#e5e7eb;color:#6b7280;}
.advanced-score-compact-item>.analysis-score-confidence{margin-top:7px;}
.analysis-score-subtitle{display:block;font-size:10px;font-weight:700;color:#6b7280;line-height:1.4;margin-top:2px;}
.analysis-score-value{font-size:1em;font-weight:900;color:#123832;}
.analysis-score-unit{font-size:12px;font-weight:900;color:#6b7280;letter-spacing:0;}
.analysis-score-help{font-size:11px;color:#64748b;line-height:1.7;background:#f8fbfa;border:1px solid var(--color-border);border-radius:10px;padding:8px 10px;margin-top:8px;}
.analysis-score-definition{background:#fff;border:1px solid var(--color-border);border-radius:10px;padding:10px 12px;}
.analysis-score-definition-head{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;}
.analysis-score-definition-head strong{font-size:12px;color:#123832;}
.analysis-score-definition-head span{font-size:12px;font-weight:900;color:#123832;}
.analysis-score-definition-head em{font-style:normal;font-size:10px;font-weight:800;color:#0B6F68;background:var(--color-primary-soft);border-radius:999px;padding:2px 7px;}
.analysis-score-definition-sub{font-size:10px;font-weight:700;color:#6b7280;line-height:1.5;margin-top:3px;}
.analysis-score-confidence-note{font-size:11px;line-height:1.65;color:#64748b;background:#f8fbfa;border:1px solid rgba(15,118,110,.1);border-radius:9px;padding:7px 9px;margin-top:7px;}
.analysis-score-factor-list{margin:7px 0 0;padding-left:16px;display:flex;flex-direction:column;gap:4px;}
.analysis-score-factor-list li{font-size:11px;color:#475569;line-height:1.65;}
.analysis-score-next{font-size:11px;line-height:1.7;color:#0f766e;background:var(--color-primary-soft,#E3F3F1);border-radius:10px;padding:8px 9px;margin-top:8px;font-weight:750;}
.analysis-term-help-row{display:grid;grid-template-columns:minmax(70px,.45fr) 1fr;gap:8px;align-items:start;border:1px solid rgba(15,118,110,.1);border-radius:10px;background:#fff;padding:8px 10px;}
.analysis-term-help-row strong{font-size:11px;font-weight:900;color:#123832;}
.analysis-term-help-row span{font-size:11px;line-height:1.65;color:#475569;}
.advanced-summary-details{margin-top:10px;border-top:1px solid #ececec;padding-top:10px;}
.advanced-summary-detail-body{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.advanced-primary-prescription{background:#f8f8f8;border:1px solid #eee;border-radius:10px;padding:12px;}
.advanced-primary-prescription-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;color:#333;margin-bottom:5px;}
.advanced-primary-prescription-spec{font-size:12px;color:#555;line-height:1.6;margin-bottom:5px;}
.advanced-primary-prescription-note{font-size:12px;color:#444;line-height:1.7;}
.advanced-inline-warning{font-size:11px;color:#92400E;background:#FFF7ED;border-radius:8px;padding:7px 9px;line-height:1.6;margin-top:8px;}
.advanced-feedback-compact .advanced-decision-hero{margin-top:2px;}
.advanced-feedback-section{margin-top:12px;}
.advanced-feedback-primary{margin-top:6px;}
.advanced-compare-card{margin-top:12px;}
.advanced-compare-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px;}
.advanced-compare-select{width:100%;}
.advanced-compare-decision{background:linear-gradient(135deg,#f5f9ff,#f7fbf8);border:1px solid #dfe7ef;border-radius:10px;padding:11px 12px;margin-top:12px;font-size:13px;color:#234;line-height:1.75;}
.advanced-compare-keylist{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.advanced-compare-keyitem{background:#f8f8f8;border:1px solid #eee;border-radius:8px;padding:8px 10px;font-size:12px;color:#444;line-height:1.65;}
.advanced-compare-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;}
.advanced-compare-metric{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:10px 12px;}
.advanced-compare-metric span{display:block;font-size:11px;color:#777;}
.advanced-compare-metric strong{display:block;font-size:12px;color:#333;line-height:1.6;margin-top:4px;}
.advanced-compare-metric em{display:block;font-style:normal;font-size:11px;line-height:1.5;margin-top:4px;}
.advanced-compare-diff-up{color:#0F6E56;}
.advanced-compare-diff-down{color:#B91C1C;}
.advanced-compare-details{margin-top:10px;}
.advanced-repro-card{margin-top:12px;}
.advanced-repro-controls{background:#fafafa;border:1px solid #eee;border-radius:10px;padding:10px 12px;margin-top:10px;}
.advanced-repro-select{width:100%;}
.advanced-repro-decision{background:linear-gradient(135deg,#eef8f4,#f6fbff);border:1px solid #d7e9e1;border-radius:10px;padding:11px 12px;margin-top:12px;font-size:13px;color:#234;line-height:1.75;}
.advanced-repro-keylist{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.advanced-repro-keyitem{background:#f8f8f8;border:1px solid #eee;border-radius:8px;padding:8px 10px;font-size:12px;color:#444;line-height:1.65;}
.advanced-repro-checklist{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.advanced-repro-detail{margin-top:10px;}
.advanced-repro-confidence{font-size:11px;font-weight:700;color:#378ADD;line-height:1.6;margin-top:8px;}
.advanced-repro-muted{font-size:11px;color:#777;line-height:1.7;margin-top:8px;}
.advanced-mini-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.advanced-mini-item{background:#f8f8f8;border:1px solid #eee;border-radius:10px;padding:10px 12px;}
.advanced-mini-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;font-size:12px;font-weight:700;color:#333;}
.advanced-mini-spec{font-size:11px;color:#666;line-height:1.5;margin-bottom:4px;}
.advanced-mini-text{font-size:12px;color:#555;line-height:1.6;}
.advanced-mini-metrics{font-size:11px;color:#888;line-height:1.6;margin-top:4px;}
.advanced-prescription-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.advanced-prescription-card{background:#f8f8f8;border:1px solid #eee;border-radius:10px;padding:10px 12px;}
.advanced-confidence{font-size:11px;color:#888;line-height:1.6;margin-top:6px;}
.advanced-block-analysis{background:#fff;border:1px solid #e8e8e8;}
.advanced-block-card{background:#f8f8f8;border:1px solid #eee;border-radius:10px;padding:12px;}
.advanced-block-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;}
.advanced-block-intent{font-size:11px;font-weight:700;color:#378ADD;line-height:1.5;}
.advanced-block-score-row{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:8px 0;}
.advanced-block-score-row span{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:7px 8px;font-size:11px;font-weight:700;color:#555;}
.advanced-prescription-condition{font-size:11px;color:#555;line-height:1.6;margin-top:6px;}
.advanced-warning{font-size:11px;color:#B45309;background:#FEF3C7;border-radius:8px;padding:6px 8px;line-height:1.6;margin-top:6px;}
.advanced-caution{font-size:11px;color:#92400E;background:#FFF7ED;border-radius:8px;padding:6px 8px;line-height:1.6;margin-top:6px;}
.advanced-muted{font-size:11px;color:#999;line-height:1.6;}
@media (max-width:640px){
  .advanced-panel-grid{grid-template-columns:1fr;}
  .advanced-compare-controls{grid-template-columns:1fr;}
  .advanced-compare-grid{grid-template-columns:1fr;}
}


/* =============================================
   目標・フィードバック・メニュー提案
   ============================================= */
/* タブ3枚目 */
.tab-goals{flex:1;padding:11px 0;font-size:14px;font-weight:600;background:#fff;border:none;cursor:pointer;color:#999;transition:all .15s;}
.tab-goals.active{background:#0B6F68;color:#fff;}

/* フィードバックモーダル */
.fb-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:310;display:none;align-items:flex-end;justify-content:center;}
.fb-overlay.open{display:flex;}
.fb-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:88vh;display:flex;flex-direction:column;animation:slideUp .25s ease;}
.fb-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #eee;flex-shrink:0;}
.fb-title{font-size:16px;font-weight:700;color:#1a1a1a;}
.fb-close{background:none;border:none;font-size:22px;color:#aaa;cursor:pointer;width:auto;padding:4px 8px;line-height:1;}
.fb-body{overflow-y:auto;padding:16px 20px 32px;flex:1;}

/* フィードバックカード */
.fb-card{background:#f8f8f8;border-radius:12px;padding:14px 16px;margin-bottom:12px;}
.fb-card-title{font-size:12px;font-weight:700;color:#888;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;}
.fb-compare-note{font-size:12px;line-height:1.55;color:#6b7280;background:#f7faf9;border:1px solid #e0ebe8;border-radius:10px;padding:8px 10px;margin:0 0 8px;}
.advanced-score-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0;}
.advanced-score-item{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:10px;}
.advanced-score-label{font-size:11px;color:#888;}
.advanced-score-value{font-size:18px;font-weight:800;color:#1a1a1a;margin-top:3px;}
.advanced-score-help{font-size:10px;color:#999;line-height:1.5;margin-top:4px;}
.advanced-score-comment{font-size:11px;color:#555;line-height:1.6;margin-top:6px;}
.advanced-analysis-card{border-left:3px solid #378ADD;}
.advanced-analysis-summary{font-size:13px;color:#1a1a1a;line-height:1.7;margin:10px 0 8px;}
.advanced-analysis-list{display:flex;flex-direction:column;gap:5px;margin-bottom:8px;}
.advanced-analysis-item{font-size:12px;color:#555;line-height:1.6;}
.advanced-inline-text{font-size:12px;line-height:1.5;max-width:68%;text-align:right;}
.advanced-analysis-next-wrap{margin-top:10px;padding-top:10px;border-top:1px solid #e6e6e6;}
.advanced-analysis-next-item{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:10px 12px;margin-bottom:8px;}
.advanced-analysis-next-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.advanced-analysis-next-name{font-size:12px;font-weight:700;color:#333;}
.advanced-analysis-next-action{font-size:11px;font-weight:700;color:#378ADD;white-space:nowrap;}
.advanced-analysis-next-spec{font-size:11px;color:#666;line-height:1.5;margin-bottom:4px;}
.advanced-analysis-next-body{font-size:12px;color:#555;line-height:1.6;}
.advanced-analysis-next-condition{font-size:11px;color:#92400E;line-height:1.6;margin-top:4px;}
.advanced-analysis-next-foot{font-size:11px;color:#888;margin-top:4px;}
.advanced-decision-box{background:linear-gradient(135deg,#eef8f4,#eef4ff);border:1px solid #d5e7df;border-radius:10px;padding:10px 12px;margin:10px 0 12px;}
.advanced-coach-summary{font-size:13px;color:#1a1a1a;line-height:1.75;margin-top:4px;}
.advanced-grade-note{font-size:12px;color:#555;line-height:1.6;margin:-2px 0 8px;}
.advanced-priority-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.advanced-priority-item{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:8px 10px;font-size:12px;color:#444;line-height:1.65;}
.advanced-personal-card{border-left:3px solid #0B6F68;}
.advanced-personal-title{color:#0F6E56;}
.advanced-personal-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.advanced-personal-item{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:8px 10px;font-size:12px;color:#444;line-height:1.65;}
.advanced-personal-confidence{font-size:11px;color:#0F6E56;line-height:1.6;margin-top:6px;font-weight:700;}
.advanced-personal-warning{font-size:11px;color:#92400E;background:#FFF7ED;border-radius:8px;padding:6px 8px;line-height:1.6;margin-top:6px;}
.advanced-personal-section{margin-top:10px;}
.advanced-personal-section-title{font-size:12px;font-weight:700;color:#333;cursor:pointer;list-style:none;}
.advanced-personal-summary{font-size:12px;color:#444;line-height:1.7;margin-top:6px;}
.advanced-personal-details{margin-top:10px;border-top:1px solid #ececec;padding-top:10px;}
.advanced-personal-details[open] .advanced-personal-section-title{color:#0F6E56;}
.advanced-personal-detail-item{display:flex;align-items:flex-start;gap:8px;background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:8px 10px;font-size:12px;color:#444;line-height:1.65;margin-top:6px;}
.advanced-personal-empty{font-size:11px;color:#999;line-height:1.6;margin-top:6px;}
.advanced-personal-tag{display:inline-block;min-width:38px;font-size:10px;font-weight:700;color:#0F6E56;background:#E8F7F1;border:1px solid #CDEBDD;border-radius:999px;padding:3px 8px;flex-shrink:0;}
.advanced-personal-muted{font-size:11px;color:#888;line-height:1.6;margin-top:6px;}
@media (max-width:420px){
  .advanced-log-selector,
  .advanced-current-log,
  .advanced-panel-card,
  .fb-card{padding:12px;}
  .advanced-current-log{flex-direction:column;gap:4px;}
  .advanced-current-log-text{text-align:left;width:100%;}
  .advanced-decision-hero{padding:12px 13px;margin-bottom:10px;}
  .advanced-decision-hero-label{font-size:10px;margin-bottom:5px;}
  .advanced-decision-hero-text{font-size:13px;line-height:1.65;}
  .advanced-analysis-meta{font-size:11px;margin-top:8px;}
  .advanced-analysis-targetline{font-size:10px;}
  .advanced-primary-prescription{padding:11px;}
  .advanced-primary-prescription-head{gap:6px;flex-wrap:wrap;}
  .advanced-primary-prescription-note,
  .advanced-primary-prescription-spec{font-size:11px;line-height:1.6;}
  .advanced-score-compact-grid,
  .advanced-score-grid{gap:6px;margin:8px 0;}
  .advanced-score-compact-item{padding:9px 8px;min-height:auto;}
  .advanced-score-compact-label{font-size:10px;}
  .advanced-score-compact-value{font-size:20px;margin-top:4px;}
  .advanced-score-compact-value.is-empty{font-size:12px;margin-top:6px;}
  .analysis-score-unit{font-size:11px;}
  .analysis-score-help{font-size:10px;line-height:1.6;padding:7px 9px;}
  .advanced-score-compact-state{font-size:10px;line-height:1.4;}
  .advanced-summary-details{margin-top:8px;padding-top:8px;}
  .advanced-summary-details>summary,
  .advanced-personal-details>summary{display:block;min-height:42px;padding:10px 12px;border-radius:10px;background:#f8f8f8;border:1px solid #eee;font-size:12px;font-weight:800;color:#365b76;line-height:1.5;cursor:pointer;}
  .advanced-summary-detail-body{gap:5px;margin-top:7px;}
  .advanced-compare-decision,
  .advanced-repro-decision{font-size:12px;line-height:1.65;padding:10px;}
  .advanced-compare-keyitem,
  .advanced-repro-keyitem,
  .advanced-personal-detail-item,
  .advanced-analysis-next-item{padding:8px 9px;font-size:11px;line-height:1.6;}
  .advanced-analysis-next-head{align-items:flex-start;flex-wrap:wrap;gap:4px;}
  .advanced-analysis-next-action{white-space:normal;text-align:left;}
  .advanced-repro-controls,
  .advanced-compare-controls{margin-top:8px;}
  .advanced-personal-section{margin-top:8px;}
  .advanced-personal-summary{font-size:11px;line-height:1.65;}
  .fb-sheet{max-height:92vh;}
  .fb-head{padding:14px 16px 10px;}
  .fb-body{padding:14px 14px 28px;}
  .fb-card-title{font-size:11px;margin-bottom:7px;}
}
/* PRカード */
.fb-pr-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid #eee;font-size:13px;}
.fb-pr-row:last-child{border-bottom:none;}
.fb-pr-name{color:#444;flex:1;font-weight:500;}
.fb-pr-badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;}
.fb-pr-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:700;white-space:nowrap;}
.fb-pr-badge.weight{background:#FEF3C7;color:#92400E;}
.fb-pr-badge.reps{background:#EDE9FE;color:#5B21B6;}
.fb-pr-badge.orm{background:#FCE7F3;color:#9D174D;}
.fb-pr-badge.vol{background:#DCFCE7;color:#166534;}
.fb-ai-bubble{background:linear-gradient(135deg,#f0faf6,#e8f4fe);border-radius:12px;padding:14px 16px;margin-bottom:12px;border-left:3px solid #0B6F68;}
.fb-ai-icon{font-size:20px;margin-bottom:6px;}
.fb-ai-text{font-size:14px;color:#1a1a1a;line-height:1.7;}
.fb-compare-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee;font-size:13px;}
.fb-compare-row:last-child{border-bottom:none;}
.fb-compare-label{color:#666;flex:1;}
.fb-compare-val{font-weight:600;color:#1a1a1a;text-align:right;}
.fb-compare-diff{font-size:12px;margin-left:8px;padding:2px 7px;border-radius:10px;white-space:nowrap;}
.fb-diff-up{background:#E1F5EE;color:#0F6E56;}
.fb-diff-down{background:#FEE2E2;color:#991B1B;}
.fb-diff-same{background:#f0f0f0;color:#888;}

/* 今日のメニュー提案 */
.menu-card{background:#fff;border-radius:12px;border:1px solid #e8e8e8;padding:14px 16px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.menu-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.menu-badge{font-size:11px;padding:3px 10px;border-radius:10px;background:#E1F5EE;color:#0F6E56;font-weight:600;}
.menu-parts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.menu-part-chip{font-size:12px;padding:4px 12px;border-radius:16px;background:#f0faf6;color:#0B6F68;border:1px solid #0B6F68;}
.menu-ex-list{font-size:13px;color:#555;line-height:1.8;}
.menu-empty{text-align:center;color:#aaa;font-size:14px;padding:2rem 0;}

/* 目標設定 */
.goal-item{background:#fff;border-radius:10px;border:1px solid #e8e8e8;padding:12px 14px;margin-bottom:8px;display:flex;align-items:flex-start;gap:10px;}
/* 目標達成率ダッシュボード */
.goal-dashboard{margin-bottom:12px;}
.goal-dash-card{background:#fff;border-radius:12px;border:1px solid #e8e8e8;padding:14px 16px;margin-bottom:10px;}
.goal-dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.goal-dash-title{font-size:13px;font-weight:700;color:#333;flex:1;min-width:0;}
.goal-dash-pct{font-size:16px;font-weight:800;margin-left:10px;white-space:nowrap;}
.goal-dash-pct.achieved{color:#0B6F68;}
.goal-dash-pct.near{color:#378ADD;}
.goal-dash-pct.far{color:#aaa;}
.goal-dash-bar-wrap{background:#f0f0f0;border-radius:20px;height:8px;overflow:hidden;margin-bottom:8px;}
.goal-dash-bar{height:100%;border-radius:20px;transition:width .4s;}
.goal-dash-detail{display:flex;justify-content:space-between;font-size:11px;color:#888;}
.goal-dash-detail span{flex:1;}
.goal-dash-detail .right{text-align:right;}
.goal-dash-na{font-size:12px;color:#bbb;padding:4px 0;}
.goal-item-body{flex:1;}
.goal-item-title{font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:3px;}
.goal-item-detail{font-size:12px;color:#888;}
.goal-item-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;}
.goal-achieve-btn{width:auto;min-height:32px;padding:6px 11px;border:1px solid rgba(11,111,104,.24);border-radius:999px;background:var(--color-primary-soft,#E3F3F1);color:var(--color-primary,#0B6F68);font-size:12px;font-weight:800;cursor:pointer;box-shadow:none;}
.goal-achieve-btn:active{background:#d8eeeb;opacity:1;}
.goal-del-btn{background:none;border:none;color:#ccc;font-size:18px;padding:2px 6px;width:auto;flex-shrink:0;}
.goal-add-form{background:#f8f8f8;border-radius:10px;padding:14px 16px;margin-top:8px;}
/* ── オンボーディングモーダル ── */
.onboarding-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:600;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:16px 0;}
.onboarding-overlay.open{display:flex;}
.onboarding-modal{background:var(--color-surface);border-radius:var(--radius-lg);width:min(96vw,480px);margin:auto;overflow:hidden;box-shadow:var(--shadow-floating);}
.onboarding-header{background:linear-gradient(135deg,#0B6F68,#378ADD);padding:22px 48px 18px 24px;color:#fff;position:relative;}
.onboarding-close-btn{position:absolute;top:12px;right:14px;width:30px;height:30px;border:none;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:20px;line-height:1;cursor:pointer;}
.onboarding-title{font-size:18px;font-weight:800;margin-bottom:4px;}
.onboarding-subtitle{font-size:13px;opacity:.85;line-height:1.5;}
.onboarding-body{padding:20px 20px 0;max-height:72vh;overflow-y:auto;}
.onboarding-intro{background:#f0faf6;border:1px solid #d7f1e7;border-radius:14px;padding:13px 14px;margin-bottom:16px;font-size:13px;line-height:1.65;color:#3f5f55;}
.onboarding-intro-title{font-size:14px;font-weight:800;color:#0B6F68;margin-bottom:4px;}
.onboarding-section{margin-bottom:20px;}
.onboarding-section-title{font-size:13px;font-weight:700;color:#555;margin-bottom:8px;display:flex;align-items:center;gap:5px;}
.onboarding-step-label{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:#eef6ff;color:#378ADD;font-size:10px;font-weight:800;margin-bottom:6px;}
.onboarding-required{font-size:10px;color:#EF6363;font-weight:700;background:#fff0f0;padding:1px 6px;border-radius:8px;}
.onboarding-optional{font-size:10px;color:#8a8a8a;font-weight:700;background:#f3f3f3;padding:1px 6px;border-radius:8px;}
.onboarding-chips{display:flex;flex-wrap:wrap;gap:6px;}
.onboarding-chip{padding:7px 14px;border-radius:20px;border:1.5px solid #d0d0d0;background:#fff;font-size:13px;font-weight:600;color:#666;cursor:pointer;transition:all .15s;}
.onboarding-chip.active{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.onboarding-chip.active-blue{background:#378ADD;border-color:#378ADD;color:#fff;}
.onboarding-chip.active-red{background:#EF6363;border-color:#EF6363;color:#fff;}
.onboarding-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.onboarding-mode-card{display:block;border-radius:14px;padding:13px 13px!important;min-height:108px;text-align:left;border:1.5px solid #d8e5e1!important;background:#fff!important;color:#445!important;}
.onboarding-mode-card.active{background:#f0faf6!important;border-color:#0B6F68!important;box-shadow:0 8px 20px rgba(11,111,104,.12);color:#1a1a1a!important;}
.onboarding-mode-title{font-size:15px;font-weight:900;color:#1a1a1a;margin-bottom:6px;}
.onboarding-mode-desc{font-size:12px;font-weight:600;line-height:1.55;color:#68736f;}
.onboarding-mode-card.active .onboarding-mode-title{color:#0B6F68;}
.onboarding-note{font-size:11px;line-height:1.6;color:#888;margin-top:8px;}
.onboarding-guide-list{display:grid;gap:8px;background:#fafafa;border:1px solid #eee;border-radius:12px;padding:12px;font-size:13px;color:#333;}
.onboarding-select{width:100%;font-size:14px;padding:10px 12px;border:1.5px solid #d0d0d0;border-radius:10px;background:#fff;color:#1a1a1a;}
.onboarding-select:focus{border-color:#0B6F68;outline:none;}
.onboarding-num-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.onboarding-num-item{background:#f8f8f8;border-radius:10px;padding:10px 8px;}
.onboarding-num-label{font-size:11px;color:#aaa;font-weight:600;display:block;margin-bottom:4px;}
.onboarding-num-input{width:100%;font-size:16px;font-weight:700;border:none;border-bottom:2px solid #e0e0e0;background:transparent;text-align:center;padding:2px 0;color:#1a1a1a;outline:none;}
.onboarding-num-input:focus{border-bottom-color:#0B6F68;}
.onboarding-num-unit{font-size:11px;color:#bbb;text-align:center;display:block;margin-top:2px;}
.onboarding-textarea{width:100%;font-size:13px;border:1.5px solid #d0d0d0;border-radius:10px;padding:10px 12px;resize:none;min-height:70px;box-sizing:border-box;font-family:inherit;line-height:1.6;color:#1a1a1a;}
.onboarding-textarea.compact{min-height:54px;margin-top:8px;}
.onboarding-textarea:focus{border-color:#0B6F68;outline:none;}
.onboarding-optional-details{border:1px solid #eee;border-radius:14px;background:#fbfbfb;margin-bottom:14px;}
.onboarding-optional-details summary{cursor:pointer;padding:12px 14px;font-size:12px;font-weight:800;color:#666;list-style:none;}
.onboarding-optional-details summary::-webkit-details-marker{display:none;}
.onboarding-optional-details summary::after{content:'▼';float:right;color:#aaa;font-size:10px;margin-top:2px;}
.onboarding-optional-details[open] summary::after{content:'▲';}
.onboarding-optional-details .onboarding-section{padding:0 14px;margin-bottom:16px;}
.onboarding-footer{padding:16px 20px 20px;border-top:1px solid #f0f0f0;position:sticky;bottom:0;background:#fff;}
.onboarding-save-btn{width:100%;padding:14px;font-size:15px;font-weight:800;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;}
.onboarding-save-btn:disabled{opacity:.5;cursor:not-allowed;}
.onboarding-skip{display:block;text-align:center;font-size:12px;color:#aaa;margin-top:10px;cursor:pointer;text-decoration:underline;}
.onboarding-msg{font-size:12px;text-align:center;min-height:18px;margin-top:6px;}
.onboarding-msg.success{color:#0B6F68;font-weight:700;}
.onboarding-msg.error{color:#EF6363;font-weight:700;}
/* 目標タブのプロフィール編集ボタン */
.profile-edit-btn{width:100%;padding:10px;font-size:13px;background:#f0faf6;border:1.5px solid #0B6F68;color:#0B6F68;border-radius:10px;font-weight:600;cursor:pointer;margin-bottom:12px;}
/* ── 利用モード切替 ── */
/* simple-hide: シンプルモード時に非表示 */
body.simple-mode .simple-hide{display:none!important;}
/* モード切替トースト */
.mode-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:#1a1a1a;color:#fff;font-size:13px;font-weight:600;padding:10px 20px;border-radius:20px;z-index:9999;opacity:0;transition:opacity .3s;pointer-events:none;max-width:88vw;text-align:center;}
.mode-toast.show{opacity:1;}

/* =============================================
   Self-Coaching Journey / マイルストーン
   ============================================= */
.milestone-panel{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:420;display:none;align-items:flex-end;justify-content:center;}
.milestone-panel.open{display:flex;}
.milestone-sheet{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--color-bg,#fff);border-radius:22px 22px 0 0;box-shadow:0 -14px 36px rgba(15,23,42,.2);animation:slideUp .24s ease;}
.milestone-header{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 12px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border,#e8e8e8);}
.milestone-header-kicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary,#0B6F68);margin-bottom:2px;}
.milestone-header-title{font-size:20px;font-weight:900;color:var(--color-text,#17212b);letter-spacing:-.02em;}
.milestone-close{width:34px;height:34px;border:none;border-radius:999px;background:var(--color-surface-soft,#f6f8f7);color:var(--color-muted,#777);font-size:20px;line-height:1;cursor:pointer;}
.milestone-panel-body{padding:16px 20px 24px;}
.milestone-panel-lead{font-size:13px;line-height:1.75;color:var(--color-muted,#777);background:var(--color-surface,#fff);border:1px solid var(--color-border,#e8e8e8);border-radius:var(--radius-lg,14px);padding:13px 14px;margin-bottom:12px;}
.milestone-next{background:linear-gradient(135deg,var(--color-primary-soft,#E7F7F1),var(--color-accent-soft,#EFFAF7));border:1px solid rgba(11,111,104,.18);border-radius:var(--radius-lg,14px);padding:14px 15px;margin-bottom:14px;}
.milestone-next.complete{background:linear-gradient(135deg,#f7fbff,#f0faf6);}
.milestone-next-label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary,#0B6F68);margin-bottom:4px;}
.milestone-next-title{font-size:16px;font-weight:900;color:var(--color-text,#17212b);margin-bottom:4px;}
.milestone-next-desc{font-size:12px;line-height:1.7;color:var(--color-muted,#777);}
.milestone-section-title{font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted,#777);margin:18px 2px 8px;}
.milestone-card{display:flex;gap:11px;background:var(--color-surface,#fff);border:1px solid var(--color-border,#e8e8e8);border-radius:var(--radius-lg,14px);padding:13px 14px;margin-bottom:9px;box-shadow:var(--shadow-soft,0 1px 3px rgba(0,0,0,.04));}
.milestone-card.unlocked{border-color:rgba(11,111,104,.26);background:linear-gradient(180deg,#fff,#fbfffd);}
.milestone-card.locked{background:var(--color-surface-soft,#f8f9f9);}
.milestone-icon{width:30px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--color-surface-soft,#f5f5f5);border:1px solid var(--color-border,#e8e8e8);font-size:15px;color:var(--color-muted,#777);}
.milestone-card.unlocked .milestone-icon{background:var(--color-primary,#0B6F68);border-color:var(--color-primary,#0B6F68);color:#fff;font-weight:900;}
.milestone-card-body{min-width:0;flex:1;}
.milestone-stage{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted,#999);margin-bottom:2px;}
.milestone-title{font-size:14px;font-weight:900;color:var(--color-text,#17212b);line-height:1.35;}
.milestone-desc{font-size:12px;color:var(--color-muted,#777);line-height:1.65;margin-top:3px;}
.milestone-progress{display:flex;align-items:center;gap:8px;margin-top:9px;}
.milestone-progress-bar{height:6px;flex:1;background:#e8eeee;border-radius:999px;overflow:hidden;}
.milestone-progress-bar span{display:block;height:100%;background:var(--color-primary,#0B6F68);border-radius:999px;}
.milestone-progress-text{font-size:11px;font-weight:800;color:var(--color-muted,#777);white-space:nowrap;}
.milestone-toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translate(-50%,14px);z-index:10000;display:flex;align-items:center;gap:8px;max-width:90vw;padding:11px 15px;border-radius:999px;background:#17212b;color:#fff;font-size:13px;font-weight:800;box-shadow:0 10px 30px rgba(15,23,42,.22);opacity:0;pointer-events:none;transition:opacity .24s ease,transform .24s ease;}
.milestone-toast.show{opacity:1;transform:translate(-50%,0);}
.milestone-toast-icon{width:22px;height:22px;border-radius:999px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:12px;}
.milestone-report{margin-top:10px;background:var(--color-surface-soft,#f8f9f9);border:1px solid var(--color-border,#e8e8e8);border-radius:12px;padding:10px 11px;}
.milestone-report-title{font-size:12px;font-weight:900;color:var(--color-text,#17212b);margin-bottom:6px;}
.milestone-report-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--color-muted,#777);padding:4px 0;border-bottom:1px solid rgba(0,0,0,.04);}
.milestone-report-row strong{color:var(--color-text,#17212b);text-align:right;}
.milestone-report-next{font-size:12px;line-height:1.6;color:var(--color-primary,#0B6F68);font-weight:700;margin-top:8px;}
.milestone-certificate{margin-top:10px;padding:14px;border-radius:16px;background:linear-gradient(135deg,#f7fbff,#effaf7);border:1px solid rgba(11,111,104,.24);}
.milestone-certificate-kicker{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary,#0B6F68);font-weight:900;}
.milestone-certificate-title{font-size:18px;font-weight:900;color:var(--color-text,#17212b);margin:3px 0 7px;}
.milestone-certificate-body,.milestone-certificate-next{font-size:12px;line-height:1.75;color:var(--color-muted,#666);}
.milestone-certificate-next{margin-top:8px;font-weight:700;color:var(--color-text,#17212b);}
.milestone-certificate-meta{font-size:11px;color:var(--color-muted,#888);margin-top:8px;}
.milestone-empty{margin-bottom:12px;}
.milestone-mode-note{font-size:12px;line-height:1.7;color:var(--color-muted,#777);background:var(--color-surface-soft,#f8f9f9);border-radius:12px;padding:11px 12px;margin-top:12px;}
@media (max-width:420px){
  .milestone-sheet{max-height:90vh;border-radius:18px 18px 0 0;}
  .milestone-header{padding:16px 16px 11px;}
  .milestone-panel-body{padding:14px 16px 22px;}
  .milestone-header-title{font-size:18px;}
  .milestone-card{padding:12px;gap:10px;}
  .milestone-toast{bottom:calc(78px + env(safe-area-inset-bottom));font-size:12px;border-radius:18px;}
}
/* モードバッジ（ヘッダー付近） */
.mode-badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:700;margin-left:6px;vertical-align:middle;}
.mode-badge.simple{background:#f0faf6;color:#0B6F68;border:1px solid #0B6F68;}
.mode-badge.advanced{background:#eef4ff;color:#378ADD;border:1px solid #378ADD;}
.goal-add-form input,.goal-add-form select,.goal-add-form textarea{margin-bottom:8px;font-size:14px;}
.goal-add-form textarea{min-height:60px;resize:none;}
.goal-add-btn{width:100%;padding:11px;font-size:14px;background:#0B6F68;border:none;color:#fff;font-weight:600;}
.goal-msg{font-size:13px;text-align:center;padding:8px 0;min-height:20px;transition:opacity .3s;}
/* =============================================
   週間スケジュール
   ============================================= */
.schedule-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px;}
.schedule-day-col{display:flex;flex-direction:column;align-items:center;gap:4px;}
.schedule-day-label{font-size:11px;font-weight:700;color:#888;text-align:center;padding:4px 0;}
.schedule-day-label.today-label{color:#0B6F68;}

/* 月間カレンダー */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-dow{font-size:10px;font-weight:700;color:#aaa;text-align:center;padding:4px 0;}
.cal-dow.sun{color:#EF6363;}.cal-dow.sat{color:#378ADD;}
.cal-cell{min-height:44px;border-radius:8px;padding:3px;cursor:pointer;position:relative;border:1.5px solid transparent;transition:all .12s;background:#fafafa;}
.cal-cell:active{opacity:.7;}
.cal-cell.today{border-color:#0B6F68;background:#f0faf6;}
.cal-cell.other-month{opacity:.35;}
.cal-cell.has-override{background:#E8F8F2;}
.cal-cell.has-weekly{background:#f5f5f5;}
.cal-date{font-size:10px;font-weight:600;color:#555;text-align:right;padding:1px 2px;}
.cal-date.sun{color:#EF6363;}.cal-date.sat{color:#378ADD;}
.cal-date.today-num{color:#0B6F68;font-weight:800;}
.cal-chips{display:flex;flex-direction:column;gap:1px;margin-top:1px;}
.cal-chip{font-size:7px;padding:1px 3px;border-radius:3px;background:#0B6F68;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.cal-chip.weekly{background:#bbb;}.cal-chip.override{background:#0B6F68;}
.cal-chip.style-chip{background:#378ADD;}
.schedule-slot{width:100%;min-height:36px;border-radius:8px;background:#f5f5f5;border:1.5px dashed #ddd;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-size:9px;color:#bbb;text-align:center;padding:2px;gap:2px;transition:all .15s;}
.schedule-slot:active{opacity:.7;}
.schedule-slot.has-plan{background:#E8F8F2;border:1.5px solid #0B6F68;color:#0F6E56;}
.schedule-slot.today-col{border-color:#0B6F68;}
.schedule-slot.today-col.has-plan{background:#d4f5e8;}
.plan-chip{font-size:8px;padding:1px 4px;border-radius:6px;background:#0B6F68;color:#fff;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.plan-chip.style-chip{background:#378ADD;}

/* スケジュール編集モーダル */
.sched-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:320;display:none;align-items:flex-end;justify-content:center;}
.sched-overlay.open{display:flex;}
.sched-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;animation:slideUp .25s ease;}
.sched-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #eee;flex-shrink:0;}
.sched-title{font-size:16px;font-weight:700;color:#1a1a1a;}
.sched-close{background:none;border:none;font-size:22px;color:#aaa;cursor:pointer;width:auto;padding:4px 8px;}
.sched-body{overflow-y:auto;padding:16px 20px 32px;flex:1;}
.sched-part-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;}
.sched-chip{font-size:12px;padding:7px 4px;border-radius:8px;border:1.5px solid #d0d0d0;background:#fff;color:#666;cursor:pointer;text-align:center;width:auto;transition:all .15s;}
.sched-chip.active{background:#0B6F68;border-color:#0B6F68;color:#fff;}
.sched-style-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:16px;}
.sched-pair-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.sched-pair-item{background:#f8f8f8;border-radius:10px;padding:10px 12px;border:1.5px solid #e8e8e8;}
.sched-pair-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.sched-pair-part{font-size:14px;font-weight:700;color:#1a1a1a;}
.sched-pair-del{background:none;border:none;color:#ccc;font-size:16px;padding:0 4px;width:auto;cursor:pointer;}
.sched-style-row{display:flex;gap:5px;flex-wrap:wrap;}
.sched-style-pill{font-size:11px;padding:4px 10px;border-radius:12px;border:1px solid #d0d0d0;background:#fff;color:#666;cursor:pointer;width:auto;transition:all .12s;}
.sched-style-pill.active-high{background:#EF6363;border-color:#EF6363;color:#fff;}
.sched-style-pill.active-vol{background:#378ADD;border-color:#378ADD;color:#fff;}
.sched-style-pill.active-speed{background:#8B5CF6;border-color:#8B5CF6;color:#fff;}
.sched-style-pill.active-recover{background:#9CA3AF;border-color:#9CA3AF;color:#fff;}
.sched-add-part-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.sched-add-chip{font-size:12px;padding:6px 10px;border-radius:8px;border:1.5px solid #d0d0d0;background:#fff;color:#666;cursor:pointer;width:auto;transition:all .12s;}
.sched-add-chip:active{opacity:.7;}
.sched-add-chip.added{background:#e8e8e8;color:#bbb;border-color:#e8e8e8;cursor:default;}

.sched-save-btn{width:100%;padding:12px;background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;font-size:15px;font-weight:800;border-radius:var(--radius-md);margin-bottom:8px;min-height:44px;}
.sched-clear-btn{width:100%;padding:10px;background:var(--color-surface);border:1px solid #e24b4b;color:#e24b4b;font-size:14px;border-radius:var(--radius-md);}
/* テンプレートUI */
.tpl-bar{display:flex;gap:8px;margin-bottom:10px;}
.tpl-btn{flex:1;font-size:13px;padding:9px;border-radius:8px;font-weight:600;cursor:pointer;width:auto;}
.mode-flow-hint{font-size:12px;line-height:1.6;color:#68758a;background:#f8fbff;border:1px solid #e7eef8;border-radius:10px;padding:8px 10px;margin:4px 0 10px;}
.exec-start-btn{background:var(--color-primary)!important;color:#fff!important;border-color:var(--color-primary)!important;font-weight:900!important;box-shadow:0 5px 14px rgba(11,111,104,.18)!important;}
/* セッション実行モード */
.exec-overlay{position:fixed;inset:0;background:#0f1923;z-index:500;display:none;flex-direction:column;overflow:hidden;}
.exec-overlay.open{display:flex;}
.exec-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;background:#111e28;flex-shrink:0;}
.exec-progress{font-size:13px;color:rgba(255,255,255,.6);font-weight:600;}
.exec-close-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.82);font-size:13px;padding:7px 16px;border-radius:20px;cursor:pointer;width:auto;font-weight:700;}
.exec-body{flex:1;overflow-y:auto;padding:20px 18px 0;}
.exec-current-card{background:linear-gradient(135deg,rgba(11,111,104,.18),rgba(55,138,221,.12));border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:14px 14px 12px;margin-bottom:12px;}
.exec-kicker{font-size:11px;font-weight:900;color:#8EE2C2;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}
.exec-current-title{font-size:24px;font-weight:900;color:#fff;line-height:1.25;letter-spacing:-.02em;word-break:break-word;}
.exec-current-block{font-size:12px;font-weight:800;color:#7DD3FC;margin-top:5px;line-height:1.4;}
.exec-current-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:12px;font-weight:800;color:rgba(255,255,255,.72);}
.exec-ex-aim{font-size:12px;color:rgba(255,255,255,.55);margin-top:8px;line-height:1.5;}
.exec-prev{font-size:12px;color:#F59E0B;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;padding:8px 12px;margin-bottom:14px;line-height:1.6;}
.exec-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;}
.exec-input-wrap{background:#1a2d3a;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px 10px;text-align:center;}
.exec-input-label{font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:block;}
.exec-field-label{display:flex;align-items:center;justify-content:center;gap:5px;min-height:16px;margin-bottom:8px;font-size:10px;color:rgba(255,255,255,.46);font-weight:800;letter-spacing:.04em;text-transform:uppercase;}
.exec-input-wrap input,
.exec-input-wrap select{background:transparent;border:none;border-bottom:2px solid rgba(255,255,255,.2);color:#fff;font-size:28px;font-weight:800;text-align:center;text-align-last:center;width:100%;padding:4px 0;outline:none;}
.exec-input-wrap select{font-size:18px;min-height:41px;}
.exec-input-wrap select option{color:#10201f;background:#fff;}
.exec-input-wrap input:focus,
.exec-input-wrap select:focus{border-bottom-color:#0B6F68;}
.exec-input-unit{font-size:11px;color:rgba(255,255,255,.4);margin-top:4px;display:block;}
.exec-cardio-inputs .exec-input-wrap{
  background:rgba(11,111,104,.14);
  border-color:rgba(125,211,252,.18);
}
.exec-cardio-inputs .exec-input-label{
  color:rgba(142,226,194,.78);
}
.exec-cardio-detail-fields .exec-advanced-field{
  background:rgba(255,255,255,.055);
}
.exec-cardio-rpe-wrap .exec-input-unit{
  color:rgba(142,226,194,.62);
}
.exec-detail-title{font-size:11px;font-weight:900;color:rgba(255,255,255,.45);letter-spacing:.08em;text-transform:uppercase;margin:4px 0 8px;}
.exec-side-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:9px 10px;margin-bottom:10px;}
.exec-side-row .exec-input-label{margin:0 4px 0 0;}
.exec-side-toggle{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.05);}
.exec-advanced-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.exec-advanced-field{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 7px;text-align:center;}
.exec-advanced-field span{display:block;font-size:10px;color:rgba(255,255,255,.45);font-weight:700;margin-bottom:5px;}
.exec-advanced-field .exec-field-label{display:flex;align-items:center;justify-content:center;gap:5px;margin-bottom:7px;color:rgba(255,255,255,.52);}
.exec-advanced-field input{width:100%;height:36px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(255,255,255,.06);color:#fff;font-size:16px;font-weight:700;text-align:center;outline:none;}
.exec-advanced-field input:focus{border-color:#0B6F68;background:rgba(11,111,104,.12);}
.exec-help-wrap{position:relative;display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;}
.exec-help-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.78);font-size:11px;font-weight:950;line-height:1;box-shadow:none;cursor:pointer;}
.exec-help-btn:active{transform:translateY(1px);}
.exec-help-popover{display:none;position:absolute;z-index:560;left:50%;top:calc(100% + 7px);transform:translateX(-50%);width:min(260px,calc(100vw - 42px));padding:11px 12px;border:1px solid rgba(142,226,194,.22);border-radius:14px;background:rgba(15,31,44,.97);box-shadow:0 18px 44px rgba(0,0,0,.35);color:rgba(255,255,255,.82);font-size:12px;line-height:1.6;text-align:left;text-transform:none;letter-spacing:0;}
.exec-help-popover[hidden]{display:none!important;}
.exec-help-popover.open:not([hidden]){display:block;}
.exec-help-popover strong{display:block;margin:0 0 4px;color:#8EE2C2;font-size:12px;font-weight:950;}
.exec-advanced-field .exec-help-popover span,
.exec-help-popover span{display:block;margin:0;color:rgba(255,255,255,.82);font-size:12px;font-weight:700;line-height:1.6;}
.exec-help-close{margin-top:8px;min-height:28px;width:auto;padding:5px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;font-size:11px;font-weight:850;box-shadow:none;}
.exec-help-sheet{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:9999;max-width:calc(100vw - 24px);max-height:42vh;overflow-y:auto;box-sizing:border-box;padding:13px 14px;border:1px solid rgba(142,226,194,.26);border-radius:18px;background:linear-gradient(135deg,rgba(13,28,39,.98),rgba(20,43,55,.96));box-shadow:0 18px 52px rgba(0,0,0,.42);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:rgba(255,255,255,.86);overflow-wrap:anywhere;word-break:normal;white-space:normal;-webkit-overflow-scrolling:touch;}
.exec-help-sheet[hidden]{display:none!important;}
.exec-help-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;}
.exec-help-sheet-title{display:block;min-width:0;color:#8EE2C2;font-size:13px;font-weight:950;line-height:1.35;}
.exec-help-sheet-body{font-size:12px;font-weight:750;line-height:1.65;color:rgba(255,255,255,.84);}
.exec-help-sheet-close{flex:0 0 auto;width:auto;min-height:32px;padding:5px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.09);color:#fff;font-size:12px;font-weight:900;box-shadow:none;touch-action:manipulation;}
.exec-rest-start-btn{width:100%;margin:2px 0 12px;padding:12px 12px;min-height:46px;font-size:14px;border-color:var(--color-primary);color:#fff;background:rgba(11,111,104,.24);font-weight:900;}
.exec-note-input{width:100%;height:40px;margin:0 0 12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#fff;border-radius:10px;font-size:16px;padding:8px 11px;}
.exec-note-input::placeholder{color:rgba(255,255,255,.35);}
.exec-note-input:focus{border-color:#0B6F68;background:rgba(11,111,104,.12);}
.exec-quick-btns{display:flex;gap:6px;justify-content:center;margin-top:6px;flex-wrap:wrap;}
.exec-quick-btn{font-size:12px;padding:5px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:transparent;color:rgba(255,255,255,.7);cursor:pointer;width:auto;min-width:38px;flex:1 1 38px;}
.exec-quick-btn.minus{border-color:#EF6363;color:#EF6363;}
.exec-quick-btn.plus{border-color:#0B6F68;color:#0B6F68;}
.exec-set-nav{display:flex;gap:8px;margin-bottom:12px;}
.exec-set-nav button{flex:1;padding:14px;font-size:15px;font-weight:700;border-radius:10px;cursor:pointer;width:auto;}
.exec-prev-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.68);box-shadow:none;}
.exec-next-btn{background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;box-shadow:0 8px 20px rgba(11,111,104,.18);}
.exec-finish-set-btn{background:var(--color-accent)!important;border-color:var(--color-accent)!important;box-shadow:0 8px 20px rgba(55,138,221,.16);}
.exec-exercise-jump{display:flex;gap:8px;margin-bottom:8px;overflow-x:auto;padding-bottom:3px;-webkit-overflow-scrolling:touch;}
.exec-exercise-jump::-webkit-scrollbar{display:none;}
.exec-exercise-pill{flex:1;min-width:72px;padding:7px 6px;border-radius:9px;cursor:pointer;text-align:center;font-size:10px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.exec-footer{padding:12px 18px 20px;background:#111e28;flex-shrink:0;}
.exec-done-btn{width:100%;padding:14px;font-size:16px;font-weight:800;background:rgba(11,111,104,.15);border:1.5px solid var(--color-primary);color:var(--color-primary);border-radius:var(--radius-md);cursor:pointer;}
.exec-done-btn.all-done{background:var(--color-primary);color:#fff;}
.exec-set-dots{display:flex;gap:5px;justify-content:center;margin-bottom:14px;flex-wrap:wrap;}
.exec-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.2);transition:background .2s;}
.exec-dot.done{background:#0B6F68;}
.exec-dot.current{background:#fff;}
@media (max-width:420px){
  .app{padding-left:12px;padding-right:12px;}
  .card{padding:14px 12px;}
  .mode-flow-hint{font-size:11px;padding:7px 9px;margin-bottom:8px;}
  .tpl-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
  .tpl-btn{min-height:42px;padding:9px 6px;font-size:12px;}
  .tpl-bar .exec-start-btn{grid-column:1 / -1;min-height:46px;font-size:14px;}
  .save-flow-hint{font-size:11px;padding:8px 9px;}
  .save-btn{min-height:48px;font-size:16px;}
  .set-row{grid-template-columns:28px 1fr 1fr 1fr 34px!important;gap:4px;padding:5px;}
  .set-table-head{grid-template-columns:28px 1fr 1fr 1fr 34px!important;gap:4px;}
  .set-row input{font-size:16px;min-height:40px;padding:8px 4px;}
  .advanced-set-fields,.exec-advanced-fields{grid-template-columns:repeat(2,minmax(0,1fr));}
  .set-side-row{align-items:stretch;}
  .set-side-row .set-timer-btn{margin-left:0;width:100%;flex-basis:100%;}
  .rest-timer-bar.fixed{width:calc(100% - 16px);bottom:calc(env(safe-area-inset-bottom,0px) + 6px);padding:10px 12px;border-radius:12px;}
  .rest-timer-top{margin-bottom:6px;}
  .rest-timer-display{font-size:34px;margin-bottom:8px;}
  .rest-timer-presets{gap:4px;margin-bottom:8px;}
  .rest-timer-preset{font-size:11px;padding:6px 2px;}
  .rest-timer-btn{min-height:42px;padding:9px 6px;}
  body.has-rest-timer .app{padding-bottom:calc(var(--rest-timer-reserve-mobile) + env(safe-area-inset-bottom,0px));}
  body.has-rest-timer .exec-body{padding-bottom:var(--rest-timer-reserve-mobile);}
  body.has-rest-timer .exec-footer{padding-bottom:calc(var(--rest-timer-reserve-mobile) - 24px + env(safe-area-inset-bottom,0px));}
  .exec-body{padding:16px 12px 0;}
  .exec-current-card{padding:12px;margin-bottom:10px;}
  .exec-current-title{font-size:21px;}
  .exec-current-meta{font-size:11px;}
  .exec-inputs{gap:7px;margin-bottom:14px;}
  .exec-input-wrap{padding:12px 7px;}
  .exec-input-wrap input{font-size:24px;}
  .exec-quick-btns{gap:4px;}
  .exec-quick-btn{font-size:11px;padding:5px 4px;min-width:34px;}
  .exec-set-nav button{padding:13px 8px;}
  .tpl-body{padding:14px 16px 28px;}
  .tpl-save-form{padding:12px;}
  .tpl-radio-group,.tpl-save-method-group{padding:9px;}
  .tpl-radio-card{padding:9px;}
  .tpl-item{align-items:flex-start;gap:8px;}
  .tpl-item-btns{flex-direction:column;}
  .tpl-load-btn,.tpl-del-btn{padding:7px 10px;font-size:12px;}
  .onboarding-overlay{padding:8px 0;}
  .onboarding-modal{width:calc(100vw - 16px);border-radius:16px;}
  .onboarding-header{padding:18px 44px 14px 18px;}
  .onboarding-body{padding:16px 14px 0;max-height:70vh;}
  .onboarding-mode-grid{grid-template-columns:1fr;gap:8px;}
  .onboarding-mode-card{min-height:auto;padding:12px!important;}
  .onboarding-num-row{grid-template-columns:1fr 1fr;}
  .onboarding-footer{padding:13px 14px calc(16px + env(safe-area-inset-bottom,0px));}
}
.tpl-btn.save{background:var(--color-warning-soft);border:1px solid #BA7517;color:#BA7517;}
.tpl-btn.load{background:var(--color-accent-soft);border:1px solid var(--color-accent);color:var(--color-accent);}
.tpl-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:330;display:none;align-items:flex-end;justify-content:center;}
.tpl-overlay.open{display:flex;}
.tpl-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .25s ease;}
.tpl-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #eee;flex-shrink:0;}
.tpl-title{font-size:16px;font-weight:700;}
.tpl-close{background:none;border:none;font-size:22px;color:#aaa;cursor:pointer;width:auto;padding:4px 8px;}
.tpl-body{overflow-y:auto;padding:16px 20px 32px;flex:1;}
.tpl-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#f8f8f8;border-radius:10px;margin-bottom:8px;border:1px solid #eee;}
.tpl-item-info{flex:1;}
.tpl-item-name{font-size:14px;font-weight:700;color:#1a1a1a;margin-bottom:3px;}
.tpl-item-meta{font-size:12px;color:#aaa;}
.tpl-item-btns{display:flex;gap:6px;flex-shrink:0;}
.tpl-load-btn{font-size:13px;padding:7px 14px;background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:auto;font-weight:800;}
.tpl-del-btn{font-size:13px;padding:7px 10px;background:var(--color-risk-soft);border:1px solid #e24b4b;color:#b42318;border-radius:var(--radius-sm);cursor:pointer;width:auto;font-weight:700;}
.tpl-empty{text-align:center;color:#aaa;padding:2rem 0;font-size:14px;}
.tpl-empty.empty-state{margin-top:4px;}
.tpl-save-form{background:#f8f8f8;border-radius:10px;padding:14px;margin-bottom:12px;}
.tpl-save-form input,.tpl-save-form select{margin-bottom:8px;font-size:14px;}
.tpl-save-type-title{font-size:11px;font-weight:800;color:#888;margin-bottom:6px;letter-spacing:.04em;}
.tpl-radio-group,.tpl-save-method-group{background:#fff;border:1px solid #eee;border-radius:12px;padding:10px;margin:8px 0 10px;}
.tpl-save-method-group{background:#fbfbfb;}
.tpl-radio-card{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1.5px solid #eee;border-radius:10px;background:#fff;font-size:13px;color:#333;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;}
.tpl-radio-card+.tpl-radio-card{margin-top:7px;}
.tpl-radio-card input{position:absolute;opacity:0;pointer-events:none;}
.tpl-radio-card.active{background:#f0faf6;border-color:#0B6F68;box-shadow:0 3px 10px rgba(11,111,104,.08);}
.tpl-radio-card.compact{align-items:center;padding:9px 10px;}
.tpl-radio-dot{width:17px;height:17px;border-radius:50%;border:2px solid #c7cfd8;background:#fff;flex:0 0 auto;margin-top:1px;box-sizing:border-box;position:relative;}
.tpl-radio-card.active .tpl-radio-dot{border-color:#0B6F68;}
.tpl-radio-card.active .tpl-radio-dot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:#0B6F68;}
.tpl-sample-card{
  margin-top:14px;
  padding:13px;
  border:1px solid rgba(11,111,104,.18);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(227,243,241,.78),rgba(255,255,255,.94));
  color:var(--color-text);
  text-align:left;
}
.tpl-sample-card strong{
  display:block;
  color:var(--color-primary-dark);
  font-size:13px;
  font-weight:950;
  margin-bottom:4px;
}
.tpl-sample-card span{
  display:block;
  color:var(--color-muted-strong);
  font-size:12px;
  font-weight:750;
  line-height:1.6;
}
.tpl-sample-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.tpl-sample-btn{
  flex:1 1 150px;
  min-height:40px;
  border-radius:999px;
  border:1px solid var(--color-primary);
  background:var(--color-primary);
  color:#fff;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.tpl-sample-btn.secondary{
  background:#fff;
  color:var(--color-primary);
}
.tpl-radio-title{display:block;font-size:13px;color:#1a1a1a;font-weight:800;margin-bottom:2px;}
.tpl-radio-desc{display:block;font-size:11px;line-height:1.5;color:#888;font-weight:500;}
.tpl-save-note{font-size:11px;color:#999;line-height:1.5;margin:2px 0 10px;}
.tpl-save-clarity{display:grid;grid-template-columns:1fr;gap:8px;margin:10px 0;}
.template-help-toggle{
  margin:8px 0 10px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:12px;
  background:rgba(255,255,255,.82);
  overflow:hidden;
}
.template-help-toggle summary{
  min-height:38px;
  padding:9px 11px;
  color:var(--color-primary-dark);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.template-help-body{
  padding:0 11px 11px;
  color:var(--color-muted-strong);
  font-size:11px;
  line-height:1.65;
}
.template-help-body p{
  margin:6px 0 0;
}
.template-clarity-card{
  border:1px solid rgba(15,118,110,.14);
  border-radius:14px;
  background:rgba(15,118,110,.045);
  overflow:hidden;
}
.template-clarity-card.plan{
  background:rgba(55,138,221,.06);
  border-color:rgba(55,138,221,.16);
}
.template-clarity-card summary{
  padding:10px 11px;
  cursor:pointer;
}
.template-clarity-card summary span{
  display:block;
  font-size:12px;
  color:var(--color-text);
  font-weight:950;
  margin-bottom:3px;
}
.template-clarity-card summary em{
  display:block;
  font-size:11px;
  line-height:1.55;
  color:var(--color-muted-strong);
  font-style:normal;
}
.template-clarity-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:0 11px 11px;
}
.template-clarity-grid strong{
  display:block;
  font-size:11px;
  color:var(--color-muted-strong);
  font-weight:950;
  margin-bottom:5px;
}
.template-clarity-list{
  margin:0;
  padding-left:16px;
  color:var(--color-muted);
  font-size:10.5px;
  line-height:1.5;
}
.template-load-help{
  margin:0 0 12px;
  padding:11px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:14px;
  background:rgba(255,255,255,.82);
}
.template-load-help-title{
  font-size:12px;
  font-weight:950;
  color:var(--color-text);
  margin-bottom:8px;
}
.template-load-help-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.template-load-help-card{
  padding:9px;
  border:1px solid rgba(15,118,110,.12);
  border-radius:12px;
  background:rgba(15,118,110,.045);
}
.template-load-help-card.plan{
  background:rgba(55,138,221,.06);
  border-color:rgba(55,138,221,.16);
}
.template-load-help-card strong,
.template-load-help-card span{
  display:block;
}
.template-load-help-card strong{
  color:var(--color-text);
  font-size:12px;
  font-weight:950;
  margin-bottom:4px;
}
.template-load-help-card span,
.template-load-edit-note{
  color:var(--color-muted-strong);
  font-size:11px;
  line-height:1.55;
}
.template-load-edit-note{
  margin-top:8px;
}
.tpl-save-clarity-card{padding:10px;border:1px solid rgba(15,118,110,.14);border-radius:12px;background:rgba(15,118,110,.045);}
.tpl-save-clarity-card.plan{background:rgba(55,138,221,.06);border-color:rgba(55,138,221,.16);}
.tpl-save-clarity-card strong{display:block;font-size:12px;color:var(--color-text);font-weight:900;margin-bottom:5px;}
.tpl-save-clarity-card span,
.tpl-save-clarity-card em{display:block;font-size:11px;line-height:1.55;color:var(--color-muted-strong);font-style:normal;}
.tpl-save-clarity-card em{margin-top:3px;color:var(--color-muted);}
.tpl-part-preview{display:inline-flex;align-items:center;max-width:100%;margin:0 0 8px;padding:5px 9px;border-radius:999px;background:var(--color-surface-soft);border:1px solid var(--color-border);color:var(--color-muted-strong);font-size:11px;font-weight:850;}
.tpl-save-submit{width:100%;padding:11px;background:#BA7517;border:1px solid #BA7517;color:#fff;font-size:14px;font-weight:800;border-radius:var(--radius-md);cursor:pointer;min-height:44px;}
.tpl-item-date{font-size:11px;color:#bbb;margin-top:2px;}
.tpl-item-parts{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:2px 0 3px;padding:2px 7px;border-radius:999px;background:var(--color-primary-soft);border:1px solid rgba(15,118,110,.14);color:var(--color-primary-dark);font-size:10px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tpl-type-badge{display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;border-radius:999px;padding:2px 7px;margin-right:6px;vertical-align:middle;border:1px solid transparent;}
.tpl-type-badge.structure{background:#fff9ec;color:#BA7517;border-color:#e8c27a;}
.tpl-type-badge.plan{background:#eef4ff;color:#378ADD;border-color:#bcd6ff;}
.tpl-item-plan-note{font-size:11px;color:#378ADD;margin-top:2px;line-height:1.4;}
.tpl-item-plan-note.structure{color:var(--color-muted);}
.tpl-item-plan-note.plan{color:#378ADD;}
.tpl-part-filter{display:flex;gap:6px;overflow-x:auto;padding:0 0 9px;margin:0 0 8px;scrollbar-width:none;}
.tpl-part-filter::-webkit-scrollbar{display:none;}
.tpl-part-filter-btn{width:auto;min-width:max-content;min-height:34px;padding:7px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted-strong);font-size:12px;font-weight:850;box-shadow:none;cursor:pointer;}
.tpl-part-filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 6px 14px rgba(11,111,104,.14);}
@media (max-width:420px){
  .tpl-body{padding:14px 16px 28px;}
  .tpl-save-form{padding:12px;}
  .tpl-radio-group,.tpl-save-method-group{padding:9px;}
  .tpl-radio-card{padding:9px;}
  .template-clarity-grid,
  .template-load-help-grid{grid-template-columns:1fr;}
  .tpl-item{align-items:flex-start;gap:8px;}
  .tpl-item-btns{flex-direction:column;}
  .tpl-load-btn,.tpl-del-btn{padding:7px 10px;font-size:12px;}
}
@media (max-width:420px){
  .save-error-banner{
    flex-direction:column;
    gap:8px;
  }
  .save-retry-btn{
    align-self:flex-start;
    min-height:36px;
  }
  .save-status-chip{
    font-size:11.5px;
    border-radius:14px;
  }
}
.today-schedule-card{background:linear-gradient(135deg,#f0faf6,#e8f4fe);border-radius:12px;padding:14px 16px;margin-bottom:12px;border-left:3px solid #0B6F68;}
.today-schedule-title{font-size:13px;font-weight:700;color:#0F6E56;margin-bottom:8px;}
.today-schedule-items{display:flex;flex-wrap:wrap;gap:6px;}
.today-plan-badge{font-size:12px;padding:4px 10px;border-radius:12px;background:#0B6F68;color:#fff;font-weight:500;}
.today-plan-badge.style-badge{background:#378ADD;}

.goal-msg.success{color:#0B6F68;font-weight:600;}
.goal-msg.error{color:#e24b4b;}

.goal-section-title{font-size:12px;font-weight:600;color:#888;letter-spacing:.06em;text-transform:uppercase;margin:16px 0 8px;}
.goal-history-open-btn{width:auto;min-height:36px;margin:10px 0 2px;padding:8px 12px;border:1px solid rgba(11,111,104,.18);border-radius:999px;background:var(--color-primary-soft,#E3F3F1);color:var(--color-primary,#0B6F68);font-size:12px;font-weight:800;cursor:pointer;}
.goal-history-open-btn:hover{border-color:rgba(11,111,104,.32);background:#F0FAF8;}

/* マニュアルモーダル */
.manual-btn{font-size:12px;padding:6px 10px;background:#f0faf6;border:1px solid #0B6F68;color:#0B6F68;border-radius:20px;cursor:pointer;width:auto;font-weight:500;}
.manual-btn-auth{font-size:13px;padding:7px 16px;background:transparent;border:1px solid rgba(255,255,255,.5);color:#666;border-radius:20px;cursor:pointer;width:auto;margin-top:12px;}
/* PWAインストールボタン */
.pwa-install-btn{font-size:12px;padding:6px 10px;background:#fff;border:1px solid #378ADD;color:#378ADD;border-radius:20px;cursor:pointer;width:auto;font-weight:500;}
.pwa-install-btn-auth{font-size:13px;padding:7px 16px;background:rgba(55,138,221,.1);border:1px solid rgba(55,138,221,.4);color:#378ADD;border-radius:20px;cursor:pointer;width:auto;margin-top:8px;}
.pwa-install-btn.pwa-hidden{display:none!important;}
.pwa-install-btn-auth.pwa-hidden{display:none!important;}
/* iPhone案内モーダル */
.pwa-guide-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:400;display:none;align-items:flex-end;justify-content:center;}
.pwa-guide-overlay.open{display:flex;}
.pwa-guide-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;padding:24px 24px 40px;animation:slideUp .25s ease;}
.pwa-guide-title{font-size:17px;font-weight:800;color:#1a1a1a;margin-bottom:6px;}
.pwa-guide-sub{font-size:13px;color:#888;margin-bottom:20px;}
.pwa-guide-step{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;}
.pwa-guide-step-num{width:28px;height:28px;border-radius:50%;background:#378ADD;color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pwa-guide-step-text{font-size:14px;color:#333;line-height:1.6;padding-top:4px;}
.pwa-guide-step-text strong{color:#1a1a1a;}
.pwa-guide-close{width:100%;padding:12px;background:#f4f4f4;border:none;border-radius:10px;font-size:15px;font-weight:600;color:#555;cursor:pointer;margin-top:8px;}
.delete-account-overlay{position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:720;display:none;align-items:flex-end;justify-content:center;}
.delete-account-overlay.open{display:flex;}
.delete-account-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:560px;animation:slideUp .25s ease;box-shadow:0 -8px 28px rgba(0,0,0,.18);}
.delete-account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 12px;border-bottom:1px solid #f0f0f0;}
.delete-account-title{font-size:17px;font-weight:800;color:#b42318;}
.delete-account-sub{font-size:12px;color:#999;margin-top:3px;}
.delete-account-close{width:32px;height:32px;border:none;background:var(--color-surface-soft);border-radius:50%;font-size:18px;color:#777;cursor:pointer;}
.delete-account-body{padding:16px 20px 24px;}
.delete-account-warning{background:#fff4f2;border:1px solid #f5b5ad;color:#8f1f15;border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.7;margin-bottom:14px;}
.delete-account-label{display:block;font-size:12px;font-weight:700;color:#555;margin-bottom:6px;}
.delete-account-input{width:100%;height:42px;border:1px solid #ddd;border-radius:10px;padding:0 12px;font-size:15px;box-sizing:border-box;}
.delete-account-input:focus{outline:none;border-color:#b42318;box-shadow:0 0 0 3px rgba(180,35,24,.12);}
.delete-account-msg{min-height:18px;font-size:12px;margin:8px 0 12px;line-height:1.5;}
.delete-account-msg.error{color:#b42318;}
.delete-account-msg.success{color:#0B6F68;}
.delete-account-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;}
.delete-account-cancel,.delete-account-submit{height:42px;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;}
.delete-account-cancel{background:var(--color-surface-soft);color:var(--color-muted-strong);}
.delete-account-submit{background:#b42318;color:#fff;}
.delete-account-submit:disabled{background:#e5b8b3;color:#fff;cursor:not-allowed;}
.goal-achievements-overlay{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:710;display:none;align-items:flex-end;justify-content:center;}
.goal-achievements-overlay.open{display:flex;}
.goal-achievements-sheet{width:100%;max-width:640px;max-height:calc(100vh - 56px);height:min(84vh,680px);background:linear-gradient(180deg,#fff,#F8FBFA);border-radius:22px 22px 0 0;box-shadow:0 -16px 44px rgba(15,23,42,.22);display:flex;flex-direction:column;overflow:hidden;animation:slideUp .25s ease;}
@supports (height:100svh){
  .goal-achievements-sheet{height:min(84svh,680px);max-height:calc(100svh - 56px);}
}
.goal-achievements-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--color-border,#e8e8e8);flex-shrink:0;}
.goal-achievements-title{font-size:18px;font-weight:900;color:var(--color-text,#1a1a1a);letter-spacing:-.02em;}
.goal-achievements-sub{font-size:12px;line-height:1.65;color:var(--color-muted,#777);margin-top:4px;max-width:34em;}
.goal-achievements-close{width:36px;height:36px;border-radius:999px;border:1px solid var(--color-border,#e8e8e8);background:var(--color-surface-soft,#F7FAF9);color:var(--color-muted-strong,#555);font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;}
.goal-achievements-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px 18px;}
.goal-achievement-list{display:flex;flex-direction:column;gap:10px;}
.goal-achievement-card{border:1px solid rgba(11,111,104,.16);border-radius:18px;background:linear-gradient(180deg,#fff,#F7FAF9);box-shadow:0 1px 2px rgba(15,23,42,.03),0 10px 24px rgba(15,118,110,.06);padding:14px;}
.goal-achievement-date{font-size:11px;font-weight:800;color:var(--color-muted,#777);margin-bottom:4px;}
.goal-achievement-title{font-size:16px;font-weight:900;color:var(--color-text,#1a1a1a);line-height:1.45;margin-bottom:10px;}
.goal-achievement-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;}
.goal-achievement-metrics div{border:1px solid var(--color-border,#e8e8e8);border-radius:14px;background:#FBFEFD;padding:9px 10px;}
.goal-achievement-metrics span{display:block;font-size:10px;color:var(--color-muted,#888);font-weight:800;margin-bottom:2px;}
.goal-achievement-metrics strong{font-size:18px;color:var(--color-primary,#0B6F68);line-height:1.2;}
.goal-achievement-meta{display:flex;flex-direction:column;gap:5px;}
.goal-achievement-meta-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;line-height:1.55;color:var(--color-muted,#777);}
.goal-achievement-meta-row span{flex-shrink:0;font-weight:700;}
.goal-achievement-meta-row strong{min-width:0;text-align:right;color:var(--color-text,#1a1a1a);font-weight:800;word-break:break-word;}
.goal-achievement-empty{font-size:12px;line-height:1.7;color:var(--color-muted,#888);background:var(--color-surface-soft,#F7FAF9);border:1px solid var(--color-border,#e8e8e8);border-radius:16px;padding:14px;}
.goal-achievement-storage-note{margin-top:12px;font-size:10px;line-height:1.65;color:var(--color-muted,#888);background:var(--color-surface-soft,#F7FAF9);border:1px dashed rgba(11,111,104,.18);border-radius:12px;padding:9px 10px;}
.goal-achieve-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:730;display:none;align-items:flex-end;justify-content:center;}
.goal-achieve-modal-overlay.open{display:flex;}
.goal-achieve-modal{width:100%;max-width:540px;background:linear-gradient(180deg,#fff,#F8FBFA);border-radius:22px 22px 0 0;box-shadow:0 -16px 44px rgba(15,23,42,.22);overflow:hidden;animation:slideUp .25s ease;}
.goal-achieve-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 13px;border-bottom:1px solid var(--color-border,#e8e8e8);}
.goal-achieve-title{font-size:17px;font-weight:900;color:var(--color-text,#1a1a1a);letter-spacing:-.02em;}
.goal-achieve-target{font-size:12px;line-height:1.55;color:var(--color-primary,#0B6F68);font-weight:850;margin-top:4px;word-break:break-word;}
.goal-achieve-close{width:34px;height:34px;border-radius:999px;border:1px solid var(--color-border,#e8e8e8);background:var(--color-surface-soft,#F7FAF9);color:var(--color-muted-strong,#555);font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;}
.goal-achieve-body{padding:15px 20px 20px;}
.goal-achieve-note{margin:0 0 13px;padding:11px 12px;border-radius:14px;border:1px solid rgba(11,111,104,.14);background:var(--color-surface-soft,#F7FAF9);color:var(--color-muted-strong,#555);font-size:12px;line-height:1.75;}
.goal-achieve-form{display:grid;gap:10px;}
.goal-achieve-field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:850;color:var(--color-muted-strong,#555);}
.goal-achieve-field input,.goal-achieve-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--color-border,#e8e8e8);border-radius:12px;background:#fff;color:var(--color-text,#1a1a1a);font-size:15px;padding:10px 11px;}
.goal-achieve-field input{min-height:42px;}
.goal-achieve-field textarea{min-height:76px;resize:vertical;line-height:1.6;}
.goal-achieve-field input:focus,.goal-achieve-field textarea:focus{outline:none;border-color:var(--color-primary,#0B6F68);box-shadow:0 0 0 3px rgba(11,111,104,.12);}
.goal-achieve-msg{min-height:18px;margin:8px 0 10px;font-size:12px;line-height:1.5;color:var(--color-muted,#777);}
.goal-achieve-msg.error{color:#b42318;}
.goal-achieve-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;}
.goal-achieve-cancel,.goal-achieve-submit{min-height:42px;border-radius:12px;font-size:14px;font-weight:850;cursor:pointer;}
.goal-achieve-cancel{border:1px solid var(--color-border,#e8e8e8);background:var(--color-surface-soft,#F7FAF9);color:var(--color-muted-strong,#555);}
.goal-achieve-submit{border:1px solid var(--color-primary,#0B6F68);background:var(--color-primary,#0B6F68);color:#fff;box-shadow:0 6px 16px rgba(15,118,110,.18);}
@media (max-width:560px){
  .goal-achievements-sheet{height:min(88vh,720px);max-height:calc(100vh - 34px);}
  .goal-achievements-head{padding:16px 16px 12px;}
  .goal-achievements-body{padding:12px 12px 18px;}
  .goal-achievement-card{padding:12px;}
  .goal-achievement-metrics{gap:7px;}
  .goal-achievement-metrics strong{font-size:16px;}
  .goal-achieve-head{padding:16px 16px 12px;}
  .goal-achieve-body{padding:13px 16px 18px;}
  .goal-achieve-actions{grid-template-columns:1fr;gap:8px;}
  .goal-achieve-field input,.goal-achieve-field textarea{font-size:16px;}
}
@supports (height:100svh){
  @media (max-width:560px){
    .goal-achievements-sheet{height:min(88svh,720px);max-height:calc(100svh - 34px);}
  }
}
.location-data-overlay{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:710;display:none;align-items:flex-end;justify-content:center;}
.location-data-overlay.open{display:flex;}
.location-data-sheet{width:100%;max-width:760px;height:min(86vh,720px);max-height:calc(100vh - 56px);background:linear-gradient(180deg,#fff,#F8FBFA);border-radius:22px 22px 0 0;box-shadow:0 -16px 44px rgba(15,23,42,.22);display:flex;flex-direction:column;overflow:hidden;animation:slideUp .25s ease;}
@supports (height:100svh){
  .location-data-sheet{height:min(86svh,720px);max-height:calc(100svh - 56px);}
}
.location-data-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--color-border,#e8e8e8);flex-shrink:0;}
.location-data-title{font-size:18px;font-weight:800;color:var(--color-text,#1a1a1a);letter-spacing:-.02em;}
.location-data-sub{font-size:12px;line-height:1.65;color:var(--color-muted,#777);margin-top:4px;}
.location-data-close{width:36px;height:36px;border-radius:999px;border:1px solid var(--color-border,#e8e8e8);background:var(--color-surface-soft,#f7faf9);color:var(--color-muted-strong,#555);font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;}
.location-data-body{display:flex;flex:1;flex-direction:column;min-height:0;padding:14px 16px 18px;overflow:hidden;}
.location-data-search{width:100%;height:42px;border-radius:14px;border:1px solid var(--color-border-strong,#d8e5e7);padding:0 14px;font-size:16px;margin-bottom:12px;background:#fff;}
.location-data-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:12px;align-items:stretch;flex:1;min-height:0;overflow:hidden;}
.location-data-layout.is-list-only{grid-template-columns:minmax(0,1fr);}
.location-data-layout.is-list-only .location-data-list{padding-right:0;}
.location-data-layout.is-list-only .location-data-detail{display:none;}
.location-data-list{display:flex;flex-direction:column;gap:9px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px;}
.location-data-detail{min-height:0;overflow-y:auto;overscroll-behavior:contain;}
.location-card{width:100%;border:1px solid var(--color-border,#e8e8e8);border-radius:15px;background:linear-gradient(180deg,#fff,#F8FBFA);box-shadow:0 1px 2px rgba(15,23,42,.03),0 7px 16px rgba(11,111,104,.045);padding:11px 12px;text-align:left;cursor:pointer;color:inherit;}
.location-card.active{border-color:rgba(11,111,104,.34);box-shadow:0 1px 2px rgba(15,23,42,.04),0 10px 24px rgba(11,111,104,.10);}
.location-card-main{min-width:0;}
.location-card-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;color:var(--color-text,#1a1a1a);line-height:1.35;}
.location-card-last{font-size:11px!important;color:var(--color-muted-strong,#666)!important;background:#fff!important;border-color:var(--color-border,#e8e8e8)!important;}
.location-card-stats{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;}
.location-card-stats span{font-size:11px;font-weight:700;color:var(--color-primary,#0B6F68);background:var(--color-primary-soft,#E3F3F1);border:1px solid rgba(11,111,104,.12);border-radius:999px;padding:4px 8px;}
.location-card-exercises{display:none;}
.location-detail-card{min-height:100%;box-sizing:border-box;border:1px solid rgba(11,111,104,.16);border-radius:18px;background:linear-gradient(180deg,#fff,#F7FAF9);box-shadow:0 1px 2px rgba(15,23,42,.03),0 10px 24px rgba(15,118,110,.06);padding:14px;}
.location-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px;}
.location-detail-title-wrap{min-width:0;flex:1;}
.location-detail-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:16px;font-weight:800;line-height:1.4;color:var(--color-text,#1a1a1a);word-break:break-word;}
.location-detail-sub{font-size:11px;color:var(--color-muted,#888);margin-top:3px;}
.location-detail-close{min-height:32px;border:1px solid var(--color-border,#e8e8e8);background:#fff;border-radius:999px;color:var(--color-muted-strong,#555);font-size:11px;font-weight:700;padding:6px 10px;cursor:pointer;flex-shrink:0;}
.location-detail-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.location-detail-metrics div{border:1px solid var(--color-border,#e8e8e8);border-radius:14px;background:#FBFEFD;padding:9px 10px;}
.location-detail-metrics span{display:block;font-size:10px;color:var(--color-muted,#888);font-weight:700;margin-bottom:2px;}
.location-detail-metrics strong{font-size:19px;color:var(--color-primary,#0B6F68);}
.location-section-label{font-size:11px;font-weight:800;color:var(--color-muted-strong,#555);margin:12px 0 7px;}
.location-exercise-list{display:flex;flex-direction:column;gap:6px;}
.location-exercise-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--color-border,#e8e8e8);border-radius:12px;background:#fff;padding:8px 10px;font-size:12px;}
.location-exercise-row strong{color:var(--color-primary,#0B6F68);white-space:nowrap;}
.location-note-input{width:100%;min-height:88px;border-radius:14px;border:1px solid var(--color-border-strong,#d8e5e7);padding:10px 12px;font-size:14px;line-height:1.6;resize:vertical;background:#fff;}
.location-note-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.location-note-tag{border:1px solid rgba(11,111,104,.18);background:var(--color-primary-soft,#E3F3F1);color:var(--color-primary,#0B6F68);border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700;cursor:pointer;}
.location-note-actions{display:flex;align-items:center;gap:10px;margin-top:10px;}
.location-note-save{border:none;border-radius:999px;background:var(--color-primary,#0B6F68);color:#fff;font-size:12px;font-weight:800;padding:9px 14px;cursor:pointer;box-shadow:0 8px 18px rgba(11,111,104,.12);}
.location-note-status{font-size:12px;color:var(--color-primary,#0B6F68);font-weight:700;}
.location-note-status.error{color:#b42318;}
.location-future-note{margin-top:12px;font-size:10px;line-height:1.6;color:var(--color-muted,#888);background:var(--color-surface-soft,#F7FAF9);border:1px dashed rgba(11,111,104,.18);border-radius:12px;padding:8px 9px;}
.location-data-loading,.location-data-muted{font-size:12px;line-height:1.7;color:var(--color-muted,#888);background:var(--color-surface-soft,#F7FAF9);border:1px solid var(--color-border,#e8e8e8);border-radius:14px;padding:12px;}
.location-data-empty{border:1px solid var(--color-border,#e8e8e8);border-radius:16px;background:#fff;padding:12px;}
@media (max-width:560px){
  .location-data-sheet{height:min(88vh,740px);max-height:calc(100vh - 34px);}
  .location-data-head{padding:16px 16px 12px;}
  .location-data-body{padding:12px 12px 18px;}
  .location-data-layout{grid-template-columns:1fr;grid-template-rows:minmax(150px,.85fr) minmax(260px,1.15fr);gap:10px;}
  .location-data-layout.is-list-only{grid-template-rows:minmax(0,1fr);}
  .location-card{padding:10px 11px;}
  .location-card-stats{gap:5px;margin-top:7px;}
  .location-detail-card{padding:12px;}
  .location-note-tag{min-height:32px;}
}
@supports (height:100svh){
  @media (max-width:560px){
    .location-data-sheet{height:min(88svh,740px);max-height:calc(100svh - 34px);}
  }
}
.manual-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:300;display:none;align-items:flex-end;justify-content:center;}
.manual-overlay.open{display:flex;}
.manual-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .25s ease;}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.manual-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #eee;flex-shrink:0;}
.manual-sheet-title{font-size:16px;font-weight:700;color:#1a1a1a;}
.manual-close{background:none;border:none;font-size:22px;color:#aaa;cursor:pointer;width:auto;padding:4px 8px;line-height:1;}
.manual-body{overflow-y:auto;padding:16px 20px 32px;flex:1;}
.manual-body h2{font-size:15px;font-weight:700;color:#0B6F68;margin:20px 0 8px;padding-bottom:4px;border-bottom:2px solid #E8F8F2;}
.manual-body h2:first-child{margin-top:0;}
.manual-body h3{font-size:13px;font-weight:700;color:#555;margin:12px 0 6px;}
.manual-body p{font-size:13px;color:#444;line-height:1.7;margin-bottom:6px;}
.manual-body ul{padding-left:18px;margin-bottom:8px;}
.manual-body ul li{font-size:13px;color:#444;line-height:1.7;margin-bottom:3px;}
.manual-tbl{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:12px;}
.manual-tbl th{background:#0B6F68;color:#fff;padding:7px 10px;text-align:left;font-weight:600;}
.manual-tbl td{padding:7px 10px;border-bottom:1px solid #f0f0f0;color:#444;vertical-align:top;}
.manual-tbl tr:nth-child(even) td{background:#f8f8f8;}
.manual-note{background:#E8F8F2;border-radius:8px;padding:10px 12px;font-size:12px;color:#0F6E56;margin:8px 0;line-height:1.6;}
.manual-url{background:#E8F8F2;border-radius:8px;padding:10px 14px;margin-bottom:16px;}
.manual-url p{font-size:11px;color:#0F6E56;font-weight:600;margin:0 0 3px;}
.manual-url span{font-size:13px;color:#0B6F68;font-weight:700;word-break:break-all;}
.manual-hero{background:linear-gradient(135deg,var(--color-primary-soft),var(--color-accent-soft));border:1px solid rgba(15,118,110,.16);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);}
.manual-hero-kicker{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-xs);}
.manual-hero h2{border:none!important;margin:0 0 var(--space-sm)!important;padding:0!important;color:var(--color-text)!important;font-size:var(--font-size-xl)!important;}
.manual-quick{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-soft);}
.manual-quick-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--space-sm);}
.manual-quick ol{padding-left:20px;margin:0;}
.manual-quick li{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-muted-strong);margin-bottom:4px;}
.manual-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);overflow:hidden;box-shadow:var(--shadow-soft);}
.manual-section summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:46px;padding:0 var(--space-md);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text);cursor:pointer;list-style:none;}
.manual-section summary::-webkit-details-marker{display:none;}
.manual-section summary::after{content:"⌄";font-size:14px;color:var(--color-muted);transition:transform .15s ease;}
.manual-section[open] summary::after{transform:rotate(180deg);}
.manual-section-body{border-top:1px solid var(--color-border);padding:var(--space-md);background:linear-gradient(180deg,#fff,var(--color-surface-soft));}
.manual-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin:var(--space-sm) 0;}
.manual-info-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);}
.manual-info-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:4px;}
.manual-pill-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-sm);}
.manual-pill{display:inline-flex;align-items:center;border:1px solid rgba(15,118,110,.18);background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:5px 9px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);}
.manual-note.danger{background:var(--color-risk-soft);border:1px solid rgba(194,65,59,.22);color:#84231f;}
@media (max-width:420px){
  .manual-sheet{max-height:92vh;}
  .manual-body{padding:12px 14px 28px;}
  .manual-hero,.manual-quick,.manual-section-body{padding:12px;}
  .manual-hero h2{font-size:18px!important;}
  .manual-two-col{grid-template-columns:1fr;}
  .manual-section summary{min-height:44px;padding:0 12px;font-size:14px;}
}

/* =============================================
   Rep Craft Card System - Phase 3
   既存クラスは削除せず、カードの角丸・余白・枠線・影を
   共通トークンへ寄せるための上書きレイヤー。
   ============================================= */
.app-card,
.input-card,
.exercise-card,
.block-card,
.exec-card,
.analysis-card,
.template-card,
.soft-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  padding:var(--space-md);
}
.soft-card{
  background:var(--color-surface-soft);
  border-color:var(--color-border);
  box-shadow:none;
}

/* App-wide cards */
.card,
.collapsible-card,
.chart-card,
.menu-card,
.goal-dash-card,
.goal-item,
.best-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
}

/* Input hierarchy: exercise > intent block > set rows */
.ex-block{
  background:var(--color-surface);
  border:1px solid #dbe8f7;
  border-radius:var(--radius-lg);
  padding:var(--space-md);
  margin-bottom:var(--space-md);
  box-shadow:var(--shadow-soft);
}
.intent-block{
  background:#fbfcfe;
  border:1px solid #e8eef6;
  border-radius:var(--radius-md);
  padding:var(--space-md);
  box-shadow:none;
}
.intent-block-config{
  background:var(--color-surface-soft);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
}
.set-card,
.set-row{
  background:var(--color-surface-soft);
  border:1px solid #eef0f3;
  border-radius:var(--radius-md);
}
.set-row input{
  background:var(--color-surface);
}

/* Execution mode cards */
.exec-current-card{
  border-radius:var(--radius-lg);
  box-shadow:0 10px 28px rgba(0,0,0,.12);
}
.exec-input-wrap,
.exec-advanced-field,
.exec-side-row{
  border-radius:var(--radius-md);
}

/* Advanced analysis / feedback cards */
.advanced-panel-card,
.advanced-log-selector,
.advanced-current-log,
.advanced-primary-prescription,
.advanced-compare-keyitem,
.advanced-compare-metric,
.advanced-repro-controls,
.advanced-repro-keyitem,
.advanced-mini-item,
.advanced-prescription-card,
.advanced-block-card,
.advanced-score-compact-item,
.advanced-score-item,
.fb-card,
.advanced-analysis-next-item,
.advanced-priority-item,
.advanced-personal-item,
.advanced-personal-detail-item{
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  box-shadow:none;
}
.advanced-panel-card,
.fb-card{
  background:var(--color-surface-soft);
}
.advanced-decision-hero,
.advanced-decision-box,
.advanced-compare-decision,
.advanced-repro-decision{
  border-radius:var(--radius-lg);
}

/* Template / training plan cards */
.tpl-save-form,
.tpl-item,
.tpl-radio-card,
.tpl-radio-group,
.tpl-save-method-group{
  border-radius:var(--radius-md);
  border-color:var(--color-border);
}
.tpl-item,
.tpl-save-form{
  background:var(--color-surface-soft);
}
.tpl-radio-card{
  background:var(--color-surface);
}

@media (max-width:420px){
  .card,
  .ex-block,
  .advanced-panel-card,
  .fb-card,
  .chart-card,
  .tpl-save-form,
  .tpl-item{
    padding:12px;
    border-radius:var(--radius-md);
  }
  .intent-block{
    padding:10px;
  }
  .set-row{
    border-radius:10px;
  }
}

/* =============================================
   Rep Craft Execution Mode - Phase 4
   実行モードは「現在位置」「重量/回数」「次セット」を最優先に見せる。
   HTML/JS構造は変えず、既存 exec-* クラスの視認性だけを磨く。
   ============================================= */
.exec-overlay{
  background:
    radial-gradient(circle at top left,rgba(11,111,104,.20),transparent 34%),
    linear-gradient(180deg,#0d1822 0%,#101923 46%,#0b121a 100%);
  color:#fff;
}
.exec-header{
  background:rgba(10,20,29,.92);
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
  padding:12px 18px 10px;
}
.exec-progress{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 11px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:800;
}
.exec-close-btn{
  min-height:34px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.78);
}
.exec-close-btn:hover{
  background:rgba(255,255,255,.10);
}
.exec-body{
  width:100%;
  max-width:720px;
  margin:0 auto;
  padding:18px 16px 0;
  box-sizing:border-box;
}
.exec-current-card{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(135deg,rgba(11,111,104,.30),rgba(55,138,221,.14)),
    rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.13);
  border-radius:22px;
  padding:16px 16px 14px;
  box-shadow:0 18px 36px rgba(0,0,0,.22);
}
.exec-current-card::after{
  content:'';
  position:absolute;
  right:-42px;
  top:-42px;
  width:130px;
  height:130px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  pointer-events:none;
}
.exec-kicker{
  color:#9BE7CC;
  font-size:10px;
  letter-spacing:.12em;
  margin-bottom:7px;
}
.exec-current-title{
  position:relative;
  z-index:1;
  font-size:clamp(23px,5.8vw,31px);
  line-height:1.16;
  letter-spacing:-.03em;
  max-width:100%;
}
.exec-current-block{
  position:relative;
  z-index:1;
  display:inline-flex;
  max-width:100%;
  margin-top:8px;
  padding:4px 9px;
  border-radius:999px;
  background:rgba(125,211,252,.12);
  border:1px solid rgba(125,211,252,.22);
  color:#a9e4ff;
  font-size:11px;
}
.exec-current-meta{
  position:relative;
  z-index:1;
  justify-content:flex-start;
  gap:7px;
  margin-top:10px;
}
.exec-current-meta span{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 9px;
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:rgba(255,255,255,.82);
}
.exec-ex-aim{
  position:relative;
  z-index:1;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid rgba(255,255,255,.10);
}
.exec-set-dots{
  margin:12px 0 12px;
}
.exec-dot{
  width:9px;
  height:9px;
  background:rgba(255,255,255,.18);
}
.exec-dot.done{
  background:var(--color-primary);
}
.exec-dot.current{
  transform:scale(1.28);
  background:#fff;
  box-shadow:0 0 0 4px rgba(255,255,255,.12);
}
.exec-prev{
  background:rgba(245,158,11,.08);
  border-color:rgba(245,158,11,.22);
  color:#f8c56d;
  border-radius:14px;
  padding:9px 11px;
  margin-bottom:12px;
}
.exec-main-inputs{
  grid-template-columns:1.08fr 1.08fr .88fr;
  gap:10px;
  margin-bottom:14px;
}
.exec-input-wrap{
  background:rgba(255,255,255,.075);
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  padding:14px 10px 12px;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}
.exec-main-inputs .exec-input-wrap:nth-child(1),
.exec-main-inputs .exec-input-wrap:nth-child(2){
  background:rgba(255,255,255,.095);
  border-color:rgba(255,255,255,.17);
}
.exec-main-inputs .exec-input-wrap:nth-child(3){
  box-shadow:none;
}
.exec-input-label{
  color:rgba(255,255,255,.52);
  font-size:10px;
  font-weight:900;
  margin-bottom:7px;
}
.exec-input-wrap input{
  min-height:44px;
  border:none;
  border-bottom:2px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:30px;
  line-height:1;
  caret-color:#9BE7CC;
}
.exec-main-inputs .exec-input-wrap:nth-child(1) input,
.exec-main-inputs .exec-input-wrap:nth-child(2) input{
  font-size:34px;
}
.exec-main-inputs .exec-input-wrap:nth-child(3) input{
  font-size:25px;
}
.exec-input-wrap input:focus{
  border-bottom-color:#9BE7CC;
  box-shadow:0 8px 0 -6px rgba(155,231,204,.22);
}
.exec-input-unit{
  color:rgba(255,255,255,.46);
  font-weight:800;
}
.exec-quick-btns{
  margin-top:8px;
}
.exec-quick-btn{
  min-height:30px;
  border-radius:999px;
  background:rgba(255,255,255,.05);
  font-weight:800;
}
.exec-detail-title{
  display:flex;
  align-items:center;
  gap:7px;
  margin:6px 0 8px;
  color:rgba(255,255,255,.54);
}
.exec-detail-title::after{
  content:'';
  height:1px;
  flex:1;
  background:rgba(255,255,255,.09);
}
.exec-side-row{
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.10);
  border-radius:16px;
  padding:8px 9px;
}
.exec-side-row .side-btn,
.exec-side-row .support-btn{
  min-height:34px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
}
.exec-advanced-fields{
  gap:7px;
  margin-bottom:10px;
}
.exec-advanced-field{
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.10);
  border-radius:14px;
  padding:7px 7px 8px;
}
.exec-advanced-field span{
  color:rgba(255,255,255,.50);
  font-size:10px;
}
.exec-advanced-field input{
  height:34px;
  border-radius:10px;
  background:rgba(255,255,255,.055);
  font-size:16px;
}
.exec-rest-start-btn{
  min-height:48px;
  border-radius:16px;
  background:rgba(11,111,104,.18);
  border:1px solid rgba(155,231,204,.36);
  color:#d8fff1;
  box-shadow:none;
}
.exec-note-input{
  height:38px;
  border-radius:14px;
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.10);
}
.exec-set-nav{
  gap:10px;
  margin:2px 0 14px;
}
.exec-set-nav button{
  min-height:50px;
  border-radius:16px;
  font-weight:900;
}
.exec-prev-btn{
  flex:.78!important;
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.11);
  color:rgba(255,255,255,.58);
}
.exec-next-btn{
  flex:1.35!important;
  background:linear-gradient(135deg,var(--color-primary),#27b98a);
  border-color:rgba(155,231,204,.30);
  box-shadow:0 12px 26px rgba(11,111,104,.24);
}
.exec-finish-set-btn{
  background:linear-gradient(135deg,var(--color-accent),#5da2ef)!important;
}
.exec-exercise-jump{
  gap:7px;
  margin-bottom:10px;
}
.exec-exercise-pill{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.055);
}
.exec-footer{
  background:rgba(10,20,29,.94);
  border-top:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
}
.exec-done-btn{
  display:block;
  max-width:720px;
  margin:0 auto;
  min-height:48px;
  border-radius:16px;
}

@media (max-width:420px){
  .exec-header{
    padding:10px 12px 8px;
  }
  .exec-progress{
    min-height:26px;
    padding:0 9px;
    font-size:11px;
  }
  .exec-close-btn{
    min-height:32px;
    padding:6px 11px;
    font-size:12px;
  }
  .exec-body{
    padding:14px 10px 0;
  }
  .exec-current-card{
    padding:14px 13px 12px;
    border-radius:18px;
  }
  .exec-current-title{
    font-size:22px;
  }
  .exec-current-meta span{
    min-height:24px;
    font-size:11px;
  }
  .exec-main-inputs{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .exec-main-inputs .exec-input-wrap:nth-child(3){
    grid-column:1 / -1;
    padding:10px 12px;
  }
  .exec-input-wrap{
    padding:12px 8px 10px;
    border-radius:16px;
  }
  .exec-main-inputs .exec-input-wrap:nth-child(1) input,
  .exec-main-inputs .exec-input-wrap:nth-child(2) input{
    font-size:30px;
  }
  .exec-main-inputs .exec-input-wrap:nth-child(3) input{
    font-size:24px;
  }
  .exec-advanced-fields{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .exec-set-nav{
    gap:8px;
  }
  .exec-set-nav button{
    min-height:48px;
    padding:12px 8px;
    font-size:14px;
  }
  .exec-footer{
    padding:10px 12px 16px;
  }
}

/* =============================================
   Rep Craft Brand Color System - Phase 5
   色の役割を固定し、機能ごとに増えた色表現を
   Primary / Accent / Success / Warning / Risk へ整理する。
   ============================================= */
body{
  background:var(--color-bg);
  color:var(--color-text);
}
input:focus,
select:focus,
textarea:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(15,118,110,.13);
}
.btn-primary,
.auth-submit,
.save-btn,
.share-save-btn,
.sched-save-btn,
.onboarding-save-btn,
.exec-start-btn{
  background:var(--color-primary)!important;
  border-color:var(--color-primary)!important;
  color:#fff!important;
  box-shadow:0 6px 16px rgba(15,118,110,.18)!important;
}
.btn-primary:active,
.auth-submit:active,
.save-btn:active{
  background:var(--color-primary-dark)!important;
}
.btn-secondary,
.add-set-btn,
.tpl-load-btn,
.profile-edit-btn{
  background:var(--color-primary-soft);
  border-color:rgba(15,118,110,.30);
  color:var(--color-primary);
}
.btn-tertiary,
.add-block-btn,
.advanced-summary-details>summary,
.advanced-personal-details>summary{
  background:var(--color-surface-soft);
  border-color:var(--color-border);
  color:var(--color-muted-strong);
}
.btn-danger,
.tpl-del-btn,
.delete-account-submit,
.log-actions button.danger{
  background:var(--color-risk-soft);
  border-color:var(--color-risk);
  color:#982c27;
}
.auth-screen{
  background:linear-gradient(135deg,var(--color-primary-soft) 0%,#edf4f7 100%);
}
.auth-title,
.header-title,
.tpl-title,
.fb-title,
.sched-title{
  color:var(--color-text);
}
.auth-tab.active,
.tab-goals.active,
.onboarding-chip.active,
.sched-chip.active,
.rest-timer-preset.active,
.rest-timer-btn.start{
  background:var(--color-primary);
  border-color:var(--color-primary);
  color:#fff;
}
.auth-msg.error,
.goal-msg.error,
.onboarding-msg.error,
.drawer-item-danger,
.delete-account-title,
.delete-account-msg.error{
  color:var(--color-risk);
}
.auth-msg.success,
.goal-msg.success,
.onboarding-msg.success,
.delete-account-msg.success{
  color:var(--color-success);
}
.drawer-item-danger .drawer-item-sub{
  color:#b66963;
}
.directive-warning,
.advanced-inline-warning,
.advanced-warning,
.advanced-caution,
.advanced-personal-warning,
.fb-pr-badge.weight{
  background:var(--color-warning-soft);
  color:#835615;
}
.mode-flow-hint{
  background:#f7fafb;
  border-color:var(--color-border);
  color:var(--color-muted-strong);
}
.mode-badge.simple{
  background:var(--color-primary-soft);
  color:var(--color-primary);
  border-color:rgba(15,118,110,.28);
}
.mode-badge.advanced{
  background:var(--color-accent-soft);
  color:var(--color-accent);
  border-color:rgba(46,159,166,.30);
}
.mode-toast{
  background:#102027;
}
.side-btn.active-side,
.support-btn.active-support,
.tpl-radio-card.active,
.onboarding-mode-card.active{
  border-color:var(--color-accent)!important;
  background:var(--color-accent-soft)!important;
  color:var(--color-text)!important;
}
.tpl-radio-card.active .tpl-radio-dot{
  border-color:var(--color-accent);
}
.tpl-radio-card.active .tpl-radio-dot::after{
  background:var(--color-accent);
}
.add-exercise-btn{
  background:var(--color-primary-soft);
  border-color:rgba(15,118,110,.32);
  color:var(--color-primary-dark);
  box-shadow:0 2px 8px rgba(15,118,110,.08);
}
.add-set-btn{
  background:var(--color-accent-soft);
  border-color:rgba(46,159,166,.34);
  color:#1f7379;
}
.add-set-btn:active{
  background:#daf0f2;
}
.add-block-btn{
  border-color:#c7d7de;
  color:#60717a;
}
.inherit-btn,
.tpl-btn.save{
  background:var(--color-warning-soft);
  border-color:rgba(183,121,31,.36);
  color:#835615;
}
.tpl-btn.load{
  background:var(--color-accent-soft);
  border-color:rgba(46,159,166,.34);
  color:#1f7379;
}
.tpl-type-badge.structure{
  background:#f3f6f7;
  color:var(--color-muted-strong);
  border-color:var(--color-border);
}
.tpl-type-badge.plan{
  background:var(--color-accent-soft);
  color:#1f7379;
  border-color:rgba(46,159,166,.26);
}
.tpl-item-plan-note,
.advanced-repro-confidence,
.advanced-analysis-next-action,
.advanced-block-intent{
  color:var(--color-accent);
}
.rest-timer-bar,
.rest-timer-bar.fixed{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  box-shadow:0 14px 38px rgba(16,32,39,.16);
  color:var(--color-text);
}
.rest-timer-label,
.rest-timer-hint{
  color:var(--color-muted);
}
.rest-timer-display{
  color:var(--color-text);
}
.rest-timer-target{
  display:none;
  max-width:100%;
  margin:-2px 0 8px;
  padding:5px 8px;
  border-radius:999px;
  background:var(--color-surface-soft);
  border:1px solid var(--color-border);
  color:var(--color-muted-strong);
  font-size:11px;
  font-weight:850;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rest-timer-display.warning{
  color:var(--color-warning);
}
.rest-timer-display.done{
  color:var(--color-risk);
}
.rest-timer-preset{
  border-color:var(--color-border);
  color:var(--color-muted-strong);
  background:var(--color-surface-soft);
}
.rest-timer-btn.stop{
  background:var(--color-surface-soft);
  border:1px solid var(--color-border);
  color:var(--color-muted-strong);
}
.rest-timer-btn.reset{
  background:transparent;
  border-color:var(--color-border);
  color:var(--color-muted);
}
.advanced-decision-hero,
.advanced-decision-box,
.advanced-repro-decision,
.fb-ai-bubble{
  background:linear-gradient(135deg,var(--color-primary-soft),#f4fafb);
  border-color:#cfe2de;
}
.advanced-primary-prescription{
  background:var(--color-primary-soft);
  border-color:#cfe2de;
}
.advanced-score-compact-item,
.advanced-score-item,
.advanced-compare-keyitem,
.advanced-repro-keyitem,
.advanced-mini-item,
.advanced-prescription-card,
.advanced-block-card,
.advanced-analysis-next-item,
.advanced-priority-item,
.advanced-personal-item,
.advanced-personal-detail-item{
  background:var(--color-surface);
  border-color:var(--color-border);
}
.advanced-panel-card,
.fb-card,
.tpl-save-form,
.tpl-item,
.goal-add-form,
.advanced-repro-controls{
  background:var(--color-surface-soft);
  border-color:var(--color-border);
}
.advanced-analysis-card{
  border-left-color:var(--color-accent);
}
.advanced-personal-card,
.menu-card{
  border-left-color:var(--color-primary);
}
.advanced-personal-title,
.advanced-personal-confidence,
.advanced-personal-details[open] .advanced-personal-section-title,
.advanced-personal-tag,
.menu-badge,
.menu-part-chip{
  color:var(--color-primary);
}
.advanced-personal-tag,
.menu-badge,
.menu-part-chip{
  background:var(--color-primary-soft);
  border-color:rgba(15,118,110,.24);
}
.fb-diff-up,
.fb-pr-badge.vol{
  background:var(--color-success-soft);
  color:#126b4d;
}
.fb-diff-down{
  background:var(--color-risk-soft);
  color:#982c27;
}
.log-card.deleted{
  border-color:rgba(194,65,59,.18);
  background:var(--color-risk-soft);
}
.log-card.deleted .log-card-date,
.cal-dow.sun,
.cal-date.sun,
.rest-timer-display.done{
  color:var(--color-risk);
}
.cal-dow.sat,
.cal-date.sat,
.plan-chip.style-chip,
.cal-chip.style-chip{
  color:var(--color-accent);
}
.cal-cell.today,
.schedule-slot.today-col{
  border-color:var(--color-primary);
}
.cal-cell.today,
.schedule-slot.has-plan,
.today-schedule-card{
  background:var(--color-primary-soft);
}
.cal-date.today-num,
.schedule-day-label.today-label,
.menu-empty{
  color:var(--color-primary);
}
.cal-chip,
.plan-chip,
.today-plan-badge{
  background:var(--color-primary);
}
.today-plan-badge.style-badge{
  background:var(--color-accent);
}
.sched-style-pill.active-high{
  background:var(--color-risk);
  border-color:var(--color-risk);
}
.sched-style-pill.active-vol,
.sched-style-pill.active-speed{
  background:var(--color-accent);
  border-color:var(--color-accent);
}
.sched-clear-btn{
  border-color:var(--color-risk);
  color:var(--color-risk);
}
.delete-account-warning{
  background:var(--color-risk-soft);
  border-color:#efbbb6;
  color:#84231f;
}
.delete-account-input:focus{
  border-color:var(--color-risk);
  box-shadow:0 0 0 3px rgba(194,65,59,.12);
}
.delete-account-submit{
  background:var(--color-risk);
  color:#fff;
}
.delete-account-submit:disabled{
  background:#dba4a0;
}
.onboarding-header{
  background:linear-gradient(135deg,var(--color-primary-dark),var(--color-accent));
}
.onboarding-intro{
  background:var(--color-primary-soft);
  border-color:#cfe2de;
  color:#365c57;
}
.onboarding-intro-title,
.onboarding-mode-card.active .onboarding-mode-title{
  color:var(--color-primary);
}
.onboarding-chip.active-blue{
  background:var(--color-accent);
  border-color:var(--color-accent);
}
.onboarding-chip.active-red{
  background:var(--color-risk);
  border-color:var(--color-risk);
}
.profile-edit-btn{
  background:var(--color-primary-soft);
  border-color:rgba(15,118,110,.32);
  color:var(--color-primary);
}
.exec-overlay{
  background:
    radial-gradient(circle at top left,rgba(15,118,110,.18),transparent 34%),
    linear-gradient(180deg,#0d1822 0%,#101923 46%,#0b121a 100%);
}
.exec-current-card{
  background:
    linear-gradient(135deg,rgba(15,118,110,.28),rgba(46,159,166,.12)),
    rgba(255,255,255,.05);
}
.exec-kicker,
.exec-input-wrap input:focus,
.exec-rest-start-btn{
  border-color:rgba(153,225,218,.38);
}
.exec-kicker,
.exec-current-block{
  color:#99e1da;
}
.exec-input-wrap input{
  caret-color:#99e1da;
}
.exec-input-wrap input:focus{
  border-bottom-color:#99e1da;
  box-shadow:0 8px 0 -6px rgba(153,225,218,.22);
}
.exec-next-btn{
  background:linear-gradient(135deg,var(--color-primary),#159184);
  border-color:rgba(153,225,218,.30);
  box-shadow:0 12px 26px rgba(15,118,110,.24);
}
.exec-finish-set-btn{
  background:linear-gradient(135deg,var(--color-accent),#4bb6bd)!important;
}
.exec-quick-btn.plus{
  border-color:#99e1da;
  color:#99e1da;
}
.exec-quick-btn.minus{
  border-color:#e8a29e;
  color:#e8a29e;
}
.exec-rest-start-btn{
  background:rgba(15,118,110,.16);
  color:#d8fffb;
}
.exec-done-btn{
  background:rgba(15,118,110,.14);
  border-color:var(--color-primary);
  color:#99e1da;
}
.exec-done-btn.all-done{
  background:var(--color-primary);
  color:#fff;
}
@media (max-width:420px){
  .rest-timer-bar.fixed{
    box-shadow:0 12px 30px rgba(16,32,39,.16);
  }
}

/* =============================================
   Rep Craft Typography & Spacing - Phase 6
   見出し・ラベル・補足文の強弱を揃え、スマホで読みやすい
   余白と行間へ統一する。構造/JSは変更しない。
   ============================================= */
body{
  font-size:var(--font-size-md);
  line-height:var(--line-height-normal);
  letter-spacing:-.01em;
}
input,
select,
textarea,
button{
  font-size:16px;
  line-height:var(--line-height-normal);
}
.auth-title,
.share-title,
.manual-sheet-title,
.tpl-title,
.fb-title,
.sched-title,
.delete-account-title,
.pwa-guide-title{
  font-size:var(--font-size-lg);
  font-weight:var(--font-weight-bold);
  line-height:var(--line-height-tight);
  letter-spacing:-.02em;
}
.header-title{
  font-size:var(--font-size-lg);
  font-weight:var(--font-weight-bold);
  letter-spacing:-.02em;
}
.auth-sub,
.manual-url p,
.chart-sub,
.log-meta,
.advanced-analysis-targetline,
.tpl-radio-desc,
.tpl-save-note,
.delete-account-sub,
.pwa-guide-sub,
.onboarding-note,
.advanced-muted,
.advanced-personal-muted{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-relaxed);
  color:var(--color-muted);
  font-weight:var(--font-weight-regular);
}
.sec-title,
.drawer-section,
.goal-section-title,
.chart-title,
.fb-card-title,
.tpl-save-type-title,
.advanced-log-selector-label,
.advanced-decision-hero-label,
.advanced-score-compact-label,
.advanced-score-label,
.advanced-current-log-label,
.rest-timer-label,
.exec-kicker,
.exec-detail-title{
  font-size:var(--font-size-xs);
  font-weight:var(--font-weight-bold);
  line-height:var(--line-height-tight);
  letter-spacing:.07em;
  text-transform:uppercase;
}
.field-label,
.sub-label,
.intent-block-label,
.ex-note-label,
.delete-account-label,
.advanced-set-label,
.exec-input-label{
  font-size:var(--font-size-xs);
  font-weight:var(--font-weight-semibold);
  line-height:var(--line-height-tight);
  color:var(--color-muted);
}
.card,
.ex-block,
.intent-block,
.advanced-panel-card,
.fb-card,
.tpl-save-form,
.tpl-item,
.goal-item,
.goal-dash-card{
  padding:var(--space-lg);
}
.card,
.ex-block,
.advanced-panel-card,
.fb-card,
.tpl-item{
  margin-bottom:var(--space-md);
}
.hr-hint,
.inherit-hint,
.gym-hint,
.save-flow-hint,
.mode-flow-hint,
.advanced-inline-warning,
.advanced-warning,
.advanced-caution,
.advanced-personal-warning,
.delete-account-warning,
.manual-note{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-relaxed);
}
.intent-block-title,
.tpl-item-name,
.goal-item-title,
.advanced-primary-prescription-head,
.advanced-mini-item-head,
.advanced-analysis-next-name,
.advanced-personal-section-title{
  font-size:var(--font-size-md);
  font-weight:var(--font-weight-bold);
  line-height:var(--line-height-tight);
  letter-spacing:-.01em;
}
.intent-block-meta,
.tpl-item-meta,
.tpl-item-date,
.tpl-item-plan-note,
.goal-item-detail,
.advanced-confidence,
.advanced-repro-confidence,
.advanced-analysis-next-foot{
  font-size:var(--font-size-xs);
  line-height:var(--line-height-relaxed);
  color:var(--color-muted);
}
.set-row input,
.set-inputs input{
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:var(--line-height-tight);
}
.inp-label,
.kg-label,
.col-label,
.set-table-head-cell,
.set-row-num,
.advanced-help-popover,
.advanced-help-close{
  font-size:var(--font-size-xs);
  line-height:var(--line-height-normal);
}
.advanced-help-btn{
  font-size:10px;
  line-height:1;
}

/* Execution mode: 種目名 > セット位置 > 入力値 > 補助情報 */
.exec-current-title{
  font-size:clamp(23px,6vw,var(--font-size-2xl));
  line-height:1.14;
  font-weight:900;
  letter-spacing:-.04em;
}
.exec-current-block,
.exec-current-meta,
.exec-ex-aim,
.exec-prev{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-normal);
}
.exec-current-meta{
  font-weight:var(--font-weight-bold);
}
.exec-main-inputs .exec-input-wrap:nth-child(1) input,
.exec-main-inputs .exec-input-wrap:nth-child(2) input{
  font-size:clamp(30px,8vw,36px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.04em;
}
.exec-main-inputs .exec-input-wrap:nth-child(3) input{
  font-size:clamp(23px,6vw,28px);
  font-weight:var(--font-weight-bold);
}
.exec-input-unit{
  font-size:var(--font-size-xs);
  line-height:var(--line-height-tight);
}
.exec-advanced-field span{
  font-size:var(--font-size-xs);
  line-height:var(--line-height-tight);
}
.exec-advanced-field input{
  font-size:16px;
  font-weight:var(--font-weight-bold);
}
.exec-rest-start-btn,
.exec-set-nav button,
.exec-done-btn{
  font-size:var(--font-size-md);
  font-weight:var(--font-weight-bold);
  line-height:var(--line-height-tight);
}
.exec-prev-btn{
  font-weight:var(--font-weight-semibold);
}
.exec-note-input{
  font-size:16px;
  line-height:var(--line-height-normal);
}
.exec-exercise-pill{
  font-size:var(--font-size-xs);
  line-height:var(--line-height-tight);
}

/* Advanced analysis / feedback: 結論と次回候補を読みやすく */
.advanced-decision-hero-text,
.advanced-coach-summary,
.fb-ai-text{
  font-size:var(--font-size-md);
  line-height:var(--line-height-relaxed);
  font-weight:var(--font-weight-semibold);
  letter-spacing:-.01em;
}
.advanced-analysis-meta{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-normal);
  font-weight:var(--font-weight-bold);
}
.advanced-score-compact-value,
.advanced-score-value,
.advanced-panel-metric strong{
  font-size:var(--font-size-xl);
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.03em;
}
.advanced-score-compact-state,
.advanced-score-comment,
.advanced-primary-prescription-spec,
.advanced-primary-prescription-note,
.advanced-analysis-next-body,
.advanced-prescription-condition,
.advanced-repro-decision,
.advanced-compare-decision,
.advanced-personal-summary{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-relaxed);
}
.advanced-summary-details>summary,
.advanced-personal-details>summary{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-normal);
  font-weight:var(--font-weight-bold);
}
.advanced-compare-keyitem,
.advanced-repro-keyitem,
.advanced-analysis-next-item,
.advanced-priority-item,
.advanced-personal-item,
.advanced-personal-detail-item{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-relaxed);
}

/* Template / training plan modal */
.tpl-radio-title{
  font-size:var(--font-size-md);
  font-weight:var(--font-weight-bold);
  line-height:var(--line-height-tight);
}
.tpl-radio-desc{
  margin-top:2px;
}
.tpl-type-badge{
  font-size:10px;
  line-height:1.2;
  letter-spacing:.02em;
}
.tpl-save-submit,
.tpl-load-btn,
.tpl-del-btn{
  font-size:var(--font-size-sm);
  line-height:var(--line-height-tight);
}
.manual-body p,
.manual-body li,
.pwa-guide-step-text,
.delete-account-warning{
  line-height:var(--line-height-relaxed);
}

@media (max-width:420px){
  body{
    font-size:15px;
    line-height:var(--line-height-normal);
  }
  .app{
    padding-left:12px;
    padding-right:12px;
  }
  .card,
  .ex-block,
  .intent-block,
  .advanced-panel-card,
  .fb-card,
  .tpl-save-form,
  .tpl-item,
  .goal-item,
  .goal-dash-card{
    padding:12px;
  }
  .auth-title,
  .header-title,
  .tpl-title,
  .fb-title,
  .sched-title,
  .delete-account-title{
    font-size:16px;
  }
  .exec-current-title{
    font-size:22px;
  }
  .exec-current-block,
  .exec-current-meta,
  .exec-ex-aim,
  .exec-prev{
    font-size:11px;
  }
  .advanced-decision-hero-text,
  .advanced-coach-summary,
  .fb-ai-text{
    font-size:13px;
    line-height:1.65;
  }
  .advanced-score-compact-value,
  .advanced-score-value,
  .advanced-panel-metric strong{
    font-size:20px;
  }
  .tpl-radio-title{
    font-size:13px;
  }
  .tpl-radio-desc,
  .tpl-save-note{
    font-size:11px;
    line-height:1.6;
  }
  .exec-set-nav button,
  .exec-done-btn,
  .exec-rest-start-btn{
    font-size:14px;
  }
}

/* =============================================
   Rep Craft Execution Mode Final Polish
   5秒で「今どこか」「何を入力するか」「次に押すもの」が分かる
   実行モード専用の最小仕上げ。
   ============================================= */
.exec-current-card{
  margin-bottom:10px;
}
.exec-current-title{
  max-width:100%;
  overflow-wrap:anywhere;
}
.exec-current-block{
  color:rgba(216,255,251,.78);
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.12);
}
.exec-current-meta span:first-child{
  background:rgba(153,225,218,.15);
  border:1px solid rgba(153,225,218,.22);
  color:#e7fffb;
}
.exec-current-meta span:not(:first-child){
  color:rgba(255,255,255,.66);
}
.exec-prev{
  font-size:var(--font-size-xs);
  color:rgba(255,211,143,.82);
}
.exec-main-inputs{
  align-items:stretch;
}
.exec-main-inputs .exec-input-wrap:nth-child(1),
.exec-main-inputs .exec-input-wrap:nth-child(2){
  border-color:rgba(153,225,218,.20);
}
.exec-main-inputs .exec-input-wrap:nth-child(3){
  background:rgba(255,255,255,.052);
  border-color:rgba(255,255,255,.10);
}
.exec-main-inputs .exec-input-wrap:nth-child(3) .exec-input-label,
.exec-main-inputs .exec-input-wrap:nth-child(3) .exec-input-unit{
  color:rgba(255,255,255,.40);
}
.exec-detail-title{
  margin-top:8px;
  color:rgba(255,255,255,.44);
}
.exec-side-row{
  margin-bottom:8px;
}
.exec-side-row .side-toggle,
.exec-side-row .support-toggle{
  gap:5px;
}
.exec-side-row .side-btn,
.exec-side-row .support-btn{
  padding:7px 11px;
}
.exec-advanced-fields{
  margin-bottom:9px;
}
.exec-rest-start-btn{
  margin-top:0;
  margin-bottom:10px;
}
.exec-note-input{
  margin-bottom:10px;
}
.exec-set-nav{
  align-items:stretch;
}
.exec-next-btn{
  letter-spacing:.01em;
}
.exec-prev-btn{
  color:rgba(255,255,255,.52);
}
.exec-close-btn{
  white-space:nowrap;
}
.exec-done-btn{
  letter-spacing:.01em;
}
body.has-rest-timer .exec-set-nav{
  margin-bottom:18px;
}
body.has-rest-timer .exec-footer{
  border-top-color:rgba(255,255,255,.10);
}

@media (max-width:420px){
  .exec-current-card{
    padding:13px 12px 11px;
    margin-bottom:9px;
  }
  .exec-kicker{
    margin-bottom:5px;
  }
  .exec-current-title{
    font-size:21px;
    line-height:1.15;
  }
  .exec-current-block{
    margin-top:7px;
    font-size:10px;
    line-height:1.35;
  }
  .exec-current-meta{
    gap:5px;
    margin-top:8px;
  }
  .exec-current-meta span{
    min-height:23px;
    padding:0 8px;
  }
  .exec-set-dots{
    margin:9px 0 10px;
  }
  .exec-prev{
    padding:7px 9px;
    margin-bottom:10px;
  }
  .exec-main-inputs{
    margin-bottom:12px;
  }
  .exec-input-label{
    margin-bottom:5px;
  }
  .exec-input-wrap input{
    min-height:40px;
  }
  .exec-quick-btn{
    min-height:28px;
  }
  .exec-detail-title{
    margin:5px 0 7px;
  }
  .exec-side-row{
    gap:6px;
    padding:7px 8px;
  }
  .exec-side-row .exec-input-label{
    flex-basis:100%;
  }
  .exec-side-row .side-btn,
  .exec-side-row .support-btn{
    min-height:32px;
    padding:6px 9px;
  }
  .exec-advanced-fields{
    gap:6px;
  }
  .exec-advanced-field{
    padding:6px 6px 7px;
  }
  .exec-advanced-field input{
    height:34px;
  }
  .exec-advanced-field select.exec-detail-select{
    height:36px;
    font-size:13px;
  }
  .exec-rest-start-btn{
    min-height:44px;
  }
  .exec-note-input{
    height:36px;
  }
  .exec-set-nav button{
    min-height:46px;
  }
  .exec-prev-btn{
    flex:.7!important;
  }
  .exec-next-btn{
    flex:1.45!important;
  }
  body.has-rest-timer .exec-footer{
    padding-bottom:calc(var(--rest-timer-reserve-mobile) - 18px + env(safe-area-inset-bottom,0px));
  }
}

/* =============================================
   Rep Craft Input Screen Final Polish
   通常入力画面は「構成を整える」「直接入力する」「最後に保存する」
   画面として、実行/保存を主操作、テンプレート/ブロック操作を補助に整理する。
   ============================================= */
.input-workspace-card{
  background:linear-gradient(180deg,var(--color-surface),#fbfdfd);
  border-color:#d8e5e7;
}
.input-workspace-card>.sec-title{
  margin-bottom:8px;
}
.mode-flow-hint{
  background:#f7fafb;
  border-color:#dce8eb;
  color:var(--color-muted-strong);
  margin-bottom:12px;
}
.input-quick-actions{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:8px;
  margin:10px 0 12px;
}
.input-quick-action{
  min-width:0;
  min-height:42px;
  padding:9px 10px;
  border-radius:999px;
  font-size:13px;
  font-weight:950;
  line-height:1.3;
  white-space:normal;
  box-shadow:0 5px 14px rgba(15,118,110,.08);
}
.input-quick-action.add{
  background:#fff;
  border-color:#b9d8d4;
  color:var(--color-primary-dark);
}
.input-quick-action.exec{
  background:linear-gradient(135deg,#123847,#0B6F68);
  border-color:#0B6F68;
  color:#fff;
}
.input-quick-action.is-disabled,
.input-quick-action:disabled{
  background:#edf5f4;
  border-color:#d5e5e3;
  color:#67827e;
  box-shadow:none;
  cursor:not-allowed;
}
.tpl-bar{
  align-items:stretch;
}
.tpl-btn.save,
.tpl-btn.load{
  min-height:42px;
  background:var(--color-surface);
  border-color:var(--color-border);
  color:var(--color-muted-strong);
  box-shadow:none;
}
.tpl-btn.save::first-letter,
.tpl-btn.load::first-letter{
  letter-spacing:0;
}
.tpl-bar .exec-start-btn{
  min-height:44px;
  border-radius:var(--radius-md);
  letter-spacing:.01em;
}
.exec-start-btn{
  background:linear-gradient(135deg,#123847,#0B6F68)!important;
  border-color:#0B6F68!important;
  color:#fff!important;
  font-weight:950!important;
  box-shadow:0 10px 22px rgba(11,111,104,.20)!important;
}
.menu-builder-card .add-exercise-btn{
  background:#fff!important;
  border-color:#b9d8d4!important;
  color:#0B6F68!important;
  box-shadow:0 2px 8px rgba(11,111,104,.05)!important;
}
.input-action-primary.is-disabled,
.input-action-primary:disabled{
  background:#edf5f4!important;
  border-color:#d5e5e3!important;
  color:#67827e!important;
  box-shadow:none!important;
  cursor:not-allowed;
}
.exercise-empty-guide{
  margin:4px 0 10px;
  padding:13px 14px;
  border:1px dashed rgba(15,118,110,.22);
  border-radius:15px;
  background:rgba(247,251,250,.86);
  color:var(--color-muted-strong);
}
.exercise-empty-guide-title{
  font-size:14px;
  font-weight:950;
  color:var(--color-primary-dark);
  line-height:1.45;
}
.exercise-empty-guide-copy{
  margin-top:4px;
  font-size:12px;
  font-weight:750;
  line-height:1.65;
}
.exec-bottom-start-wrap{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid rgba(15,118,110,.12);
}
.exec-bottom-start-wrap[hidden],
.exec-bottom-start-wrap.hidden{
  display:none!important;
}
.exec-start-bottom-btn{
  width:100%;
  min-height:50px;
  border-radius:16px;
  font-size:15px;
  letter-spacing:0;
}
.exec-start-bottom-btn:disabled{
  opacity:.55;
  cursor:not-allowed;
  box-shadow:none!important;
}
.exec-save-btn{
  width:100%;
  margin-top:8px;
  min-height:48px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(135deg,#0B6F68,#064E49);
  color:#fff;
  font-size:15px;
  font-weight:950;
  box-shadow:0 12px 24px rgba(11,111,104,.22);
  cursor:pointer;
}
.exec-save-btn.hidden{display:none!important;}
.exec-save-btn:disabled{opacity:.68;cursor:wait;}
.exec-resume-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:10px 0 2px;
  padding:10px;
  border:1px solid rgba(15,118,110,.16);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(227,243,241,.9),rgba(247,250,249,.96));
  box-shadow:0 8px 20px rgba(11,111,104,.08);
}
.exec-resume-banner.hidden{display:none!important;}
.exec-resume-copy{min-width:0;}
.exec-resume-copy strong{display:block;color:var(--color-primary-dark);font-size:13px;font-weight:950;margin-bottom:2px;}
.exec-resume-copy span{display:block;color:var(--color-muted-strong);font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.exec-resume-btn{width:auto;min-height:38px;flex-shrink:0;padding:8px 12px;border-radius:999px;border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font-size:12px;font-weight:900;box-shadow:0 8px 16px rgba(11,111,104,.13);cursor:pointer;}
#save-btn-top{
  background:var(--color-primary)!important;
  border:1px solid var(--color-primary)!important;
  color:#fff!important;
  box-shadow:0 3px 10px rgba(15,118,110,.14)!important;
}
.ex-block{
  background:var(--color-surface);
  border-color:#d9e6e9;
  box-shadow:0 2px 10px rgba(16,32,39,.04);
}
.ex-head{
  align-items:stretch;
  gap:8px;
  margin-bottom:10px;
}
.ex-name-input{
  background:#fbfdfd;
  border-color:#cfdde1;
  color:var(--color-text);
  min-height:44px;
}
.ex-name-input:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(15,118,110,.12);
}
.ex-head-btns{
  gap:6px;
}
.search-ex-btn{
  min-height:40px;
  background:var(--color-surface-soft);
  border-color:var(--color-border);
  color:var(--color-muted-strong);
}
.ex-del-btn{
  min-width:38px;
  min-height:38px;
  border-radius:999px;
  color:#b8c3c8;
}
.ex-del-card-btn{
  color:#b66b6b;
}
.ex-del-btn:active{
  background:var(--color-risk-soft);
  color:var(--color-risk);
}
.inherit-btn{
  width:100%!important;
  min-height:38px;
  background:#fffaf0;
  border-color:#ead29f;
  color:#7b5b20;
  box-shadow:none;
}
.intent-blocks-wrap{
  gap:12px;
}
.intent-block{
  background:#f8fbfb;
  border-color:#dfeaec;
  border-radius:var(--radius-lg);
  padding:12px;
}
.intent-block-head{
  margin-bottom:8px;
}
.intent-block-title{
  color:var(--color-text);
}
.intent-block-meta{
  color:var(--color-muted);
}
.intent-block-config{
  background:#f2f7f8;
  border-color:#e0eaed;
  padding:8px;
  margin-bottom:10px;
}
.intent-block-select,
.intent-block-input,
.intent-block-note-input{
  background:var(--color-surface);
  border-color:#d6e2e5;
}
.intent-block-note-toggle,
.intent-block-merge-btn,
.block-split-btn{
  background:var(--color-surface);
  border-color:#d3e0e4;
  color:var(--color-muted-strong);
}
.set-controls{
  padding:6px 0 2px;
  color:var(--color-muted);
}
.set-table-head{
  border-bottom-color:#e7eef1;
  padding-bottom:6px;
}
.set-table-head-cell{
  color:#8a9aa3;
  font-weight:800;
}
.set-row{
  background:#f7fafb;
  border-color:#e5edf0;
  padding:7px;
  margin-bottom:7px;
}
.set-row-num{
  color:var(--color-muted-strong);
}
.set-row > div:nth-child(2) input,
.set-row > div:nth-child(3) input{
  border-color:#cbdde0;
  background:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.set-row > div:nth-child(4) input{
  border-color:#dce6e9;
  background:#fbfdfd;
  color:var(--color-muted-strong);
}
.set-row input:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(15,118,110,.12);
}
.set-row-del{
  border-radius:999px;
  color:#b9c4c9;
}
.set-row-del:active{
  background:var(--color-risk-soft);
  color:var(--color-risk);
}
.set-side-row{
  padding:1px 4px 5px;
}
.side-toggle,
.support-toggle{
  border-color:#d7e2e5;
  background:var(--color-surface);
}
.side-btn,
.support-btn{
  color:var(--color-muted-strong);
}
.set-timer-btn{
  background:var(--color-surface);
  border-color:rgba(46,159,166,.32);
  color:#24777d;
}
.advanced-set-fields{
  background:#f7fafb;
  border:1px solid #e6eef1;
  border-radius:var(--radius-md);
  padding:8px;
  margin:2px 4px 8px;
}
.advanced-set-label{
  color:var(--color-muted);
}
.advanced-set-field input{
  background:#fff;
  border-color:#d9e4e7;
}
.set-memo{
  background:#fbfdfd;
  border-color:#e3ebee;
  min-height:36px;
}
.weight-quick-btns{
  gap:4px;
  padding-bottom:6px;
}
.weight-quick-btn{
  min-height:30px;
  border-color:#dce6e9;
  background:#fbfdfd;
}
.prev-set-btn{
  background:var(--color-surface);
  border-color:rgba(46,159,166,.28);
  color:#24777d;
}
.add-set-btn{
  min-height:48px;
  background:linear-gradient(180deg,var(--color-accent-soft),#dff2f4);
  border-color:rgba(46,159,166,.38);
  color:#1d6d73;
}
.add-block-btn{
  width:calc(100% - 20px);
  margin-top:16px;
  margin-bottom:20px;
  background:#fbfdfd;
  border-color:#cfdde1;
  color:var(--color-muted-strong);
}
.add-exercise-btn{
  margin-top:22px;
  min-height:48px;
  border-style:solid;
}
.ex-note-wrap{
  border-top-color:#e6eef1;
}
.ex-note-input{
  background:#fbfdfd;
  border-color:#e3ebee;
}
.save-flow-hint{
  margin-top:10px;
  background:var(--color-primary-soft);
  border-color:#cfe2de;
  color:#345f5a;
}
.save-btn{
  min-height:52px;
  border-radius:var(--radius-lg);
  letter-spacing:.01em;
}
.copy-log-btn,
.new-log-btn{
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  background:var(--color-surface);
  color:var(--color-muted-strong);
  font-weight:800;
}
button[onclick="openShareCardModal()"]{
  background:var(--color-surface)!important;
  border-color:var(--color-border)!important;
  color:var(--color-muted-strong)!important;
  box-shadow:none!important;
}

@media (max-width:420px){
  .input-workspace-card{
    padding:12px;
  }
  .mode-flow-hint{
    font-size:11px;
    line-height:1.6;
    padding:8px 9px;
  }
  .tpl-bar{
    gap:7px;
  }
  .tpl-btn.save,
  .tpl-btn.load{
    min-height:40px;
  }
  .ex-block{
    padding:11px;
    margin-bottom:12px;
  }
  .ex-head{
    gap:7px;
  }
  .ex-head-btns{
    width:100%;
    justify-content:flex-end;
  }
  .search-ex-btn{
    min-height:36px;
  }
  .ex-name-wrap{
    min-width:100%;
  }
  .intent-block{
    padding:10px;
  }
  .intent-block-grid{
    grid-template-columns:1fr;
  }
  .set-table-head{
    grid-template-columns:28px 1.12fr 1.12fr .9fr 34px!important;
  }
  .set-row{
    grid-template-columns:28px 1.12fr 1.12fr .9fr 34px!important;
    gap:4px;
    padding:6px 5px;
  }
  .set-row input{
    min-height:42px;
    padding:8px 4px;
  }
  .set-side-row{
    gap:5px;
  }
  .side-btn{
    min-width:46px;
    padding:7px 10px;
  }
  .support-btn{
    min-width:62px;
    padding:7px 10px;
  }
  .advanced-set-fields{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    padding:7px;
  }
  .add-set-btn,
  .add-exercise-btn{
    min-height:48px;
  }
  .add-block-btn{
    min-height:40px;
    font-size:12px;
  }
  .save-btn{
    min-height:52px;
  }
}

/* =============================================
   Input Core Polish 20260429
   通常入力は「メニュー構成」、実行モードは「トレーニング中の記録」として
   入口の迷いを減らす。ロジックは触らず、階層と押しやすさを整える。
   ============================================= */
.menu-builder-card{
  position:relative;
  overflow:hidden;
  border-color:#d6e4e6;
  background:
    radial-gradient(circle at 12% 0%,rgba(46,159,166,.10),transparent 28%),
    linear-gradient(180deg,#fff,#fbfdfd 76%,#f7fbfb);
}
.menu-builder-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.input-kicker{
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--color-primary);
  margin-bottom:3px;
}
.input-role-badge{
  flex-shrink:0;
  padding:5px 10px;
  border:1px solid #cfe2de;
  border-radius:999px;
  background:var(--color-primary-soft);
  color:var(--color-primary-dark);
  font-size:11px;
  font-weight:900;
}
.menu-builder-guide{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin:8px 0 10px;
}
.menu-guide-step{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:34px;
  padding:6px 7px;
  border:1px solid #dfe9ec;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:var(--color-muted-strong);
  font-size:11px;
  font-weight:850;
  line-height:1.2;
  white-space:nowrap;
}
.menu-guide-step span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  border-radius:999px;
  background:#eef5f6;
  color:#577079;
  font-size:10px;
  font-weight:900;
}
.menu-guide-step.active{
  border-color:#b9d8d4;
  color:var(--color-primary-dark);
}
.menu-guide-step.active span{
  background:var(--color-primary);
  color:#fff;
}
.menu-guide-step.primary{
  border-color:#a8d1d5;
  background:linear-gradient(180deg,#f2fbfb,#e7f5f6);
  color:#1d6d73;
}
.menu-guide-step.primary span{
  min-width:28px;
  background:var(--color-accent);
  color:#fff;
}
.has-first-log-guide{
  margin:10px 0 12px;
}
.first-log-guide{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(15,118,110,.16);
  border-radius:18px;
  background:
    radial-gradient(circle at 0% 0%,rgba(46,159,166,.16),transparent 34%),
    rgba(255,255,255,.82);
  box-shadow:0 14px 36px rgba(15,118,110,.10);
  backdrop-filter:blur(12px);
}
.first-log-guide-kicker{
  font-size:10px;
  font-weight:950;
  letter-spacing:.12em;
  color:var(--color-primary);
  text-transform:uppercase;
  margin-bottom:3px;
}
.first-log-guide-title{
  font-size:16px;
  font-weight:950;
  letter-spacing:-.02em;
  color:var(--color-text);
}
.first-log-guide-copy,
.first-log-guide-note{
  margin-top:4px;
  font-size:12px;
  line-height:1.65;
  color:var(--color-muted-strong);
}
.first-log-guide-steps{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:9px 0 0;
  padding:0;
  list-style:none;
}
.first-log-guide-steps li{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(15,118,110,.08);
  color:var(--color-primary-dark);
  font-size:11px;
  font-weight:900;
}
.first-log-guide-actions{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:128px;
}
.first-log-guide-primary,
.first-log-guide-dismiss{
  min-height:40px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid rgba(15,118,110,.18);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  touch-action:manipulation;
}
.first-log-guide-primary{
  background:linear-gradient(135deg,var(--color-primary),#139288);
  color:#fff;
  box-shadow:0 9px 20px rgba(15,118,110,.18);
}
.first-log-guide-dismiss{
  background:rgba(255,255,255,.78);
  color:var(--color-muted-strong);
}
.first-log-onboarding{
  align-items:start;
}
.first-log-onboarding-mode{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 9px;
  margin-top:10px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(15,118,110,.07);
  font-size:11px;
  line-height:1.55;
  color:var(--color-muted-strong);
}
.first-log-onboarding-mode strong{
  color:var(--color-primary-dark);
  font-size:12px;
}
.first-log-onboarding-progress{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin-bottom:6px;
  color:var(--color-primary-dark);
  font-size:11px;
  font-weight:950;
}
.first-log-onboarding-progress span{
  padding:4px 9px;
  border-radius:999px;
  background:rgba(15,118,110,.10);
}
.first-log-onboarding-progress em{
  font-style:normal;
  color:var(--color-muted-strong);
  font-weight:800;
}
.first-log-onboarding-later,
.first-log-onboarding-back{
  min-height:40px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid rgba(15,118,110,.16);
  background:rgba(15,118,110,.06);
  color:var(--color-primary-dark);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  touch-action:manipulation;
}
.first-log-onboarding-later:active,
.first-log-onboarding-back:active{
  transform:translateY(1px);
}
body.first-log-onboarding-active{
  padding-bottom:calc(132px + env(safe-area-inset-bottom,0px));
}
.first-log-onboarding-floating{
  position:fixed;
  left:12px;
  right:12px;
  bottom:calc(12px + env(safe-area-inset-bottom,0px));
  z-index:320;
  max-width:720px;
  margin:0 auto;
  padding:12px;
  border:1px solid rgba(15,118,110,.18);
  border-radius:18px;
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 42px rgba(15,23,42,.18);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.first-log-onboarding-floating-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:5px;
  font-size:11px;
  font-weight:950;
  color:var(--color-primary-dark);
}
.first-log-onboarding-floating-head span{
  padding:3px 8px;
  border-radius:999px;
  background:rgba(15,118,110,.10);
}
.first-log-onboarding-floating-head em{
  font-style:normal;
  color:var(--color-muted-strong);
}
.first-log-onboarding-floating-title{
  font-size:14px;
  font-weight:950;
  color:var(--color-text);
}
.first-log-onboarding-floating-copy{
  margin-top:3px;
  font-size:12px;
  line-height:1.55;
  color:var(--color-muted-strong);
}
.first-log-onboarding-floating-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  margin-top:9px;
}
.first-log-onboarding-floating-actions .first-log-guide-primary{
  flex:1 1 150px;
}
.first-log-onboarding-floating-actions .first-log-onboarding-back,
.first-log-onboarding-floating-actions .first-log-guide-dismiss{
  flex:0 0 auto;
  min-height:38px;
  padding:8px 11px;
}
.onboarding-highlight{
  position:relative;
  z-index:1;
  outline:3px solid rgba(18,137,127,.36);
  outline-offset:3px;
  box-shadow:0 0 0 7px rgba(18,137,127,.10),0 12px 24px rgba(15,118,110,.12);
  scroll-margin-top:86px;
  animation:onboardingHighlightPulse 1.7s ease-in-out infinite;
}
@keyframes onboardingHighlightPulse{
  0%,100%{
    outline-color:rgba(18,137,127,.34);
    box-shadow:0 0 0 6px rgba(18,137,127,.09),0 12px 24px rgba(15,118,110,.10);
  }
  50%{
    outline-color:rgba(18,137,127,.55);
    box-shadow:0 0 0 9px rgba(18,137,127,.12),0 14px 28px rgba(15,118,110,.15);
  }
}
.first-log-guide-primary:active,
.first-log-guide-dismiss:active{
  transform:translateY(1px);
}
.input-action-bar{
  display:grid;
  grid-template-columns:1.45fr .9fr .9fr;
  gap:8px;
  align-items:stretch;
  margin:12px 0 14px;
}
.input-action-bar .tpl-btn{
  margin:0;
  white-space:normal;
}
.input-action-primary{
  min-height:52px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--color-primary),#118b82)!important;
  border-color:var(--color-primary)!important;
  color:#fff!important;
  font-size:15px;
  font-weight:950;
  box-shadow:0 10px 24px rgba(15,118,110,.18)!important;
}
.input-action-secondary{
  min-height:52px;
  border-radius:14px;
  background:#fff!important;
  border-color:#d6e2e5!important;
  color:var(--color-muted-strong)!important;
  font-size:12px;
  font-weight:850;
  box-shadow:none!important;
}
.input-action-secondary:active{
  background:#f5fafb!important;
}
.menu-section-label{
  display:flex;
  align-items:center;
  gap:8px;
  margin:6px 0 10px;
  color:var(--color-muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
.menu-section-label:before,
.menu-section-label:after{
  content:"";
  height:1px;
  flex:1;
  background:#e5eef1;
}
.ex-block{
  position:relative;
  border-radius:20px;
  padding:14px;
}
.simple-ex-block{
  border-color:#dce9e7;
  background:linear-gradient(180deg,#fff,#fbfdfd);
}
.advanced-ex-block{
  border-color:#d7e5ea;
  background:linear-gradient(180deg,#fff,#f8fbfc);
}
.ex-card-kicker{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 9px;
  margin-bottom:8px;
  border-radius:999px;
  background:#f0f6f7;
  color:#60737b;
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
}
.ex-head{
  margin-bottom:9px;
}
.ex-name-input{
  min-height:48px;
  border-radius:15px;
  font-size:17px;
  letter-spacing:.01em;
}
.search-ex-btn{
  border-radius:12px;
  min-width:86px;
}
.ex-del-btn{
  background:#fff;
  border:1px solid #e7edef;
}
.ex-del-card-btn{
  background:#fffafa;
  border-color:#ead8d8;
}
.inherit-btn{
  border-radius:13px;
}
.set-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:11px 3px 7px;
  color:var(--color-text);
  font-size:12px;
  font-weight:950;
}
.set-section-title em{
  color:var(--color-muted);
  font-size:10px;
  font-style:normal;
  font-weight:800;
}
.block-set-section-title{
  margin-top:9px;
}
.simple-set-head,
.simple-set-row{
  grid-template-columns:30px minmax(0,1.08fr) minmax(0,1.02fr) minmax(0,.74fr) 36px!important;
}
.advanced-set-head,
.advanced-set-row{
  grid-template-columns:30px minmax(0,1.08fr) minmax(0,1.08fr) minmax(0,.82fr) 36px!important;
}
.set-row-main{
  border:1px solid #e5eef1;
  border-radius:14px;
  background:#fbfdfd;
  box-shadow:0 1px 0 rgba(16,32,39,.02);
}
.set-row-main input{
  min-height:46px;
  border-radius:12px;
  font-size:17px;
}
.set-field-weight input,
.set-field-reps input{
  border-color:#c2d8d8!important;
  background:#fff!important;
  color:var(--color-text);
  font-weight:950;
}
.set-field-weight input::placeholder,
.set-field-reps input::placeholder{
  color:#9aabb0;
}
.set-field-hr input{
  border-color:#dce7ea!important;
  background:#f8fbfc!important;
  color:#62747d;
  font-size:15px;
  font-weight:800;
}
.set-row-del{
  min-width:36px;
  min-height:36px;
  border:1px solid transparent;
  background:transparent;
  font-weight:900;
}
.block-delete-btn{
  border-color:#f2d6d2;
  background:#fff8f7;
  color:#b45345;
  border-radius:999px;
}
.block-delete-btn:active{
  background:#ffe9e5;
  color:#9f3328;
}
.set-row-del:active{
  border-color:#ffd4cf;
}
.set-side-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin:-1px 2px 7px;
  padding:6px 7px;
  border:1px solid #edf3f4;
  border-radius:14px;
  background:#fcfefe;
}
.side-toggle,
.support-toggle{
  min-height:38px;
  border-radius:999px;
}
.side-btn,
.support-btn{
  min-height:36px;
  padding:8px 12px;
}
.set-timer-btn{
  min-height:36px;
  border-radius:999px;
}
.weight-quick-btns{
  margin:0 2px 6px;
}
.weight-quick-btn{
  min-height:32px;
  border-radius:10px;
}
.set-note-row{
  padding:0 3px 6px;
}
.set-memo{
  border-radius:12px;
  font-size:13px;
  color:var(--color-muted-strong);
}
.advanced-set-fields{
  grid-template-columns:repeat(3,minmax(0,1fr));
  background:#f8fbfc;
  border-style:dashed;
}
.advanced-set-field input{
  min-height:38px;
  border-radius:11px;
  font-size:15px;
  font-weight:850;
}
.advanced-set-label{
  justify-content:flex-start;
  padding-left:2px;
  font-weight:850;
}
.intent-block{
  box-shadow:none;
}
.intent-block-head{
  padding-bottom:6px;
  border-bottom:1px solid #e8f0f2;
}
.intent-block-title{
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.intent-block-meta{
  font-size:12px;
  font-weight:850;
}
.intent-block-config{
  background:#f7fbfb;
  border-style:dashed;
}
.intent-block-note-toggle,
.intent-block-merge-btn,
.block-split-btn{
  min-height:32px;
  border-radius:999px;
  font-size:11px;
}
.add-set-btn{
  min-height:50px;
  border-radius:16px;
  background:linear-gradient(180deg,#ebf8f8,#dff3f4)!important;
  border-color:#aed9dc!important;
  color:#1d6d73!important;
  font-weight:900;
  box-shadow:0 8px 18px rgba(46,159,166,.12)!important;
}
.add-block-btn{
  min-height:42px;
  border-style:solid!important;
  background:linear-gradient(180deg,#ffffff,#f6f9fa)!important;
  border-color:#d2dde1!important;
  color:#687981!important;
  opacity:.96;
  box-shadow:0 3px 10px rgba(15,23,42,.035)!important;
}
.add-exercise-btn{
  min-height:56px;
  border-radius:18px;
  background:linear-gradient(180deg,var(--color-primary),var(--color-primary-dark))!important;
  border-color:var(--color-primary-dark)!important;
  color:#fff!important;
  font-size:16px;
  font-weight:950;
  letter-spacing:.02em;
  box-shadow:0 10px 24px rgba(15,118,110,.22)!important;
}
.add-exercise-btn:active{
  transform:translateY(1px);
  box-shadow:0 5px 14px rgba(15,118,110,.18)!important;
}
.log-save-panel{
  margin:14px 0 8px;
  padding:10px;
  border:1px solid #d4e4df;
  border-radius:20px;
  background:linear-gradient(180deg,#f7fcfa,#eef8f5);
}
.log-save-panel .save-flow-hint{
  margin:0 0 8px;
}
#save-btn-top{
  min-height:34px;
  border-radius:999px!important;
}
.save-btn{
  box-shadow:0 10px 22px rgba(15,118,110,.18);
}
body.simple-mode .menu-builder-card{
  background:linear-gradient(180deg,#fff,#fbfdfd);
}
body.simple-mode .menu-builder-guide{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
body.simple-mode .simple-ex-block{
  padding-bottom:13px;
}
body.simple-mode .set-section-title em{
  color:#789197;
}
body.simple-mode .set-side-row{
  background:transparent;
  border-color:#eef4f5;
}
body.simple-mode .weight-quick-btns,
body.simple-mode .set-note-row{
  opacity:.82;
}
body.simple-mode .set-timer-btn{
  background:#fff;
}
.schedule-management-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  padding:14px 16px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f6fbfa);
  box-shadow:0 2px 10px rgba(11,111,104,.06);
}
.schedule-management-kicker{
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--color-primary);
  margin-bottom:3px;
}
.schedule-management-title{
  font-size:18px;
  font-weight:950;
  color:var(--color-text);
  line-height:1.25;
}
.schedule-management-note{
  margin-top:4px;
  font-size:12px;
  font-weight:700;
  color:var(--color-muted-strong);
  line-height:1.5;
}
.schedule-management-back{
  width:auto;
  flex-shrink:0;
  min-height:38px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(15,118,110,.22);
  background:#fff;
  color:var(--color-primary-dark);
  font-size:12px;
  font-weight:900;
}

@media (max-width:420px){
  .menu-builder-card{
    padding:12px 10px 14px;
    border-radius:18px;
  }
  .menu-builder-head{
    align-items:center;
    margin-bottom:8px;
  }
  .input-role-badge{
    padding:4px 8px;
    font-size:10px;
  }
  .menu-builder-guide{
    grid-template-columns:1fr 1fr;
    gap:6px;
  }
  body.simple-mode .menu-builder-guide{
    grid-template-columns:1fr 1fr;
  }
  .menu-guide-step{
    min-height:31px;
    padding:5px 6px;
    font-size:10px;
  }
  .menu-guide-step span{
    min-width:18px;
    height:18px;
  }
  .schedule-management-head{
    padding:12px;
    align-items:stretch;
    flex-direction:column;
  }
  .schedule-management-back{
    width:100%;
  }
  .input-quick-actions{
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin:8px 0 10px;
  }
  .input-quick-action{
    min-height:40px;
    padding:8px 9px;
    font-size:12px;
  }
  .analysis-overview-card{
    flex-direction:column;
    padding:12px;
    gap:10px;
  }
  .analysis-overview-chips{
    width:100%;
    flex:1 1 auto;
    justify-content:flex-start;
  }
  .analysis-subtab-bar{
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-left:-10px;
    margin-right:-10px;
    padding-left:10px;
    padding-right:10px;
  }
  .first-log-guide{
    grid-template-columns:1fr;
    padding:12px;
    border-radius:16px;
  }
  .first-log-guide-title{
    font-size:15px;
  }
  .first-log-guide-actions{
    flex-direction:row;
    min-width:0;
  }
  .first-log-guide-primary,
  .first-log-guide-dismiss{
    flex:1 1 0;
    min-height:42px;
    padding-left:10px;
    padding-right:10px;
  }
  .first-log-onboarding-actions{
    flex-wrap:wrap;
  }
  .first-log-onboarding-actions .first-log-guide-primary{
    flex:1 1 100%;
  }
  .first-log-onboarding-actions .first-log-onboarding-later,
  .first-log-onboarding-actions .first-log-onboarding-back,
  .first-log-onboarding-actions .first-log-guide-dismiss{
    flex:1 1 calc(50% - 4px);
    min-height:42px;
  }
  body.first-log-onboarding-active{
    padding-bottom:calc(154px + env(safe-area-inset-bottom,0px));
  }
  .first-log-onboarding-floating{
    left:8px;
    right:8px;
    bottom:calc(8px + env(safe-area-inset-bottom,0px));
    padding:11px;
    border-radius:16px;
  }
  .first-log-onboarding-floating-actions{
    gap:6px;
  }
  .first-log-onboarding-floating-actions .first-log-guide-primary{
    flex:1 1 100%;
  }
  .first-log-onboarding-floating-actions .first-log-onboarding-back,
  .first-log-onboarding-floating-actions .first-log-guide-dismiss{
    flex:1 1 calc(50% - 3px);
    min-height:39px;
  }
  .input-action-bar{
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin:10px 0 12px;
  }
  .input-action-primary{
    grid-column:1 / -1;
    min-height:52px;
    font-size:15px;
  }
  .input-action-secondary{
    min-height:42px;
  }
  .menu-section-label{
    margin-top:4px;
  }
  .ex-block{
    padding:11px 9px;
    border-radius:18px;
  }
  .ex-card-kicker{
    margin-bottom:7px;
  }
  .ex-name-input{
    min-height:46px;
    font-size:16px;
  }
  .ex-head-btns{
    justify-content:space-between;
  }
  .search-ex-btn{
    flex:1;
  }
  .ex-del-card-btn{
    top:9px;
    right:9px;
    width:38px;
    min-width:38px;
    height:38px;
    min-height:38px;
    flex:0 0 auto;
  }
  .set-section-title{
    margin:10px 2px 6px;
  }
  .simple-set-head,
  .simple-set-row{
    grid-template-columns:26px minmax(0,1.08fr) minmax(0,.98fr) minmax(44px,.72fr) 32px!important;
  }
  .advanced-set-head,
  .advanced-set-row{
    grid-template-columns:26px minmax(0,1.12fr) minmax(0,1.12fr) minmax(0,.76fr) 32px!important;
  }
  .set-row-main{
    gap:4px;
    padding:6px 4px;
    border-radius:13px;
  }
  .set-row-main input{
    min-height:44px;
    font-size:16px;
    padding:8px 3px;
  }
  .set-field-weight input,
  .set-field-reps input{
    font-size:17px;
  }
  .set-field-hr input{
    font-size:14px;
  }
  .set-row-del{
    min-width:32px;
    min-height:32px;
    padding:5px;
  }
  .set-side-row{
    padding:5px;
    gap:5px;
  }
  .side-toggle,
  .support-toggle{
    flex:1 1 auto;
  }
  .side-toggle .side-btn{
    flex:1;
  }
  .side-btn,
  .support-btn{
    min-height:35px;
    padding:7px 9px;
    font-size:12px;
  }
  .set-timer-btn{
    flex:1 1 100%;
    margin-top:1px;
  }
  .advanced-set-fields{
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-left:2px;
    margin-right:2px;
  }
  .intent-block{
    border-radius:16px;
  }
  .intent-block-config{
    padding:7px;
  }
  .add-set-btn{
    min-height:48px;
  }
  .add-block-action-wrap{
    margin:12px 4px 16px;
    gap:7px;
  }
  .add-block-help-btn{
    width:34px;
    height:34px;
    min-width:34px;
  }
  .add-block-help-popover{
    right:0;
    max-width:calc(100vw - 34px);
  }
  .log-save-panel{
    padding:9px;
    border-radius:18px;
  }
}

/* =============================================
   Theme Collapse 20260430
   トレーニングテーマは必要な時だけ開き、メニュー構成までの距離を短くする。
   ============================================= */
.theme-collapse-card{
  padding:0;
  overflow:hidden;
  border-color:#dfe9ec;
  background:linear-gradient(180deg,#fff,#fbfdfd);
}
.theme-collapse-header{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:62px;
  padding:13px 15px;
  border:0;
  border-radius:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.theme-collapse-header:active{
  background:#f5fafb;
  opacity:1;
}
.theme-collapse-text{
  min-width:0;
  flex:1;
}
.theme-collapse-title{
  color:var(--color-text);
  font-size:14px;
  font-weight:950;
  line-height:1.25;
  margin-bottom:4px;
}
.theme-collapse-summary{
  color:var(--color-muted);
  font-size:12px;
  font-weight:800;
  line-height:1.4;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.theme-collapse-card.has-theme-value .theme-collapse-summary{
  color:var(--color-primary-dark);
}
.theme-collapse-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  flex:0 0 32px;
  border-radius:999px;
  background:#f0f6f7;
  color:var(--color-muted-strong);
  font-size:16px;
  font-weight:950;
}
.theme-collapse-card.open .theme-collapse-toggle{
  background:var(--color-primary-soft);
  color:var(--color-primary);
}
.theme-collapse-body{
  display:none;
  padding:0 15px 14px;
  border-top:1px solid #edf3f4;
}
.theme-collapse-card.open .theme-collapse-body{
  display:block;
}
.theme-collapse-body .field-group:first-child{
  margin-top:12px;
}
.theme-collapse-body .field-group:last-child{
  margin-bottom:0;
}
.theme-collapse-body .chip-group{
  gap:7px;
}
.theme-collapse-body .chip{
  min-height:36px;
  padding:8px 13px;
  font-weight:800;
}

@media (max-width:420px){
  .theme-collapse-card{
    border-radius:14px;
    margin-bottom:10px;
  }
  .theme-collapse-header{
    min-height:58px;
    padding:12px 13px;
  }
  .theme-collapse-title{
    font-size:14px;
  }
  .theme-collapse-summary{
    font-size:12px;
  }
  .theme-collapse-toggle{
    width:30px;
    height:30px;
    flex-basis:30px;
  }
  .theme-collapse-body{
    padding:0 12px 12px;
  }
  .theme-collapse-body .chip-group{
    gap:6px;
  }
  .theme-collapse-body .chip{
    flex:0 1 auto;
    min-height:35px;
    padding:8px 11px;
    font-size:13px;
  }
}

/* =============================================
   Collapse Icon Unification 20260430
   主要折りたたみを丸い淡色chevronへ統一する。
   ============================================= */
.collapse-toggle-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  min-width:40px;
  flex:0 0 40px;
  border-radius:999px;
  background:var(--color-surface-soft);
  color:var(--color-primary);
  font-size:17px;
  font-weight:950;
  line-height:1;
  box-shadow:inset 0 0 0 1px rgba(15,118,110,.08);
  transition:transform .2s ease,background .15s ease,color .15s ease,box-shadow .15s ease;
}
.collapsible-arrow.open,
.theme-collapse-card.open .theme-collapse-toggle{
  background:var(--color-primary-soft);
  color:var(--color-primary);
}
.theme-collapse-card.open .theme-collapse-toggle{
  transform:rotate(180deg);
}
.collapsible-toggle:active .collapse-toggle-icon,
.theme-collapse-header:active .collapse-toggle-icon{
  background:#dff1ee;
}
.advanced-summary-details>summary,
.advanced-personal-details>summary{
  list-style:none;
}
.advanced-summary-details>summary::-webkit-details-marker,
.advanced-personal-details>summary::-webkit-details-marker{
  display:none;
}
.advanced-summary-details>summary::after,
.advanced-personal-details>summary::after{
  content:"∨";
  float:right;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin-left:8px;
  border-radius:999px;
  background:var(--color-surface-soft);
  color:var(--color-primary);
  font-weight:950;
  font-size:13px;
  line-height:1;
}
.advanced-summary-details[open]>summary::after,
.advanced-personal-details[open]>summary::after{
  content:"∧";
  background:var(--color-primary-soft);
}

@media (max-width:420px){
  .collapsible-toggle,
  .theme-collapse-header{
    gap:10px;
  }
  .collapse-toggle-icon{
    width:38px;
    height:38px;
    min-width:38px;
    flex-basis:38px;
    font-size:16px;
  }
  .collapsible-toggle{
    padding:12px 13px;
  }
  .collapsible-title{
    font-size:14px;
  }
  .collapsible-summary{
    font-size:12px;
  }
}

/* Exercise Meta Collapse 20260513
   ウォームアップ/器具メモは補助情報として畳み、セット入力を主役にする。 */
.exercise-meta-collapse{
  margin:9px 0 12px;
  border:1px solid rgba(15,118,110,.13);
  border-radius:15px;
  background:linear-gradient(180deg,#fff,var(--color-surface-soft));
  box-shadow:0 1px 2px rgba(15,23,42,.025);
  overflow:hidden;
}
.exercise-meta-header{
  width:100%;
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--color-text);
  cursor:pointer;
  text-align:left;
}
.exercise-meta-header:active{
  background:#f4faf8;
  opacity:1;
}
.exercise-meta-text{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.exercise-meta-title{
  color:var(--color-muted-strong);
  font-size:12px;
  font-weight:900;
  letter-spacing:.01em;
}
.exercise-meta-summary{
  color:var(--color-muted);
  font-size:11px;
  font-weight:800;
  line-height:1.45;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.exercise-meta-collapse.has-exercise-meta-value{
  border-color:rgba(11,111,104,.22);
  background:linear-gradient(180deg,#fff,#F3FAF8);
}
.exercise-meta-collapse.has-exercise-meta-value .exercise-meta-summary{
  color:var(--color-primary-dark);
}
.exercise-meta-toggle.collapse-toggle-icon{
  width:34px;
  height:34px;
  min-width:34px;
  flex-basis:34px;
  font-size:15px;
}
.exercise-meta-collapse.open .exercise-meta-toggle{
  background:var(--color-primary-soft);
  color:var(--color-primary);
}
.exercise-meta-body{
  display:none;
  padding:0 12px 12px;
  border-top:1px solid rgba(15,118,110,.10);
}
.exercise-meta-collapse.open .exercise-meta-body{
  display:block;
}
.exercise-meta-field{
  margin:10px 0 0;
}
.exercise-meta-field input{
  min-height:40px;
  border-radius:12px;
  background:#fff;
}
.exercise-equipment-input{
  border-color:rgba(11,111,104,.18)!important;
  background:#fff!important;
}
.exercise-meta-field .sub-label{
  color:var(--color-muted-strong);
  font-size:11px;
  font-weight:850;
}
.legacy-aim-note{
  margin-top:10px;
  padding:9px 10px;
  border:1px dashed rgba(15,118,110,.16);
  border-radius:12px;
  background:#FBFEFD;
}
.legacy-aim-note span{
  display:block;
  color:var(--color-muted);
  font-size:11px;
  font-weight:850;
  margin-bottom:4px;
}
.legacy-aim-note p{
  margin:0;
  color:var(--color-muted-strong);
  font-size:12px;
  line-height:1.6;
  font-weight:750;
}

@media (max-width:420px){
  .exercise-meta-collapse{
    margin:8px 0 10px;
    border-radius:14px;
  }
  .exercise-meta-header{
    min-height:52px;
    padding:9px 10px;
  }
  .exercise-meta-toggle.collapse-toggle-icon{
    width:32px;
    height:32px;
    min-width:32px;
    flex-basis:32px;
  }
  .exercise-meta-body{
    padding:0 10px 10px;
  }
  .exercise-meta-field input{
    font-size:16px;
  }
}

/* =============================================
   Luxury Surface Polish 20260430
   白いWebフォーム感を抑え、薄い青緑グレーと控えめな影で奥行きを出す。
   ============================================= */
.header{
  background:rgba(255,255,255,.88);
  border-bottom-color:rgba(15,118,110,.12);
  backdrop-filter:blur(14px);
}
.tab-bar,
.logs-subtab-bar{
  background:rgba(255,255,255,.84);
  border-color:var(--color-border);
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
.card,
.collapsible-card,
.theme-collapse-card,
.log-card,
.chart-card,
.best-card,
.menu-card,
.goal-dash-card,
.manual-quick,
.manual-section,
.milestone-card{
  background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%);
  border-color:var(--color-border);
  box-shadow:var(--shadow-soft);
}
.input-workspace-card,
.theme-collapse-card,
.menu-builder-card,
.log-save-panel{
  border-color:rgba(15,118,110,.16);
}
.input-workspace-card{
  background:linear-gradient(180deg,#fff,#F8FBFA);
}
.theme-collapse-card{
  background:linear-gradient(180deg,#fff,#F8FBFA);
}
.menu-builder-card{
  background:
    radial-gradient(circle at 14% 0%,rgba(11,111,104,.10),transparent 28%),
    linear-gradient(180deg,#fff 0%,#F8FBFA 72%,#F3F8F7 100%);
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 16px 34px rgba(15,118,110,.09);
}
.log-save-panel{
  background:linear-gradient(180deg,#F8FCFA,#EEF7F4);
  box-shadow:0 1px 2px rgba(15,23,42,.03),0 10px 22px rgba(15,118,110,.07);
}
input,
select,
textarea{
  background:#fff;
  border-color:var(--color-border-strong);
}
input:focus,
select:focus,
textarea:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(11,111,104,.13);
}
.btn-primary,
.save-btn,
.share-save-btn,
.sched-save-btn,
.onboarding-save-btn,
.exec-start-btn,
.exec-next-btn,
.exec-done-btn.all-done,
.tpl-load-btn,
.rest-timer-btn.start{
  background:linear-gradient(180deg,var(--color-primary),var(--color-primary-dark))!important;
  border-color:var(--color-primary)!important;
  box-shadow:0 1px 2px rgba(15,23,42,.08),0 10px 22px rgba(11,111,104,.18)!important;
}
.btn-primary:active,
.save-btn:active,
.exec-next-btn:active{
  background:var(--color-primary-dark)!important;
}
.tpl-item-btns .tpl-load-btn,
.tpl-load-btn{
  color:#fff!important;
  font-weight:900!important;
  text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.tpl-item-btns .tpl-load-btn{
  min-height:36px;
  border-color:rgba(255,255,255,.18)!important;
}
.tpl-item-btns .tpl-del-btn{
  color:#b42318!important;
  text-shadow:none;
}
.btn-secondary,
.add-set-btn,
.add-exercise-btn,
.profile-edit-btn{
  box-shadow:0 1px 2px rgba(15,23,42,.03),0 8px 18px rgba(11,111,104,.07);
}
.set-row-main,
.intent-block,
.advanced-set-fields,
.set-side-row,
.tpl-radio-group,
.tpl-save-method-group,
.manual-info-card{
  border-color:var(--color-border);
  background:#FBFEFD;
}
.advanced-panel-card,
.fb-card,
.advanced-current-log,
.advanced-primary-prescription,
.advanced-compare-keyitem,
.advanced-compare-metric,
.advanced-repro-keyitem,
.advanced-mini-item,
.advanced-prescription-card,
.advanced-block-card,
.advanced-score-compact-item,
.advanced-score-item,
.advanced-analysis-next-item,
.advanced-priority-item,
.advanced-personal-item,
.advanced-personal-detail-item{
  background:linear-gradient(180deg,#fff,#F8FBFA);
  border-color:var(--color-border);
  box-shadow:0 1px 2px rgba(15,23,42,.03),0 10px 24px rgba(15,118,110,.06);
}
.advanced-decision-hero,
.advanced-decision-box,
.advanced-repro-decision,
.advanced-compare-decision{
  background:linear-gradient(135deg,var(--color-primary-soft),#F4FAF9);
  border-color:rgba(11,111,104,.18);
  box-shadow:0 1px 2px rgba(15,23,42,.03),0 12px 28px rgba(11,111,104,.08);
}
.exec-overlay{
  background:linear-gradient(180deg,#101f24 0%,#0E1A1F 100%);
}
.exec-header,
.exec-footer{
  background:#101f24;
}
.exec-current-card{
  background:linear-gradient(135deg,rgba(11,111,104,.26),rgba(46,159,166,.13));
  border-color:rgba(255,255,255,.14);
  box-shadow:0 14px 38px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08);
}
.exec-input-wrap,
.exec-advanced-field,
.exec-side-row{
  background:rgba(255,255,255,.065);
  border-color:rgba(255,255,255,.12);
}
.exec-input-wrap input:focus,
.exec-advanced-field input:focus{
  border-color:rgba(75,214,194,.74);
  background:rgba(11,111,104,.18);
}

@media (max-width:420px){
  .card,
  .collapsible-card,
  .theme-collapse-card,
  .menu-builder-card,
  .log-save-panel{
    box-shadow:0 1px 2px rgba(15,23,42,.035),0 8px 20px rgba(15,118,110,.055);
  }
  .menu-builder-card{
    box-shadow:0 1px 2px rgba(15,23,42,.035),0 10px 24px rgba(15,118,110,.07);
  }
}

/* Drawer Return Safety 20260430 */
body.drawer-open .drawer.open[aria-hidden="false"]{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  transform:translateX(0)!important;
}
body.drawer-open .drawer-overlay.open[aria-hidden="false"]{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
body:not(.drawer-open) .drawer,
body:not(.drawer-open) .drawer-overlay,
.drawer[aria-hidden="true"],
.drawer-overlay[aria-hidden="true"]{
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body:not(.drawer-open) .drawer,
.drawer[aria-hidden="true"]{
  transform:translateX(100%)!important;
}
.drawer[aria-hidden="true"] .drawer-item{
  pointer-events:none!important;
}

/* Manual Text Polish 20260430 */
.manual-hero p,
.manual-section-body p,
.manual-info-card p,
.manual-note{
  max-width:34em;
  line-height:1.85;
  text-wrap:pretty;
}
.manual-hero p{
  margin-bottom:8px;
  color:var(--color-muted-strong);
}
.manual-section-body p,
.manual-info-card p{
  margin-bottom:8px;
}
.manual-url{
  max-width:34em;
}
.manual-url span,
.manual-url a{
  overflow-wrap:anywhere;
}

@media (max-width:420px){
  .manual-hero p,
  .manual-section-body p,
  .manual-info-card p,
  .manual-note{
    max-width:none;
    line-height:1.78;
  }
.manual-hero p{
    font-size:13px;
  }
}

/* Advanced Set Detail Collapse 20260501 */
.advanced-set-row{
  margin-bottom:4px;
}
.set-detail-toggle-row{
  padding:0 4px 7px;
}
.set-detail-toggle{
  width:100%;
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 11px;
  border-radius:12px;
  border:1px solid rgba(15,118,110,.14);
  background:linear-gradient(180deg,#fff,#F7FAF9);
  color:var(--color-primary);
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  text-align:left;
  box-shadow:0 1px 2px rgba(15,23,42,.025);
}
.set-detail-toggle em{
  min-width:0;
  flex:1;
  color:var(--color-muted);
  font-style:normal;
  font-size:11px;
  font-weight:750;
  line-height:1.4;
  text-align:right;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.set-detail-toggle-row.has-detail-value .set-detail-toggle{
  border-color:rgba(11,111,104,.24);
  background:linear-gradient(180deg,#fff,#EEF8F6);
}
.set-detail-toggle-row.has-detail-value .set-detail-toggle em{
  color:var(--color-primary-dark);
}
.set-detail-panel{
  margin:0 4px 8px;
  padding:10px;
  border:1px solid var(--color-border);
  border-radius:14px;
  background:linear-gradient(180deg,var(--color-surface-soft),#fff);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.set-detail-panel .advanced-set-fields,
.advanced-set-details.compact{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:0;
  margin:0;
  border:none;
  background:transparent;
}
.set-detail-panel .advanced-set-field input{
  min-height:40px;
  font-size:15px;
  border-radius:11px;
}
.set-detail-select{
  width:100%;
  min-height:40px;
  padding:7px 30px 7px 10px;
  border:1px solid #d9e4e7;
  border-radius:11px;
  background:#fff;
  color:var(--color-text);
  font-size:15px;
  font-weight:850;
  text-align:center;
  text-align-last:center;
  box-sizing:border-box;
  outline:none;
}
.set-detail-select:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(11,111,104,.10);
}
.exec-advanced-field select.exec-detail-select{
  width:100%;
  height:36px;
  padding:6px 28px 6px 9px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:rgba(255,255,255,.075);
  color:#fff;
  font-size:14px;
  font-weight:850;
  text-align:center;
  text-align-last:center;
  outline:none;
  box-sizing:border-box;
}
.exec-advanced-field select.exec-detail-select option{
  color:#10201f;
  background:#fff;
}
.exec-advanced-field select.exec-detail-select:focus{
  border-color:rgba(75,214,194,.74);
  background:rgba(11,111,104,.20);
}
.set-detail-note-row{
  padding:9px 0 0;
}
.set-detail-note-row .set-memo{
  min-height:40px;
  width:100%;
}
.set-load-estimate{
  margin-top:9px;
  padding:9px 10px;
  border:1px dashed rgba(11,111,104,.22);
  border-radius:13px;
  background:linear-gradient(180deg,#FBFEFD,#F3FAF8);
}
.set-load-estimate-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
  line-height:1.45;
}
.set-load-estimate-main span{
  color:var(--color-muted,#777);
  font-weight:800;
}
.set-load-estimate-main strong{
  color:var(--color-primary,#0B6F68);
  font-weight:900;
  white-space:nowrap;
}
.set-load-estimate-sub{
  margin-top:3px;
  color:var(--color-muted,#777);
  font-size:11px;
  line-height:1.55;
}
.cardio-set-row{
  border-color:rgba(11,111,104,.18);
  background:linear-gradient(180deg,#fff,#F6FBFA);
}
.cardio-set-row .cardio-metric-input input{
  border-color:rgba(11,111,104,.20)!important;
  background:#fff!important;
  color:var(--color-text);
  font-weight:900;
}
.cardio-set-summary{
  margin:-1px 4px 7px;
  padding:8px 10px;
  border:1px solid rgba(15,118,110,.10);
  border-radius:12px;
  background:var(--color-surface-soft);
  color:var(--color-muted-strong);
  font-size:12px;
  font-weight:800;
  line-height:1.45;
}
.cardio-primary-meta{
  display:flex;
  align-items:center;
  gap:8px;
  margin:-1px 4px 8px;
}
.cardio-rpe-field{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:180px;
  padding:7px 10px;
  border:1px solid rgba(15,118,110,.10);
  border-radius:12px;
  background:rgba(255,255,255,.78);
  color:var(--color-muted-strong);
  font-size:12px;
  font-weight:900;
}
.cardio-rpe-field span{
  flex-shrink:0;
  color:var(--color-primary);
}
.cardio-rpe-select{
  min-height:36px;
  padding-top:5px;
  padding-bottom:5px;
  font-size:14px;
}
.cardio-detail-panel{
  border-color:rgba(11,111,104,.16);
  background:linear-gradient(180deg,#F8FCFA,#fff);
}
.cardio-chart-tab.is-suggested{
  border-color:rgba(11,111,104,.24);
}
.advanced-cardio-card{
  border-color:rgba(11,111,104,.16);
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(244,251,249,.86));
}
.advanced-cardio-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
.advanced-cardio-item{
  padding:10px;
  border-radius:13px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(15,118,110,.10);
}
.advanced-cardio-item span{
  display:block;
  color:var(--color-muted);
  font-size:11px;
  font-weight:800;
  margin-bottom:3px;
}
.advanced-cardio-item strong{
  display:block;
  color:var(--color-primary-dark);
  font-size:15px;
  font-weight:950;
}

@media (max-width:420px){
  .set-detail-toggle{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
    padding:9px 10px;
  }
  .set-detail-toggle em{
    width:100%;
    text-align:left;
  }
  .set-detail-panel .advanced-set-fields,
  .advanced-set-details.compact{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .set-detail-select{
    min-height:42px;
    font-size:16px;
  }
  .set-detail-panel{
    margin-left:2px;
    margin-right:2px;
    padding:9px;
  }
  .set-load-estimate-main{
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
  .cardio-set-summary{
    margin-left:2px;
    margin-right:2px;
    font-size:11px;
  }
  .cardio-primary-meta{
    margin-left:2px;
    margin-right:2px;
  }
  .cardio-rpe-field{
    width:100%;
    min-width:0;
  }
  .advanced-cardio-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Exec Timer & Next Preview 20260501 */
.exec-rest-control{
  margin:0 0 12px;
  padding:11px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:rgba(255,255,255,.045);
}
.exec-rest-control-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
  color:rgba(255,255,255,.58);
  font-size:11px;
  font-weight:850;
  letter-spacing:.04em;
}
.exec-rest-control-head strong{
  color:#8EE2C2;
  font-size:12px;
  font-weight:900;
}
.exec-rest-change-btn{
  min-height:30px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(142,226,194,.22);
  background:rgba(142,226,194,.08);
  color:#9BE7CC;
  font-size:10px;
  font-weight:950;
  line-height:1;
}
.exec-rest-presets{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
  margin-bottom:9px;
}
.exec-rest-presets.is-changing{
  padding-top:2px;
}
.exec-rest-preset{
  min-height:36px;
  padding:7px 4px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  width:auto;
}
.exec-rest-preset.active{
  border-color:rgba(142,226,194,.7);
  background:rgba(11,111,104,.28);
  color:#E6FFF7;
  box-shadow:0 5px 14px rgba(11,111,104,.14);
}
.exec-rest-control .exec-rest-start-btn{
  margin:0;
}
.exec-rest-control .exec-rest-start-btn:disabled,
.exec-rest-control .exec-rest-start-btn.is-running{
  cursor:default;
  opacity:.62;
  border-color:rgba(142,226,194,.22);
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.7);
  box-shadow:none;
}
.exec-next-preview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 12px;
  padding:9px 11px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  color:rgba(255,255,255,.58);
}
.exec-next-preview-label{
  flex-shrink:0;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
.exec-next-preview-value{
  min-width:0;
  color:rgba(255,255,255,.82);
  font-size:13px;
  font-weight:900;
  text-align:right;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.exec-add-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:-2px 0 12px;
  padding:9px 10px;
  border:1px dashed rgba(255,255,255,.11);
  border-radius:13px;
  background:rgba(255,255,255,.026);
}
.exec-add-actions-title{
  flex-shrink:0;
  color:rgba(255,255,255,.42);
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
}
.exec-add-actions-buttons{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
  min-width:0;
}
.exec-add-action-btn{
  width:auto;
  min-height:36px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.58);
  box-shadow:none;
  cursor:pointer;
  font-size:12px;
  font-weight:850;
  line-height:1.2;
}
.exec-add-action-btn:hover{
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.74);
}
.exec-add-action-btn:focus-visible{
  outline:2px solid rgba(142,226,194,.52);
  outline-offset:2px;
}
body.rest-timer-running .exec-add-actions{
  border-color:rgba(255,255,255,.075);
  background:rgba(255,255,255,.018);
}
body.rest-timer-running .exec-add-action-btn{
  color:rgba(255,255,255,.42);
}
body.rest-timer-running .exec-add-action-btn.is-resting{
  opacity:.72;
}

/* Exec Side Priority Row 20260512 */
.exec-side-priority{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  margin:0 0 10px;
  padding:10px;
  border:1px solid rgba(142,226,194,.14);
  border-radius:15px;
  background:rgba(255,255,255,.045);
}
.exec-side-copy{
  min-width:88px;
}
.exec-side-title{
  display:block;
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
}
.exec-side-hint{
  display:block;
  margin-top:2px;
  color:rgba(255,255,255,.38);
  font-size:10px;
  font-weight:750;
}
.exec-side-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.exec-side-btn{
  width:auto;
  min-width:0;
  min-height:42px;
  padding:9px 8px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.48);
  box-shadow:none;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
}
.exec-side-btn:not(.is-active){
  color:rgba(255,255,255,.46)!important;
}
.exec-side-btn.is-active,
.exec-side-btn.active-side,
.exec-side-btn.active-support{
  border-color:rgba(142,226,194,.70)!important;
  background:linear-gradient(180deg,rgba(11,111,104,.44),rgba(11,111,104,.34))!important;
  color:#F2FFFB!important;
  box-shadow:0 8px 18px rgba(11,111,104,.18), inset 0 1px 0 rgba(255,255,255,.14)!important;
  font-weight:950;
}
.exec-side-btn:focus-visible{
  outline:2px solid rgba(142,226,194,.72);
  outline-offset:2px;
}

/* Exec Rest Navigation Safety 20260512 */
.exec-rest-running-note{
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:-2px 0 10px;
  padding:9px 11px;
  border:1px solid rgba(142,226,194,.18);
  border-radius:13px;
  background:rgba(11,111,104,.10);
  color:rgba(255,255,255,.66);
  font-size:11px;
  line-height:1.45;
}
body.rest-timer-running .exec-rest-running-note{
  display:flex;
}
.exec-rest-running-note span{
  flex-shrink:0;
  color:#8EE2C2;
  font-weight:950;
  letter-spacing:.08em;
}
.exec-rest-running-note strong{
  min-width:0;
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:900;
  text-align:right;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
body.rest-timer-running .exec-rest-muted-action{
  flex:.82!important;
  min-height:42px!important;
  padding:10px 12px!important;
  background:rgba(255,255,255,.045)!important;
  border-color:rgba(255,255,255,.13)!important;
  color:rgba(255,255,255,.64)!important;
  box-shadow:none!important;
}
body.rest-timer-running .exec-rest-muted-action:hover{
  background:rgba(255,255,255,.07)!important;
  color:rgba(255,255,255,.76)!important;
}
body.rest-timer-running .exec-done-btn.exec-rest-muted-action,
body.rest-timer-running .exec-finish-set-btn.exec-rest-muted-action{
  background:rgba(255,255,255,.045)!important;
  border-color:rgba(255,255,255,.13)!important;
}
body.rest-timer-running .exec-exercise-jump{
  margin-top:2px;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.06);
}
body.rest-timer-running .exec-exercise-pill.rest-muted{
  flex:.82;
  min-width:64px;
  opacity:.78;
}
body.rest-timer-running .exec-primary-actions{
  gap:10px;
}

@media (max-width:420px){
  .exec-resume-banner{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .exec-resume-btn{
    width:100%;
  }
  .exec-rest-control{
    padding:10px;
    margin-bottom:10px;
  }
  .exec-rest-presets{
    grid-template-columns:repeat(5,minmax(42px,1fr));
    gap:5px;
  }
  .exec-rest-preset{
    min-height:38px;
    font-size:10px;
    padding-left:2px;
    padding-right:2px;
  }
  .exec-next-preview{
    padding:9px 10px;
  }
  .exec-add-actions{
    align-items:flex-start;
    flex-direction:column;
    gap:7px;
    padding:8px 9px;
  }
  .exec-add-actions-buttons{
    width:100%;
    justify-content:stretch;
  }
  .exec-add-action-btn{
    flex:1 1 0;
    min-width:0;
    min-height:38px;
    padding-left:8px;
    padding-right:8px;
    font-size:12px;
  }
  .exec-side-priority{
    grid-template-columns:1fr;
    gap:8px;
    padding:9px;
  }
  .exec-side-copy{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
  }
  .exec-side-btn{
    min-height:40px;
    font-size:12px;
    padding:8px 6px;
  }
  .exec-rest-running-note{
    margin-bottom:9px;
    padding:8px 10px;
  }
  body.rest-timer-running .exec-rest-muted-action{
    min-height:40px!important;
    font-size:13px!important;
  }
  body.rest-timer-running .exec-exercise-pill.rest-muted{
    min-width:58px;
  }
  .exec-next-preview-value{
    font-size:12px;
  }
}

/* 20260608: completed exercise tabs must stay visibly complete across rest/timer redraws. */
.exec-exercise-pill{
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.44);
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,opacity .18s ease;
}
.exec-exercise-pill.current,
.exec-exercise-pill.is-current{
  border-color:rgba(255,255,255,.42);
  background:rgba(255,255,255,.15);
  color:#fff;
}
.exec-exercise-pill.done,
.exec-exercise-pill.is-completed{
  border-color:rgba(142,226,194,.52)!important;
  background:linear-gradient(135deg,rgba(11,111,104,.92),rgba(29,158,117,.78))!important;
  color:#eafff6!important;
  opacity:1!important;
  box-shadow:0 8px 18px rgba(11,111,104,.20);
}
.exec-exercise-pill.done.current,
.exec-exercise-pill.is-completed.is-current{
  border-color:rgba(255,255,255,.72)!important;
  box-shadow:0 0 0 2px rgba(142,226,194,.18),0 8px 18px rgba(11,111,104,.22);
}
body.rest-timer-running .exec-exercise-pill.done,
body.rest-timer-running .exec-exercise-pill.is-completed{
  flex:1;
  min-width:72px;
  border-color:rgba(142,226,194,.52)!important;
  background:linear-gradient(135deg,rgba(11,111,104,.92),rgba(29,158,117,.78))!important;
  color:#eafff6!important;
  opacity:1!important;
}

.exec-empty-state{
  min-height:calc(100vh - 96px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 0 96px;
}

.exec-empty-card{
  width:min(100%,520px);
  border:1px solid rgba(122,221,205,.24);
  border-radius:28px;
  padding:28px 24px;
  background:
    radial-gradient(circle at 88% 12%, rgba(122,221,205,.16), transparent 36%),
    linear-gradient(145deg, rgba(18,45,49,.96), rgba(8,24,28,.98));
  box-shadow:0 20px 60px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.06);
  color:#f6fffc;
}

.exec-empty-kicker{
  color:#9df3e4;
  font-size:13px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:10px;
}

.exec-empty-card h2{
  margin:0 0 10px;
  font-size:clamp(30px,8vw,44px);
  line-height:1.05;
  letter-spacing:-.04em;
}

.exec-empty-card p{
  margin:0;
  color:rgba(246,255,252,.74);
  font-size:16px;
  line-height:1.8;
  font-weight:700;
}

.exec-empty-actions{
  display:grid;
  gap:12px;
  margin-top:24px;
}

.exec-empty-primary,
.exec-empty-secondary{
  width:100%;
  min-height:56px;
  border-radius:18px;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
}

.exec-empty-primary{
  border:1px solid rgba(129,247,225,.58);
  background:linear-gradient(135deg,#0d8d7f,#08746b);
  color:#fff;
  box-shadow:0 12px 28px rgba(6,151,133,.24);
}

.exec-empty-secondary{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#d8efeb;
}

/* Progression Coach Card 20260501 */
.progression-coach-card{
  margin:8px 0 10px;
  padding:10px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:14px;
  background:linear-gradient(180deg,var(--color-surface-soft),#fff);
  box-shadow:0 1px 2px rgba(15,23,42,.025);
}
.progression-coach-card.no-prev{
  border-color:rgba(148,163,184,.2);
  background:#F8FBFA;
}
.progression-coach-main{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
}
.progression-coach-row{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  align-items:center;
  gap:8px;
  min-height:26px;
}
.progression-coach-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(11,111,104,.08);
  color:var(--color-primary-dark);
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.progression-coach-card.up .progression-coach-row:nth-child(2) .progression-coach-label{
  background:rgba(11,111,104,.13);
  color:#0A6A4B;
}
.progression-coach-card.rep .progression-coach-row:nth-child(2) .progression-coach-label{
  background:rgba(139,92,246,.11);
  color:#5B3BB5;
}
.progression-coach-card.deload .progression-coach-row:nth-child(2) .progression-coach-label{
  background:rgba(245,158,11,.14);
  color:#9A5B00;
}
.progression-coach-value{
  min-width:0;
  color:var(--color-text);
  font-size:13px;
  font-weight:900;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.progression-coach-card.no-prev .progression-coach-value{
  color:var(--color-muted);
  font-weight:800;
}
.progression-coach-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:9px;
}
.progression-coach-action.inherit-btn{
  flex:0 0 auto;
  width:auto!important;
  min-height:36px;
  margin:0!important;
  padding:8px 12px!important;
  border-radius:999px!important;
  background:rgba(186,117,23,.08);
  border-color:rgba(186,117,23,.26);
  color:#8A520E;
  font-size:12px;
  font-weight:900;
}
.progression-coach-details{
  flex:1;
  min-width:0;
}
.progression-coach-details summary{
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(15,118,110,.12);
  background:#fff;
  color:var(--color-primary);
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  list-style:none;
}
.progression-coach-details summary::-webkit-details-marker{
  display:none;
}
.progression-coach-detail-body{
  margin-top:8px;
  padding:9px;
  border:1px solid rgba(15,118,110,.1);
  border-radius:12px;
  background:rgba(255,255,255,.72);
}
.progression-coach-detail-item{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:8px;
  padding:5px 0;
  border-bottom:1px solid rgba(15,118,110,.08);
}
.progression-coach-detail-item:last-child{
  border-bottom:none;
}
.progression-coach-detail-item span{
  color:var(--color-muted);
  font-size:11px;
  font-weight:850;
}
.progression-coach-detail-item strong{
  min-width:0;
  color:var(--color-text);
  font-size:12px;
  font-weight:800;
  line-height:1.45;
}
.progression-coach-hint{
  margin:8px 0 0;
}

.exec-prev-copy-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:8px 0 0;
  min-height:34px;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.86);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.exec-prev-copy-btn:active{
  transform:translateY(1px);
}

@media (max-width:420px){
  .progression-coach-card{
    padding:9px;
    margin:7px 0 9px;
  }
  .progression-coach-row,
  .progression-coach-detail-item{
    grid-template-columns:74px minmax(0,1fr);
    gap:7px;
  }
  .progression-coach-label{
    padding:3px 6px;
    font-size:10px;
  }
  .progression-coach-value{
    font-size:12px;
  }
  .progression-coach-actions{
    gap:6px;
  }
  .progression-coach-action.inherit-btn,
  .progression-coach-details summary{
    min-height:38px;
    padding-left:9px!important;
    padding-right:9px!important;
    font-size:11px;
  }
}

/* 前セット引き継ぎはセット下の主張を抑え、レスト開始横の補助操作に寄せる */
.set-side-row .prev-set-inline-btn{
  width:auto!important;
  min-height:36px;
  margin-top:0;
  margin-left:auto;
  padding:7px 10px;
  border-radius:999px;
  background:var(--color-surface);
  border:1px solid rgba(46,159,166,.26);
  color:#24777d;
  box-shadow:none;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
  white-space:nowrap;
  flex:0 0 auto;
}
.set-side-row .set-timer-btn{
  width:auto;
  min-height:36px;
  padding:7px 10px;
  border-radius:999px;
  flex:0 0 auto;
}
.set-side-row .prev-set-inline-btn + .set-timer-btn{
  margin-left:0;
}
.set-side-row .prev-set-inline-btn.flashed{
  background:#f0faf6;
  border-color:#0B6F68;
  color:#0B6F68;
}

@media (max-width:420px){
  .set-side-row .prev-set-inline-btn,
  .set-side-row .set-timer-btn{
    flex:1 1 calc(50% - 4px);
    width:auto!important;
    min-height:38px;
    margin-left:0;
    text-align:center;
  }
  .set-side-row .prev-set-inline-btn{
    padding-left:8px;
    padding-right:8px;
    font-size:11px;
  }
}

/* メニュー構成画面: sideは重量の意味を決めるため、主入力の上に固定する。 */
.set-side-row.set-side-above{
  margin:2px 2px 6px;
  padding:7px 8px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:14px;
  background:var(--color-surface-soft);
  align-items:center;
}
.set-side-label{
  flex:0 0 auto;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.03em;
  color:var(--color-muted);
  white-space:nowrap;
}
.set-side-row.set-side-above .side-toggle,
.set-side-row.set-side-above .support-toggle{
  border-color:rgba(15,118,110,.16);
  background:var(--color-surface);
}
.set-side-row.set-side-above .side-btn,
.set-side-row.set-side-above .support-btn{
  color:var(--color-muted);
  background:transparent;
  font-weight:700;
}
.set-side-row.set-side-above .side-btn.active-side,
.set-side-row.set-side-above .support-btn.active-support{
  background:var(--color-primary-soft)!important;
  color:var(--color-primary-dark)!important;
  box-shadow:inset 0 0 0 1px var(--color-primary);
  font-weight:900;
}
.set-action-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  margin:-1px 2px 7px;
  padding:0 4px;
}
.set-action-row .prev-set-inline-btn{
  width:auto!important;
  min-height:36px;
  margin-top:0;
  margin-left:auto;
  padding:7px 10px;
  border-radius:999px;
  background:var(--color-surface);
  border:1px solid rgba(46,159,166,.26);
  color:#24777d;
  box-shadow:none;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
  white-space:nowrap;
  flex:0 0 auto;
}
.set-action-row .set-timer-btn{
  width:auto;
  min-height:36px;
  margin-top:0;
  padding:7px 10px;
  border-radius:999px;
  flex:0 0 auto;
}
.set-action-row .prev-set-inline-btn + .set-timer-btn{
  margin-left:0;
}
.set-action-row .prev-set-inline-btn.flashed{
  background:#f0faf6;
  border-color:#0B6F68;
  color:#0B6F68;
}

@media (max-width:420px){
  .set-side-row.set-side-above{
    margin:2px 0 6px;
    padding:6px;
    gap:5px;
  }
  .set-side-label{
    flex:1 1 100%;
    font-size:10px;
  }
  .set-action-row{
    margin:-1px 0 7px;
    padding:0;
  }
  .set-action-row .prev-set-inline-btn,
  .set-action-row .set-timer-btn{
    flex:1 1 calc(50% - 4px);
    width:auto!important;
    min-height:38px;
    margin-left:0;
    text-align:center;
  }
  .set-action-row .prev-set-inline-btn{
    padding-left:8px;
    padding-right:8px;
    font-size:11px;
  }
}

/* Shared close icon: keeps the glyph optically centered in round controls. */
.round-close-btn{
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  border-radius:999px!important;
  border:1px solid var(--color-border)!important;
  background:var(--color-surface-soft)!important;
  color:var(--color-muted-strong,#555)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  line-height:1!important;
  font-size:0!important;
  font-weight:700!important;
  flex-shrink:0!important;
  cursor:pointer;
  appearance:none;
}
.round-close-btn::before{
  content:"×";
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:25px;
  font-weight:700;
  line-height:1;
  transform:translateY(-1px);
}
.round-close-btn:hover{
  background:#eef5f3!important;
  border-color:var(--color-border-strong)!important;
  color:var(--color-primary-dark)!important;
}
.round-close-btn:focus-visible{
  outline:2px solid rgba(11,111,104,.26);
  outline-offset:2px;
}
.onboarding-close-btn.round-close-btn{
  background:rgba(255,255,255,.18)!important;
  border-color:rgba(255,255,255,.36)!important;
  color:#fff!important;
}
.onboarding-close-btn.round-close-btn:hover{
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}

/* 20260515 UI polish: floating resume, cleaner side buttons, and light glass depth. */
.exec-resume-banner{
  position:fixed;
  left:14px;
  right:14px;
  bottom:calc(env(safe-area-inset-bottom,0px) + 14px);
  z-index:610;
  max-width:560px;
  margin:0 auto;
  background:rgba(255,255,255,.84);
  border-color:rgba(15,118,110,.18);
  box-shadow:0 18px 44px rgba(15,23,42,.14),0 6px 18px rgba(15,118,110,.10);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
body.rest-timer-running .exec-resume-banner{
  bottom:calc(env(safe-area-inset-bottom,0px) + 104px);
}
body.exec-resume-available #pane-input{
  padding-bottom:96px;
}
body.exec-resume-available.rest-timer-running #pane-input{
  padding-bottom:176px;
}
.set-head-below-side{
  margin:2px 2px 5px;
  padding-top:2px;
  border-bottom-color:rgba(15,118,110,.12);
}
.set-head-below-side .set-table-head-cell{
  color:var(--color-muted);
  letter-spacing:.04em;
}
.intent-block-config.intent-block-config-compact{
  padding:0;
  overflow:visible;
  background:rgba(255,255,255,.62);
  border-color:rgba(15,118,110,.12);
  box-shadow:none;
}
.intent-block-config-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:38px;
  padding:8px 10px;
  color:var(--color-muted-strong);
  cursor:pointer;
  list-style:none;
}
.intent-block-config-summary::-webkit-details-marker{
  display:none;
}
.intent-block-config-summary::after{
  content:"∨";
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  border-radius:999px;
  background:var(--color-surface-soft);
  color:var(--color-primary);
  font-size:14px;
  font-weight:950;
}
.intent-block-config.intent-block-config-compact[open] .intent-block-config-summary::after{
  content:"∧";
}
.intent-block-config-summary span{
  flex-shrink:0;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
}
.intent-block-config-summary strong{
  min-width:0;
  color:var(--color-text);
  font-size:12px;
  font-weight:900;
  text-align:right;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.intent-block-config-body{
  padding:0 8px 8px;
}
.intent-block-config-compact .intent-block-grid{
  margin-top:0;
}
.intent-block-purpose-help{
  margin-top:6px;
  padding:7px 8px;
  border-radius:10px;
  background:rgba(15,118,110,.045);
  border:1px solid rgba(15,118,110,.1);
  color:var(--color-muted-strong);
}
.intent-block-purpose-main span{
  display:block;
  color:var(--color-primary);
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
}
.intent-block-purpose-main p{
  margin:2px 0 0;
  color:var(--color-muted-strong);
  font-size:11px;
  line-height:1.55;
}
.intent-block-purpose-detail{
  margin-top:4px;
  font-size:11px;
  color:var(--color-muted);
}
.intent-block-purpose-detail summary{
  cursor:pointer;
  color:var(--color-primary);
  font-weight:850;
  list-style:none;
}
.intent-block-purpose-detail summary::-webkit-details-marker{
  display:none;
}
.intent-block-purpose-detail summary::after{
  content:"∨";
  margin-left:4px;
  font-size:10px;
}
.intent-block-purpose-detail[open] summary::after{
  content:"∧";
}
.intent-block-purpose-detail small,
.intent-block-purpose-detail em{
  display:block;
  margin-top:4px;
  color:var(--color-muted);
  font-style:normal;
  line-height:1.55;
}
.intent-block-purpose-detail em{
  color:var(--color-accent);
  font-weight:800;
}
.exec-exercise-jump + .exec-add-actions{
  margin:10px 0 12px;
}
.set-side-row .side-toggle,
.set-side-row .support-toggle{
  overflow:visible;
  padding:2px;
  gap:2px;
}
.set-side-row .side-btn,
.set-side-row .support-btn,
.exec-side-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-sizing:border-box;
  line-height:1.2;
  border-radius:999px;
}
.set-side-row .support-btn{
  min-width:76px;
  padding-left:12px;
  padding-right:12px;
}
.exec-side-options{
  overflow:visible;
}
.exec-side-btn{
  min-width:0;
}
.card,
.chart-card,
.analysis-card,
.tpl-item{
  background:rgba(255,255,255,.88);
  border-color:rgba(15,118,110,.14);
}
.drawer,
.tpl-sheet,
.manual-sheet,
.fb-sheet,
.sched-sheet,
.location-data-sheet,
.goal-achievements-sheet,
.goal-achieve-modal,
.delete-account-sheet{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.48);
}

.body-condition-field{
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:16px;
  background:rgba(247,250,249,.9);
}
.body-condition-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.body-condition-help{
  margin-top:3px;
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:700;
  line-height:1.5;
}
.body-condition-add-btn{
  flex-shrink:0;
  border:1px solid rgba(15,118,110,.18);
  border-radius:999px;
  background:#fff;
  color:var(--color-primary-dark,#064E49);
  font-size:12px;
  font-weight:900;
  padding:8px 12px;
  line-height:1;
  cursor:pointer;
}
.body-condition-summary{
  color:var(--color-muted-strong,#4e5d66);
  font-size:12px;
  font-weight:800;
  line-height:1.6;
  margin-bottom:8px;
}
.body-condition-list{
  display:grid;
  gap:8px;
}
.body-condition-row{
  border:1px solid rgba(15,118,110,.12);
  border-radius:14px;
  background:rgba(255,255,255,.92);
  padding:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
.body-condition-main{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  align-items:start;
  gap:10px;
  max-width:100%;
  min-width:0;
}
.body-condition-part-wrap,
.body-condition-note-wrap,
.body-condition-symptom-wrap{
  display:grid;
  gap:6px;
  min-width:0;
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:900;
}
.body-condition-part,
.body-condition-pain,
.body-condition-note{
  width:100%;
  min-height:40px;
  font-size:16px;
}
.body-condition-pain-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:3px 6px;
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:900;
}
.body-condition-pain-wrap > span{
  grid-column:1 / -1;
}
.body-condition-pain-wrap em{
  color:var(--color-muted,#72808a);
  font-style:normal;
  font-size:12px;
  font-weight:900;
}
.body-condition-pain-wrap small{
  grid-column:1 / -1;
  color:var(--color-muted,#72808a);
  font-size:10px;
  font-weight:800;
  line-height:1.35;
}
.body-condition-symptom-wrap,
.body-condition-note-wrap{
  grid-column:1 / -1;
}
.body-condition-subhead{
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:900;
}
.body-condition-signs{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  min-width:0;
}
.body-condition-sign-chip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:34px;
  padding:6px 8px;
  border:1px solid rgba(15,118,110,.13);
  border-radius:999px;
  background:var(--color-surface-soft,#F7FAF9);
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  user-select:none;
}
.body-condition-sign-chip input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.body-condition-sign-check{
  width:15px;
  height:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:transparent;
  color:transparent;
  font-size:10px;
  font-weight:950;
  line-height:1;
}
.body-condition-sign-chip:has(input:checked),
.body-condition-sign-chip.active{
  color:var(--color-primary-dark,#064E49);
  border-color:rgba(11,111,104,.34);
  background:var(--color-primary-soft,#E3F3F1);
}
.body-condition-sign-chip:has(input:checked) .body-condition-sign-check,
.body-condition-sign-chip.active .body-condition-sign-check{
  background:var(--color-primary,#0B6F68);
  color:#fff;
}
.body-condition-detail-toggle{
  justify-self:start;
  min-height:36px;
  border:1px solid rgba(15,118,110,.16);
  border-radius:999px;
  background:#fff;
  color:var(--color-primary-dark,#064E49);
  font-size:11px;
  font-weight:900;
  padding:7px 10px;
  white-space:nowrap;
}
.body-condition-remove-btn{
  justify-self:end;
  width:36px;
  height:36px;
  padding:0;
  border-radius:999px;
  border:1px solid rgba(220,38,38,.18);
  background:#fff;
  color:#b42318;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  font-size:20px;
  font-weight:900;
}
.body-condition-detail{
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid rgba(15,118,110,.10);
}
.body-condition-detail label{
  display:grid;
  gap:5px;
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:900;
}
.body-condition-detail textarea{
  width:100%;
  min-height:58px;
  resize:vertical;
  font-size:16px;
  line-height:1.5;
}
.body-condition-caution{
  grid-column:1 / -1;
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:700;
  line-height:1.6;
}
.advanced-body-condition-card{
  border-color:rgba(15,118,110,.16);
  background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(247,250,249,.92));
}
.advanced-body-condition-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:8px 0;
}
.advanced-body-condition-item{
  border:1px solid rgba(15,118,110,.12);
  border-radius:12px;
  background:#fff;
  padding:9px 10px;
  min-width:0;
}
.advanced-body-condition-note,
.advanced-body-condition-caution{
  color:var(--color-muted,#72808a);
  font-size:11px;
  font-weight:700;
  line-height:1.55;
}

@media (max-width:420px){
  .body-condition-field{
    padding:10px;
  }
  .body-condition-head{
    display:grid;
    gap:8px;
  }
  .body-condition-add-btn{
    width:100%;
    min-height:40px;
  }
  .body-condition-main{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .body-condition-remove-btn{
    justify-self:end;
  }
  .body-condition-detail{
    grid-template-columns:1fr;
  }
  .advanced-body-condition-grid{
    grid-template-columns:1fr;
  }
  .exec-resume-banner{
    left:10px;
    right:10px;
    bottom:calc(env(safe-area-inset-bottom,0px) + 10px);
  }
  body.rest-timer-running .exec-resume-banner{
    bottom:calc(env(safe-area-inset-bottom,0px) + 94px);
  }
  .intent-block-config-summary{
    align-items:flex-start;
    padding:8px;
  }
  .intent-block-config-summary span{
    font-size:10px;
  }
  .intent-block-config-summary strong{
    font-size:11px;
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }
  .set-head-below-side{
    margin-left:0;
    margin-right:0;
  }
}

/* 20260516 Timer resume: fold exec resume into the active rest timer. */
.rest-timer-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  min-width:0;
}
.rest-timer-header-actions .rest-timer-hint{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rest-timer-resume-btn{
  width:auto;
  min-height:30px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(11,111,104,.22);
  background:rgba(255,255,255,.72);
  color:var(--color-primary-dark);
  font-size:11px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(15,118,110,.10);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.rest-timer-resume-btn[hidden]{
  display:none!important;
}
.rest-timer-resume-btn:active{
  transform:translateY(1px);
}
body.rest-timer-running .exec-resume-banner{
  display:none!important;
}
body.has-rest-timer:not(.rest-timer-running) .exec-resume-banner{
  bottom:calc(env(safe-area-inset-bottom,0px) + 104px);
}

@media (max-width:420px){
  .rest-timer-top{
    gap:8px;
  }
  .rest-timer-header-actions{
    gap:5px;
  }
  .rest-timer-resume-btn{
    min-height:32px;
    padding:7px 9px;
    font-size:11px;
  }
body.has-rest-timer:not(.rest-timer-running) .exec-resume-banner{
    bottom:calc(env(safe-area-inset-bottom,0px) + 92px);
  }
}

/* 20260516 App Store UX polish: app shell, safe areas, network states, external links. */
body{
  padding-top:env(safe-area-inset-top,0px);
}
.header{
  padding-top:calc(12px + env(safe-area-inset-top,0px));
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 1px 0 rgba(255,255,255,.7),0 10px 28px rgba(15,118,110,.06);
}
.app{
  padding-bottom:calc(92px + env(safe-area-inset-bottom,0px));
}
.tab-bar{
  min-height:54px;
  padding:4px;
  gap:4px;
  border-radius:18px;
  overflow:visible;
  background:rgba(255,255,255,.76);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 10px 28px rgba(15,118,110,.08), inset 0 1px 0 rgba(255,255,255,.7);
}
.tab{
  min-height:44px;
  border-radius:14px;
  padding:10px 8px;
  color:var(--color-muted-strong);
}
.tab.active{
  background:linear-gradient(180deg,var(--color-primary),var(--color-primary-dark));
  color:#fff;
  box-shadow:0 8px 20px rgba(11,111,104,.18);
}
.autosave-bar,
.rest-timer-bar.fixed,
.exec-resume-banner{
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.app-network-banner{
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid rgba(183,121,31,.22);
  border-radius:16px;
  background:rgba(255,246,230,.88);
  color:#7a4b12;
  font-size:12px;
  font-weight:800;
  line-height:1.55;
  box-shadow:0 8px 22px rgba(183,121,31,.08);
}
.app-network-banner[style*="block"]{
  display:flex!important;
}
.app-network-banner button{
  flex-shrink:0;
  min-height:34px;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(183,121,31,.28);
  background:#fff;
  color:#7a4b12;
  font-size:12px;
  font-weight:900;
}
.external-link-overlay{
  position:fixed;
  inset:0;
  z-index:760;
  display:none;
  align-items:flex-end;
  justify-content:center;
  padding:14px;
  background:rgba(15,23,42,.42);
}
.external-link-overlay.open{
  display:flex;
}
.external-link-sheet{
  width:min(520px,100%);
  max-height:calc(100vh - 48px - env(safe-area-inset-top,0px));
  overflow:hidden;
  border:1px solid rgba(255,255,255,.52);
  border-radius:24px 24px calc(24px + env(safe-area-inset-bottom,0px)) calc(24px + env(safe-area-inset-bottom,0px));
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-floating);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.external-link-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:18px 18px 12px;
  border-bottom:1px solid rgba(15,118,110,.10);
}
.external-link-title{
  color:var(--color-text);
  font-size:17px;
  font-weight:950;
  letter-spacing:-.02em;
}
.external-link-sub{
  margin-top:3px;
  color:var(--color-muted);
  font-size:12px;
  font-weight:800;
}
.external-link-body{
  padding:16px 18px calc(18px + env(safe-area-inset-bottom,0px));
}
.external-link-body p{
  margin:0 0 10px;
  color:var(--color-muted-strong);
  font-size:13px;
  font-weight:750;
  line-height:1.7;
}
.external-link-url{
  margin-bottom:14px;
  padding:8px 10px;
  border:1px solid rgba(15,118,110,.10);
  border-radius:12px;
  background:var(--color-surface-soft);
  color:var(--color-muted);
  font-size:11px;
  font-weight:750;
  line-height:1.5;
  word-break:break-all;
}
.external-link-actions{
  display:flex;
  gap:8px;
}
.external-link-cancel,
.external-link-open{
  flex:1;
  min-height:44px;
  border-radius:14px;
  font-size:14px;
  font-weight:900;
}
.external-link-cancel{
  border-color:rgba(15,118,110,.12);
  background:var(--color-surface-soft);
  color:var(--color-muted-strong);
}
.external-link-open{
  border-color:var(--color-primary);
  background:linear-gradient(180deg,var(--color-primary),var(--color-primary-dark));
  color:#fff;
}
.drawer-item[href]{
  text-decoration:none;
}
.drawer-item-external{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(15,118,110,.08);
  color:var(--color-primary);
  font-weight:900;
}
/* =============================================
   危険操作UI統一
   - カード削除: 種目 / ブロック / 目標などカード右上
   - 行削除: セット / 身体コンディションなど行内
   - テキスト削除: テンプレート / ログ / 設定プリセットなど
   ============================================= */
.danger-icon-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box;
  flex-shrink:0;
  padding:0!important;
  border-radius:999px!important;
  border:1px solid rgba(194,65,59,.24)!important;
  background:var(--color-risk-soft)!important;
  color:var(--color-risk)!important;
  line-height:1!important;
  font-weight:950!important;
  touch-action:manipulation;
}
.danger-icon-btn:active{
  background:#ffe3df!important;
  border-color:rgba(194,65,59,.48)!important;
  color:#8f1f15!important;
  transform:translateY(1px);
  opacity:1;
}
.card-delete-btn{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  font-size:20px!important;
  box-shadow:0 5px 14px rgba(194,65,59,.10)!important;
}
.set-delete-btn{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  font-size:17px!important;
  box-shadow:none!important;
}
.risk-action-btn{
  border-color:rgba(194,65,59,.35)!important;
  background:var(--color-risk-soft)!important;
  color:var(--color-risk)!important;
  font-weight:900!important;
}
.risk-action-btn:active{
  background:#ffe3df!important;
  border-color:rgba(194,65,59,.52)!important;
  color:#8f1f15!important;
  opacity:1;
}
.delete-account-submit.risk-action-btn{
  background:var(--color-risk)!important;
  border-color:var(--color-risk)!important;
  color:#fff!important;
}
.delete-account-submit.risk-action-btn:disabled{
  background:rgba(194,65,59,.42)!important;
  border-color:rgba(194,65,59,.18)!important;
  color:#fff!important;
}
.drawer-item-danger{
  background:rgba(194,65,59,.04);
}
.drawer-item-danger:active{
  background:var(--color-risk-soft);
}
@media (max-width:420px){
  .app{
    padding-left:12px;
    padding-right:12px;
    padding-bottom:calc(100px + env(safe-area-inset-bottom,0px));
  }
  .tab-bar{
    border-radius:16px;
  }
  .tab{
    min-height:46px;
    font-size:13px;
  }
  .app-network-banner{
    align-items:flex-start;
  }
  .external-link-overlay{
    padding:8px;
  }
  .external-link-head,
  .external-link-body{
    padding-left:16px;
    padding-right:16px;
  }
}

/* iOS WebView width hardening: keep controls inside the safe viewport without clipping key UI. */
html,
body{
  max-width:100%;
}
.app,
.pane,
.card,
.exercise-card,
.block-card,
.exec-overlay,
.exec-body,
.exec-current-card,
.chart-summary-card,
.chart-log-card,
.chart-selected-log-card,
.chart-compare-toolbar,
.chart-compare-panel,
.chart-compare-log-card,
.chart-compare-diff-card,
.app-settings-panel,
.app-settings-section,
.json-import-panel,
.import-preview-card,
.first-log-onboarding,
.first-log-onboarding-floating,
.onboarding-step-floating-card,
.log-detail-return-bar,
.rest-timer-card{
  max-width:100%;
  min-width:0;
}
.chart-wrap,
.chart-wrap canvas,
canvas{
  max-width:100%!important;
}
.chart-return-btn,
.chart-log-detail-btn,
.chart-compare-btn,
.chart-compare-return-btn,
.exec-help-btn,
.exec-help-close{
  touch-action:manipulation;
  pointer-events:auto;
}
.chart-return-btn{
  position:relative;
  z-index:2;
}
.exec-help-wrap{
  max-width:100%;
  min-width:0;
}
.exec-help-popover{
  max-width:calc(100dvw - 32px);
  overflow-wrap:anywhere;
  white-space:normal;
}
.exec-advanced-field,
.exec-input-wrap,
.chart-summary-metric,
.chart-compare-metric-grid div,
.import-summary-grid>*,
.app-settings-tabs button{
  min-width:0;
}
@media (max-width:420px){
  .exec-body{
    padding-left:14px;
    padding-right:14px;
  }
  .exec-help-popover{
    left:auto;
    right:0;
    transform:none;
    width:min(270px,calc(100dvw - 34px));
  }
  .exec-help-sheet{
    left:12px;
    right:12px;
    bottom:calc(14px + env(safe-area-inset-bottom));
    max-width:calc(100dvw - 24px);
    max-height:40vh;
  }
  .exec-advanced-field:nth-child(2n) .exec-help-popover,
  .exec-side-row .exec-help-popover{
    left:50%;
    right:auto;
    transform:translateX(-50%);
  }
  .chart-summary-grid,
  .chart-compare-metric-grid,
  .import-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .chart-compare-toolbar,
  .chart-compare-panel,
  .log-detail-return-bar,
  .app-settings-panel,
  .first-log-onboarding-floating{
    width:100%;
  }
  .chart-return-btn,
  .chart-log-detail-btn,
  .chart-compare-btn,
  .chart-compare-return-btn{
    white-space:normal;
  }
}

@media (max-width:480px){
  .freq-mini-chart{
    margin-bottom:18px;
  }
  .freq-mini-chart-title{
    margin-bottom:16px;
    line-height:1.45;
  }
  .freq-bars{
    min-height:94px;
    padding-top:16px;
    gap:8px;
  }
  .freq-bar-val{
    min-height:16px;
    font-size:11px;
  }
  .freq-bar-label{
    font-size:10px;
    letter-spacing:-.02em;
  }
}

/* iOS input zoom guard: keep form controls at 16px+ without disabling pinch zoom. */
input,
textarea,
select{
  font-size:16px!important;
  line-height:1.35;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
input[type="file"]{
  font-size:16px!important;
}
@media (max-width:768px){
  input,
  textarea,
  select,
  .set-row input,
  .set-row textarea,
  .set-row select,
  .set-inputs input,
  .set-inputs textarea,
  .advanced-set-field input,
  .advanced-set-field textarea,
  .advanced-set-field select,
  .set-detail-select,
  .cardio-rpe-select,
  .cardio-metric-input input,
  .ex-name-input,
  .ex-note-input,
  .set-memo,
  .intent-block-select,
  .intent-block-input,
  .intent-block-note-input,
  .exercise-meta-field input,
  .exercise-equipment-input,
  .body-condition-detail textarea,
  .delete-account-input,
  .goal-achieve-field input,
  .goal-achieve-field textarea,
  .location-note-input,
  .onboarding-num-input,
  .onboarding-textarea,
  .exec-input-wrap input,
  .exec-input-wrap select,
  .exec-advanced-field input,
  .exec-advanced-field select,
  .exec-note-input,
  .exec-detail-select,
  .tpl-save-form input,
  .tpl-save-form select{
    font-size:16px!important;
  }
  .set-row input,
  .set-row select,
  .set-detail-select,
  .cardio-rpe-select,
  .exec-input-wrap input,
  .exec-input-wrap select,
  .exec-advanced-field input,
  .exec-advanced-field select,
  .exec-advanced-field select.exec-detail-select{
    min-height:36px;
    line-height:1.25;
    padding-left:6px;
    padding-right:6px;
    text-overflow:ellipsis;
  }
  .exec-note-input,
  .ex-note-input,
  .set-memo,
  .intent-block-note-input,
  .location-note-input,
  .goal-achieve-field textarea,
  .body-condition-detail textarea,
  .onboarding-textarea{
    line-height:1.5;
  }
}

/* iPhone execution polish: keep transient help above bottom actions and timer UI. */
.exec-help-sheet{
  bottom:calc(92px + env(safe-area-inset-bottom,0px));
  z-index:10020;
}
body.has-rest-timer .exec-help-sheet,
body.rest-timer-running .exec-help-sheet{
  bottom:calc(var(--rest-timer-reserve-mobile) + 18px + env(safe-area-inset-bottom,0px));
  max-height:32vh;
}
@media (min-width:481px){
  body.has-rest-timer .exec-help-sheet,
  body.rest-timer-running .exec-help-sheet{
    bottom:calc(var(--rest-timer-reserve) + 20px + env(safe-area-inset-bottom,0px));
  }
}
@media (max-width:420px){
  .exec-help-sheet{
    left:12px;
    right:12px;
    bottom:calc(88px + env(safe-area-inset-bottom,0px));
    max-width:calc(100dvw - 24px);
    max-height:36vh;
  }
  body.has-rest-timer .exec-help-sheet,
  body.rest-timer-running .exec-help-sheet{
    bottom:calc(var(--rest-timer-reserve-mobile) + 14px + env(safe-area-inset-bottom,0px));
    max-height:30vh;
  }
}

/* Exercise delete button: reserve the card corner without covering the name input. */
.ex-block{
  padding-top:18px;
}
.ex-card-kicker{
  min-height:18px;
  margin-bottom:12px;
  padding-right:42px;
}
.ex-del-card-btn.card-delete-btn{
  top:10px;
  right:10px;
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  font-size:18px!important;
  box-shadow:0 4px 10px rgba(194,65,59,.08)!important;
}
@media (max-width:480px){
  .ex-block{
    padding-top:18px;
  }
  .ex-card-kicker{
    min-height:18px;
    margin-bottom:12px;
    padding-right:40px;
  }
  .ex-del-card-btn.card-delete-btn{
    top:9px;
    right:9px;
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    min-height:32px!important;
    font-size:17px!important;
  }
}

/* Legal pages */
.legal-page{
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at 18% 0%, rgba(142,226,194,.16), transparent 34%),
    radial-gradient(circle at 88% 12%, rgba(186,117,23,.12), transparent 30%),
    linear-gradient(180deg, #07141c 0%, #0d2028 42%, #f4f8f7 42%, #f4f8f7 100%);
  color:var(--color-text,#1f2f32);
  overflow-x:hidden;
}
.legal-container{
  width:min(920px, calc(100% - 32px));
  margin:0 auto;
  padding:28px 0 54px;
  box-sizing:border-box;
}
.legal-back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:40px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.86);
  text-decoration:none;
  font-size:13px;
  font-weight:850;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.legal-back:active{
  transform:translateY(1px);
}
.legal-hero{
  margin:22px 0 18px;
  padding:26px 24px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:26px;
  background:linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.05));
  color:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.24);
}
.legal-kicker{
  margin:0 0 8px;
  color:#d7b46b;
  font-size:12px;
  font-weight:950;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.legal-title{
  margin:0;
  color:#fff;
  font-size:clamp(28px, 6vw, 44px);
  line-height:1.12;
  letter-spacing:.01em;
}
.legal-lead{
  max-width:680px;
  margin:14px 0 0;
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.9;
}
.legal-updated{
  margin:14px 0 0;
  color:rgba(255,255,255,.58);
  font-size:12px;
  font-weight:750;
}
.legal-nav{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:28px 0 18px;
  padding:16px;
  border-radius:26px;
  background:#f4f8f7;
  border:1px solid rgba(16,70,77,.08);
  box-shadow:0 18px 44px rgba(18,47,54,.06);
  box-sizing:border-box;
}
.legal-nav a{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  padding:16px;
  border:1px solid rgba(16,70,77,.10);
  border-radius:18px;
  background:rgba(255,255,255,.92);
  color:var(--color-text,#1f2f32);
  text-decoration:none;
  box-shadow:0 12px 34px rgba(18,47,54,.08);
}
.legal-nav strong{
  font-size:15px;
  font-weight:950;
}
.legal-nav span{
  color:var(--color-muted-strong,#647277);
  font-size:12px;
  font-weight:750;
  line-height:1.6;
}
.legal-section{
  margin:14px 0;
  padding:22px;
  border:1px solid rgba(16,70,77,.10);
  border-radius:22px;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 36px rgba(18,47,54,.07);
}
.legal-section h2{
  margin:0 0 12px;
  color:var(--color-text,#1f2f32);
  font-size:18px;
  line-height:1.45;
}
.legal-section p,
.legal-section li{
  color:#435257;
  font-size:14px;
  line-height:1.9;
}
.legal-section p{
  margin:0 0 10px;
}
.legal-section p:last-child{
  margin-bottom:0;
}
.legal-section ul,
.legal-section ol{
  margin:0;
  padding-left:1.25em;
}
.legal-section a{
  color:var(--color-primary,#0B6F68);
  font-weight:850;
  overflow-wrap:anywhere;
}
.legal-note{
  border-color:rgba(186,117,23,.26);
  background:linear-gradient(180deg,#fffaf0,#fff);
}
.legal-note h2{
  color:#8a510b;
}
.legal-contact-mail{
  padding:12px 14px;
  border-radius:14px;
  background:#f1fbf7;
  border:1px solid rgba(11,111,104,.18);
  font-size:16px!important;
  font-weight:950;
}
@media (max-width:640px){
  .legal-container{
    width:min(100% - 24px, 920px);
    padding-top:18px;
  }
  .legal-hero{
    padding:22px 18px;
    border-radius:22px;
  }
  .legal-nav{
    grid-template-columns:1fr;
    padding:12px;
    border-radius:22px;
  }
  .legal-section{
    padding:18px;
    border-radius:20px;
  }
  .legal-section h2{
    font-size:17px;
  }
  .legal-section p,
  .legal-section li{
    font-size:14px;
  }
}

/* =============================================
   Record Screen Apple Polish 20260602
   記録画面だけをiOS純正フォームに近い質感へ寄せる。
   ロジックには触れず、入力欄・カード・ボタン・余白・見出しの階層を整える。
   ============================================= */
#pane-input{
  --ios-bg:#F2F2F7;
  --ios-card:#FFFFFF;
  --ios-fill:#F3F4F6;
  --ios-fill-strong:#EAECF0;
  --ios-blue:var(--color-primary);
  --ios-blue-pressed:var(--color-primary-dark);
  --ios-green:var(--color-primary);
  --ios-label:#111827;
  --ios-secondary:#6B7280;
  --ios-tertiary:#9CA3AF;
  --ios-separator:rgba(60,60,67,.16);
  --ios-shadow:0 1px 2px rgba(0,0,0,.035);
  color:var(--ios-label);
  margin:0;
  padding:8px 0 14px;
  border-radius:24px;
  background:var(--ios-bg);
}

#pane-input .record-screen-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding:4px 4px 10px;
}

#pane-input .record-screen-title{
  color:var(--ios-label);
  font-size:28px;
  font-weight:800;
  letter-spacing:-.045em;
  line-height:1.08;
}

#pane-input .record-screen-subtitle{
  margin-top:4px;
  color:var(--ios-secondary);
  font-size:13px;
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.35;
}

#pane-input .card,
#pane-input .collapsible-card,
#pane-input .theme-collapse-card,
#pane-input .menu-builder-card,
#pane-input .log-save-panel{
  border:1px solid var(--ios-separator)!important;
  border-radius:24px!important;
  background:var(--ios-card)!important;
  box-shadow:var(--ios-shadow)!important;
}

#pane-input .card,
#pane-input .menu-builder-card{
  padding:16px!important;
  margin-bottom:12px!important;
}

#pane-input .collapsible-card,
#pane-input .theme-collapse-card{
  margin-bottom:12px!important;
  overflow:hidden;
}

#pane-input .theme-collapse-card{
  padding:0!important;
}

#pane-input .sec-title,
#pane-input .theme-collapse-title,
#pane-input .collapsible-title{
  color:var(--ios-label)!important;
  font-size:17px!important;
  font-weight:700!important;
  letter-spacing:-.022em!important;
  line-height:1.25!important;
}

#pane-input .input-kicker,
#pane-input .menu-section-label,
#pane-input .field-label,
#pane-input .set-section-title,
#pane-input .ex-card-kicker{
  color:var(--ios-secondary)!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:-.01em!important;
  text-transform:none!important;
}

#pane-input .field-group{
  margin-bottom:14px;
}

#pane-input .field-group:last-child{
  margin-bottom:0;
}

#pane-input input,
#pane-input select,
#pane-input textarea,
#pane-input .ex-name-input,
#pane-input .ex-note-input,
#pane-input .set-memo,
#pane-input .intent-block-input,
#pane-input .intent-block-select,
#pane-input .intent-block-note-input,
#pane-input .exercise-equipment-input{
  min-height:46px;
  border:1px solid transparent!important;
  border-radius:14px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-label)!important;
  box-shadow:none!important;
  font-size:16px!important;
  font-weight:600;
}

#pane-input textarea,
#pane-input .ex-note-input,
#pane-input .set-memo{
  line-height:1.55!important;
  font-weight:500;
}

#pane-input input::placeholder,
#pane-input textarea::placeholder{
  color:var(--ios-tertiary)!important;
}

#pane-input input:focus,
#pane-input select:focus,
#pane-input textarea:focus,
#pane-input .ex-name-input:focus,
#pane-input .ex-note-input:focus,
#pane-input .set-memo:focus{
  border-color:rgba(11,111,104,.50)!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(11,111,104,.12)!important;
}

#pane-input .date-row,
#pane-input .gym-input-row{
  gap:8px;
}

#pane-input .date-display{
  min-height:46px;
  display:flex;
  align-items:center;
  border-radius:14px;
  background:var(--ios-fill);
  color:var(--ios-label);
  font-weight:700;
  padding:0 14px;
}

#pane-input .autosave-bar{
  min-height:32px;
  margin:2px 0 10px;
  padding:0 2px;
  color:var(--ios-secondary);
}

#pane-input #save-btn-top{
  min-height:32px!important;
  padding:6px 13px!important;
  border:none!important;
  border-radius:999px!important;
  background:var(--ios-blue)!important;
  color:#fff!important;
  box-shadow:none!important;
  font-size:13px!important;
  font-weight:700!important;
}

#pane-input .input-quick-actions{
  gap:10px!important;
  margin:8px 0 14px!important;
}

#pane-input .input-quick-action,
#pane-input .btn-auto,
#pane-input .gym-btn,
#pane-input .tpl-btn,
#pane-input .search-ex-btn,
#pane-input .inherit-btn,
#pane-input .add-set-btn,
#pane-input .add-block-btn,
#pane-input .copy-log-btn,
#pane-input .new-log-btn{
  min-height:44px;
  border:1px solid transparent!important;
  border-radius:14px!important;
  box-shadow:none!important;
  font-weight:700!important;
  letter-spacing:-.01em;
}

#pane-input .input-quick-action.add,
#pane-input .btn-auto,
#pane-input .gym-btn,
#pane-input .tpl-btn.save,
#pane-input .tpl-btn.load,
#pane-input .search-ex-btn,
#pane-input .inherit-btn,
#pane-input .copy-log-btn,
#pane-input .new-log-btn{
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
}

#pane-input .input-quick-action.exec,
#pane-input .exec-start-btn,
#pane-input .save-btn{
  border:none!important;
  background:var(--ios-blue)!important;
  color:#fff!important;
  box-shadow:none!important;
}

#pane-input .input-quick-action.exec:active,
#pane-input .exec-start-btn:active,
#pane-input .save-btn:active,
#pane-input #save-btn-top:active{
  background:var(--ios-blue-pressed)!important;
  opacity:1!important;
  transform:scale(.985);
}

#pane-input .input-quick-action.is-disabled,
#pane-input .input-quick-action:disabled,
#pane-input .input-action-primary.is-disabled,
#pane-input .input-action-primary:disabled{
  background:var(--ios-fill-strong)!important;
  color:var(--ios-tertiary)!important;
  opacity:1!important;
  cursor:not-allowed;
}

#pane-input .input-action-bar{
  grid-template-columns:1fr 1fr;
  gap:8px!important;
  margin:12px 0!important;
}

#pane-input .input-action-primary{
  grid-column:1/-1;
  min-height:50px!important;
  border-radius:16px!important;
  font-size:16px!important;
}

#pane-input .input-action-secondary{
  min-height:42px!important;
  border-radius:14px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
}

#pane-input .tpl-bar .input-action-secondary{
  width:100%;
}

#pane-input .theme-collapse-header,
#pane-input .collapsible-toggle,
#pane-input .exercise-meta-header{
  min-height:58px;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:14px 16px!important;
  border:none!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:none!important;
}

#pane-input .theme-collapse-text,
#pane-input .collapsible-toggle-text,
#pane-input .exercise-meta-text{
  min-width:0!important;
  flex:1 1 auto!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:4px!important;
}

#pane-input .theme-collapse-summary,
#pane-input .collapsible-summary,
#pane-input .exercise-meta-summary{
  color:var(--ios-secondary)!important;
  font-size:13px!important;
  font-weight:600!important;
}

#pane-input .theme-collapse-toggle,
#pane-input .collapsible-arrow,
#pane-input .exercise-meta-toggle{
  flex:0 0 40px!important;
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  margin-left:auto!important;
  align-self:center!important;
  background:var(--ios-fill)!important;
  color:var(--ios-secondary)!important;
}

#pane-input .theme-collapse-card.open .theme-collapse-toggle,
#pane-input .collapsible-arrow.open,
#pane-input .exercise-meta-card.open .exercise-meta-toggle{
  background:rgba(11,111,104,.10)!important;
  color:var(--ios-blue)!important;
}

#pane-input .theme-collapse-body,
#pane-input .collapsible-body,
#pane-input .exercise-meta-body{
  padding:0 16px 16px!important;
  background:#fff!important;
}

#pane-input .chip{
  min-height:34px;
  border:1px solid transparent!important;
  border-radius:999px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-secondary)!important;
  font-size:14px!important;
  font-weight:700!important;
}

#pane-input .chip.active,
#pane-input .chip.active-blue{
  background:rgba(11,111,104,.12)!important;
  color:var(--ios-blue)!important;
}

#pane-input .menu-builder-card{
  overflow:visible;
}

#pane-input .menu-builder-head{
  margin-bottom:10px!important;
}

#pane-input .input-role-badge,
#pane-input .menu-guide-step,
#pane-input .first-log-guide-steps li{
  border:none!important;
  background:var(--ios-fill)!important;
  color:var(--ios-secondary)!important;
  box-shadow:none!important;
}

#pane-input .menu-guide-step.active,
#pane-input .menu-guide-step.primary{
  background:rgba(11,111,104,.10)!important;
  color:var(--ios-blue)!important;
}

#pane-input .menu-guide-step span{
  background:#fff!important;
  color:var(--ios-blue)!important;
}

#pane-input .mode-flow-hint,
#pane-input .exercise-empty-guide,
#pane-input .save-flow-hint{
  border:none!important;
  border-radius:16px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-secondary)!important;
  box-shadow:none!important;
}

#pane-input .exercise-empty-guide-title{
  color:var(--ios-label)!important;
}

#pane-input .ex-block,
#pane-input .intent-block,
#pane-input .advanced-set-fields,
#pane-input .set-side-row{
  border:1px solid var(--ios-separator)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:none!important;
}

#pane-input .ex-block{
  padding:16px!important;
}

#pane-input .ex-name-input{
  min-height:50px!important;
  font-size:17px!important;
  font-weight:700!important;
}

#pane-input .set-row-main{
  border:none!important;
  border-radius:16px!important;
  background:var(--ios-fill)!important;
  box-shadow:none!important;
}

#pane-input .set-row-main input,
#pane-input .set-field-weight input,
#pane-input .set-field-reps input,
#pane-input .set-field-hr input{
  border:none!important;
  background:#fff!important;
  border-radius:13px!important;
  box-shadow:none!important;
}

#pane-input .set-field-weight input,
#pane-input .set-field-reps input{
  font-weight:800!important;
}

#pane-input .weight-quick-btn,
#pane-input .set-timer-btn,
#pane-input .side-btn,
#pane-input .support-btn,
#pane-input .prev-set-btn,
#pane-input .intent-block-merge-btn,
#pane-input .block-split-btn,
#pane-input .intent-block-note-toggle{
  border:none!important;
  border-radius:999px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
  box-shadow:none!important;
  font-weight:700!important;
}

#pane-input .side-btn.active-side,
#pane-input .support-btn.active-support,
#pane-input .exec-side-btn.is-active{
  background:var(--ios-blue)!important;
  color:#fff!important;
}

#pane-input .set-row-del,
#pane-input .ex-del-card-btn,
#pane-input .block-delete-btn{
  border:none!important;
  background:rgba(255,59,48,.10)!important;
  color:#FF3B30!important;
  box-shadow:none!important;
}

#pane-input .add-set-btn,
#pane-input .add-block-btn{
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
}

#pane-input .add-exercise-btn{
  min-height:54px!important;
  border:none!important;
  border-radius:17px!important;
  background:rgba(11,111,104,.10)!important;
  color:var(--ios-blue)!important;
  font-size:16px!important;
  box-shadow:none!important;
}

#pane-input .add-exercise-btn:active{
  background:rgba(11,111,104,.16)!important;
  opacity:1!important;
  transform:scale(.985);
}

#pane-input .log-save-panel{
  padding:12px!important;
}

#pane-input .save-btn{
  min-height:54px!important;
  border-radius:17px!important;
  font-size:17px!important;
  font-weight:800!important;
}

#pane-input button[onclick="openShareCardModal()"]{
  min-height:44px!important;
  border:none!important;
  border-radius:14px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
  box-shadow:none!important;
  font-weight:700!important;
}

#pane-input .edit-mode-banner,
#pane-input .save-error-banner,
#pane-input .app-network-banner{
  border:1px solid var(--ios-separator)!important;
  border-radius:20px!important;
  background:#fff!important;
  color:var(--ios-label)!important;
  box-shadow:var(--ios-shadow)!important;
}

#pane-input .edit-mode-cancel,
#pane-input .save-retry-btn,
#pane-input .app-network-banner button,
#pane-input .body-condition-add-btn,
#pane-input .seg-toggle-btn{
  min-height:40px!important;
  border:none!important;
  border-radius:999px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
  box-shadow:none!important;
  font-size:13px!important;
  font-weight:700!important;
}

#pane-input .body-condition-help,
#pane-input .hr-hint,
#pane-input .col-label,
#pane-input .seg-field-label{
  color:var(--ios-secondary)!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.45;
}

#pane-input .three-col,
#pane-input .seg-grid{
  gap:8px!important;
}

#pane-input .field-row .field-unit{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border-radius:14px;
  background:var(--ios-fill);
  color:var(--ios-secondary);
  font-size:13px;
  font-weight:700;
}

#pane-input .rest-timer-bar{
  border:1px solid var(--ios-separator)!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:var(--ios-shadow)!important;
  color:var(--ios-label)!important;
}

#pane-input .rest-timer-label,
#pane-input .rest-timer-hint,
#pane-input .rest-timer-target{
  color:var(--ios-secondary)!important;
}

#pane-input .rest-timer-display{
  color:var(--ios-label)!important;
  font-weight:800!important;
}

#pane-input .rest-timer-display.warning{
  color:#FF9500!important;
}

#pane-input .rest-timer-display.done{
  color:#FF3B30!important;
}

#pane-input .rest-timer-preset,
#pane-input .rest-timer-btn.reset,
#pane-input .rest-timer-btn.stop{
  border:none!important;
  border-radius:999px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
}

#pane-input .rest-timer-preset.active,
#pane-input .rest-timer-btn.start{
  border:none!important;
  background:var(--ios-blue)!important;
  color:#fff!important;
}

#pane-input .save-status-chip{
  border:1px solid var(--ios-separator)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.92)!important;
  color:var(--ios-secondary)!important;
  box-shadow:var(--ios-shadow)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

#pane-input .save-status-chip.saving,
#pane-input .save-status-chip.soft{
  background:rgba(11,111,104,.10)!important;
  color:var(--ios-blue)!important;
}

#pane-input .save-status-chip.error{
  background:rgba(255,59,48,.10)!important;
  color:#FF3B30!important;
}

#pane-input .first-log-guide,
#pane-input .first-log-onboarding{
  border:1px solid var(--ios-separator)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:var(--ios-shadow)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

#pane-input .first-log-guide-kicker,
#pane-input .first-log-onboarding-progress,
#pane-input .first-log-onboarding-progress em{
  color:var(--ios-secondary)!important;
  letter-spacing:-.01em!important;
  text-transform:none!important;
}

#pane-input .first-log-guide-title{
  color:var(--ios-label)!important;
  font-size:17px!important;
  font-weight:700!important;
  letter-spacing:-.022em!important;
}

#pane-input .first-log-guide-copy,
#pane-input .first-log-guide-note,
#pane-input .first-log-onboarding-mode{
  color:var(--ios-secondary)!important;
}

#pane-input .first-log-onboarding-mode,
#pane-input .first-log-onboarding-progress span{
  border:none!important;
  background:var(--ios-fill)!important;
}

#pane-input .first-log-onboarding-mode strong{
  color:var(--ios-label)!important;
}

#pane-input .first-log-guide-primary{
  border:none!important;
  background:var(--ios-blue)!important;
  color:#fff!important;
  box-shadow:none!important;
}

#pane-input .first-log-guide-dismiss,
#pane-input .first-log-onboarding-later,
#pane-input .first-log-onboarding-back{
  border:none!important;
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
  box-shadow:none!important;
}

#pane-input .body-condition-field,
#pane-input .body-condition-row,
#pane-input .set-detail-panel,
#pane-input .intent-block-config,
#pane-input .ai-review-area,
#pane-input .recovery-score-wrap,
#pane-input .part-recovery-wrap{
  border:1px solid var(--ios-separator)!important;
  border-radius:18px!important;
  background:var(--ios-fill)!important;
  box-shadow:none!important;
}

#pane-input .set-detail-panel{
  position:relative;
  overflow:visible;
  margin:2px 4px 10px!important;
  border-color:rgba(11,111,104,.16)!important;
  border-radius:22px!important;
  background:
    radial-gradient(circle at 10% 0%,rgba(11,111,104,.08),transparent 36%),
    linear-gradient(180deg,rgba(255,255,255,.98),#F6FAF9)!important;
  box-shadow:
    0 1px 2px rgba(15,23,42,.04),
    0 14px 30px rgba(11,111,104,.075)!important;
}

#pane-input .set-detail-panel::before{
  content:'';
  position:absolute;
  left:16px;
  right:16px;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(11,111,104,.28),transparent);
  pointer-events:none;
}

#pane-input .body-condition-field,
#pane-input .set-detail-panel,
#pane-input .ai-review-area,
#pane-input .recovery-score-wrap,
#pane-input .part-recovery-wrap{
  padding:12px!important;
}

#pane-input .body-condition-row{
  padding:10px!important;
  background:#fff!important;
  max-width:100%!important;
  overflow:hidden!important;
}

#pane-input .body-condition-main{
  grid-template-columns:1fr!important;
  align-items:stretch!important;
  max-width:100%!important;
  min-width:0!important;
}

#pane-input .body-condition-part-wrap,
#pane-input .body-condition-symptom-wrap,
#pane-input .body-condition-pain-wrap,
#pane-input .body-condition-note-wrap,
#pane-input .body-condition-detail-toggle,
#pane-input .body-condition-remove-btn{
  grid-column:1 / -1!important;
  max-width:100%!important;
  min-width:0!important;
}

#pane-input .body-condition-signs{
  display:flex!important;
  flex-wrap:wrap!important;
  max-width:100%!important;
  min-width:0!important;
}

#pane-input .body-condition-sign-chip{
  max-width:100%!important;
  min-width:0!important;
  white-space:normal!important;
}

#pane-input .body-condition-pain-wrap{
  grid-template-columns:minmax(0,1fr) auto!important;
}

#pane-input .body-condition-summary,
#pane-input .body-condition-pain-wrap,
#pane-input .body-condition-detail label,
#pane-input .body-condition-caution,
#pane-input .ai-review-label,
#pane-input .recovery-score-label,
#pane-input .recovery-score-msg,
#pane-input .recovery-score-reasons,
#pane-input .part-recovery-title{
  color:var(--ios-secondary)!important;
}

#pane-input .body-condition-sign-chip{
  border:none!important;
  border-radius:999px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-secondary)!important;
  box-shadow:none!important;
}

#pane-input .body-condition-sign-chip:has(input:checked),
#pane-input .body-condition-sign-chip.active{
  background:rgba(11,111,104,.12)!important;
  color:var(--ios-blue)!important;
}

#pane-input .body-condition-detail-toggle,
#pane-input .set-detail-toggle{
  border:1px solid rgba(11,111,104,.14)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fff,#F7FAF9)!important;
  color:var(--ios-blue)!important;
  box-shadow:0 1px 2px rgba(15,23,42,.035)!important;
  min-height:44px!important;
  padding:10px 13px!important;
}

#pane-input .body-condition-remove-btn{
  border:none!important;
  background:rgba(255,59,48,.10)!important;
  color:#FF3B30!important;
  box-shadow:none!important;
}

#pane-input .body-condition-detail{
  border-top:1px solid var(--ios-separator)!important;
}

#pane-input .recovery-score-circle{
  border:none!important;
  background:rgba(11,111,104,.12)!important;
  color:var(--ios-blue)!important;
  box-shadow:none!important;
}

#pane-input .recovery-score-bar-wrap{
  border:none!important;
  border-radius:999px!important;
  background:#fff!important;
}

#pane-input .recovery-score-bar{
  background:var(--ios-blue)!important;
  border-radius:999px!important;
}

#pane-input .part-recovery-grid,
#pane-input .advanced-set-details.compact{
  gap:10px!important;
}

#pane-input .set-detail-panel .advanced-set-fields,
#pane-input .advanced-set-details.compact{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

#pane-input .set-detail-panel .advanced-set-field{
  min-width:0;
  padding:10px!important;
  border:1px solid rgba(60,60,67,.09)!important;
  border-radius:17px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.90),
    0 1px 2px rgba(15,23,42,.035)!important;
}

#pane-input .set-detail-panel .advanced-set-label{
  justify-content:space-between!important;
  min-height:22px;
  margin:0 0 7px!important;
  padding:0!important;
  color:var(--ios-secondary)!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
}

#pane-input .set-detail-panel .advanced-set-field input,
#pane-input .set-detail-panel .set-detail-select,
#pane-input .set-detail-panel .set-detail-select-menu{
  width:100%!important;
  min-height:42px!important;
  border-radius:13px!important;
  background:#fff!important;
  border:1px solid rgba(60,60,67,.10)!important;
  color:var(--ios-label)!important;
  box-shadow:0 1px 1px rgba(15,23,42,.025)!important;
  font-weight:800!important;
}

#pane-input .set-detail-panel .advanced-set-field input:focus,
#pane-input .set-detail-panel .set-detail-select:focus,
#pane-input .set-detail-panel .set-detail-select-menu:focus{
  border-color:rgba(11,111,104,.42)!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(11,111,104,.10)!important;
}

#pane-input .set-detail-note-row{
  padding-top:11px!important;
}

#pane-input .set-detail-note-row .set-memo{
  min-height:46px!important;
  border:1px solid rgba(60,60,67,.10)!important;
  border-radius:15px!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 1px 2px rgba(15,23,42,.03)!important;
}

#pane-input .set-table-head{
  border-bottom:1px solid var(--ios-separator)!important;
}

#pane-input .set-table-head-cell,
#pane-input .set-row-num{
  color:var(--ios-tertiary)!important;
  font-size:11px!important;
  font-weight:700!important;
}

#pane-input .set-detail-toggle em{
  color:var(--ios-secondary)!important;
}

#pane-input .set-detail-toggle-row.has-detail-value .set-detail-toggle{
  border-color:rgba(11,111,104,.22)!important;
  background:linear-gradient(180deg,#fff,#EFF8F6)!important;
  color:var(--ios-blue)!important;
}

#pane-input .set-detail-select,
#pane-input .set-detail-select-menu,
#pane-input .advanced-set-field select{
  min-height:44px!important;
  border:1px solid rgba(60,60,67,.10)!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,#fff,#F7F8FA)!important;
  color:var(--ios-label)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.90)!important;
  font-size:16px!important;
}

#pane-input .advanced-help-btn,
#pane-input .advanced-help-close{
  border:none!important;
  border-radius:999px!important;
  background:var(--ios-fill)!important;
  color:var(--ios-blue)!important;
  box-shadow:none!important;
}

#pane-input .advanced-help-popover{
  border:1px solid var(--ios-separator)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.98)!important;
  color:var(--ios-label)!important;
  box-shadow:0 12px 28px rgba(0,0,0,.10)!important;
}

#pane-input .add-block-action-wrap,
#pane-input .set-action-row,
#pane-input .weight-quick-btns{
  gap:8px!important;
}

#pane-input .ex-note-wrap{
  border-top:1px solid var(--ios-separator)!important;
}

#pane-input .ai-review-label span{
  border-radius:999px!important;
  background:rgba(11,111,104,.12)!important;
  color:var(--ios-blue)!important;
}

/* =============================================
   Premium Dropdown Unification 20260602
   ネイティブselectの制約内で、閉じた状態・フォーカス・option色を統一する。
   ============================================= */
#pane-input select,
.search-bar select,
.chart-filter select,
.advanced-log-select,
.onboarding-select,
.tpl-save-form select,
.goal-add-form select{
  -webkit-appearance:none!important;
  appearance:none!important;
  min-height:44px;
  border:1px solid rgba(11,111,104,.16)!important;
  border-radius:14px!important;
  background-color:#fff!important;
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(246,250,249,.98)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M2 2l5 5 5-5' stroke='%230B6F68' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:0 0, right 13px center!important;
  background-size:100% 100%, 14px 9px!important;
  color:var(--color-text,#10201f)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 1px 2px rgba(15,23,42,.035)!important;
  font-weight:750!important;
  letter-spacing:-.01em!important;
  padding-right:38px!important;
  color-scheme:light;
}

#pane-input select:focus,
.search-bar select:focus,
.chart-filter select:focus,
.advanced-log-select:focus,
.onboarding-select:focus,
.tpl-save-form select:focus,
.goal-add-form select:focus{
  border-color:rgba(11,111,104,.44)!important;
  background-color:#fff!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.94),
    0 0 0 4px rgba(11,111,104,.11)!important;
}

#pane-input select option,
.search-bar select option,
.chart-filter select option,
.advanced-log-select option,
.onboarding-select option,
.tpl-save-form select option,
.goal-add-form select option{
  background:#F7FAF9;
  color:#10201f;
  font-weight:650;
}

#pane-input select option:checked,
.search-bar select option:checked,
.chart-filter select option:checked,
.advanced-log-select option:checked,
.onboarding-select option:checked,
.tpl-save-form select option:checked,
.goal-add-form select option:checked{
  background:#E3F3F1;
  color:#064E49;
  font-weight:850;
}

#pane-input .set-detail-panel .set-detail-select,
#pane-input .set-detail-panel .set-detail-select-menu,
#pane-input .set-detail-panel .advanced-set-field select{
  border-color:rgba(11,111,104,.14)!important;
  border-radius:14px!important;
  background-image:
    linear-gradient(180deg,#fff,#F8FBFA),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M2 2l5 5 5-5' stroke='%230B6F68' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-position:0 0, right 10px center!important;
  background-size:100% 100%, 14px 9px!important;
  padding-left:8px!important;
  padding-right:30px!important;
  text-align:center!important;
  text-align-last:center!important;
}

#pane-input .intent-block-select{
  min-height:42px!important;
  border-radius:14px!important;
}

#pane-input .body-condition-part{
  min-width:0;
}

@media (max-width:420px){
  #pane-input .card,
  #pane-input .menu-builder-card{
    padding:14px!important;
    border-radius:22px!important;
  }
  #pane-input .input-quick-actions{
    grid-template-columns:1fr 1fr!important;
  }
  #pane-input .menu-builder-guide{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #pane-input .ex-block{
    padding:14px!important;
  }
  #pane-input .set-row-main input{
    padding-left:6px!important;
    padding-right:6px!important;
  }
  #pane-input .advanced-set-fields{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #pane-input .set-detail-panel .advanced-set-fields,
  #pane-input .advanced-set-details.compact{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  #pane-input .set-detail-panel{
    padding:11px!important;
  }
  #pane-input .set-detail-panel .advanced-set-field{
    padding:9px!important;
    border-radius:16px!important;
  }
  #pane-input .body-condition-main{
    grid-template-columns:1fr!important;
  }
  #pane-input .body-condition-remove-btn{
    justify-self:end;
  }
  #pane-input .first-log-guide{
    grid-template-columns:1fr!important;
  }
  #pane-input .first-log-guide-actions{
    min-width:0!important;
  }
}

/* 20260602 collapsealign4: make theme/body closed cards the same component. */
#pane-input #theme-collapse-card,
#pane-input #card-cond{
  --record-collapse-icon-size:40px;
  --record-collapse-header-height:72px;
  --record-collapse-inline-padding:16px;
  width:100%!important;
  padding:0!important;
}

#pane-input #theme-collapse-card > .collapsible-toggle,
#pane-input #card-cond > .collapsible-toggle{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) var(--record-collapse-icon-size)!important;
  align-items:center!important;
  column-gap:12px!important;
  height:var(--record-collapse-header-height)!important;
  min-height:var(--record-collapse-header-height)!important;
  max-height:var(--record-collapse-header-height)!important;
  padding:0 var(--record-collapse-inline-padding)!important;
  box-sizing:border-box!important;
}

#pane-input #theme-collapse-card > .collapsible-toggle > .collapsible-toggle-text,
#pane-input #card-cond > .collapsible-toggle > .collapsible-toggle-text{
  grid-column:1!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:4px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

#pane-input #theme-collapse-card > .collapsible-toggle .collapsible-title,
#pane-input #card-cond > .collapsible-toggle .collapsible-title{
  display:block!important;
  margin:0!important;
  padding:0!important;
  line-height:21px!important;
  white-space:nowrap!important;
}

#pane-input #theme-collapse-card > .collapsible-toggle .collapsible-summary,
#pane-input #card-cond > .collapsible-toggle .collapsible-summary{
  display:block!important;
  margin:0!important;
  padding:0!important;
  line-height:18px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#pane-input #theme-collapse-toggle,
#pane-input #card-cond-arrow{
  grid-column:2!important;
  justify-self:end!important;
  align-self:center!important;
  display:inline-flex!important;
  flex:0 0 var(--record-collapse-icon-size)!important;
  width:var(--record-collapse-icon-size)!important;
  min-width:var(--record-collapse-icon-size)!important;
  height:var(--record-collapse-icon-size)!important;
  min-height:var(--record-collapse-icon-size)!important;
  max-height:var(--record-collapse-icon-size)!important;
  margin:0!important;
  padding:0!important;
  position:static!important;
  line-height:1!important;
  transform-origin:center center!important;
}

#pane-input #theme-collapse-card.open #theme-collapse-toggle,
#pane-input #card-cond-arrow.open{
  transform:rotate(180deg)!important;
}

@media (max-width:420px){
  #pane-input #theme-collapse-card,
  #pane-input #card-cond{
    --record-collapse-header-height:72px;
    --record-collapse-inline-padding:14px;
  }
}

/* 20260604 menu IA: judgment -> compose -> execute.
   今日の状態は判断材料、身体データは任意の計測として分離する。 */
#pane-input .today-state-card{
  border-color:rgba(11,111,104,.16)!important;
  background:
    radial-gradient(circle at 10% 0%,rgba(11,111,104,.07),transparent 36%),
    linear-gradient(180deg,#fff,#fbfdfd)!important;
}

#pane-input .today-state-intro,
#pane-input .body-data-intro{
  margin:0 0 12px;
  padding:11px 12px;
  border-radius:16px;
  background:var(--ios-fill,#f3f5f6);
  color:var(--ios-secondary,#667085);
  font-size:12px;
  font-weight:750;
  line-height:1.65;
}

#pane-input .today-state-intro strong{
  display:block;
  color:var(--ios-label,#111827);
  font-size:13px;
  font-weight:950;
  line-height:1.5;
}

#pane-input .today-state-intro span,
#pane-input .body-data-intro{
  display:block;
}

#pane-input .body-data-card{
  margin-top:14px;
  border-color:rgba(60,60,67,.10)!important;
  background:linear-gradient(180deg,#fff,#fbfcfd)!important;
}

#pane-input #card-body-data > .collapsible-toggle{
  min-height:68px!important;
}

#pane-input #card-body-data-arrow.open{
  transform:rotate(180deg)!important;
}

#pane-input .menu-builder-card{
  margin-top:12px!important;
}

#pane-input .exercise-compose-summary{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin:-3px 40px 8px 0;
}

#pane-input .exercise-compose-summary span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 9px;
  border-radius:999px;
  background:rgba(11,111,104,.08);
  color:var(--ios-blue,#0B6F68);
  font-size:11px;
  font-weight:900;
  line-height:1.25;
}

#pane-input .set-compose-extra{
  margin:7px 3px 10px;
  padding:10px;
  border:1px solid rgba(11,111,104,.12);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#F8FBFA);
}

#pane-input .set-compose-extra .set-side-row{
  margin:0 0 8px!important;
}

#pane-input .set-compose-extra .set-action-row{
  margin:0 0 8px!important;
  padding:0!important;
}

#pane-input .set-compose-extra .weight-quick-btns{
  margin:0 0 8px!important;
  padding:0!important;
}

#pane-input .set-compose-extra .set-note-row{
  padding:0!important;
}

#pane-input .set-detail-toggle-row{
  margin:7px 3px 9px!important;
}

#pane-input .set-detail-toggle span{
  white-space:nowrap;
}

#pane-input .set-detail-toggle em{
  overflow:hidden;
  text-overflow:ellipsis;
}

@media (max-width:420px){
  #pane-input .today-state-intro,
  #pane-input .body-data-intro{
    padding:10px 11px;
    border-radius:15px;
  }
  #pane-input .exercise-compose-summary{
    margin-right:38px;
  }
  #pane-input .exercise-compose-summary span{
    min-height:22px;
    padding:3px 8px;
    font-size:10.5px;
  }
}

/* 20260605 menu density: keep order, reduce scan cost before menu composition. */
#pane-input #card-cond,
#pane-input #card-body-data{
  --record-collapse-icon-size:38px;
  --record-collapse-header-height:64px;
  --record-collapse-inline-padding:14px;
  margin-top:10px!important;
  padding:0!important;
  overflow:hidden;
}

#pane-input #card-cond > .collapsible-toggle,
#pane-input #card-body-data > .collapsible-toggle{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) var(--record-collapse-icon-size)!important;
  align-items:center!important;
  gap:10px!important;
  height:var(--record-collapse-header-height)!important;
  min-height:var(--record-collapse-header-height)!important;
  max-height:var(--record-collapse-header-height)!important;
  padding:0 var(--record-collapse-inline-padding)!important;
  box-sizing:border-box!important;
}

#pane-input #card-cond > .collapsible-toggle > .collapsible-toggle-text,
#pane-input #card-body-data > .collapsible-toggle > .collapsible-toggle-text{
  min-width:0!important;
  height:42px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:3px!important;
  margin:0!important;
  overflow:hidden!important;
}

#pane-input #card-cond > .collapsible-toggle .collapsible-title,
#pane-input #card-body-data > .collapsible-toggle .collapsible-title{
  line-height:20px!important;
}

#pane-input #card-cond > .collapsible-toggle .collapsible-summary,
#pane-input #card-body-data > .collapsible-toggle .collapsible-summary{
  max-width:100%!important;
  line-height:17px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#pane-input #card-cond-arrow,
#pane-input #card-body-data-arrow{
  justify-self:end!important;
  align-self:center!important;
  width:var(--record-collapse-icon-size)!important;
  min-width:var(--record-collapse-icon-size)!important;
  height:var(--record-collapse-icon-size)!important;
  min-height:var(--record-collapse-icon-size)!important;
  position:static!important;
  margin:0!important;
}

#pane-input .today-state-intro,
#pane-input .body-data-intro{
  margin-bottom:9px!important;
  padding:9px 10px!important;
  border-radius:14px!important;
  font-size:11.5px!important;
  line-height:1.55!important;
}

#pane-input .recovery-score-wrap,
#pane-input .part-recovery-wrap{
  margin-top:9px!important;
}

#pane-input .part-recovery-grid{
  gap:8px!important;
}

#pane-input .part-recovery-card{
  min-height:58px!important;
  padding:8px!important;
}

#pane-input .menu-builder-card{
  margin-top:10px!important;
  padding:16px 14px!important;
  border-color:rgba(11,111,104,.18)!important;
  background:
    radial-gradient(circle at 18% 0%,rgba(11,111,104,.06),transparent 36%),
    linear-gradient(180deg,#fff,#fbfdfd)!important;
}

#pane-input .menu-builder-head{
  margin-bottom:9px!important;
}

#pane-input .menu-builder-guide{
  gap:7px!important;
  margin:8px 0!important;
}

#pane-input .menu-guide-step{
  min-height:34px!important;
  padding:7px 9px!important;
  border-radius:16px!important;
  font-size:12px!important;
}

#pane-input .menu-guide-step span{
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  font-size:11px!important;
}

#pane-input .mode-flow-hint{
  margin:8px 0 10px!important;
  padding:9px 10px!important;
  border-radius:14px!important;
  font-size:11.5px!important;
  line-height:1.55!important;
}

#pane-input .tpl-bar.input-action-bar{
  gap:8px!important;
  margin-bottom:11px!important;
}

#pane-input .tpl-bar.input-action-bar .tpl-btn{
  min-height:42px!important;
  padding:9px 10px!important;
  border-radius:16px!important;
  font-size:12.5px!important;
}

#pane-input .menu-section-label{
  margin:10px 0!important;
}

#pane-input .ex-block{
  padding:12px!important;
  border-radius:20px!important;
  margin:0 0 12px!important;
}

#pane-input .ex-head{
  gap:7px!important;
  margin-bottom:8px!important;
}

#pane-input .ex-name-input{
  min-height:48px!important;
  padding:10px 12px!important;
  border-radius:15px!important;
  font-size:16px!important;
}

#pane-input .search-ex-btn{
  min-height:40px!important;
  margin:7px 0!important;
  border-radius:15px!important;
  background:rgba(11,111,104,.05)!important;
  box-shadow:none!important;
}

#pane-input .progression-coach-card{
  margin:8px 0!important;
  padding:9px!important;
  border-radius:15px!important;
}

#pane-input .progression-line{
  min-height:24px!important;
  gap:7px!important;
  font-size:12px!important;
}

#pane-input .progression-label{
  min-width:74px!important;
  padding:4px 8px!important;
  font-size:11px!important;
}

#pane-input .progression-actions{
  gap:7px!important;
  margin-top:8px!important;
}

#pane-input .progression-actions button,
#pane-input .warmup-toggle{
  min-height:38px!important;
  border-radius:15px!important;
  font-size:12px!important;
}

#pane-input .exercise-edit-drawer{
  margin:7px 0 9px!important;
  border:1px solid rgba(11,111,104,.12)!important;
  border-radius:16px!important;
  background:rgba(11,111,104,.025)!important;
  overflow:hidden;
}

#pane-input .exercise-edit-drawer summary{
  min-height:44px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 30px!important;
  grid-template-rows:auto auto!important;
  align-items:center!important;
  column-gap:8px!important;
  row-gap:2px!important;
  padding:7px 10px!important;
  color:var(--ios-blue,#0B6F68)!important;
  font-size:12.5px!important;
  font-weight:950!important;
  list-style:none!important;
  cursor:pointer;
}

#pane-input .exercise-edit-drawer summary::-webkit-details-marker{
  display:none;
}

#pane-input .exercise-edit-drawer summary::after{
  content:'∨';
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(60,60,67,.06);
  color:var(--ios-blue,#0B6F68);
  transition:transform .18s ease;
  grid-column:2!important;
  grid-row:1 / span 2!important;
}

#pane-input .exercise-edit-drawer[open] summary::after{
  transform:rotate(180deg);
}

#pane-input .exercise-edit-drawer summary em{
  grid-column:1!important;
  grid-row:2!important;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--ios-secondary,#667085);
  font-size:10.5px;
  font-style:normal;
  font-weight:850;
}

#pane-input .exercise-edit-drawer summary span{
  grid-column:1!important;
  grid-row:1!important;
  min-width:0;
}

#pane-input .exercise-edit-drawer-body{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0 10px 10px;
}

#pane-input .exercise-edit-drawer:not([open]) > .exercise-edit-drawer-body,
#pane-input .intent-block-config:not([open]) > .intent-block-config-body{
  display:none!important;
}

#pane-input .exercise-edit-drawer .search-ex-btn{
  margin:0!important;
}

#pane-input .exercise-edit-drawer .ex-search-panel{
  margin-top:0!important;
}

#pane-input .exercise-edit-drawer .ex-note-wrap{
  margin:0!important;
}

#pane-input .exercise-edit-drawer .ex-note-input{
  min-height:58px!important;
}

#pane-input .exercise-compose-summary{
  margin:-2px 34px 6px 0!important;
  gap:5px!important;
}

#pane-input .exercise-compose-summary span{
  min-height:21px!important;
  padding:3px 8px!important;
  font-size:10.5px!important;
}

#pane-input .intent-block{
  padding:10px!important;
  border-radius:18px!important;
  margin-top:9px!important;
}

#pane-input .intent-block-head{
  margin-bottom:8px!important;
  padding-bottom:8px!important;
}

#pane-input .intent-block-config-summary{
  min-height:42px!important;
  padding:8px 10px!important;
  border-radius:15px!important;
}

#pane-input .set-section-title{
  margin:10px 0 5px!important;
}

#pane-input .set-table-head{
  margin:3px 0 5px!important;
  padding:0 2px 5px!important;
}

#pane-input .set-row-main{
  min-height:52px!important;
  padding:4px!important;
  gap:4px!important;
  border-radius:16px!important;
}

#pane-input .set-row-main input{
  min-height:44px!important;
  border-radius:14px!important;
  font-size:16px!important;
  padding:7px 6px!important;
}

#pane-input .set-detail-toggle-row{
  margin:6px 2px 7px!important;
}

#pane-input .set-detail-toggle{
  min-height:40px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:8px!important;
  padding:7px 10px!important;
  border-radius:15px!important;
  gap:8px!important;
}

#pane-input .set-detail-toggle span{
  font-size:12.5px!important;
  line-height:1.2!important;
}

#pane-input .set-detail-toggle em{
  font-size:11px!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}

#pane-input .set-compose-extra{
  margin:6px 2px 8px!important;
  padding:8px!important;
  border-radius:16px!important;
}

#pane-input .weight-quick-btns{
  gap:6px!important;
}

#pane-input .weight-quick-btn{
  min-height:34px!important;
  border-radius:14px!important;
  font-size:12px!important;
}

#pane-input .set-note-row{
  margin-top:6px!important;
}

#pane-input .set-memo{
  min-height:44px!important;
  border-radius:14px!important;
}

#pane-input .add-next-set-btn,
#pane-input .add-exercise-btn,
#pane-input #exec-bottom-start-btn{
  min-height:48px!important;
  border-radius:17px!important;
}

#pane-input .ex-del-card-btn,
#pane-input .block-delete-btn,
#pane-input .set-row-del{
  background:rgba(255,59,48,.075)!important;
  color:rgba(255,59,48,.82)!important;
  box-shadow:none!important;
}

#pane-input .ex-del-card-btn,
#pane-input .block-delete-btn{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  font-size:18px!important;
  opacity:.88!important;
}

#pane-input .set-row-del{
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  font-size:18px!important;
}

@media (max-width:420px){
  #pane-input #card-cond,
  #pane-input #card-body-data{
    --record-collapse-header-height:62px;
    --record-collapse-inline-padding:13px;
  }
  #pane-input .menu-builder-card{
    padding:15px 12px!important;
  }
  #pane-input .menu-builder-guide{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #pane-input .tpl-bar.input-action-bar{
    grid-template-columns:1fr!important;
  }
  #pane-input .progression-actions{
    grid-template-columns:1fr 1fr!important;
  }
  #pane-input .set-row-main{
    grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) minmax(0,.82fr) 32px!important;
  }
}

/* 20260604 exec handoff: keep previous-copy actions visible without pushing weight/reps away. */
.exec-transfer-panel{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  margin:0 0 10px;
  padding:10px;
  border:1px solid rgba(142,226,194,.14);
  border-radius:15px;
  background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
}
.exec-transfer-copy{
  min-width:72px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.exec-transfer-copy strong{
  color:rgba(255,255,255,.82);
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
}
.exec-transfer-copy span{
  color:rgba(255,255,255,.38);
  font-size:10px;
  font-weight:800;
}
.exec-transfer-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  min-width:0;
}
.exec-transfer-btn{
  width:100%;
  min-width:0;
  min-height:40px;
  padding:8px 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.72);
  box-shadow:none;
  font-size:12px;
  font-weight:900;
  line-height:1.2;
  white-space:normal;
}
.exec-transfer-btn.exec-transfer-primary{
  border-color:rgba(142,226,194,.45);
  background:rgba(11,111,104,.28);
  color:#F2FFFB;
  box-shadow:0 8px 18px rgba(11,111,104,.14), inset 0 1px 0 rgba(255,255,255,.1);
}
.exec-transfer-btn[disabled]{
  opacity:.42;
  cursor:not-allowed;
}
.exec-prev-details{
  margin:-2px 0 12px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:12px;
  background:rgba(255,255,255,.026);
  overflow:hidden;
}
.exec-prev-details summary{
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 11px;
  color:rgba(255,255,255,.58);
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  list-style:none;
}
.exec-prev-details summary::-webkit-details-marker{display:none;}
.exec-prev-details summary::after{
  content:'∨';
  color:#8EE2C2;
  font-size:14px;
  transition:transform .18s ease;
}
.exec-prev-details[open] summary::after{
  transform:rotate(180deg);
}
.exec-prev-details-body{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:0 11px 10px;
  color:rgba(255,255,255,.66);
  font-size:11px;
  line-height:1.55;
}

@media (max-width:420px){
  .exec-transfer-panel{
    grid-template-columns:1fr;
    gap:7px;
    padding:9px;
  }
  .exec-transfer-copy{
    min-width:0;
    flex-direction:row;
    align-items:baseline;
    justify-content:space-between;
  }
  .exec-transfer-btn{
    min-height:38px;
    padding-left:7px;
    padding-right:7px;
    font-size:11px;
  }
}

/* 20260606 exec mode IA: previous workout is reference-only; previous set is the only copy action. */
.exec-prev-reference-card{
  margin:2px 0 10px;
  border:1px solid rgba(142,226,194,.16);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.026));
  overflow:hidden;
}
.exec-prev-reference-summary{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 12px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:950;
  cursor:pointer;
  list-style:none;
}
.exec-prev-reference-summary::-webkit-details-marker{
  display:none;
}
.exec-prev-reference-summary::after{
  content:'∨';
  flex:0 0 auto;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(142,226,194,.08);
  color:#8EE2C2;
  font-size:14px;
  transition:transform .18s ease, background .18s ease;
}
.exec-prev-reference-card[open] .exec-prev-reference-summary::after{
  transform:rotate(180deg);
  background:rgba(142,226,194,.16);
}
.exec-prev-reference-summary small{
  min-width:0;
  margin-left:auto;
  color:rgba(255,255,255,.38);
  font-size:10px;
  font-weight:850;
  white-space:nowrap;
}
.exec-prev-reference-body{
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:0 12px 12px;
}
.exec-prev-reference-card:not([open]) .exec-prev-reference-body{
  display:none;
}
.exec-prev-reference-meta{
  color:rgba(255,255,255,.48);
  font-size:10px;
  font-weight:850;
}
.exec-prev-reference-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
}
.exec-prev-reference-set{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:center;
  gap:8px 10px;
  padding:8px 9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.exec-prev-reference-index{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(142,226,194,.1);
  color:#8EE2C2;
  font-size:11px;
  font-weight:950;
}
.exec-prev-reference-set strong{
  min-width:0;
  color:rgba(255,255,255,.82);
  font-size:12px;
  font-weight:950;
  overflow-wrap:anywhere;
}
.exec-prev-reference-set em{
  grid-column:2;
  color:rgba(255,255,255,.48);
  font-size:10px;
  font-style:normal;
  font-weight:800;
}
.exec-prev-reference-empty{
  margin:0;
  color:rgba(255,255,255,.52);
  font-size:11px;
  font-weight:800;
  line-height:1.55;
}
.exec-main-inputs:not(.exec-cardio-inputs){
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.exec-main-inputs .exec-input-wrap{
  position:relative;
}
.exec-prev-set-icon-btn{
  position:absolute;
  top:10px;
  right:10px;
  width:32px;
  height:32px;
  padding:0;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  border-radius:999px;
  border:1px solid rgba(142,226,194,.28);
  background:rgba(142,226,194,.08);
  color:#9BE7CC;
  appearance:none;
  -webkit-appearance:none;
  box-shadow:none;
  -webkit-tap-highlight-color:transparent;
}
.exec-prev-set-icon{
  width:17px;
  height:17px;
  display:block;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:2.65;
  stroke-linecap:round;
  stroke-linejoin:round;
  transform:translate(.25px,.25px);
}
.exec-prev-set-icon-btn:active{
  transform:scale(.96);
  background:rgba(142,226,194,.16);
}
.exec-heart-inputs{
  grid-template-columns:1fr;
  margin:-2px 0 12px;
}
.exec-heart-inputs .exec-input-wrap{
  background:rgba(255,255,255,.052);
  border-color:rgba(255,255,255,.10);
  box-shadow:none;
}
.exec-heart-inputs .exec-input-label,
.exec-heart-inputs .exec-input-unit{
  color:rgba(255,255,255,.42);
}
.exec-heart-inputs .exec-input-wrap input{
  font-size:25px;
}

@media (max-width:420px){
  .exec-prev-reference-summary{
    min-height:40px;
    padding:8px 10px;
    font-size:11px;
  }
  .exec-prev-reference-summary small{
    max-width:112px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .exec-prev-reference-body{
    padding:0 10px 10px;
  }
  .exec-prev-set-icon-btn{
    top:9px;
    right:9px;
    width:30px;
    height:30px;
  }
  .exec-prev-set-icon{
    width:16px;
    height:16px;
  }
}

/* 20260606 exec exercise action: compact rename menu in the current exercise header. */
.exec-exercise-actions{
  position:absolute;
  top:12px;
  right:12px;
  z-index:4;
}
.exec-exercise-action-btn{
  width:38px;
  height:38px;
  position:relative;
  display:block;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(5,18,24,.42);
  color:rgba(255,255,255,.86);
  padding:0;
  box-shadow:0 10px 24px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.08);
  -webkit-tap-highlight-color:transparent;
}
.exec-exercise-action-btn span,
.exec-exercise-action-btn::before,
.exec-exercise-action-btn::after{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:4px;
  height:4px;
  border-radius:999px;
  background:currentColor;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.exec-exercise-action-btn::before{
  transform:translate(calc(-50% - 8px),-50%);
}
.exec-exercise-action-btn::after{
  transform:translate(calc(-50% + 8px),-50%);
}
.exec-exercise-action-btn[aria-expanded="true"]{
  border-color:rgba(142,226,194,.36);
  background:rgba(10,87,82,.72);
  color:#F2FFFB;
}
.exec-exercise-action-menu{
  position:absolute;
  top:44px;
  right:0;
  width:min(210px,calc(100vw - 40px));
  padding:7px;
  border:1px solid rgba(142,226,194,.18);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(19,37,43,.98),rgba(11,24,30,.98));
  box-shadow:0 18px 42px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.08);
}
.exec-exercise-action-menu button{
  width:100%;
  min-height:42px;
  padding:10px 12px;
  border:0;
  border-radius:12px;
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.86);
  font-size:13px;
  font-weight:950;
  text-align:left;
}
.exec-exercise-action-menu button:active{
  background:rgba(142,226,194,.14);
}
.exec-current-title{
  padding-right:48px;
}
.exec-rename-backdrop{
  position:fixed;
  inset:0;
  z-index:10020;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(3,9,12,.54);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.exec-rename-dialog{
  width:min(360px,100%);
  box-sizing:border-box;
  border:1px solid rgba(142,226,194,.18);
  border-radius:24px;
  padding:20px;
  background:linear-gradient(180deg,rgba(22,43,49,.98),rgba(10,23,29,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.08);
}
.exec-rename-kicker{
  margin-bottom:6px;
  color:#9BE7CC;
  font-size:11px;
  font-weight:950;
  letter-spacing:.08em;
}
.exec-rename-dialog h3{
  margin:0 0 16px;
  color:#fff;
  font-size:22px;
  line-height:1.2;
  letter-spacing:-.03em;
}
.exec-rename-label{
  display:block;
  margin-bottom:7px;
  color:rgba(255,255,255,.62);
  font-size:12px;
  font-weight:900;
}
.exec-rename-dialog input{
  width:100%;
  box-sizing:border-box;
  min-height:50px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:15px;
  padding:0 14px;
  background:rgba(255,255,255,.075);
  color:#fff;
  font-size:16px;
  font-weight:900;
  outline:none;
}
.exec-rename-dialog input:focus{
  border-color:rgba(142,226,194,.5);
  box-shadow:0 0 0 4px rgba(142,226,194,.1);
}
.exec-rename-error{
  margin:9px 0 0;
  color:#FCA5A5;
  font-size:12px;
  font-weight:850;
}
.exec-rename-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:16px;
}
.exec-rename-actions button{
  min-height:46px;
  border-radius:999px;
  font-size:13px;
  font-weight:950;
}
.exec-rename-cancel{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.72);
}
.exec-rename-submit{
  border:1px solid rgba(142,226,194,.4);
  background:linear-gradient(135deg,#0B6F68,#0A8178);
  color:#fff;
  box-shadow:0 12px 26px rgba(11,111,104,.24);
}

@media (max-width:420px){
  .exec-exercise-actions{
    top:10px;
    right:10px;
  }
  .exec-exercise-action-btn{
    width:36px;
    height:36px;
    font-size:20px;
  }
  .exec-current-title{
    padding-right:44px;
  }
  .exec-rename-backdrop{
    align-items:flex-end;
    padding:14px;
  }
  .exec-rename-dialog{
    border-radius:22px;
    padding:18px;
  }
}
/* HealthKit候補は既存入力より一段控えめにし、明示反映を主操作にする。 */
.healthkit-assist{
  margin:14px 0 18px;
  padding:16px;
  border:1px solid rgba(15,118,110,.2);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(239,248,246,.96),rgba(255,255,255,.98));
  box-shadow:0 10px 28px rgba(15,75,70,.07);
  overflow:hidden;
}
.healthkit-assist[hidden]{display:none!important;}
.healthkit-assist-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-width:0;
}
.healthkit-assist-head > div{
  display:grid;
  gap:4px;
  min-width:0;
}
.healthkit-assist-head strong{
  color:#123b38;
  font-size:14px;
  line-height:1.45;
}
.healthkit-assist-head span{
  color:#64717b;
  font-size:12px;
  line-height:1.65;
}
.healthkit-assist-head button,
.healthkit-candidate-item button,
.healthkit-candidate-actions button{
  min-height:42px;
  border:1px solid rgba(15,118,110,.24);
  border-radius:999px;
  padding:0 15px;
  background:#0b6f68;
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.healthkit-assist-head button:disabled{
  opacity:.62;
  cursor:wait;
}
.healthkit-disclaimer{
  margin:11px 0 0;
  color:#687680;
  font-size:11px;
  line-height:1.7;
}
.healthkit-candidate-result{
  margin-top:13px;
}
.healthkit-candidate-result[hidden]{display:none!important;}
.healthkit-loading,
.healthkit-applied-note,
.healthkit-message{
  border-radius:13px;
  padding:11px 12px;
  background:rgba(11,111,104,.08);
  color:#355d59;
  font-size:12px;
  line-height:1.6;
}
.healthkit-candidate-card{
  display:grid;
  gap:10px;
}
.healthkit-reference-date{
  color:#53646d;
  font-size:11px;
  font-weight:750;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.healthkit-candidate-item{
  display:grid;
  gap:11px;
  min-width:0;
  padding:13px;
  border:1px solid rgba(15,118,110,.16);
  border-radius:15px;
  background:rgba(255,255,255,.9);
}
.healthkit-sleep-match-note{
  display:grid;
  gap:9px;
  min-width:0;
  padding:12px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:13px;
  background:rgba(11,111,104,.045);
}
.healthkit-candidate-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.healthkit-candidate-badge{
  flex:0 0 auto;
  border-radius:999px;
  padding:4px 8px;
  background:rgba(11,111,104,.08);
  color:#2f6d67;
  font-size:10px;
  font-weight:800;
  line-height:1.2;
}
.healthkit-comparison{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  min-width:0;
}
.healthkit-comparison > div{
  display:grid;
  gap:3px;
  min-width:0;
  border-radius:12px;
  padding:9px 10px;
  background:#f5f7f7;
}
.healthkit-comparison > div:last-child{
  background:rgba(11,111,104,.07);
}
.healthkit-comparison span{
  color:#738089;
  font-size:10px;
  font-weight:750;
  line-height:1.35;
}
.healthkit-comparison strong{
  color:#12262a;
  font-size:15px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.healthkit-comparison-arrow{
  color:#8a979d!important;
  font-size:13px!important;
}
.healthkit-comparison.is-match{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.healthkit-match-heading{
  color:#173d39;
  font-size:13px;
  line-height:1.5;
}
.healthkit-match-status{
  border-radius:10px;
  padding:8px 10px;
  background:rgba(11,111,104,.08);
  color:#286a64;
  font-size:11px;
  font-weight:800;
  line-height:1.5;
}
.healthkit-candidate-meta{
  display:grid;
  gap:2px;
  min-width:0;
}
.healthkit-candidate-meta span,
.healthkit-candidate-meta small{
  color:#66747d;
  font-size:11px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.healthkit-candidate-meta .healthkit-delay-warning{
  margin-top:4px;
  border-left:3px solid #c57a24;
  padding:6px 8px;
  border-radius:0 8px 8px 0;
  background:rgba(197,122,36,.1);
  color:#76501d;
  font-weight:750;
}
.healthkit-candidate-label{
  color:#0b6f68;
  font-size:11px;
  font-weight:850;
  letter-spacing:.03em;
}
.healthkit-candidate-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.healthkit-candidate-actions button.secondary{
  background:rgba(255,255,255,.82);
  color:#0b6f68;
}
.healthkit-feedback-toast{
  position:fixed;
  left:50%;
  bottom:calc(86px + env(safe-area-inset-bottom));
  z-index:10020;
  max-width:min(88vw,380px);
  border:1px solid rgba(150,232,207,.26);
  border-radius:999px;
  padding:10px 15px;
  background:rgba(18,42,40,.96);
  box-shadow:0 14px 32px rgba(5,25,24,.24);
  color:#eafff8;
  font-size:12px;
  font-weight:800;
  line-height:1.45;
  text-align:center;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,10px);
  transition:opacity .2s ease,transform .2s ease;
}
.healthkit-feedback-toast.show{
  opacity:1;
  transform:translate(-50%,0);
}
.healthkit-body-assist{
  width:100%;
  min-width:0;
  margin-top:14px;
}
.healthkit-body-assist .healthkit-assist-head{
  min-width:0;
}
.healthkit-body-assist .healthkit-assist-head button{
  max-width:100%;
  white-space:normal;
}
.input-assist-candidate{
  min-width:0;
  overflow:hidden;
}
.input-assist-comparison,
.input-assist-meta{
  min-width:0;
}
.healthkit-metric-message{
  display:grid;
  gap:3px;
}
.healthkit-metric-message strong{
  color:#173d39;
  font-size:12px;
}
.healthkit-metric-message span{
  color:#66747d;
  font-size:11px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
@media(max-width:560px){
  .healthkit-assist{
    padding:14px;
  }
  .healthkit-assist-head,
  .healthkit-candidate-item{
    align-items:stretch;
  }
  .healthkit-assist-head button,
  .healthkit-candidate-item button{
    width:100%;
  }
  .healthkit-candidate-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .healthkit-candidate-actions button{
    min-width:0;
    white-space:normal;
  }
  .healthkit-candidate-title-row{
    align-items:flex-start;
  }
  .healthkit-body-assist{
    margin-top:12px;
  }
}
