@font-face{font-family:Times New Roman MT Condensed;src:url(/fonts/times-new-roman-mt-condensed-regular.woff2) format("woff2"),url(/fonts/times-new-roman-mt-condensed-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Times New Roman MT Condensed;src:url(/fonts/times-new-roman-mt-condensed-bold.woff2) format("woff2"),url(/fonts/times-new-roman-mt-condensed-bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--paper: #f7f7ef;--card: #fcfcfa;--pill: rgba(47, 47, 0, .1);--hairline: rgba(0, 0, 0, .1);--card-border: rgba(0, 0, 0, .14);--input-border: rgba(0, 0, 0, .18);--topbar-h: 63px;--serif: "Times New Roman MT Condensed", "Times New Roman", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, monospace;--ease: cubic-bezier(.3, 0, .2, 1);--dur: .26s;--pop-shadow: 0 14px 36px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .05);--green: #2f6a3e;--amber: #7a5500;--red: #c11414}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);font-family:var(--sans);color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font:inherit;background:none;border:none;cursor:pointer;color:inherit}input,textarea{font:inherit;border:1px solid var(--input-border);border-radius:10px;padding:6px 9px;background:#fff;outline:none;transition:border-color var(--dur) var(--ease)}input:focus,textarea:focus{border-color:#0006}.mono{font-family:var(--mono)}.shell{height:100%;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:0 20px;border-bottom:1px solid var(--hairline);position:sticky;top:0;z-index:20}.liquid-glass{background:#f7f7efb8;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#000}.brand-word{font-family:var(--serif);font-weight:700;font-size:26px;letter-spacing:-.06em;transform:translateY(-1px)}.crumb{display:flex;align-items:baseline;gap:10px;min-width:0}.crumb-sep{color:#0000004d}.crumb-name{font-family:var(--serif);font-size:22px;letter-spacing:-.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crumb-code{font-family:var(--mono);font-size:12px;color:#00000073;text-transform:uppercase}.canvas-host{flex:1;overflow:auto}.page-title{font-family:var(--serif);font-weight:700;font-size:34px;letter-spacing:-.06em}.micro-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#00000073}.list-page{max-width:1060px;margin:0 auto;padding:34px 24px 80px;display:flex;flex-direction:column;gap:14px}.list-page .micro-label{margin-top:18px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.recipe-card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:14px 16px;text-decoration:none;color:#000;display:flex;flex-direction:column;gap:6px;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.recipe-card:hover{transform:translateY(-2px);box-shadow:var(--pop-shadow)}.recipe-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.recipe-card-name{font-family:var(--serif);font-size:21px;letter-spacing:-.06em}.heart{width:10px;height:10px;border-radius:50%;background:#fa00008c;border:1px solid rgba(250,0,0,.35);flex:0 0 auto}.recipe-card-meta{display:flex;gap:6px;flex-wrap:wrap}.pill{background:var(--pill);border-radius:999px;padding:2px 9px;font-size:11.5px;white-space:nowrap}.pill-green{background:#2f6a3e24;color:var(--green)}.new-recipe-card{border-style:dashed;background:#fcfcfa99;align-items:center;justify-content:center;min-height:118px;color:#00000080;transition:color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.new-recipe-card:hover{color:#000}.new-recipe-plus{font-family:var(--serif);font-size:34px;line-height:1;letter-spacing:-.06em}.new-recipe-label{font-size:12.5px}.new-recipe-form{gap:8px;justify-content:center}.new-recipe-form input{font-size:13px}.new-code-input{text-transform:uppercase}.title-edit-row{display:flex;align-items:baseline;gap:10px;min-width:0;flex:1}.title-input{border:none;background:transparent;padding:0 2px;margin-left:-2px;border-radius:6px;min-width:120px;width:100%;max-width:640px}.title-input:hover{background:#2f2f000d}.title-input:focus{background:#fff;box-shadow:inset 0 0 0 1px #00000040}.code-input{border:none;background:transparent;padding:1px 5px;border-radius:6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#00000080;width:90px}.code-input:hover{background:#2f2f000d}.code-input:focus{background:#fff;box-shadow:inset 0 0 0 1px #00000040;color:#000}.flow-page{max-width:1200px;margin:0 auto;padding:28px 24px 120px}.flow-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.toolbar-actions{display:flex;gap:8px}.pill-btn{background:var(--pill);border-radius:999px;padding:5px 13px;font-size:13px;transition:background var(--dur) var(--ease)}.pill-btn:hover{background:#2f2f0029}.pill-btn-on{background:#2f6a3e29;color:var(--green)}.export-wrap{position:relative}.export-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--card);border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--pop-shadow);padding:5px;display:flex;flex-direction:column;min-width:240px;z-index:25}.export-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 10px;border-radius:8px;transition:background var(--dur) var(--ease)}.export-row:hover{background:#2f2f0012}.export-item-text{display:flex;flex-direction:column;gap:1px}.export-actions{display:flex;gap:5px}.export-actions .pill-btn{font-size:11.5px;padding:3px 10px}.export-item-name{font-size:13px;font-weight:550}.export-item-sub{font-size:11px;color:#0000007a}.tray{margin-top:14px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:var(--card);border:1px dashed var(--card-border);border-radius:12px;padding:9px 12px}.chip-dim{opacity:.55}.flow-canvas{position:relative;margin-top:30px;display:flex;flex-direction:column;gap:10px}.row-block{display:flex;flex-direction:column;gap:10px}.flow-arrow{display:flex;justify-content:center;color:#00000047;height:18px;align-items:center;pointer-events:none}.step-card-pick{outline:1.5px dashed rgba(0,0,0,.35);outline-offset:3px}.step-card-required{outline:2px solid var(--green);outline-offset:3px}.req-dot{position:absolute;top:-7px;right:-7px;width:15px;height:15px;border-radius:50%;background:var(--green);border:2px solid var(--paper);z-index:3}.flow-row{display:flex;justify-content:center;align-items:flex-start;gap:32px;position:relative}.step-unit{display:flex;flex-direction:column;align-items:flex-start}.chip-stack{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;margin:0 0 6px 8px}.chip-stack .chip{height:22px}.chip-stack-item{position:relative;height:17px}.chip-stack-item:last-child{height:24px}.chip-stack .chip{background:#f1f1e7;border:1px solid var(--card-border);box-shadow:0 1px 3px #0000000f}.chip-stack .chip-linked{background:#e4eee4}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--pill);border-radius:999px;padding:3px 10px;font-size:12px;text-decoration:none;color:#000;white-space:nowrap}.chip-qty{font-size:11px;color:#0000008c}.chip-linked{background:#4c8f5224;transition:background var(--dur) var(--ease)}.chip-linked:hover{background:#4c8f523d}.chip-link-arrow{font-size:11px;color:var(--green)}.chip-tray{cursor:pointer;transition:background var(--dur) var(--ease),opacity var(--dur) var(--ease)}.chip-tray:hover{background:#2f2f002e}.chip-out{background:#4c8f5221}.chip-equip-name{display:inline-flex;align-items:center;gap:4px;padding:0;font-size:12px}.chip-equip-on{background:#6d5cc229}.chip-gear{color:#00000073}.chip-qty-btn{font-size:11px;color:#0000008c;padding:0 1px;border-bottom:1px dashed transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.chip-qty-btn:hover{color:#000;border-bottom-color:#0006}.qty-inline{width:56px;font-size:11px;padding:0 4px;border-radius:6px}.chip-label-btn{font-size:12px;padding:0 1px;border-bottom:1px dashed transparent;transition:border-color var(--dur) var(--ease)}.chip-label-btn:hover{border-bottom-color:#0006}.label-inline{width:120px;font-size:12px;padding:0 4px;border-radius:6px}.equip-label-row{display:flex;align-items:baseline;gap:0}.equip-rename{font-size:11px;font-weight:600;letter-spacing:.04em;border:none;border-bottom:1px dashed rgba(0,0,0,.3);border-radius:0;background:transparent;padding:0 1px;color:#000000b3}.equip-rename:focus{border-bottom-color:#0009}.equip-label-tail{white-space:pre}.chip-x{font-size:13px;line-height:1;color:#0006;padding:0 1px}.chip-x:hover{color:var(--red)}.step-slot{position:relative}.step-card{width:232px;background:var(--card);border:1px solid var(--card-border);border-left:3px solid #6b6b5e;border-radius:10px;padding:10px 12px;cursor:pointer;position:relative;z-index:2;transition:box-shadow var(--dur) var(--ease)}.step-card:hover{box-shadow:0 2px 8px #00000012}.step-editor{position:absolute;top:0;left:0;width:232px;background:var(--card);border:1px solid var(--card-border);border-left:3px solid #6b6b5e;border-radius:10px;padding:10px 12px;z-index:30;transition:width var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.step-editor-open{width:430px;box-shadow:var(--pop-shadow)}.editor-reveal{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur) var(--ease)}.editor-reveal>div{overflow:hidden;min-height:0}.step-editor-open .editor-reveal{grid-template-rows:1fr}.step-editor .step-form{opacity:0;transition:opacity .18s ease 80ms}.step-editor-open .step-form{opacity:1}.step-name{font-size:13.5px;font-weight:550;line-height:1.35}.step-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.step-name-empty{color:#0000006b}.ghost-add{position:absolute;opacity:0;pointer-events:none;background:var(--paper);border:1px dashed rgba(0,0,0,.35);border-radius:999px;font-size:11.5px;padding:3px 10px;white-space:nowrap;transition:opacity var(--dur) var(--ease),background var(--dur) var(--ease);z-index:1}.step-slot:hover .ghost-add,.ghost-add:focus-visible{opacity:1;pointer-events:auto}.ghost-add:hover{background:#fff}.ghost-then{left:50%;transform:translate(-50%);bottom:-30px;pointer-events:auto}.ghost-then:before{content:"";position:absolute;top:-8px;bottom:-22px;left:-88px;right:-88px}.ghost-meanwhile{top:50%;right:-8px;transform:translate(100%,-50%);pointer-events:auto}.ghost-meanwhile:before{content:"";position:absolute;top:-34px;bottom:-34px;left:-8px;right:-40px}.ghost-compact{width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px;right:-3px;pointer-events:auto}.ghost-compact:before{content:"";position:absolute;top:-44px;bottom:-44px;left:-8px;right:-8px}.ghost-add:hover{opacity:1}.flow-canvas-dragging .ghost-add{opacity:0!important;pointer-events:none!important}.new-row-slot{width:232px;height:40px;margin:14px auto 0;border:1.5px dashed rgba(0,0,0,.3);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:11.5px;color:#00000080;background:#fcfcfab3;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}.new-row-slot-on{border-color:var(--green);color:var(--green);background:#2f6a3e14}.step-card-dragging{opacity:.35}.step-card-drop-before:after,.step-card-drop-after:after{content:"";position:absolute;top:3px;bottom:3px;width:3px;border-radius:3px;background:#0006}.step-card-drop-before:after{left:-18px}.step-card-drop-after:after{right:-18px}.time-label-row{display:flex;align-items:center;justify-content:space-between}.time-total{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--amber)}.card-x{position:absolute;top:-7px;right:-7px;width:19px;height:19px;border-radius:50%;background:var(--paper);border:1px solid rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;color:#0000008c;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);z-index:4}.step-card:hover .card-x{opacity:1;pointer-events:auto}.card-x:hover{background:var(--red);border-color:var(--red);color:#fff}.undo-btn{display:inline-flex;align-items:center;gap:5px}.prog-toggle{grid-column:2;justify-self:start;margin-top:-4px;font-size:11px;color:#00000073;padding:1px 7px;border:1px dashed rgba(0,0,0,.25);border-radius:999px;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.prog-toggle:hover{color:#000;border-color:#00000073}.editor-head-row{display:flex;align-items:center;justify-content:space-between}.copy-actions{display:inline-flex;gap:3px}.mini-icon-btn{width:17px;height:17px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#00000080;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.mini-icon-btn:hover{background:var(--pill);color:#000}.mini-icon-btn-off{opacity:.35;cursor:default}.mini-icon-btn-off:hover{background:none;color:#00000080}.editor-head{margin-bottom:2px}.editor-name{font-size:13.5px;font-weight:550;border-color:transparent;background:transparent;padding:3px 6px;margin-left:-6px;width:calc(100% + 6px)}.editor-name:hover{border-color:var(--hairline)}.editor-name:focus{border-color:#0006;background:#fff}.field-nested{grid-column:2;margin-top:-3px;padding-left:9px;border-left:2px solid var(--hairline)}.step-form{margin-top:10px;border-top:1px solid var(--hairline);padding-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;cursor:default}.form-actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding-top:1px}.form-actions .pill-btn{font-size:11px;padding:2px 9px;display:inline-flex;align-items:center;gap:4px}.pill-btn-danger{background:#c1141417;color:var(--red)}.pill-btn-danger:hover{background:#c1141429}.pill-btn-green{background:#2f6a3e24;color:var(--green)}.pill-btn-green:hover{background:#2f6a3e38}.field{display:flex;flex-direction:column;gap:3px}.field-full{grid-column:1 / -1}.field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#00000073}.field input,.field textarea{font-size:13px}.input-list{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.input-add{display:inline-flex;gap:5px;align-items:center}.qty-input{width:64px}.input-add input{font-size:12.5px;padding:4px 8px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:90px 0}.big-add{font-family:var(--serif);font-size:27px;letter-spacing:-.06em;background:var(--card);border:1px dashed rgba(0,0,0,.3);border-radius:16px;padding:18px 34px;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.big-add:hover{transform:translateY(-2px);box-shadow:var(--pop-shadow)}.empty-hint{font-size:12.5px;color:#00000073}.print-page{max-width:680px;margin:0 auto;padding:48px 32px 80px;background:#fff;min-height:100%;font-size:13px;line-height:1.5}.print-btn{position:fixed;top:16px;right:16px;background:var(--pill);border-radius:999px;padding:7px 15px;font-size:13px;box-shadow:var(--pop-shadow)}.print-title{font-family:var(--serif);font-weight:700;font-size:32px;letter-spacing:-.06em}.print-subtitle{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#00000080;margin-top:2px}.print-summary{margin-top:10px;padding-bottom:14px;border-bottom:1px solid rgba(0,0,0,.2)}.print-plain{margin-top:20px;padding-left:22px}.print-plain li{margin-bottom:7px}.print-stage{margin-top:22px}.print-stage-title{font-family:var(--serif);font-weight:700;font-size:19px;letter-spacing:-.04em;border-bottom:1px solid rgba(0,0,0,.12);padding-bottom:4px}.print-step{margin-top:14px;break-inside:avoid}.print-step-name{font-size:13.5px;font-weight:650;display:flex;gap:8px;align-items:baseline}.print-step-n{font-family:var(--mono);font-size:11px;color:#00000073}.print-attrs{margin:6px 0 0 20px}.print-attr{display:flex;gap:8px;margin-bottom:2px}.print-attr dt{flex:0 0 76px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#00000073;padding-top:1.5px}.print-attr dd{margin:0}@media print{.print-btn{display:none}.print-page{max-width:none;padding:0}body{background:#fff}}@page{margin:.7in}@media (prefers-reduced-motion: reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
