.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0b1120;--bg-2: #0e1424;--surface: #161e2e;--surface-2: #1c2638;--border: #2a3548;--border-2: #374151;--text: #f8fafc;--muted: #93a1b5;--accent: #f59e0b;--accent-2: #fbbf24;--green: #10b981;--red: #ef4444;--blue: #3b82f6;--purple: #a855f7;--radius: 12px;--radius-sm: 8px;--font: "Inter", system-ui, sans-serif;--shadow: 0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.25);--shadow-lg: 0 8px 30px rgba(0,0,0,.45);--ring: 0 0 0 3px rgba(245, 158, 11, .25);--grad-accent: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%)}html{scrollbar-color:var(--border-2) transparent}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(59,130,246,.07),transparent 60%),radial-gradient(1000px 500px at 0% 0%,rgba(245,158,11,.06),transparent 55%),var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3{letter-spacing:-.01em}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}button{cursor:pointer;border:none;border-radius:var(--radius-sm);padding:.55rem 1.1rem;font-size:.875rem;font-weight:600;background:var(--grad-accent);color:#1a1206;box-shadow:0 1px #ffffff26 inset,var(--shadow);transition:transform .12s ease,box-shadow .12s ease,opacity .12s,background .12s}button:hover{transform:translateY(-1px);box-shadow:0 4px 16px #f59e0b4d,var(--shadow)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border-2);box-shadow:none}button.secondary:hover{background:var(--border);box-shadow:none;transform:translateY(-1px)}input,select,textarea{width:100%;padding:.55rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--bg-2);color:var(--text);font-size:.875rem;font-family:inherit;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input::placeholder,textarea::placeholder{color:#5b6577}.card{background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}a .card,.card.interactive{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}a:hover .card,.card.interactive:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border-2)}nav{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;padding:.7rem 1.5rem;background:#101624cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}nav .logo{font-size:1.2rem;font-weight:800;margin-right:.75rem;background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent}nav a{color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:500;padding:.4rem .7rem;border-radius:var(--radius-sm);transition:color .12s,background .12s}nav a:hover{color:var(--text);background:var(--surface-2)}nav a.active{color:var(--accent-2);background:#f59e0b1f}nav .spacer{flex:1}.page{width:100%;max-width:1680px;margin:0 auto;padding:1.75rem clamp(1.5rem,4vw,3rem);animation:fadeInUp .35s ease both}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.fermenting{background:#064e3b;color:#6ee7b7}.badge.done{background:#1e3a5f;color:#93c5fd}.badge.brewing{background:#451a03;color:#fcd34d}.badge.planned{background:#1f2937;color:#9ca3af}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid transparent}label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.3rem}.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.stat .stat-value{font-size:1.5rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.stat .stat-label{font-size:.7rem;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}.live-dot{position:relative;width:9px;height:9px;border-radius:50%;background:var(--green);display:inline-block}.live-dot:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;background:var(--green);opacity:.5;animation:ping 1.6s cubic-bezier(0,0,.2,1) infinite}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 37%,var(--surface) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s ease infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ping{75%,to{transform:scale(2.2);opacity:0}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes slideIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.row-enter{animation:slideIn .25s ease both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media print{nav,.no-print{display:none!important}body{background:#fff}.page{max-width:none;padding:0;margin:0}}@media (max-width: 640px){nav{gap:2px 4px;padding:.5rem .75rem}nav .logo{font-size:1.05rem;margin-right:.4rem}nav a{padding:.35rem .5rem;font-size:.82rem}nav .spacer{flex-basis:100%;height:0}.page{padding:1rem .85rem}.grid{grid-template-columns:1fr}button{padding:.55rem 1rem}}
