:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#faf9f7;--surface:#fff;--surface-muted:#f4f1ec;--border:#e2e0dc;--border-strong:#c8c4bd;--text:#1c1b19;--muted:#5c5852;--accent:#2f2a24;--accent-hover:#1c1915;--danger-bg:#fdf2f2;--danger-border:#e8bcbc;--danger-text:#8c2323;--ok-bg:#eef6ef;--ok-text:#275d2c;--rating-high-fg:#1f6f43;--rating-high-bg:#eaf5ee;--rating-high-border:#b7dec6;--rating-high-accent:#2e8b57;--rating-good-fg:#3f6a28;--rating-good-bg:#f0f6eb;--rating-good-border:#c9dfba;--rating-good-accent:#659648;--rating-mid-fg:#8a5a00;--rating-mid-bg:#fef6e6;--rating-mid-border:#efd5a0;--rating-mid-accent:#d99b26;--rating-low-fg:#9b2c2c;--rating-low-bg:#fdf0f0;--rating-low-border:#eabcbc;--rating-low-accent:#d65a5a;--rating-none-fg:#8c867e;--star-empty:#dedad2}*{box-sizing:border-box}html,body{width:100%;max-width:100%;overflow-x:hidden}body{color:var(--text);background:var(--bg);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;line-height:1.5}#app{width:100%;max-width:100%}body.modal-open{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button,input,select,textarea,label{touch-action:manipulation}.page{width:100%;max-width:960px;padding:20px 16px 40px;padding-left:calc(16px + env(safe-area-inset-left,0px));padding-right:calc(16px + env(safe-area-inset-right,0px));padding-bottom:calc(40px + env(safe-area-inset-bottom,0px));margin:0 auto}.topbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:14px;display:flex}.topbar-brand{align-items:center;gap:10px;display:flex}.topbar h1{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}.topbar-actions{align-items:center;gap:8px;display:flex}.badge{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.badge-ok{background:var(--ok-bg);color:var(--ok-text);border-color:#c5dfc7}.badge-warn{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:500}.btn:hover:not(:disabled){background:var(--surface-muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:6px;max-width:100%;padding:16px}.banner-error{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text);border-radius:4px;margin-bottom:14px;padding:9px 12px;font-size:13px}.login-wrap{max-width:360px;margin:48px auto 0}.login-wrap h2{margin:0 0 6px;font-size:16px}.muted{color:var(--muted)}.workspace{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;width:100%;max-width:100%;display:grid}.workspace>*{min-width:0}.mobile-nav-row{display:none}.list-panel{padding:0;overflow:hidden}.list-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.coffee-list{margin:0;padding:0;list-style:none}.coffee-list li+li{border-top:1px solid var(--border)}.coffee-item{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:10px 14px;display:block}.coffee-item:hover{background:var(--surface-muted)}.coffee-item-active{background:var(--surface-muted);box-shadow:inset 3px 0 0 var(--accent)}.coffee-item-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.coffee-item-title{font-size:14px;font-weight:600}.coffee-count-badge{flex-shrink:0;padding:1px 6px;font-size:11px}.coffee-item-details{flex-direction:column;gap:2px;margin-top:6px;display:flex}.coffee-item-row{grid-template-columns:58px minmax(0,1fr);gap:6px;font-size:12px;display:grid}.kv-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:600}.kv-value{min-width:0;color:var(--text);overflow-wrap:anywhere}.detail-header{border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:12px}.eyebrow-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:2px;font-size:11px;font-weight:600}.detail-header h2{margin:0;font-size:18px}.detail-subtitle{color:var(--muted);margin-top:2px}.section-title-first{margin-top:0}.meta-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 14px;margin:0 0 18px;display:grid}.meta-cell{border:1px solid var(--border);background:var(--bg);border-radius:4px;min-width:0;padding:8px 10px}.meta-grid dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.meta-grid dd{overflow-wrap:anywhere;margin:2px 0 0;font-size:13px;font-weight:500}.btn-sm{padding:4px 8px;font-size:12px}.section-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:18px 0 10px;display:flex}.section-header-row .section-title{margin:0}.sort-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sort-label{color:var(--muted);font-size:12px}.sort-select{border:1px solid var(--border-strong);background:var(--surface);border-radius:4px;padding:4px 8px;font-size:12px}.sort-select:focus{outline:2px solid var(--accent);outline-offset:1px}.section-title{margin:18px 0 10px;font-size:14px;font-weight:600}.tasting-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tasting-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;padding:12px}.tasting-card-high{border-left:3px solid var(--rating-high-accent)}.tasting-card-good{border-left:3px solid var(--rating-good-accent)}.tasting-card-mid{border-left:3px solid var(--rating-mid-accent)}.tasting-card-low{border-left:3px solid var(--rating-low-accent)}.tasting-top{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;font-size:13px;font-weight:400;display:flex}.tasting-title-group{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.tasting-header-pair{align-items:center;gap:6px;display:inline-flex}.tasting-method-val{font-size:13px;font-weight:600}.tasting-date-val{color:var(--text);font-size:12px}.rating-badge{border:1px solid var(--border);border-radius:4px;align-items:center;gap:5px;padding:1px 7px;font-size:12px;font-weight:600;display:inline-flex}.rating-score{font-variant-numeric:tabular-nums}.rating-unrated{font-size:12px}.rating-tier-high{color:var(--rating-high-fg)}.rating-badge.rating-tier-high{background:var(--rating-high-bg);border-color:var(--rating-high-border)}.rating-tier-good{color:var(--rating-good-fg)}.rating-badge.rating-tier-good{background:var(--rating-good-bg);border-color:var(--rating-good-border)}.rating-tier-mid{color:var(--rating-mid-fg)}.rating-badge.rating-tier-mid{background:var(--rating-mid-bg);border-color:var(--rating-mid-border)}.rating-tier-low{color:var(--rating-low-fg)}.rating-badge.rating-tier-low{background:var(--rating-low-bg);border-color:var(--rating-low-border)}.rating-tier-none{color:var(--rating-none-fg)}.star-row-display{align-items:center;gap:1px;display:inline-flex}.star-display-unit{display:inline-flex}.star-icon{width:20px;height:20px;display:block}.star-icon-sm{width:13px;height:13px}.star-bg{fill:var(--star-empty)}.star-fg{fill:currentColor}.star-input-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.star-input-stars{align-items:center;gap:2px;display:inline-flex}.star-input-unit{width:20px;height:20px;display:inline-flex;position:relative}.star-hit{cursor:pointer;background:0 0;border:0;width:50%;margin:0;padding:0;position:absolute;top:0;bottom:0}.star-hit:disabled{cursor:not-allowed}.star-hit-left{left:0}.star-hit-right{right:0}.star-hit:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chip-row{flex-wrap:wrap;gap:5px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:3px 9px;font-size:12px}.chip:hover:not(:disabled){background:var(--surface-muted)}.chip:disabled{opacity:.55;cursor:not-allowed}.chip-active{background:var(--accent);border-color:var(--accent);color:#fff}.chip-active:hover:not(:disabled){background:var(--accent-hover)}.chip-custom-input{margin-top:4px}.slider-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.slider-status{align-items:center;gap:6px;display:inline-flex}.slider-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.slider-unset{color:var(--muted);font-size:12px}.slider-clear{padding:1px 7px;font-size:11px}.slider-controls{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.field input.slider-range{width:100%;min-width:0;accent-color:var(--accent);cursor:pointer;background:0 0;border:0;flex:1;padding:0}.field input.slider-range:disabled{opacity:.55;cursor:not-allowed}.field input.slider-number{text-align:right;font-variant-numeric:tabular-nums;flex:0 0 80px;width:80px}.slider-bounds{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:11px;display:flex}.nested-tasting-wrap{margin-top:10px}.tasting-spec-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.tasting-spec-cell{border:1px solid var(--border);background:var(--bg);border-radius:4px;min-width:0;padding:6px 8px}.tasting-spec-cell dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10px;font-weight:600}.tasting-spec-cell dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:2px 0 0;font-size:13px;font-weight:500}.tasting-notes-block{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.tasting-notes-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px;font-size:10px;font-weight:600}.tasting-notes{white-space:pre-wrap;margin:0;font-size:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;display:grid}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field-full{grid-column:1/-1}.field label{color:var(--muted);font-size:12px;font-weight:500}.field input,.field textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:4px;width:100%;min-width:0;max-width:100%;padding:6px 8px;font-size:13px}.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.form-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.checkbox-row{align-items:center;gap:8px;margin:12px 0 4px;font-size:13px;display:flex}.modal-backdrop{z-index:20;background:#1c1b196b;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;width:100%;max-width:540px;padding:18px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-header h2{margin:0;font-size:16px}.empty-state{color:var(--muted);padding:18px 14px;font-size:13px}@media (max-width:768px),(pointer:coarse){.star-input-stars{gap:3px}.star-input-unit,.star-input-unit .star-icon{width:28px;height:28px}}@media (max-width:768px){.workspace{grid-template-columns:minmax(0,1fr)}.workspace-mobile-list .detail-panel,.workspace-mobile-detail .list-panel{display:none}.mobile-nav-row{margin-bottom:10px;display:flex}.coffee-item{padding:11px 12px}.btn{min-height:36px;padding:6px 11px;font-size:13px}.btn-sm{min-height:32px;padding:5px 9px;font-size:12px}.chip-row{gap:6px}.chip{min-height:32px;padding:5px 10px;font-size:12px}.slider-clear{min-height:28px;padding:3px 8px;font-size:11px}.field input.slider-range{min-height:32px}.field input.slider-number{flex:0 0 80px;width:80px;min-height:36px}.checkbox-row{min-height:34px}.checkbox-row input[type=checkbox]{width:18px;height:18px}.field input,.field textarea,.sort-select,.field input.slider-number{font-size:14px}}@supports (-webkit-touch-callout:none){@media (max-width:768px){.field input,.field textarea,.sort-select,.field input.slider-number{font-size:16px}}}@media (max-width:540px){.page{padding:12px 12px 28px;padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px));padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}.panel{padding:12px}.panel.list-panel{padding:0}.topbar{gap:8px;margin-bottom:12px;padding-bottom:10px}.topbar h1{font-size:16px}.topbar-actions{gap:6px}.login-wrap{max-width:none;margin-top:20px}.login-wrap .form-actions .btn{width:100%}.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tasting-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.tasting-top{flex-direction:column;align-items:flex-start;gap:6px}.tasting-title-group{justify-content:space-between;gap:6px 10px;width:100%}.sort-controls{width:100%}.sort-select{flex:120px;min-width:0;min-height:34px}.form-grid{grid-template-columns:minmax(0,1fr)}.form-actions{flex-wrap:wrap}.modal-backdrop{padding:10px 8px 14px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}.modal-card{padding:12px}}
