:root{--paper: #faf7f0;--paper-raised: #ffffff;--ink: #23241f;--ink-soft: #6b6b60;--line: #dad4c4;--green: #33513b;--green-soft: #e3ebe1;--brick: #9c3b2e;--brick-soft: #f3e3df;--shadow: rgba(35, 36, 31, .1);--radius: 6px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;margin:0;letter-spacing:-.01em}button{font-family:inherit}.app-shell{max-width:780px;width:100%;margin:0 auto;padding:32px 20px 80px;flex:1}.app-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px;padding-bottom:18px;border-bottom:2px solid var(--ink)}.app-header h1{font-size:28px}.app-header .subtitle{font-size:13px;color:var(--ink-soft);font-family:IBM Plex Mono,monospace}.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:24px}.tab-button{min-width:120px}.tab-button{flex:1;background:transparent;border:1.5px solid var(--line);border-radius:var(--radius);padding:10px 12px;font-size:14px;font-weight:500;color:var(--ink-soft);cursor:pointer;transition:all .15s ease}.tab-button:hover{border-color:var(--ink-soft);color:var(--ink)}.tab-button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.tab-button:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:2px}.card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:0 1px 2px var(--shadow)}.card h2{font-size:18px;margin-bottom:14px}.empty-state{color:var(--ink-soft);font-size:14px;padding:24px 4px;text-align:center;border:1.5px dashed var(--line);border-radius:var(--radius)}label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:4px}input[type=text],input[type=number],select{width:100%;padding:9px 10px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);font-size:14px;color:var(--ink);font-family:inherit}input[type=text]:focus,input[type=number]:focus,select:focus{border-color:var(--green)}.field{margin-bottom:12px}.ingredient-row{display:grid;grid-template-columns:1.6fr .7fr .9fr 1.2fr auto;gap:8px;align-items:end;margin-bottom:10px}@media (max-width: 560px){.ingredient-row{grid-template-columns:1fr 1fr}}.btn{border-radius:var(--radius);border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s ease}.btn:hover{opacity:.85}.btn-secondary{background:transparent;color:var(--ink)}.btn-danger{background:transparent;border-color:var(--brick);color:var(--brick)}.btn-danger:hover{background:var(--brick-soft)}.btn-small{padding:6px 10px;font-size:13px}.btn-row{display:flex;gap:8px;margin-top:6px}.recipe-item{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px}.recipe-item-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.recipe-item-head h3{font-size:16px}.ingredient-tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ingredient-tag{font-family:IBM Plex Mono,monospace;font-size:12px;background:var(--green-soft);color:var(--green);padding:3px 8px;border-radius:4px}.day-row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.day-row:last-child{border-bottom:none}.day-label{font-family:Fraunces,serif;font-weight:600;font-size:15px}.receipt{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:0;overflow:hidden;box-shadow:0 2px 6px var(--shadow)}.receipt-tear{height:14px;background-image:radial-gradient(circle at 8px 0,transparent 7px,var(--paper-raised) 7.5px);background-size:16px 14px;background-repeat:repeat-x}.receipt-body{padding:22px 24px 26px}.receipt-header{text-align:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1.5px dashed var(--line)}.receipt-header h2{font-size:20px}.receipt-header .receipt-date{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink-soft);margin-top:4px}.receipt-category{margin-bottom:18px}.receipt-category-title{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:8px}.receipt-line{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:4px 0;border-bottom:1px dotted var(--line)}.receipt-line:last-child{border-bottom:none}.receipt-line .amount{font-family:IBM Plex Mono,monospace;color:var(--ink-soft);white-space:nowrap}.receipt-line .source{font-size:11px;color:var(--ink-soft);display:block}.receipt-footer{margin-top:18px;padding-top:14px;border-top:1.5px dashed var(--line);text-align:center;font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink-soft)}@media print{.tabs,.app-header .subtitle,.no-print{display:none!important}body{background:#fff}}
