:root{--bg:#f3f6f8;--card:#fff;--ink:#1f2933;--sub:#7b8794;--accent:#0b7285;--accent-soft:#e3f2f5;--line:#dde3e8;--ok:#2b8a3e;--warn:#c92a2a;--h1-size:20px;--tab-pad:8px 16px;--tab-font:14px;--tabs-gap-bottom:16px;--scrim:#141e2873;--modal-w:620px;--modal-h:88dvh;--modal-title-gap:12px;--modal-actions-gap-top:12px;--chips-margin:0}
*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Hiragino Sans,Noto Sans JP,sans-serif}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:10px 18px}img{max-width:100%;height:auto}.container{max-width:960px;margin:0 auto;padding:16px}.header{border-bottom:2px solid var(--accent);align-items:baseline;gap:12px;margin-bottom:16px;padding:12px 0;display:flex}.header h1{font-size:var(--h1-size);color:var(--accent);margin:0}.header .badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-size:11px}.header-actions{align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.header-actions .btn-ghost{padding:4px 10px;font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:16px}.card h2{margin:0 0 12px;font-size:16px}.btn-primary{background:var(--accent);color:#fff}.btn-ghost{color:var(--accent);border:1px solid var(--accent);background:0 0}button:disabled{opacity:.45;cursor:not-allowed}.block-btn{width:100%;margin-top:12px;display:block}.tabs{margin-bottom:var(--tabs-gap-bottom);flex-wrap:wrap;gap:8px;display:flex}.tab{background:var(--card);border:1px solid var(--line);color:var(--sub);padding:var(--tab-pad);font-size:var(--tab-font);white-space:nowrap;border-radius:999px}.modal-back{background:var(--scrim);z-index:60;justify-content:center;align-items:center;height:100dvh;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card);max-width:var(--modal-w);width:100%;max-height:var(--modal-h);padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));border-radius:14px;overflow-y:auto}.modal h3{margin:0 0 var(--modal-title-gap);font-size:18px}.modal-actions{margin-top:var(--modal-actions-gap-top);flex-wrap:wrap;gap:8px;display:flex}.chips{margin:var(--chips-margin);flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--card);border:1px solid var(--line);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.chip input{accent-color:var(--accent);margin:0}.chip.on{background:var(--accent-soft);border-color:var(--accent);font-weight:600}.notice,.muted{color:var(--sub);font-size:12px}.stack{flex-direction:column;gap:16px;display:flex}.info-box{background:var(--accent-soft);border:1px solid var(--line);color:var(--ink);border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:13px}.btn-reset{color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);background:0 0;font-size:13px}.btn-reset:disabled{opacity:.5;cursor:not-allowed}.error-box{color:var(--warn);background:#fff5f5;border:1px solid #ffc9c9;border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:13px}details.card>summary{cursor:pointer;color:var(--muted);font-size:13px}details.card>summary::marker{color:var(--muted)}details.card[open]>summary{margin-bottom:12px}.dialog-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;height:100dvh;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border:1px solid var(--line);border-radius:12px;width:100%;max-width:460px;padding:20px}.dialog-message{white-space:pre-wrap;margin:0 0 16px;font-size:14px;line-height:1.7}.dialog input{width:100%;margin-bottom:16px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.support-id{letter-spacing:.04em;word-break:break-all;background:var(--accent-soft);border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;display:block}.ops-shell{max-width:1400px;margin:0 auto;padding:16px}.ops-shell>.ops-layout{max-width:none;padding:0}.ops-layout{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:20px;max-width:1400px;margin:0 auto;padding:16px;display:grid}.ops-main{min-width:0}.sidenav{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:4px;padding:8px;transition:width .15s;display:flex;position:sticky;top:16px}.sidenav.open{width:200px}.sidenav.closed{width:52px}.sidenav-toggle{color:var(--sub);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.sidenav-toggle:hover{background:var(--accent-soft);color:var(--accent)}.sidenav-body{flex-direction:column;gap:2px;display:flex}.sidenav-group+.sidenav-group{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.sidenav-title{color:var(--sub);letter-spacing:.04em;padding:4px 8px;font-size:11px}.sidenav-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:8px;padding:7px 10px;font-size:13px;display:block;overflow:hidden}.sidenav.closed .sidenav-item{text-align:center;padding:7px 0}.sidenav-item:hover{background:var(--accent-soft)}.sidenav-item.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}@media (max-width:1023px){.ops-layout{grid-template-columns:minmax(0,1fr);gap:12px}.sidenav{z-index:20;max-height:calc(100dvh - 24px);position:fixed;top:12px;left:12px;overflow-y:auto}.sidenav.closed .sidenav-body{display:none}.sidenav.closed{width:auto}.ops-shell>.header{padding-left:52px}}
.provider-switch{align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.provider-switch select{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:6px 10px}.btn-primary:disabled{background:var(--line);color:var(--sub);cursor:not-allowed}.btn-danger{color:var(--warn);background:0 0;border:1px solid #ffc9c9;font-size:13px}.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.recipe-item{border:1px solid var(--line);border-radius:10px;align-items:center;gap:12px;margin-bottom:10px;padding:12px;display:flex}.recipe-item .grow{flex:1;min-width:0}.recipe-item .title{font-size:15px;font-weight:600}.recipe-item .meta{color:var(--sub);margin-top:2px;font-size:12px}.row-actions{gap:8px;display:flex}.row-actions button{padding:6px 12px;font-size:13px}.status-badge{border-radius:4px;padding:2px 8px;font-size:11px}.status-badge.active{color:var(--ok);background:#e6fcf5}.status-badge.draft{color:#a07700;background:#fff3bf}.metric-row{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.metric{border:1px solid var(--line);border-radius:10px;flex:1;min-width:140px;padding:14px}.metric .label{color:var(--sub);font-size:12px}.metric .value{color:var(--accent);margin-top:4px;font-size:26px;font-weight:600}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:left;padding:8px 6px}table.data td.num,table.data th.num{text-align:right;white-space:nowrap}.bar{background:var(--accent);border-radius:4px;height:8px}.field{margin-bottom:12px}.field label{color:var(--sub);margin-bottom:4px;font-size:12px;display:block}.field input,.field select,.field textarea{font:inherit;border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);border-radius:8px;padding:8px 10px}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.ing-row{gap:6px;margin-bottom:6px;display:flex}.ing-row input{font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 8px}.ing-row .x{color:var(--warn);border:1px solid var(--line);background:0 0;padding:0 10px}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.recipe-checklist{border:1px solid #eee;border-radius:8px;flex-wrap:wrap;gap:6px;max-height:220px;padding:6px;display:flex;overflow-y:auto}.warn-badge{color:var(--warn);background:#fbeeeb}.warn-box{border:1px solid color-mix(in srgb, var(--warn) 25%, transparent);color:var(--ink);background:#fbeeeb;border-radius:10px;margin:8px 0;padding:12px 16px;font-size:13px}
