:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#25231f;background:#fff;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#fff}button,input{font:inherit}.shell{width:min(100%,760px);min-height:100vh;margin:0 auto;background:#fff}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:calc(14px + env(safe-area-inset-top)) 18px 14px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid #ececec}.eyebrow{margin-bottom:2px;color:#777;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:22px;line-height:1.15}h2{margin-bottom:8px;font-size:18px}.content{padding:16px 14px calc(28px + env(safe-area-inset-bottom))}.host-badge{padding:5px 8px;border-radius:999px;background:#f3f3f3;color:#6d655c;font-size:11px;font-weight:700}.icon-button{width:36px;height:36px;border:0;border-radius:50%;background:#f3f3f3;cursor:pointer}.card-list{display:grid;gap:10px}.wine-card{width:100%;display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:10px;text-align:left;color:inherit;background:white;border:1px solid #e8e8e8;border-radius:16px;box-shadow:0 3px 14px rgba(55,46,35,.04);cursor:pointer}.wine-photo{width:72px;height:88px;border-radius:11px;object-fit:cover;background:#f0f0f0}.photo-placeholder{background:linear-gradient(135deg,rgba(255,255,255,.25),transparent),#ededed}.wine-card-body{min-width:0;display:grid;gap:6px}.wine-card-body strong{overflow:hidden;font-size:15px;line-height:1.25;text-overflow:ellipsis}.wine-meta{color:#737373;font-size:12px;line-height:1.35}.chevron{color:#999;font-size:28px}.detail{display:grid;gap:16px}.wine-detail{padding:14px;background:white;border:1px solid #e8e8e8;border-radius:18px}.photo-strip{display:flex;gap:8px;overflow-x:auto;margin:-2px -2px 14px;padding:2px}.detail-photo{flex:0 0 auto;width:112px;height:142px;object-fit:cover;border-radius:12px;background:#ededed}.tasting-list{display:grid;gap:9px;margin-top:14px}.tasting{padding:11px;border-radius:12px;background:#f7f7f7}.tasting p{margin:6px 0 0;line-height:1.45}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.chips span{padding:5px 8px;border-radius:999px;background:#f1f1f1;color:#555;font-size:11px}.login{padding:44px 24px}.login form{display:grid;gap:10px}.login input,.login button{width:100%;min-height:44px;border-radius:11px}.login input{padding:0 12px;border:1px solid #d0d0d0;background:white}.login button{border:0;background:#292622;color:white;font-weight:700}.loading,.empty,.error{padding:32px 14px;text-align:center;color:#737373}.error{color:#8a3434}.compact{padding:14px 0 2px}.hidden{display:none!important}@media(min-width:700px){body{padding:24px 0}.shell{min-height:calc(100vh - 48px);border-radius:22px;overflow:clip;box-shadow:0 18px 60px rgba(60,50,40,.10)}}
.page-actions{display:flex;justify-content:flex-end;margin-bottom:12px}.action-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.primary-button,.secondary-button,.text-button{min-height:40px;padding:0 13px;border-radius:11px;font:inherit;cursor:pointer}.primary-button{border:0;background:#292622;color:white;font-weight:700}.secondary-button{border:1px solid #d9d9d9;background:#fff;color:#3b3732;font-weight:650}.text-button{min-height:32px;padding:0;border:0;background:transparent;color:#7b4f3c;text-align:left}.inline-form{display:grid;gap:10px;margin-top:12px;padding:12px;border-radius:14px;background:#f7f7f7}.inline-form label{display:grid;gap:5px;color:#555;font-size:12px}.inline-form input,.inline-form textarea{width:100%;padding:9px 10px;border:1px solid #d9d9d9;border-radius:10px;background:#fff;color:#25231f}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.detail-section{padding:14px;background:white;border:1px solid #e8e8e8;border-radius:18px}.relation-list{display:grid;gap:9px}.relation-card{padding:11px;border-radius:12px;background:#f7f7f7}.relation-card p{margin:6px 0;line-height:1.45}.relation-card a{font-size:12px;color:#7b4f3c}.relation-meta{color:#725c4b;font-size:11px;font-weight:700}

.description-collapsible{background:white;border:1px solid #e8e8e8;border-radius:18px;overflow:hidden}
.description-trigger{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:14px;border:0;background:white;color:#25231f;text-align:left;font:inherit;font-weight:700;cursor:pointer}
.description-icon{font-size:17px;color:#737373}
.description-chevron{font-size:24px;color:#999;transform:rotate(0deg);transition:transform .15s ease}
.description-trigger[aria-expanded="true"] .description-chevron{transform:rotate(90deg)}
.description-body{padding:0 14px 14px}
.description-points{display:grid;gap:7px;margin:0 0 14px;padding-left:19px;line-height:1.4}
.description-sources{display:grid;gap:12px}
.description-source{padding-top:12px;border-top:1px solid #e8e2d9}
.description-source:first-child{padding-top:0;border-top:0}
.description-source p{margin:5px 0 0;line-height:1.45}
.reference-price{margin-top:8px;color:#555;font-size:13px;font-weight:650}

.photo-upload-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.photo-upload-form select{min-height:40px;padding:0 10px;border:1px solid #d9d9d9;border-radius:11px;background:#fff;color:#3b3732}
.photo-picker{display:inline-flex;align-items:center;justify-content:center}
.public-photo-check{flex-basis:100%;display:flex;gap:8px;align-items:flex-start;color:#555;font-size:12px;line-height:1.35}
.public-photo-check input{margin-top:2px}

.photo-strip-empty{overflow:visible}
.empty-photo-card{width:100%;min-height:138px;display:grid;grid-template-columns:76px 1fr auto;gap:14px;align-items:center;padding:14px;border:1px dashed #d9d9d9;border-radius:14px;background:#fff;color:inherit;text-align:left;cursor:pointer}
.empty-photo-visual{width:76px;height:104px;border-radius:10px;background:linear-gradient(135deg,rgba(255,255,255,.45),transparent),#e9e3da;box-shadow:inset 0 0 0 1px rgba(105,95,82,.06)}
.empty-photo-copy{display:grid;gap:4px}
.empty-photo-copy strong{font-size:14px}
.empty-photo-copy span{color:#777;font-size:12px;line-height:1.35}
.empty-photo-arrow{color:#999;font-size:28px}

.profile-entry{width:32px;height:32px;display:grid;place-items:center;border:1px solid #e3e3e3;border-radius:50%;background:#fff;color:#555;font-size:12px;font-weight:700;cursor:pointer}
.topbar h1.hidden{display:block!important;visibility:hidden}
.profile-placeholder{max-width:520px}

/* WineCard is a presentation object: one canonical image left, identity text right. */
.wine-detail.wine-hero{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:start;padding:14px}
.wine-hero-media{min-width:0}
.wine-hero-photo{display:block;width:120px;aspect-ratio:3/4;object-fit:contain;border-radius:10px;background:#f4f4f4}
.wine-hero-photo-empty{border:1px solid #ececec;background:#f7f7f7}
.wine-hero-copy{min-width:0;padding-top:2px}
.wine-hero-copy h2{margin-bottom:8px}
@media(max-width:430px){
  .wine-detail.wine-hero{grid-template-columns:96px minmax(0,1fr);gap:14px}
  .wine-hero-photo{width:96px}
}

.topbar-leading{display:flex;align-items:center}
.topbar-center{min-width:0}
.global-search{width:100%}
.global-search input{width:100%;height:38px;padding:0 14px;border:1px solid #dedede;border-radius:999px;background:#f7f7f7;color:#25231f;outline:0}
.global-search input:focus{border-color:#bdbdbd;background:#fff}
.add-entry{font-size:24px;font-weight:400;background:#fff}
.home{display:grid;gap:24px}
.quick-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.quick-filters button{display:grid;gap:3px;padding:10px 8px;border:0;border-bottom:1px solid #e9e9e9;background:#fff;color:inherit;text-align:center;cursor:pointer}
.quick-filters strong{font-size:13px}.quick-filters span{color:#777;font-size:11px}
.home-sections{display:grid;gap:26px}.home-section{min-width:0}
.home-section-title{width:100%;display:flex;justify-content:space-between;align-items:center;margin:0 0 10px;padding:0;border:0;background:transparent;color:inherit;font-size:18px;font-weight:700;text-align:left;cursor:pointer}
.home-section-title span:last-child{color:#999;font-size:26px;font-weight:400}
.home-strip{display:flex;gap:12px;overflow-x:auto;padding:1px 1px 8px;scroll-snap-type:x proximity}
.home-wine-card{flex:0 0 168px;display:grid;gap:6px;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;scroll-snap-align:start}
.home-wine-photo{width:168px;height:190px;border-radius:12px;object-fit:contain;background:#f5f5f5}
.home-wine-title{font-size:14px;font-weight:700;line-height:1.25}
.add-capture-button{justify-self:start}

/* Structural hierarchy only; final visual design comes later. */
.wine-hero-title-row{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.wine-hero-title-row h2{margin:0}
.wine-actions-toggle{flex:0 0 auto;width:32px;height:32px;border:1px solid #ddd;border-radius:50%;background:#fff;font-size:22px;line-height:1;cursor:pointer}
.wine-actions-menu{display:flex;gap:8px;margin-top:10px}
.wine-actions-menu button{min-height:34px;padding:0 10px;border:1px solid #ddd;border-radius:9px;background:#fff;cursor:pointer}
.reference-price{display:inline-block;margin-top:10px;padding:0;border:0;background:transparent;font:inherit;font-weight:700;text-align:left;cursor:pointer}
.price-observed{color:#2f6b48}.price-estimate{color:#a66b00}.price-reference{color:#555}.price-missing{color:#999}
.source-capture-link{display:block;margin-top:10px;padding:0;border:0;background:transparent;color:#666;text-decoration:underline;cursor:pointer}
.description-summary{width:100%;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px;border:0;background:#fff;color:inherit;text-align:left;cursor:pointer}
.description-summary-copy{display:grid;gap:6px;line-height:1.4}.description-summary-copy span{display:block}
.description-summary[aria-expanded="true"] .description-chevron{transform:rotate(90deg)}
.tasting{display:grid;gap:8px}.tasting-main{display:grid;gap:6px;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.tasting-comment{line-height:1.45}.tasting-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tasting-price{padding:0;border:0;background:transparent;color:#555;font-size:11px;font-weight:700;text-align:left;cursor:pointer}
.tasting-expand{width:28px;height:28px;border:0;background:transparent;color:#999;font-size:22px;cursor:pointer;transition:transform .15s ease}.tasting.expanded .tasting-expand{transform:rotate(90deg)}
.tasting-details{display:grid;gap:10px;padding-top:4px}.tasting-photo-strip{display:flex;gap:8px;overflow-x:auto}
.tasting-photo{flex:0 0 92px;width:92px;height:92px;border-radius:8px;object-fit:cover;background:#f2f2f2}
.relation-card-button{width:100%;display:grid;gap:4px;border:0;text-align:left;cursor:pointer}.link-existing-purchase{display:grid;gap:8px;margin-bottom:16px}
.structural-form{display:grid;gap:12px}.structural-form label{display:grid;gap:5px;font-size:12px;color:#555}
.structural-form input,.structural-form textarea{width:100%;padding:9px 10px;border:1px solid #d9d9d9;border-radius:9px;background:#fff;color:#25231f}

/* Keep source-derived description visually inside the WineCard presentation. */
.wine-detail.wine-overview{display:block;padding:14px}
.wine-overview>.wine-hero{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:start}
.wine-overview>.description-collapsible{margin-top:14px;border:0;border-top:1px solid #e8e8e8;border-radius:0}
.wine-overview>.description-collapsible .description-summary{padding:14px 0 0}
.wine-overview>.description-collapsible .description-body{padding:12px 0 0}
@media(max-width:430px){
  .wine-overview>.wine-hero{grid-template-columns:96px minmax(0,1fr);gap:14px}
}

.processing-entry{justify-self:start;padding:0;border:0;background:transparent;text-decoration:underline;cursor:pointer;color:#666}.capture-create-actions{display:flex;gap:8px;flex-wrap:wrap}

.wine-title-actions{display:flex;gap:6px}.wine-edit-button{width:32px;height:32px;border:1px solid #ddd;border-radius:50%;background:#fff;cursor:pointer}
.capture-open{border:0;background:transparent;padding:0;text-decoration:underline;cursor:pointer;float:right}
.annotation-gallery,.edit-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.photo-frame{position:relative;aspect-ratio:1/1;overflow:hidden;background:#f3f3f3;touch-action:none}.photo-editor-image{width:100%;height:100%;object-fit:contain}
.selection-box,.saved-focus,.saved-crop{position:absolute;box-sizing:border-box;pointer-events:none}.selection-box,.saved-focus{border:2px solid currentColor}.saved-crop{border:2px dashed currentColor}.photo-tools{display:flex;gap:6px;margin-top:6px}
.upload-photo{display:inline-grid;gap:6px;margin-top:12px}.edit-photo-item{display:grid;gap:6px}

.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.compact-upload{display:inline-flex;align-items:center;cursor:pointer;font-weight:600}
.compact-upload input{display:none}
.photo-item-actions{display:flex;gap:6px;flex-wrap:wrap}
.reference-price{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.price-main{font-weight:700}
.price-contexts{display:inline-flex;gap:8px;flex-wrap:wrap}
.price-context{display:inline-flex;align-items:center;gap:3px;font-weight:600;white-space:nowrap}

.wine-cover-upload{position:relative;display:block;width:max-content;cursor:pointer}
.wine-cover-upload input{display:none}
.wine-cover-camera{position:absolute;right:6px;bottom:6px;min-width:24px;height:24px;padding:0 5px;display:grid;place-items:center;border:1px solid #d8d8d8;border-radius:999px;background:rgba(255,255,255,.94);font-size:13px;line-height:1}
.wine-hero-photo-empty{display:grid;place-items:center;align-content:center;gap:4px;color:#aaa}
.empty-cover-icon{font-size:24px;line-height:1}
.empty-cover-text{font-size:11px}
.wine-cover-upload:hover .wine-hero-photo-empty{background:#f1f1f1}

.photo-tools button.active{background:#2f2c28;color:#fff;border-color:#2f2c28}
.photo-frame.editing{cursor:crosshair}
.photo-tool-hint{position:absolute;left:8px;top:8px;z-index:4;padding:4px 7px;border-radius:6px;background:rgba(255,255,255,.92);font-size:11px;pointer-events:none}
.selection-box{z-index:3;background:rgba(0,0,0,.08)}
.saved-focus{z-index:2;background:rgba(255,255,255,.08)}
.saved-crop{z-index:2}

.photo-upload-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.48)}
.photo-upload-dialog{width:min(620px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:16px;border-radius:16px;background:#fff;box-shadow:0 16px 60px rgba(0,0,0,.22)}
.photo-upload-preview{position:relative;display:grid;place-items:center;min-height:260px;max-height:62vh;overflow:hidden;background:#f3f3f3;touch-action:none}
.photo-upload-preview img{display:block;max-width:100%;max-height:62vh;object-fit:contain;user-select:none;pointer-events:none}
.photo-upload-preview.editing{cursor:crosshair}
.photo-upload-tools,.photo-upload-actions{display:flex;gap:8px;margin-top:12px}
.photo-upload-tools button{min-height:38px;padding:0 12px;border:1px solid #ddd;border-radius:9px;background:#fff;cursor:pointer}
.photo-upload-tools button.active{background:#2f2c28;color:#fff;border-color:#2f2c28}
.photo-upload-actions{justify-content:flex-end}

.capture-error{margin:8px 0;color:#a33;font-size:13px}.capture-row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}


/* Recompose 2026-09-28: keep original visual base, only recompose current navigation. */
:root{
  --accent:#9d3044;
  --accent-dark:#812538;
  --line:#e9e9e9;
  --muted:#757575;
  --surface:#fff;
  --soft:#f7f7f7;
}
body{background:#fff;color:#25231f}
.shell{max-width:760px;background:#fff}
.content{padding:18px 16px calc(92px + env(safe-area-inset-bottom))}

/* Header: one centered search surface; title becomes subtle context below it. */
.topbar{
  grid-template-columns:38px minmax(0,1fr) 38px;
  gap:8px;
  padding:calc(12px + env(safe-area-inset-top)) 14px 10px;
  border-bottom:0;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
}
.topbar-leading{width:38px;min-width:38px;justify-content:center}
.topbar-spacer{display:block;width:38px;min-width:38px}
.topbar-center{width:100%;min-width:0}
.global-search{
  width:100%;
  min-height:46px;
  display:grid;
  grid-template-columns:20px minmax(0,1fr) auto auto;
  align-items:center;
  gap:6px;
  padding:0 8px 0 14px;
  border:1px solid #ddd;
  border-radius:24px;
  background:#fff;
  box-shadow:0 2px 10px rgba(40,34,29,.06);
}
.global-search:not(.listing-mode){grid-template-columns:20px minmax(0,1fr) auto}
.global-search input{
  width:100%;
  height:44px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#25231f;
  outline:0;
  box-shadow:none;
  font-size:15px;
}
.search-icon{color:#777;font-size:18px;line-height:1}
.search-sort-button,.search-filter-button{
  width:34px;height:34px;padding:0;border:0;background:transparent;color:#6f6f6f;
  font-size:18px;cursor:pointer;
}
.search-filter-button{border-left:1px solid #e7e7e7}
.topbar-center #page-title:not(.hidden){
  display:block!important;
  margin:7px 4px 0;
  color:#888;
  font-size:11px;
  line-height:1.2;
  font-weight:650;
}
.topbar-center #page-title:not(.hidden)::before{content:"Каталог · ";color:#aaa;font-weight:500}

/* Home keeps the original shelf feel. */
.home{display:grid;gap:26px}
.home-utility-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.all-wines-entry,.processing-entry{
  padding:0;border:0;background:transparent;color:#777;font-size:12px;font-weight:650;cursor:pointer;text-decoration:none;
}
.all-wines-entry{display:inline-flex;align-items:center;gap:4px}
.all-wines-entry span{font-size:16px;color:#aaa}
.home-sections{display:grid;gap:30px}
.home-section-title{
  margin:0 0 10px;
  font-size:18px;
  font-weight:700;
}
.home-strip{
  display:flex;gap:12px;overflow-x:auto;
  margin:0 -16px;padding:0 16px 8px;scroll-padding-left:16px;
}
.home-wine-card{flex:0 0 150px;gap:6px}
.home-wine-photo{
  width:150px;height:190px;border-radius:12px;object-fit:cover;background:#f3f3f3;
  box-shadow:0 2px 8px rgba(50,44,38,.05);
}
.home-wine-title{font-size:13px;font-weight:700;line-height:1.28}
.home-wine-card .wine-meta{font-size:11px}

/* Listing cards: keep actual cards, but compact and photo-first. */
.card-list{display:grid;gap:10px}
.wine-card{
  grid-template-columns:86px minmax(0,1fr) 20px;
  min-height:118px;
  gap:13px;
  padding:10px;
  border:1px solid #e8e8e8;
  border-radius:14px;
  background:#fff;
  box-shadow:0 2px 10px rgba(55,46,35,.035);
}
.wine-photo{width:86px;height:98px;border-radius:10px;object-fit:cover}
.wine-card-body strong{font-size:15px;line-height:1.28}
.chevron{font-size:24px}

/* Bottom navigation: icon-only, balanced, one strong central action. */
.bottom-nav{
  position:fixed;left:50%;bottom:0;z-index:20;transform:translateX(-50%);
  width:min(100%,760px);
  display:grid;grid-template-columns:repeat(5,1fr);align-items:center;
  padding:7px 8px calc(8px + env(safe-area-inset-bottom));
  border-top:1px solid #e8e8e8;background:rgba(255,255,255,.98);backdrop-filter:blur(14px);
  box-shadow:0 -4px 18px rgba(40,34,29,.045);
}
.bottom-nav button{
  min-height:52px;padding:0;border:0;background:transparent;color:#85817b;display:grid;place-items:center;cursor:pointer;
}
.bottom-nav button.active{color:var(--accent)}
.bottom-nav-icon,.bottom-nav-plus{display:grid;place-items:center}
.bottom-nav-icon{width:34px;height:34px}
.bottom-nav-icon svg,.bottom-nav-plus svg{
  width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.bottom-nav-plus{
  width:50px;height:50px;border-radius:50%;background:var(--accent);color:#fff;
  box-shadow:0 4px 12px rgba(157,48,68,.18);
}
.bottom-nav-plus svg{width:26px;height:26px}
.bottom-nav-add:active .bottom-nav-plus{background:var(--accent-dark)}

/* Purchase view switch: compact segmented control. */
.purchase-screen{display:grid;gap:16px}
.purchase-view-switch{
  display:grid;grid-template-columns:1fr 1fr;gap:2px;width:min(280px,100%);margin:0 auto;padding:3px;
  border-radius:10px;background:#f3f3f3;
}
.purchase-view-switch button{
  min-height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#777;font-size:13px;font-weight:650;
}
.purchase-view-switch button.active{background:#fff;color:#25231f;box-shadow:0 1px 5px rgba(0,0,0,.08)}

/* Sort/filter use bottom sheets; these are the only intentionally card-like overlays. */
.listing-overlay{position:fixed;inset:0;z-index:1000;display:grid;align-items:end;background:rgba(20,18,16,.34)}
.listing-sheet{
  width:min(680px,100%);margin:0 auto;padding:18px 18px calc(18px + env(safe-area-inset-bottom));
  border-radius:18px 18px 0 0;background:#fff;box-shadow:0 -12px 40px rgba(0,0,0,.12);
}
.listing-sheet-title{margin:0 0 12px;font-size:18px;font-weight:700}
.listing-option{
  width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;
  padding:0;border:0;border-top:1px solid #ececec;background:transparent;color:#25231f;text-align:left;font-size:14px;
}
.listing-option:first-of-type{border-top:0}
.listing-option span{visibility:hidden;color:var(--accent)}
.listing-option.active span{visibility:visible}
.filter-sheet{display:grid;gap:12px}
.filter-sheet label{display:grid;gap:5px;color:#666;font-size:12px}
.filter-sheet select,.filter-sheet input{
  width:100%;min-height:42px;padding:0 10px;border:1px solid #d8d8d8;border-radius:9px;background:#fff;color:#25231f;
}
.filter-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}

/* Add/Capture are workflows: no search bar, clear centered title. */
.topbar:has(#global-search.hidden) .topbar-center{display:grid;place-items:center}
.topbar:has(#global-search.hidden) #page-title{
  margin:0!important;color:#25231f!important;font-size:20px!important;line-height:1.2!important;font-weight:700!important;
}
.topbar:has(#global-search.hidden) #page-title::before{content:none!important}

/* Details keep the original contained visual hierarchy. */
.wine-detail,.detail-section,.description-collapsible{box-shadow:0 2px 10px rgba(55,46,35,.025)}
.photo-upload-overlay{align-items:end;padding:0}
.photo-upload-dialog{width:min(680px,100%);border-radius:18px 18px 0 0}

@media(min-width:700px){
  body{padding:24px 0}
  .shell{min-height:calc(100vh - 48px);border-radius:22px;overflow:clip;box-shadow:0 18px 60px rgba(60,50,40,.10)}
  .bottom-nav{bottom:24px;border-radius:0 0 22px 22px}
  .listing-overlay{place-items:center;padding:24px}
  .listing-sheet{border-radius:16px}
}


/* Product design pass 2026-09-28: composed, tactile, neutral. */
:root{
  --accent:#a12f46;
  --accent-soft:#f7ecef;
  --ink:#252220;
  --muted:#77726d;
  --muted-2:#aaa49e;
  --line:#e8e5e2;
  --soft:#f7f6f4;
  --soft-2:#f1efec;
  --radius-card:14px;
  --radius-control:12px;
}
body{background:#fafafa;color:var(--ink)}
.shell{background:#fff}

/* Search as the stable visual anchor. */
.topbar{
  padding-bottom:12px;
  border-bottom:1px solid rgba(232,229,226,.8);
}
.global-search{
  min-height:48px;
  border-color:#dad6d2;
  border-radius:16px;
  box-shadow:0 3px 14px rgba(42,35,30,.065);
}
.global-search input{height:46px;font-size:15px}
.search-sort-button,.search-filter-button{
  width:36px;height:36px;border-radius:9px;
}
.search-sort-button:active,.search-filter-button:active{background:var(--soft)}
.search-filter-button{border-left:0;position:relative}
.search-filter-button::before{
  content:"";position:absolute;left:-4px;top:8px;bottom:8px;width:1px;background:var(--line)
}

/* Context line: quiet and aligned, never a second headline. */
.topbar-center #page-title:not(.hidden){
  margin:8px 2px 0;
  font-size:11px;
  color:#817c77;
}

/* Home composition. */
.home{gap:22px}
.home-utility-row{
  min-height:28px;
  padding:0 1px 2px;
}
.all-wines-entry,.processing-entry{
  font-size:11px;
  letter-spacing:.01em;
}
.all-wines-entry{color:#68635e}
.processing-entry{color:var(--accent)}
.home-sections{gap:32px}
.home-section-title{
  align-items:center;
  margin-bottom:11px;
  font-size:18px;
  letter-spacing:-.015em;
}
.home-section-title span:last-child{
  width:24px;height:24px;display:grid;place-items:center;
  border-radius:50%;background:var(--soft);color:#8d8781;font-size:20px;
}
.home-strip{gap:12px;padding-bottom:5px}
.home-wine-card{
  flex-basis:146px;
  display:grid;
  gap:6px;
  padding:0;
  border:0;
  background:transparent;
  text-align:left;
}
.home-wine-media{
  display:block;
  width:146px;
  height:184px;
  overflow:hidden;
  border-radius:12px;
  background:var(--soft);
  border:1px solid #ece9e6;
}
.home-wine-photo{
  width:100%;height:100%;
  border-radius:0;
  object-fit:cover;
  box-shadow:none;
}
.home-wine-title{
  min-height:34px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:13px;line-height:1.3;font-weight:720;
}
.home-wine-bottom{
  min-height:18px;
  display:flex;align-items:baseline;justify-content:space-between;gap:6px;
}
.home-wine-bottom .wine-meta{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.home-wine-price{
  flex:0 0 auto;color:#4d4945;font-size:11px;font-weight:700;
}

/* List screens: media cards, not table rows and not floating SaaS tiles. */
.card-list{gap:12px}
.wine-card{
  grid-template-columns:92px minmax(0,1fr) 18px;
  min-height:126px;
  gap:13px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  box-shadow:0 3px 12px rgba(38,31,27,.035);
}
.wine-card:active{transform:scale(.995);background:#fdfdfd}
.wine-photo{
  width:92px;height:106px;
  border-radius:10px;
  object-fit:cover;
  background:var(--soft);
}
.wine-card-body{align-self:stretch;align-content:center;gap:7px}
.wine-card-body strong{
  font-size:15px;
  line-height:1.3;
  letter-spacing:-.01em;
}
.wine-card-foot{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
}
.wine-list-price{
  flex:0 0 auto;
  color:#4d4945;
  font-size:12px;
  font-weight:750;
}
.chevron{font-size:22px;color:#b0aaa4}

/* Detail pages get hierarchy without nesting every paragraph in a card. */
.detail{gap:14px}
.wine-detail,.detail-section,.description-collapsible{
  border-color:var(--line);
  border-radius:16px;
  box-shadow:0 3px 12px rgba(38,31,27,.025);
}
.wine-detail.wine-overview{padding:16px}
.wine-overview>.wine-hero{gap:16px}
.wine-hero-title-row h2{
  font-size:20px;
  line-height:1.2;
  letter-spacing:-.015em;
}
.wine-hero-photo{border-radius:11px}
.wine-edit-button,.wine-actions-toggle{
  border-color:var(--line);
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}
.reference-price{color:#4d4945}
.chips span{
  background:#f4f2ef;
  color:#625d58;
}

/* Add: clear choice first, queue second. */
.add-screen{display:grid;gap:24px}
.add-intro{display:grid;gap:10px}
.add-kicker{
  padding:0 2px;
  color:#76716c;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.capture-create-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
}
.capture-action{
  width:100%;
  min-height:72px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  color:var(--ink);
  text-align:left;
  box-shadow:0 2px 10px rgba(38,31,27,.03);
  cursor:pointer;
}
.capture-action:active{background:var(--soft)}
.capture-action-icon{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:12px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:23px;
  font-weight:500;
}
.capture-action>span:last-child{display:grid;gap:3px}
.capture-action strong{font-size:15px}
.capture-action small{color:var(--muted);font-size:12px;line-height:1.3}
.capture-inbox{padding:14px}
.capture-inbox .section-title-row h2{margin:0;font-size:16px}
.section-count{
  min-width:22px;height:22px;padding:0 6px;
  display:grid;place-items:center;
  border-radius:999px;
  background:var(--soft);
  color:#777;
  font-size:11px;font-weight:700;
}
.capture-inbox .relation-card{
  position:relative;
  padding:12px 0;
  border-radius:0;
  border-bottom:1px solid var(--line);
  background:transparent;
}
.capture-inbox .relation-card:last-child{border-bottom:0}
.capture-open{
  float:none;
  position:absolute;
  inset:0;
  width:100%;height:100%;
  opacity:0;
}

/* Purchase segmented control feels native, not like two buttons. */
.purchase-view-switch{
  width:min(260px,100%);
  padding:3px;
  border:1px solid #e6e2de;
  background:#f2f0ed;
}
.purchase-view-switch button{min-height:36px}
.purchase-view-switch button.active{
  box-shadow:0 1px 4px rgba(37,32,28,.08);
}

/* Bottom nav: slim bar, center action slightly elevated. */
.bottom-nav{
  min-height:70px;
  padding-top:5px;
  box-shadow:0 -5px 18px rgba(38,31,27,.055);
}
.bottom-nav button{min-height:50px}
.bottom-nav-icon{width:36px;height:36px}
.bottom-nav button.active .bottom-nav-icon{
  background:var(--accent-soft);
  border-radius:12px;
}
.bottom-nav-plus{
  width:52px;height:52px;
  transform:translateY(-4px);
  box-shadow:0 5px 15px rgba(161,47,70,.2);
}

/* Forms: lighter field grouping. */
.inline-form,.structural-form{gap:12px}
.inline-form{
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.inline-form input,.inline-form textarea,
.structural-form input,.structural-form textarea,
.structural-form select{
  border-color:#dcd8d4;
  border-radius:10px;
  background:#fff;
}
.primary-button{
  border-radius:10px;
  background:var(--accent);
}
.secondary-button{border-radius:10px}

/* Empty states do not look broken. */
.empty{
  padding:34px 18px;
  color:#928c86;
  font-size:13px;
}
.purchase-groups-placeholder{
  min-height:46vh;
  align-content:center;
  gap:8px;
}
.purchase-placeholder-icon{
  width:46px;height:46px;display:grid;place-items:center;
  border-radius:14px;background:var(--soft);
  font-size:23px;
}
.purchase-groups-placeholder h2{font-size:17px}

/* Desktop remains the same product, only roomier. */
@media(min-width:700px){
  .content{padding-left:22px;padding-right:22px}
  .home-strip{margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}
  .home-wine-card{flex-basis:160px}
  .home-wine-media{width:160px;height:202px}
}


/* Library switch: replaces the redundant page title. */
.library-view-switch{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3px;
  width:min(250px,100%);
  margin:0 auto 16px;
  padding:3px;
  border:1px solid #e5e1de;
  border-radius:11px;
  background:#f3f1ee;
}
.library-view-switch button{
  min-height:36px;
  padding:0 14px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#77716b;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.library-view-switch button.active{
  background:#fff;
  color:var(--ink);
  box-shadow:0 1px 5px rgba(38,31,27,.08);
}
.home-utility-row-single{
  justify-content:flex-end;
}


/* Contextual search: one affordance, filter sheet owns sorting. */
.global-search,
.global-search.listing-mode{
  grid-template-columns:20px minmax(0,1fr) 38px;
}
.search-filter-button{
  width:38px;
  border-left:1px solid var(--line);
}
.filter-sheet label:first-of-type{
  padding-bottom:10px;
  margin-bottom:2px;
  border-bottom:1px solid var(--line);
}


/* Visual cleanup: one hierarchy, fewer competing separators. */
.topbar{
  border-bottom:0;
  box-shadow:none;
}
.library-view-switch{
  border:0;
  background:#f4f2ef;
  box-shadow:none;
  margin-bottom:14px;
}
.library-view-switch button{
  border:0;
}
.library-view-switch button.active{
  box-shadow:0 1px 4px rgba(38,31,27,.07);
}
.card-list{
  gap:10px;
}
.wine-card{
  border-color:#ece9e6;
  box-shadow:0 2px 8px rgba(38,31,27,.028);
}
.topbar:has(#global-search.hidden){
  border-bottom:1px solid #efedeb;
}
.profile-placeholder h2{
  margin-bottom:12px;
}


/* Page-level filters: search is one mode, structured filtering is another. */
.global-search,
.global-search.listing-mode{
  grid-template-columns:20px minmax(0,1fr);
  padding-right:14px;
}
.library-toolbar,
.purchase-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.library-view-switch,
.purchase-view-switch{
  width:100%;
  margin:0;
}
.page-filter-button{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #e4e0dc;
  border-radius:11px;
  background:#fff;
  color:#6d6862;
  font-size:19px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 1px 4px rgba(38,31,27,.04);
}
.page-filter-button:active{
  background:var(--soft);
}


/* Bottle Butler visual language pass — Moleskine-inspired, modern, non-craft. */
:root{
  --bb-ink:#202124;
  --bb-muted:#74777c;
  --bb-line:#e7e8ea;
  --bb-soft:#f6f7f8;
  --bb-paper:#ffffff;
  --bb-wine:#8f3146;
  --bb-wine-soft:#f7edf0;
  --bb-olive:#66744d;
  --bb-olive-soft:#f0f3ea;
  --bb-blue:#557d95;
  --bb-blue-soft:#edf4f8;
  --bb-terra:#b9684d;
  --bb-terra-soft:#f8eee9;
}
body{
  background:#f7f8f9;
  color:var(--bb-ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.shell{background:var(--bb-paper)}
h1,h2,.home-section-title,.wine-hero-title-row h2,.listing-sheet-title{
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:-.012em;
}

/* Search stays modern and quiet. */
.topbar{
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #f0f1f2;
}
.global-search{
  min-height:46px;
  border:1px solid #dde0e3;
  border-radius:13px;
  background:#fff;
  box-shadow:none;
}
.global-search input{
  height:44px;
  font-size:15px;
  color:var(--bb-ink);
}
.global-search input::placeholder{color:#9a9da1}
.search-icon{color:#62666b}

/* Section rhythm: notebook-like through lines and spacing, not fake paper. */
.content{padding-top:16px}
.home-sections{gap:30px}
.home-section{
  position:relative;
  padding-top:2px;
}
.home-section + .home-section{
  padding-top:24px;
  border-top:1px solid var(--bb-line);
}
.home-section-title{
  font-size:18px;
  font-weight:600;
  color:#26272a;
}
.home-section-title span:last-child{
  background:transparent;
  color:#a0a3a7;
  border:1px solid var(--bb-line);
}

/* Home cards: flat, photo-led, a little editorial. */
.home-strip{gap:13px}
.home-wine-card{gap:6px}
.home-wine-media{
  border:1px solid #eceeef;
  border-radius:9px;
  background:#f3f4f5;
}
.home-wine-photo{border-radius:0}
.home-wine-title{
  font-family:Georgia,"Times New Roman",serif;
  font-size:13px;
  line-height:1.25;
  font-weight:600;
}
.home-wine-price{
  padding:1px 5px;
  border:1px solid #e2e4e6;
  border-radius:5px;
  background:#fff;
  color:#56595d;
  font-weight:650;
}

/* Catalogue cards: Moleskine-like rows, not floating SaaS tiles. */
.card-list{gap:0}
.wine-card{
  min-height:124px;
  padding:12px 4px;
  border:0;
  border-bottom:1px solid var(--bb-line);
  border-radius:0;
  background:#fff;
  box-shadow:none;
}
.wine-card:first-child{border-top:1px solid var(--bb-line)}
.wine-card:active{background:#fafafa;transform:none}
.wine-photo{
  border-radius:8px;
  border:1px solid #eceeef;
  background:#f4f5f6;
}
.wine-card-body strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:15px;
  font-weight:600;
}
.wine-meta{color:#7b7e82}
.wine-list-price{
  padding:2px 6px;
  border-radius:5px;
  background:#f4f5f6;
  color:#55585c;
}

/* Segmented switches: quiet tabs, closer to notebook indexes. */
.library-toolbar,.purchase-toolbar{
  align-items:stretch;
  gap:8px;
}
.library-view-switch,.purchase-view-switch{
  padding:0;
  gap:0;
  border:1px solid #e1e3e5;
  border-radius:9px;
  background:#fff;
  overflow:hidden;
}
.library-view-switch button,.purchase-view-switch button{
  min-height:40px;
  border-radius:0;
  background:#fff;
  color:#73767a;
  font-weight:600;
}
.library-view-switch button + button,
.purchase-view-switch button + button{border-left:1px solid #e5e7e9}
.library-view-switch button.active{
  background:var(--bb-blue-soft);
  color:#3f667d;
  box-shadow:inset 0 -2px 0 var(--bb-blue);
}
.purchase-view-switch button.active{
  background:var(--bb-olive-soft);
  color:#55623e;
  box-shadow:inset 0 -2px 0 var(--bb-olive);
}

/* Page filter is an independent tool. */
.page-filter-button{
  width:42px;
  height:42px;
  border:1px solid #dfe2e4;
  border-radius:9px;
  background:#fff;
  color:#4f5459;
  box-shadow:none;
}
.page-filter-button:active{background:#f5f6f7}

/* Details: use restrained blocks and field lines. */
.detail{gap:16px}
.wine-detail,.detail-section,.description-collapsible{
  border:1px solid var(--bb-line);
  border-radius:10px;
  box-shadow:none;
  background:#fff;
}
.wine-detail.wine-overview{padding:15px}
.wine-hero-title-row h2{
  font-size:21px;
  font-weight:600;
}
.reference-price{
  padding:3px 7px;
  border-radius:5px;
  background:#f4f5f6;
}
.chips span{
  border:1px solid #e1e4e6;
  border-radius:6px;
  background:#fff;
  color:#5f6368;
}
.tasting,.relation-card{
  border-radius:8px;
  background:#f8f9fa;
}

/* Forms: notebook fields, modern rather than craft. */
.inline-form{
  border:1px solid var(--bb-line);
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
.inline-form input,.inline-form textarea,
.structural-form input,.structural-form textarea,
.structural-form select,
.filter-sheet select,.filter-sheet input{
  border:0;
  border-bottom:1px solid #d9dcdf;
  border-radius:0;
  background:#fff;
  padding-left:2px;
  padding-right:2px;
}
.inline-form input:focus,.inline-form textarea:focus,
.structural-form input:focus,.structural-form textarea:focus,
.structural-form select:focus{
  outline:none;
  border-bottom-color:var(--bb-blue);
}
.primary-button{
  background:#2e3134;
  color:#fff;
  border-radius:8px;
}
.secondary-button{
  border-color:#dfe1e3;
  border-radius:8px;
}

/* Add actions: each gets a subtle different notebook accent. */
.capture-action{
  border:1px solid var(--bb-line);
  border-radius:10px;
  box-shadow:none;
}
.capture-action:nth-child(1) .capture-action-icon{
  background:var(--bb-blue-soft);
  color:var(--bb-blue);
}
.capture-action:nth-child(2) .capture-action-icon{
  background:var(--bb-wine-soft);
  color:var(--bb-wine);
}
.capture-action:nth-child(3) .capture-action-icon{
  background:var(--bb-olive-soft);
  color:var(--bb-olive);
}

/* Bottom nav: line icons with context accents, no single-color branding. */
.bottom-nav{
  background:rgba(255,255,255,.985);
  border-top:1px solid var(--bb-line);
  box-shadow:0 -2px 10px rgba(24,26,28,.035);
}
.bottom-nav button{
  color:#777b80;
}
.bottom-nav button:nth-child(1).active{
  color:var(--bb-blue);
}
.bottom-nav button:nth-child(2).active{
  color:var(--bb-wine);
}
.bottom-nav button:nth-child(4).active{
  color:var(--bb-olive);
}
.bottom-nav button:nth-child(5).active{
  color:var(--bb-terra);
}
.bottom-nav button.active .bottom-nav-icon{
  background:transparent;
  border-radius:0;
}
.bottom-nav button:nth-child(1).active .bottom-nav-icon{border-bottom:2px solid var(--bb-blue)}
.bottom-nav button:nth-child(2).active .bottom-nav-icon{border-bottom:2px solid var(--bb-wine)}
.bottom-nav button:nth-child(4).active .bottom-nav-icon{border-bottom:2px solid var(--bb-olive)}
.bottom-nav button:nth-child(5).active .bottom-nav-icon{border-bottom:2px solid var(--bb-terra)}
.bottom-nav-plus{
  width:50px;
  height:50px;
  transform:translateY(-3px);
  background:#303337;
  box-shadow:0 3px 10px rgba(30,32,34,.16);
}
.bottom-nav-add:active .bottom-nav-plus{background:#202225}

/* Filter sheet: structured, plain, notebook-like. */
.listing-sheet{
  border-radius:14px 14px 0 0;
  background:#fff;
}
.listing-sheet-title{
  font-size:19px;
  font-weight:600;
}
.filter-sheet label{
  color:#72767a;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
}

/* Profile should read like an index page. */
.profile-placeholder{
  border-radius:10px;
}
.profile-placeholder h2{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:600;
}

/* Tiny Moleskine-like markers; restrained, not decorative wallpaper. */
.section-title-row h2::after,
.home-section-title span:first-child::after{
  content:"";
  display:inline-block;
  width:22px;
  height:1px;
  margin-left:8px;
  vertical-align:middle;
  background:#cfd2d5;
}


/* Bottle Butler refinement: keep approved structure, reduce stylization. */
h1,h2,.home-section-title,.wine-hero-title-row h2,.listing-sheet-title,
.home-wine-title,.wine-card-body strong,.profile-placeholder h2{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.012em;
}

/* Search and filter are adjacent tools, not one control. */
.search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:8px;
  align-items:center;
}
.search-row:has(.header-filter.hidden){
  grid-template-columns:minmax(0,1fr);
}
.global-search,
.global-search.listing-mode{
  width:100%;
  grid-template-columns:20px minmax(0,1fr);
  padding-right:14px;
}
.header-filter{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #dde0e3;
  border-radius:12px;
  background:#fff;
  color:#51565b;
  font-size:19px;
  line-height:1;
  box-shadow:none;
}
.header-filter:active{background:#f5f6f7}

/* Tabs closer to the approved mock: flat strip with a clear active marker. */
.library-toolbar,.purchase-toolbar{
  display:block;
  margin-bottom:14px;
}
.library-view-switch,.purchase-view-switch{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:0;
  gap:0;
  border:0;
  border-bottom:1px solid #e3e5e7;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.library-view-switch button,.purchase-view-switch button{
  min-height:40px;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#81858a;
  font-size:13px;
  font-weight:650;
}
.library-view-switch button.active{
  color:#8f3146;
  box-shadow:inset 0 -2px 0 #8f3146!important;
}
.purchase-view-switch button.active{
  color:#66744d;
  box-shadow:inset 0 -2px 0 #66744d!important;
}

/* Tiny home mascot: actual Bottle Butler avatar, not a hero. */
.home-mascot-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  margin:-3px 0 2px;
}
.home-mascot{
  width:40px;
  height:40px;
  flex:0 0 40px;
  overflow:hidden;
  border-radius:50%;
  background:#eef3f7 center/cover no-repeat;
  color:transparent;
  font-size:0;
  box-shadow:0 0 0 1px #e2e5e8;
}
.home-mascot-copy{
  color:#6f7479;
  font-size:12px;
  line-height:1.2;
  font-weight:600;
}
.page-filter-button{display:none!important}

.home-mascot{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20120%20120%22%3E%0A%3Ccircle%20cx%3D%2260%22%20cy%3D%2260%22%20r%3D%2258%22%20fill%3D%22%23eaf2f7%22%2F%3E%0A%3Cpath%20d%3D%22M25%2046%2034%2018%2051%2035M95%2046%2086%2018%2069%2035%22%20fill%3D%22%23f28a18%22%20stroke%3D%22%231f1f1f%22%20stroke-width%3D%225%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M20%2061c0-24%2018-39%2040-39s40%2015%2040%2039v18c0%2021-18%2035-40%2035S20%20100%2020%2079Z%22%20fill%3D%22%23f28a18%22%20stroke%3D%22%231f1f1f%22%20stroke-width%3D%225%22%2F%3E%0A%3Cpath%20d%3D%22M38%2047c8-5%2016-4%2022%201M82%2047c-8-5-16-4-22%201%22%20fill%3D%22none%22%20stroke%3D%22%231f1f1f%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M35%2061c7%204%2014%204%2021%200M64%2061c7%204%2014%204%2021%200%22%20fill%3D%22none%22%20stroke%3D%22%231f1f1f%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cellipse%20cx%3D%2246%22%20cy%3D%2258%22%20rx%3D%227%22%20ry%3D%224%22%20fill%3D%22%23f4e8b8%22%2F%3E%3Cellipse%20cx%3D%2274%22%20cy%3D%2258%22%20rx%3D%227%22%20ry%3D%224%22%20fill%3D%22%23f4e8b8%22%2F%3E%0A%3Ccircle%20cx%3D%2246%22%20cy%3D%2258%22%20r%3D%222.3%22%20fill%3D%22%231f1f1f%22%2F%3E%3Ccircle%20cx%3D%2274%22%20cy%3D%2258%22%20r%3D%222.3%22%20fill%3D%22%231f1f1f%22%2F%3E%0A%3Cpath%20d%3D%22M52%2072c5-4%2011-4%2016%200l-8%207Z%22%20fill%3D%22%23d97b79%22%20stroke%3D%22%231f1f1f%22%20stroke-width%3D%223%22%2F%3E%0A%3Cpath%20d%3D%22M60%2079v8m0%200c-6%200-9%203-12%206m12-6c6%200%209%203%2012%206%22%20fill%3D%22none%22%20stroke%3D%22%231f1f1f%22%20stroke-width%3D%223.5%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M28%2078c7%203%2011%206%2015%2011M92%2078c-7%203-11%206-15%2011%22%20fill%3D%22none%22%20stroke%3D%22%23d36f11%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M23%20112V92h13v20M84%20112V90h13v22%22%20fill%3D%22%23254d32%22%20stroke%3D%22%231f1f1f%22%20stroke-width%3D%224%22%2F%3E%0A%3Cpath%20d%3D%22M84%2098h13v14H84Z%22%20fill%3D%22%236d2424%22%2F%3E%0A%3C%2Fsvg%3E");
}


/* Home section action is text, like Bookmate, not a chevron. */
.home-section-title{
  width:100%;
}
.home-section-all{
  width:auto!important;
  height:auto!important;
  display:inline!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#6f7780!important;
  font-size:11px!important;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}


/* 2026-09-28 refinement: Bookmate-like shelves + one clear accent. */
:root{
  --bb-accent:#4f6fdc;
  --bb-accent-soft:#eef2ff;
}

/* Horizontal shelves should scroll without drawing a scrollbar. */
.home-strip{
  overflow-x:auto;
  overflow-y:visible;
  scrollbar-width:none;
  -ms-overflow-style:none;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
}
.home-strip::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}
.home-wine-card{
  scroll-snap-align:start;
}

/* One accent, used sparingly. */
.home-section-all{
  color:var(--bb-accent)!important;
}
.bottom-nav button.active{
  color:var(--bb-accent)!important;
}
.bottom-nav button.active .bottom-nav-icon{
  border-bottom-color:var(--bb-accent)!important;
}
.library-view-switch button.active,
.purchase-view-switch button.active{
  color:var(--bb-accent)!important;
  box-shadow:inset 0 -2px 0 var(--bb-accent)!important;
}
.header-filter:focus-visible,
.global-search:focus-within{
  border-color:var(--bb-accent);
}
.primary-button{
  background:var(--bb-accent);
}
.primary-button:active{
  filter:brightness(.94);
}

/* Profile settings stay lightweight. */
.profile-setting-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  min-height:52px;
  padding-top:12px;
  margin-top:12px;
  border-top:1px solid var(--bb-line);
  color:var(--bb-ink);
  font-size:14px;
  font-weight:600;
}
.profile-setting-row select{
  min-height:38px;
  max-width:160px;
  padding:0 30px 0 10px;
  border:1px solid #dfe2e5;
  border-radius:9px;
  background:#fff;
  color:var(--bb-ink);
  font:inherit;
  font-weight:500;
}


/* Home composition pass: three wine cards + one editorial tasting card. */
.home-section + .home-section{
  border-top:0;
  padding-top:12px;
}
.home-section-title{
  margin-bottom:12px;
}
.home-section-title span:first-child::after{
  display:none;
}
.home-strip{
  gap:12px;
  padding-bottom:2px;
}
.home-wine-card{
  flex:0 0 calc((min(100vw, 760px) - 56px)/3);
  min-width:0;
  gap:5px;
}
.home-wine-media{
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  border:0;
  border-radius:14px;
  overflow:hidden;
  background:#f2f3f4;
}
.home-wine-photo{
  width:100%;
  height:100%;
  object-fit:cover;
}
.home-wine-location{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#34373b;
  font-size:11px;
  line-height:1.3;
  font-weight:700;
}
.home-wine-bottom{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:baseline;
  gap:5px;
}
.home-wine-bottom .wine-meta{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}
.home-wine-price{
  padding:0;
  border:0;
  background:transparent;
  color:#4f5358;
  font-size:10px;
  font-weight:700;
  white-space:nowrap;
}

/* Tasting = experience card, Bookmate-like rather than another wine tile. */

/* Controls have presence without becoming heavy SaaS chrome. */
.header-filter{
  background:var(--bb-accent-soft);
  border-color:transparent;
  color:var(--bb-accent);
}
.library-view-switch,.purchase-view-switch{
  padding:4px;
  border:1px solid #e4e6e8;
  border-radius:12px;
  background:#f5f6f7;
  overflow:hidden;
}
.library-view-switch button,.purchase-view-switch button{
  min-height:38px;
  border-radius:9px!important;
}
.library-view-switch button.active,.purchase-view-switch button.active{
  background:#fff!important;
  box-shadow:0 1px 5px rgba(32,35,38,.08)!important;
  color:var(--bb-accent)!important;
}
.bottom-nav-plus{
  background:var(--bb-accent);
}
.bottom-nav-add:active .bottom-nav-plus{
  background:var(--bb-accent);
  filter:brightness(.92);
}


/* Locked tasting-card composition, visual pass only. */


/* Tasting card refinement: quote 1+3, brighter metrics, compact tags. */


/* 2026-09-28 tasting layout balance: compact edges, centered photo, metadata on right. */


/* Tasting palette + Material/Nothing-inspired tonal elements. */

/* Give information elements more colour without adding nested cards. */


/* 2026-09-28 tasting card polish: pale surfaces, coherent accent system, raised label. */


/* 2026-09-28 tasting colour correction.
   Explicit backgrounds override the old 3n direct-background rules. */

/* Stronger focal label, still centred and slightly breaking the top edge. */


/* 2026-09-28 tasting top cluster: equal protrusion, wider image, tighter side spacing. */


/* 2026-09-28 locked tasting-card mini spec.
   Structure stays: rating | centred label | price/tags, then title, then quote. */


/* 2026-09-28 correction: enforce the locked top geometry and the intended cross-hue palette.
   Do not move rating/tags toward the bottle; they belong to the card corners. */

/* Absolute top cluster removes content-dependent drift:
   fixed image protrusion, rating in top-left, price/tags in top-right. */

/* Keep title/quote close to the top cluster; no extra air added here. */


/* 2026-09-28 final tasting-card web pass based on the approved visual mock.
   Locked UX stays intact; this is presentation only. */

/* Cross-hue pairings: pale dusty surface + a different-family brighter accent. */

/* One fixed top geometry for every card. */

/* Quote mark sits outside the text column; date/text keep symmetric side margins. */


/* 2026-09-28 approved tasting-card mock -> web.
   Visual-only override; locked structure is unchanged. */


/* Home tasting cards — consolidated 2026-09-28.
   Single source of truth. Keep structure/UX locked; edit this block only. */
.home-tasting-strip{
  gap:12px;
  scroll-snap-type:x mandatory;
  overflow-x:auto;
  overflow-y:visible;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.home-tasting-strip::-webkit-scrollbar{display:none}

.home-tasting-card{
  --tasting-bg:#e8d9e2;
  --tasting-accent:#d39a1a;
  --tasting-on-accent:#241a08;
  --tasting-chip-bg:rgba(255,255,255,.76);
  --tasting-ink:#251f25;
  --tasting-muted:#656067;
  position:relative;
  flex:0 0 min(calc(100vw - 48px), 420px);
  min-height:0;
  aspect-ratio:1 / 1;
  margin-top:24px;
  padding:15px;
  border:0;
  border-radius:8px;
  background:var(--tasting-bg);
  color:var(--tasting-ink);
  text-align:left;
  box-shadow:none;
  overflow:visible;
  scroll-snap-align:center;
}
.home-tasting-card:nth-child(8n+1){--tasting-bg:#e8d9e2;--tasting-accent:#d39a1a;--tasting-on-accent:#241a08}
.home-tasting-card:nth-child(8n+2){--tasting-bg:#d8e2d3;--tasting-accent:#4f5f9e;--tasting-on-accent:#fff}
.home-tasting-card:nth-child(8n+3){--tasting-bg:#d8e3ea;--tasting-accent:#c66b3a;--tasting-on-accent:#fff}
.home-tasting-card:nth-child(8n+4){--tasting-bg:#eadfc8;--tasting-accent:#79506f;--tasting-on-accent:#fff}
.home-tasting-card:nth-child(8n+5){--tasting-bg:#ead1d6;--tasting-accent:#3f7770;--tasting-on-accent:#fff}
.home-tasting-card:nth-child(8n+6){--tasting-bg:#d8e6e1;--tasting-accent:#744b68;--tasting-on-accent:#fff}
.home-tasting-card:nth-child(8n+7){--tasting-bg:#ead4c9;--tasting-accent:#46618b;--tasting-on-accent:#fff}
.home-tasting-card:nth-child(8n){--tasting-bg:#eadca8;--tasting-accent:#9f573d;--tasting-on-accent:#fff}
.home-tasting-card:active{transform:none;filter:brightness(.985)}

.home-tasting-card::after{
  content:"“";
  position:absolute;
  left:4px;
  bottom:-42px;
  color:color-mix(in srgb,var(--tasting-accent) 13%,transparent);
  font-family:Georgia,"Times New Roman",serif;
  font-size:230px;
  line-height:.62;
  font-weight:700;
  pointer-events:none;
  z-index:0;
}

.home-tasting-stage{
  position:relative;
  display:block;
  min-height:198px;
}
.home-tasting-cover{
  position:absolute;
  top:-24px;
  left:50%;
  width:164px;
  height:194px;
  margin:0;
  transform:translateX(-50%);
  overflow:hidden;
  border:0;
  border-radius:4px;
  background:rgba(255,255,255,.26);
  box-shadow:0 8px 20px rgba(38,31,35,.13);
  z-index:1;
}
.home-tasting-cover img{width:100%;height:100%;object-fit:cover}

.home-tasting-rating{
  position:absolute;
  top:0;
  left:0;
  padding:0;
  z-index:2;
}
.home-tasting-rating strong{
  display:block;
  white-space:nowrap;
  color:var(--tasting-accent);
  font-size:30px;
  line-height:1;
  font-weight:500;
  letter-spacing:-.035em;
}
.home-tasting-rating::after{
  content:none;
}

.home-tasting-side{
  position:absolute;
  top:0;
  right:0;
  display:grid;
  justify-items:end;
  align-content:start;
  gap:6px;
  min-width:0;
  padding:0;
  z-index:2;
}
.home-tasting-price-block{display:flex;justify-content:flex-end}
.home-tasting-price-block strong{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 8px;
  border-radius:4px;
  background:var(--tasting-accent);
  color:var(--tasting-on-accent);
  font-size:12px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
}
.home-tasting-tags{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  margin-top:2px;
}
.home-tasting-tags > span{
  display:block;
  max-width:112px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--tasting-accent);
  font-size:10px;
  line-height:1.15;
  font-weight:800;
}
.home-tasting-main{
  position:relative;
  z-index:1;
  display:grid;
  gap:0;
  margin-top:4px;
}
.home-tasting-quote{
  position:relative;
  display:block;
  margin-top:0;
  padding:0;
  background:transparent;
}
.home-tasting-quote-body{
  position:relative;
  z-index:1;
  min-width:0;
  display:grid;
  gap:4px;
}
.home-tasting-date{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--tasting-muted);
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.04em;
}
.home-tasting-note{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:var(--tasting-ink);
  font-family:Georgia,"Times New Roman",serif;
  font-size:14px;
  line-height:1.42;
  font-style:normal;
  font-weight:400;
}
