:root{
    --cream:#FFFFFF;--cream2:#F7F7F7;
    --brown:#F5871F;--brown-dark:#1A1A1A;--brown-pale:#FFF0E0;
    --gold:#F5871F;--green:#22A06B;--green-bg:#E6F7F1;
    --red:#E53E3E;--red-bg:#FFF0F0;
    --text:#1A1A1A;--text2:#444444;--text3:#888888;--border:#EBEBEB;
    --shadow:0 2px 12px rgba(0,0,0,.07);--shadow-lg:0 4px 24px rgba(0,0,0,.14);
    --radius:16px;--radius-sm:10px;
    --font:'Noto Sans JP',sans-serif;--font-round:'M PLUS Rounded 1c',sans-serif;
    --nav-h:72px;--header-h:60px;
}
[data-dark]{
    --cream:#111111;--cream2:#1E1E1E;--brown:#F5871F;--brown-dark:#F5A54A;
    --brown-pale:#2A1A08;--gold:#F5A54A;--green:#4ADE9A;--green-bg:#0A2E1E;
    --red:#FC8181;--red-bg:#2A0A0A;
    --text:#F0F0F0;--text2:#AAAAAA;--text3:#666666;--border:#333333;
    --shadow:0 2px 12px rgba(0,0,0,.4);--shadow-lg:0 4px 24px rgba(0,0,0,.6);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{height:100%;overscroll-behavior:none;}
body{font-family:var(--font);background:var(--cream);color:var(--text);min-height:100%;max-width:540px;margin:0 auto;overflow-x:hidden;}
.app-header{position:sticky;top:0;z-index:100;height:var(--header-h);background:#FFFFFF;border-bottom:2px solid #F5871F;display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:0 2px 8px rgba(0,0,0,.06);}[data-dark] .app-header{background:#111111;border-bottom-color:#F5871F;}
.app-header h1{font-family:var(--font-round);font-size:18px;font-weight:700;color:#F5871F;letter-spacing:.02em;}
.hbtn{background:var(--cream2);border:1px solid var(--border);border-radius:10px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font-size:20px;}
.header-actions{display:flex;align-items:center;gap:8px;}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:540px;height:var(--nav-h);background:#1A1A1A;display:flex;align-items:stretch;z-index:100;box-shadow:0 -2px 12px rgba(0,0,0,.25);padding-bottom:env(safe-area-inset-bottom);}
.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:none;cursor:pointer;color:rgba(255,248,238,.5);font-size:10px;font-weight:500;padding:8px 4px;border-radius:12px;margin:6px 2px;transition:color .15s,background .15s;}
.nav-btn.active{color:#F5871F;background:rgba(245,135,31,.12);}
.nav-btn svg{width:24px;height:24px;stroke-width:2;}
.main-content{padding:12px 12px calc(var(--nav-h) + env(safe-area-inset-bottom) + 120px);} /* フッター分の余白を確保 */
.pane{display:none;}.pane.active{display:block;}
.sec-title{font-family:var(--font-round);font-size:20px;font-weight:700;color:var(--text);margin:0 0 4px;}
.sec-sub{font-size:13px;color:var(--text3);margin-bottom:14px;line-height:1.6;}
.card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px;}
[data-dark] .card{background:var(--cream2);}
.card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;user-select:none;gap:10px;}
.card-head-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0;}
.ctinput{font-family:var(--font-round);font-size:17px;font-weight:700;color:var(--text);background:transparent;border:none;border-bottom:2px solid transparent;padding:2px 0;width:100%;min-width:0;}
.ctinput:focus{outline:none;border-bottom-color:#F5871F;}
.card-body{padding:14px 16px;}
.card-body.hidden{display:none;}
.lbl{font-size:12px;color:var(--text3);display:block;margin-bottom:4px;font-weight:500;}
.inp{width:100%;padding:12px 10px;font-size:18px;font-family:var(--font);border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text);-webkit-appearance:none;transition:border-color .15s,box-shadow .15s;}
[data-dark] .inp{background:var(--cream2);}
.inp:focus{outline:none;border-color:#F5871F;box-shadow:0 0 0 3px rgba(245,135,31,.15);}
.inp-ro{background:#FFF0E0!important;color:#D4700F!important;font-weight:700;}[data-dark] .inp-ro{background:#2A1A08!important;color:#F5A54A!important;}
.inp-sm{padding:10px 8px;font-size:15px;}
select.inp{cursor:pointer;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:13px 18px;font-size:16px;font-family:var(--font);font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:transform .1s;min-height:50px;white-space:nowrap;}
.btn:active{transform:scale(.96);}
.btn-primary{background:#F5871F;color:#FFFFFF;}
.btn-ghost{background:transparent;color:#F5871F;border:1.5px solid var(--border);}
.btn-danger{background:var(--red-bg);color:var(--red);border:1.5px solid rgba(192,57,43,.25);}
.btn-sm{padding:9px 13px;font-size:14px;min-height:40px;}
.btn-icon{width:44px;height:44px;padding:0;border-radius:10px;min-height:44px;}
.btn-full{width:100%;}
.fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + 16px);width:58px;height:58px;background:#F5871F;color:#FFFFFF;border:none;border-radius:50%;font-size:28px;cursor:pointer;box-shadow:0 4px 20px rgba(245,135,31,.45);display:flex;align-items:center;justify-content:center;z-index:99;transition:transform .15s;}
.fab:active{transform:scale(.92);}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.badge-brown{background:var(--brown-pale);color:var(--brown-dark);}
.badge-green{background:var(--green-bg);color:var(--green);}
.badge-red{background:var(--red-bg);color:var(--red);}
.badge-blue{background:#EAF2FB;color:#1A5FA8;}
.badge-amber{background:#FEF3E2;color:#8B5E0A;}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.metrics-3{grid-template-columns:1fr 1fr 1fr;}
.metric{background:var(--cream2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:11px 12px;text-align:center;}
.metric-label{font-size:11px;color:var(--text3);margin-bottom:3px;}
.metric-value{font-size:20px;font-weight:700;color:var(--text);font-family:var(--font-round);}
.metric-value.good{color:var(--green);}
.metric-value.warn{color:var(--gold);}
.metric-value.bad{color:var(--red);}
.ing-block{background:var(--cream);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:12px;margin-bottom:10px;}
[data-dark] .ing-block{background:var(--cream2);}
.result-panel{background:linear-gradient(135deg,#F5871F 0%,#1A1A1A 100%);border-radius:14px;padding:16px;color:#FFFFFF;margin-top:14px;}
.result-panel table{width:100%;font-size:13px;color:rgba(255,248,238,.85);}
.result-panel td{padding:4px 0;}
.result-panel .tr-total td{border-top:1px solid rgba(255,255,255,.2);padding-top:8px;font-weight:700;font-size:15px;color:#FFF8EE;}
.rp-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px;}
.rp-m{background:rgba(255,255,255,.12);border-radius:10px;padding:10px;text-align:center;}
.rp-m-label{font-size:11px;opacity:.7;margin-bottom:2px;}
.rp-m-value{font-size:22px;font-weight:700;font-family:var(--font-round);}
.divider{border:none;border-top:1.5px solid var(--border);margin:12px 0;}
.ybox{background:var(--cream2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;}
.ybox .yl{font-size:11px;color:var(--text3);margin-bottom:3px;}
.ybox .yv{font-size:19px;font-weight:700;color:var(--brown-dark);}
.empty{text-align:center;padding:40px 20px;color:var(--text3);}
.empty .ei{font-size:48px;margin-bottom:12px;}
.empty p{font-size:15px;line-height:1.8;}
.empty-manual-link{display:inline-block;margin-top:14px;font-size:13px;color:var(--orange);text-decoration:none;border:1px solid var(--orange);border-radius:20px;padding:5px 14px;}
.empty-manual-link:hover{background:var(--orange-light);}
.toast{position:fixed;bottom:calc(var(--nav-h) + 16px);left:50%;transform:translateX(-50%) translateY(10px);background:#1A1A1A;color:#FFFFFF;padding:12px 20px;border-radius:18px;font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .2s,transform .2s;z-index:1100;width:max-content;max-width:min(90vw,440px);white-space:pre-line;text-align:center;line-height:1.55;overflow-wrap:anywhere;pointer-events:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* 🆕 APP FOOTER (Stripe審査通過用の法的リンク) */
.app-footer {
    text-align: center;
    padding: 32px 16px 24px;
    margin-top: 40px;
    border-top: 1px solid var(--border);
}
.footer-links {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-bottom: 12px;
}
.footer-links a {
    font-size: 13px;
    color: var(--text2);
    text-decoration: none;
    font-weight: 500;
}
.footer-links a:hover {
    color: var(--brown);
    text-decoration: underline;
}
.copyright {
    font-size: 11px;
    color: var(--text3);
}

/* DONUT CHART */
.donut-wrap{display:flex;align-items:center;gap:20px;margin-top:14px;}
.donut-svg{flex-shrink:0;}
.donut-legend{flex:1;}
.donut-legend-item{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.donut-legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.donut-legend-label{font-size:12px;color:var(--text3);}
.donut-legend-val{font-size:15px;font-weight:700;color:var(--text);margin-left:auto;}
.donut-center{font-family:var(--font-round);}
/* SIM PANEL */
.sim-panel{background:var(--cream2);border:1.5px solid var(--border);border-radius:14px;padding:16px;margin-top:12px;}
.sim-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px;}
.sim-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.sim-row label{font-size:12px;color:var(--text3);width:90px;flex-shrink:0;}
.sim-inp{flex:1;padding:10px 12px;font-size:18px;font-weight:700;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text);text-align:right;max-width:140px;}
[data-dark] .sim-inp{background:var(--cream2);}
.sim-inp:focus{outline:none;border-color:#F5871F;box-shadow:0 0 0 3px rgba(245,135,31,.15);}
.sim-result{background:#1A1A1A;border-radius:12px;padding:14px;margin-top:10px;color:#fff;}
.sim-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.sim-r-item{background:rgba(255,255,255,.08);border-radius:10px;padding:10px;text-align:center;}
.sim-r-label{font-size:11px;opacity:.65;margin-bottom:3px;}
.sim-r-val{font-size:20px;font-weight:700;font-family:var(--font-round);}
.sim-r-val.up{color:#4ADE9A;}
.sim-r-val.down{color:#FC8181;}
.sim-cta{display:block;width:100%;margin-top:10px;padding:13px;background:#F5871F;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;text-align:center;}
.sim-cta:active{transform:scale(.97);}

/* ═══ 仕込みモード ═══════════════════════════════════════ */
.cost-only{}
.qty-only{display:none;}
body[data-seizo] .cost-only{display:none!important;}
body[data-seizo] .qty-only{display:block!important;}
body[data-seizo] .qty-only-flex{display:flex!important;}
.qty-only-flex{display:none;}

/* モード切替ボタン */
.mode-toggle{
    display:flex;align-items:center;
    background:var(--cream2);border:1.5px solid var(--border);
    border-radius:50px;padding:3px;gap:2px;
}
.mode-toggle button{
    border:none;border-radius:50px;padding:5px 11px;
    font-size:12px;font-weight:700;cursor:pointer;
    background:transparent;color:var(--text3);
    transition:all .2s;white-space:nowrap;
}
.mode-toggle button.on{
    background:#F5871F;color:#fff;
    box-shadow:0 2px 8px rgba(245,135,31,.35);
}
/* 商品タブの並び替えセグメント */
.seg{display:inline-flex;background:var(--cream2);border:1px solid var(--border);border-radius:50px;padding:3px;gap:2px;margin-bottom:14px;}
.seg-btn{border:none;border-radius:50px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;background:transparent;color:var(--text3);font-family:var(--font);white-space:nowrap;}
.seg-btn.on{background:#F5871F;color:#fff;}

/* 仕込みモード時のページタイトル帯 */
body[data-seizo] .app-header{background:#1A1A1A;border-bottom-color:#F5871F;}
body[data-seizo] .app-header h1{color:#F5871F;}
body[data-seizo] .seizo-banner{display:flex;}
.seizo-banner{
    display:none;
    background:#F5871F;color:#fff;
    font-size:13px;font-weight:700;
    padding:8px 16px;align-items:center;gap:8px;
    position:sticky;top:var(--header-h);z-index:90;
}
.seizo-banner span{flex:1;}

/* 編集ロック（現場モード：閲覧専用） */
body[data-locked] .lock-banner{display:flex;}
.lock-banner{
    display:none;
    background:#4A2C2A;color:#fff;
    font-size:13px;font-weight:700;
    padding:8px 16px;align-items:center;gap:8px;
    position:sticky;top:var(--header-h);z-index:91;
}
.lock-banner span{flex:1;}
/* データ編集パネルの入力を無効化（仕込み計算・値上げシミュは除外） */
body[data-locked] #pane-master input,
body[data-locked] #pane-master select,
body[data-locked] #pane-master textarea,
body[data-locked] #pane-doughs input,
body[data-locked] #pane-doughs select,
body[data-locked] #pane-doughs textarea,
body[data-locked] #pane-jikomi input,
body[data-locked] #pane-jikomi select,
body[data-locked] #pane-jikomi textarea,
body[data-locked] #pane-products input:not(.sim-inp),
body[data-locked] #pane-products select,
body[data-locked] #pane-products textarea{
    pointer-events:none!important;opacity:.7;
}
/* 追加・削除・FAB を隠す */
body[data-locked] .fab{display:none!important;}
body[data-locked] #pane-master .btn-danger,
body[data-locked] #pane-doughs .btn-danger,
body[data-locked] #pane-jikomi .btn-danger,
body[data-locked] #pane-products .btn-danger,
/* モード変更PIN ダイアログ */
.pin-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:340;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .2s;}
.pin-overlay.open{opacity:1;pointer-events:auto;}
.pin-card{background:var(--cream,#fff);width:100%;max-width:360px;border-radius:20px;padding:24px 20px;box-shadow:0 14px 44px rgba(0,0,0,.28);}
.pin-title{font-family:var(--font-round);font-size:18px;font-weight:700;color:var(--brown-dark,#4A2C2A);margin-bottom:8px;text-align:center;}
.pin-desc{font-size:12px;color:var(--text3);line-height:1.6;margin-bottom:16px;text-align:center;}
.pin-field{margin-bottom:12px;}
.pin-field-label{font-size:12px;font-weight:700;color:var(--text3);margin-bottom:4px;display:block;}
.pin-input{width:100%;box-sizing:border-box;padding:12px;border:1.5px solid var(--border,#ebebeb);border-radius:12px;font-size:18px;text-align:center;letter-spacing:6px;font-family:var(--font);background:var(--cream2,#f7f7f7);color:var(--text);}
.pin-error{color:var(--red,#e53e3e);font-size:12px;min-height:16px;margin:2px 0 12px;text-align:center;}
.pin-forgot{display:block;text-align:center;font-size:12px;color:var(--brown,#F5871F);margin-top:14px;cursor:pointer;text-decoration:underline;}

body[data-locked] #pane-master .btn-ghost.btn-full,
body[data-locked] #pane-doughs .btn-ghost.btn-full,
body[data-locked] #pane-jikomi .btn-ghost.btn-full,
body[data-locked] #pane-products .btn-ghost.btn-full{display:none!important;}

/* 仕込みモードの重量表示を大きく */
body[data-seizo] .inp-ro{
    font-size:20px!important;
    padding:12px 10px!important;
    background:#FFF0E0!important;color:#D4700F!important;
}
[data-dark][data-seizo] .inp-ro{background:#2A1A08!important;color:#F5A54A!important;}

/* 仕込みモード: 一覧タブを非表示 */
/* 一覧タブ廃止により、仕込みモードでのタブ非表示は不要 */

/* 仕込みモード: 仕込み計画タブの金額関連を非表示 */
body[data-seizo] .shikomi-product-sell,
body[data-seizo] #sc-sell-total,
body[data-seizo] .shikomi-ing-cost,
body[data-seizo] .shikomi-dough-cost-row,
body[data-seizo] .shikomi-all-ing-cost,
body[data-seizo] .shikomi-total-cost,
body[data-seizo] .shikomi-cost-rate-note { display: none !important; }
/* 金額列を畳んでグラムを右端に */
body[data-seizo] .shikomi-ing-row,
body[data-seizo] .shikomi-all-ing-row { grid-template-columns: 1fr 90px; }
body[data-seizo] .cost-only[style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
}

/* ═══ 削除確認ダイアログ ═══════════════════════════════════ */
.confirm-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,.55);
    z-index:500;display:flex;align-items:flex-end;justify-content:center;
    opacity:0;pointer-events:none;transition:opacity .2s;
}
.confirm-overlay.open{opacity:1;pointer-events:all;}
.confirm-sheet{
    background:var(--cream);width:100%;max-width:540px;
    border-radius:24px 24px 0 0;
    padding:24px 20px calc(28px + env(safe-area-inset-bottom));
    transform:translateY(40px);
    transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.confirm-overlay.open .confirm-sheet{transform:translateY(0);}
.confirm-icon{font-size:44px;text-align:center;margin-bottom:10px;}
.confirm-title{font-size:18px;font-weight:700;text-align:center;color:var(--text);margin-bottom:6px;}
.confirm-msg{font-size:14px;color:var(--text3);text-align:center;line-height:1.6;margin-bottom:20px;}
.confirm-name{color:var(--text);font-weight:700;}
.confirm-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.confirm-cancel{
    padding:15px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
    background:transparent;color:var(--text2);font-size:16px;font-weight:600;
    cursor:pointer;transition:background .15s;
}
.confirm-cancel:active{background:var(--cream2);}
.confirm-ok{
    padding:15px;border:none;border-radius:var(--radius-sm);
    background:var(--red);color:#fff;font-size:16px;font-weight:700;
    cursor:pointer;transition:transform .1s,box-shadow .1s;
    box-shadow:0 3px 12px rgba(229,62,62,.35);
}
.confirm-ok:active{transform:scale(.97);box-shadow:none;}

/* ═══ 仕込みモード コンパクトレイアウト ══════════════════════ */
body[data-seizo] .card-body{padding:10px 12px;}
body[data-seizo] .card-head{padding:10px 12px;}
body[data-seizo] .ing-block{padding:8px 10px;margin-bottom:6px;}

body[data-seizo] .seizo-ing-row{
    display:grid;
    grid-template-columns:1fr 70px 90px 40px;
    gap:6px;
    align-items:center;
    background:var(--cream2);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    padding:8px 10px;
    margin-bottom:6px;
}
body[data-seizo] .seizo-ing-row .lbl{
    font-size:10px;margin-bottom:2px;
}
body[data-seizo] .seizo-ing-row .inp,
body[data-seizo] .seizo-ing-row .inp-sm{
    padding:8px 8px;
    font-size:15px;
}
body[data-seizo] .seizo-ing-row .inp-ro{
    font-size:17px!important;
    padding:8px 8px!important;
    text-align:center;
    font-weight:700;
}
.seizo-ing-row{}

body[data-seizo] .seizo-flour-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-bottom:10px;
}
body[data-seizo] .seizo-flour-row .inp{
    padding:10px 10px;font-size:17px;
}
body[data-seizo] .sec-title{font-size:17px;}
body[data-seizo] .sec-sub{font-size:12px;margin-bottom:10px;}
body[data-seizo] .card{margin-bottom:8px;}
body[data-seizo] .btn-icon{width:36px;height:36px;font-size:14px;}
body[data-seizo] .btn-sm{min-height:36px;padding:7px 12px;font-size:13px;}

body[data-seizo] .seizo-yield-row{
    display:flex;align-items:center;gap:10px;
    margin-bottom:10px;
}
body[data-seizo] .seizo-yield-row label{
    font-size:13px;font-weight:600;color:var(--text2);
    white-space:nowrap;
}
body[data-seizo] .seizo-yield-row .inp{
    width:90px;padding:9px 10px;font-size:17px;text-align:center;
}
body[data-seizo] .seizo-yield-row .yv-big{
    font-size:28px;font-weight:700;color:#F5871F;
    font-family:var(--font-round);
}
body[data-seizo] .seizo-yield-row .yv-unit{font-size:16px;color:var(--text3);}

/* ═══ 統一材料行レイアウト (ing-row-compact) ══════════════════ */
.ing-row-compact{
    display:grid;
    grid-template-columns: 1fr 68px 80px 80px 100px;
    gap:6px;
    align-items:end;
    background:var(--cream2);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    padding:10px;
    margin-bottom:6px;
}
.ing-row-jikomi{
    grid-template-columns: 1fr 68px 56px 72px 72px 100px;
}
.irc-actions{display:flex;gap:4px;align-items:flex-end;}
.irc-move{width:28px!important;height:40px;min-height:40px;padding:0;font-size:14px;flex-shrink:0;}
.irc-del{width:28px!important;height:40px;min-height:40px;margin-bottom:0;}
.ing-row-compact .lbl{
    font-size:11px;margin-bottom:3px;
}
.ing-row-compact .inp,
.ing-row-compact .inp-sm{
    padding:9px 8px;font-size:15px;
}
.ing-row-compact .inp-ro{
    font-size:15px!important;
    padding:9px 8px!important;
    text-align:center;
}
.ing-row-compact select.inp{
    padding:8px 4px;
}
.ing-row-compact .irc-del{
    margin-bottom:0;
    width:28px!important;height:40px;min-height:40px;
    align-self:flex-end;
}

body[data-seizo] .ing-row-compact{
    grid-template-columns: 1fr 68px 80px 100px;
    padding:8px;gap:5px;
}
body[data-seizo] .ing-row-jikomi{
    grid-template-columns: 1fr 72px 52px 78px 100px;
}
body[data-seizo] .ing-row-compact .inp,
body[data-seizo] .ing-row-compact .inp-sm{
    padding:8px 7px;font-size:15px;
}
body[data-seizo] .ing-row-compact .inp-ro{
    font-size:17px!important;
    padding:8px 7px!important;
    font-weight:700;
}
body[data-seizo] .ing-row-compact .lbl{
    font-size:10px;margin-bottom:2px;
}
body[data-seizo] .ing-row-compact .irc-del{
    width:36px;height:36px;min-height:36px;font-size:13px;
}

/* ─── 材料行 2行レイアウト（スマホ: 材料名を1行目に） ───── */
@media (max-width:520px){
  .ing-row-compact{display:flex!important;flex-wrap:wrap;gap:4px;align-items:flex-end;}
  .ing-row-compact .irc-name{flex:0 0 100%;}
  .ing-row-compact .irc-pct,
  .ing-row-compact .irc-unit,
  .ing-row-compact .irc-qty,
  .ing-row-compact .irc-cost{flex:1 1 42px;}
  .ing-row-compact .irc-actions{flex:0 0 auto;}
  /* 2行目: 入力欄をコンパクトに（1行目の材料名セレクトはそのまま） */
  .ing-row-compact .irc-pct .inp,.ing-row-compact .irc-pct .inp-sm,
  .ing-row-compact .irc-unit .inp,.ing-row-compact .irc-unit .inp-sm,
  .ing-row-compact .irc-qty .inp,.ing-row-compact .irc-qty .inp-sm,
  .ing-row-compact .irc-cost .inp,.ing-row-compact .irc-cost .inp-sm{padding:7px 4px;font-size:13px;}
  .ing-row-compact .irc-qty .inp-ro,
  .ing-row-compact .irc-cost .inp-ro{font-size:13px!important;padding:7px 4px!important;}
  .ing-row-compact .irc-unit select.inp{padding:6px 2px;font-size:13px;}
  .ing-row-compact .irc-pct .lbl,.ing-row-compact .irc-unit .lbl,
  .ing-row-compact .irc-qty .lbl,.ing-row-compact .irc-cost .lbl{font-size:10px;margin-bottom:2px;}
}

.flour-row{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;
}
body[data-seizo] .flour-row .inp{
    padding:10px 10px;font-size:17px;
}
.ing-section-label{
    font-size:13px;font-weight:600;color:var(--text2);margin-bottom:8px;
}
body[data-seizo] .metrics.metrics-3{
    grid-template-columns:1fr;
}
body[data-seizo] .metrics.metrics-3 .metric:first-child{
    background:var(--brown-pale);
    border-color:#F5871F;
}
body[data-seizo] .metrics.metrics-3 .metric:first-child .metric-value{
    font-size:28px;color:#F5871F;
}
body[data-seizo] .card-body{padding:10px 12px;}
body[data-seizo] .card-head{padding:10px 12px;}
body[data-seizo] .card{margin-bottom:8px;border-radius:12px;}
body[data-seizo] .btn-sm{min-height:36px;padding:7px 12px;font-size:13px;}
body[data-seizo] .flour-row{margin-bottom:10px;}
body[data-seizo] .ing-section-label{font-size:12px;margin-bottom:6px;}

/* ═══ SaaS 追加スタイル ═══════════════════════════════════ */
#auth-screen{position:fixed;inset:0;background:var(--cream);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;}
.auth-logo{font-size:56px;margin-bottom:12px;animation:auth-bounce 2s ease-in-out infinite;}
@keyframes auth-bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.auth-title{font-family:var(--font-round);font-size:28px;font-weight:700;color:#F5871F;margin-bottom:6px;}
.auth-sub{color:var(--text3);font-size:14px;line-height:1.7;margin-bottom:24px;text-align:center;}
.auth-features{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:320px;margin-bottom:28px;}
.auth-feature{background:var(--cream2);border-radius:12px;padding:10px;display:flex;align-items:flex-start;gap:8px;}
.auth-feature-icon{font-size:18px;flex-shrink:0;}
.auth-feature-text{font-size:11px;color:var(--text2);line-height:1.5;}
.auth-feature-text strong{display:block;color:var(--text);font-size:12px;margin-bottom:1px;}
.auth-google-btn{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid #e0e0e0;border-radius:50px;padding:14px 24px;font-size:15px;font-weight:700;cursor:pointer;font-family:var(--font);box-shadow:0 3px 16px rgba(0,0,0,.10);width:100%;max-width:300px;justify-content:center;transition:box-shadow .2s,transform .15s;color:#1A1A1A;}
.auth-google-btn:hover{box-shadow:0 6px 24px rgba(0,0,0,.15);transform:translateY(-1px);}
.auth-google-btn:active{transform:scale(.97);}
.auth-demo-btn{display:flex;align-items:center;gap:10px;background:var(--brown-pale,#FFF0E0);border:2px solid #F5871F;border-radius:50px;padding:14px 24px;font-size:15px;font-weight:700;cursor:pointer;font-family:var(--font);width:100%;max-width:300px;justify-content:center;transition:box-shadow .2s,transform .15s;color:#D4700F;margin-top:12px;}
.auth-demo-btn:hover{box-shadow:0 4px 20px rgba(245,135,31,.25);transform:translateY(-1px);}
.auth-demo-btn:active{transform:scale(.97);}
.auth-guest-link{color:var(--text3);font-size:12px;margin-top:16px;text-align:center;}
.auth-guest-link a{color:#F5871F;cursor:pointer;text-decoration:none;font-weight:500;}
.auth-backup-notice{display:none;background:#FFF8F0;border:1.5px solid #F5871F;border-radius:14px;padding:12px 14px;margin-bottom:14px;width:100%;max-width:320px;box-sizing:border-box;}
.auth-backup-title{font-size:13px;font-weight:700;color:#D4700F;margin-bottom:6px;}
.auth-backup-body{font-size:12px;color:#7A5C3A;line-height:1.6;margin-bottom:10px;}
.auth-backup-btn{width:100%;padding:9px;background:#F5871F;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font);}

.plan-chip{font-size:10px;font-weight:800;padding:4px 9px;border-radius:20px;letter-spacing:.05em;cursor:pointer;transition:transform .15s;border:none;font-family:var(--font);}
.plan-chip:active{transform:scale(.95);}
.plan-chip.free{background:#F0F0F0;color:#888;}
.plan-chip.start{background:#EAF2FB;color:#1A5FA8;}
.plan-chip.standard{background:linear-gradient(120deg,#FFF0E0,#FFE4C4);color:#D4700F;}
.plan-chip.pro{background:linear-gradient(120deg,#1A1A1A,#333);color:#F5871F;}
.plan-chip.guest{background:#EFEFEF;color:#888;border:1.5px dashed #bbb;}
.user-avatar{width:34px;height:34px;border-radius:50%;background:#F5871F;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;border:2px solid var(--border);}
.user-avatar img{width:100%;height:100%;object-fit:cover;}
.user-avatar.login-pill{width:auto;border-radius:17px;padding:0 14px;font-size:13px;letter-spacing:.02em;overflow:visible;white-space:nowrap;}

/* スマホはヘッダーが詰まりやすいので要素を引き締める（機能は減らさない） */
@media (max-width:480px){
  .app-header{padding:0 10px;}
  .header-actions{gap:5px;}
  .app-header .hbtn{width:34px;height:34px;font-size:17px;}
  /* 同期バッジはスマホではアイコン＋色のみ表示（意味はタップ説明で確認） */
  #sync-time-badge .sync-txt{display:none;}
}

.upgrade-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:600;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.upgrade-overlay.open{opacity:1;pointer-events:all;}
.upgrade-sheet{background:var(--cream);width:100%;max-width:540px;border-radius:24px 24px 0 0;padding:20px 16px calc(32px + env(safe-area-inset-bottom));transform:translateY(60px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);max-height:90vh;overflow-y:auto;}
.upgrade-overlay.open .upgrade-sheet{transform:translateY(0);}
.upgrade-handle{width:40px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 20px;}
.upgrade-header{text-align:center;margin-bottom:12px;}
.upgrade-header h2{font-family:var(--font-round);font-size:20px;font-weight:700;color:var(--text);margin-bottom:4px;}
.upgrade-header p{font-size:13px;color:var(--text3);line-height:1.6;}
.upgrade-reason{font-size:13px;color:var(--red);text-align:center;margin-bottom:10px;font-weight:600;min-height:18px;}
.plan-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.plan-card{border:2px solid var(--border);border-radius:var(--radius);padding:14px;cursor:pointer;transition:border-color .15s,transform .1s,box-shadow .15s;position:relative;overflow:hidden;}
.plan-card:active{transform:scale(.99);}
.plan-card.featured{border-color:#F5871F;box-shadow:0 4px 20px rgba(245,135,31,.2);}
.plan-card.plan-dark{background:#1A1A1A;border-color:#333;}
.plan-recommended{position:absolute;top:0;right:0;background:#F5871F;color:#fff;font-size:10px;font-weight:700;padding:4px 12px;border-radius:0 var(--radius) 0 10px;}
.plan-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.plan-name{font-family:var(--font-round);font-size:16px;font-weight:700;color:var(--text);}
.plan-price-wrap{text-align:right;}
.plan-price{font-family:var(--font-round);font-size:22px;font-weight:700;color:#F5871F;}
.plan-price sup{font-size:13px;}.plan-price sub{font-size:11px;color:var(--text3);}
.plan-annual{font-size:10px;color:var(--text3);}
.plan-features-list{display:flex;flex-direction:column;gap:4px;}
.plan-feature-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);}
.plan-feature-row.pf-yes::before{content:'✓';color:var(--green);font-weight:700;flex-shrink:0;width:14px;}
.plan-feature-row.pf-no::before{content:'—';color:var(--text3);font-weight:400;flex-shrink:0;width:14px;}
.plan-feature-row.pf-limit::before{content:'△';color:var(--gold);font-weight:700;flex-shrink:0;width:14px;}
.plan-cta-btn{width:100%;padding:13px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;margin-top:10px;transition:transform .1s,box-shadow .15s;}
.plan-cta-btn:active{transform:scale(.97);}
.plan-cta-btn.pctb-primary{background:#F5871F;color:#fff;box-shadow:0 4px 16px rgba(245,135,31,.4);}
.plan-cta-btn.pctb-secondary{background:var(--cream2);color:var(--text);border:1.5px solid var(--border);}
.plan-cta-btn.pctb-current{background:var(--green-bg);color:var(--green);cursor:default;}

.feature-lock-banner{background:var(--cream2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;display:flex;align-items:center;gap:10px;margin:12px 0;cursor:pointer;transition:background .15s;}
.feature-lock-banner:hover{background:#FFF0E0;}
.feature-lock-icon{font-size:20px;flex-shrink:0;}
.feature-lock-text{flex:1;}
.feature-lock-text strong{display:block;font-size:13px;color:var(--text);margin-bottom:2px;}
.feature-lock-text span{font-size:11px;color:var(--text3);}
.feature-lock-badge{background:#F5871F;color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;white-space:nowrap;flex-shrink:0;}

.limit-warning-bar{background:linear-gradient(135deg,#FFF0E0,#FFE4C4);border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:8px;margin-bottom:10px;cursor:pointer;}
.lwb-text{flex:1;font-size:12px;color:#8B5E0A;font-weight:500;}
.lwb-btn{background:#F5871F;color:#fff;border:none;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer;}
.usage-progress-wrap{margin-bottom:10px;}
.usage-progress-label{display:flex;justify-content:space-between;font-size:12px;color:var(--text3);margin-bottom:4px;}
.usage-progress-bar{height:7px;background:var(--border);border-radius:4px;overflow:hidden;}
.usage-progress-fill{height:100%;border-radius:4px;transition:width .5s;}
.usage-progress-fill.upf-ok{background:var(--green);}
.usage-progress-fill.upf-warn{background:var(--gold);}
.usage-progress-fill.upf-full{background:var(--red);}

.notif-btn{position:relative;}.notif-badge{position:absolute;top:-3px;right:-3px;width:10px;height:10px;background:#E53935;border-radius:50%;border:2px solid var(--cream);pointer-events:none;}.notif-badge.hidden{display:none;}
#notif-sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:700;opacity:0;pointer-events:none;transition:opacity .2s;}
#notif-sheet-overlay.open{opacity:1;pointer-events:all;}
.notif-sheet{position:absolute;bottom:0;left:50%;transform:translateX(-50%) translateY(60px);width:100%;max-width:540px;background:var(--cream);border-radius:24px 24px 0 0;padding:20px 16px calc(28px + env(safe-area-inset-bottom));transition:transform .3s cubic-bezier(.34,1.56,.64,1);max-height:75vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
#notif-sheet-overlay.open .notif-sheet{transform:translateX(-50%) translateY(0);}
.notif-sheet-title{font-family:var(--font-round);font-size:17px;font-weight:700;color:var(--text);margin-bottom:16px;}
.notif-item{background:var(--cream2);border-radius:var(--radius-sm);padding:14px;margin-bottom:10px;border:1.5px solid transparent;}
.notif-item.notif-new{border-color:#F5871F;}
.notif-item-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.notif-version{font-size:11px;font-weight:700;background:#F5871F;color:#fff;border-radius:6px;padding:2px 7px;}
.notif-date{font-size:11px;color:var(--text3);}
.notif-new-badge{font-size:10px;background:#FFF3E0;color:#F5871F;border-radius:4px;padding:1px 6px;font-weight:700;}
.notif-item-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px;}
.notif-item-body{margin:0;padding:0;font-size:13px;color:var(--text2);line-height:1.7;}
.notif-item-body li{list-style:none;padding-left:14px;position:relative;}
.notif-item-body li::before{content:'·';position:absolute;left:4px;color:#F5871F;font-weight:700;}
#user-sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:700;opacity:0;pointer-events:none;transition:opacity .2s;}
#user-sheet-overlay.open{opacity:1;pointer-events:all;}
.user-sheet{position:absolute;bottom:0;left:50%;transform:translateX(-50%) translateY(60px);width:100%;max-width:540px;background:var(--cream);border-radius:24px 24px 0 0;padding:20px 16px calc(28px + env(safe-area-inset-bottom));transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
#user-sheet-overlay.open .user-sheet{transform:translateX(-50%) translateY(0);}
#user-sheet-avatar{width:60px;height:60px;border-radius:50%;background:#F5871F;color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;border:3px solid var(--border);overflow:hidden;}
#user-sheet-name{font-family:var(--font-round);font-size:17px;font-weight:700;text-align:center;color:var(--text);}
#user-sheet-email{font-size:12px;color:var(--text3);text-align:center;margin:4px 0 14px;}
.user-sheet-plan-row{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--cream2);border-radius:12px;padding:10px;margin-bottom:14px;}
.user-sheet-plan-label{font-size:12px;color:var(--text3);}
#user-sheet-plan-name{font-family:var(--font-round);font-size:15px;font-weight:700;color:#F5871F;}
.user-sheet-menu{display:flex;flex-direction:column;gap:6px;}
.user-sheet-menu-item{display:flex;align-items:center;gap:10px;padding:13px 14px;background:var(--cream2);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;border:none;width:100%;font-size:14px;font-weight:500;color:var(--text);font-family:var(--font);text-align:left;}
.user-sheet-menu-item:hover{background:#F0F0F0;}
.user-sheet-menu-item.usm-danger{color:var(--red);}
.user-sheet-menu-icon{font-size:18px;width:22px;text-align:center;}

.lock-blur-container {
    position: relative;
    overflow: hidden;
}
.is-locked .lock-blur-target {
    filter: blur(2px);
    pointer-events: none;
    user-select: none;
    opacity: 0.6;
}
.lock-overlay-badge {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(26, 26, 26, 0.75);
    color: #fff;
    padding: 6px 14px;
    border-radius: 30px;
    font-size: 11px;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    border: 1px solid #F5871F;
    white-space: nowrap;
    z-index: 10;
    cursor: pointer;
}
.is-locked .lock-overlay-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* ═══ 仕込み計算（Pro機能）═══════════════════════════════ */
.shikomi-unit-bar {
    display: flex; align-items: center; gap: 8px;
    background: var(--cream2); border-radius: 50px;
    padding: 4px 6px; margin-bottom: 16px;
}
.shikomi-unit-bar label { font-size: 12px; color: var(--text3); padding: 0 6px; }
.unit-btn {
    border: none; border-radius: 50px; padding: 6px 14px;
    font-size: 12px; font-weight: 700; cursor: pointer;
    background: transparent; color: var(--text3);
    transition: all .2s; font-family: var(--font);
}
.unit-btn.on { background: #1A1A1A; color: #F5871F; }

.shikomi-add-row {
    display: grid; grid-template-columns: 1fr 90px 40px;
    gap: 8px; align-items: end; margin-bottom: 8px;
}
.shikomi-add-row .lbl { font-size: 12px; color: var(--text3); display: block; margin-bottom: 4px; }

.shikomi-product-list { margin-bottom: 16px; }
.shikomi-product-item {
    display: grid; grid-template-columns: 1fr 80px 40px;
    gap: 8px; align-items: center;
    background: var(--cream2); border: 1.5px solid var(--border);
    border-radius: var(--radius-sm); padding: 10px 12px; margin-bottom: 6px;
}
.shikomi-product-name { font-size: 14px; font-weight: 600; color: var(--text); }
.shikomi-product-count {
    font-family: var(--font-round); font-size: 20px; font-weight: 700;
    color: #F5871F; text-align: center;
}
.shikomi-product-count input {
    width: 100%; text-align: center; padding: 8px 4px; font-size: 20px;
    font-weight: 700; font-family: var(--font-round);
    border: 1.5px solid var(--border); border-radius: 8px;
    background: #fff; color: #F5871F;
}
[data-dark] .shikomi-product-count input { background: var(--cream2); }
.shikomi-product-count input:focus { outline: none; border-color: #F5871F; }

/* 生地セクション */
.shikomi-dough-section {
    background: linear-gradient(135deg, #1A1A1A 0%, #2A1A08 100%);
    border-radius: var(--radius); padding: 16px; margin-bottom: 12px; color: #fff;
}
.shikomi-dough-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
}
.shikomi-dough-name {
    font-family: var(--font-round); font-size: 17px; font-weight: 700; color: #F5871F;
}
.shikomi-dough-sub { font-size: 12px; color: rgba(255,255,255,.5); margin-top: 2px; }

.shikomi-flour-needed {
    font-size: 13px; color: rgba(255,255,255,.6); margin-bottom: 8px;
}
.shikomi-flour-needed strong { color: rgba(255,255,255,.9); }

/* キリ番候補 */
.kiri-candidates { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.kiri-btn {
    flex: 1; min-width: 80px; border: 2px solid rgba(255,255,255,.2);
    border-radius: 12px; padding: 10px 8px; cursor: pointer;
    background: rgba(255,255,255,.07); transition: all .15s;
    text-align: center; font-family: var(--font);
}
.kiri-btn.selected { border-color: #F5871F; background: rgba(245,135,31,.2); }
.kiri-btn:active { transform: scale(.96); }
.kiri-btn-kg {
    font-family: var(--font-round); font-size: 20px; font-weight: 700; color: #F5871F;
}
.kiri-btn-label { font-size: 10px; color: rgba(255,255,255,.5); margin-top: 2px; }
.kiri-btn-surplus { font-size: 11px; color: #4ADE9A; margin-top: 3px; font-weight: 600; }

/* 材料リスト（生地内） */
.shikomi-ing-list { border-top: 1px solid rgba(255,255,255,.1); padding-top: 12px; }
.shikomi-ing-row {
    display: grid; grid-template-columns: 1fr 90px 60px; align-items: center; column-gap: 8px;
    padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.06);
    font-size: 13px;
}
.shikomi-ing-row:last-child { border-bottom: none; }
.shikomi-ing-name { color: rgba(255,255,255,.8); }
.shikomi-ing-qty { font-weight: 700; color: #fff; font-family: var(--font-round); text-align: right; }
.shikomi-ing-cost { color: rgba(255,255,255,.45); font-size: 12px; text-align: right; }

/* 合計エリア */
.shikomi-total-card {
    background: var(--cream2); border: 2px solid #F5871F;
    border-radius: var(--radius); padding: 16px; margin-top: 4px;
}
.shikomi-total-title {
    font-family: var(--font-round); font-size: 15px; font-weight: 700;
    color: var(--text); margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
}
.shikomi-all-ing-row {
    display: grid; grid-template-columns: 1fr 90px 60px; align-items: center; column-gap: 8px;
    padding: 7px 0; border-bottom: 1px solid var(--border);
    font-size: 13px;
}
.shikomi-all-ing-row:last-of-type { border-bottom: none; }
.shikomi-all-ing-name { color: var(--text2); font-weight: 500; }
.shikomi-all-ing-qty { font-weight: 700; color: var(--text); font-family: var(--font-round); text-align: right; }
.shikomi-all-ing-cost { color: var(--text3); font-size: 12px; text-align: right; }
.shikomi-total-cost {
    margin-top: 12px; padding-top: 12px; border-top: 2px solid #F5871F;
    display: flex; align-items: baseline; justify-content: space-between;
}
.shikomi-total-cost-label { font-size: 13px; color: var(--text3); }
.shikomi-total-cost-val {
    font-family: var(--font-round); font-size: 28px; font-weight: 700; color: #F5871F;
}

.shikomi-cost-rate-note { font-size: 11px; color: var(--text3); margin-top: 6px; text-align: right; }

/* 保存済みプラン */
.sc-plans-section {
    background: var(--cream2); border: 1.5px solid var(--border);
    border-radius: var(--radius); padding: 14px; margin-bottom: 16px;
}
.sc-plans-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 10px;
}
.sc-plans-title {
    font-size: 13px; font-weight: 700; color: var(--text2);
}
.sc-plans-empty {
    font-size: 12px; color: var(--text3); text-align: center;
    padding: 10px 0; line-height: 1.7;
}
.sc-plan-item {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 0; border-bottom: 1px solid var(--border);
}
.sc-plan-item:last-child { border-bottom: none; }
.sc-plan-info { flex: 1; min-width: 0; }
.sc-plan-name {
    font-size: 14px; font-weight: 600; color: var(--text);
    display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sc-plan-meta { font-size: 11px; color: var(--text3); display: block; margin-top: 1px; }

/* ⑤ タイムライン */
.shikomi-plan-hint {
    text-align: center; padding: 20px; margin-top: 12px;
    background: var(--cream2); border-radius: var(--radius);
    border: 2px dashed var(--border);
}
.shikomi-timeline-card {
    background: var(--cream2); border: 2px solid #4C9AF5;
    border-radius: var(--radius); padding: 16px; margin-top: 12px;
}
.shikomi-timeline-card .shikomi-total-title { color: #4C9AF5; }
.shikomi-timeline-row {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 0; border-bottom: 1px solid var(--border);
    font-size: 14px;
}
.shikomi-timeline-row:last-child { border-bottom: none; }
.shikomi-timeline-time {
    font-family: var(--font-round); font-size: 18px; font-weight: 700;
    color: #4C9AF5; min-width: 58px;
}
.shikomi-timeline-name { flex: 1; font-weight: 600; color: var(--text); }
.shikomi-timeline-kg {
    font-size: 13px; font-weight: 700; color: var(--text2);
    background: var(--cream); border-radius: 50px;
    padding: 3px 10px; border: 1px solid var(--border);
}

/* ⑥ 分割リスト */
.shikomi-divide-card {
    background: var(--cream2); border: 2px solid #4CAF82;
    border-radius: var(--radius); padding: 16px; margin-top: 12px;
}
.shikomi-divide-card .shikomi-total-title { color: #4CAF82; }
.shikomi-divide-dough { margin-bottom: 14px; }
.shikomi-divide-dough:last-child { margin-bottom: 0; }
.shikomi-divide-dough-name {
    font-size: 13px; font-weight: 700; color: #F5871F;
    margin-bottom: 6px; padding-bottom: 4px;
    border-bottom: 1px solid var(--border);
}
.shikomi-divide-row {
    padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 13px;
}
.shikomi-divide-row:last-child { border-bottom: none; }
.shikomi-divide-left { display: flex; flex-direction: column; gap: 3px; }
.shikomi-divide-main { display: flex; align-items: center; gap: 6px; }
.shikomi-divide-weight {
    font-family: var(--font-round); font-size: 18px; font-weight: 700; color: var(--text);
}
.shikomi-divide-x { color: var(--text3); font-size: 12px; }
.shikomi-divide-count {
    font-family: var(--font-round); font-size: 18px; font-weight: 700; color: var(--text);
    min-width: 44px;
}
.shikomi-divide-total {
    font-size: 12px; color: var(--text3);
    background: var(--cream); border-radius: 50px;
    padding: 2px 8px; border: 1px solid var(--border);
    min-width: 70px; text-align: right;
}
.shikomi-divide-products {
    font-size: 11px; color: var(--text3); padding-left: 2px;
}
.shikomi-product-sell { font-size: 12px; color: #4CAF82; font-weight: 600; margin-top: 2px; }
.shikomi-sell-total-row {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 10px; padding: 10px 12px;
    background: var(--cream2); border: 1.5px solid #4CAF82;
    border-radius: var(--radius-sm);
}
.shikomi-sell-total-row span { font-size: 13px; color: var(--text2); font-weight: 600; }
.shikomi-sell-total-val { font-family: var(--font-round); font-size: 22px; font-weight: 700; color: #4CAF82; }

/* Proロック画面 */
.pro-lock-screen {
    text-align: center; padding: 60px 20px;
}
.pro-lock-icon { font-size: 56px; margin-bottom: 16px; }
.pro-lock-title {
    font-family: var(--font-round); font-size: 22px; font-weight: 700;
    color: var(--text); margin-bottom: 8px;
}
.pro-lock-sub { font-size: 14px; color: var(--text3); line-height: 1.8; margin-bottom: 28px; }
.pro-lock-btn {
    display: inline-block; background: linear-gradient(135deg, #1A1A1A, #333);
    color: #F5871F; border: none; border-radius: 50px; padding: 16px 32px;
    font-size: 16px; font-weight: 700; cursor: pointer; font-family: var(--font);
    box-shadow: 0 4px 20px rgba(0,0,0,.3);
}
.pro-lock-features {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
    margin: 24px 0; text-align: left;
}
.pro-lock-feature {
    background: var(--cream2); border-radius: 12px; padding: 12px;
    font-size: 13px; color: var(--text2); display: flex; gap: 8px; align-items: flex-start;
}
.empty-shikomi {
    text-align: center; padding: 40px 20px; color: var(--text3);
    background: var(--cream2); border-radius: var(--radius);
    border: 2px dashed var(--border);
}
/* ── 生産計画保存 ─────────────── */
.plan-save-section{background:var(--cream2);border-radius:var(--radius);padding:14px;border:1.5px solid var(--border);}
.plan-save-row{display:flex;gap:8px;align-items:center;}
.plan-name-inp{flex:1;min-width:0;}
.saved-plans-list{display:flex;flex-direction:column;gap:8px;}
.saved-plan-card{background:var(--cream);border:1.5px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;align-items:center;gap:10px;transition:border-color .15s;}
.saved-plan-card:hover{border-color:var(--brown);}
.saved-plan-info{flex:1;min-width:0;}
.saved-plan-name-edit{font-size:14px;font-weight:700;color:var(--brown-dark);background:transparent;border:none;outline:none;width:100%;padding:2px 0;cursor:text;font-family:var(--font);border-radius:4px;transition:background .1s,padding .1s;}
.saved-plan-name-edit:focus{background:var(--cream2);padding:2px 6px;}
.saved-plan-meta{font-size:11px;color:var(--text3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.saved-plan-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}

/* ═══════════════════════════════════════════════════════════════
   PC / デスクトップ層（Phase 1: シェル + 材料ペイン）
   min-width:900px 未満はモバイルUIに一切影響しない（上書きのみ・削除なし）
   ═══════════════════════════════════════════════════════════════ */
:root{ --side-w:220px; }
.side-index{ display:none; }  /* 既定で非表示（モバイル）。デスクトップでのみ表示 */
@keyframes cardFlash{ 0%{box-shadow:0 0 0 0 rgba(245,135,31,0);} 12%{box-shadow:0 0 0 3px rgba(245,135,31,.6);} 70%{box-shadow:0 0 0 3px rgba(245,135,31,.5);} 100%{box-shadow:0 0 0 0 rgba(245,135,31,0);} }
.card-flash{ animation:cardFlash 1.8s ease; }

@media (min-width:900px){
  /* 1) 幅ロック解除（body の 540px 固定を外す） */
  body{ max-width:none; }

  /* 2) bottom-nav → 左サイドバー（既存ボタン/switchPane をそのまま流用） */
  .bottom-nav{
    top:0; bottom:0; left:0; transform:none;
    width:var(--side-w); max-width:none; height:100vh;
    flex-direction:column; justify-content:flex-start; align-items:stretch;
    padding:14px 0 24px; box-shadow:2px 0 12px rgba(0,0,0,.18);
  }
  .bottom-nav::before{
    content:"🍞 BakeryNotePro"; display:block;
    font-family:var(--font-round); color:#F5871F; font-weight:700;
    font-size:16px; letter-spacing:.02em; padding:10px 20px 18px;
  }
  .nav-btn{
    flex:0 0 auto; flex-direction:row; justify-content:flex-start;
    gap:12px; width:auto; margin:2px 12px; padding:12px 16px;
    font-size:14px; border-radius:10px;
  }
  .nav-btn svg{ width:20px; height:20px; }
  .nav-btn:hover{ color:#F5871F; background:rgba(245,135,31,.10); }

  /* 3) アプリ本体を右へオフセット（auth-screen は表示時 header/nav が
        display:none のため影響を受けない＝JS変更不要） */
  .app-header{ margin-left:var(--side-w); justify-content:flex-end; }
  .app-header h1{ display:none; }  /* ブランドはサイドバー上部(::before)に集約し重複解消 */
  .seizo-banner, .lock-banner{ margin-left:var(--side-w); }
  .main-content{
    margin-left:var(--side-w); max-width:none;  /* 管理画面なので全幅を活用 */
    padding:24px 32px 56px;  /* 下部ナビ用の巨大余白を通常値へ */
  }

  /* 4) FAB / toast 位置調整（下部ナビが無くなるため） */
  .fab{ right:28px; bottom:28px; }
  .toast{ left:calc(50% + var(--side-w) / 2); }  /* コンテンツ中央へ */

  /* 5) 各リスト = カード多列（一括入力の一覧性UP） */
  #master-list, #dough-list, #jikomi-list, #product-list{
    display:grid; gap:14px; align-items:start;
    grid-template-columns:repeat(auto-fill, minmax(340px, 1fr));
  }

  /* 6) シート類 → 中央モーダル化
        flex系overlay は align-items:center で中央寄せ。
        settings/apps はパネルにインラインstyleがあるため !important。 */
  .confirm-overlay, .upgrade-overlay{ align-items:center; }
  #settings-sheet-overlay, #apps-sheet-overlay{ align-items:center !important; }
  .confirm-sheet, .upgrade-sheet{ border-radius:20px; }
  #settings-sheet, #apps-sheet{ border-radius:20px !important; }

  /* notif/user は絶対配置（bottom:0;left:50%）のため位置を中央へ差し替え */
  .notif-sheet, .user-sheet{
    top:50%; bottom:auto; border-radius:20px;
    transform:translate(-50%, -42%);
  }
  #notif-sheet-overlay.open .notif-sheet,
  #user-sheet-overlay.open .user-sheet{ transform:translate(-50%, -50%); }

  /* 7) 第2サイドバー: インデックス（各ペイン内のスティッキー列） */
  .pane-with-index{ display:flex; align-items:flex-start; gap:20px; }
  .pane-with-index > div{ flex:1 1 auto; min-width:0; }   /* リスト側（asideは除外） */
  .side-index{
    display:block; flex:0 0 232px; align-self:flex-start;
    position:sticky; top:calc(var(--header-h) + 16px);
    max-height:calc(100vh - var(--header-h) - 32px); overflow:auto;
    background:var(--cream2); border:1.5px solid var(--border);
    border-radius:var(--radius-sm); padding:12px 10px;
  }
  .side-index-title{ font-family:var(--font-round); font-size:13px; font-weight:700; color:var(--text2); padding:2px 8px 10px; display:flex; align-items:center; gap:6px; }
  .side-index-count{ font-size:11px; color:var(--text3); background:var(--cream); border:1px solid var(--border); border-radius:20px; padding:1px 7px; }
  .side-index-links{ display:flex; flex-direction:column; gap:1px; }
  .side-index-link{ display:block; font-size:13px; color:var(--text2); padding:7px 8px; border-radius:8px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .side-index-link:hover{ background:var(--brown-pale); color:var(--brown-dark); }
  .side-index:empty{ display:none; }  /* 0件時は空箱を出さない */
  .card{ scroll-margin-top:76px; }

  /* 8) 仕込み計画: 全幅での間延びを2カラム化（左=操作 / 右=結果） */
  .sc-layout{ display:flex; align-items:flex-start; gap:20px; max-width:1160px; }
  .sc-left{ flex:0 0 380px; }
  .sc-right{ flex:1 1 auto; min-width:0; }
}

