@charset "UTF-8";:root{--bordeaux: #6d1a2b;--bordeaux-dark: #531320;--bordeaux-soft: #f3e3e6;--cream: #f6efe3;--cream-deep: #ece2d0;--paper: #fffdf9;--ink: #2a1a1d;--ink-soft: #655458;--line: #ddd0bb;--gold: #a07a38;--st-tooyoung-bg: #e3ebf5;--st-tooyoung-fg: #234a78;--st-tooyoung-bar: #7da2d1;--st-ready-bg: #e4efdc;--st-ready-fg: #2f5d25;--st-ready-bar: #8fbf7d;--st-peak-bg: #d3ebd5;--st-peak-fg: #14582a;--st-peak-bar: #2f9e55;--st-drinksoon-bg: #fbe8cf;--st-drinksoon-fg: #8a4a07;--st-drinksoon-bar: #e39a3b;--st-pastpeak-bg: #f8d9d6;--st-pastpeak-fg: #8c1c14;--st-pastpeak-bar: #c8453b;--radius: 12px;--shadow: 0 1px 2px rgb(60 25 30 / 8%), 0 4px 14px rgb(60 25 30 / 6%);--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tabbar-h: 62px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.5}h1,h2,h3{font-family:var(--font-serif);font-weight:600;line-height:1.2;margin:0 0 .5rem;color:var(--bordeaux-dark)}h1{font-size:1.7rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .75rem}a{color:var(--bordeaux);text-underline-offset:2px}:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.page{max-width:980px;margin:0 auto;padding:1rem 1rem calc(var(--tabbar-h) + 2rem)}.page-narrow{max-width:440px;margin:0 auto;padding:2rem 1rem}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.page-head h1{margin:0}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.row-between{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between}.stack{display:flex;flex-direction:column;gap:.75rem}.muted{color:var(--ink-soft)}.small{font-size:.875rem}.mt{margin-top:1rem}.mb{margin-bottom:1rem}.grid-2,.grid-3{display:grid;gap:.75rem 1rem;grid-template-columns:1fr}@media(min-width:640px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.card+.card{margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.5rem 1rem;border:1px solid var(--bordeaux);border-radius:10px;background:var(--bordeaux);color:#fff;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){background:var(--bordeaux-dark);border-color:var(--bordeaux-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-outline{background:transparent;color:var(--bordeaux)}.btn-outline:hover:not(:disabled){background:var(--bordeaux-soft);color:var(--bordeaux-dark)}.btn-danger{background:#a8261c;border-color:#a8261c}.btn-danger:hover:not(:disabled){background:#861b13;border-color:#861b13}.btn-outline-danger{background:transparent;color:#a8261c;border-color:#a8261c}.btn-outline-danger:hover:not(:disabled){background:#f8d9d6;color:#861b13;border-color:#861b13}.btn-sm{min-height:36px;padding:.25rem .75rem;font-size:.9rem}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:.25rem}.field>label,.field>.label{font-size:.9rem;font-weight:600}.input,select.input,textarea.input{width:100%;min-height:44px;padding:.5rem .75rem;border:1px solid #c9b99f;border-radius:10px;background:#fff;color:var(--ink);font:inherit}.input:focus,select.input:focus,textarea.input:focus{border-color:var(--bordeaux);outline:3px solid rgba(160,122,56,.35);outline-offset:0}.input.invalid,.input.ng-invalid.ng-touched,select.input.invalid,select.input.ng-invalid.ng-touched,textarea.input.invalid,textarea.input.ng-invalid.ng-touched{border-color:#a8261c}textarea.input{min-height:96px;resize:vertical}.hint{font-size:.8rem;color:var(--ink-soft)}.field-error{font-size:.82rem;color:#a8261c}fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:.75rem 1rem 1rem;margin:0 0 1rem;background:var(--paper)}fieldset legend{padding:0 .4rem;font-family:var(--font-serif);font-weight:600;color:var(--bordeaux-dark)}.alert{display:flex;gap:.5rem;padding:.7rem .9rem;border-radius:10px;border:1px solid;margin-bottom:1rem}.alert-danger{background:#fbe6e3;border-color:#e3a8a2;color:#7a1a12}.alert-info{background:#f3ead6;border-color:#dcc79a;color:#5b4414}.alert-success{background:#e1f0e1;border-color:#a6cfa8;color:#1d4d24}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.badge:before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentcolor}.st-TooYoung{background:var(--st-tooyoung-bg);color:var(--st-tooyoung-fg)}.st-Ready{background:var(--st-ready-bg);color:var(--st-ready-fg)}.st-Peak{background:var(--st-peak-bg);color:var(--st-peak-fg)}.st-DrinkSoon{background:var(--st-drinksoon-bg);color:var(--st-drinksoon-fg)}.st-PastPeak{background:var(--st-pastpeak-bg);color:var(--st-pastpeak-fg)}.ai-note{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-style:italic;color:#5b4414;background:#f3ead6;border:1px dashed #c9ad6c;border-radius:6px;padding:.05rem .45rem}.chips{display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .65rem;border-radius:999px;background:var(--cream-deep);color:var(--ink);font-size:.85rem}.chip button{border:0;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 .15rem;min-width:24px;min-height:24px}.chip button:hover{color:#a8261c}.spinner{display:inline-block;width:1.1rem;height:1.1rem;border:2px solid var(--line);border-top-color:var(--bordeaux);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}*{transition:none!important}}.empty{text-align:center;padding:2rem 1rem;color:var(--ink-soft)}code,.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}@media(min-width:720px){.page{padding-bottom:2rem}}
