:root{--paper:#fbfaf6;--ink:#2a2a26;--muted:#8d897d;--faint:#9a968b;--rule:#c9c5b9;--sapin:#1f3d2b;--rouille:#b4532a;--ambre:#d9892b;--surligne:#f3e7dc}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);margin:0;font-family:IBM Plex Mono,monospace}.col{max-width:560px;margin:0 auto;padding:0 24px}.t-sapin{color:var(--sapin)}.t-rouille{color:var(--rouille)}.t-ambre{color:var(--ambre)}.t-muted{color:var(--muted)}.t-faint{color:var(--faint)}.t-track{color:#d6d2c6}.t-soup{color:var(--rouille)}.t-soupf{color:#ecd3c3}.t-bub{color:#c86a3e}.t-st1{color:var(--faint)}.t-st2{color:#cfcabd}.hl{background:var(--sapin);color:var(--paper)}.ascii{white-space:pre;margin:0;font-family:JetBrains Mono,monospace;line-height:1.25}.remy-zone{max-width:560px;height:60px;margin:0 auto;position:relative}.remy-sprite{cursor:pointer;pointer-events:auto;will-change:transform;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;position:absolute;bottom:2px;left:0}.remy-sprite:focus-visible{outline:1px dotted var(--sapin);outline-offset:2px}.remy-pre{color:var(--sapin);white-space:pre;text-align:left;min-height:48px;margin:0;font-family:"M PLUS 1 Code",BIZ UDGothic,MS Gothic,monospace;font-size:15px;line-height:1.05}.remy-bubble{background:var(--sapin);color:#f3f0e6;pointer-events:auto;transform-origin:0 100%;max-width:230px;padding:9px 11px;font-size:11.5px;line-height:1.45;animation:.35s cubic-bezier(.2,.9,.3,1.2) remy-pop;position:absolute;bottom:62px}.remy-bubble:after{content:"";bottom:-6px;left:var(--tail,20px);border:6px solid #0000;border-bottom:0;border-top-color:var(--sapin);position:absolute}.remy-bubble-link{color:#f3f0e6;white-space:nowrap;text-decoration:underline}@keyframes remy-pop{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.remy-bubble{animation:none}}.app-shell{flex-direction:column;min-height:100dvh;padding-bottom:64px;display:flex}.app-shell>.col{flex:1;width:100%}.offline-banner{background:var(--surligne);color:var(--rouille);text-align:center;border-bottom:1px dashed var(--rule);padding:6px 24px;font-size:12px}.app-header{border-bottom:1px dashed var(--rule);justify-content:space-between;align-items:baseline;padding:20px 0 12px;display:flex}.app-header-left{white-space:nowrap;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.app-header-name{color:var(--ink);font-family:Instrument Serif,serif;font-size:24px}.app-header-meta{letter-spacing:.08em;color:var(--muted);font-size:13px;font-variant-caps:all-small-caps}.app-header-settings{color:var(--muted);padding:4px 0 4px 12px;font-size:18px;text-decoration:none}.app-main{padding:16px 0 24px}#remy-slot{pointer-events:none;position:fixed;bottom:48px;left:0;right:0}.tab-bar{background:var(--paper);border-top:1px dashed var(--rule);justify-content:center;gap:4px;padding:0 24px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{text-align:center;max-width:140px;color:var(--muted);white-space:nowrap;flex:1;padding:14px 4px;font-size:13px;text-decoration:none}.tab.is-active{color:var(--sapin);font-weight:600}.tab:focus-visible,.app-header-settings:focus-visible{outline:1px dotted var(--sapin);outline-offset:2px}.dot-row{align-items:baseline;gap:8px;padding:7px 0;transition:background .4s;display:flex}.dot-row.is-button{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;width:100%}.dot-row.is-button:focus-visible{outline:1px dotted var(--sapin);outline-offset:2px}.dot-row .label{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.dot-row .fill{border-bottom:1px dotted var(--rule);flex:1;min-width:2ch;transform:translateY(-4px)}.dot-row .value{text-align:right;max-width:55%;color:var(--sapin);flex-shrink:0}.dot-row.tone-ok .value{color:var(--sapin)}.dot-row.tone-faint,.dot-row.tone-faint .value,.dot-row.tone-rouille{color:var(--faint)}.dot-row.tone-rouille .value{color:var(--rouille)}.dot-row.is-hot{background:var(--surligne)}.dot-row .sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.85em;display:block;overflow:hidden}.section-title{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:18px 0 6px;font-size:11px}.btn{cursor:pointer;border:none;padding:8px 12px;font-family:IBM Plex Mono,monospace;font-size:13px;transition:background .2s,color .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-plein{background:var(--sapin);color:var(--paper);border-radius:0}.btn-plein:hover:not(:disabled){background:var(--rouille)}.btn-texte{color:var(--sapin);border-bottom:1px dotted var(--rule);font-size:inherit;background:0 0;padding:0;display:inline}.btn-texte:hover:not(:disabled){color:var(--rouille);border-bottom-color:var(--rouille)}.title{color:var(--sapin);margin:0;font-family:Instrument Serif,serif;font-size:36px;font-weight:400;line-height:1.2}.ascii-produce{font-size:10px;line-height:1.05;display:inline-block}.produce-container{text-align:center}.code-screen{text-align:center;flex-direction:column;align-items:center;padding-top:64px;display:flex}.code-sprite{color:var(--ink);max-width:100%;margin:16px 0 24px;font-family:"M PLUS 1 Code",JetBrains Mono,monospace}.code-form{flex-direction:column;gap:12px;width:100%;max-width:280px;display:flex}.code-input{font:inherit;border:0;border-bottom:1px dashed var(--rule);color:var(--ink);text-align:center;background:0 0;border-radius:0;width:100%;padding:8px 0;font-size:16px}.code-input:focus{border-bottom:1px solid var(--sapin);outline:none}.code-error{color:var(--rouille);margin:0;font-size:13px}.ce-soir-vide{text-align:center;flex-direction:column;align-items:center;gap:16px;padding-top:24px;display:flex}.ce-soir-vide p{color:var(--muted);margin:0}.nowrap{overflow-wrap:anywhere;max-width:100%;display:inline-block}.field{font:inherit;border:0;border-bottom:1px dashed var(--rule);color:var(--ink);background:0 0;border-radius:0;width:100%;min-width:0;padding:8px 0;font-size:16px}.field:focus{border-bottom:1px solid var(--sapin);outline:none}.stock-tools{flex-direction:column;align-items:flex-start;gap:10px;margin-top:12px;display:flex}.stock-item{padding-bottom:4px}.stock-gauge{margin-bottom:4px;overflow:hidden}.staple-hint{margin:0 0 4px;font-size:12px}.staple{width:100%;font:inherit;color:var(--faint);text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:8px;padding:7px 0;transition:background .4s;display:flex}.staple.is-hot{background:var(--surligne)}.staple:disabled{cursor:not-allowed;opacity:.6}.staple:focus-visible{outline:1px dotted var(--sapin);outline-offset:2px}.staple.is-on{color:var(--ink)}.staple-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.staple .fill{border-bottom:1px dotted var(--rule);flex:1;min-width:2ch;transform:translateY(-4px)}.staple-state{white-space:nowrap;flex-shrink:0}.staple.is-on .staple-state{color:var(--sapin)}.sheet{border-bottom:1px dashed var(--rule);margin-top:12px;padding-bottom:8px}.form-row{margin-top:10px;display:block}.form-row>span{color:var(--muted);letter-spacing:.06em;font-size:11px;display:block}.form-actions{flex-wrap:wrap;align-items:baseline;gap:16px;margin-top:14px;display:flex}.form-error,.lot-message.is-error{color:var(--rouille);margin:10px 0 0;font-size:13px}.lot-message{color:var(--sapin);margin:8px 0 0;font-size:13px}.lot{border-bottom:1px dashed var(--rule);padding:4px 0 12px}.lot-fields{margin-bottom:4px}.lot-actions{flex-wrap:wrap;gap:18px;margin-top:8px;font-size:13px;display:flex}.back{margin:0;font-size:13px}.back a{color:var(--muted);text-decoration:none}.picker-list{margin:4px 0 0;padding:0;list-style:none}.picker-item,.link-btn{font:inherit;color:var(--sapin);cursor:pointer;text-align:left;background:0 0;border:0;width:100%;padding:6px 0}.link-btn{border-bottom:1px dotted var(--rule);width:auto;margin-top:8px;padding:0}.picker-item:hover,.link-btn:hover{color:var(--rouille)}.picker-selected{align-items:baseline;gap:12px;margin-top:8px;display:flex}.picker-selected .link-btn{margin-top:0}.picker-none{font-size:13px}.ticket-file{display:none}.ticket-scan{margin-top:12px;overflow:hidden}.ticket-fail{margin-top:8px}.ticket-dup{background:var(--surligne);color:var(--rouille);margin:12px 0 0;padding:6px 8px;font-size:13px}.ticket-line{border-bottom:1px dashed var(--rule);padding:8px 0 6px}.ticket-raw{color:var(--faint);overflow-wrap:anywhere;font-size:12px}.ticket-sum{width:100%;font:inherit;color:var(--sapin);text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;padding:4px 0;display:block}.ticket-sum.is-check{color:var(--rouille)}.ticket-sum:focus-visible{outline:1px dotted var(--sapin);outline-offset:2px}.ticket-ignored{color:var(--faint);margin-top:12px}select.field{appearance:none}.recharged-title{font-family:Instrument Serif,serif}.recharged-list{margin-top:12px}.recharged-row{padding:6px 0;overflow:hidden}.recharged-head{justify-content:space-between;gap:12px;display:flex}.recharged-name{overflow-wrap:anywhere;min-width:0}.recharged-added{color:var(--rouille);flex-shrink:0;animation:.4s forwards recharged-settle}@keyframes recharged-settle{to{color:var(--faint)}}@media (prefers-reduced-motion:reduce){.recharged-added{color:var(--faint);animation:none}}.recipe-tools{align-items:baseline;gap:16px;margin-top:12px;display:flex}.add-link{color:var(--sapin);white-space:nowrap;border-bottom:1px dotted var(--rule);font-size:13px;text-decoration:none}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chip{font:inherit;color:var(--muted);border:1px dashed var(--rule);cursor:pointer;background:0 0;border-radius:0;padding:3px 8px;font-size:12px}.chip.is-on{color:var(--paper);background:var(--sapin);border-color:var(--sapin)}.recipe-rows{margin-top:14px}.recipe-meta{margin:4px 0 0;font-size:13px}.servings{align-items:center;gap:14px;margin-top:14px;display:flex}.step-btn{font:inherit;width:32px;height:32px;color:var(--sapin);border:1px dashed var(--rule);cursor:pointer;background:0 0;border-radius:0}.step-btn:disabled{opacity:.4;cursor:not-allowed}.ing-list,.steps{margin:0;padding:0}.ing-list{list-style:none}.ing-line{overflow-wrap:anywhere;gap:8px;padding:3px 0;display:flex}.mark-ok{color:var(--sapin)}.mark-ko{color:var(--rouille)}.steps{padding-left:2.2ch}.steps li{overflow-wrap:anywhere;padding:4px 0}.confirm{color:var(--rouille)}.editor{margin-top:12px}.ed-trio{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:0 12px;display:grid}.ed-list{margin:0;padding:0;list-style:none}.ed-ing,.ed-step{border-bottom:1px dashed var(--rule);flex-direction:column;gap:4px;min-width:0;padding:10px 0;display:flex}.ed-ing.is-unresolved{border-left:2px solid var(--rouille);padding-left:8px}.ed-unres-label{color:var(--rouille);overflow-wrap:anywhere;margin:0}.ed-qty{align-items:baseline;gap:12px;display:flex}.ed-qty .field{flex:1 1 0}.field.is-bad{border-bottom-color:var(--rouille)}.ed-text{resize:vertical;display:block}.ed-check{align-items:center;gap:6px;display:inline-flex}.import-form{margin-top:12px}.cooked-lines{margin:0;padding:0;list-style:none}.cooked-line{align-items:baseline;gap:8px;padding:2px 0;display:flex}.cooked-name{overflow-wrap:anywhere;flex:1;min-width:0}.cooked-qty{text-align:right;flex:none;width:72px}.cooked-qty[aria-invalid=true]{border-bottom-color:var(--rouille)}.cooked-unit{flex:none;width:3ch}.cooked-done{color:var(--sapin);margin:0}.cook{flex-direction:column;min-height:calc(100dvh - 120px);display:flex}.cook-head{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.cook-head a{color:var(--muted);text-decoration:none}.cook-step{flex:1;padding:18px 0}.cook-text{overflow-wrap:anywhere;margin:0;font-size:22px;line-height:1.4}.cook-pot{margin-top:16px;overflow:hidden}.cook-pot .ascii{font-size:min(16px,4.90196vw - 3.52941px)}.cook-ready{color:var(--sapin);margin:12px 0 0;font-size:22px}.cook-nav{border-top:1px dashed var(--rule);flex-wrap:wrap;align-items:baseline;gap:16px;padding-top:12px;display:flex}.step-timer{margin-top:6px}.step-timer-head{justify-content:space-between;align-items:baseline;display:flex}.step-timer-big{color:var(--sapin);font-variant-numeric:tabular-nums;font-family:Instrument Serif,serif;font-size:40px;line-height:1}.step-timer-label{color:var(--muted);font-size:11px}.step-timer-bar{margin-top:6px;font-size:12px}.step-timer-actions{margin-top:10px;font-size:12px}.reglages-servings{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.reglages-servings .btn{min-width:44px;min-height:44px}.reglages-count{min-width:10ch}
