/* フレサントゥール 管理画面 (スマホ優先) */
:root { --brown:#7B6D5F; --paper:#FDFDFD; --cream:#F7F2EF; --sand:#CCC3BB; --gold:#BE964B; --ink:#36220B; --red:#B04A3A; --green:#4F7D5A; --blue:#4C6A8C; --line:#E6DFD9; }
* { box-sizing:border-box; } html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"Noto Sans JP", sans-serif; font-size:15px; line-height:1.6; padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
a { color:inherit; text-decoration:none; } .en { font-family:"Crimson Text", serif; letter-spacing:.06em; }
.topbar { position:sticky; top:0; z-index:10; display:flex; justify-content:space-between; align-items:center; height:52px; padding:0 16px; background:var(--brown); color:var(--paper); }
.topbar__brand { font-size:15px; font-weight:500; } .topbar__brand .en { font-size:17px; margin-right:6px; } .topbar__logout { font-size:12px; opacity:.85; }
.wrap { max-width: 860px; margin:0 auto; padding:16px; }
.page-title { font-size:20px; font-weight:700; margin:4px 0 16px; letter-spacing:.04em; }
.tabbar { position:fixed; left:0; right:0; bottom:0; z-index:10; display:flex; background:var(--paper); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom); }
.tabbar a { flex:1; text-align:center; font-size:10px; padding:8px 0 6px; color:#8a7b6c; } .tabbar a .ic { display:block; font-size:20px; line-height:1.2; } .tabbar a.is-active { color:var(--ink); font-weight:700; }
.card { background:var(--paper); border-radius:12px; padding:16px; margin-bottom:12px; box-shadow:0 1px 3px rgba(0,0,0,.05); }
.card h2 { font-size:16px; margin:0 0 10px; } .card--link { display:block; }
.row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.muted { color:#8a7b6c; font-size:13px; } .small { font-size:13px; } .big { font-size:22px; font-weight:700; }
.badge { display:inline-block; font-size:11px; padding:2px 8px; border-radius:999px; color:#fff; background:#999; vertical-align:middle; }
.mcode { display:inline-block; min-width:22px; text-align:center; font-size:11px; font-weight:700; padding:1px 5px; border-radius:6px; color:#fff; background:var(--gold); margin-right:5px; vertical-align:middle; font-family:'Crimson Text',serif; letter-spacing:.05em; } .mcode--parfait { background:var(--green); }
.badge--green{background:var(--green)} .badge--red{background:var(--red)} .badge--blue{background:var(--blue)} .badge--gray{background:#9a8f85} .badge--gold{background:var(--gold)}
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 18px; border-radius:10px; border:1px solid var(--brown); background:var(--brown); color:#fff; font-size:15px; font-weight:500; cursor:pointer; }
.btn--outline { background:transparent; color:var(--ink); border-color:var(--sand); } .btn--danger { background:var(--red); border-color:var(--red); } .btn--gold { background:var(--gold); border-color:var(--gold); }
.btn--sm { min-height:36px; padding:4px 12px; font-size:13px; } .btn--block { width:100%; } .btn[disabled] { opacity:.5; cursor:default; }
.btns { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
label.f { display:block; margin-bottom:14px; } label.f > span { display:block; font-size:13px; color:#6f6256; margin-bottom:4px; }
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=date], input[type=time], input[type=password], select, textarea { width:100%; font:inherit; padding:10px 12px; border:1px solid var(--sand); border-radius:8px; background:#fff; color:var(--ink); min-height:44px; }
textarea { min-height:90px; } input[type=checkbox] { width:20px; height:20px; vertical-align:middle; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; } .grid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 12px; }
.flash { padding:12px 14px; border-radius:10px; margin-bottom:12px; font-size:14px; } .flash--ok { background:#E7F0E8; color:#2f5a3b; } .flash--error { background:#F6E2DE; color:#8a2f22; }
.list-item { display:flex; gap:12px; padding:12px 0; border-top:1px solid var(--line); } .list-item:first-child { border-top:0; padding-top:0; }
.list-item .time { font-family:"Crimson Text", serif; font-size:20px; min-width:56px; line-height:1.2; }
.datenav { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; } .datenav .d { font-size:17px; font-weight:700; }
.cal { width:100%; border-collapse:collapse; table-layout:fixed; } .cal th { font-size:11px; color:#8a7b6c; padding:4px 0; font-weight:500; }
.cal td { height:58px; border:1px solid var(--line); vertical-align:top; padding:3px; font-size:12px; background:#fff; } .cal td.out { background:#f3eeea; color:#bbb; }
.cal td a { display:block; height:100%; } .cal .n { font-weight:600; } .cal .m { display:block; font-size:10px; line-height:1.3; color:#6f6256; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal td.closed { background:#efe8e3; } .cal td.course { border-bottom:3px solid var(--gold); } .cal td.parfait { border-bottom:3px solid var(--blue); } .cal td.today .n { color:var(--red); }
.cal td.sat .n { color:var(--blue); } .cal td.sun .n { color:var(--red); }
.cal--rsv td { height:auto; min-height:72px; padding:3px 2px; }
.cal--rsv td.none { background:#f6f2ef; } .cal--rsv .m { font-size:9px; color:#8a7b6c; }
.cal--rsv .sl { display:block; font-size:10px; line-height:1.35; margin-top:2px; padding:1px 3px; border-radius:4px; white-space:nowrap; }
.sl-ok{background:#cfe3d4} .sl-few{background:#f3d9a8} .sl-full{background:#e8b4ab} .sl-off{background:#ddd;color:#888}
@media (max-width:480px){ .cal--rsv .sl{font-size:9px;padding:1px 2px} .cal--rsv .m{display:none} }
.dl { display:grid; grid-template-columns:96px 1fr; gap:6px 10px; font-size:14px; } .dl dt { color:#8a7b6c; } .dl dd { margin:0; }
.item-rows .r { display:grid; grid-template-columns:1fr 2fr 36px; gap:6px; margin-bottom:6px; } .item-rows .r button { border:0; background:none; font-size:18px; color:#999; cursor:pointer; }
.toggle-pub { display:inline-flex; align-items:center; gap:6px; }
.table { width:100%; border-collapse:collapse; font-size:14px; } .table th, .table td { text-align:left; padding:8px 6px; border-bottom:1px solid var(--line); vertical-align:top; }
.login-box { max-width:360px; margin:60px auto; }
.legend { display:flex; gap:12px; font-size:12px; color:#6f6256; margin:8px 0; } .legend i { display:inline-block; width:12px; height:3px; vertical-align:middle; margin-right:4px; }
.notice { font-size:13px; color:#6f6256; background:#fff; border-left:3px solid var(--gold); padding:8px 12px; margin:8px 0 12px; }
@media (min-width: 700px) { body { font-size:15px; } .tabbar { position:sticky; top:52px; bottom:auto; border-top:0; border-bottom:1px solid var(--line); justify-content:center; } .tabbar a { flex:0 0 120px; font-size:13px; padding:10px 0; } .tabbar a .ic { display:inline; font-size:14px; margin-right:4px; } body { padding-bottom:40px; } }

/* ---- レシピ管理 ---- */
.subnav { display:flex; gap:4px; margin:-4px 0 12px; overflow:auto; } .subnav a { font-size:13px; padding:6px 12px; border-radius:999px; background:#fff; color:#6f6256; white-space:nowrap; } .subnav a.is-active { background:var(--ink); color:#fff; }
.table td.num, .table th.num { text-align:right; white-space:nowrap; } .table tr.is-off td { opacity:.5; }
.al { display:inline-block; font-size:10px; padding:1px 6px; border-radius:6px; background:#f4dcd8; color:var(--red); margin:1px 2px 1px 0; }
.alchk { display:inline-block; font-size:13px; margin:0 10px 6px 0; } .alchk--req { font-weight:600; }
.lines { width:100%; border-collapse:collapse; } .lines th { font-size:11px; color:#8a7b6c; text-align:left; padding:4px; } .lines td { padding:3px 2px; vertical-align:top; }
.lines input, .lines select { width:100%; min-height:40px; padding:6px 8px; } .lines .qty { width:96px; text-align:right; } .lines .stage { width:110px; } .lines .basis { width:92px; } .lines .note { width:120px; }
.lines tr.is-stage td { padding-top:10px; }
.lines .del { width:36px; min-height:40px; border:1px solid #ddd; background:#fff; border-radius:6px; color:#999; }
.viewtbl { width:100%; border-collapse:collapse; font-size:15px; } .viewtbl td, .viewtbl th { padding:7px 8px; border-bottom:1px solid #eee; } .viewtbl th { font-size:12px; color:#8a7b6c; text-align:left; } .viewtbl td.num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.viewtbl tr.stage td { background:var(--cream); font-weight:700; padding-top:10px; }
.viewtbl tr.sub td a { color:var(--blue); }
.scale { display:flex; gap:8px; align-items:center; flex-wrap:wrap; } .scale input { width:110px; }
.proc { white-space:pre-wrap; line-height:1.9; font-size:15px; }
@media print { .topbar, .tabbar, .subnav, .btns, .flash, .noprint { display:none !important; } body { background:#fff; } .wrap { padding:0; max-width:none; } .card { box-shadow:none; border:1px solid #ddd; page-break-inside:avoid; } .viewtbl { font-size:16px; } }
.scale-note { font-size:13px; font-weight:400; color:var(--red); margin-left:10px; }
