 .like-control{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;width:auto!important;min-width:76px!important;margin:12px 16px 16px!important;padding:9px 13px!important;border:1px solid rgba(22,53,71,.22)!important;border-radius:999px!important;background:#f3dfc5!important;color:#173547!important;font:800 15px Assistant,Arial,sans-serif!important;box-shadow:0 4px 0 rgba(22,53,71,.1)!important;cursor:pointer!important;transition:transform .18s ease,background .18s ease,color .18s ease!important}.like-control:hover:not(:disabled){transform:translateY(-2px);background:#efaa5a!important}.like-control.active{background:#e66745!important;border-color:#e66745!important;color:#fff!important}.like-control:disabled{cursor:default!important;opacity:1!important}.like-control.pending{opacity:.65!important}.like-heart{font-size:20px;line-height:1}.guide-level-picker,.deals-filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 18px}.guide-level-choice,.deals-filter{border:1px solid rgba(22,53,71,.2);border-radius:999px;background:#fffdf9;color:#173547;padding:9px 14px;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;transition:.18s}.guide-level-choice:hover,.guide-level-choice.active,.deals-filter:hover,.deals-filter.active{background:#efaa5a;border-color:#efaa5a;color:#173547;transform:translateY(-2px)}.guide-level-note{margin:0 0 20px;padding:12px 14px;border-radius:8px;background:rgba(239,170,90,.16);color:#173547;font:700 15px/1.5 Assistant,Arial,sans-serif}.bean-visual{overflow:hidden!important;background:#2e4a55!important}.bean-visual img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:opacity .25s ease,transform .35s ease}.bean-visual img.changing{opacity:.35;transform:scale(.96)}.deals-summary{margin:-4px 0 18px;color:#55707d;font:700 15px Assistant,Arial,sans-serif}.deal-category{display:inline-block;margin:8px 0 0;padding:4px 8px;border-radius:999px;background:#f3dfc5;color:#173547;font:800 12px Assistant,Arial,sans-serif}
.upload-brew-details{margin-top:16px;padding:12px 14px;border-radius:8px;border:1px solid rgba(43,110,143,.24);background:#fffdf9}
.drop-icon{display:block;width:78px;height:78px;object-fit:contain;margin-bottom:8px}
 .upload-brew-details summary{cursor:pointer;display:block;font-weight:800;font-size:18px;line-height:1.2}
 .upload-brew-details-content{margin-top:10px}
 .brew-details-fields{display:grid;gap:10px}
 .brew-detail{margin-top:0}
 @media(max-width:700px){
   .upload-brew-details{padding:10px 12px}
 }

/* Owner-only controls inside the image lightbox. */
.lightbox-owner-tools{width:min(620px,92vw);margin:12px auto 0;text-align:right}
.lightbox-edit-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.lightbox-edit-actions button,.lightbox-edit-form-actions button{border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;padding:8px 13px;font:800 14px Assistant,system-ui,sans-serif;cursor:pointer}
.edit-action-button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.edit-action-button>.edit-action-icon{display:block;width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.edit-action-label{display:inline-block;line-height:1.1}
.lightbox-edit-actions button:hover,.lightbox-edit-form-actions button:hover{background:#2b6e8f}
.lightbox-edit-actions .lightbox-delete-post{border-color:rgba(255,190,172,.65);background:rgba(169,77,62,.3);color:#fff4ef}
.lightbox-edit-actions .lightbox-delete-post:hover,.lightbox-edit-actions .lightbox-delete-post:focus-visible{background:#a94d3e;border-color:#ffc7b8;color:#fff;outline:0}
.lightbox-missing-info-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.lightbox-missing-info-actions[hidden]{display:none!important}
.lightbox-missing-info-actions button{border:1px solid rgba(244,181,108,.58);border-radius:999px;background:rgba(239,170,90,.18);color:#fff;padding:8px 13px;font:800 14px Assistant,system-ui,sans-serif;cursor:pointer}
.lightbox-missing-info-actions button:hover{background:#efaa5a;color:#163547}
.lightbox-edit-status{min-height:20px;margin:7px 0;color:#f4c67b;font-weight:700;text-align:center}
.lightbox-edit-form{margin-top:10px;padding:12px;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:rgba(18,42,53,.86)}
.lightbox-edit-form label{display:block;color:#fff;font-weight:800}
.lightbox-edit-form input,.lightbox-edit-form select,.lightbox-edit-form textarea{display:block;width:100%;margin-top:7px;border:1px solid rgba(255,255,255,.35);border-radius:7px;background:#fffdf9;color:#163547!important;-webkit-text-fill-color:#163547;padding:9px;font:600 15px Assistant,system-ui,sans-serif;box-sizing:border-box}
.lightbox-edit-form input::placeholder{color:#687d86;opacity:1;-webkit-text-fill-color:#687d86}
.lightbox-edit-form-actions{display:flex;justify-content:center;gap:8px;margin-top:10px}
.lightbox-edit-form-actions button[type=submit]{background:#efaa5a;color:#163547}
.lightbox-edit-form .brew-detail{color:#fff}
.lightbox-edit-form input.brew-detail,.lightbox-edit-form .brew-detail input,.lightbox-edit-form .brew-detail select{margin-top:5px;background:#fffdf9;color:#163547!important;-webkit-text-fill-color:#163547}
.lightbox-edit-form .brew-detail select option{background:#fffdf9;color:#163547}
/* Explicit edit-field theme: values must remain readable against the light
   controls even when the surrounding lightbox/browser supplies dark styles. */
#lightboxDetailsForm #lightboxEditDetailsFields .lightbox-edit-control,
#lightboxDetailsForm #lightboxEditDetailsFields .lightbox-edit-control:focus,
#lightboxDetailsForm #lightboxEditDetailsFields .lightbox-edit-control:active{
  background-color:#fff!important;
  color:#17232b!important;
  -webkit-text-fill-color:#17232b!important;
  opacity:1!important;
  color-scheme:light;
}
#lightboxDetailsForm #lightboxEditDetailsFields .lightbox-edit-control::placeholder{
  color:#61747d!important;
  -webkit-text-fill-color:#61747d!important;
  opacity:1!important;
}
#lightboxDetailsForm #lightboxEditDetailsFields .lightbox-edit-control option{
  background:#fff!important;
  color:#17232b!important;
}
.lightbox-edit-metadata{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0}
.lightbox-edit-metadata label{display:block;color:#fff;font-weight:800}
.lightbox-edit-metadata input,.lightbox-edit-metadata select{display:block;width:100%;margin-top:7px;border:1px solid rgba(255,255,255,.35);border-radius:7px;background:#fffdf9;color:#163547;padding:9px;font:600 15px Assistant,system-ui,sans-serif;box-sizing:border-box}
.lightbox-edit-metadata .lightbox-edit-preset-label{grid-column:1/-1;order:-1}
.lightbox-edit-metadata .lightbox-edit-preset-select{border-color:#efaa5a;box-shadow:0 0 0 2px rgba(239,170,90,.12)}
@media(max-width:600px){.lightbox-edit-metadata{grid-template-columns:1fr}}
.section-heading-stacked{display:block!important}
.section-heading-stacked>div{display:block!important}
.section-heading-stacked .hub-intro{display:block;margin:9px 0 0;max-width:62ch}
.lightbox-edit-form-actions button[type=submit]:disabled{opacity:.45;filter:grayscale(.55);cursor:not-allowed;box-shadow:none;pointer-events:none}
#coffeeRoastField,#coffeeRoastDateField{box-sizing:border-box}

/* Keep searchable hardware pickers inside the form instead of delegating to
   the browser's floating datalist popup. */
 .brew-combobox-field{position:relative;z-index:2}
.brew-combobox-field:focus-within{z-index:1000}
.brew-combobox-field .brew-combobox-input{position:relative;z-index:2}
.brew-combobox-menu{position:absolute;top:calc(100% - 2px);right:0;left:0;z-index:1001;max-height:min(230px,35vh);overflow:auto;border:1px solid rgba(22,53,71,.26);border-radius:0 0 8px 8px;background:#fffdf9;box-shadow:0 8px 18px rgba(22,53,71,.18)}
.brew-combobox-menu[data-placement="above"]{top:auto;bottom:calc(100% - 2px);border-radius:8px 8px 0 0;box-shadow:0 -8px 18px rgba(22,53,71,.18)}
.brew-combobox-menu[hidden]{display:none}
.brew-combobox-option{display:block;width:100%;padding:9px 11px;border:0;border-bottom:1px solid rgba(22,53,71,.09);background:transparent;color:var(--ink);font:600 15px Assistant,Arial,sans-serif;text-align:right;cursor:pointer}
.brew-combobox-option:hover,.brew-combobox-option:focus-visible{background:#e3f0f0;outline:0}
.name-field{position:relative}
.bean-name-menu{position:absolute;top:calc(100% - 2px);right:0;left:0;z-index:1001;max-height:min(220px,35vh);overflow:auto;border:1px solid rgba(22,53,71,.26);border-radius:0 0 8px 8px;background:#fffdf9;box-shadow:0 8px 18px rgba(22,53,71,.18)}
.bean-name-menu[hidden]{display:none}
.bean-name-option{display:block;width:100%;padding:9px 11px;border:0;border-bottom:1px solid rgba(22,53,71,.09);background:transparent;color:var(--ink);font:600 15px Assistant,Arial,sans-serif;text-align:right;cursor:pointer}
.bean-name-option:hover,.bean-name-option:focus-visible{background:#e3f0f0;outline:0}
.brew-number-stepper button{touch-action:manipulation;user-select:none;-webkit-user-select:none}
.bean-roast-field{display:block;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.bean-roast-field::before{display:none}
.bean-roast-field>span{display:block;margin:0 0 7px;padding:0;color:#163547;font:800 15px/1.2 Rubik,Assistant,Arial,sans-serif}
.bean-roast-field>span b{font:800 12px Assistant,Arial,sans-serif;color:#a34f35}
.bean-roast-field select{display:block;width:100%;min-height:46px;margin-top:0;padding:10px 14px 10px 42px;border:1px solid rgba(43,110,143,.34);border-radius:9px;background-color:#fffdf9;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%232b6e8f' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E");background-position:left 14px center;background-repeat:no-repeat;background-size:16px;color:#163547;font:700 16px Assistant,Arial,sans-serif;cursor:pointer;appearance:none;-webkit-appearance:none;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
.bean-roast-field select:hover{border-color:#2b6e8f;background-color:#f8fcfc}
.bean-roast-field select:focus-visible{border-color:#2b6e8f;box-shadow:0 0 0 3px rgba(43,110,143,.14)}
.bean-roast-field select option{font:600 16px Assistant,Arial,sans-serif;background:#fffdf9;color:#163547}
.bean-roast-field input[type=date]{display:block;width:100%;min-height:46px;margin-top:0;padding:10px 14px;border:1px solid rgba(43,110,143,.34);border-radius:9px;background:#fffdf9;color:#163547;font:700 16px Assistant,Arial,sans-serif;box-sizing:border-box;outline:none}
.bean-roast-field input[type=date]:focus-visible{border-color:#2b6e8f;box-shadow:0 0 0 3px rgba(43,110,143,.14)}
.bean-history-field{display:block;margin:0 0 12px;padding:0;border:0;background:transparent;box-shadow:none}
.bean-history-field::before{display:none}
.bean-history-field>span{display:block;margin:0 0 7px;padding:0;color:#163547;font:800 15px/1.2 Rubik,Assistant,Arial,sans-serif}
.bean-history-field select{display:block;width:100%;min-height:46px;margin:0;padding:10px 42px 10px 14px;border:1px solid rgba(43,110,143,.34);border-radius:9px;background-color:#fffdf9;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%232b6e8f' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E");background-position:left 14px center;background-repeat:no-repeat;background-size:16px;color:#163547;font:700 16px Assistant,Arial,sans-serif;cursor:pointer;appearance:none;-webkit-appearance:none;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
.bean-history-field select:hover{border-color:#2b6e8f;background-color:#f8fcfc}
.bean-history-field select:focus-visible{border-color:#2b6e8f;box-shadow:0 0 0 3px rgba(43,110,143,.14)}
.bean-history-field select option{font:600 16px Assistant,Arial,sans-serif;background:#fffdf9;color:#163547}
#beanDetailsSection .bean-roast-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}
#beanDetailsSection .bean-roast-fields .bean-roast-field{height:auto;margin:0}
#beanDetailsSection .bean-roast-fields :is(select,input[type=date]){height:46px;align-self:end}
@media(max-width:700px){.bean-roast-field select{min-height:48px;font-size:16px}}
@media(max-width:700px){#beanDetailsSection .bean-roast-fields :is(select,input[type=date]){height:48px}}
.deals-caveat{margin:-10px 0 18px;color:#7b5b3c;font:700 14px/1.4 Assistant,Arial,sans-serif}

/* Reuse the daily-loader wordmark structure in the header and keep the cup
   itself transparent, without a painted tile or extra CSS shadow. */
.site-header .brand{direction:rtl;gap:7px}
.site-header .brand-mark{display:block;width:46px;height:46px;flex:0 0 46px;object-fit:contain;background:transparent!important;box-shadow:none!important}
.site-header .brand>strong{display:block;min-width:0;padding-block:3px;color:#163547;font:900 18px/.96 Rubik,Arial,sans-serif;letter-spacing:-.06em;text-align:right}
.site-header .brand>strong i{color:#c96e4d;font-style:normal}
@media(max-width:700px){
  .site-header .brand-mark{width:37px;height:37px;flex-basis:37px}
  .site-header .brand{gap:5px}
  .site-header .brand>strong{font-size:16px;line-height:.96;transform:none}
}

/* Coffee Journey: the private dashboard gets the full progress view, while
   public profiles deliberately disclose only the achieved stage and badges. */
.profile-coffee-journey{grid-column:1/-1;background:linear-gradient(135deg,#17394b 0%,#28627d 58%,#397e92 100%)!important;color:#fff;overflow:hidden!important}
.profile-coffee-journey:before{content:"";position:absolute;inset:auto -8% -120px auto;width:330px;height:330px;border:1px solid rgba(255,255,255,.14);border-radius:50%;box-shadow:0 0 0 24px rgba(255,255,255,.035),0 0 0 65px rgba(255,255,255,.025);pointer-events:none}
.profile-coffee-journey .profile-card-heading{position:relative;z-index:1;border-color:rgba(255,255,255,.22)}
.profile-coffee-journey .eyebrow,.profile-coffee-journey h3{color:#fff}
.coffee-journey-heading{align-items:center!important}
.coffee-journey-wallet{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 11px;border:1px solid rgba(255,225,181,.52);border-radius:999px;background:rgba(10,28,37,.22);color:#ffd59b;white-space:nowrap;font-size:13px;font-weight:800}
.coffee-journey-wallet svg{width:17px;height:21px}.coffee-journey-wallet b{font:900 18px/1 Rubik,Arial,sans-serif}.coffee-journey-wallet span{color:#fff7e9}
.coffee-journey-progress{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:12px;margin-top:20px}
.coffee-journey-cups{display:grid;grid-template-columns:repeat(10,minmax(0,46px));align-items:center;justify-content:space-between;gap:7px;width:100%;direction:ltr}.coffee-journey-cup{display:grid;place-items:center;width:min(100%,46px);height:auto;aspect-ratio:1;justify-self:center;border:1px solid rgba(255,255,255,.34);border-radius:50%;background:rgba(255,255,255,.08);overflow:hidden;transition:opacity .2s ease,transform .2s ease}.coffee-journey-cup img{display:block;width:100%;height:100%;object-fit:contain}.coffee-journey-cup.is-current{border-color:#ffd59b;box-shadow:0 0 0 3px rgba(255,213,155,.22);transform:translateY(-2px)}.coffee-journey-cup.is-locked{opacity:.42;filter:grayscale(.55)}
.coffee-journey-progress-copy{display:flex;align-items:baseline;justify-content:space-between;gap:12px;grid-column:1}.coffee-journey-progress-copy strong{font:900 16px/1 Rubik,Arial,sans-serif;color:#fff}.coffee-journey-progress-copy span{color:#d9eeee;font-size:13px;font-weight:700}.coffee-journey-progress i{grid-column:1;display:block;height:8px;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden}.coffee-journey-progress i:after{content:"";display:block;width:var(--journey-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#f2b365,#ffe0aa);transition:width .35s ease}
.coffee-journey-detail-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:12px;margin-top:20px}.coffee-journey-next,.coffee-journey-roast{min-height:86px;padding:13px 14px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.09)}.coffee-journey-next span,.coffee-journey-roast>span{display:block;color:#cfe8e9;font-size:12px;font-weight:800}.coffee-journey-next strong{display:block;margin-top:7px;color:#fff;font-size:15px;line-height:1.3}.coffee-journey-roast>div{display:flex;gap:6px;margin-top:10px}.coffee-journey-roast b{padding:5px 7px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:#cfe0e3;font-size:11px}.coffee-journey-roast b.is-earned{border-color:rgba(255,213,155,.6);background:rgba(242,179,101,.24);color:#fff4df}
.coffee-journey-badges{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.coffee-journey-badge{padding:6px 8px;border:1px dashed rgba(255,255,255,.22);border-radius:999px;color:#cfe0e3;font-size:12px;font-weight:800}.coffee-journey-badge.is-earned{border-style:solid;border-color:rgba(255,213,155,.48);background:rgba(242,179,101,.18);color:#fff4df}
.public-profile-journey{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border:1px solid rgba(22,53,71,.14);border-radius:16px;background:linear-gradient(135deg,#edf7f5,#fff9ef);box-shadow:0 9px 24px rgba(22,53,71,.055)}.public-coffee-journey-main{display:flex;align-items:center;gap:10px;min-width:0}.public-coffee-journey-main img{width:54px;height:54px;border-radius:50%;filter:drop-shadow(0 3px 5px rgba(22,53,71,.17))}.public-coffee-journey-main span{display:block;color:#54717d;font-size:12px;font-weight:800}.public-coffee-journey-main strong{display:block;margin-top:3px;color:#163547;font-size:15px}.public-coffee-journey-badges{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.public-coffee-journey-badges span{padding:5px 7px;border:1px solid rgba(200,117,66,.22);border-radius:999px;background:#fffdf8;color:#9a5c36;font-size:11px;font-weight:800;white-space:nowrap}
@media(max-width:700px){.profile-coffee-journey{padding:18px!important;border-radius:15px!important}.coffee-journey-heading{align-items:flex-start!important}.coffee-journey-wallet{padding:6px 8px;font-size:12px}.coffee-journey-progress{grid-template-columns:1fr;gap:11px}.coffee-journey-cups{grid-template-columns:repeat(5,minmax(0,1fr));justify-content:stretch;gap:8px}.coffee-journey-cup{width:min(100%,44px)}.coffee-journey-progress-copy,.coffee-journey-progress i{grid-column:1}.coffee-journey-progress-copy{align-items:flex-start;flex-direction:column;gap:4px}.coffee-journey-detail-grid{grid-template-columns:1fr;gap:9px;margin-top:15px}.coffee-journey-next,.coffee-journey-roast{min-height:auto}.public-profile-journey{align-items:flex-start;flex-direction:column;padding:14px 15px}.public-coffee-journey-badges{justify-content:flex-start}.public-coffee-journey-main img{width:50px;height:50px}}

/* The journal stays private to its owner: it turns existing calendar days and
   preparation logs into a compact, practical month/year reflection. */
.profile-coffee-journal{grid-column:1/-1;background:linear-gradient(135deg,#fffdfa,#f1f7f4)!important;border:1px solid rgba(43,110,143,.18)!important;overflow:hidden}
.coffee-journal-heading{align-items:center!important;gap:16px}.coffee-journal-heading h3{color:#163547}.coffee-journal-calendar-button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 11px;white-space:nowrap}.coffee-journal-calendar-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.coffee-journal-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.coffee-journal-metric{min-width:0;min-height:94px;padding:13px;border:1px solid rgba(22,53,71,.11);border-radius:13px;background:rgba(255,255,255,.78)}.coffee-journal-metric b{display:block;color:#c96e4d;font:900 28px/1 Rubik,Arial,sans-serif;font-variant-numeric:tabular-nums}.coffee-journal-metric span{display:block;margin-top:7px;color:#163547;font:800 13px/1.2 Assistant,Arial,sans-serif;overflow-wrap:anywhere}.coffee-journal-metric small{display:block;min-height:16px;margin-top:5px;color:#607782;font:700 11px/1.25 Assistant,Arial,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coffee-journal-preferences{margin-top:13px;padding:14px 15px;border-radius:13px;background:rgba(22,53,71,.055)}.coffee-journal-preferences>span{display:block;color:#54717d;font:800 12px/1.3 Assistant,Arial,sans-serif}.coffee-journal-insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:10px 0 0;padding:0;list-style:none}.coffee-journal-insights li{position:relative;min-width:0;padding-inline-start:13px;color:#254552;font:700 13px/1.45 Assistant,Arial,sans-serif;overflow-wrap:anywhere}.coffee-journal-insights li:before{content:"";position:absolute;inset-inline-start:0;top:.52em;width:6px;height:6px;border-radius:50%;background:#d9782b}.coffee-journal-insights b{color:#163547;font-weight:900}.coffee-journal-empty{margin:9px 0 0;color:#607782;font:700 13px/1.45 Assistant,Arial,sans-serif}
@media(max-width:700px){.profile-coffee-journal{padding:18px!important;border-radius:15px!important}.coffee-journal-heading{align-items:flex-start!important;flex-direction:column;gap:10px}.coffee-journal-calendar-button{align-self:flex-start}.coffee-journal-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.coffee-journal-metric{min-height:86px;padding:11px}.coffee-journal-metric b{font-size:25px}.coffee-journal-metric span{margin-top:5px;font-size:12px}.coffee-journal-insights{grid-template-columns:1fr;gap:7px}.coffee-journal-preferences{margin-top:10px;padding:12px}}

/* Below-the-fold surfaces do not need layout/paint work during the first
   daily-feed paint. Their explicit intrinsic heights retain a stable scroll
   rhythm while the matching skeletons/data become available. */
@supports(content-visibility:auto){
  body:not(.profile-page) #deals,
  body:not(.profile-page) #guides,
  body:not(.profile-page) #qa,
  body:not(.profile-page) #beans,
  body:not(.profile-page) #archive{content-visibility:auto;contain-intrinsic-size:auto 620px}
}

/* Optional sensory notes: sliders stay compact, while the overall score uses
   the same coffee-cup mark as the site identity. */
.taste-helper{margin:0 0 12px;color:#55707d;font-size:14px;font-weight:700;line-height:1.4}
.taste-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.taste-slider-field{display:grid;gap:8px;padding:11px 12px;border:1px solid rgba(43,110,143,.2);border-radius:9px;background:#fffdf9}
.taste-slider-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#163547;font:800 14px Assistant,Arial,sans-serif}
.taste-slider-heading output{color:#55707d;font-size:12px;white-space:nowrap}
.taste-slider-field input[type=range]{width:100%;height:24px;margin:0;padding:0;appearance:none;-webkit-appearance:none;direction:ltr!important;unicode-bidi:isolate;writing-mode:horizontal-tb;background:transparent;cursor:pointer;touch-action:pan-y}
.taste-slider-field input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;direction:ltr!important;background:linear-gradient(to right,#2b6e8f 0 var(--taste-progress,50%),#d9edf1 var(--taste-progress,50%) 100%)}
.taste-slider-field input[type=range]::-moz-range-track{height:6px;border-radius:999px;direction:ltr!important;background:#d9edf1}
.taste-slider-field input[type=range]::-moz-range-progress{height:6px;border-radius:999px;direction:ltr!important;background:#2b6e8f}
.taste-slider-field input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-6px;appearance:none;-webkit-appearance:none;border:2px solid #fff;border-radius:50%;background:#2b6e8f;box-shadow:0 1px 4px rgba(22,53,71,.28)}
.taste-slider-field input[type=range]::-moz-range-thumb{width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:#2b6e8f;box-shadow:0 1px 4px rgba(22,53,71,.28)}
.taste-range-control{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:8px;min-width:0;direction:ltr}
.taste-range-control .taste-range-step{width:34px;height:34px}
.taste-score-field{grid-column:1/-1;min-width:0;width:100%;min-height:96px;box-sizing:border-box;margin:0;padding:14px 12px 16px;border:1px solid rgba(43,110,143,.2);border-radius:9px;background:#fffdf9;overflow:hidden}
.taste-score-field legend{display:block;max-width:100%;box-sizing:border-box;padding:0 5px;color:#163547;font:800 14px Assistant,Arial,sans-serif;white-space:normal;overflow-wrap:anywhere}
.taste-score-picker{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:nowrap;max-width:100%;direction:ltr}
.taste-score-button{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:3px;border:1px solid rgba(43,110,143,.2);border-radius:8px;background:#edf5f4;cursor:pointer;transition:.18s}
.taste-score-button img{width:28px;height:28px;object-fit:contain;opacity:.34;filter:grayscale(.7)}
.taste-score-button:hover,.taste-score-button[aria-pressed=true]{border-color:#efaa5a;background:#f8ead8;transform:translateY(-2px)}
.taste-score-button[aria-pressed=true] img{opacity:1;filter:none}
.lightbox-taste{width:min(620px,92vw);margin:10px auto 0;padding:10px 12px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(12,35,52,.32)}
.lightbox-taste-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;color:#f4b56c;font:800 16px Rubik,Assistant,Arial,sans-serif;cursor:pointer;list-style:none}
.lightbox-taste-title::-webkit-details-marker{display:none}
.lightbox-save-preset{display:block;width:100%;margin:12px 0 0;padding:9px 14px;border:1px solid rgba(244,181,108,.58);border-radius:999px;background:rgba(239,170,90,.94);color:#163547;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.lightbox-save-preset:hover:not(:disabled),.lightbox-save-preset:focus-visible{border-color:#ffd89c;background:#f6bd73;transform:translateY(-2px);outline:none}.lightbox-save-preset:disabled{cursor:wait;opacity:.65}.lightbox-save-preset[hidden]{display:none!important}.lightbox-save-preset.is-saved{border-color:#c9e4b8;background:#d8f0c9;color:#315e53}
.lightbox-taste .lightbox-taste-score{display:none!important}
#lightboxTaste .taste-score-field legend{display:none!important}
.lightbox-taste-title::after{content:'+';display:grid;place-items:center;width:22px;height:22px;border:1px solid rgba(244,181,108,.5);border-radius:50%;font:800 18px/1 Assistant,Arial,sans-serif}
.lightbox-taste[open] .lightbox-taste-title::after{content:'−'}
.lightbox-taste-content{padding-top:10px}
.lightbox-taste-rows{display:grid;gap:7px;color:#dbe8ec;font:800 14px Assistant,Arial,sans-serif}
.lightbox-taste-row,.lightbox-taste-score{display:flex;align-items:center;justify-content:space-between;gap:12px;line-height:1.35}
.lightbox-taste-row:not(:last-child),.lightbox-taste-score{padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.15)}
.lightbox-taste-row strong{color:#f4c67b;white-space:nowrap;font:400 14px/1.35 Assistant,Arial,sans-serif}
.lightbox-cups{display:inline-flex;align-items:center;gap:3px;direction:ltr}
.lightbox-cups img{width:23px;height:23px;object-fit:contain}
.lightbox-cups img.is-muted{opacity:.28;filter:grayscale(1)}
.lightbox-edit-form .taste-fields{margin-top:12px}
/* Keep the sensory editor's labels and values at the same readable scale as
   the preparation editor. The base taste controls are intentionally compact
   for the upload form, but the owner edit form should not shrink them. */
.lightbox-edit-form#lightboxTasteForm .taste-slider-heading{font:800 16px/1.25 Assistant,Arial,sans-serif}
.lightbox-edit-form#lightboxTasteForm .taste-slider-heading output{font:600 16px/1.25 Assistant,Arial,sans-serif}
.lightbox-edit-form#lightboxTasteForm .taste-score-field{min-width:0;max-width:100%;width:100%;overflow:hidden}
.lightbox-edit-form#lightboxTasteForm .taste-score-field legend{display:block;box-sizing:border-box;width:100%;max-width:100%;margin:0;padding-inline:0;font:800 16px/1.25 Assistant,Arial,sans-serif;white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){.taste-fields{grid-template-columns:1fr}.taste-score-picker{gap:4px}.taste-score-button{flex-basis:34px;width:34px;height:34px}.taste-score-button img{width:26px;height:26px}.lightbox-taste-row,.lightbox-taste-score{align-items:flex-start;flex-direction:column;gap:4px}}

/* Keep each read-only taste value beside its label, including on narrow
   screens; the panel remains compact without stacking the pair. */
@media(max-width:700px){.lightbox-taste-row,.lightbox-taste-score{align-items:center;flex-direction:row;gap:12px}}

/* Signed-in account profile and in-app notifications. */
.profile-section{padding-top:74px;padding-bottom:86px;scroll-margin-top:72px}
.profile-auth-gate{padding:24px;border:1px solid rgba(43,110,143,.24);border-radius:12px;background:#eef6f6;text-align:right;font-weight:700}
.profile-auth-gate p{margin:0 0 14px;color:#355b6a}
.profile-login-link{display:inline-block;padding:10px 18px;border-radius:999px;background:#2b6e8f;color:#fff;text-decoration:none;font-weight:800}
.profile-content{display:grid;gap:16px;max-width:900px}
.profile-card{padding:24px;border:1px solid rgba(22,53,71,.16);border-radius:14px;background:#fffdf9;box-shadow:7px 8px 0 rgba(22,53,71,.07)}
.profile-equipment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;padding:16px;border:1px solid rgba(43,110,143,.18);border-radius:12px;background:#f4faf9}.profile-equipment-form[hidden],.profile-equipment-form[aria-hidden="true"]{display:none!important}.profile-equipment-form h4{grid-column:1/-1;margin:0;color:#163547;font:800 20px/1.1 Rubik}.profile-equipment-form .profile-equipment-field{margin:0}.profile-equipment-actions{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-start}.profile-equipment-list{display:grid;gap:10px;margin-top:18px}.profile-equipment-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:74px;padding:12px 14px;border:1px solid rgba(22,53,71,.13);border-radius:10px;background:#fff}.profile-equipment-row strong,.profile-equipment-row span{display:block}.profile-equipment-row span{margin-top:3px;color:#60717b;font-size:.9rem}.profile-equipment-row-actions{display:flex;gap:7px;flex:0 0 auto}.public-profile-page{max-width:960px!important;min-height:calc(100vh - 180px);padding-top:58px;padding-bottom:86px}.public-profile-card{padding:28px;border:1px solid rgba(22,53,71,.16);border-radius:16px;background:linear-gradient(145deg,#fffdf9,#f3faf9);box-shadow:10px 11px 0 rgba(22,53,71,.08)}.public-profile-back{display:inline-flex;margin-bottom:24px;color:#2b6e8f;font-weight:800;text-decoration:none}.public-profile-identity{display:flex;align-items:center;gap:16px}.public-profile-avatar .inline-profile-avatar{width:78px;height:78px}.public-profile-identity h1{margin:0;color:#163547;font:900 34px/1.05 Rubik}.public-profile-identity p{margin:6px 0 0;color:#60717b;font-weight:700}.public-profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:26px}.public-profile-stats div{padding:14px;border-radius:10px;background:#e4f1f1;text-align:center}.public-profile-stats strong,.public-profile-stats span{display:block}.public-profile-stats strong{color:#163547;font:900 24px Rubik}.public-profile-stats span{margin-top:4px;color:#55707d;font-weight:700}.public-profile-equipment{margin-top:28px;padding-top:24px;border-top:1px solid rgba(22,53,71,.14)}.public-profile-equipment h2{margin:0 0 14px;color:#163547;font:800 24px Rubik}.public-profile-equipment>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-equipment-item{padding:16px;border:1px solid rgba(22,53,71,.13);border-radius:10px;background:#fff}.public-equipment-item h3{margin:0 0 8px;color:#163547;font:800 19px Rubik}.public-equipment-item p{margin:5px 0;color:#55707d;line-height:1.35}.profile-name-link{cursor:pointer}.profile-name-link:hover{text-decoration:underline}.lightbox-image-action{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.lightbox-image-action:hover{transform:translateY(-3px);box-shadow:0 8px 18px rgba(0,0,0,.22)}
@media(max-width:700px){.profile-equipment-form{grid-template-columns:1fr}.profile-equipment-actions{flex-direction:column}.profile-equipment-actions button{width:100%}.profile-equipment-row{align-items:flex-start;flex-direction:column}.profile-equipment-row-actions{align-self:flex-start}.public-profile-page{padding-top:34px;padding-bottom:56px}.public-profile-card{padding:18px}.public-profile-identity h1{font-size:28px}.public-profile-stats{grid-template-columns:repeat(2,1fr)}.public-profile-equipment>div{grid-template-columns:1fr}}
.public-profile-stats{grid-template-columns:repeat(2,minmax(0,220px));}
.profile-about-form{display:grid;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(22,53,71,.12)}
.profile-about-form[hidden],.profile-public-name-form[hidden]{display:none!important}
.profile-details-box{margin-top:20px;padding:16px;border:1px solid rgba(22,53,71,.13);border-radius:12px;background:rgba(255,255,255,.58)}
.profile-details-view[hidden],.profile-details-form[hidden]{display:none!important}
.profile-details-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.profile-details-view .profile-field-summary-label{margin:0;color:#55707d;font:900 15px/1.2 Assistant,Arial,sans-serif}
.profile-details-view .profile-field-summaries{margin-top:12px}
.profile-details-view .profile-field-summary{padding:10px 0;border:0;border-top:1px solid rgba(22,53,71,.1);border-radius:0;background:transparent}
.profile-details-view .profile-field-summary:first-child{border-top:0}
.profile-details-form{display:grid;gap:12px}
.profile-details-form-fields{display:grid;gap:12px}
.profile-details-form label{display:grid;gap:7px;color:var(--ink);font:800 15px/1.3 Assistant,Arial,sans-serif}
.profile-details-form input,.profile-details-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(22,53,71,.2);border-radius:9px;background:#fffdf9;color:var(--ink);padding:10px 12px;font:600 16px/1.4 Assistant,Arial,sans-serif;outline:none}
.profile-details-form input:focus,.profile-details-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(43,110,143,.14)}
.profile-details-form textarea{resize:vertical;min-height:100px}
.profile-field-summaries{display:grid;gap:12px;margin-top:20px}
.profile-field-summary{padding:13px 14px;border:1px solid rgba(22,53,71,.13);border-radius:10px;background:rgba(255,255,255,.58)}
.profile-field-summary-label{display:block;margin-bottom:6px;color:#55707d;font:800 13px/1.2 Assistant,Arial,sans-serif}
.profile-field-summary-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.profile-field-summary-row strong,.profile-field-summary-row p{min-width:0;margin:0;color:var(--ink);font:800 17px/1.35 Assistant,Arial,sans-serif;overflow-wrap:anywhere}
.profile-field-summary-row p{font-weight:600;white-space:pre-wrap}
.profile-inline-edit{display:inline-grid;place-items:center;flex:0 0 auto;width:36px;height:36px;padding:0;border:1px solid rgba(43,110,143,.3);border-radius:50%;background:#fffdf9;color:var(--blue);cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.profile-inline-edit:hover,.profile-inline-edit:focus-visible{border-color:var(--blue);background:var(--sky);transform:translateY(-2px);outline:0}
.profile-inline-edit svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.profile-edit-form-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap}
.profile-edit-form-actions button{min-height:42px}
.profile-about-form label{display:grid;gap:7px;color:#263b45;font:800 16px/1.25 Assistant,Arial,sans-serif}
.profile-about-form textarea{box-sizing:border-box;width:100%;min-height:96px;resize:vertical;padding:10px 12px;border:1px solid rgba(43,110,143,.3);border-radius:9px;background:#fffdf9;color:#17232b;-webkit-text-fill-color:#17232b;font:600 16px/1.45 Assistant,Arial,sans-serif;direction:rtl}
.profile-about-form textarea:focus{border-color:#2b6e8f;outline:3px solid rgba(43,110,143,.12)}
.public-profile-about,.public-profile-settings{margin-top:25px;padding-top:21px;border-top:1px solid rgba(22,53,71,.14)}
.public-profile-about h2,.public-profile-settings h2{margin:0 0 11px;color:#163547;font:800 23px Rubik}
.public-profile-about p{margin:0;color:#355b6a;font:600 17px/1.55 Assistant,Arial,sans-serif;white-space:pre-wrap}
.public-profile-settings>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.public-profile-setting{display:grid;gap:7px;padding:15px;border:1px solid rgba(22,53,71,.13);border-radius:10px;background:#fff}
.public-profile-setting h3{margin:0;color:#163547;font:800 19px Rubik}
.public-profile-setting p{margin:0;color:#55707d;font:600 15px/1.4 Assistant,Arial,sans-serif}
.public-profile-setting-creator{color:#71848b;font:700 13px/1.35 Assistant,Arial,sans-serif}
.public-profile-setting-actions{display:flex;justify-content:flex-start;margin-top:4px}
.public-profile-setting-save{min-height:36px;padding:7px 12px;border:1px solid rgba(43,110,143,.32);border-radius:7px;background:#f2f8f7;color:#2b6e8f;font:800 14px Assistant,Arial,sans-serif;cursor:pointer}
.public-profile-setting-save:hover:not(:disabled){background:#e3f1ef;transform:translateY(-1px)}
.public-profile-setting-save:disabled{opacity:.7;cursor:wait}
.public-profile-setting-save.is-saved{border-color:#8abf97;background:#eaf7ec;color:#347047;cursor:default}
.public-profile-gallery{margin-top:28px;padding-top:24px;border-top:1px solid rgba(22,53,71,.14)}
.public-profile-gallery h2{margin:0 0 14px;color:#163547;font:800 24px Rubik}
.public-profile-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.public-profile-gallery-grid .gallery-item{min-width:0}
.public-profile-gallery-grid .public-profile-gallery-card{padding:0;border-radius:10px;background:transparent;box-shadow:none}
.public-profile-gallery-grid .public-profile-gallery-card:hover{transform:translateY(-3px);box-shadow:none}
.public-profile-gallery-grid .public-profile-gallery-card .gallery-image{border-radius:10px}
.public-profile-gallery-empty{margin:0;padding:24px 16px;border:1px dashed rgba(43,110,143,.28);border-radius:10px;background:#f3f8f7;color:#55707d;font-weight:700;text-align:center}
.profile-preset-origin{display:block;margin-top:3px;color:#71848b;font:700 12px/1.3 Assistant,Arial,sans-serif}
.profile-gallery-card{overflow:hidden}
.profile-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:15px}
.profile-gallery-grid .profile-gallery-card-item{min-width:0;padding:0;border-radius:10px;background:transparent;box-shadow:none}
.profile-gallery-grid .profile-gallery-card-item:hover{transform:translateY(-3px);box-shadow:none}
.profile-gallery-grid .profile-gallery-card-item .gallery-image{border-radius:10px}
.profile-gallery-empty{margin:15px 0 0;padding:22px 16px;border:1px dashed rgba(43,110,143,.28);border-radius:10px;background:#f3f8f7;color:#55707d;font-weight:700;text-align:center}
.profile-preset-origin-link{color:#2b6e8f;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.profile-preset-origin-link:hover,.profile-preset-origin-link:focus-visible{color:#c96e4d}
@media(max-width:700px){.public-profile-settings>div{grid-template-columns:1fr}.public-profile-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.public-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-about-form textarea{font-size:15px}}
@media(max-width:700px){.profile-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-email{font-size:13px}}
.profile-equipment-form .profile-equipment-field{display:block;margin:0;color:#263b45;font:800 16px/1.25 Assistant,Arial,sans-serif}
.profile-equipment-form .profile-equipment-field>span{display:block;margin:0 2px 7px}
.profile-equipment-form .profile-equipment-optional-field>span{display:flex;align-items:center;justify-content:space-between;gap:8px}
.profile-equipment-field-remove{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;padding:0;border:1px solid rgba(22,53,71,.2);border-radius:50%;background:rgba(255,255,255,.72);color:#163547;cursor:pointer;transition:transform .18s ease,background-color .18s ease,color .18s ease}.profile-equipment-field-remove svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9}.profile-equipment-field-remove:hover,.profile-equipment-field-remove:focus-visible{background:#c87542;color:#fff;transform:translateY(-1px);outline:0}
.profile-equipment-form input,.profile-equipment-form select{box-sizing:border-box;width:100%;min-height:46px;border:1px solid rgba(43,110,143,.3);border-radius:9px;background:#fffdf9;color:#17232b;-webkit-text-fill-color:#17232b;padding:10px 12px;font:600 16px/1.2 Assistant,Arial,sans-serif;direction:rtl}
.profile-equipment-form input::placeholder{color:#7c8d91;opacity:1}
.profile-equipment-form select{padding-inline-start:36px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%232b6e8f' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E");background-position:left 12px center;background-repeat:no-repeat;background-size:16px;color-scheme:light;cursor:pointer}
.profile-equipment-form input:focus,.profile-equipment-form select:focus{outline:2px solid rgba(43,110,143,.2);border-color:var(--blue)}
.profile-equipment-form select option{background:#fffdf9;color:#17232b;font:600 16px Assistant,Arial,sans-serif}
.profile-identity{display:flex;align-items:center;gap:16px;min-width:0}
.profile-avatar-wrap{position:relative;display:grid;place-items:center;width:108px;height:108px;flex:0 0 108px;border-radius:50%;overflow:visible;background:#e3f0f0;color:#2b6e8f}
.profile-avatar{display:block;width:100%;height:100%;object-fit:cover}
.profile-avatar-wrap>.profile-avatar,.profile-avatar-wrap>.profile-avatar-art,.profile-avatar-wrap>.profile-avatar-generated,.profile-avatar-wrap>.profile-avatar-initials{border-radius:50%;overflow:hidden}
.profile-avatar[hidden],.profile-avatar-initials[hidden]{display:none}
.profile-avatar-initials{font:900 28px/1 Rubik,Arial,sans-serif}
.profile-identity h3{margin:0;color:#163547;font:900 28px/1 Rubik,Arial,sans-serif;overflow-wrap:anywhere}
.profile-identity p{margin:6px 0 0;color:#55707d;font-weight:700;overflow-wrap:anywhere}
.profile-name-line{display:flex;align-items:center;gap:9px;min-width:0}
.profile-name-line h3{min-width:0}
.profile-name-line .profile-inline-edit{width:32px;height:32px}
.profile-email-row{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;margin:12px 0 0;padding-bottom:11px;border-bottom:1px solid rgba(22,53,71,.1);direction:rtl}
.profile-email-label{flex:0 0 auto;color:#163547;font:800 14px/1.35 Assistant,Arial,sans-serif}
.profile-email{margin:0;color:#55707d;font:700 14px/1.35 Assistant,Arial,sans-serif;overflow-wrap:anywhere;direction:ltr;text-align:right}
.profile-note{font-size:13px;font-weight:600!important}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:22px}
.profile-stats div{display:grid;gap:4px;padding:12px;border-radius:9px;background:#edf5f4;text-align:center}
.profile-stats strong{color:#163547;font:900 24px/1 Rubik,Arial,sans-serif}
.profile-stats span{color:#55707d;font-size:13px;font-weight:800}
.profile-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.profile-card-heading h3{margin:5px 0 0;color:#163547;font:900 24px/1 Rubik,Arial,sans-serif}
.profile-secondary-button{padding:8px 12px;border:1px solid rgba(43,110,143,.3);border-radius:999px;background:#fff;color:#2b6e8f;font:800 13px Assistant,Arial,sans-serif;cursor:pointer}
.profile-secondary-button:hover{background:#edf5f4;border-color:#2b6e8f}
.profile-preferences{display:grid;gap:9px;margin-top:18px}
.profile-preferences label{display:flex;align-items:center;gap:9px;padding:11px 12px;border-radius:8px;background:#edf5f4;color:#163547;font-weight:800;cursor:pointer}
.profile-preferences input{width:18px;height:18px;accent-color:#2b6e8f}
.profile-status{min-height:19px;margin:10px 0 0;color:#2b6e8f;font-size:13px;font-weight:800}
.profile-notifications{display:grid;gap:8px;margin-top:12px}
.profile-notification{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;padding:13px;border-radius:10px;background:#f5f0e8;color:#355b6a}
.profile-notification.unread{background:#e3f0f0;box-shadow:inset 3px 0 #efaa5a}
.profile-notification-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#2b6e8f;color:#fff;font-size:14px}
.profile-notification p{min-width:0;margin:0;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.profile-notification time{color:#71858b;font-size:12px;white-space:nowrap}
.profile-empty-notifications{margin:0;padding:16px;border-radius:9px;background:#f5f0e8;color:#55707d;font-weight:700}
@media(max-width:700px){
 .profile-section{padding-top:54px;padding-bottom:62px}
 .profile-card{padding:18px}
 .profile-identity h3{font-size:23px}
 .profile-avatar-wrap{width:88px;height:88px;flex-basis:88px}
 .profile-avatar-initials{font-size:29px}
 .profile-stats{grid-template-columns:repeat(2,1fr)}
 .profile-card-heading{align-items:flex-start;flex-direction:column}
 .profile-notification{grid-template-columns:1fr;grid-template-areas:"body" "meta";gap:10px;padding:14px}
 .profile-notification-icon{grid-area:body;position:absolute;inset-inline-end:14px;top:14px}
 .profile-notification p{grid-area:body;width:100%;box-sizing:border-box;padding-inline-end:40px}
 .profile-notification-meta{grid-area:meta;display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;margin-top:2px}
 .profile-notification time{grid-column:auto;white-space:nowrap}
}

/* Keep preparation and taste choices visually distinct in both upload and
   edit flows, and keep every taste value readable on the light backgrounds. */
#brewDetailsSection + #tasteProfileSection{margin-top:18px}
#tasteProfileSection{border-color:rgba(43,110,143,.24);background:#fffdf9}
.taste-fields .taste-slider-field,.taste-fields .taste-slider-heading,.taste-fields .taste-score-field,.taste-fields .taste-score-field legend{color:#163547!important}
.lightbox-edit-form .taste-slider-field,.lightbox-edit-form .taste-slider-field strong,.lightbox-edit-form .taste-slider-heading,.lightbox-edit-form .taste-score-field legend{color:#163547!important;-webkit-text-fill-color:#163547}
.taste-fields .taste-slider-heading output{color:#55707d!important;-webkit-text-fill-color:#55707d}
.taste-fields .taste-slider-field input[type=range]{color:#163547!important}
.taste-fields .taste-score-button{color:#163547!important}
.lightbox-edit-panels,.lightbox-edit-forms{display:grid;gap:12px}
.lightbox-edit-forms{grid-template-columns:1fr}
.lightbox-info-panels{display:grid;grid-template-columns:1fr;gap:12px;width:min(620px,92vw);margin:10px auto 0;align-items:start}
.lightbox-info-panels>.lightbox-brew-details,.lightbox-info-panels>.lightbox-taste{width:auto;margin:0}
.lightbox-edit-panel{padding:11px;border:1px solid rgba(255,255,255,.24);border-radius:9px;background:rgba(255,253,249,.08)}
.lightbox-edit-panel h5{margin:0 0 8px;color:#f4b56c;font:800 16px/1.2 Rubik,Assistant,Arial,sans-serif}
.lightbox-edit-panel .taste-fields{margin-top:0}
.lightbox-edit-panel .taste-slider-field,.lightbox-edit-panel .taste-score-field{color:#163547!important;background:#fffdf9}
.lightbox-edit-panel .taste-slider-heading{color:#163547!important}
.lightbox-edit-panel .taste-slider-heading output{color:#55707d!important;-webkit-text-fill-color:#55707d}
.lightbox-edit-panel .taste-score-field legend{color:#163547!important}

/* Taste edit fields keep their labels outside the light value cards so the
   titles remain readable against the dark edit form. */
.lightbox-edit-form#lightboxTasteForm .taste-edit-field-group{display:grid;gap:6px;min-width:0}
.lightbox-edit-form#lightboxTasteForm .taste-edit-title,
.lightbox-edit-form#lightboxTasteForm .taste-edit-title strong{display:block;color:#fff!important;-webkit-text-fill-color:#fff;font:800 16px/1.25 Assistant,Arial,sans-serif}
.lightbox-edit-form#lightboxTasteForm .taste-edit-field-info{min-width:0}
.lightbox-edit-form#lightboxTasteForm .taste-edit-score-group{grid-column:1/-1;display:grid;gap:6px;min-width:0}
.lightbox-edit-form#lightboxTasteForm .taste-edit-score-group .taste-score-field{background:transparent!important}

/* Once an account has used its daily upload, replace the whole form with a
   compact status card instead of leaving an inactive upload box on screen. */
.upload-daily-locked{grid-column:2;align-self:stretch;display:block;min-height:220px;margin:0;padding:22px 24px;border:1px solid rgba(43,110,143,.24);border-radius:12px;background:rgba(255,253,249,.92);box-shadow:10px 11px 0 rgba(22,53,71,.08);color:var(--ink);font:800 20px/1.45 Rubik,Assistant,Arial,sans-serif;text-align:start}
.upload-daily-locked[hidden]{display:none}
.upload-account-status{grid-column:2;margin:0;padding:0 4px;color:#55707d;font:750 13px/1.45 Assistant,Arial,sans-serif;text-align:start}
.upload-account-status[hidden]{display:none}
.daily-upload-completion{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;margin:0 0 14px;padding:13px 15px;border:1px solid rgba(217,120,43,.28);border-radius:14px;background:linear-gradient(135deg,rgba(255,248,235,.96),rgba(237,247,245,.9));box-shadow:inset 0 1px 0 rgba(255,255,255,.9);color:#163547;animation:daily-upload-completion-in .38s cubic-bezier(.2,1.25,.3,1) both}
.daily-upload-completion-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(217,120,43,.27);border-radius:50%;background:rgba(255,253,249,.82);color:#d9782b;box-shadow:0 5px 13px rgba(154,91,42,.12)}
.daily-upload-completion-icon svg{width:26px;height:26px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.daily-upload-completion-copy{display:grid;gap:3px;min-width:0}
.daily-upload-completion-kicker{color:#c96e4d;font:900 11px/1 Rubik,Arial,sans-serif;letter-spacing:.035em}
.daily-upload-completion strong{color:#163547;font:900 21px/1.05 Rubik,Arial,sans-serif;letter-spacing:-.035em}
.daily-upload-completion-copy>span:last-child{color:#55707d;font:700 13px/1.35 Assistant,Arial,sans-serif}
@keyframes daily-upload-completion-in{from{opacity:0;transform:translateY(7px) scale(.98)}to{opacity:1;transform:none}}
.daily-upload-poll{display:grid;gap:12px;padding:17px;border:1px solid rgba(43,110,143,.18);border-radius:14px;background:linear-gradient(145deg,rgba(232,242,241,.84),rgba(255,253,249,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
.daily-upload-poll-host{width:100%;margin-top:18px}.daily-upload-poll-host[hidden]{display:none}
.daily-upload-poll-kicker{color:#c96e4d;font:900 11px/1 Rubik,Arial,sans-serif;letter-spacing:.035em}
.daily-upload-poll h3{margin:0;color:#163547;font:850 19px/1.28 Rubik,Assistant,Arial,sans-serif;letter-spacing:-.025em}
.daily-upload-poll-options{display:flex;flex-wrap:wrap;gap:8px}
.daily-upload-poll-option{flex:1 1 130px;min-height:38px;padding:8px 11px;border:1px solid rgba(43,110,143,.23);border-radius:10px;background:rgba(255,255,255,.8);color:#163547;font:800 13px/1.25 Assistant,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}
.daily-upload-poll-option:is(:hover,:focus-visible):not(:disabled){border-color:#2b6e8f;background:#fff;color:#163547;outline:0;transform:translateY(-1px)}
.daily-upload-poll-option.is-selected{border-color:#c96e4d;background:#c96e4d;color:#fffdf9}
.daily-upload-poll-option:disabled{cursor:default;opacity:1}
.daily-upload-poll-hint,.daily-upload-poll-loading,.daily-upload-poll-total,.daily-upload-poll-error{margin:0;color:#55707d;font:700 12px/1.4 Assistant,Arial,sans-serif}
.daily-upload-poll-loading{min-height:34px;display:flex;align-items:center}
.daily-upload-poll-results{display:grid;gap:9px}
.daily-upload-poll-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;color:#355b6a;font:700 13px/1.25 Assistant,Arial,sans-serif}
.daily-upload-poll-result b{color:#163547;font:900 12px/1 Rubik,Arial,sans-serif}
.daily-upload-poll-result i{grid-column:1/-1;display:block;height:6px;overflow:hidden;border-radius:999px;background:rgba(43,110,143,.13)}
.daily-upload-poll-result i::after{content:'';display:block;width:var(--daily-poll-percent);height:100%;border-radius:inherit;background:linear-gradient(90deg,#2b6e8f,#c96e4d);transition:width .28s ease}
.daily-upload-poll-total{padding-top:1px;color:#2b6e8f}
.daily-upload-poll-error{color:#9d4d3c}
.upload-daily-locked.upload-caption-pending{display:grid;place-items:stretch;gap:16px;align-content:start;background:linear-gradient(135deg,rgba(255,253,249,.96),rgba(248,235,211,.94));border-color:rgba(193,116,53,.32);text-align:start}
.upload-caption-progress{display:grid;place-items:center;gap:12px;width:100%;padding:8px 0;text-align:center}
.upload-caption-spinner{width:44px;height:44px;border:4px solid rgba(193,116,53,.19);border-top-color:#b96f32;border-radius:50%;animation:kalimera-upload-caption-spin .9s linear infinite}
.upload-caption-copy{max-width:42ch}
@keyframes kalimera-upload-caption-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.upload-caption-spinner,.daily-upload-completion{animation:none}}
.upload-card[hidden]{display:none!important}
.site-header .upload-link[hidden]{display:none!important}
@media(max-width:700px){.upload-daily-locked,.upload-account-status{grid-column:1}.upload-daily-locked{min-height:180px;width:100%;padding:18px 14px;font-size:18px}.daily-upload-completion{grid-template-columns:42px minmax(0,1fr);gap:10px;margin-bottom:12px;padding:12px}.daily-upload-completion-icon{width:42px;height:42px}.daily-upload-completion-icon svg{width:24px;height:24px}.daily-upload-completion strong{font-size:19px}.daily-upload-completion-copy>span:last-child{font-size:12px}.daily-upload-poll{padding:15px}.daily-upload-poll-options{display:grid;grid-template-columns:1fr}.daily-upload-poll-option{width:100%}}
@media(min-width:701px){
  .lightbox-owner-tools,.lightbox-info-panels{width:min(900px,92vw)}
  .lightbox-edit-forms{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .lightbox-edit-forms>.lightbox-edit-form{min-width:0;margin-top:10px}
  .lightbox-info-panels{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* The upload form keeps preparation and taste in separate full-width rows.
   Only the post viewer/editor uses the two-column panel layout above. */
@media(min-width:701px){
  #uploadForm.upload-card>#brewDetailsSection,
  #uploadForm.upload-card>#tasteProfileSection{grid-column:1 / -1}
  #uploadForm.upload-card>#tasteProfileSection .taste-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:901px){
  .lightbox-edit-forms,.lightbox-info-panels{grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr)}
}
.lightbox-beans-stack{display:grid;align-content:center;justify-items:start;min-width:0;gap:3px;flex:1 1 auto}
.lightbox-taste-score-under-beans{display:flex;align-items:center;justify-content:flex-start;gap:8px;color:#dbe8ec;font:800 13px/1.2 Assistant,Arial,sans-serif;white-space:nowrap}

/* Owner editing is part of each expandable information panel.  The pencil
   uses the same compact circular treatment as the panel's +/- control. */
.lightbox-summary-edit{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;margin:0;padding:0;border:1px solid rgba(244,181,108,.5);border-radius:50%;background:transparent;color:#f4b56c;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.lightbox-summary-edit[hidden]{display:none!important}
.lightbox-summary-edit svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lightbox-summary-edit:hover{background:rgba(244,181,108,.18);border-color:#f4b56c;transform:translateY(-1px)}
.lightbox-brew-details-title,.lightbox-taste-title{position:relative;display:block;min-height:22px;padding-left:58px}
.lightbox-brew-details-title,.lightbox-taste-title{text-align:right;direction:rtl}
.lightbox-brew-details-title::after,.lightbox-taste-title::after{position:absolute;left:0;top:50%;transform:translateY(-50%);margin:0}
.lightbox-summary-edit{position:absolute;left:30px;top:50%;z-index:1;transform:translateY(-50%);flex:none}
.lightbox-summary-edit:hover{transform:translateY(calc(-50% - 1px))}
.lightbox-edit-status:empty{display:none}
.lightbox-taste-score-under-beans[hidden]{display:none!important}
.lightbox-taste-score-under-beans .lightbox-cups{gap:2px}
.lightbox-taste-score-under-beans .lightbox-cups img{width:20px;height:20px}
@media(max-width:700px){.lightbox-taste-score-under-beans{font-size:12px}.lightbox-taste-score-under-beans .lightbox-cups img{width:18px;height:18px}}

/* Keep the signed-in profile action beside upload, with the same rounded,
   coffee-shop button language as the rest of the header. */
.header-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.profile-link{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;padding:0;border:1px solid rgba(43,110,143,.34);border-radius:50%;background:#fffdf9;color:var(--blue);font:800 14px/1 Assistant,Arial,sans-serif;text-decoration:none;white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.profile-link:hover,.profile-link:focus-visible{border-color:var(--blue);background:var(--sky);color:var(--blue);transform:translateY(-1px);outline:0}
.profile-link-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}
.header-profile-avatar{display:grid;place-items:center;width:100%;height:100%;overflow:hidden;border-radius:inherit;background:#e3f0f0}.header-profile-avatar>img,.header-profile-avatar>.inline-profile-avatar,.header-profile-avatar>.inline-profile-avatar>img,.header-profile-avatar>.inline-profile-avatar>svg{display:block;width:100%;height:100%;border:0;border-radius:inherit;object-fit:cover}.header-profile-avatar>.inline-profile-avatar{min-width:0;flex:0 0 auto}.profile-link:not(.has-profile-avatar) .header-profile-avatar{background:transparent}
.profile-link[hidden]{display:none!important}
.upload-brew-details#tasteProfileSection{border-color:rgba(43,110,143,.28);background:#f2f8fb}
#tasteProfileSection .taste-helper{margin:0 0 10px;color:#163547;font:600 16px/1.45 Assistant,Arial,sans-serif}
#tasteProfileSection .taste-fields{gap:10px;margin-top:10px}
#tasteProfileSection .taste-slider-field{gap:7px;padding:10px;border:1px solid rgba(22,53,71,.24);border-radius:7px;background:#fffdf9}
#tasteProfileSection .taste-slider-heading{color:#163547;font:800 15px/1.25 Assistant,Arial,sans-serif}
#tasteProfileSection .taste-slider-heading output{color:#55707d;font:600 14px/1.25 Assistant,Arial,sans-serif}
#tasteProfileSection .taste-score-field{padding:10px;border:1px solid rgba(22,53,71,.24);border-radius:7px;background:#fffdf9}
#tasteProfileSection .taste-score-field legend{color:#163547;font:800 15px/1.25 Assistant,Arial,sans-serif}
.profile-login-dialog{position:relative;width:min(92vw,430px);padding:0;border:0;border-radius:18px;background:transparent;color:var(--ink);box-shadow:0 24px 80px rgba(15,35,48,.35);overflow:visible}
.profile-login-dialog::backdrop{background:rgba(14,35,45,.58);backdrop-filter:blur(3px)}
.profile-login-dialog[hidden]{display:none}
.profile-login-dialog-card{position:relative;padding:28px 24px 24px;border:1px solid rgba(43,110,143,.24);border-radius:18px;background:linear-gradient(145deg,#fffdf9,#eef7f7);text-align:center}
.profile-login-dialog-card h2{margin:0 0 8px;color:#163547;font:900 23px/1.2 Rubik,Assistant,Arial,sans-serif}
.profile-login-dialog-card>p{margin:0 0 18px;color:#55707d;font:600 15px/1.5 Assistant,Arial,sans-serif}
.profile-login-dialog-close{position:absolute;inset:-54px 0 auto auto;z-index:1;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(22,53,71,.2);border-radius:50%;background:rgba(255,253,249,.94);color:#163547;font:700 29px/1 Arial,sans-serif;line-height:1;cursor:pointer;box-shadow:0 3px 10px rgba(22,53,71,.12);transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease}
.profile-login-dialog-close:hover{transform:translateY(-2px);background:#fff;box-shadow:0 6px 14px rgba(22,53,71,.18)}
.profile-login-dialog-close:focus-visible{outline:3px solid rgba(43,110,143,.42);outline-offset:2px}
.profile-login-dialog-card .auth-provider-button{width:100%;justify-content:center;margin:0 0 14px}
.profile-login-email-form{display:grid;gap:9px;text-align:right}
.profile-login-email-form label{color:#163547;font:800 14px Assistant,Arial,sans-serif}
.profile-login-email-form input{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:10px 12px;border:1px solid rgba(43,110,143,.35);border-radius:9px;background:#fff;color:#163547;font:600 16px Assistant,Arial,sans-serif}
.profile-login-email-form button{border:1px solid rgba(43,110,143,.35);border-radius:999px;background:#fff;color:#2b6e8f;padding:10px 14px;font:800 15px Assistant,Arial,sans-serif;cursor:pointer}
.profile-login-email-form button:hover{background:#e9f5f6}
.profile-login-dialog-card .auth-message{min-height:20px;margin:12px 0 0;text-align:center}
.account-name-required-card{padding-top:24px}
.account-name-required-mark{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:#efaa5a;color:#163547;font-size:27px;box-shadow:0 5px 12px rgba(22,53,71,.14)}
.account-name-required-card form{display:grid;gap:11px;text-align:right}
.account-name-required-card label{display:grid;gap:7px;color:#163547;font:800 15px/1.3 Assistant,Arial,sans-serif}
.account-name-required-card input{box-sizing:border-box;width:100%;min-height:46px;padding:10px 12px;border:1px solid rgba(43,110,143,.3);border-radius:9px;background:#fffdf9;color:#17232b;-webkit-text-fill-color:#17232b;font:600 16px/1.2 Assistant,Arial,sans-serif;direction:rtl}
.account-name-required-card input:focus{outline:3px solid rgba(43,110,143,.14);border-color:#2b6e8f}
.account-name-required-card button[type=submit]{width:100%;min-height:44px}
@media(max-width:700px){
 .header-actions{gap:6px;margin-right:auto}
 .site-header .header-actions .upload-link{margin-right:0}
 .profile-link{width:40px;height:40px;padding:0;border-radius:9px}
 .profile-link .profile-link-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
 .profile-link-icon{width:20px;height:20px}
}

/* Profile identity, public-name selection, avatar upload, and notification
   actions. Keep account names intact even when Latin text sits in RTL layout. */
.profile-identity-copy{min-width:0}
.profile-identity h3,.profile-identity p{direction:ltr;unicode-bidi:plaintext;word-break:normal;overflow-wrap:break-word;white-space:normal}
.profile-public-name-form{display:grid;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(22,53,71,.14)}
.profile-public-name-form label{display:grid;gap:6px;color:#163547;font-weight:800}
.profile-public-name-form input{width:100%;padding:11px 13px;border:1px solid rgba(43,110,143,.34);border-radius:8px;background:#fffdf9;color:#163547;font:600 16px Assistant,Arial,sans-serif;outline:none}
.profile-public-name-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(43,110,143,.13)}
.profile-field-help{margin:0;color:#55707d;font-size:13px;font-weight:600}
.profile-primary-button{justify-self:start;padding:9px 16px;border:0;border-radius:999px;background:var(--blue);color:#fff;font:800 14px Assistant,Arial,sans-serif;cursor:pointer}
.profile-primary-button:hover{background:var(--terracotta);transform:translateY(-1px)}
.profile-logout-button{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:8px 15px;border:1px solid rgba(163,79,53,.42);border-radius:999px;background:#fff8f2;color:#a34f35;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.profile-logout-button:hover,.profile-logout-button:focus-visible{border-color:#a34f35;background:#a34f35;color:#fff;transform:translateY(-1px);outline:0}
.profile-logout-button:disabled{cursor:wait;opacity:.58;transform:none}
.profile-image-form{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:15px}
.profile-image-picker{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid rgba(43,110,143,.3);border-radius:999px;background:#edf5f4;color:var(--blue);font:800 14px Assistant,Arial,sans-serif;cursor:pointer}
.profile-image-picker:hover{border-color:var(--blue);background:#e3f0f0}
.profile-image-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.profile-image-picker-icon{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--blue);color:#fff;font-size:17px;line-height:1}
.profile-image-form .profile-status{flex:1 1 180px;margin:0}
.profile-notification-meta{display:grid;justify-items:end;gap:5px;min-width:76px}
.profile-notification-view{padding:3px 8px;border:1px solid rgba(43,110,143,.26);border-radius:999px;background:#fffdf9;color:var(--blue);font:800 12px Assistant,Arial,sans-serif;cursor:pointer}
.profile-notification-view:hover{border-color:var(--blue);background:var(--blue);color:#fff}
@media(max-width:700px){.profile-public-name-form{margin-top:16px;padding-top:15px}.profile-primary-button{width:100%}.profile-image-form{align-items:flex-start;flex-direction:column}.profile-image-form .profile-status{flex-basis:auto}.profile-notification-meta{justify-items:start;min-width:0}.profile-notification-view{font-size:11px}}

/* Give the profile a balanced dashboard layout: identity and notification
   settings sit side by side on wide screens and stack naturally on phones. */
body.profile-page #profile{max-width:1120px!important}
body.profile-page #profile .section-heading{margin-bottom:28px}
body.profile-page .profile-content{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;align-items:start;gap:20px}
body.profile-page .profile-card{min-width:0;padding:26px;background:linear-gradient(145deg,#fffdf9 0%,#f8fcfb 100%);box-shadow:8px 9px 0 rgba(22,53,71,.07)}
body.profile-page .profile-identity-card{box-shadow:10px 11px 0 rgba(22,53,71,.08)}
body.profile-page .profile-identity-card,body.profile-page .profile-stats-card,body.profile-page .profile-preferences-card{grid-column:1/-1}
body.profile-page #profileGallery{grid-column:1/-1}
body.profile-page .profile-stats-card{box-shadow:7px 8px 0 rgba(43,110,143,.09)}
body.profile-page .profile-card-heading{align-items:flex-start}
body.profile-page .profile-card-heading>div{min-width:0}
body.profile-page .profile-card-heading h3{overflow-wrap:anywhere}
body.profile-page .profile-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
body.profile-page .profile-status{margin-top:14px}
@media(max-width:900px){
  body.profile-page .profile-content{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:700px){
  body.profile-page #profile{padding-top:42px}
  body.profile-page .profile-card{padding:18px}
  body.profile-page .profile-identity{align-items:flex-start;gap:12px}
  body.profile-page .profile-identity-copy{padding-top:3px}
  body.profile-page .profile-stats{gap:7px;margin-top:18px}
  body.profile-page .profile-stats div{padding:10px 7px}
  body.profile-page .profile-stats strong{font-size:21px}
}

/* Profile dashboard cards keep the reading order clear in RTL: identity,
   activity, preferences, then the advanced tools generated by app.js. */
.profile-stats-card .profile-card-heading{margin-bottom:2px}
.profile-stats-card .profile-stats{margin-top:18px}
.profile-stats-card .profile-stats div{min-height:82px;align-content:center;border:1px solid rgba(43,110,143,.1);background:#edf5f4}
.profile-empty-state{display:grid;justify-items:center;gap:8px;margin:14px 0 0;padding:24px 18px;border:1px dashed rgba(43,110,143,.28);border-radius:12px;background:#f3f8f7;color:#55707d;text-align:center;font-weight:700;line-height:1.45}
.profile-empty-icon{display:block;width:48px;height:48px;object-fit:contain;border-radius:50%;background:#f3dfc5;padding:3px}
.profile-empty-cta{display:inline-flex;align-items:center;justify-content:center;margin-top:4px;padding:8px 14px;border-radius:999px;background:var(--blue);color:#fff;text-decoration:none;font:800 13px Assistant,Arial,sans-serif}
.profile-empty-cta:hover{background:var(--terracotta)}

/* Stop the underlying page from moving while a popup is open.  No scroll or
   touch rules are applied to the popup, so its internal scrolling remains
   available on mobile and desktop. */
body.popup-scroll-locked{overflow:hidden!important}

@media(max-width:700px){
  body.profile-page .profile-card-heading{gap:8px}
  body.profile-page .profile-card-help{line-height:1.35}
  .profile-stats-card .profile-stats div{min-height:72px}
}

/* Preparation details and taste controls share one compact row on desktop;
   the taste card intentionally gets the narrower column. */
@media(min-width:701px){
  #uploadForm.upload-card{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(230px,.86fr);column-gap:14px;row-gap:14px;align-items:start}
  #uploadForm.upload-card>#uploadAuth,
  #uploadForm.upload-card>.drop-zone,
  #uploadForm.upload-card>.preview,
  #uploadForm.upload-card>.name-field,
  #uploadForm.upload-card>#beanDetailsSection,
  #uploadForm.upload-card>.upload-button,
  #uploadForm.upload-card>.upload-message{grid-column:1 / -1}
  #uploadForm.upload-card>#brewDetailsSection{grid-column:1;margin-top:0}
  #uploadForm.upload-card>#tasteProfileSection{grid-column:2;margin-top:0;min-width:0}
  #uploadForm.upload-card>#tasteProfileSection .taste-fields{grid-template-columns:1fr}
}
@media(min-width:701px) and (max-width:900px){
  #uploadForm.upload-card{grid-template-columns:minmax(0,1.2fr) minmax(205px,.8fr);column-gap:10px}
  #uploadForm.upload-card>#tasteProfileSection{padding-inline:10px}
  #uploadForm.upload-card>#tasteProfileSection .taste-slider-field{padding-inline:8px}
}

/* A comment reached from a notification is gently highlighted, without
   moving the surrounding thread or leaving a permanent bright color behind. */
.comment-item.comment-highlight{border-color:#efaa5a!important;box-shadow:0 0 0 3px rgba(239,170,90,.34),0 5px 0 rgba(22,53,71,.08);animation:comment-highlight-pulse 2.6s ease both}
@keyframes comment-highlight-pulse{0%{background:#fff8ea}18%,58%{background:#f8e1b9}100%{background:#edf5f4}}
.comment-item.comment-reply.comment-highlight{animation-name:comment-reply-highlight-pulse}
@keyframes comment-reply-highlight-pulse{0%{background:#fff8ea}18%,58%{background:#f8e1b9}100%{background:#f8eee0}}
@media(prefers-reduced-motion:reduce){.comment-item.comment-highlight{animation:none}}

/* Compact reactions keep the same rounded language as the other social
   controls while making each comment/reply independently reactable. */
.comment-reactions{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:8px 0 4px;direction:ltr}
.comment-reaction-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:38px;min-height:30px;padding:4px 7px;border:1px solid rgba(43,110,143,.2);border-radius:999px;background:#fff;color:#355b6a;font:700 14px/1 Assistant,Arial,sans-serif;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.comment-reaction-button:hover,.comment-reaction-button:focus-visible{border-color:#2b6e8f;background:#d9edf1;color:#163547;outline:0;transform:translateY(-1px)}
.comment-reaction-button.active{border-color:#efaa5a;background:#f8e1b9;color:#163547}
.comment-reaction-button:disabled{cursor:wait;opacity:.62;transform:none}
.comment-reaction-symbol{font-size:16px;line-height:1}
.comment-reaction-count{min-width:1ch;text-align:center;font-size:12px}
@media(max-width:700px){.comment-reaction-button{min-width:36px;padding-inline:6px}.comment-reactions{gap:4px}}

/* On upload, keep beans, preparation, and taste panels in one predictable
   vertical flow at every desktop width.  This final override comes after
   the older responsive grid rules above. */
@media(min-width:701px){
  #uploadForm.upload-card>#beanDetailsSection,
  #uploadForm.upload-card>#brewDetailsSection,
  #uploadForm.upload-card>#tasteProfileSection{
    grid-column:1 / -1;
    width:100%;
  }
}

/* Shared navigation glass surface. Popups use the same frosted rail palette
   as the private-profile navigation so the interface has one coherent modal
   language across desktop and mobile. */
:root{
  --kalimera-header-glass-background:rgba(18,42,53,.5);
  --kalimera-header-glass-border:rgba(255,255,255,.42);
  --kalimera-header-glass-shadow:0 10px 24px rgba(10,28,37,.18);
  --kalimera-header-glass-blur:blur(12px) saturate(1.08);
  --kalimera-header-glass-text:#fffdf9;
  --kalimera-header-glass-muted:#d6eeee;
  --kalimera-header-glass-item-background:rgba(255,255,255,.12);
  --kalimera-header-glass-item-border:rgba(255,255,255,.28);
  --kalimera-header-glass-item-hover:rgba(255,255,255,.25);
}
:is(
  .notifications-panel .notifications-overlay-surface,
  .daily-streak-calendar-dialog .daily-streak-calendar-card,
  .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .privacy-consent-banner,
  .privacy-preferences-dialog .privacy-preferences-card,
  .profile-login-dialog-card.kalimera-overlay-surface,
  .shared-preset-import-card.kalimera-overlay-surface,
  .profile-preset-name-card.kalimera-overlay-surface,
  .profile-discard-card.kalimera-overlay-surface,
  .profile-preset-delete-card.kalimera-overlay-surface,
  .profile-bean-wallet-card.kalimera-overlay-surface,
  .bug-report-card.kalimera-overlay-surface,
  .shelf-dialog-card.kalimera-overlay-surface
){
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  opacity:1!important;
  color:var(--kalimera-header-glass-text)!important;
}
:is(
  .notifications-panel .notifications-overlay-surface,
  .daily-streak-calendar-dialog .daily-streak-calendar-card,
  .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .privacy-consent-banner,
  .privacy-preferences-dialog .privacy-preferences-card,
  .profile-login-dialog-card.kalimera-overlay-surface,
  .shared-preset-import-card.kalimera-overlay-surface,
  .profile-preset-name-card.kalimera-overlay-surface,
  .profile-discard-card.kalimera-overlay-surface,
  .profile-preset-delete-card.kalimera-overlay-surface,
  .profile-bean-wallet-card.kalimera-overlay-surface,
  .bug-report-card.kalimera-overlay-surface,
  .shelf-dialog-card.kalimera-overlay-surface
) :is(h1,h2,h3,h4,h5,label,strong,dt,dd){color:var(--kalimera-header-glass-text)!important}
:is(
  .notifications-panel .notifications-overlay-surface,
  .daily-streak-calendar-dialog .daily-streak-calendar-card,
  .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .privacy-consent-banner,
  .privacy-preferences-dialog .privacy-preferences-card,
  .profile-login-dialog-card.kalimera-overlay-surface,
  .shared-preset-import-card.kalimera-overlay-surface,
  .profile-preset-name-card.kalimera-overlay-surface,
  .profile-discard-card.kalimera-overlay-surface,
  .profile-preset-delete-card.kalimera-overlay-surface,
  .profile-bean-wallet-card.kalimera-overlay-surface,
  .bug-report-card.kalimera-overlay-surface,
  .shelf-dialog-card.kalimera-overlay-surface
) :is(p,small,.profile-status,.auth-message,.eyebrow){color:var(--kalimera-header-glass-muted)!important}
:is(
  .notifications-panel .notifications-overlay-surface,
  .daily-streak-calendar-dialog .daily-streak-calendar-card,
  .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
  .privacy-consent-banner,
  .privacy-preferences-dialog .privacy-preferences-card,
  .profile-login-dialog-card.kalimera-overlay-surface,
  .shared-preset-import-card.kalimera-overlay-surface,
  .profile-preset-name-card.kalimera-overlay-surface,
  .profile-discard-card.kalimera-overlay-surface,
  .profile-preset-delete-card.kalimera-overlay-surface,
  .profile-bean-wallet-card.kalimera-overlay-surface,
  .bug-report-card.kalimera-overlay-surface,
  .shelf-dialog-card.kalimera-overlay-surface
) :is(.kalimera-overlay-header,.kalimera-overlay-body,.kalimera-overlay-footer){
  background:transparent!important;
  border-color:var(--kalimera-header-glass-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
.profile-section-nav-dialog .profile-section-nav-sheet{
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
.profile-section-nav-dialog .profile-section-nav-item{
  background:rgba(255,255,255,.72)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
.profile-section-nav-dialog .profile-section-nav-item:is(:hover,:focus-visible,[aria-current="location"]){
  background:#e6f2f1!important;
  border-color:#2b6e8f!important;
  color:#2b6e8f!important;
}
.bug-report-dialog .bug-report-card,
.shelf-dialog .shelf-dialog-card{
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
.bug-report-dialog .bug-report-card :is(h1,h2,h3,h4,label,strong,p,small,.bug-report-status,.bug-report-character-count),
.shelf-dialog .shelf-dialog-card :is(h1,h2,h3,h4,label,strong,p,small){color:var(--kalimera-header-glass-text)!important}

/* Shared header notifications menu. It follows the profile action and stays
   usable as a compact icon button on narrow screens. */
.notifications-menu{position:relative;z-index:30;flex:0 0 auto}
.notifications-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0;width:40px;height:40px;min-height:40px;padding:0;border:1px solid rgba(43,110,143,.34);border-radius:50%;background:#fffdf9;color:var(--ink);font:800 14px/1 Assistant,Arial,sans-serif;cursor:pointer;white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.notifications-link:hover,.notifications-link:focus-visible{border-color:var(--blue);background:var(--sky);color:var(--blue);transform:translateY(-1px);outline:0}
.notifications-link.has-unread{border-color:var(--terracotta);box-shadow:0 0 0 3px rgba(201,110,77,.13)}
.notifications-link-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}
.notifications-count{position:absolute;top:-6px;inset-inline-end:-6px;min-width:19px;height:19px;padding:0 4px;border:2px solid #fffdf9;border-radius:999px;background:var(--terracotta);color:#fff;text-align:center;font:900 11px/15px Rubik,Arial,sans-serif}
.notifications-panel{position:absolute;top:calc(100% + 10px);inset-inline-end:0;z-index:1100;width:min(390px,calc(100vw - 24px));max-height:min(75vh,560px);padding:13px;border:1px solid rgba(43,110,143,.24);border-radius:14px;background:#fffdf9;color:#163547;box-shadow:0 18px 42px rgba(22,53,71,.22);text-align:right}
.notifications-panel[hidden]{display:none!important}
.notifications-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 10px;border-bottom:1px solid rgba(22,53,71,.12)}
.notifications-panel-title{display:flex;align-items:center;gap:8px;min-width:0}
.notifications-panel-heading h2{margin:0;color:#163547;font:900 20px/1 Rubik,Arial,sans-serif}
.notifications-panel-title-count{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#ef8f3a;color:#fffdf9;direction:ltr;text-align:center;font:900 12px/23px Rubik,Arial,sans-serif}
.notifications-panel-title-count[hidden]{display:none!important}
.notifications-panel-heading button{padding:5px 8px;border:0;background:transparent;color:#2b6e8f;font:800 12px Assistant,Arial,sans-serif;cursor:pointer}
.notifications-panel-list{display:grid;gap:7px;max-height:480px;overflow:auto;padding-top:9px}
.notifications-panel-empty{margin:0;padding:20px 10px;color:#55707d;text-align:center;font-weight:700}
.notifications-panel-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;width:100%;padding:10px;border:1px solid transparent;border-radius:10px;background:#f5f0e8;color:#355b6a;text-align:right;cursor:pointer}
.notifications-panel-item:hover,.notifications-panel-item:focus-visible{border-color:rgba(43,110,143,.36);background:#edf5f4;outline:0}
.notifications-panel-item{min-height:0;overflow:visible;white-space:normal}
.notifications-panel-body{min-width:0;overflow:visible;white-space:normal}
.notifications-panel-message,.notifications-panel-body strong{overflow-wrap:anywhere;word-break:break-word}
.notifications-panel-item.unread{border-inline-start:3px solid #efaa5a;background:#e3f0f0}
.notifications-panel-type{display:grid;place-items:center;inline-size:34px;block-size:34px;flex:none;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:#0a1c25;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 4px 10px rgba(10,28,37,.16)}
.notifications-panel-type-icon{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.notifications-panel-type-like,.notifications-panel-type-reply,.notifications-panel-type-maintenance,.notifications-panel-type-comment{background:#0a1c25}
.notifications-panel-body{display:grid;gap:4px;min-width:0}
.notifications-panel-body strong{display:flex;align-items:center;gap:7px;color:#163547;font:800 14px/1.2 Assistant,Arial,sans-serif;overflow-wrap:anywhere}
.notifications-panel-message{color:#355b6a;font:600 13px/1.35 Assistant,Arial,sans-serif;overflow-wrap:anywhere}
.notifications-panel-meta{color:#71858b;font:600 11px/1.2 Assistant,Arial,sans-serif}
.notifications-panel-avatar{display:inline-block;width:23px;height:23px;flex:0 0 23px;border-radius:50%;object-fit:cover}
.notifications-panel-avatar-fallback{display:grid;place-items:center;background:#d9edf1;color:#2b6e8f;font-size:13px}
.site-header>.notifications-menu{margin-inline-start:9px}
@media(max-width:700px){
  .notifications-link{width:40px;height:40px;min-height:40px;padding:0;border-radius:9px}
  .notifications-link>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .notifications-link-icon{width:20px;height:20px}
  .notifications-panel{position:fixed;top:66px;inset-inline:12px;width:auto;max-width:none}
  .notifications-panel-item{align-items:start;min-height:76px;padding:13px 12px;line-height:1.45}
  .notifications-panel-type{inline-size:32px;block-size:32px}
  .notifications-panel-type-icon{width:17px;height:17px}
  .notifications-panel-body{gap:6px}
  .notifications-panel-message{font-size:14px;line-height:1.5}
  .site-header>.notifications-menu{margin-inline-start:0}
}

/* Keep related preparation values together on wider forms. Categories get a
   full row, while manufacturer/model pairs share the next row. The mobile
   layout below intentionally returns to a single comfortable column. */
@media(min-width:701px){
  #brewDetailsFields .brew-detail[data-field-key="machineCategory"],
  #lightboxEditDetailsFields .brew-detail[data-field-key="machineCategory"],
  #brewDetailsFields .brew-detail[data-field-key="grinderCategory"],
  #lightboxEditDetailsFields .brew-detail[data-field-key="grinderCategory"]{grid-column:1 / -1}
  #brewDetailsFields .brew-detail[data-field-key="machineBrand"],
  #lightboxEditDetailsFields .brew-detail[data-field-key="machineBrand"],
  #brewDetailsFields .brew-detail[data-field-key="grinderBrand"],
  #lightboxEditDetailsFields .brew-detail[data-field-key="grinderBrand"]{grid-column:1}
  #brewDetailsFields .brew-detail[data-field-key="machineModel"],
  #lightboxEditDetailsFields .brew-detail[data-field-key="machineModel"],
  #brewDetailsFields .brew-detail[data-field-key="grinderModel"],
  #lightboxEditDetailsFields .brew-detail[data-field-key="grinderModel"]{grid-column:2}
}

/* Profile avatar picker and the coffee-only avatar generator. */
.profile-avatar-wrap{isolation:isolate}
.profile-avatar-art,.profile-avatar-generated{position:absolute;inset:0;display:block;border-radius:inherit;overflow:hidden;background:transparent}
.profile-avatar-art[hidden],.profile-avatar-generated[hidden],.profile-avatar-dialog[hidden]{display:none!important}
.profile-avatar-art svg,.profile-avatar-generated svg{display:block;width:100%;height:100%}
.profile-avatar-edit{--profile-avatar-edit-size:42px;position:absolute;inset-inline-end:-8px;top:calc(var(--profile-avatar-edit-size) * -.6);z-index:7;display:grid;place-items:center;width:var(--profile-avatar-edit-size);height:var(--profile-avatar-edit-size);padding:0;border:2px solid #fffdf9;border-radius:50%;background:var(--terracotta);color:#fff;box-shadow:0 3px 10px rgba(22,53,71,.28);cursor:pointer;transition:transform .18s ease,background .18s ease}
.profile-avatar-edit:hover,.profile-avatar-edit:focus-visible{background:var(--blue);transform:scale(1.08);outline:0}
.profile-avatar-edit svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.profile-avatar-dialog{width:min(94vw,760px);max-height:min(90vh,820px);padding:0;border:0;border-radius:18px;background:#fffdf9;color:var(--ink);box-shadow:0 22px 70px rgba(22,53,71,.28)}
.profile-avatar-dialog::backdrop{background:rgba(22,53,71,.55);backdrop-filter:blur(4px)}
.profile-avatar-dialog-card{max-width:100%;padding:25px 27px 27px;overflow:auto;overflow-x:hidden;word-break:normal;overflow-wrap:normal}
.profile-avatar-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.profile-avatar-dialog-heading h3{margin:5px 0 0;color:var(--ink);font:900 27px/1 Rubik;letter-spacing:-.05em}
.profile-avatar-dialog-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(43,110,143,.25);border-radius:50%;background:#fff;color:var(--blue);font-size:23px;line-height:1;cursor:pointer}
.profile-avatar-dialog-close:hover{background:var(--sky);border-color:var(--blue)}
.profile-avatar-dialog-intro{margin:10px 0 18px;color:#55707d;font-weight:600}
.profile-avatar-crop{margin-top:17px;padding-top:17px;border-top:1px solid rgba(22,53,71,.12)}
.profile-avatar-crop[hidden]{display:none!important}
.profile-avatar-crop-heading h4{margin:5px 0 13px;color:var(--ink);font:900 23px/1 Rubik;letter-spacing:-.04em}
.profile-avatar-crop-stage{position:relative;width:min(100%,360px);aspect-ratio:1;margin:0 auto;overflow:hidden;border-radius:14px;background:#dce6e6;box-shadow:inset 0 0 0 2px rgba(22,53,71,.16);touch-action:none;cursor:grab}
.profile-avatar-crop.profile-cover-crop .profile-avatar-crop-stage{width:min(100%,560px);aspect-ratio:3/1}
.profile-avatar-crop.profile-cover-crop .profile-avatar-crop-heading h4{font-size:21px}
.profile-avatar-crop-stage.is-dragging{cursor:grabbing}
.profile-avatar-crop-stage::after{content:'';position:absolute;inset:0;border:2px solid rgba(255,255,255,.86);border-radius:14px;box-shadow:0 0 0 999px rgba(22,53,71,.12);pointer-events:none}
.profile-avatar-crop-stage img{position:absolute;top:50%;left:50%;max-width:none;user-select:none;pointer-events:none;will-change:transform,width,height}
.profile-avatar-crop-help{margin:10px 0 13px;color:#55707d;font-size:14px;font-weight:600;text-align:center}
.profile-avatar-crop-zoom{display:grid;gap:5px;color:var(--ink);font:800 15px Assistant,Arial,sans-serif}
.profile-avatar-crop-zoom input{width:100%;accent-color:var(--terracotta);direction:ltr;touch-action:pan-y}
.profile-avatar-crop-actions{display:flex;justify-content:flex-start;gap:9px;margin-top:15px}
.profile-avatar-crop-actions button{min-height:42px}
.profile-avatar-crop-actions .profile-avatar-crop-remove{flex:0 0 42px;min-width:42px;width:42px;height:42px;padding:0;border-color:rgba(255,255,255,.75);background:rgba(22,53,71,.82);color:#fff}
.profile-avatar-crop-actions .profile-avatar-crop-remove:hover,.profile-avatar-crop-actions .profile-avatar-crop-remove:focus-visible{background:#a94d3e;color:#fff;outline:0}
.profile-avatar-edit-current{display:block;margin:13px 0 0;width:100%;text-align:center}
.profile-avatar-remove-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:0;min-height:40px;color:#a34f35;border-color:rgba(163,79,53,.35);background:#fff8f2}
.profile-avatar-remove-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.profile-avatar-remove-action:hover:not(:disabled),.profile-avatar-remove-action:focus-visible{border-color:#a34f35;background:#f8e3d9;color:#8f3f2e;transform:translateY(-1px);outline:0}
.profile-avatar-remove-action:disabled{cursor:not-allowed;opacity:.48}
.profile-avatar-choices{display:grid;min-width:0;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}
.profile-avatar-choice{display:grid;min-width:0;width:100%;gap:6px;justify-items:center;overflow:hidden;padding:8px 5px;border:2px solid transparent;border-radius:12px;background:#f4f0e8;color:var(--ink);font:800 12px Assistant,Arial,sans-serif;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease;word-break:normal;overflow-wrap:normal}
.profile-avatar-choice>span,.profile-avatar-dialog-intro,.profile-image-picker>span:last-of-type{max-width:100%;word-break:normal;overflow-wrap:normal}
.profile-avatar-choice>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-avatar-choice:hover,.profile-avatar-choice:focus-visible{border-color:var(--blue);background:#edf5f4;transform:translateY(-2px);outline:0}
.profile-avatar-choice[aria-pressed="true"]{border-color:var(--terracotta);background:#fff1e4;box-shadow:0 0 0 2px rgba(239,170,90,.18)}
.profile-avatar-choice img,.profile-avatar-choice-art{display:block;width:min(76px,100%);max-width:100%;height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover}
.profile-avatar-choice-art{display:grid;place-items:center;background:#e3f0f0}
.profile-avatar-choice-art svg{display:block;width:100%;height:100%}
.profile-generator{margin-top:23px;padding:18px;border:1px solid rgba(43,110,143,.18);border-radius:14px;background:#edf5f4}
.profile-generator-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.profile-generator-heading h4{margin:4px 0 0;color:var(--ink);font:900 20px/1 Rubik}
.profile-generator-random{padding:7px 11px;border:1px solid rgba(43,110,143,.3);border-radius:999px;background:#fff;color:var(--blue);font:800 12px Assistant;cursor:pointer}
.profile-generator-random:hover{background:var(--blue);color:#fff}
.profile-generator-body{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;margin-top:14px}
.profile-generator-preview{display:grid;place-items:center;width:150px;height:150px;border-radius:50%;background:#d5e8ea;overflow:hidden}
.profile-generator-preview svg{width:100%;height:100%}
.profile-generator-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}
.profile-generator-controls label{display:grid;gap:5px;color:var(--ink);font-size:13px;font-weight:800}
.profile-generator-controls select{width:100%;padding:9px 10px;border:1px solid rgba(43,110,143,.28);border-radius:8px;background:#fffdf9;color:var(--ink);font:700 14px Assistant;outline:none}
.profile-generator-apply{grid-column:1/-1;padding:10px 14px;border:0;border-radius:999px;background:var(--blue);color:#fff;font:800 14px Assistant;cursor:pointer}
.profile-generator-apply:hover{background:var(--terracotta)}
.profile-avatar-dialog .profile-image-form{margin-top:17px;padding-top:15px;border-top:1px solid rgba(22,53,71,.12)}
@media(max-width:700px){.profile-avatar-dialog-card{padding:20px 16px}.profile-avatar-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.profile-avatar-choice img,.profile-avatar-choice-art{width:min(64px,100%);height:auto;aspect-ratio:1}.profile-generator-body{grid-template-columns:1fr}.profile-generator-preview{width:130px;height:130px;margin:0 auto}.profile-generator-controls{grid-template-columns:1fr}.profile-generator-apply{grid-column:auto}}

/* Keep the upload action visually aligned with the profile action. On narrow
   screens both become compact icon buttons so the header stays uncluttered. */
.site-header .upload-link{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.upload-link-icon{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}
@media(max-width:700px){
  .site-header .upload-link{width:40px;height:40px;padding:0;border-radius:9px}
  .site-header .upload-link span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .site-header .upload-link-icon{width:20px;height:20px}
}

/* On phones the upload action floats just below the sticky header on the
   opposite side from the account controls. */
@media(max-width:700px){
  .site-header .upload-link{position:fixed;top:78px;right:auto;left:12px;z-index:25;width:44px;height:44px;padding:0;border-radius:50%;opacity:.72;box-shadow:0 6px 16px rgba(22,53,71,.22)}
  .site-header .upload-link:hover,.site-header .upload-link:focus-visible{opacity:1;transform:translateY(-1px)}
}

.brew-preset-tools,.recipe-share-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid rgba(22,53,71,.12)}
.brew-preset-tools[hidden],.brew-preset-tools [hidden],.brew-equipment-picker[hidden],#brewEquipmentSelect[hidden],#brewPresetSelect[hidden]{display:none!important}
.brew-preset-tools{margin-top:10px;padding-top:0;border-top:0}
.recipe-share-tools{margin-top:16px;padding:13px 14px;border:1px solid rgba(180,113,47,.28);border-radius:14px;background:linear-gradient(135deg,#fff8ed,#f4f8f6);box-shadow:0 5px 14px rgba(22,53,71,.06)}
.recipe-share-tools::before{content:'';display:block;width:30px;height:30px;border-radius:50%;background:#f0c58d url('favicon.png?v=20260910-current-logo-2') center/contain no-repeat}
.recipe-share-tools button,.recipe-share-tools .recipe-import-label{border-color:#c88749;background:#fff;color:#6a3c22;font-weight:800;box-shadow:0 2px 0 rgba(180,113,47,.15)}
.recipe-share-tools button:hover,.recipe-share-tools .recipe-import-label:hover{background:#fff3e2;border-color:#a9652d;transform:translateY(-1px)}
.brew-preset-tools select,.brew-preset-tools button,.recipe-share-tools button,.recipe-import-label{font:inherit;border:1px solid rgba(22,53,71,.2);border-radius:10px;padding:8px 11px;background:#fff;color:#17232b;cursor:pointer}
.brew-preset-tools label{font:800 16px/1.25 Assistant,Arial,sans-serif;color:var(--ink)}
.brew-equipment-picker{display:flex;flex-direction:column;align-items:stretch;gap:7px;flex:1 1 100%;min-width:0;line-height:1.25}
.brew-equipment-picker select{flex:1 1 auto;min-width:0;width:100%}
.profile-preset-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:16px;padding:14px;border:1px solid rgba(22,53,71,.12);border-radius:12px;background:rgba(255,255,255,.62)}
.profile-preset-form[hidden],.profile-preset-form[aria-hidden="true"]{display:none!important}
.profile-preset-form .profile-preset-type,.profile-preset-form .profile-preset-details-fields{grid-column:1/-1}
.profile-preset-form .profile-preset-details-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.profile-preset-form .profile-preset-details-fields .name-field{margin-top:0;min-width:0}
.profile-preset-form label{display:grid;gap:6px;font-weight:800;color:#263b45}
.profile-preset-form input{width:100%;min-height:42px;border:1px solid rgba(43,110,143,.3);border-radius:9px;background:#fff;color:#17232b;padding:9px 11px;font:600 16px Assistant,Arial,sans-serif}
.profile-preset-form select{width:100%;min-height:42px;border:1px solid rgba(43,110,143,.3);border-radius:9px;background-color:#fffdf9;color:#17232b;-webkit-text-fill-color:#17232b;padding:9px 36px 9px 11px;font:600 16px Assistant,Arial,sans-serif;direction:rtl;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%232b6e8f' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E");background-position:left 12px center;background-repeat:no-repeat;background-size:16px;cursor:pointer;color-scheme:light}
.profile-preset-form input,.profile-preset-form select,.profile-preset-form .brew-detail input,.profile-preset-form .brew-detail select{background-color:#fffdf9;color:#17232b;-webkit-text-fill-color:#17232b;color-scheme:light}
.profile-preset-form #profilePresetDrinkType,.profile-preset-form select[name="waterTemperature"]{background-color:#fffdf9!important;color:#17232b!important;-webkit-text-fill-color:#17232b!important}
.profile-preset-form input:focus{outline:2px solid rgba(43,110,143,.2);border-color:var(--blue)}
.profile-preset-form input:focus,.profile-preset-form select:focus{outline:2px solid rgba(43,110,143,.2);border-color:var(--blue)}
.profile-preset-form select option{background:#fffdf9;color:#17232b;font:600 16px Assistant,Arial,sans-serif}
.profile-preset-form .profile-primary-button{margin:0;min-height:42px;white-space:nowrap}
.profile-preset-form .profile-status{grid-column:1/-1;margin:0;min-height:1.2em}
.brew-time-suggestion{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff8e8;color:#68451f;font-size:.9rem}
.brew-time-suggestion a{color:#8a5229;font-weight:700;margin-inline-start:5px}
.daily-note-preview{display:block;border:0;background:transparent;color:#6e4a32;padding:5px 0;text-align:start;font:inherit;font-size:.88rem;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-advanced-card{margin-top:16px}
.profile-presets-card,.profile-analytics-card,.profile-equipment-card{grid-column:1 / -1}
.profile-card-help{font-size:.85rem;color:#60717b}
.profile-presets-list{display:grid;gap:8px;margin-top:14px}
.profile-last-upload-settings{display:grid;gap:5px;padding:12px 14px;border:1px solid rgba(201,110,77,.35);border-radius:12px;background:linear-gradient(135deg,rgba(255,248,240,.96),rgba(255,253,249,.84));direction:rtl;text-align:right}
.profile-last-upload-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.profile-last-upload-heading strong{color:var(--ink);font:900 1rem/1.25 Rubik,Assistant,Arial,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-last-upload-heading span{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:rgba(201,110,77,.12);color:#9b5137;font:800 .72rem/1.2 Assistant,Arial,sans-serif}
.profile-last-upload-badge-group{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.profile-last-upload-actions{display:flex;align-items:center;justify-content:center}
.profile-last-upload-actions .profile-preset-icon-button{width:34px;height:34px;min-height:34px}
.profile-last-upload-settings p{margin:0;overflow:hidden;color:#486977;font:700 .9rem/1.35 Assistant,Arial,sans-serif;text-overflow:ellipsis;white-space:nowrap}
.profile-last-upload-settings small{color:#60717b;font:600 .78rem/1.35 Assistant,Arial,sans-serif}
.profile-preset-row{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"actions summary" "actions date";align-items:center;gap:3px 12px;min-height:82px;padding:11px 12px;border:1px solid rgba(22,53,71,.12);border-radius:12px;background:rgba(255,255,255,.55);overflow:hidden;direction:ltr}
.profile-preset-summary{grid-area:summary;display:flex;align-items:center;min-width:0;overflow:hidden;direction:rtl;gap:8px;line-height:1.25}
.profile-preset-summary strong,.profile-preset-summary span{display:block;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-preset-summary strong{flex:1 1 38%;color:var(--ink);font-size:1rem}
.profile-preset-summary .profile-preset-type{flex:0 1 27%;color:#486977;font-size:.9rem}
.profile-preset-summary .profile-preset-machine{flex:1 1 35%;color:#60717b;font-size:.9rem}
.profile-preset-separator{flex:0 0 auto;color:rgba(22,53,71,.45);font-weight:800}
.profile-preset-date{grid-area:date;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#60717b;font-size:.78rem;line-height:1.2;direction:rtl;text-align:right}
.profile-preset-header-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex:0 0 auto;flex-wrap:wrap;direction:rtl}
.profile-preset-header-actions .profile-secondary-button{flex:0 0 auto;min-height:38px;white-space:nowrap;cursor:pointer}
.profile-preset-import{display:inline-flex;align-items:center;justify-content:center}
.profile-presets-card .profile-card-heading> .profile-secondary-button{flex:0 0 auto;white-space:nowrap}
.profile-section-quick-nav{display:none}
@media(max-width:700px){
  .profile-section-quick-nav{position:sticky;top:70px;z-index:5;display:flex;grid-column:1/-1;gap:7px;overflow-x:auto;margin:-8px 0 2px;padding:7px 2px;background:rgba(255,253,249,.94);backdrop-filter:blur(10px);direction:rtl;scrollbar-width:none}
  .profile-section-quick-nav::-webkit-scrollbar{display:none}
  .profile-section-quick-button{flex:0 0 auto;min-height:40px;padding:8px 13px;border:1px solid rgba(43,110,143,.34);border-radius:999px;background:rgba(255,255,255,.72);color:#2b6e8f;font:800 14px/1 Assistant,Arial,sans-serif;white-space:nowrap;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}
  .profile-section-quick-button:hover,.profile-section-quick-button:focus-visible{border-color:#2b6e8f;background:#2b6e8f;color:#fff;transform:translateY(-2px);outline:0}
}
.profile-preset-actions{grid-area:actions;display:flex;align-items:center;justify-content:flex-start;gap:7px;flex:0 0 auto;flex-wrap:wrap;direction:ltr}
.profile-preset-actions>button{flex:0 0 auto;white-space:nowrap;height:38px;min-height:38px;box-sizing:border-box}
.profile-preset-icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;gap:0;border-radius:50%;font-size:0;line-height:1}
.profile-preset-action-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.profile-preset-share{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;gap:0;border-radius:50%}
.profile-preset-share .social-icon{width:16px;height:16px;flex:0 0 16px}
.profile-preset-share.copied{border-color:#4f7b72;background:#edf7f1;color:#315e53}
.profile-preset-export.copied{border-color:#4f7b72;background:#edf7f1;color:#315e53}
.profile-preset-delete-dialog{width:min(92vw,430px);padding:0;border:0;border-radius:18px;background:transparent;color:var(--ink);box-shadow:0 24px 80px rgba(15,35,48,.35)}
.profile-preset-delete-dialog::backdrop{background:rgba(14,35,45,.58);backdrop-filter:blur(3px)}
.profile-preset-delete-dialog[hidden]{display:none}
.profile-preset-delete-card{position:relative;padding:26px 24px 22px;border:1px solid rgba(201,110,77,.28);border-radius:18px;background:linear-gradient(145deg,#fffdf9,#fff3eb);direction:rtl;text-align:right}
.profile-preset-delete-card h3{margin:0 0 9px;color:#163547;font:900 21px/1.2 Rubik,Assistant,Arial,sans-serif}
.profile-preset-delete-message{margin:0;color:#55707d;font:600 15px/1.5 Assistant,Arial,sans-serif;overflow-wrap:anywhere}
.profile-preset-delete-close{position:absolute;inset:9px auto auto 9px;width:32px;height:32px;border:1px solid rgba(43,110,143,.2);border-radius:50%;background:#fff;color:#2b6e8f;font-size:22px;line-height:1;cursor:pointer}
.profile-preset-delete-close:hover{background:#edf5f4;border-color:#2b6e8f;transform:translateY(-1px)}
.profile-preset-delete-actions{display:flex;justify-content:flex-start;gap:8px;margin-top:20px;direction:ltr}
.profile-preset-delete-actions button{min-height:40px;padding:8px 17px}
.profile-preset-delete-actions .profile-danger-button{border-color:#bd5b42;background:#bd5b42;color:#fff}
.profile-preset-delete-actions .profile-danger-button:hover{border-color:#9f4935;background:#9f4935}
.profile-preset-form-actions{display:flex;grid-column:1/-1;align-items:center;gap:8px;flex-wrap:wrap}
.profile-preset-form-actions .profile-secondary-button{min-height:42px;padding:9px 16px}
.profile-analytics-summary{display:flex;align-items:baseline;gap:12px 14px;flex-wrap:wrap;margin:14px 0 6px}.profile-analytics-summary-title{color:#163547;font:900 .88rem/1 Assistant,Arial,sans-serif;white-space:nowrap}.profile-analytics-legend-item{display:inline-flex;align-items:baseline;gap:5px;font-size:.9rem;font-weight:700;color:var(--metric-color,#334);border-inline-start:4px solid var(--metric-color,#334);padding-inline-start:7px}.profile-analytics-legend-label{color:#55707d;font:700 .9em/1.2 Assistant,Arial,sans-serif}.profile-analytics-legend-value{color:var(--metric-color,#334);font:900 1.02rem/1 Rubik,Assistant,Arial,sans-serif;font-variant-numeric:tabular-nums}
.profile-analytics-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding:10px 0;border-top:1px solid rgba(22,53,71,.1);border-bottom:1px solid rgba(22,53,71,.1);direction:rtl}.profile-analytics-metric-toggles,.profile-analytics-range{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.profile-analytics-toggle,.profile-analytics-range-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:6px 10px;border:1px solid rgba(22,53,71,.18);border-radius:999px;background:#fffdf9;color:#163547;font:800 13px Assistant,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.profile-analytics-toggle:hover:not(:disabled),.profile-analytics-range-button:hover{border-color:#2b6e8f;background:#edf5f4;transform:translateY(-1px)}.profile-analytics-toggle[aria-pressed=true],.profile-analytics-range-button[aria-pressed=true]{border-color:#2b6e8f;background:#2b6e8f;color:#fff}.profile-analytics-toggle:disabled{cursor:default;opacity:.4}.profile-analytics-toggle:focus-visible,.profile-analytics-range-button:focus-visible{outline:3px solid rgba(239,170,90,.6);outline-offset:2px}.profile-analytics-swatch{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.8)}.profile-analytics-scale-note{margin-inline-start:auto;color:#60717b;font-size:.82rem;font-weight:700}.profile-analytics-chart{position:relative;width:100%;min-height:180px;overflow:visible}.profile-analytics-chart svg{display:block;width:100%;height:auto;overflow:visible}.profile-analytics-grid-line{stroke:rgba(22,53,71,.14);stroke-width:1;stroke-dasharray:4 6}.profile-analytics-axis-note{fill:#60717b;font:700 12px Assistant,Arial,sans-serif}.profile-analytics-x-label{fill:#60717b;font:700 12px Assistant,Arial,sans-serif}.profile-analytics-line{vector-effect:non-scaling-stroke}.profile-analytics-area{pointer-events:none}.profile-analytics-point{cursor:pointer;vector-effect:non-scaling-stroke;transition:r .15s ease,stroke-width .15s ease}.profile-analytics-point:focus-visible{outline:3px solid #efaa5a;outline-offset:3px}.profile-analytics-tooltip{position:absolute;z-index:3;min-width:190px;max-width:min(280px,calc(100% - 20px));padding:11px 13px;border:1px solid rgba(255,255,255,.65);border-radius:11px;background:rgba(22,53,71,.97);color:#fffdf9;box-shadow:0 9px 24px rgba(22,53,71,.23);direction:rtl;text-align:right;pointer-events:none}.profile-analytics-tooltip[hidden]{display:none}.profile-analytics-tooltip strong,.profile-analytics-tooltip>span{display:block}.profile-analytics-tooltip strong{font:900 14px/1.2 Rubik,Arial,sans-serif}.profile-analytics-tooltip>span{margin-top:4px;color:#d9edf1;font-weight:700;line-height:1.35}.profile-analytics-tooltip ul{display:grid;gap:3px;margin:8px 0 0;padding:0;list-style:none;color:#fff;font-size:13px;line-height:1.35}.profile-analytics-empty{display:grid;justify-items:center;gap:13px;min-height:190px;padding:25px 18px;border:1px dashed rgba(43,110,143,.28);border-radius:12px;background:#f3f8f7;color:#55707d;text-align:center}.profile-analytics-empty p,.profile-analytics-empty-copy{margin:0;font-weight:700;line-height:1.45}.profile-analytics-empty-bars{display:flex;align-items:end;justify-content:center;gap:7px;width:min(240px,70%);height:78px;padding:8px 10px;border-bottom:2px solid rgba(43,110,143,.26)}.profile-analytics-empty-bars span{display:block;width:20px;border-radius:5px 5px 0 0;background:linear-gradient(180deg,rgba(201,110,77,.45),rgba(79,123,114,.22));animation:profileAnalyticsPulse 1.4s ease-in-out infinite alternate}.profile-analytics-empty-bars span:nth-child(2){animation-delay:.12s}.profile-analytics-empty-bars span:nth-child(3){animation-delay:.24s}.profile-analytics-empty-bars span:nth-child(4){animation-delay:.36s}.profile-analytics-empty-bars span:nth-child(5){animation-delay:.48s}@keyframes profileAnalyticsPulse{from{opacity:.45;transform:scaleY(.8);transform-origin:bottom}to{opacity:.95;transform:scaleY(1);transform-origin:bottom}}
.profile-analytics-chart{width:100%;min-height:180px;overflow:visible}.profile-analytics-chart svg{display:block;width:100%;height:auto}.analytics-grid-line{stroke:rgba(22,53,71,.14);stroke-width:1;stroke-dasharray:4 6}
.profile-analytics-chart{padding:12px 12px 20px;box-sizing:border-box}
.gallery-skeleton-group{opacity:.8}.gallery-skeleton{display:grid;gap:12px;min-height:180px;padding:12px;border-radius:16px;background:rgba(255,255,255,.65);overflow:hidden}.gallery-skeleton span,.skeleton-deal-card span{display:block;border-radius:8px;background:linear-gradient(100deg,rgba(202,190,174,.3) 25%,rgba(255,255,255,.8) 45%,rgba(202,190,174,.3) 65%);background-size:300% 100%;animation:kalimeraSkeleton 1.25s ease-in-out infinite}.gallery-skeleton span:first-child,.skeleton-deal-image{height:110px}.gallery-skeleton span:nth-child(2){height:16px;width:70%}.gallery-skeleton span:nth-child(3){height:12px;width:88%}.skeleton-deal-card{padding:12px;display:grid;gap:10px;min-height:290px}.skeleton-deal-image{height:150px}.skeleton-deal-line{height:14px;width:84%}.skeleton-deal-line.wide{width:95%}.skeleton-deal-line.short{width:55%}@keyframes kalimeraSkeleton{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media(max-width:700px){.profile-preset-row{gap:3px 9px;min-height:82px;padding:10px}.profile-preset-summary{gap:5px}.profile-preset-summary strong{font-size:.92rem}.profile-preset-summary .profile-preset-type,.profile-preset-summary .profile-preset-machine{font-size:.82rem}.profile-preset-actions{gap:5px}.profile-preset-actions>button{flex:0 0 auto;width:34px;height:34px;min-height:34px}.profile-preset-icon-button{width:34px;height:34px}.profile-preset-date{font-size:.72rem}.profile-preset-header-actions{width:100%}.profile-preset-header-actions .profile-secondary-button{flex:1 1 0;width:auto}.profile-presets-card .profile-card-heading> .profile-secondary-button{width:100%}.profile-analytics-chart{min-height:130px}.brew-preset-tools,.recipe-share-tools{font-size:.9rem}.profile-preset-form{grid-template-columns:1fr}.profile-preset-form .profile-preset-details-fields{grid-template-columns:1fr}.profile-preset-form .profile-primary-button,.profile-preset-form-actions .profile-secondary-button{width:100%}}

/* Profile cover images share the same calm card language as the avatar. */
.profile-cover,.public-profile-cover{position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(135deg,#e6f0ef,#f7e7d5);box-shadow:inset 0 0 0 1px rgba(22,53,71,.12)}
.profile-identity-card,.public-profile-card{overflow:hidden}
.profile-cover{min-height:270px;margin:-14px -14px 20px;aspect-ratio:2.5/1}
.profile-cover-art,.public-profile-cover-art{position:absolute;inset:0;display:block;overflow:hidden;isolation:isolate;background:#e6f0ef;pointer-events:none}
.profile-cover-art[hidden],.public-profile-cover-art[hidden]{display:none!important}
.profile-cover-art svg,.public-profile-cover-art svg{display:block;width:100%;height:100%;transform:scale(1.012);transform-origin:center;will-change:transform}
.profile-cover-image,.public-profile-cover-image{position:relative;z-index:1}
.profile-cover-actions{z-index:3}
.profile-cover-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.profile-cover-empty{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:20px;color:#55707d;font:800 17px Assistant,Arial,sans-serif;text-align:center}
.profile-cover-empty[hidden]{display:none}
.profile-cover-image,.public-profile-cover-image{display:block;width:100%;height:100%;object-fit:cover}
.profile-cover-image[hidden],.public-profile-cover-image[hidden]{display:none}
.profile-cover-actions{position:absolute;inset-inline-end:12px;bottom:12px;display:flex;align-items:center;gap:8px;z-index:4;pointer-events:auto}
.profile-cover-edit,.profile-cover-remove{position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:8px 12px;border:1px solid rgba(255,255,255,.75);border-radius:9px;background:rgba(22,53,71,.78);color:#fff;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;pointer-events:auto;touch-action:manipulation;backdrop-filter:blur(5px);transition:transform .18s ease,background .18s ease}
.profile-cover-edit:hover,.profile-cover-remove:hover{transform:translateY(-2px);background:rgba(22,53,71,.92)}
.profile-cover-edit,.profile-cover-remove{width:36px;height:36px;min-height:36px;padding:0;justify-content:center;gap:0}.profile-cover-edit{border-radius:50%}
.profile-cover-edit svg,.profile-cover-remove svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.profile-cover-edit input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.public-profile-cover{height:320px;margin:-28px -28px 25px;border-radius:16px 16px 10px 10px}
.profile-cover-dialog{width:min(94vw,860px)}
.profile-cover-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.profile-cover-choice{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;padding:8px;border:1px solid rgba(43,110,143,.18);border-radius:13px;background:#fffdf9;color:var(--ink);font:800 14px Assistant,Arial,sans-serif;text-align:start;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.profile-cover-choice:hover,.profile-cover-choice:focus-visible{transform:translateY(-2px);border-color:rgba(239,170,90,.82);box-shadow:0 9px 22px rgba(22,53,71,.12);outline:0}
.profile-cover-choice.is-locked{opacity:.66;cursor:not-allowed;filter:saturate(.72)}.profile-cover-choice.is-locked:hover{transform:none;border-color:rgba(43,110,143,.18);box-shadow:none}
.profile-cover-choice[aria-pressed="true"]{border-color:var(--terracotta);box-shadow:0 0 0 3px rgba(239,170,90,.26)}
.profile-cover-choice-art{display:block;min-height:94px;overflow:hidden;border-radius:9px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}
.profile-cover-choice-art svg{display:block;width:100%;height:100%}
.profile-cover-dialog-actions.profile-image-form{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:17px;padding-top:15px;border-top:1px solid rgba(22,53,71,.12)}
.profile-cover-dialog-actions[hidden]{display:none!important}
.profile-cover-dialog-actions .profile-secondary-button,.profile-cover-dialog-actions .profile-primary-button{width:auto;margin:0;min-height:40px}
.profile-cover-dialog-actions .profile-cover-approve{margin-inline-start:auto}
.profile-cover-dialog-actions .profile-cover-approve:disabled{opacity:.42;cursor:not-allowed;transform:none}
.profile-preset-equipment-picker{grid-column:1/-1}
.profile-preset-equipment-picker select{margin-top:0}
@media(max-width:700px){.profile-cover{min-height:210px;margin:-18px -18px 17px;aspect-ratio:1.65/1}.profile-cover-actions{inset-inline-end:8px;bottom:8px}.profile-cover-edit,.profile-cover-remove{min-height:33px;padding:7px 9px;font-size:13px}.profile-cover-edit span{display:none}.public-profile-cover{height:230px;margin:-18px -18px 20px}.profile-cover-choices{grid-template-columns:1fr;gap:10px}.profile-cover-choice{grid-template-columns:132px minmax(0,1fr);align-items:center;text-align:start}.profile-cover-choice-art{min-height:72px}.profile-cover-dialog-actions.profile-image-form{align-items:center;flex-direction:row}.profile-cover-dialog-actions .profile-avatar-remove-action{margin:0}.profile-preset-equipment-picker{grid-column:auto}}
@media(max-width:700px){
 body.profile-page #profile{padding-top:0!important}
 body.profile-page .profile-identity-card{padding-top:0;border-radius:0 0 14px 14px}
 body.profile-page .profile-identity-card .profile-cover{width:calc(100% + 36px);margin:0 -18px 17px;border-radius:0}
 body.profile-page .profile-cover-actions{inset-inline-end:10px;bottom:10px;display:flex;align-items:center;justify-content:flex-start;gap:8px;max-width:calc(100% - 20px);overflow:visible}
 body.profile-page .profile-cover-actions>*{box-sizing:border-box;flex:0 0 36px;width:36px;height:36px;min-height:36px}
}
@media(max-width:700px){.profile-analytics-controls{align-items:flex-start;gap:8px}.profile-analytics-metric-toggles,.profile-analytics-range{width:100%}.profile-analytics-scale-note{width:100%;margin-inline-start:0}.profile-analytics-toggle,.profile-analytics-range-button{min-height:32px;padding:6px 9px;font-size:12px}.profile-analytics-tooltip{min-width:170px;padding:9px 10px;font-size:12px}.profile-analytics-summary{gap:10px 12px;margin:16px 0 9px}.profile-analytics-summary-title{font-size:1rem}.profile-analytics-legend-item{gap:6px;font-size:1rem;padding-inline-start:8px}.profile-analytics-legend-value{font-size:1.16rem}}
.brew-detail[type="number"],.brew-detail[type="date"],.calculator-card input[type="number"],.calculator-card input[type="date"]{direction:ltr;text-align:end;font-variant-numeric:tabular-nums}

/* Quick ratio presets in the guide calculator should read as deliberate,
   touch-friendly controls rather than unstyled browser buttons. */
.calculator-ratio-presets{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0 4px;direction:ltr}
.calculator-ratio-presets::before{content:'יחס מהיר';margin-inline-end:2px;color:#55707d;font:800 13px Assistant,Arial,sans-serif;direction:rtl}
.calculator-ratio-presets button{min-width:70px;min-height:38px;padding:7px 14px;border:1px solid rgba(43,110,143,.28);border-radius:999px;background:#fffdf9;color:#2b6e8f;font:900 14px Assistant,Arial,sans-serif;letter-spacing:.01em;cursor:pointer;box-shadow:0 2px 6px rgba(22,53,71,.08);transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}
.calculator-ratio-presets button:hover,.calculator-ratio-presets button:focus-visible{border-color:#2b6e8f;background:#edf5f4;color:#163547;transform:translateY(-2px);box-shadow:0 5px 12px rgba(22,53,71,.14);outline:none}
.calculator-ratio-presets button.active{border-color:#c96e4d;background:#c96e4d;color:#fff;box-shadow:0 5px 12px rgba(201,110,77,.24)}
.calculator-ratio-presets button:focus-visible{outline:3px solid rgba(239,170,90,.55);outline-offset:2px}

/* Keep the gallery, guides, and troubleshooting content closer to the
   preceding section so the page does not feel top-heavy. */
.archive,.coffee-hub,.troubleshooting{padding-top:52px!important}
@media(max-width:700px){
 .calculator-ratio-presets{gap:7px;margin-top:11px}
 .calculator-ratio-presets::before{width:100%;margin:0 0 1px;text-align:right}
 .calculator-ratio-presets button{min-width:64px;min-height:36px;padding:6px 12px;font-size:13px}
 .archive,.coffee-hub,.troubleshooting{padding-top:34px!important}
}

/* SVG text scales with the chart viewBox. Use a larger mobile user-unit size
   so the endpoint dates remain readable on narrow screens. */
.profile-analytics-x-label{font-size:15px!important;font-weight:800!important}
.profile-analytics-y-axis-line{stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke}
.profile-analytics-y-axis-tick{stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke}
.profile-analytics-y-label{fill:currentColor;font:800 12px Assistant,Arial,sans-serif;font-variant-numeric:tabular-nums}.profile-analytics-y-title{fill:currentColor;font:900 11px Assistant,Arial,sans-serif}
@media(max-width:700px){.profile-analytics-x-label{font-size:34px!important;font-weight:800!important}.profile-analytics-y-label{font-size:28px!important;font-weight:800!important}.profile-analytics-y-title{font-size:18px!important}.profile-analytics-tooltip{font-size:14px}.profile-analytics-tooltip strong{font-size:15px}.profile-analytics-tooltip ul{font-size:14px}}

/* Keep chart labels clear of the plot and one another at every width. Metric
   names are controls/legend labels outside the SVG; no vertical headers are
   rendered inside the graph itself. */
.profile-analytics-chart{padding:18px 18px 28px;box-sizing:border-box}
.profile-analytics-y-title{display:none!important}
.profile-analytics-x-label{font-size:18px!important;letter-spacing:.01em;white-space:nowrap}
.profile-analytics-y-label{font-size:14px!important}
@media(max-width:700px){
  .profile-analytics-chart{padding:12px 2px 24px}
  .profile-analytics-x-label{font-size:28px!important;letter-spacing:-.015em}
  .profile-analytics-y-label{font-size:24px!important}
}

/* Saved settings use a predictable three-row layout: name, drink/machine,
   then date on the left and actions on the right. */
.profile-preset-row{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;grid-template-areas:"name" "summary" "meta";gap:5px;min-height:0;padding:13px 14px;direction:rtl}
.profile-preset-name{grid-area:name;min-width:0;overflow:hidden;text-align:right;direction:rtl}
.profile-preset-name .profile-preset-title{display:block;min-width:0;overflow:hidden;color:var(--ink);font-size:1rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.profile-preset-summary{grid-area:summary;justify-content:flex-start;width:100%;line-height:1.3}
.profile-preset-summary .profile-preset-type,.profile-preset-summary .profile-preset-machine{flex:0 1 auto;max-width:48%;font-size:.9rem}
.profile-preset-meta{grid-area:meta;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;direction:ltr}
.profile-preset-date{flex:1 1 auto;text-align:left;direction:rtl}
.profile-preset-date-stack{display:flex;flex:1 1 auto;flex-direction:column;align-items:flex-start;justify-content:center;justify-self:start;gap:3px;min-width:0;inline-size:100%;text-align:left}
.profile-preset-date-stack .profile-preset-date,.profile-preset-date-stack .profile-preset-origin{display:block;align-self:stretch;min-width:0;inline-size:100%;text-align:left}
.profile-preset-date-stack .profile-preset-date{direction:ltr;unicode-bidi:plaintext}
.profile-preset-date-stack .profile-preset-origin{margin:0;overflow:hidden;direction:rtl;text-overflow:ellipsis;white-space:nowrap}
.profile-preset-actions{justify-content:flex-end;flex:0 0 auto}
@media(max-width:700px){
  .profile-preset-row{gap:4px;padding:11px 12px}
  .profile-preset-name .profile-preset-title{font-size:.95rem}
  .profile-preset-summary .profile-preset-type,.profile-preset-summary .profile-preset-machine{font-size:.82rem}
  .profile-preset-meta{gap:8px}
  .profile-preset-date-stack{gap:2px}
  .profile-preset-date-stack .profile-preset-origin{font-size:.68rem}
}

/* Friendly, accessible name prompt used when saving a setting from coffee
   details; avoid the browser's unstyled prompt on desktop and mobile. */
.profile-preset-name-dialog{width:min(92vw,430px);padding:0;border:0;border-radius:18px;background:transparent;color:var(--ink);box-shadow:0 24px 80px rgba(15,35,48,.35)}
.profile-preset-name-dialog::backdrop{background:rgba(14,35,45,.58);backdrop-filter:blur(3px)}
.profile-preset-name-dialog[hidden]{display:none}
.profile-preset-name-card{position:relative;padding:26px 24px 22px;border:1px solid rgba(43,110,143,.26);border-radius:18px;background:linear-gradient(145deg,#fffdf9,#eef7f7);direction:rtl;text-align:right}
.profile-preset-name-card h3{margin:0 0 9px;color:#163547;font:900 21px/1.2 Rubik,Assistant,Arial,sans-serif}
.profile-preset-name-copy{margin:0 0 17px;color:#55707d;font:600 15px/1.5 Assistant,Arial,sans-serif}
.profile-preset-name-label{display:grid;gap:7px;color:#263b45;font:800 15px/1.35 Assistant,Arial,sans-serif}
.profile-preset-name-input{width:100%;min-height:44px;box-sizing:border-box;border:1px solid rgba(43,110,143,.34);border-radius:10px;background:#fff;color:#17232b;padding:9px 12px;font:600 17px Assistant,Arial,sans-serif;direction:rtl;outline:none}
.profile-preset-name-input:focus{border-color:#2b6e8f;outline:3px solid rgba(43,110,143,.18)}
.profile-preset-name-close{position:absolute;inset:9px auto auto 9px;width:32px;height:32px;border:1px solid rgba(43,110,143,.2);border-radius:50%;background:#fff;color:#2b6e8f;font-size:22px;line-height:1;cursor:pointer}
.profile-preset-name-close:hover{background:#edf5f4;border-color:#2b6e8f;transform:translateY(-1px)}
.profile-preset-name-actions{display:flex;justify-content:flex-start;gap:8px;margin-top:20px;direction:ltr}
.profile-preset-name-actions button{min-height:40px;padding:8px 17px}
@media(max-width:700px){.profile-preset-name-card{padding:23px 18px 19px}.profile-preset-name-actions{gap:7px}.profile-preset-name-actions button{flex:1}}
/* Equipment links point directly to the tagged merchant destination. */
.equipment-buy-link{display:inline-flex;align-items:center;justify-content:center;margin:0 8px;color:#b45d34;font-weight:900;text-decoration:underline;white-space:nowrap}.equipment-buy-link:hover{color:#2b6e8f}
.lightbox-brew-details-list li:has(.equipment-buy-link){min-height:25px}
.lightbox-brew-details-list li:has(.equipment-buy-link) .lightbox-brew-key{display:inline-flex;align-items:center;gap:8px;padding:0}
.lightbox-brew-details-list li:has(.equipment-buy-link) .lightbox-brew-value{padding:0}
.lightbox-brew-details-list .lightbox-brew-key>.equipment-buy-link{position:static;margin:0;font-size:.9em;line-height:1.2;transform:none}
.lightbox-brew-details-list .lightbox-brew-key>.equipment-buy-link:hover{transform:translateY(-1px)}
.public-equipment-item p:has(.equipment-buy-link){position:relative;min-height:24px;padding-inline-end:72px}
.public-equipment-item p:has(.equipment-buy-link) .equipment-buy-link{position:absolute;inset-inline-start:50%;top:50%;margin:0;transform:translate(-50%,-50%)}
.public-equipment-item p:has(.equipment-buy-link) .equipment-buy-link:hover{transform:translate(-50%,-50%) translateY(-1px)}
.profile-preset-summary .profile-preset-type,.profile-preset-summary .profile-preset-machine{font-size:.82rem}
.public-profile-setting p{font-size:14px}
.profile-section-quick-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-width:45px;height:45px;min-height:45px;padding:0 13px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(18,42,53,.9);color:#fffdf9;box-shadow:0 4px 14px rgba(0,0,0,.28);font:800 14px/1 Assistant,Arial,sans-serif;white-space:nowrap;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.profile-section-quick-button:hover,.profile-section-quick-button:focus-visible{border-color:#fff;background:#2b6e8f;color:#fff;transform:translateY(-2px);outline:0}
.profile-section-quick-icon{display:block;width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}

/* Profile navigation uses the same floating matte control language as the
   post viewer. Labels stay available through aria-label/title, while the
   controls remain compact icon-only buttons on every viewport. */
.profile-section-quick-nav{
  position:fixed!important;
  top:94px!important;
  right:12px!important;
  left:auto!important;
  z-index:1200!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  backdrop-filter:none!important;
  transform:none!important;
  direction:rtl;
}
.profile-section-quick-button{
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 45px!important;
  width:45px!important;
  min-width:45px!important;
  max-width:45px!important;
  height:45px!important;
  min-height:45px!important;
  max-height:45px!important;
  padding:0!important;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:999px!important;
  background:rgba(18,42,53,.5)!important;
  color:#fffdf9!important;
  box-shadow:0 4px 14px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(8px);
  opacity:.92;
  font-size:0!important;
  line-height:0!important;
  white-space:nowrap;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease,opacity .18s ease;
}
.profile-section-quick-button span{display:none!important}
.profile-section-quick-button:hover,.profile-section-quick-button:focus-visible{
  border-color:#fff!important;
  background:rgba(43,110,143,.5)!important;
  color:#fff!important;
  opacity:1;
  transform:translateY(-2px)!important;
  outline:0;
}
.profile-section-quick-button:active{transform:translateY(0)!important}
.profile-section-quick-icon{width:19px!important;height:19px!important;flex:0 0 19px!important}
@media(max-width:700px){
  .profile-section-quick-nav{top:70px!important;right:10px!important;left:auto!important;gap:7px!important}
  .profile-section-quick-button{flex-basis:43px!important;width:43px!important;min-width:43px!important;max-width:43px!important;height:43px!important;min-height:43px!important;max-height:43px!important}
  .profile-section-quick-icon{width:18px!important;height:18px!important;flex-basis:18px!important}
}

/* Keep the floating rail out of profile cards. On wide screens it lives in
   the real outer gutter; when the gutter is too narrow it becomes a sticky
   row in the profile grid, so no permanent side padding is needed. */
@media(min-width:1200px){
  .profile-section-quick-nav{right:max(5px,calc((100vw - min(1120px,90vw))/2 - 57px))!important}
}
@media(max-width:1199px){
  .profile-section-quick-nav{
    position:sticky!important;
    top:94px!important;
    right:auto!important;
    left:auto!important;
    z-index:9!important;
    grid-column:1/-1!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0 0 4px!important;
    padding:7px 4px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    background:rgba(255,253,249,.94)!important;
    backdrop-filter:blur(10px)!important;
    transform:none!important;
    scrollbar-width:none;
  }
  .profile-section-quick-nav::-webkit-scrollbar{display:none}
  .profile-section-quick-button{flex:0 0 45px!important}
}
@media(max-width:700px){
  .profile-section-quick-nav{
    position:fixed!important;
    /* Starts below the fixed upload action (78px–122px), preserving a
       tappable gap between the two mobile control groups. */
    top:132px!important;
    right:10px!important;
    left:auto!important;
    grid-column:auto!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    backdrop-filter:none!important;
    transform:none!important;
    z-index:1200!important;
  }
  .profile-section-quick-button{flex-basis:43px!important}
}

/* Keep every single-line field at the same comfortable height as the
   water-temperature control. Exclude checkboxes, radios, ranges and files. */
:root{--kalimera-control-height:46px}
:where(input[type="text"],input[type="email"],input[type="search"],input[type="url"],input[type="password"],input[type="tel"],input[type="number"],input[type="date"],input[type="time"],input[type="month"],input[type="week"],select){box-sizing:border-box;min-height:var(--kalimera-control-height)!important}
.profile-equipment-form[hidden],.profile-equipment-form[aria-hidden="true"]{display:none!important}

/* The quick navigation is unnecessary on desktop; the page already has
   enough room for normal scrolling. On phones it fades while the user is
   touching/scrolling, without collapsing the row and shifting the page. */
@media(min-width:701px){.profile-section-quick-nav{display:none!important}}
@media(max-width:700px){
  .profile-section-quick-nav{transition:opacity .18s ease,visibility .18s ease,transform .18s ease;will-change:opacity,transform}
  .profile-section-quick-nav.is-touch-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(-8px)!important}
}

/* The profile identity area follows a social-profile layout: the cover is
   full-bleed beneath the header, while the identity/details content remains
   readable without another card wrapper around it. */
body.profile-page .profile-identity-card{
  grid-column:1/-1!important;
  width:100vw;
  max-width:100vw;
  margin-inline:calc(50% - 50vw);
  padding:0!important;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
body.profile-page{overflow-x:clip}
body.profile-page .profile-identity-card .profile-cover{
  width:100%;
  margin:0;
  border-radius:0;
  /* Do not trap the cover action inside a lower stacking context: on mobile
     the profile identity content may overlap this cover. */
  z-index:auto;
}
body.profile-page .profile-identity-card .profile-identity,
body.profile-page .profile-identity-card .profile-details-box{
  width:min(1120px,calc(100% - 32px));
  margin-inline:auto;
}
body.profile-page .profile-identity-card .profile-identity{padding-top:22px}
body.profile-page .profile-identity-card .profile-details-box{
  margin-top:18px;
  padding:0 0 22px;
  border:0;
  border-radius:0;
  background:transparent;
}
body.profile-page .profile-identity-card .profile-cover-actions{
  /* Keep the edit pencil above the entire profile identity card, including
     the avatar/details layer that overlaps the cover on narrow screens. */
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  overflow:visible;
}
body.profile-page .profile-identity-card .profile-cover-actions>*{
  box-sizing:border-box;
  flex:0 0 36px;
  width:36px;
  height:36px;
  min-height:36px;
  margin:0;
  overflow:visible;
  line-height:1;
}
body.profile-page .profile-identity-card .profile-details-box .profile-field-summary{
  border-color:rgba(22,53,71,.12);
  border-radius:0;
  background:transparent;
}
@media(max-width:700px){
  body.profile-page .profile-identity-card .profile-identity{padding-top:18px}
  body.profile-page .profile-identity-card .profile-details-box{margin-top:14px;padding-bottom:18px}
}
/* Profile identity sizing: keep the cover and avatar prominent on both routes. */
.profile-avatar-wrap{width:124px;height:124px;flex-basis:124px}
.public-profile-avatar .inline-profile-avatar{width:120px;height:120px}
@media(max-width:700px){.profile-avatar-wrap{width:104px;height:104px;flex-basis:104px}.public-profile-avatar .inline-profile-avatar{width:100px;height:100px}}

/* Public profiles use the same social-profile presentation as the private
   profile: a full-bleed cover followed by a centered identity/content column,
   instead of nesting the cover and identity inside a card. */
.public-profile-page{
  width:100%;
  max-width:none!important;
  margin:0 auto;
  padding:0 0 86px!important;
  overflow-x:clip;
}
.public-profile-page .public-profile-card{
  width:100vw;
  max-width:100vw;
  margin-inline:calc(50% - 50vw);
  padding:0!important;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.public-profile-page .public-profile-cover{
  width:100%;
  height:230px;
  margin:0;
  border-radius:0;
  box-shadow:none;
}
.public-profile-page .public-profile-identity,
.public-profile-page .public-profile-about,
.public-profile-page .public-profile-stats,
.public-profile-page .public-profile-settings,
.public-profile-page .public-profile-equipment,
.public-profile-page .public-profile-gallery,
.public-profile-page #publicProfileStatus{
  width:min(1120px,calc(100% - 32px));
  margin-inline:auto;
}
.public-profile-page .public-profile-identity{
  padding:24px 0 0;
}
.public-profile-page .public-profile-about,
.public-profile-page .public-profile-settings,
.public-profile-page .public-profile-equipment,
.public-profile-page .public-profile-gallery{
  margin-top:28px;
}
.public-profile-page .public-profile-avatar .inline-profile-avatar{
  width:136px;
  height:136px;
}
.public-profile-page .public-profile-stats{
  margin-top:26px;
}
@media(max-width:700px){
  .public-profile-page{padding-bottom:56px!important}
  .public-profile-page .public-profile-cover{height:170px}
  .public-profile-page .public-profile-identity,
  .public-profile-page .public-profile-about,
  .public-profile-page .public-profile-stats,
  .public-profile-page .public-profile-settings,
  .public-profile-page .public-profile-equipment,
  .public-profile-page .public-profile-gallery,
  .public-profile-page #publicProfileStatus{
    width:calc(100% - 32px);
  }
  .public-profile-page .public-profile-identity{padding-top:18px}
  .public-profile-page .public-profile-avatar .inline-profile-avatar{
    width:112px;
    height:112px;
  }
}

/* Desktop covers should sit directly below the sticky header without a
   large card gap, while keeping the social-profile proportions compact. */
@media(min-width:701px){
  body.profile-page #profile{padding-top:0!important}
  body.profile-page .profile-identity-card .profile-cover,
  .public-profile-page .public-profile-cover{
    height:220px;
    min-height:220px;
    aspect-ratio:auto;
    margin-top:0;
  }
  .public-profile-page{padding-top:0!important}
}

@media(max-width:700px){
  body.profile-page .profile-identity-card .profile-cover,
  .public-profile-page .public-profile-cover{
    height:150px!important;
    min-height:150px!important;
    aspect-ratio:auto!important;
  }
}

/* Keep the profile contact and about fields in one visual language. Both use
   the same label/value rhythm, card surface, border, and readable type so
   the four pieces no longer look like unrelated controls. */
.profile-details-box .profile-email-row,
.profile-details-box .profile-details-view .profile-field-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
  align-items:start;
  margin:0;
  padding:13px 14px;
  border:1px solid rgba(22,53,71,.13);
  border-radius:10px;
  background:linear-gradient(135deg,#edf5f4,#f8fbf9);
  direction:rtl;
}
.profile-details-box .profile-email-row{margin-bottom:12px}
.profile-details-box .profile-email-label,
.profile-details-box .profile-details-view .profile-field-summary-label{
  display:block;
  margin:0;
  color:#55707d;
  font:800 13px/1.2 Assistant,Arial,sans-serif;
}
.profile-details-box .profile-email{
  margin:0;
  color:#163547;
  font:700 16px/1.35 Assistant,Arial,sans-serif;
  direction:ltr;
  text-align:right;
}
.profile-details-box .profile-details-view .profile-field-summaries{gap:12px;margin:0}
.profile-details-box .profile-details-view .profile-field-summary{border-top:1px solid rgba(22,53,71,.13)}
.profile-details-box .profile-details-view .profile-field-summary:first-child{border-top:1px solid rgba(22,53,71,.13)}
.profile-details-box .profile-details-view .profile-field-summary-row{align-items:baseline}
.profile-details-box .profile-details-view .profile-field-summary-row p{
  margin:0;
  color:#163547;
  font:600 16px/1.45 Assistant,Arial,sans-serif;
}

/* Give desktop social profiles a little more breathing room in the cover
   without changing the compact mobile presentation. */
@media(min-width:701px){
  body.profile-page .profile-identity-card .profile-cover,
  .public-profile-page .public-profile-cover{
    height:250px;
    min-height:250px;
  }
}
.profile-share-control{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:36px;height:36px;padding:0;border:1px solid rgba(43,110,143,.3);border-radius:50%;background:#fffdf9;color:var(--blue);cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.profile-share-control:hover,.profile-share-control:focus-visible{border-color:var(--blue);background:var(--sky);transform:translateY(-2px);outline:0}.profile-share-control .social-icon{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.profile-share-control.copied{border-color:#4f7b72;background:#edf7f1;color:#315e53}.public-profile-identity .profile-share-control{margin-inline-start:auto}.deal-meta-row,.bean-deal-meta-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.deal-share{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;padding:0;border:1px solid rgba(43,110,143,.28);border-radius:50%;background:#fff;color:#2b6e8f;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.deal-share:hover,.deal-share:focus-visible{border-color:#2b6e8f;background:#edf5f4;transform:translateY(-2px);outline:0}.deal-share.copied{border-color:#4f7b72;background:#edf7f1;color:#315e53}.deal-share svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.bean-deal-share{width:29px;height:29px;flex-basis:29px}.bean-deal-share svg{width:14px;height:14px}

/* Older products remain useful to browse, but their promotion is never
   presented as verified until its upstream price check is recent. */
.deal-promotion-status,.bean-deal-promotion-status{margin:10px 0 0;padding:7px 9px;border:1px solid rgba(163,79,53,.24);border-radius:8px;background:rgba(255,247,236,.86);color:#7b3927;font:700 12px/1.45 Assistant,Arial,sans-serif}.bean-deal-promotion-status{font-size:11px;color:#fff4e5;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24)}

/* Deals are swipe- and tap-led surfaces. Avoid accidental drag-selection on
   their controls and card chrome, but retain normal text selection wherever
   it is useful for comparing or copying product information. */
#deals,
.deals-page{
  -webkit-user-select:none;
  user-select:none;
}
body.profile-page .profile-identity-card #profileCoverEditAction{
  position:relative;
  z-index:31;
  pointer-events:auto;
  touch-action:manipulation;
}
#deals :is(.deal-title,.deal-store,.deal-price,.deal-promotion-status),
.deals-page :is(.deal-title,.deal-page-store,.deal-page-category,.deal-page-description,.deal-page-price,.deal-page-original,.deal-page-saving,.deal-page-coupon,.deal-promotion-status,.deal-page-updated){
  -webkit-user-select:text;
  user-select:text;
}

/* Public profiles use the same warm surface, border, spacing, and shadow
   language as the private profile dashboard. The cover/identity remain
   full-width while each content section reads as a consistent profile card. */
.public-profile-page .public-profile-about,
.public-profile-page .public-profile-settings,
.public-profile-page .public-profile-equipment,
.public-profile-page .public-profile-gallery{
  box-sizing:border-box;
  padding:22px 24px;
  border:1px solid rgba(22,53,71,.14);
  border-radius:14px;
  background:linear-gradient(145deg,#fffdf9 0%,#f8fcfb 100%);
  box-shadow:8px 9px 0 rgba(22,53,71,.07);
}
.public-profile-page .public-profile-about,
.public-profile-page .public-profile-settings,
.public-profile-page .public-profile-equipment,
.public-profile-page .public-profile-gallery{border-top:1px solid rgba(22,53,71,.14)}
.public-profile-page .public-profile-stats div{border:1px solid rgba(43,110,143,.1);background:#edf5f4}
.public-profile-page .public-equipment-item,
.public-profile-page .public-profile-setting{border-color:rgba(22,53,71,.13);background:#fffdf9}
.public-profile-page #publicProfileSettingsList,.public-profile-page #publicProfileEquipmentList{display:grid;gap:8px}
.public-profile-page .public-profile-disclosure-row{margin:0;background:#fffdf9;grid-template-rows:auto auto auto auto;grid-template-areas:"name" "summary" "meta" "details"}
.public-profile-page .public-profile-setting-creator{display:block;margin:3px 0 0;color:#71848b;font:700 12px/1.3 Assistant,Arial,sans-serif}
.public-profile-page .public-profile-setting-meta{margin-top:7px}
.public-profile-page .public-profile-setting-actions{display:flex;align-items:center;justify-content:flex-end;min-width:max-content}
.public-profile-page .public-profile-setting-save{width:max-content;max-width:100%;white-space:nowrap;line-height:1.1}
.public-profile-page .public-profile-equipment-row{align-items:stretch;cursor:pointer}
.profile-cover-edit,.profile-cover-remove{box-sizing:border-box;line-height:1;vertical-align:middle;appearance:none;-webkit-appearance:none}
.profile-cover-edit{background:rgba(22,53,71,.78)!important;color:#fff!important;border-color:rgba(255,255,255,.75)!important}
.profile-cover-edit:hover,.profile-cover-edit:focus-visible{background:rgba(22,53,71,.92)!important;color:#fff!important;outline:0}
.profile-field-label-with-info{display:inline-flex;align-items:center;gap:6px}
.profile-field-info{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid rgba(43,110,143,.35);border-radius:50%;background:#edf5f4;color:#2b6e8f;font:900 12px/1 Assistant,Arial,sans-serif;cursor:help}
.profile-field-info:focus-visible{outline:3px solid rgba(239,170,90,.55);outline-offset:2px}
.profile-public-id-label{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;line-height:1.25}
.profile-public-id-help{display:inline;max-width:100%;font-size:12px;font-weight:600;line-height:1.35;direction:rtl;unicode-bidi:plaintext}
.profile-public-id-help bdi{direction:ltr;unicode-bidi:isolate;white-space:nowrap}

/* A cover removal control stays in the same stable position while the cover
   is empty, but clearly communicates that there is nothing to remove yet. */
.profile-cover-remove:disabled{cursor:not-allowed;opacity:.42;background:rgba(22,53,71,.45)!important;transform:none!important}

/* Shared-deal links keep the selected item prominent without hiding the
   catalogue around it. */
.deals-page-card.is-shared-deal{position:relative;outline:3px solid #efaa5a;outline-offset:3px;box-shadow:10px 11px 0 rgba(239,170,90,.2)}
.deals-page-card.is-shared-deal::before{content:'הדיל ששיתפו איתכם';position:absolute;top:12px;inset-inline-start:12px;z-index:2;padding:5px 9px;border-radius:999px;background:#efaa5a;color:#163547;font:900 12px/1 Assistant,Arial,sans-serif;box-shadow:0 2px 5px rgba(22,53,71,.18)}
@media(max-width:700px){
  .public-profile-page .public-profile-about,
  .public-profile-page .public-profile-settings,
  .public-profile-page .public-profile-equipment,
  .public-profile-page .public-profile-gallery{padding:18px}
}
.deal-title{color:inherit;text-decoration:none}

/* Dial-in is intentionally split into compact, synchronized panels. Each
   metric now owns a readable scale instead of competing for one axis. */
.profile-analytics-chart{min-height:0;padding:12px 0 4px;isolation:isolate}
.profile-analytics-panels{display:grid;gap:11px;direction:rtl}
.profile-analytics-panel{overflow:hidden;border:1px solid color-mix(in srgb,var(--metric-color) 24%,#d8e6e4);border-radius:13px;background:linear-gradient(145deg,rgba(255,253,249,.98),rgba(239,247,246,.84));box-shadow:0 5px 12px rgba(22,53,71,.045)}
.profile-analytics-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px 7px;color:#163547;direction:rtl}
.profile-analytics-panel-heading h4{margin:0;font:900 15px/1.2 Rubik,Assistant,Arial,sans-serif;letter-spacing:-.01em}
.profile-analytics-panel-heading span{padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--metric-color) 13%,#fffdf9);color:var(--metric-color);font:900 13px/1 Assistant,Arial,sans-serif;font-variant-numeric:tabular-nums}
.profile-analytics-panel svg{display:block;width:100%;height:auto;overflow:visible;touch-action:manipulation}
.profile-analytics-panel .profile-analytics-grid-line{stroke:rgba(22,53,71,.13);stroke-width:1;stroke-dasharray:3 5}
.profile-analytics-panel .profile-analytics-y-label{font:800 11px/1 Assistant,Arial,sans-serif;font-variant-numeric:tabular-nums}
.profile-analytics-panel .profile-analytics-x-label{fill:#60717b;font:800 12px/1 Assistant,Arial,sans-serif;font-variant-numeric:tabular-nums}
.profile-analytics-date-axis{display:flex;align-items:center;justify-content:space-between;direction:ltr;min-height:28px;margin-top:-3px;padding-inline:14px;color:var(--date-axis-color,#60717b);font:800 15px/1 Assistant,Arial,sans-serif;font-variant-numeric:tabular-nums}
.profile-analytics-date-axis time{display:block;min-width:0;white-space:nowrap}.profile-analytics-date-axis time:first-child{text-align:left}.profile-analytics-date-axis time:last-child{text-align:right}
.profile-analytics-panel .profile-analytics-point{cursor:pointer;transition:r .16s ease,stroke-width .16s ease}
.profile-analytics-panel .profile-analytics-point:focus-visible{outline:0;stroke-width:4}
.profile-analytics-chart .profile-analytics-tooltip{max-width:min(286px,calc(100% - 20px));pointer-events:none}
.profile-analytics-chart .profile-analytics-empty{min-height:238px}
.profile-analytics-skeleton{display:grid;gap:11px;min-height:470px;padding:10px 0}
.profile-analytics-skeleton span{display:block;min-height:146px;border-radius:13px;background:linear-gradient(105deg,rgba(126,163,166,.18) 20%,rgba(255,255,255,.82) 45%,rgba(126,163,166,.18) 70%);background-size:280% 100%;animation:profileAnalyticsSkeleton 1.35s ease-in-out infinite}
.profile-analytics-skeleton span:nth-child(2){animation-delay:.12s}.profile-analytics-skeleton span:nth-child(3){animation-delay:.24s}
@keyframes profileAnalyticsSkeleton{to{background-position:-140% 0}}
@media(max-width:700px){
  .profile-analytics-chart{padding:8px 0 2px}
  .profile-analytics-panels{gap:9px}
  .profile-analytics-panel{border-radius:11px}
  .profile-analytics-panel-heading{padding:9px 11px 5px}
  .profile-analytics-panel-heading h4{font-size:14px}
  .profile-analytics-panel-heading span{font-size:12px}
  /* Keep the compact average strip secondary, while making actual chart
     numbers legible at arm's length on mobile. */
  /* The average strip is supporting information on phones. Give the actual
     chart axes the visual priority, with enough breathing room from JS. */
  .profile-analytics-summary-title{font-size:.78rem}
  .profile-analytics-legend-item{font-size:.82rem}
  .profile-analytics-legend-value{font-size:.98rem}
  .profile-analytics-panel .profile-analytics-y-label{font-size:17px!important}
  .profile-analytics-panel .profile-analytics-x-label{font-size:18px!important}
  .profile-analytics-date-axis{min-height:34px;font-size:18px}
  .profile-analytics-chart .profile-analytics-tooltip{min-width:0;padding:10px 11px;font-size:13px}
  .profile-analytics-skeleton{min-height:392px;gap:9px;padding:8px 0}
  .profile-analytics-skeleton span{min-height:122px;border-radius:11px}
}
@media(prefers-reduced-motion:reduce){.profile-analytics-panel .profile-analytics-point{transition:none}.profile-analytics-skeleton span{animation:none}}

/* The identity stays visually connected to the cover without putting the
   name on top of it: the avatar overlaps the edge while the copy begins at
   the cover's lower boundary, beside the avatar, on every viewport. */
body.profile-page .profile-identity-card .profile-identity{
  --profile-avatar-size:161px;
  position:relative;
  z-index:5;
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:16px;
  margin-top:calc(var(--profile-avatar-size) * -.6);
  padding-top:0!important;
}
body.profile-page .profile-identity-card .profile-avatar-wrap{
  position:relative;
  z-index:6;
  width:var(--profile-avatar-size);
  height:var(--profile-avatar-size);
  flex-basis:var(--profile-avatar-size);
}
body.profile-page .profile-identity-card .profile-identity-copy{
  min-width:0;
  padding-top:calc(var(--profile-avatar-size) * .6);
}

/* Public profiles use the same relationship: picture straddles the cover,
   while the visitor's name starts below it on the same reading row. */
.public-profile-page .public-profile-identity{
  --public-avatar-size:136px;
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-top:0;
  padding-top:24px;
}
.public-profile-page.has-public-profile-cover .public-profile-identity{
  margin-top:calc(var(--public-avatar-size) * -.6);
  padding-top:0;
}
.public-profile-page .public-profile-avatar .inline-profile-avatar{
  width:var(--public-avatar-size);
  height:var(--public-avatar-size);
}
.public-profile-page .public-profile-identity > div:not(.public-profile-avatar){
  min-width:0;
  padding-top:calc(var(--public-avatar-size) * .6);
}
.public-profile-page .public-profile-identity .profile-share-control{
  align-self:flex-end;
}
.public-profile-page .public-profile-card:hover,
.public-profile-page .public-profile-card:focus-within{
  transform:none;
  box-shadow:none;
}

@media(max-width:700px){
  body.profile-page .profile-identity-card .profile-identity{
    --profile-avatar-size:104px;
    gap:12px;
  }
  .public-profile-page .public-profile-identity{
    --public-avatar-size:112px;
    gap:12px;
  }
}

/* A single account trigger keeps the header compact: its unread badge belongs
   to the avatar, while profile, notifications and sign-out live in one menu. */
.profile-menu{position:relative;z-index:var(--layer-menu,1210);flex:0 0 auto}
.profile-menu .profile-link{position:relative;border:1px solid rgba(43,110,143,.34);background:rgba(255,253,249,.94);box-shadow:0 2px 7px rgba(22,53,71,.12)}
.profile-menu-count{position:absolute;top:-3px;inset-inline-end:-3px;z-index:2;width:11px;min-width:11px;height:11px;padding:0;border:2px solid #fffdf9;border-radius:50%;background:#ef8f3a;color:transparent;font-size:0;line-height:0}
.profile-menu .profile-link.has-unread{border-color:#ef8f3a;box-shadow:0 0 0 3px rgba(239,143,58,.16),0 2px 7px rgba(22,53,71,.12)}
.profile-menu .profile-link:is(:hover,:focus-visible){border-color:var(--blue);background:var(--sky);outline:0;box-shadow:0 5px 13px rgba(22,53,71,.16);transform:translateY(-1px)}
.profile-menu-panel{position:absolute;top:calc(100% + 10px);inset-inline-end:0;z-index:var(--layer-menu-panel,1211);display:grid;gap:0;width:min(270px,calc(100vw - 24px));padding:0;overflow:hidden;border:1px solid rgba(43,110,143,.24);border-radius:14px;background:#fffdf9;color:#163547;box-shadow:0 18px 42px rgba(22,53,71,.22);text-align:right;opacity:0;transform:translateY(-7px) scale(.98);transform-origin:top;transition:opacity var(--motion-duration-feedback,.18s) var(--motion-ease-standard,ease),transform var(--motion-duration-feedback,.18s) var(--motion-ease-enter,ease)}
.profile-menu-panel[hidden]{display:none!important}
.profile-menu-panel:not(.is-open){pointer-events:none}
.profile-menu-panel.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
/* The menu has nested notification content, so use explicit top-level rows
   rather than a generic sibling rule. This keeps both dividers visible while
   the notification panel or sign-out state is toggled. */
.profile-menu-panel>.notifications-menu,
.profile-menu-panel>.profile-menu-settings:not([hidden]),
.profile-menu-panel>.profile-menu-signout:not([hidden]){border-top:1px solid rgba(22,53,71,.15)}
.profile-menu-profile,.profile-menu-action{display:flex;align-items:center;justify-content:flex-start;gap:10px;box-sizing:border-box;width:100%;min-height:48px;padding:12px 14px;border:0;border-radius:0;background:transparent;color:#163547;font:800 14px/1.25 Assistant,Arial,sans-serif;text-align:right;text-decoration:none;cursor:pointer;transition:background .18s ease,color .18s ease}
.profile-menu-profile{background:transparent;color:#163547;font:900 15px/1.25 Assistant,Arial,sans-serif}
.profile-menu-profile:hover,.profile-menu-profile:focus-visible,.profile-menu-action:hover,.profile-menu-action:focus-visible{border-color:transparent;background:#e6f2f1;color:#2b6e8f;outline:0;transform:none}
.profile-menu .notifications-menu{position:relative;z-index:auto;width:100%;margin:0}
.profile-menu .notifications-link{justify-content:space-between;width:100%;min-height:48px;height:auto;padding:12px 14px;border:0;border-radius:0;background:transparent;color:#163547;box-shadow:none}
.profile-menu .notifications-link:hover,.profile-menu .notifications-link:focus-visible{border-color:transparent;background:#e6f2f1;color:#2b6e8f;box-shadow:none;transform:none}
.profile-menu .notifications-link-icon{flex:0 0 auto}
.notifications-menu-count{display:inline-grid;place-items:center;flex:0 0 auto;min-width:24px;height:24px;margin-inline-start:auto;padding:0 6px;border-radius:999px;background:#ef8f3a;color:#fffdf9;direction:ltr;text-align:center;font:900 12px/24px Rubik,Arial,sans-serif}
.notifications-menu-count[hidden]{display:none!important}
.profile-menu .notifications-panel{top:calc(100% + 8px);inset-inline-end:-7px;z-index:1212}
.notifications-panel.notifications-panel-portal{position:fixed;top:calc(var(--site-header-height,70px) + 10px);inset-inline-end:clamp(12px,calc((100vw - 1180px)/2 + 12px),28px);z-index:var(--layer-notification-panel,1300);width:min(390px,calc(100vw - 24px));max-height:calc(100vh - var(--site-header-height,70px) - 22px)}
.profile-menu-signout{color:#a34f35}
.profile-menu-signout:hover,.profile-menu-signout:focus-visible{border-color:transparent;background:#fff1eb;color:#8f3f2e}
.profile-menu-signout[hidden]{display:none!important}

/* Anonymous issue reports live with navigation rather than requiring an
   account. The dialog shares the app's paper, blue, and terracotta system. */
.bug-report-menu-trigger{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0;border:0;background:transparent;color:var(--ink);font:700 16px/1.2 Assistant,Arial,sans-serif;cursor:pointer;transition:color .18s ease,transform .18s ease,background .18s ease,box-shadow .18s ease}
.bug-report-menu-trigger:is(:hover,:focus-visible){color:var(--terracotta);transform:translateY(-1px);outline:0}
.bug-report-trigger-icon{display:inline-grid;place-items:center;width:22px;height:22px;flex:0 0 auto;border:1px solid currentColor;border-radius:50%;font:900 15px/1 Rubik,Arial,sans-serif;letter-spacing:0;transform:translateY(-.5px)}
/* The report flow stays discoverable in the mobile menu. On desktop it becomes
   a quiet icon affordance that mirrors the active reading direction. */
@media(min-width:701px){
  .bug-report-menu-trigger{position:fixed;right:clamp(12px,2vw,28px);left:auto;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 56px);z-index:var(--layer-floating,1180);display:grid;place-items:center;width:46px;height:46px;margin:0;padding:0;border:1px solid rgba(255,253,249,.62);border-radius:50%;background:rgba(22,53,71,.58);color:#fffdf9;box-shadow:0 10px 24px rgba(22,53,71,.18);-webkit-backdrop-filter:blur(var(--motion-blur-control,10px));backdrop-filter:blur(var(--motion-blur-control,10px));cursor:pointer;opacity:var(--motion-opacity-muted,.72);transition:opacity var(--motion-duration-feedback,.18s) var(--motion-ease-standard,ease),transform var(--motion-duration-feedback,.18s) var(--motion-ease-standard,ease),background-color var(--motion-duration-feedback,.18s) var(--motion-ease-standard,ease)}
  .bug-report-menu-trigger::after{display:none}
  .bug-report-menu-trigger .bug-report-trigger-label{display:none}
  .bug-report-menu-trigger .bug-report-trigger-icon{position:absolute;inset:0;z-index:1;display:grid;place-items:center;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;font-size:26px;line-height:1;transform:none}
  html[data-locale="en"] .bug-report-menu-trigger{right:auto;left:clamp(12px,2vw,28px)}
  .bug-report-menu-trigger:is(:hover,:focus-visible){background:rgba(22,53,71,.58);color:#fffdf9;opacity:1;transform:translateY(-3px);outline:0}
  .bug-report-menu-trigger:active{background:rgba(22,53,71,.58);color:#fffdf9}
}
.bug-report-dialog{width:min(520px,calc(100vw - 28px));max-width:520px;max-height:min(700px,calc(100dvh - 28px));padding:0;overflow:auto;border:0;border-radius:22px;background:transparent;color:#163547;box-shadow:0 24px 72px rgba(9,31,40,.34)}
.bug-report-dialog::backdrop{background:rgba(12,35,45,.58);backdrop-filter:blur(3px)}
.bug-report-dialog[hidden]{display:none!important}
.bug-report-card{position:relative;padding:30px;border:1px solid rgba(43,110,143,.24);border-radius:inherit;background:linear-gradient(145deg,#fffdf9,#f2f8f7);text-align:right;direction:rtl}
.bug-report-mark{display:grid;place-items:center;width:38px;height:38px;margin-bottom:12px;border-radius:50%;background:#efaa5a;color:#163547;font:900 24px/1 Rubik,Arial,sans-serif;box-shadow:4px 5px 0 rgba(22,53,71,.12)}
.bug-report-card h2{margin:0;color:#163547;font:900 clamp(28px,5vw,38px)/1 Rubik,Arial,sans-serif;letter-spacing:-.055em}
.bug-report-card>p{margin:10px 0 22px;color:#49656f;font:600 16px/1.55 Assistant,Arial,sans-serif}
.bug-report-close{position:absolute;top:15px;inset-inline-end:15px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid rgba(43,110,143,.25);border-radius:50%;background:rgba(255,253,249,.82);color:#163547;font:700 24px/1 Assistant,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,background .18s ease}
.bug-report-close:is(:hover,:focus-visible){background:#e6f2f1;transform:translateY(-2px);outline:0}
.bug-report-card form{display:grid;gap:14px}
.bug-report-card label{display:grid;gap:7px;color:#163547;font:800 15px/1.25 Assistant,Arial,sans-serif}
.bug-report-card select,.bug-report-card textarea{width:100%;min-height:44px;padding:11px 12px;box-sizing:border-box;border:1px solid rgba(43,110,143,.28);border-radius:10px;background:#fffdf9;color:#163547;font:600 16px/1.45 Assistant,Arial,sans-serif;text-align:right;outline:none;transition:border-color .18s ease,box-shadow .18s ease}
.bug-report-card textarea{min-height:126px;resize:vertical}
.bug-report-card select:focus,.bug-report-card textarea:focus{border-color:#2b6e8f;box-shadow:0 0 0 3px rgba(43,110,143,.14)}
.bug-report-card textarea::placeholder{color:#78909a;font-weight:500}
.bug-report-status{min-height:22px;margin:0;color:#49656f;font:700 14px/1.35 Assistant,Arial,sans-serif}
.bug-report-status.is-error{color:#9c4934}.bug-report-status.is-success{color:#226a57}
.bug-report-actions{display:flex;justify-content:flex-start;gap:9px;padding-top:3px}
.bug-report-actions button{min-height:43px;padding:9px 15px;border:1px solid transparent;border-radius:10px;font:800 15px/1 Assistant,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.bug-report-cancel{background:#e6f2f1;color:#163547}.bug-report-send{background:#2b6e8f;color:#fff;box-shadow:4px 5px 0 rgba(22,53,71,.13)}
.bug-report-actions button:is(:hover,:focus-visible){transform:translateY(-2px);outline:0}.bug-report-send:is(:hover,:focus-visible){background:#c96e4d}.bug-report-actions button:disabled{opacity:.64;cursor:wait;transform:none}
@media(max-width:700px){.site-header nav .bug-report-menu-trigger{width:100%;min-height:48px;padding:13px 16px;border-top:0;border-radius:0;font-size:16px;text-align:start;justify-content:flex-start}.site-header nav .bug-report-menu-trigger .bug-report-trigger-icon{display:none}.site-header nav .bug-report-menu-trigger .bug-report-trigger-label{display:block}.bug-report-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.bug-report-card{padding:26px 20px}.bug-report-card textarea{min-height:112px}}

/* Keep the profile identity compact but give the name and its two action
   controls a comfortable shared hit area. */
body.profile-page .profile-identity-card .profile-identity-copy{padding-inline:10px}
/* The identity details belong to the profile backdrop rather than a second
   floating card. Keep only the layout spacing around the name and actions. */
body.profile-page .profile-identity-card .profile-details-box{box-shadow:none!important;background:transparent!important}
body.profile-page .profile-identity-card .profile-name-line{gap:10px;min-height:44px;padding:4px 8px;border-radius:0;background:transparent!important}
body.profile-page .profile-identity-card .profile-name-line .profile-inline-edit,
body.profile-page .profile-identity-card .profile-name-line .profile-inline-share,
body.profile-page .profile-identity-card .profile-name-line .profile-settings-open{display:inline-grid;place-items:center;flex:0 0 36px;width:36px;height:36px;min-width:36px;min-height:36px;margin:0;padding:0}

/* Account settings deliberately live in a compact dialog, keeping the profile
   canvas focused on the member's coffee rather than configuration controls. */
.profile-settings-dialog{width:min(94vw,560px);max-height:min(84dvh,640px)}
.profile-settings-dialog[hidden]{display:none!important}
.profile-settings-dialog .profile-avatar-dialog-card{padding:25px 27px 27px}
.profile-settings-dialog .profile-preferences{grid-template-columns:1fr;gap:9px;margin-top:18px}
.profile-settings-dialog .profile-preferences-title{grid-column:auto;margin:8px 0 0;color:var(--ink);font:900 18px/1.1 Rubik,Arial,sans-serif}
.profile-settings-dialog .profile-preferences-title:first-child{margin-top:0}
.profile-settings-dialog .profile-preferences label{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:center;justify-content:stretch;gap:14px;min-height:54px;padding:12px 14px;border:1px solid rgba(43,110,143,.16);border-radius:10px;background:#eef6f5;color:#163547;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
.profile-settings-dialog .profile-preferences label:hover{border-color:rgba(43,110,143,.38);background:#e7f2f1;box-shadow:0 5px 15px rgba(22,53,71,.07);transform:none}
.profile-settings-dialog .profile-preferences label:has(input:checked){border-color:rgba(43,110,143,.34);background:#e3f0f0}
.profile-settings-dialog .profile-preferences label span{grid-column:1;grid-row:1;min-width:0;line-height:1.35}
.profile-settings-dialog .profile-preferences input{position:relative;display:block;grid-column:2;grid-row:1;flex:none;box-sizing:border-box;width:46px!important;min-width:46px;max-width:46px;height:26px!important;min-height:26px;margin:0!important;padding:0!important;border:1px solid rgba(43,110,143,.42);border-radius:999px;appearance:none;-webkit-appearance:none;background:#b9cccc;box-shadow:inset 0 1px 2px rgba(22,53,71,.14);cursor:pointer;outline:0;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
.profile-settings-dialog .profile-preferences input::after{content:"";position:absolute;top:50%;inset-inline-start:3px;box-sizing:border-box;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(22,53,71,.28);transform:translateY(-50%);transition:inset-inline-start .18s ease,transform .18s ease}
.profile-settings-dialog .profile-preferences input:checked{border-color:#2b6e8f;background:#2b6e8f;box-shadow:inset 0 1px 2px rgba(10,28,37,.2)}
.profile-settings-dialog .profile-preferences input:checked::after{inset-inline-start:23px}
.profile-settings-dialog .profile-preferences input:focus-visible{outline:3px solid rgba(200,117,66,.34);outline-offset:3px}
.profile-settings-dialog .profile-preferences input:disabled{cursor:not-allowed;opacity:.5}
.profile-settings-dialog .profile-preferences label:has(input:disabled){cursor:not-allowed;opacity:.72;box-shadow:none}
.profile-settings-dialog .profile-preferences label.is-saving input{border-color:#c87542}
.profile-settings-dialog .profile-preferences label.is-saving input::after{animation:profile-toggle-saving .8s ease-in-out infinite alternate}
.profile-settings-dialog #profilePreferenceStatus{min-height:22px;margin:10px 2px 0;color:#365868;font-size:.86rem;line-height:1.45}
@keyframes profile-toggle-saving{to{box-shadow:0 2px 5px rgba(22,53,71,.28),0 0 0 4px rgba(200,117,66,.2)}}
@media(prefers-reduced-motion:reduce){.profile-settings-dialog .profile-preferences label,.profile-settings-dialog .profile-preferences input,.profile-settings-dialog .profile-preferences input::after{transition:none}.profile-settings-dialog .profile-preferences label.is-saving input::after{animation:none}}

/* Native checkbox rendering is inconsistent across mobile browsers.  Paint
   the settings switches ourselves so on/off, disabled and focus states remain
   visible and preserve the surrounding profile control language. */
.profile-settings-dialog .profile-preferences input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  position:relative!important;
  display:block!important;
  inline-size:46px!important;
  block-size:26px!important;
  min-inline-size:46px!important;
  min-block-size:26px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(43,110,143,.42)!important;
  border-radius:999px!important;
  background:#b9cccc!important;
  background-image:none!important;
  box-shadow:inset 0 1px 2px rgba(22,53,71,.14)!important;
  cursor:pointer;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]::after{
  content:"";
  position:absolute;
  inset-block-start:50%;
  inset-inline-start:3px;
  inline-size:18px;
  block-size:18px;
  border-radius:50%;
  background:#fffdf9;
  box-shadow:0 2px 5px rgba(22,53,71,.28);
  transform:translateY(-50%);
  transition:inset-inline-start .18s ease,box-shadow .18s ease;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]:checked{
  border-color:#2b6e8f!important;
  background:#2b6e8f!important;
  box-shadow:inset 0 1px 2px rgba(10,28,37,.2)!important;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]:checked::after{inset-inline-start:23px}
.profile-settings-dialog .profile-preferences input[type="checkbox"]:focus-visible{
  outline:3px solid rgba(200,117,66,.34)!important;
  outline-offset:3px;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]:disabled{
  opacity:.52;
  cursor:not-allowed;
}
@media(max-width:700px){.profile-settings-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.profile-settings-dialog .profile-avatar-dialog-card{padding:22px 18px}}

/* Keep the compact mobile upload action translucent without making its icon
   disappear against bright photos. */
@media(max-width:700px){
  .site-header .upload-link{
    border:1px solid rgba(255,253,249,.58);
    background:rgba(43,110,143,.58);
    -webkit-backdrop-filter:blur(10px) saturate(1.08);
    backdrop-filter:blur(10px) saturate(1.08);
    opacity:.72;
  }
}

/* Native checkbox appearance differs between mobile browsers. A painted
   track/thumb keeps profile settings switches visible even where input
   pseudo-elements are not rendered. */
.profile-settings-dialog .profile-preferences input[type="checkbox"]{
  background-color:#b9cccc;
  background-image:radial-gradient(circle at 12px 50%,#fff 0 9px,transparent 9.5px);
  background-repeat:no-repeat;
  background-size:100% 100%;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]:checked{
  background-color:#2b6e8f;
  background-image:radial-gradient(circle at calc(100% - 12px) 50%,#fff 0 9px,transparent 9.5px);
}

/* A short shared-settings URL now lands on the normal home screen, with an
   explicit import decision instead of silently changing the upload form. */
.shared-preset-import-dialog{width:min(94vw,560px);max-height:min(88dvh,720px);padding:0;border:0;border-radius:20px;background:transparent;color:var(--ink);box-shadow:0 26px 84px rgba(15,35,48,.34)}
.shared-preset-import-dialog[hidden]{display:none!important}
.shared-preset-import-dialog::backdrop{background:rgba(14,35,45,.58);backdrop-filter:blur(4px)}
.shared-preset-import-card{position:relative;max-height:min(88dvh,720px);padding:27px;overflow:auto;overflow-x:hidden;border:1px solid rgba(43,110,143,.24);border-radius:20px;background:linear-gradient(145deg,#fffdf9,#eef7f7);direction:rtl;text-align:right}
.shared-preset-import-close{position:absolute;top:17px;inset-inline-end:17px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(43,110,143,.25);border-radius:50%;background:#fff;color:var(--blue);font:500 23px/1 Assistant,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.shared-preset-import-close:hover,.shared-preset-import-close:focus-visible{border-color:var(--blue);background:var(--sky);transform:translateY(-1px);outline:0}
.shared-preset-import-heading{padding-inline-end:42px}
.shared-preset-import-heading .eyebrow{color:var(--terracotta)}
.shared-preset-import-heading h2{margin:5px 0 0;color:var(--ink);font:900 clamp(24px,4vw,30px)/1.1 Rubik,Assistant,Arial,sans-serif;letter-spacing:-.045em;overflow-wrap:anywhere}
.shared-preset-import-type{margin:7px 0 0;color:#55707d;font:800 15px/1.35 Assistant,Arial,sans-serif}
.shared-preset-import-creator{margin:16px 0 0;color:#55707d;font:700 14px/1.45 Assistant,Arial,sans-serif}
.shared-preset-import-creator a{color:var(--terracotta);font-weight:900;text-decoration:none}
.shared-preset-import-creator a:hover,.shared-preset-import-creator a:focus-visible{text-decoration:underline;outline:0}
.shared-preset-import-details{display:grid;gap:0;margin:20px 0 0;padding:0;border-top:1px solid rgba(22,53,71,.13)}
.shared-preset-import-details>div{display:grid;grid-template-columns:minmax(116px,.85fr) minmax(0,1.15fr);gap:12px;padding:10px 0;border-bottom:1px solid rgba(22,53,71,.1)}
.shared-preset-import-details dt{margin:0;color:#55707d;font:800 13px/1.35 Assistant,Arial,sans-serif}
.shared-preset-import-details dd{min-width:0;margin:0;color:var(--ink);font:700 15px/1.35 Assistant,Arial,sans-serif;overflow-wrap:anywhere}
.shared-preset-import-status{min-height:1.4em;margin:16px 0 0;color:#55707d;font:700 14px/1.45 Assistant,Arial,sans-serif}
.shared-preset-import-actions{display:flex;align-items:center;justify-content:flex-start;gap:9px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(22,53,71,.12)}
.shared-preset-import-actions .profile-primary-button,.shared-preset-import-actions .profile-secondary-button{min-height:42px;margin:0}
.shared-preset-import-actions .profile-primary-button.is-saved{border-color:#4f7b72;background:#edf7f1;color:#315e53}
.shared-preset-import-skeleton-row{display:grid!important;grid-template-columns:minmax(116px,.85fr) minmax(0,1.15fr);gap:12px;padding:10px 0!important}
.shared-preset-import-skeleton-row span,.shared-preset-import-skeleton-row b{display:block;min-height:15px;border-radius:999px;background:linear-gradient(100deg,rgba(202,190,174,.28) 25%,rgba(255,255,255,.92) 45%,rgba(202,190,174,.28) 65%);background-size:300% 100%;animation:kalimeraSkeleton 1.15s linear infinite}
.shared-preset-import-skeleton-row span{width:74%}.shared-preset-import-skeleton-row b{width:92%}
html[dir=ltr] .shared-preset-import-card{direction:ltr;text-align:left}
@media(max-width:700px){.shared-preset-import-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.shared-preset-import-card{max-height:calc(100dvh - 24px);padding:23px 18px}.shared-preset-import-details>div,.shared-preset-import-skeleton-row{grid-template-columns:minmax(102px,.8fr) minmax(0,1.2fr)}.shared-preset-import-actions{align-items:stretch;flex-direction:column-reverse}.shared-preset-import-actions .profile-primary-button,.shared-preset-import-actions .profile-secondary-button{width:100%}}
@media(prefers-reduced-motion:reduce){.shared-preset-import-skeleton-row span,.shared-preset-import-skeleton-row b{animation:none}}

/* Shared account overlays use one interaction contract: bounded dialogs on
   larger screens and full-width bottom sheets on phones. The root dialog owns
   the backdrop while the inner surface owns scrolling, so menus and the page
   behind them never scroll with the overlay. */
.notifications-panel.notifications-panel-portal.kalimera-responsive-overlay{
  position:fixed;
  inset:0;
  width:min(430px,calc(100vw - 32px));
  max-height:min(680px,calc(var(--overlay-viewport-height,100dvh) - 32px));
  margin:auto;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.notifications-panel .notifications-overlay-surface{width:100%;max-height:inherit;direction:rtl;text-align:start}
.notifications-panel .notifications-panel-heading.kalimera-overlay-header{padding:16px 18px;border-block-end:1px solid rgba(22,53,71,.12)}
.notifications-panel .notifications-panel-list.kalimera-overlay-body{max-height:none;padding:12px;overflow-y:auto;overscroll-behavior:contain}
.notifications-panel .notifications-panel-close{
  display:grid;
  place-items:center;
  flex:0 0 36px;
  width:36px;
  height:36px;
  min-height:36px;
  padding:0;
  border:1px solid rgba(43,110,143,.25);
  border-radius:50%;
  background:#fffdf9;
  color:#163547;
  font:700 23px/1 Assistant,Arial,sans-serif;
}
.notifications-panel .notifications-panel-close:is(:hover,:focus-visible){border-color:#2b6e8f;background:#e6f2f1;outline:0}
.bug-report-dialog.kalimera-responsive-overlay,
.shared-preset-import-dialog.kalimera-responsive-overlay{position:fixed;inset:0;margin:auto}
.bug-report-dialog.kalimera-responsive-overlay .bug-report-card,
.shared-preset-import-dialog.kalimera-responsive-overlay .shared-preset-import-card{
  max-height:inherit;
  overscroll-behavior:contain;
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
}
html[data-locale="en"] .notifications-panel .notifications-overlay-surface{direction:ltr}

/* Profile and account editors share the same bounded desktop dialog and
   mobile bottom-sheet anatomy. Only the body scrolls; headers and explicit
   save controls remain reachable when the software keyboard is open. */
.profile-avatar-dialog.kalimera-responsive-overlay{
  position:fixed;
  inset:0;
  width:min(760px,calc(100vw - 32px));
  max-width:none;
  max-height:min(820px,calc(var(--overlay-viewport-height,100dvh) - 32px));
  margin:auto;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.profile-cover-dialog.kalimera-responsive-overlay{width:min(860px,calc(100vw - 32px))}
.profile-settings-dialog.kalimera-responsive-overlay{width:min(560px,calc(100vw - 32px))}
.profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{
  width:100%;
  max-height:inherit;
  padding:0;
  overflow:hidden;
  border-radius:22px;
  direction:rtl;
  text-align:start;
}
.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-header{
  padding:18px 20px;
  border-block-end:1px solid rgba(22,53,71,.12);
}
.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-body{
  min-height:0;
  padding:18px 20px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
}
.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-footer{
  margin:0;
  padding:14px 20px max(14px,env(safe-area-inset-bottom));
  border-block-start:1px solid rgba(22,53,71,.12);
  background:#fffdf9;
}
.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-approve:disabled,
.profile-avatar-dialog.kalimera-responsive-overlay .profile-cover-approve:disabled{opacity:.5;cursor:not-allowed}
.profile-discard-dialog.kalimera-responsive-overlay{width:min(410px,calc(100vw - 28px))}
.profile-discard-dialog .kalimera-overlay-body h3,
.profile-discard-dialog .kalimera-overlay-body p{margin:0}
.profile-discard-dialog .kalimera-overlay-body p{margin-block-start:8px;color:#60717b}
html[data-locale="en"] .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{direction:ltr}
@media(max-width:700px){
  .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay,
  .bug-report-dialog.kalimera-responsive-overlay,
  .shared-preset-import-dialog.kalimera-responsive-overlay,
  .profile-avatar-dialog.kalimera-responsive-overlay{
    inset:0;
    width:100%;
    max-width:none;
    max-height:var(--overlay-viewport-height,100dvh);
    margin:auto 0 0;
    border-radius:22px 22px 0 0;
  }
  .notifications-panel .notifications-overlay-surface,
  .bug-report-dialog.kalimera-responsive-overlay .bug-report-card,
  .shared-preset-import-dialog.kalimera-responsive-overlay .shared-preset-import-card,
  .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{
    max-height:var(--overlay-viewport-height,100dvh);
    border-radius:inherit;
    padding-block-end:max(18px,env(safe-area-inset-bottom));
  }
  .notifications-panel .notifications-panel-heading.kalimera-overlay-header{padding-block-start:24px}
  .profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-header{padding:22px 16px 14px}
  .profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-body{padding:16px}
  .profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-footer{padding-inline:16px}
}

/* Equipment links are optional, scoped to the specific selected product/tool,
   and collapsed until the owner needs to paste one. */
.profile-equipment-store-link{grid-column:1/-1;min-width:0;margin:-4px 0 2px;padding:0;border:1px solid rgba(43,110,143,.17);border-radius:9px;background:rgba(255,253,249,.68)}
.profile-equipment-store-link>summary{display:flex;align-items:center;min-height:36px;padding:8px 11px;color:#2b6e8f;font:800 14px/1.2 Assistant,Arial,sans-serif;cursor:pointer;list-style:none;user-select:none}
.profile-equipment-store-link>summary::-webkit-details-marker{display:none}
.profile-equipment-store-link>summary::before{content:'+';display:inline-grid;place-items:center;flex:0 0 18px;width:18px;height:18px;margin-inline-end:7px;border:1px solid currentColor;border-radius:50%;font:800 16px/1 Assistant,Arial,sans-serif}
.profile-equipment-store-link[open]>summary::before{content:'−'}
.profile-equipment-store-link>label{display:grid;gap:6px;padding:0 11px 11px;color:#486977;font:800 13px/1.2 Assistant,Arial,sans-serif}
.profile-equipment-store-link input[type=url]{width:100%;min-width:0;min-height:44px;padding:9px 11px;border:1px solid rgba(43,110,143,.3);border-radius:8px;background:#fffdf9;color:#17232b;font:600 15px/1.2 Assistant,Arial,sans-serif;text-align:left}
.profile-equipment-store-link input[type=url]:focus{border-color:#2b6e8f;outline:2px solid rgba(43,110,143,.16)}

/* The compact mobile preset row keeps the actual date visible beside actions.
   Long explanatory copy belongs in the accessible title, not in the row. */
.profile-preset-meta{min-width:0}
.profile-preset-date{min-width:fit-content;overflow:visible;text-overflow:clip;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Native date inputs render their picker affordance on the opposite side from
   RTL copy. Give it a dedicated lane so the roast date never loses digits. */
#beanDetailsSection .bean-roast-fields{min-width:0}
#beanDetailsSection .bean-roast-field{min-width:0}
#beanDetailsSection .bean-roast-date-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 40px;min-height:46px;overflow:hidden;border:1px solid rgba(43,110,143,.34);border-radius:9px;background:#fffdf9;direction:ltr;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
#beanDetailsSection .bean-roast-date-control:focus-within{border-color:#2b6e8f;box-shadow:0 0 0 3px rgba(43,110,143,.14)}
#beanDetailsSection .bean-roast-date-value{display:flex;align-items:center;min-width:0;padding:10px 12px;color:#163547;font:700 16px/1 Assistant,Arial,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}
#beanDetailsSection .bean-roast-date-value.is-placeholder{color:#7c8d91;font-weight:600}
#beanDetailsSection #coffeeRoastDate{position:absolute;z-index:2;inset-block:0;inset-inline-start:0;width:calc(100% - 40px);height:100%!important;min-width:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:transparent;opacity:0;cursor:pointer;direction:ltr;box-shadow:none}
#beanDetailsSection #coffeeRoastDate::-webkit-calendar-picker-indicator{display:none}
#beanDetailsSection .bean-roast-calendar-button{position:relative;z-index:3;display:grid;place-items:center;width:40px;height:100%;min-height:44px;margin:0;padding:0;border:0;border-inline-start:1px solid rgba(43,110,143,.2);background:rgba(232,242,241,.7);color:#2b6e8f;cursor:pointer;transition:background-color .18s ease,color .18s ease}
#beanDetailsSection .bean-roast-calendar-button:hover,#beanDetailsSection .bean-roast-calendar-button:focus-visible{background:#e3f0f0;color:#163547;outline:0}
#beanDetailsSection .bean-roast-calendar-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
@media(max-width:390px){#beanDetailsSection .bean-roast-date-value{padding-inline:9px;font-size:14px}#beanDetailsSection .bean-roast-date-control{grid-template-columns:minmax(0,1fr) 36px}#beanDetailsSection #coffeeRoastDate{width:calc(100% - 36px)}#beanDetailsSection .bean-roast-calendar-button{width:36px}}

/* Dark coffee surfaces use the same soft elevation as the paper cards, but
   with a restrained light rim so their controls do not disappear into black. */
#beans :is(.bean-card,.bean-deal-card,.taste-choice),
#guides[data-parallax] :is(.machine-choice,.guide-level-choice,.guide-card,.calculator-card,.freshness-card),
#deals[data-parallax] :is(.deals-filter,.deal-card){box-shadow:0 8px 22px rgba(0,0,0,.19),0 1px 0 rgba(255,255,255,.16)}
#guides .swipe-scroll-shell{margin-block:-4px 14px;padding-block:4px}
#guides .swipe-scroll-shell>:is(.machine-picker,.guide-level-picker){padding-block:4px 6px}

/* Use one calm motion curve across interactive surfaces. Card elevation stays
   perceptible without the abrupt jumps that made large grids feel detached. */
@media(hover:hover) and (pointer:fine){
  body :is(button,a,.today-coffee,.gallery-item,.deal-card,.deals-page-card,.bean-deal-card,.tips-grid article,.qa-question,.profile-card){transition-duration:.28s!important;transition-timing-function:cubic-bezier(.22,1,.36,1)!important}
  body :is(.today-coffee,.gallery-item,.deal-card,.deals-page-card,.bean-deal-card,.tips-grid article,.profile-avatar-choice,.profile-cover-choice):hover{transform:translateY(-2px)!important}
  #guides :is(.machine-choice,.guide-level-choice,.calculator-ratio-presets button):is(:hover,:focus-visible){transform:translateY(-1px)!important}
}
@media(prefers-reduced-motion:reduce){.profile-equipment-store-link,.profile-equipment-store-link *{transition:none!important}}

/* Saved beans use the same compact, expandable profile language as saved
   coffee settings and equipment, while retaining bean-specific fields. */
.profile-beans-card{grid-column:1/-1}
.profile-beans-list{display:grid;gap:8px;margin-top:14px}
.profile-bean-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;padding:16px;border:1px solid rgba(43,110,143,.18);border-radius:12px;background:#f4faf9}
.profile-bean-form[hidden],.profile-bean-form[aria-hidden="true"]{display:none!important}
.profile-bean-field{display:grid;gap:7px;margin:0;color:#263b45;font:800 16px/1.25 Assistant,Arial,sans-serif}
.profile-bean-field input,.profile-bean-field select{box-sizing:border-box;width:100%;min-height:46px;padding:10px 12px;border:1px solid rgba(43,110,143,.3);border-radius:9px;background:#fffdf9;color:#17232b;-webkit-text-fill-color:#17232b;font:600 16px/1.2 Assistant,Arial,sans-serif}
.profile-bean-field input::placeholder{color:#8a989d;opacity:.72}
.profile-bean-field input:focus,.profile-bean-field select:focus{border-color:#2b6e8f;outline:2px solid rgba(43,110,143,.16)}
.profile-bean-form-actions{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-start}
.profile-bean-status{grid-column:1/-1;margin:0}
.profile-bean-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-height:70px;padding:12px 14px;border:1px solid rgba(22,53,71,.13);border-radius:10px;background:#fff;cursor:pointer}
.profile-bean-row.is-expanded{border-color:rgba(43,110,143,.34);background:rgba(247,252,251,.96)}
.profile-bean-copy{min-width:0}.profile-bean-copy>strong{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#163547;font-weight:850}
.profile-bean-details{display:grid;gap:5px;margin-top:10px;color:#60717b;font-size:.9rem;line-height:1.4}.profile-bean-details[hidden]{display:none!important}
.profile-bean-details a,.lightbox-bean-link{color:#2b6e8f;font-weight:850;text-decoration:none}.profile-bean-details a:hover,.lightbox-bean-link:hover{text-decoration:underline}
.profile-bean-actions{display:flex;grid-row:2;gap:7px;justify-content:flex-start;align-items:center}
.profile-bean-disclosure{margin-inline-start:auto}
.bean-source-link-field input{direction:ltr;text-align:left}
@media(max-width:700px){.profile-bean-form{grid-template-columns:1fr}.profile-bean-form-actions{flex-direction:column}.profile-bean-form-actions button{width:100%}}

/* Private equipment starts as a compact title row. Details are deliberately
   opt-in, so scanning a large setup stays quick and the expand control comes
   before the edit action. */
.profile-equipment-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-height:64px}
.profile-equipment-copy{min-width:0}
.profile-equipment-copy>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-equipment-details{display:grid;gap:4px;margin-top:8px;min-width:0}
.profile-equipment-details[hidden]{display:none!important}
.profile-equipment-details span{overflow-wrap:anywhere}
.profile-equipment-detail-line{display:grid!important;grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:6px 12px;min-width:0}
.profile-equipment-detail-key,.public-profile-equipment-row .profile-equipment-details dt{display:inline-flex;align-items:center;gap:7px;min-width:0;color:#486977;font-weight:800}
.profile-equipment-detail-value,.public-profile-equipment-row .profile-equipment-details dd{min-width:0;overflow-wrap:anywhere}
.profile-equipment-detail-key>.equipment-buy-link,.public-profile-equipment-row .profile-equipment-details dt>.equipment-buy-link{position:static;margin:0;transform:none}
.profile-equipment-row-actions{align-self:start;align-items:center}
.profile-equipment-toggle{font:900 21px/1 Assistant,Arial,sans-serif!important}
@media(max-width:700px){.profile-equipment-row{grid-template-columns:minmax(0,1fr) auto;align-items:start}.profile-equipment-row-actions{align-self:start;flex-direction:row}.profile-equipment-row-actions .profile-preset-icon-button{width:34px;height:34px;min-height:34px}}

@media(max-width:700px){
  .profile-menu-panel{position:fixed;top:calc(var(--site-header-height,70px) + 7px);inset-inline-end:10px;width:min(286px,calc(100vw - 20px));max-height:calc(100vh - 86px);overflow:auto}
  .profile-menu .notifications-panel{position:fixed;top:calc(var(--site-header-height,70px) + 7px);inset-inline:10px;width:auto;max-height:calc(100vh - 86px)}
  .notifications-panel.notifications-panel-portal{position:fixed;top:calc(var(--site-header-height,70px) + 7px);inset-inline:10px;width:auto;max-width:none;max-height:calc(100vh - 86px)}
  /* Override the compact header-only bell rules: inside this menu the
     notification action remains a full, readable row. */
  .site-header .profile-menu .notifications-link{justify-content:space-between;width:100%;min-height:48px;height:auto;padding:12px 14px;border:0;border-radius:0}
  .site-header .profile-menu .notifications-link>span{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;border:0}
  body.profile-page .profile-identity-card .profile-identity-copy{padding-inline:5px}
  body.profile-page .profile-identity-card .profile-name-line{gap:8px;padding:4px 6px}
}

/* Notification rows must size themselves from their content.  The earlier
   mobile overlay rules gave each row body a 100% minimum block size; inside a
   grid that makes every notification claim the whole list height, causing
   rows to paint on top of one another.  Keep the surface and list as a
   bounded two-row layout, then let each item contribute only its own height. */
.notifications-panel.notifications-panel-portal.kalimera-responsive-overlay{
  height:min(680px,calc(var(--overlay-viewport-height,100dvh) - 32px));
  min-height:0;
}
.notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  height:100%;
  min-height:0;
  overflow:hidden;
}
.notifications-panel .notifications-panel-list.kalimera-overlay-body{
  display:grid;
  grid-auto-rows:max-content;
  align-content:start;
  min-height:0;
  height:auto;
}
.notifications-panel .notifications-panel-item{
  min-block-size:0!important;
  block-size:auto!important;
  min-height:0!important;
  height:auto!important;
  grid-template-rows:max-content;
  align-self:start;
}
.notifications-panel .notifications-panel-body{
  min-block-size:0!important;
  min-height:0!important;
  height:auto!important;
  align-self:start;
}
.notifications-panel-avatar.inline-profile-avatar{
  display:inline-grid;
  place-items:center;
  overflow:hidden;
  background:#d9edf1;
  vertical-align:middle;
}
.notifications-panel-avatar.inline-profile-avatar img,
.notifications-panel-avatar.inline-profile-avatar svg{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
@media(max-width:700px){
  .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay{
    height:var(--overlay-viewport-height,100dvh);
    max-height:var(--overlay-viewport-height,100dvh);
  }
  .notifications-panel .notifications-panel-list.kalimera-overlay-body{
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
}

/* Uploader names remain clickable, while retaining ordinary attribution text. */
.profile-name-link{color:inherit!important;text-decoration:none!important}
.profile-name-link:hover{color:inherit!important;text-decoration:none!important}
.profile-name-link:focus-visible{color:inherit!important;text-decoration:none!important;outline:2px solid rgba(43,110,143,.45);outline-offset:3px;border-radius:3px}

@media(max-width:700px){
  /* Do not let an asynchronously loaded avatar collapse the header trigger. */
  .site-header .profile-menu{display:block;align-self:center;flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;padding:0;line-height:0}
  .site-header #profileNavButton{display:inline-flex!important;align-self:center;flex:0 0 40px!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;line-height:0!important;aspect-ratio:1;box-sizing:border-box}
  .site-header #profileNavButton .header-profile-avatar{align-self:stretch;justify-self:stretch;min-width:0;min-height:0;line-height:0}
  .site-header #profileNavButton .header-profile-avatar>.inline-profile-avatar{display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%;margin:0!important;vertical-align:top}
  /* Enlarge only the signed-in image inside its existing 40px hit target.
     The rounded host owns clipping, so the trigger footprint and header layout
     remain stable while the photo receives the requested subtle zoom. */
  .site-header #profileNavButton.has-profile-avatar .header-profile-avatar>.inline-profile-avatar{transform:scale(1.05);transform-origin:center;will-change:transform}
}

/* Phone headers are intentionally ordered from the reading start: menu,
   wordmark, Deals, then the profile control. The two action controls remain
   together at the left edge in Hebrew RTL. */
@media(max-width:700px){.site-header>.menu-toggle{order:1}.site-header>.brand{order:2}.site-header>.deals-header-link{order:3}.site-header>.header-actions{order:4;margin-right:0!important;margin-inline-start:0!important}.site-header #profileNavButton{border-radius:50%!important}}

/* The identity surface is a stable profile header, not an elevated card. */
/* The profile header is a full-width surface, not an elevated card. Keep it
   completely flat so no right-side cast remains from shared card styling. */
body.profile-page .profile-card.profile-identity-card,
body.profile-page .profile-card.profile-identity-card::before,
body.profile-page .profile-card.profile-identity-card::after{box-shadow:none!important;filter:none!important}
@media(hover:hover) and (pointer:fine){
  body.profile-page .profile-identity-card:is(:hover,:focus-within){transform:none!important;border-color:rgba(22,53,71,.16)!important;box-shadow:none!important}
}

/* Public profiles deliberately reuse the private dashboard's hierarchy. The
   read-only route keeps the cover full bleed, then uses the same identity row
   and 900px card column as an account holder sees in their own profile. */
.public-profile-page .public-profile-identity{
  --public-avatar-size:161px;
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-top:calc(var(--public-avatar-size) * -.6)!important;
  padding-top:0!important;
}
.public-profile-page .public-profile-avatar{position:relative;z-index:1;flex:0 0 var(--public-avatar-size)}
.public-profile-page .public-profile-avatar .inline-profile-avatar{
  display:grid;
  width:var(--public-avatar-size)!important;
  height:var(--public-avatar-size)!important;
  border:4px solid #fffdf9;
  box-shadow:0 0 0 2px rgba(43,110,143,.22);
}
.public-profile-page .public-profile-identity-copy{min-width:0;padding-top:calc(var(--public-avatar-size) * .6)}
.public-profile-page .public-profile-name-line{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 8px;background:transparent}
.public-profile-page .public-profile-identity h1{margin:0;color:#163547;font:900 28px/1 Rubik,Arial,sans-serif;overflow-wrap:anywhere}
.public-profile-page .public-profile-name-line .profile-share-control{display:inline-grid;place-items:center;flex:0 0 36px;width:36px;height:36px;min-width:36px;min-height:36px;margin:0;padding:0}
.public-profile-page :is(.public-profile-stats-card,.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery){
  width:min(900px,calc(100% - 32px));
  box-sizing:border-box;
  margin-inline:auto;
  padding:26px;
  border:1px solid rgba(22,53,71,.16);
  border-radius:14px;
  background:linear-gradient(145deg,#fffdf9 0%,#f8fcfb 100%);
  box-shadow:8px 9px 0 rgba(22,53,71,.07);
}
.public-profile-page .public-profile-stats-card{margin-top:26px}
.public-profile-page .public-profile-stats-card .profile-card-heading{align-items:flex-start;margin-bottom:2px}
.public-profile-page .public-profile-stats-card .profile-card-heading h2{margin:5px 0 0;color:#163547;font:900 24px/1 Rubik,Arial,sans-serif}
.public-profile-page .public-profile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0 0}
.public-profile-page .public-profile-stats div{display:grid;align-content:center;gap:4px;min-height:82px;padding:12px;border:1px solid rgba(43,110,143,.1);border-radius:9px;background:#edf5f4;text-align:center}
.public-profile-page .public-profile-stats strong{color:#163547;font:900 24px/1 Rubik,Arial,sans-serif}
.public-profile-page .public-profile-stats span{color:#55707d;font-size:13px;font-weight:800}
.public-profile-page :is(.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery){margin-top:16px}
.public-profile-page :is(.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery) h2{margin:5px 0 14px;color:#163547;font:900 24px/1 Rubik,Arial,sans-serif}
@media(max-width:700px){
  .public-profile-page .public-profile-identity{--public-avatar-size:104px;gap:12px}
  .public-profile-page .public-profile-identity h1{font-size:23px}
  .public-profile-page .public-profile-name-line{gap:8px;padding:4px 6px}
  .public-profile-page :is(.public-profile-stats-card,.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery){width:calc(100% - 32px);padding:18px}
  .public-profile-page .public-profile-stats div{min-height:72px;padding:10px 7px}
  .public-profile-page .public-profile-stats strong{font-size:21px}
}

/* Private profile: the account gear belongs to the same quiet action family
   as edit and share. About keeps its own calm reading surface. */
body.profile-page .profile-settings-open{
  color:var(--blue)!important;
  border-color:rgba(43,110,143,.3)!important;
  background:#fffdf9!important;
  box-shadow:none!important;
}
body.profile-page .profile-settings-open:hover,
body.profile-page .profile-settings-open:focus-visible{
  color:var(--blue)!important;
  border-color:var(--blue)!important;
  background:var(--sky)!important;
  box-shadow:none!important;
}
body.profile-page #profileSettingsOpen{display:inline-grid!important;place-items:center!important}
body.profile-page .profile-settings-open svg{display:block!important;width:18px!important;height:18px!important;margin:0!important;overflow:visible;stroke-width:1.7!important;transform:translate3d(0,0,0)!important;transform-origin:center}
body.profile-page .profile-details-box .profile-details-view .profile-field-summary.profile-about-summary{
  display:grid;
  gap:7px;
  padding:15px 16px;
  border:1px solid rgba(22,53,71,.16)!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,rgba(237,245,244,.96),rgba(255,253,249,.98))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
body.profile-page .profile-details-box .profile-details-view .profile-field-summary.profile-about-summary .profile-field-summary-row{min-height:24px}
.profile-equipment-row{grid-template-columns:minmax(0,1fr);gap:10px;min-height:76px;padding-block:13px}
.profile-equipment-copy{display:block;min-width:0}
.profile-equipment-copy>.profile-equipment-summary{display:none!important}
.profile-equipment-row.is-expandable{cursor:pointer}
.profile-equipment-row.is-expandable:focus-visible{outline:2px solid rgba(43,110,143,.42);outline-offset:2px}
.profile-equipment-details{display:grid;gap:5px;margin-top:10px;color:#60717b;font-size:.9rem;line-height:1.4}
.profile-equipment-details[hidden]{display:none!important}
.profile-equipment-row.is-expanded{border-color:rgba(43,110,143,.34);background:rgba(247,252,251,.96)}
.profile-equipment-row-actions{grid-row:2;justify-content:flex-start;align-self:center}
@media(max-width:700px){
  .profile-equipment-row{grid-template-columns:minmax(0,1fr);min-height:70px;padding-block:12px}
  .profile-equipment-row-actions{align-self:center}
}

/* Saved coffee settings disclose their complete field list from the row itself.
   Action buttons remain independent, so editing or sharing never toggles it. */
.profile-preset-row{cursor:pointer;grid-template-rows:auto auto auto auto;grid-template-areas:"name" "summary" "meta" "details";transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.profile-preset-row:hover,.profile-preset-row:focus-visible,.profile-preset-row.is-expanded{border-color:rgba(43,110,143,.34);background:#fffdf9;box-shadow:0 3px 12px rgba(22,53,71,.06);outline:0}
.profile-preset-name{display:flex;align-items:center;justify-content:space-between;gap:10px}
.profile-preset-disclosure{display:inline-grid!important;place-items:center;flex:0 0 22px;width:22px;height:22px;margin:0!important;color:#2b6e8f;font:900 18px/1 Assistant,Arial,sans-serif}
.profile-preset-details{grid-area:details;display:grid;grid-template-columns:minmax(112px,.8fr) minmax(0,1.2fr);gap:7px 14px;margin:8px 0 0;padding:12px 0 0;border-top:1px solid rgba(22,53,71,.12);direction:rtl;text-align:right}
.profile-preset-details[hidden]{display:none!important}
.profile-preset-details dt{min-width:0;color:#55707d;font:800 13px/1.35 Assistant,Arial,sans-serif}
.profile-preset-details dd{min-width:0;margin:0;color:#163547;font:700 14px/1.35 Assistant,Arial,sans-serif;overflow-wrap:anywhere}
.public-profile-page .public-profile-equipment-row{grid-template-rows:auto auto auto auto;grid-template-areas:"name" "summary" "meta" "details"}
.public-profile-page .public-profile-equipment-row .profile-preset-summary{margin:0;color:#55707d;font:600 14px/1.4 Assistant,Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-profile-page .public-profile-equipment-row .profile-preset-meta{margin-top:7px}
@media(max-width:700px){.profile-preset-details{grid-template-columns:minmax(96px,.75fr) minmax(0,1.25fr);gap:6px 10px}.profile-preset-details dt{font-size:12px}.profile-preset-details dd{font-size:13px}}

/* Keep the private profile identity as one deliberate row beneath the cover:
   avatar at the reading edge, then the name and its actions in the remaining
   space.  The copy begins exactly where the cover ends while the avatar
   continues to overlap it. */
body.profile-page .profile-identity-card .profile-identity{
  direction:rtl;
  justify-content:flex-start;
  min-width:0;
}
body.profile-page .profile-identity-card .profile-avatar-wrap{flex:0 0 var(--profile-avatar-size)}
body.profile-page .profile-identity-card .profile-identity-copy{
  display:flex;
  flex:1 1 0;
  align-self:stretch;
  min-width:0;
  padding-top:calc(var(--profile-avatar-size) * .6);
}
body.profile-page .profile-identity-card .profile-name-line{
  align-self:flex-start;
  width:100%;
  min-width:0;
  flex-wrap:nowrap;
  justify-content:flex-start;
  direction:rtl;
}
body.profile-page .profile-identity-card .profile-name-line h3{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  direction:rtl;
  unicode-bidi:plaintext;
  text-align:start;
}
@media(max-width:420px){
  body.profile-page .profile-identity-card .profile-identity{gap:10px}
  body.profile-page .profile-identity-card .profile-identity-copy{padding-inline:0}
  body.profile-page .profile-identity-card .profile-name-line{gap:6px;flex-wrap:wrap}
  body.profile-page .profile-identity-card .profile-name-line h3{flex-basis:100%}
}

/* Public profiles follow the identical identity-row contract. Their single
   visitor action is Share; the private route keeps its edit, settings and
   share actions in the same place beside the account name. */
.public-profile-page .public-profile-identity{
  direction:rtl;
  justify-content:flex-start;
  min-width:0;
}
.public-profile-page .public-profile-avatar{flex:0 0 var(--public-avatar-size)}
.public-profile-page .public-profile-identity-copy{
  display:flex;
  flex:1 1 0;
  align-self:stretch;
  min-width:0;
  padding-top:calc(var(--public-avatar-size) * .6);
}
.public-profile-page .public-profile-name-line{
  align-self:flex-start;
  width:100%;
  min-width:0;
  flex-wrap:nowrap;
  justify-content:flex-start;
  direction:rtl;
}
.public-profile-page .public-profile-identity h1{
  flex:1 1 auto;
  min-width:0;
  direction:rtl;
  unicode-bidi:plaintext;
  text-align:start;
}
.public-profile-page .public-profile-name-line .profile-share-control{
  align-self:center;
  margin:0;
}
@media(max-width:700px){
  /* Keep names and section headings comfortably readable on phones without
     crowding the avatar/action row. */
  body.profile-page .profile-identity-card .profile-identity h3,
  .public-profile-page .public-profile-identity h1{font-size:21px}
  body.profile-page .profile-card-heading h3,
  .public-profile-page .public-profile-stats-card .profile-card-heading h2,
  .public-profile-page :is(.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery) h2{font-size:22px}
}
@media(max-width:420px){
  .public-profile-page .public-profile-identity{gap:10px}
  .public-profile-page .public-profile-identity-copy{padding-inline:0}
  .public-profile-page .public-profile-name-line{gap:6px;flex-wrap:wrap}
  .public-profile-page .public-profile-identity h1{flex-basis:100%}
}

/* Profile visual system: identity stays open and editorial while the working
   areas use one calm, responsive card language on both profile routes. */
body.profile-page #profile{max-width:1160px!important;padding-bottom:104px}
body.profile-page .profile-content{gap:24px}
body.profile-page .profile-card:not(.profile-identity-card),
.public-profile-page :is(.public-profile-stats-card,.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery){
  position:relative;
  overflow:clip;
  border:1px solid rgba(22,53,71,.14);
  border-radius:18px;
  background:linear-gradient(145deg,#fffefb 0%,#f4faf8 100%);
  box-shadow:0 12px 30px rgba(22,53,71,.075);
}
body.profile-page .profile-card:not(.profile-identity-card){padding:28px}
body.profile-page .profile-card-heading,
.public-profile-page .public-profile-stats-card .profile-card-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin:0;
  padding-bottom:14px;
  border-bottom:1px solid rgba(22,53,71,.1);
}
body.profile-page .profile-card-heading h3,
.public-profile-page .public-profile-stats-card .profile-card-heading h2,
.public-profile-page :is(.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery) h2{
  color:#163547;
  font:900 25px/1.08 Rubik,Arial,sans-serif;
  letter-spacing:-.04em;
}
body.profile-page .profile-card-help{max-width:62ch;margin:7px 0 0;color:#60717b;font-size:14px;line-height:1.45}
body.profile-page .profile-stats-card{background:linear-gradient(145deg,#f8fdfc 0%,#e9f4f2 100%)}
body.profile-page .profile-stats{gap:11px;margin-top:18px}
body.profile-page .profile-stats div,
.public-profile-page .public-profile-stats div{
  min-height:90px;
  padding:14px 12px;
  border:1px solid rgba(43,110,143,.14);
  border-radius:14px;
  background:rgba(255,253,249,.84);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
body.profile-page .profile-stats strong,
.public-profile-page .public-profile-stats strong{font-size:27px}
body.profile-page .profile-stats span,
.public-profile-page .public-profile-stats span{font-size:13px;line-height:1.25}

/* On a wide profile, contact and about information form a small, balanced
   facts row instead of reading as two unrelated blocks. */
@media(min-width:701px){
  body.profile-page .profile-identity-card .profile-details-box{
    display:grid;
    grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);
    align-items:stretch;
    gap:14px;
    margin-top:16px;
  }
  body.profile-page .profile-identity-card .profile-email-row{margin:0}
  body.profile-page .profile-identity-card .profile-details-form{grid-column:1/-1}
}
body.profile-page .profile-preset-row,
body.profile-page .profile-equipment-row,
.public-profile-page .public-profile-setting,
.public-profile-page .public-equipment-item{
  border-color:rgba(22,53,71,.13);
  border-radius:13px;
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88);
}
body.profile-page .profile-preset-row:hover,
body.profile-page .profile-equipment-row:hover,
.public-profile-page .public-profile-setting:hover,
.public-profile-page .public-equipment-item:hover{border-color:rgba(43,110,143,.32)}
.public-profile-page .public-profile-about,
.public-profile-page .public-profile-settings,
.public-profile-page .public-profile-equipment,
.public-profile-page .public-profile-gallery{padding:26px}
.public-profile-page .public-profile-stats-card{padding:26px}
.public-profile-page .public-profile-stats{gap:11px;margin-top:18px}

@media(max-width:700px){
  body.profile-page #profile{padding-bottom:66px}
  body.profile-page .profile-content{gap:14px}
  body.profile-page .profile-card:not(.profile-identity-card){padding:18px;border-radius:15px}
  body.profile-page .profile-card-heading,
  .public-profile-page .public-profile-stats-card .profile-card-heading{gap:10px;padding-bottom:11px}
  body.profile-page .profile-card-heading h3,
  .public-profile-page .public-profile-stats-card .profile-card-heading h2,
  .public-profile-page :is(.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery) h2{font-size:21px}
  body.profile-page .profile-card-help{margin-top:5px;font-size:13px;line-height:1.4}
  body.profile-page .profile-stats{gap:8px;margin-top:14px}
  body.profile-page .profile-stats div,
  .public-profile-page .public-profile-stats div{min-height:76px;padding:11px 8px;border-radius:11px}
  body.profile-page .profile-stats strong,
  .public-profile-page .public-profile-stats strong{font-size:23px}
  body.profile-page .profile-stats span,
  .public-profile-page .public-profile-stats span{font-size:12px}
  body.profile-page .profile-identity-card .profile-details-box{margin-top:12px;padding-bottom:16px}
  body.profile-page .profile-identity-card .profile-name-line h3{margin-inline-end:auto}
  .public-profile-page .public-profile-about,
  .public-profile-page .public-profile-settings,
  .public-profile-page .public-profile-equipment,
  .public-profile-page .public-profile-gallery,
  .public-profile-page .public-profile-stats-card{padding:18px;border-radius:15px}
  .public-profile-page .public-profile-stats{gap:8px;margin-top:14px}
}

/* A symmetric six-tooth cog keeps the settings action visually equal to its
   neighbouring edit and share controls without any path-specific offsets. */
body.profile-page #profileSettingsOpen>svg{transform:none}

/* Numeric guide controls use the same compact precision language as the
   preparation form: one clear value, a track, and small direct +/- steps. */
.calculator-sliders{display:grid;grid-template-columns:minmax(0,1fr);gap:11px;margin-top:16px}
.calculator-slider-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;color:#163547;font:800 14px/1.25 Assistant,Arial,sans-serif}
.calculator-slider-control output{color:#55707d;font:800 13px/1 Assistant,Arial,sans-serif;white-space:nowrap;direction:rtl}
.calculator-range-control{grid-column:1/-1;display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:8px;align-items:center;min-height:36px;padding:6px 8px;border:1px solid rgba(22,53,71,.2);border-radius:9px;background:rgba(255,253,249,.88);direction:ltr;overflow:visible}
.calculator-range-control input[type=range]{width:100%;min-width:0;height:22px;margin:0;padding:0;border:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;direction:ltr;touch-action:pan-y}
.calculator-range-control input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:#d9edf1}
.calculator-range-control input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:#d9edf1}
.calculator-range-control input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-6px;border:2px solid #fff;border-radius:50%;appearance:none;-webkit-appearance:none;background:#2b6e8f;box-shadow:0 1px 4px rgba(22,53,71,.28)}
.calculator-range-control input[type=range]::-moz-range-thumb{width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:#2b6e8f;box-shadow:0 1px 4px rgba(22,53,71,.28)}
.calculator-range-step{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid rgba(22,53,71,.18);border-radius:50%;background:#e3f0f0;color:#163547;font:900 19px/1 Rubik,Arial,sans-serif;cursor:pointer;touch-action:manipulation;transition:transform .18s ease,background-color .18s ease,color .18s ease}
.calculator-range-control>[data-calculator-range-step="-1"]{grid-column:1;justify-self:center}
.calculator-range-control>input[type=range]{grid-column:2;min-width:0}
.calculator-range-control>[data-calculator-range-step="1"]{grid-column:3;justify-self:center}
.calculator-range-step:hover,.calculator-range-step:focus-visible{background:#2b6e8f;color:#fff;transform:translateY(-1px);outline:0}
@media(max-width:700px){.calculator-sliders{grid-template-columns:1fr}.calculator-range-control{min-height:38px}}

/* Coffee Journey v2: latte art is a visual marker only. The member-facing
   nickname, points, bean balance and activity cards use one readable system. */
body.profile-page .profile-coffee-journey{
  padding:25px!important;
  border:1px solid rgba(255,255,255,.18)!important;
  background:linear-gradient(135deg,#0a1c25 0%,#163547 48%,#28627d 100%)!important;
  box-shadow:0 18px 38px rgba(10,28,37,.17)!important;
}
body.profile-page .profile-coffee-journey :is(h3,.eyebrow,.coffee-journey-progress-copy strong){color:#fff!important}
body.profile-page .profile-coffee-journey .eyebrow{color:#d6eeee!important}
.coffee-journey-heading{gap:16px!important;margin-bottom:0!important}
.coffee-journey-wallet{min-height:40px;padding:8px 12px;border-color:rgba(255,222,169,.66);background:rgba(255,255,255,.11);color:#ffd494;box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}
.coffee-journey-wallet b{font-size:19px}.coffee-journey-wallet span{color:#fff8ed;font-size:12px}
.coffee-journey-progress{margin-top:18px}.coffee-journey-progress-copy strong{letter-spacing:.01em;unicode-bidi:plaintext}.coffee-journey-progress-copy span{color:#e2f4f4;line-height:1.35}
.coffee-journey-activity{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}
.coffee-journey-activity>span{display:grid;gap:4px;min-width:0;padding:10px 8px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.075);text-align:center}
.coffee-journey-activity b{color:#fff;font:900 20px/1 Rubik,Arial,sans-serif}.coffee-journey-activity em{overflow:hidden;color:#d9eeee;font-size:11px;font-style:normal;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.coffee-journey-roast{position:relative;z-index:1;min-height:0;margin-top:14px;padding:13px 14px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.1)}
.coffee-journey-roast>span{display:block;color:#d7eeee;font-size:12px;font-weight:800}
.coffee-journey-roast-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:flex-start;gap:9px;margin-top:9px}
.coffee-journey-roast-item{display:grid;justify-items:center;gap:4px;color:#bed4d7;font-size:11px;font-weight:800;opacity:.48;filter:grayscale(.7)}
.coffee-journey-roast-item img{display:block;width:38px;height:38px;padding:3px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(255,255,255,.11);object-fit:cover}.coffee-journey-roast-item:nth-child(2) img{filter:hue-rotate(-14deg) saturate(.82)}.coffee-journey-roast-item:nth-child(4) img{filter:sepia(.2) saturate(1.24) brightness(.84)}.coffee-journey-roast-item:nth-child(5) img{filter:sepia(.48) saturate(1.3) brightness(.68)}
.coffee-journey-roast-item b{font-size:11px;font-weight:800}.coffee-journey-roast-item.is-logged{color:#fff1d8;opacity:1;filter:none}.coffee-journey-roast-item.is-logged img{border-color:rgba(255,213,155,.78);box-shadow:0 3px 10px rgba(0,0,0,.15)}
.coffee-journey-achievements{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.coffee-journey-achievement{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:62px;padding:9px;border:1px dashed rgba(255,255,255,.22);border-radius:12px;background:rgba(7,20,28,.14);color:#cfe0e3}
.coffee-journey-achievement i{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#cfe0e3}.coffee-journey-achievement svg{width:22px;height:22px}
.coffee-journey-achievement b,.coffee-journey-achievement span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coffee-journey-achievement b{color:inherit;font-size:13px;line-height:1.2}.coffee-journey-achievement span{margin-top:3px;color:inherit;font-size:11px;font-weight:700;opacity:.88}
.coffee-journey-achievement.is-earned{border-style:solid;border-color:rgba(255,213,155,.42);background:rgba(242,179,101,.15);color:#fff4df}.coffee-journey-achievement.is-earned i{border-color:rgba(255,213,155,.58);color:#ffd494;background:rgba(255,255,255,.08)}
.coffee-journey-achievement.is-next{border-style:solid;border-color:rgba(118,214,205,.66);background:rgba(103,195,187,.13);color:#f0ffff}.coffee-journey-achievement.is-next i{border-color:rgba(142,229,220,.76);background:rgba(105,204,194,.18);color:#bff6ef}.coffee-journey-achievement.is-next b::after{content:'הצעד הבא';display:inline-block;margin-inline-start:7px;padding:2px 5px;border-radius:999px;background:rgba(191,246,239,.15);color:#c8fcf7;font:800 9px/1 Assistant,Arial,sans-serif;vertical-align:middle}
.coffee-journey-formula{position:relative;z-index:1;margin-top:13px;border-top:1px solid rgba(255,255,255,.18);color:#d9eeee;font-size:12px;font-weight:700}.coffee-journey-formula summary{padding-top:11px;color:#fff7e9;cursor:pointer;font-weight:800}.coffee-journey-formula p{margin:8px 0 0;color:#d9eeee;line-height:1.55}
.public-profile-journey{border-color:rgba(22,53,71,.18);background:linear-gradient(135deg,#eff8f7,#fff8eb)}.public-coffee-journey-main strong{color:#163547!important}
@media(max-width:700px){
  body.profile-page .profile-coffee-journey{padding:18px!important}
  .coffee-journey-heading{align-items:flex-start!important;gap:9px!important}
  .coffee-journey-wallet{min-height:36px;gap:5px;padding:7px 9px}.coffee-journey-wallet b{font-size:17px}.coffee-journey-wallet span{font-size:11px}
  .coffee-journey-activity{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.coffee-journey-activity>span{padding:9px 7px}.coffee-journey-activity b{font-size:19px}
  .coffee-journey-achievements{grid-template-columns:1fr}.coffee-journey-achievement{min-height:57px}
  .coffee-journey-roast{padding:12px}.coffee-journey-roast-list{gap:5px}.coffee-journey-roast-item{font-size:10px}.coffee-journey-roast-item img{width:34px;height:34px}.coffee-journey-roast-item b{font-size:10px}.coffee-journey-formula{font-size:11px}
}

/* Coffee Journey owns the rich progression story, so the four quick figures
   stay semantic but compact. */
body.profile-page .profile-stats-card{padding:13px 16px!important;border-color:rgba(43,110,143,.14);border-radius:15px;background:rgba(237,245,244,.82);box-shadow:none}
body.profile-page .profile-stats-card .profile-card-heading{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.profile-page .profile-stats-card .profile-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0}
body.profile-page .profile-stats-card .profile-stats div{min-height:52px;padding:6px 5px;border:0;border-inline-start:1px solid rgba(43,110,143,.12);border-radius:0;background:transparent;box-shadow:none}
body.profile-page .profile-stats-card .profile-stats div:first-child{border-inline-start:0}
body.profile-page .profile-stats-card .profile-stats strong{font-size:21px}.profile-stats-card .profile-stats span{font-size:11px}
@media(max-width:700px){body.profile-page .profile-stats-card{padding:10px 8px!important}body.profile-page .profile-stats-card .profile-stats{gap:0}body.profile-page .profile-stats-card .profile-stats div{min-height:48px;padding:5px 3px}body.profile-page .profile-stats-card .profile-stats strong{font-size:18px}.profile-stats-card .profile-stats span{font-size:10px}}

/* The Coffee Journey is deliberately rewarding without exposing a formula.
   Each earned achievement has its own visual language instead of recycling a
   generic tools icon, and the desktop card gets enough scale to be useful. */
.coffee-journey-wallet svg{color:#8d4f28!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.28))}
.coffee-journey-wallet[role=button]{cursor:pointer;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.coffee-journey-wallet[role=button]:hover{transform:translateY(-1px);background:rgba(255,255,255,.18);border-color:rgba(255,225,181,.82)}.coffee-journey-wallet[role=button]:focus-visible{outline:3px solid rgba(255,213,155,.42);outline-offset:3px}
.profile-bean-wallet-dialog{width:min(520px,calc(100vw - 28px));max-width:none;padding:0;border:0;border-radius:22px;background:transparent;color:#163547}.profile-bean-wallet-dialog::backdrop{background:rgba(10,28,37,.52);backdrop-filter:blur(5px)}.profile-bean-wallet-card{position:relative;display:grid;gap:13px;padding:25px;border:1px solid rgba(10,28,37,.18);border-radius:22px;background:linear-gradient(145deg,#fffdf9,#f3e7d6);box-shadow:0 24px 70px rgba(10,28,37,.3);text-align:right}.profile-bean-wallet-card h2{margin:0;color:#163547;font:900 28px/1.08 Rubik,Arial,sans-serif}.profile-bean-wallet-intro{margin:0;color:#55707d;font:700 15px/1.45 Assistant,Arial,sans-serif}.profile-bean-wallet-close{position:absolute;top:13px;inset-inline-start:13px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(10,28,37,.16);border-radius:50%;background:rgba(255,255,255,.78);color:#163547;font:900 22px/1 Arial,sans-serif;cursor:pointer}.profile-journal-reflection{display:grid;gap:11px;padding:16px;border:1px solid rgba(10,28,37,.14);border-radius:15px;background:rgba(255,255,255,.72)}.profile-journal-reflection-price{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#163547;font:900 16px/1.2 Rubik,Arial,sans-serif}.profile-journal-reflection-price b{padding:5px 8px;border-radius:999px;background:#8d4f28;color:#fff8ed;font:900 13px/1 Assistant,Arial,sans-serif}.profile-journal-reflection p{margin:0;color:#355b6a;font:700 15px/1.48 Assistant,Arial,sans-serif}.profile-journal-reflection small{color:#60808a;font:700 13px/1.4 Assistant,Arial,sans-serif}.profile-journal-reflection .profile-primary-button{justify-self:start}.profile-journal-reflection.is-complete>span{color:#b96828;font:900 12px/1 Assistant,Arial,sans-serif}.profile-journal-reflection.is-complete h3{margin:0;color:#163547;font:900 20px/1.2 Rubik,Arial,sans-serif}.profile-journal-reflection.is-complete ul{display:grid;gap:5px;margin:0;padding-inline-start:18px;color:#355b6a;font:700 14px/1.4 Assistant,Arial,sans-serif}.profile-journal-reflection.is-complete strong{padding-top:10px;border-top:1px solid rgba(10,28,37,.12);color:#8d4f28;font:900 14px/1.4 Assistant,Arial,sans-serif}@media(max-width:700px){.profile-bean-wallet-dialog{width:calc(100vw - 16px);margin:auto 8px 8px}.profile-bean-wallet-card{gap:11px;padding:20px 16px;border-radius:19px}.profile-bean-wallet-card h2{font-size:24px}.profile-bean-wallet-intro,.profile-journal-reflection p{font-size:14px}.profile-journal-reflection{padding:13px}.profile-journal-reflection .profile-primary-button{width:100%;justify-content:center}}
.profile-presentation-packs{display:grid;gap:10px;margin-top:2px;padding-top:14px;border-top:1px solid rgba(10,28,37,.13)}.profile-presentation-packs h3{margin:0;color:#163547;font:900 18px/1.2 Rubik,Arial,sans-serif}.profile-presentation-packs>p{margin:0;color:#55707d;font:700 13px/1.42 Assistant,Arial,sans-serif}.profile-presentation-pack-grid{display:grid;gap:8px}.profile-presentation-pack{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:center;padding:12px;border:1px solid rgba(10,28,37,.14);border-radius:13px;background:rgba(255,255,255,.58)}.profile-presentation-pack strong{color:#163547;font:900 15px/1.2 Rubik,Arial,sans-serif}.profile-presentation-pack span{grid-column:1;color:#55707d;font:600 13px/1.35 Assistant,Arial,sans-serif}.profile-presentation-pack small{grid-column:2;grid-row:1 / span 2;align-self:center;padding:5px 8px;border-radius:999px;background:#dceee8;color:#285c4b;font:900 12px/1 Assistant,Arial,sans-serif}.profile-presentation-pack .profile-secondary-button{grid-column:2;grid-row:1 / span 2;min-height:34px;white-space:nowrap}.profile-presentation-pack.is-owned{border-color:rgba(70,127,100,.25)}@media(max-width:700px){.profile-presentation-pack{grid-template-columns:minmax(0,1fr);gap:7px}.profile-presentation-pack small,.profile-presentation-pack .profile-secondary-button{grid-column:1;grid-row:auto;justify-self:start}.profile-presentation-pack .profile-secondary-button{width:100%}}
.profile-bean-shelf-entry{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 14px;border:1px solid rgba(217,120,43,.28);border-radius:16px;background:linear-gradient(135deg,#fff8ed,#efd9b8);color:#163547;text-decoration:none;box-shadow:0 7px 18px rgba(109,53,31,.08);transition:transform .18s ease,box-shadow .18s ease}.profile-bean-shelf-entry:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(109,53,31,.13)}.profile-bean-shelf-entry>span:nth-child(2){display:grid;gap:3px;min-width:0}.profile-bean-shelf-entry strong{font:900 16px/1.15 Rubik,Arial,sans-serif}.profile-bean-shelf-entry small{color:#5e716f;font:700 12px/1.35 Assistant,Arial,sans-serif}.profile-bean-shelf-entry>b{padding:6px 9px;border-radius:999px;background:#754124;color:#fff9ed;font:900 12px/1 Assistant,Arial,sans-serif;white-space:nowrap}.profile-bean-shelf-entry-art{position:relative;display:grid;place-items:center;width:30px;height:39px;border-radius:50%;background:linear-gradient(135deg,#63321e,#b56a34 58%,#452116);transform:rotate(21deg);box-shadow:inset 3px 2px 4px rgba(255,231,191,.25),0 5px 9px rgba(70,31,16,.18)}.profile-bean-shelf-entry-art::after{content:"";width:2px;height:27px;border-radius:10px;background:rgba(255,236,205,.62);transform:rotate(-17deg)}@media(max-width:700px){.profile-bean-shelf-entry{grid-template-columns:36px minmax(0,1fr);padding:12px}.profile-bean-shelf-entry>b{grid-column:2;justify-self:start}.profile-bean-shelf-entry small{font-size:11px}}
.coffee-journey-activity small{display:block;overflow:hidden;color:#bcd9dd;font-size:10px;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.coffee-journey-achievement[data-achievement="cup"] i{background:rgba(229,159,83,.17);color:#ffd494}
.coffee-journey-achievement[data-achievement="recipe"] i{background:rgba(106,198,191,.17);color:#a9eee8}
.coffee-journey-achievement[data-achievement="station"] i{background:rgba(151,188,236,.17);color:#c5ddff}
.coffee-journey-achievement[data-achievement="dial"] i{background:rgba(210,163,235,.17);color:#ead4fb}
.coffee-journey-achievement[data-achievement="sunrise"] i{background:rgba(246,189,101,.2);color:#ffe1a7}
.coffee-journey-achievement[data-achievement="chat"] i{background:rgba(140,214,181,.16);color:#bbf1da}
.coffee-journey-reward-note{position:relative;z-index:1;margin:15px 0 0;padding:11px 13px;border-inline-start:3px solid rgba(255,213,155,.72);border-radius:0 10px 10px 0;background:rgba(255,255,255,.075);color:#e6f3f3;font-size:12px;font-weight:700;line-height:1.55}
@media(min-width:701px){
  body.profile-page .profile-coffee-journey{padding:32px!important}
  .coffee-journey-wallet{min-height:52px;gap:9px;padding:10px 16px;font-size:14px}
  .coffee-journey-wallet svg{width:25px;height:30px}.coffee-journey-wallet b{font-size:24px}.coffee-journey-wallet span{font-size:13px}
  .coffee-journey-progress{gap:15px;margin-top:22px}.coffee-journey-progress-copy strong{font-size:18px}.coffee-journey-progress-copy span{font-size:14px}.coffee-journey-progress i{height:9px}
  .coffee-journey-activity{gap:12px;margin-top:22px}.coffee-journey-activity>span{min-height:88px;gap:6px;padding:15px 12px;border-radius:13px}.coffee-journey-activity b{font-size:27px}.coffee-journey-activity em{font-size:13px}.coffee-journey-activity small{font-size:11px}
  .coffee-journey-roast{margin-top:20px;padding:17px 18px;border-radius:15px}.coffee-journey-roast>span{font-size:14px}.coffee-journey-roast-list{gap:12px;margin-top:13px}.coffee-journey-roast-item{gap:6px;font-size:12px}.coffee-journey-roast-item img{width:50px;height:50px}.coffee-journey-roast-item b{font-size:12px}
  .coffee-journey-achievements{gap:12px;margin-top:20px}.coffee-journey-achievement{grid-template-columns:48px minmax(0,1fr);gap:12px;min-height:82px;padding:14px;border-radius:14px}.coffee-journey-achievement i{width:48px;height:48px;border-radius:13px}.coffee-journey-achievement svg{width:28px;height:28px}.coffee-journey-achievement b{font-size:15px}.coffee-journey-achievement span{font-size:12px}
  .coffee-journey-reward-note{margin-top:18px;padding:13px 15px;font-size:14px}
}

/* The guide surface owns the viewport width. Its inner .coffee-hub keeps the
   same content rail as the rest of the site, including while the skeleton is
   mounted before the guide data arrives. */
#guides.guides-surface{width:100%;max-width:none;margin-inline:0;position:relative;isolation:isolate}
#guides.guides-surface>.coffee-hub{width:min(1120px,90vw);max-width:none;margin-inline:auto}
@media(max-width:700px){#guides.guides-surface>.coffee-hub{width:calc(100% - 32px)}}

/* Public profile refinement: use the same readable content rail as the
   private dashboard. The identity action stays next to the member name and
   the independent gallery uses a compact state instead of a blank grid. */
.public-profile-page .public-profile-identity,
.public-profile-page .public-profile-journey{
  width:min(900px,calc(100% - 32px));
  box-sizing:border-box;
  margin-inline:auto;
}
.public-profile-page .public-profile-identity h1{
  flex:0 1 auto;
  max-width:min(100%,32rem);
}
.public-profile-page .public-profile-name-line .profile-share-control{
  margin-inline-start:0;
}
.public-profile-page .public-profile-journey{
  margin-top:16px;
  padding:20px 22px;
  border:1px solid rgba(22,53,71,.14);
  border-radius:18px;
  background:linear-gradient(145deg,#fffefb 0%,#eff8f7 100%);
  box-shadow:0 12px 30px rgba(22,53,71,.075);
}
.public-profile-page .public-profile-gallery-empty{
  display:grid;
  place-items:center;
  min-height:112px;
  margin:0;
  border-style:dashed;
  background:linear-gradient(135deg,rgba(237,245,244,.88),rgba(255,253,249,.94));
}
.public-profile-page .public-profile-gallery-empty:not([hidden]){
  animation:publicProfileGalleryPulse 1.25s ease-in-out infinite alternate;
}
@keyframes publicProfileGalleryPulse{from{opacity:.68}to{opacity:1}}
@media(max-width:700px){
  .public-profile-page .public-profile-identity,
  .public-profile-page .public-profile-journey{width:calc(100% - 32px)}
  .public-profile-page .public-profile-journey{margin-top:14px;padding:17px}
  .public-profile-page .public-profile-gallery-empty{min-height:96px}
}
@media(prefers-reduced-motion:reduce){
  .public-profile-page .public-profile-gallery-empty:not([hidden]){animation:none}
}

/* Profile identity uses the same visual language as the coffee journey: an
   art marker beside the name, never raw points or wallet numbers. */
.profile-level-badge{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#163547;font:800 12px/1 Assistant,Arial,sans-serif;white-space:nowrap}
.profile-level-badge img{display:block;width:28px;height:28px;flex:0 0 28px;border:1px solid rgba(43,110,143,.22);border-radius:50%;background:#fffdf9;object-fit:contain;box-shadow:0 2px 7px rgba(22,53,71,.12)}
body.profile-page .profile-identity-card .profile-name-line .profile-level-badge{margin-inline:1px 2px}
.public-profile-page .public-profile-name-line .profile-level-badge{margin-inline:0 2px}

/* Expandable personal lists use the same unambiguous +/- control as the
   preparation cards.  The symbol itself changes with aria-expanded. */
.profile-preset-disclosure,.profile-equipment-disclosure{display:inline-grid!important;place-items:center;box-sizing:border-box;width:24px;height:24px;aspect-ratio:1/1;flex:0 0 24px!important;padding:0!important;margin-inline-start:8px;border:1px solid rgba(43,110,143,.24);border-radius:50%;background:#fffdf9;color:#2b6e8f;font:900 19px/1 Rubik,Arial,sans-serif;line-height:1;vertical-align:middle;transition:background .18s ease,color .18s ease,border-color .18s ease}

/* The recipe amounts are supporting values, not the main calculator result. */
#calculatorDryAmount,#calculatorWaterAmount{font-size:clamp(1.05rem,1.7vw,1.35rem)!important;line-height:1.15}
.profile-preset-row:hover .profile-preset-disclosure,.profile-equipment-row.is-expandable:hover .profile-equipment-disclosure,.profile-preset-row.is-expanded .profile-preset-disclosure,.profile-equipment-row.is-expanded .profile-equipment-disclosure{border-color:#2b6e8f;background:#e3f0f0;color:#163547}
.profile-equipment-copy>strong{display:flex;align-items:center;justify-content:space-between;gap:8px}

/* Give the journey artwork enough room to read as actual latte art on wide
   screens, while the small-screen version relies on the image alt/title and
   does not wrap five labels into a cramped row. */
.coffee-journey-achievements-more{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;min-height:42px;margin-top:12px;border:1px solid rgba(255,213,155,.55);border-radius:12px;background:rgba(255,255,255,.1);color:#fff5e5;font:800 14px/1 Assistant,Arial,sans-serif;cursor:pointer;transition:transform .2s ease,background .2s ease}
.coffee-journey-achievements-more:hover{transform:translateY(-1px);background:rgba(255,255,255,.16)}
.coffee-journey-achievement i img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}
.coffee-journey-achievement[data-achievement^="roast-"] i{overflow:hidden;background:#fff7e8}
@media(min-width:701px){
  .coffee-journey-cups{grid-template-columns:repeat(10,minmax(0,60px));gap:10px}
  .coffee-journey-cup{width:min(100%,60px)}
  .coffee-journey-roast-list{gap:16px}
  .coffee-journey-roast-item img{width:68px;height:68px;padding:4px}
  .coffee-journey-roast-item b{font-size:13px}
  .coffee-journey-achievement i{overflow:hidden}
}
@media(max-width:700px){
  .coffee-journey-roast-item b{display:none}
  /* Five roast stages deliberately fill the available row. Their labels are
     hidden on phones, so the artwork can become the clear, full-width cue. */
  .coffee-journey-roast-list{justify-items:stretch;gap:6px}
  .coffee-journey-roast-item{width:100%;justify-items:stretch}
  .coffee-journey-roast-item img{width:100%;height:auto;aspect-ratio:1;min-width:0;padding:3px}
}

/* The chart reserves only the space that the right-side metric values need;
   the useful plot starts closer to the left edge. */
@media(min-width:701px){.profile-analytics-chart{padding-inline-start:0}.profile-analytics-panel .profile-analytics-y-label{font-size:12px!important}}
@media(max-width:700px){
  .profile-analytics-chart{padding-inline:0!important}
  /* On a phone the axes are the primary reading aid. The controls and
     average strip stay deliberately quieter than the plotted numbers. */
  .profile-analytics-panel .profile-analytics-y-label{font-size:26px!important;font-weight:900!important}
  .profile-analytics-panel .profile-analytics-x-label{font-size:18px!important}
  .profile-analytics-controls{gap:6px;margin-top:12px;padding:8px 0}
  .profile-analytics-metric-toggles,.profile-analytics-range{gap:5px}
  .profile-analytics-toggle,.profile-analytics-range-button{min-height:28px;padding:4px 7px;font-size:10px}
  .profile-analytics-swatch{width:7px;height:7px}
  .profile-analytics-summary{gap:8px 10px;margin:12px 0 7px}
  .profile-analytics-summary-title{font-size:.68rem}
  .profile-analytics-legend-item{gap:4px;font-size:.7rem;padding-inline-start:6px}
  .profile-analytics-legend-value{font-size:.82rem}
}

/* The settings action is a centred three-slider icon, matching the adjacent
   round edit/share controls instead of a decorative cog. */
body.profile-page .profile-settings-open svg{width:19px!important;height:19px!important;stroke-width:1.9!important}
body.profile-page .profile-settings-open svg circle{fill:#fffdf9;stroke:currentColor}

/* Final profile density pass: the identity stays flat, names never leave the
   avatar row on small phones, and the public read-only summary earns only the
   space its two metrics and journey snapshot actually need. */
body.profile-page .profile-card.profile-identity-card{box-shadow:none!important}
@media(max-width:420px){
  body.profile-page .profile-identity-card .profile-name-line{flex-wrap:nowrap!important}
  body.profile-page .profile-identity-card .profile-name-line h3{flex-basis:auto!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
.public-profile-page .public-profile-stats-card{margin-top:16px!important;padding:14px 18px!important}
.public-profile-page .public-profile-stats-card .profile-card-heading{display:none}
.public-profile-page .public-profile-stats{display:flex!important;align-items:stretch;justify-content:flex-start;gap:9px;margin:0!important}
.public-profile-page .public-profile-stats div{min-width:104px;min-height:54px!important;padding:8px 12px!important}
.public-profile-page .public-profile-stats strong{font-size:21px!important}
.public-profile-page .public-profile-journey{margin-top:12px!important;padding:14px 18px!important;gap:10px!important}
.public-profile-page .public-coffee-journey-main{gap:10px!important}
.public-profile-page .public-coffee-journey-main>img{width:42px!important;height:42px!important}
.public-profile-page .public-coffee-journey-badges{margin-top:8px!important;gap:6px!important}

/* Guide precision controls are a single unbroken rail: decrement, slider,
   increment. The redundant freshness aside is held back until it can offer
   personal roast-date data rather than repeat the main guide. */
#guides .calculator-range-control{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important}
#guides .calculator-range-control .calculator-range-step{flex:0 0 32px}
#guides .calculator-range-control input[type=range]{flex:1 1 auto!important;min-width:0!important}
#guides .freshness-card{display:none!important}
#guides .coffee-tools{grid-template-columns:minmax(0,840px)!important;justify-content:center}

/* Keep the guide and calculator in the same calm reading order on every
   viewport: guide first, calculator beneath it. This mirrors the clearer
   mobile flow instead of squeezing unrelated tasks into desktop columns. */
#guides.guides-surface>.coffee-hub{display:block}
#guides .guide-card{
  width:min(840px,100%);
  max-width:none;
  min-height:0;
  margin-inline:auto;
}
#guides :is(.section-heading,.machine-picker,.guide-level-picker){
  width:min(840px,100%);
  max-width:none;
  margin-inline:auto;
}
#guides :is(.machine-picker,.guide-level-picker){justify-content:flex-start}
#guides .coffee-tools{
  grid-template-columns:minmax(0,840px)!important;
  width:min(840px,100%);
  min-width:0;
  margin:24px auto 0;
  justify-content:center;
}
#guides .calculator-card{min-height:0;height:auto}
@media(max-width:700px){
  #guides .coffee-tools{grid-template-columns:minmax(0,1fr)!important}
}

/* Mobile analytics prioritises actual axis values over controls and summary
   decoration. These overrides are intentionally last so SVG labels win over
   inherited chart styles at every narrow breakpoint. */
@media(max-width:700px){
  .profile-analytics-panel .profile-analytics-y-label{font-size:29px!important;font-weight:900!important}
  .profile-analytics-controls{gap:4px!important;margin-top:9px!important;padding:5px 0!important}
  .profile-analytics-toggle,.profile-analytics-range-button{min-height:25px!important;padding:3px 6px!important;font-size:9px!important}
  .profile-analytics-summary{gap:6px 8px!important;margin:9px 0 5px!important}
  .profile-analytics-summary-title{font-size:.62rem!important}
  .profile-analytics-legend-item{gap:3px!important;font-size:.64rem!important;padding-inline-start:4px!important}
  .profile-analytics-legend-value{font-size:.74rem!important}
  .public-profile-page .public-profile-stats-card{padding:12px 14px!important}
  .public-profile-page .public-profile-stats div{min-width:0;flex:1 1 0;min-height:50px!important;padding:7px 8px!important}
  .public-profile-page .public-profile-journey{padding:12px 14px!important}
}

/* The dedicated archive needs its own page title; the compact landing-gallery
   section intentionally remains image-first and does not show this header. */
.gallery-page-heading{margin:0 0 20px;padding-bottom:13px;border-bottom:1px solid rgba(22,53,71,.16)}
.gallery-page-heading h1{margin:0;color:#163547;font:900 clamp(30px,4vw,48px)/1 Rubik,Arial,sans-serif;letter-spacing:-.065em}
body.gallery-page #archive{padding-top:34px}
@media(max-width:700px){.gallery-page-heading{margin-bottom:15px;padding-bottom:10px}.gallery-page-heading h1{font-size:30px}body.gallery-page #archive{padding-top:22px}}

/* Make the daily posting streak unmistakable: a calendar check, explicit
   coffee-streak copy, and a quiet one-time explanation for new members. */
.site-header .header-actions{position:relative}
.site-header .header-daily-streak{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-width:104px;height:42px;padding:0 12px;border:1px solid rgba(10,28,37,.22);border-radius:999px;background:#fffdf9;color:#163547;box-shadow:0 4px 10px rgba(10,28,37,.08);font-family:Rubik,Arial,sans-serif;font-weight:900;line-height:1;cursor:pointer;isolation:isolate;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.site-header .header-daily-streak[hidden]{display:none!important}.site-header .header-daily-streak:hover{transform:translateY(-1px);border-color:rgba(217,120,43,.72);box-shadow:0 7px 16px rgba(10,28,37,.12)}.site-header .header-daily-streak:focus-visible{outline:3px solid rgba(217,120,43,.3);outline-offset:3px}.header-daily-streak-icon{display:block;flex:0 0 auto;width:20px;height:20px;overflow:visible;filter:drop-shadow(0 2px 1px rgba(217,120,43,.18))}.header-daily-streak-copy{display:grid;gap:2px;min-width:0;text-align:right}.header-daily-streak-label{color:#163547;font-family:Assistant,Arial,sans-serif;font-size:11px;font-weight:900;line-height:1;white-space:nowrap}.header-daily-streak-count{display:flex;align-items:baseline;gap:3px;direction:rtl;color:#60808a;font-family:Assistant,Arial,sans-serif;font-size:11px;font-weight:800;line-height:1;white-space:nowrap}.header-daily-streak b{display:block;color:#163547;font-family:Rubik,Arial,sans-serif;font-size:14px;line-height:1}.header-daily-streak-word{display:block}.header-daily-streak-spark{position:absolute;top:-6px;right:8px;z-index:-1;width:12px;height:12px;border-radius:50%;background:#ffd167;opacity:0;transform:scale(.3)}.header-daily-streak-spark:before,.header-daily-streak-spark:after{content:"";position:absolute;inset:5px -5px auto;width:22px;height:2px;border-radius:2px;background:#ffd167}.header-daily-streak-spark:after{transform:rotate(90deg)}.header-daily-streak.is-playing .header-daily-streak-icon{animation:header-daily-streak-calendar .55s cubic-bezier(.2,1.55,.42,1) both}.header-daily-streak.is-playing b{animation:header-daily-streak-number .55s .06s cubic-bezier(.2,1.45,.42,1) both}.header-daily-streak.is-milestone .header-daily-streak-spark{animation:header-daily-streak-spark .68s ease-out both}@keyframes header-daily-streak-calendar{0%{transform:scale(.82) rotate(-7deg)}52%{transform:scale(1.18) rotate(4deg)}100%{transform:scale(1) rotate(0)}}@keyframes header-daily-streak-number{0%{transform:translateY(3px);opacity:.2}60%{transform:translateY(-2px);opacity:1}100%{transform:none}}@keyframes header-daily-streak-spark{0%{opacity:0;transform:scale(.2) rotate(0)}45%{opacity:1;transform:scale(1.12) rotate(35deg)}100%{opacity:0;transform:scale(1.8) rotate(90deg)}}
.header-daily-streak-tip{position:absolute;z-index:80;top:calc(100% + 9px);inset-inline-end:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;width:min(270px,calc(100vw - 24px));padding:12px 13px;border:1px solid rgba(10,28,37,.18);border-radius:14px;background:rgba(255,253,249,.98);color:#163547;box-shadow:0 14px 28px rgba(10,28,37,.18);font:700 13px/1.35 Assistant,Arial,sans-serif;opacity:0;transform:translateY(-5px);transition:opacity .18s ease,transform .18s ease}.header-daily-streak-tip[hidden]{display:none!important}.header-daily-streak-tip.is-visible{opacity:1;transform:translateY(0)}.header-daily-streak-tip strong{font:900 14px/1 Rubik,Arial,sans-serif}.header-daily-streak-tip span{grid-column:1;grid-row:2;color:#55707d}.header-daily-streak-tip button{grid-column:2;grid-row:1;display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:#eef5f5;color:#163547;font:900 18px/1 Arial;cursor:pointer}.header-daily-streak-tip button:hover{background:#f3dfc5}
@media(max-width:700px){.site-header .header-daily-streak{gap:5px;min-width:66px;width:auto;height:42px;padding:0 8px}.header-daily-streak-icon{width:18px;height:18px}.header-daily-streak-label{font-size:9px}.header-daily-streak-count{gap:2px;font-size:9px}.header-daily-streak b{font-size:13px}.header-daily-streak-tip{inset-inline-end:0;width:min(260px,calc(100vw - 20px))}}
@media(prefers-reduced-motion:reduce){.site-header .header-daily-streak,.site-header .header-daily-streak *{animation:none!important;transition:none!important}}

/* Private daily coffee calendar. It intentionally lives in the header flow so
   one compact component works equally well on a narrow phone and desktop. */
.daily-streak-calendar-dialog{width:min(560px,calc(100vw - 24px));max-width:none;max-height:min(760px,calc(100dvh - 24px));margin:auto;padding:0;border:0;background:transparent;overflow:visible;color:#163547}.daily-streak-calendar-dialog::backdrop{background:rgba(10,28,37,.42);backdrop-filter:blur(3px)}.daily-streak-calendar-card{position:relative;display:grid;gap:15px;width:100%;padding:24px;border:1px solid rgba(10,28,37,.2);border-radius:24px;background:linear-gradient(145deg,#fffdf9,#f4eee4);box-shadow:0 24px 70px rgba(10,28,37,.26);font-family:Assistant,Arial,sans-serif}.daily-streak-calendar-close{position:absolute;top:14px;inset-inline-start:14px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(10,28,37,.2);border-radius:50%;background:rgba(255,255,255,.76);color:#163547;font:900 22px/1 Arial;cursor:pointer;transition:transform .2s ease,background .2s ease}.daily-streak-calendar-close:hover{transform:translateY(-1px);background:#fff}.daily-streak-calendar-heading{padding-inline-end:42px;text-align:right}.daily-streak-calendar-heading .eyebrow{color:#d9782b;font:900 12px/1 Rubik,Arial,sans-serif}.daily-streak-calendar-heading h2{margin:5px 0 3px;color:#163547;font:900 clamp(23px,4vw,30px)/1.1 Rubik,Arial,sans-serif}.daily-streak-calendar-heading p,.daily-streak-calendar-note{margin:0;color:#55707d;font:700 14px/1.45 Assistant,Arial,sans-serif}.daily-streak-calendar-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.daily-streak-calendar-summary>span{display:grid;gap:3px;min-height:58px;padding:9px 7px;border:1px solid rgba(10,28,37,.12);border-radius:13px;background:rgba(255,255,255,.66);color:#60808a;text-align:center;font:800 12px/1.1 Assistant,Arial,sans-serif}.daily-streak-calendar-summary b{color:#163547;font:900 20px/1 Rubik,Arial,sans-serif}.daily-streak-calendar-summary-skeleton{min-height:58px!important;border:0!important;background:linear-gradient(90deg,#e7ddd0 20%,#faf6ef 44%,#e7ddd0 68%)!important;background-size:220% 100%!important;animation:daily-streak-calendar-shimmer 1.15s linear infinite}.daily-streak-calendar-toolbar{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px}.daily-streak-calendar-toolbar strong{text-align:center;color:#163547;font:900 17px/1.15 Rubik,Arial,sans-serif}.daily-streak-calendar-nav{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid rgba(10,28,37,.16);border-radius:50%;background:#fffdf9;color:#163547;font:900 24px/1 Arial;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.daily-streak-calendar-nav:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 12px rgba(10,28,37,.12)}.daily-streak-calendar-nav:disabled{opacity:.35;cursor:default}.daily-streak-calendar-week,.daily-streak-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;direction:rtl}.daily-streak-calendar-week{padding-inline:2px;color:#60808a;text-align:center;font:900 12px/1 Rubik,Arial,sans-serif}.daily-streak-calendar-grid{min-height:247px}.daily-streak-calendar-day{position:relative;display:grid;place-items:center;aspect-ratio:1;width:100%;min-width:0;overflow:hidden;padding:0;border:1px solid rgba(10,28,37,.1);border-radius:12px;background:#fffaf3 center/cover no-repeat;color:#163547;font:900 13px/1 Rubik,Arial,sans-serif}.daily-streak-calendar-day:not(.is-empty):not(.is-loading){box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}button.daily-streak-calendar-day{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}button.daily-streak-calendar-day:hover{transform:translateY(-2px);box-shadow:0 6px 13px rgba(10,28,37,.19)}.daily-streak-calendar-day.is-empty{visibility:hidden}.daily-streak-calendar-day.is-posted:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,28,37,.55),transparent 65%)}.daily-streak-calendar-day.is-archived{border-color:rgba(217,120,43,.45);background:#efe5d6}.daily-streak-calendar-day.is-archived:after{content:"";position:absolute;inset:0;background:rgba(255,253,249,.16)}.daily-streak-calendar-day.is-earned{border-color:rgba(217,120,43,.34);background:linear-gradient(135deg,#fff9ef,#f0dcc0)}.daily-streak-calendar-day.is-earned>span{font-size:19px;filter:drop-shadow(0 1px 0 #fff)}.daily-streak-calendar-day img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.daily-streak-calendar-day small{position:absolute;z-index:1;right:5px;bottom:4px;color:#163547;text-shadow:0 1px 2px rgba(255,255,255,.82);font:900 10px/1 Rubik,Arial,sans-serif}.daily-streak-calendar-day.is-posted small{color:#fff;text-shadow:0 1px 3px rgba(10,28,37,.72)}.daily-streak-calendar-day.is-loading{border:0;background:linear-gradient(90deg,#e7ddd0 20%,#faf6ef 44%,#e7ddd0 68%);background-size:220% 100%;animation:daily-streak-calendar-shimmer 1.15s linear infinite}.daily-streak-calendar-note{padding-top:1px;text-align:right;font-size:12px}.daily-streak-calendar-dialog button:focus-visible{outline:3px solid rgba(217,120,43,.34);outline-offset:2px}@keyframes daily-streak-calendar-shimmer{to{background-position:-220% 0}}@media(max-width:700px){.daily-streak-calendar-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.daily-streak-calendar-card{gap:12px;padding:19px 14px;border-radius:19px}.daily-streak-calendar-heading h2{font-size:24px}.daily-streak-calendar-heading p{font-size:13px}.daily-streak-calendar-summary{gap:5px}.daily-streak-calendar-summary>span{min-height:52px;padding:8px 3px;font-size:11px}.daily-streak-calendar-summary b{font-size:18px}.daily-streak-calendar-week,.daily-streak-calendar-grid{gap:4px}.daily-streak-calendar-week{font-size:11px}.daily-streak-calendar-grid{min-height:216px}.daily-streak-calendar-day{border-radius:9px;font-size:12px}.daily-streak-calendar-day small{right:4px;bottom:3px;font-size:9px}.daily-streak-calendar-note{font-size:11px}}@media(prefers-reduced-motion:reduce){.daily-streak-calendar-card,.daily-streak-calendar-close,.daily-streak-calendar-nav,.daily-streak-calendar-day,.daily-streak-calendar-summary-skeleton,.daily-streak-calendar-day.is-loading{animation:none!important;transition:none!important}}

/* Calendar navigation is rebuilt with inline SVGs so both controls share one exact geometry. */
.daily-streak-calendar-nav{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;min-height:38px;padding:0;font-size:0;line-height:0;transform:translateZ(0)}.daily-streak-calendar-nav:before{content:none}.daily-streak-calendar-nav-icon{display:block;flex:none;width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.daily-streak-calendar-card{direction:ltr;text-align:start}.daily-streak-calendar-card .daily-streak-calendar-heading{padding-inline-start:42px;padding-inline-end:0;text-align:start}.daily-streak-calendar-card .daily-streak-calendar-note{right:auto;text-align:start}.daily-streak-calendar-card[dir=rtl]{direction:rtl;text-align:right}.daily-streak-calendar-card[dir=ltr]{direction:ltr;text-align:left}.daily-streak-calendar-card[dir=ltr] .daily-streak-calendar-summary>span{justify-items:end;text-align:left}.daily-streak-calendar-card[dir=ltr] .daily-streak-calendar-saver,.daily-streak-calendar-card[dir=ltr] .daily-streak-calendar-saver em{text-align:left}.daily-streak-calendar-toolbar{direction:ltr}.daily-streak-calendar-toolbar strong{grid-column:2;text-align:center}.daily-streak-calendar-card[dir=ltr] .daily-streak-calendar-toolbar strong{direction:ltr}.daily-streak-calendar-card[dir=rtl] .daily-streak-calendar-toolbar strong{direction:rtl}.daily-streak-calendar-card[dir=ltr] [data-calendar-prev]{grid-column:1}.daily-streak-calendar-card[dir=ltr] [data-calendar-next]{grid-column:3}.daily-streak-calendar-card[dir=rtl] [data-calendar-next]{grid-column:1}.daily-streak-calendar-card[dir=rtl] [data-calendar-prev]{grid-column:3}.daily-streak-calendar-card[dir=ltr] .daily-streak-calendar-week,.daily-streak-calendar-card[dir=ltr] .daily-streak-calendar-grid{direction:ltr}.daily-streak-calendar-card[dir=rtl] .daily-streak-calendar-week,.daily-streak-calendar-card[dir=rtl] .daily-streak-calendar-grid{direction:rtl}.daily-streak-calendar-day small{right:auto;inset-inline-end:5px}@media(max-width:700px){.daily-streak-calendar-day small{right:auto;inset-inline-end:4px}}

/* Profile shell: identity details remain beside the avatar on every viewport;
   the edit circle deliberately crosses the portrait edge by half its size. */
body.profile-page .profile-avatar-edit{top:calc(var(--profile-avatar-edit-size) * -.5)}
body.profile-page .profile-identity-card .profile-identity,
body.profile-page .profile-identity-card .profile-name-line{flex-wrap:nowrap!important}
body.profile-page .profile-identity-card .profile-identity-copy{min-width:0;padding-top:calc(var(--profile-avatar-size) * .6)!important}
body.profile-page .profile-identity-card .profile-name-line h3{min-width:0;flex:1 1 auto!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Align the public identity row with the private profile: beside the avatar,
   directly below the cover edge on both mobile and desktop. */
.public-profile-page .public-profile-identity-copy{padding-top:calc(var(--public-avatar-size) * .6)!important}
@media(max-width:700px){.profile-analytics-panel{padding-inline-end:8px}.profile-analytics-panel .profile-analytics-y-label{transform:translateX(-3px)}}

/* The public overview is one concise card: the two social totals introduce
   the member's Coffee Journey rather than consuming two separate panels. */
.public-profile-page .public-profile-overview-card{display:grid;gap:0;margin-top:16px!important;padding:18px 20px!important}
.public-profile-page .public-profile-overview-card .profile-card-heading{display:none!important}
.public-profile-page .public-profile-overview-card .public-profile-stats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0!important}
.public-profile-page .public-profile-overview-card .public-profile-stats div{min-width:0;min-height:58px!important;padding:9px 12px!important}
.public-profile-page .public-profile-overview-card .public-profile-journey{width:auto!important;margin:16px 0 0!important;padding:16px 0 0!important;border:0!important;border-top:1px solid rgba(22,53,71,.13)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
@media(max-width:700px){.public-profile-page .public-profile-overview-card{padding:14px!important}.public-profile-page .public-profile-overview-card .public-profile-stats{gap:8px}.public-profile-page .public-profile-overview-card .public-profile-stats div{min-height:52px!important;padding:8px!important}.public-profile-page .public-profile-overview-card .public-profile-journey{margin-top:13px!important;padding-top:13px!important}}

/* The private identity has four independent visual layers: cover, overlapping
   avatar, name, then actions/About.  Reserve the avatar's lower extent in
   normal flow rather than counteracting its translation with a negative
   margin—those offsets were what allowed names, actions and About to overlap. */
body.profile-page .profile-identity-card{--profile-avatar-size:161px}
body.profile-page .profile-identity-card .profile-identity{
  position:relative!important;
  z-index:5;
  display:block!important;
  min-height:calc(var(--profile-avatar-size) * .6 + 8px);
  margin:0 auto!important;
  padding:0!important;
  direction:rtl;
}
body.profile-page .profile-identity-card .profile-avatar-wrap{
  position:absolute!important;
  z-index:6;
  inset-inline-start:0;
  top:calc(var(--profile-avatar-size) * -.6);
  transform:none!important;
}
body.profile-page .profile-identity-card .profile-identity-copy{
  display:flex;
  min-width:0;
  min-height:44px;
  margin-inline-start:calc(var(--profile-avatar-size) + 16px);
  padding-top:8px!important;
  align-items:flex-start;
}
body.profile-page .profile-identity-card .profile-name-line{
  min-height:36px;
  align-items:center;
}
body.profile-page .profile-identity-card .profile-identity-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:36px;
  gap:8px;
  width:min(1120px,calc(100% - 32px));
  margin:12px auto 0!important;
  padding-inline-start:calc(var(--profile-avatar-size) + 16px);
  direction:rtl;
}
body.profile-page .profile-identity-card .profile-identity-actions :is(.profile-inline-edit,.profile-inline-share){
  display:inline-grid;
  place-items:center;
  flex:0 0 36px;
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  margin:0;
  padding:0;
}
body.profile-page .profile-identity-card .profile-details-box{margin-top:14px!important}
@media(max-width:700px){
  body.profile-page .profile-identity-card{--profile-avatar-size:104px}
  body.profile-page .profile-identity-card .profile-identity{min-height:calc(var(--profile-avatar-size) * .6 + 8px)}
  body.profile-page .profile-identity-card .profile-identity-copy{min-height:36px;margin-inline-start:calc(var(--profile-avatar-size) + 12px);padding-top:5px!important}
  body.profile-page .profile-identity-card .profile-identity-actions{gap:7px;margin-top:10px!important;padding-inline-start:calc(var(--profile-avatar-size) + 12px)}
}

/* Profile identity layout v3: the portrait overlaps the cover, while the
   name and its actions form one compact, ordinary-flow unit beside it.  This
   leaves the About surface in its own row and prevents the former absolute /
   margin offsets from crossing each other at narrow widths. */
body.profile-page .profile-identity-card{
  --profile-avatar-size:161px;
}
body.profile-page .profile-identity-card .profile-identity{
  position:relative!important;
  z-index:5;
  display:block!important;
  min-height:calc(var(--profile-avatar-size) * .6 + 62px);
  width:min(1120px,calc(100% - 32px));
  margin:0 auto!important;
  padding:0!important;
  direction:rtl;
}
body.profile-page .profile-identity-card .profile-avatar-wrap{
  position:absolute!important;
  z-index:6;
  inset-inline-start:0;
  top:calc(var(--profile-avatar-size) * -.6);
  transform:none!important;
}
body.profile-page .profile-identity-card .profile-identity-copy{
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  gap:10px;
  min-width:0;
  min-height:0;
  margin:0!important;
  margin-inline-start:calc(var(--profile-avatar-size) + 18px)!important;
  padding:8px 0 0!important;
}
body.profile-page .profile-identity-card .profile-name-line{
  display:flex!important;
  align-items:center!important;
  min-height:36px;
  width:100%;
  margin:0!important;
  padding:0!important;
}
body.profile-page .profile-identity-card .profile-name-line h3{
  min-width:0;
  margin:0!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.profile-page .profile-identity-card .profile-identity-copy .profile-identity-actions{
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-height:36px;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  direction:rtl;
}
body.profile-page .profile-identity-card .profile-identity-copy .profile-identity-actions :is(.profile-inline-edit,.profile-inline-share){
  display:inline-grid;
  place-items:center;
  flex:0 0 36px;
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  margin:0;
  padding:0;
}
body.profile-page .profile-identity-card .profile-details-box{
  width:min(1120px,calc(100% - 32px));
  margin:14px auto 0!important;
  padding:0 0 20px!important;
}
body.profile-page .profile-identity-card .profile-details-box .profile-about-summary{
  min-height:0;
}
@media(max-width:700px){
  body.profile-page .profile-identity-card{--profile-avatar-size:104px}
  body.profile-page .profile-identity-card .profile-identity{
    min-height:calc(var(--profile-avatar-size) * .6 + 58px);
    width:calc(100% - 28px);
  }
  body.profile-page .profile-identity-card .profile-identity-copy{
    gap:8px;
    margin-inline-start:calc(var(--profile-avatar-size) + 12px)!important;
    padding-top:5px!important;
  }
  body.profile-page .profile-identity-card .profile-identity-copy .profile-identity-actions{gap:7px}
  body.profile-page .profile-identity-card .profile-details-box{
    width:calc(100% - 28px);
    margin-top:10px!important;
    padding-bottom:16px!important;
  }
}

/* Keep the private identity surface visually flat and let About begin directly
   after the name/actions row. Earlier profile revisions reserved extra avatar
   clearance after the content had already cleared it, which looked like an
   empty strip above About. */
body.profile-page .profile-card.profile-identity-card,
body.profile-page .profile-card.profile-identity-card::before,
body.profile-page .profile-card.profile-identity-card::after{
  box-shadow:none!important;
  filter:none!important;
}
body.profile-page .profile-identity-card .profile-identity{
  min-height:max(calc(var(--profile-avatar-size) * .6 + 8px),92px)!important;
}
body.profile-page .profile-identity-card .profile-details-box{
  margin-top:0!important;
}
@media(max-width:700px){
  body.profile-page .profile-identity-card .profile-identity{
    min-height:max(calc(var(--profile-avatar-size) * .6 + 8px),80px)!important;
  }
  body.profile-page .profile-identity-card .profile-identity-copy .profile-identity-actions{
    justify-content:flex-end;
    gap:7px;
  }
  body.profile-page .profile-identity-card .profile-details-box{
    margin-top:12px!important;
  }
}

/* Upload keeps the core machine/grinder fields together, then introduces the
   optional cup-affecting tools as a clearly labelled second subsection. */
.upload-equipment-tools-section{
  grid-column:1/-1;
  display:grid;
  gap:12px;
  margin-top:8px;
  padding-top:16px;
  border-top:1px solid rgba(22,53,71,.14);
}
.upload-equipment-tools-heading{display:grid;gap:4px}
.upload-equipment-tools-heading h3{margin:0;color:#163547;font:800 18px/1.2 Rubik,Assistant,Arial,sans-serif}
.upload-equipment-tools-heading p{margin:0;color:#55707d;font:600 14px/1.45 Assistant,Arial,sans-serif}
.upload-equipment-tools-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.upload-equipment-tools-section .optional-equipment-tools{grid-column:1/-1;padding-top:0}

/* This identity surface is intentionally flush with the page backdrop. Do not
   let the shared card elevation reintroduce a right-side cast. */
.profile-card.profile-identity-card{box-shadow:none!important;filter:none!important}
@media(max-width:700px){.upload-equipment-tools-fields{grid-template-columns:1fr}.upload-equipment-tools-heading h3{font-size:17px}}

/* The private profile area beneath the cover is a single readable surface.
   Keeping the cover full-bleed while grouping identity and About in this
   responsive card gives the profile a clear second level without changing
   the existing content order or avatar overlap. */
body.profile-page .profile-identity-card .profile-identity-lower{
  position:relative;
  z-index:2;
   width:min(var(--profile-content-max-width,1120px),100%);
  margin-inline:auto;
   padding:40px 24px 28px;
  border:1px solid rgba(22,53,71,.14);
  border-radius:20px;
   background:rgba(255,255,255,.48)!important;
   -webkit-backdrop-filter:blur(18px) saturate(1.12);
   backdrop-filter:blur(18px) saturate(1.12);
  box-shadow:0 12px 30px rgba(22,53,71,.075);
  box-sizing:border-box;
}
body.profile-page .profile-identity-card > .profile-cover{
  position:relative;
  z-index:1;
}
body.profile-page .profile-identity-card .profile-identity-lower .profile-avatar-wrap{
  z-index:8!important;
}
body.profile-page .profile-identity-card .profile-identity-lower > .profile-identity,
body.profile-page .profile-identity-card .profile-identity-lower > .profile-details-box{
  position:relative;
  z-index:3;
  width:100%;
  margin-inline:auto;
  box-sizing:border-box;
}
body.profile-page .profile-identity-card .profile-identity-lower > .profile-details-box{
  margin-top:14px!important;
  padding-bottom:0!important;
}
@media(max-width:700px){
  body.profile-page .profile-identity-card .profile-identity-lower{
     width:min(var(--profile-content-max-width,1120px),100%);
     padding:32px 16px 24px;
    border-radius:16px;
  }
  body.profile-page .profile-identity-card .profile-identity-lower > .profile-details-box{
    margin-top:12px!important;
  }
}

/* A historical streak day without a retained private thumbnail uses the
   current Kalimera mark, sized as an in-grid glyph rather than a full image. */
.daily-streak-calendar-day img.daily-streak-calendar-fallback-logo{
  position:relative;
  inset:auto;
  width:27px;
  height:27px;
  object-fit:contain;
  filter:drop-shadow(0 2px 3px rgba(10,28,37,.13));
}

/* A short repair indicator is shown only while an old live post is being
   converted once into its private 160px calendar preview. */
.daily-streak-calendar-day.is-backfilling::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:3px;
  border:2px solid rgba(217,120,43,.22);
  border-top-color:#d9782b;
  border-radius:50%;
  animation:daily-streak-calendar-repair .9s linear infinite;
}
.daily-streak-calendar-day.is-backfilling small{z-index:3}
@keyframes daily-streak-calendar-repair{to{transform:rotate(1turn)}}
@media(prefers-reduced-motion:reduce){.daily-streak-calendar-day.is-backfilling::before{animation:none}}

/* The Hebrew calendar heading reads from the right; keep its close control on
   the opposite edge. The existing inline-end heading padding then reserves a
   dependable touch target on phones without compressing the title. */
.daily-streak-calendar-close{
  inset-inline-start:auto;
  inset-inline-end:14px;
}

/* The private coffee calendar deliberately remains open below a selected
   post. It is non-modal so closing the post reveals the same month again, but
   its own full-viewport veil must cover the sticky header while it is open. */
.daily-streak-calendar-dialog[open]{
  position:fixed;
  z-index:1300;
  inset-block-start:0;
  inset-inline:0;
  display:grid;
  place-items:center;
  width:100%;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:12px;
  overflow-y:auto;
  overscroll-behavior:contain;
  box-sizing:border-box;
  border:0;
  background:rgba(10,28,37,.36);
  -webkit-backdrop-filter:blur(10px) saturate(.9);
  backdrop-filter:blur(10px) saturate(.9);
  color:#163547;
}
.daily-streak-calendar-dialog[open] .daily-streak-calendar-card{
  width:min(560px,100%);
  max-height:100%;
  margin:auto;
  overflow-y:auto;
  overscroll-behavior:contain;
  touch-action:pan-y;
  transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .22s ease;
}
.daily-streak-calendar-dialog[open] .daily-streak-calendar-card.is-swipe-next{--calendar-swipe-shift:-10px;animation:dailyCalendarSwipe .22s cubic-bezier(.22,1,.36,1)}
.daily-streak-calendar-dialog[open] .daily-streak-calendar-card.is-swipe-previous{--calendar-swipe-shift:10px;animation:dailyCalendarSwipe .22s cubic-bezier(.22,1,.36,1)}
.daily-streak-calendar-dialog[open] .daily-streak-calendar-card[dir=rtl].is-swipe-next{--calendar-swipe-shift:10px}
.daily-streak-calendar-dialog[open] .daily-streak-calendar-card[dir=rtl].is-swipe-previous{--calendar-swipe-shift:-10px}
html.daily-streak-calendar-open,body.daily-streak-calendar-open{overflow:hidden!important;overscroll-behavior:none}
@keyframes dailyCalendarSwipe{50%{transform:translate3d(var(--calendar-swipe-shift),0,0);opacity:.86}}
@media(max-width:700px){
  .daily-streak-calendar-dialog[open]{padding:8px}
}
@media(prefers-reduced-motion:reduce){
  .daily-streak-calendar-dialog[open] .daily-streak-calendar-card{animation:none!important;transition:none!important}
}

/* Weekly challenges are compact, server-earned progress cards. Their quiet
   treatment keeps the journey useful without turning the profile into a game
   dashboard or revealing a reward formula. */
.coffee-journey-weekly{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;padding:13px 14px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.09)}
.coffee-journey-weekly-heading{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.coffee-journey-weekly-heading span{color:#fff7e9;font-size:13px;font-weight:900}.coffee-journey-weekly-heading small{color:#d6eeee;font-size:11px;font-weight:700;line-height:1.35}
.coffee-journey-weekly-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 9px;min-width:0;padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:rgba(7,20,28,.12)}
.coffee-journey-weekly-item>div{min-width:0}.coffee-journey-weekly-item b,.coffee-journey-weekly-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coffee-journey-weekly-item b{color:#fff;font-size:12px;line-height:1.3}.coffee-journey-weekly-item span{margin-top:2px;color:#d9eeee;font-size:10px;font-weight:700}.coffee-journey-weekly-item strong{align-self:center;color:#ffe0aa;font-size:11px;font-weight:900;white-space:nowrap}.coffee-journey-weekly-item>i{grid-column:1/-1;display:block;height:5px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}.coffee-journey-weekly-item>i>em{display:block;width:var(--weekly-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#78d8cd,#f2b365);transition:width .35s ease}.coffee-journey-weekly-item.is-complete{border-color:rgba(242,179,101,.5)}.coffee-journey-weekly-item.is-rewarded{border-color:rgba(255,213,155,.68);background:rgba(242,179,101,.14)}.coffee-journey-weekly-item.is-rewarded strong{color:#fff3d8}
@media(max-width:700px){.coffee-journey-weekly{grid-template-columns:1fr;gap:8px;margin-top:12px;padding:12px}.coffee-journey-weekly-heading{align-items:flex-start;flex-direction:column;gap:2px}.coffee-journey-weekly-heading small{font-size:10px}.coffee-journey-weekly-item{padding:9px}.coffee-journey-weekly-item b{font-size:12px}.coffee-journey-weekly-item span,.coffee-journey-weekly-item strong{font-size:10px}}

/* Earned Streak Savers sit quietly alongside the private journey. They are
   informative, not a spendable-currency widget. */
.coffee-journey-savers{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-top:13px;padding:11px 13px;border:1px solid rgba(255,214,151,.32);border-radius:13px;background:rgba(255,248,235,.1);color:#fff7e9}.coffee-journey-saver-icon{display:grid;place-items:center;flex:0 0 auto;width:31px;height:31px;border-radius:50%;background:#d9782b;color:#fffaf3;box-shadow:0 4px 12px rgba(8,25,35,.19)}.coffee-journey-saver-icon svg{width:19px;height:19px}.coffee-journey-savers>div{display:grid;gap:2px;min-width:0}.coffee-journey-savers b{color:#fff7e9;font-size:13px;line-height:1.2}.coffee-journey-savers span{color:#d6eeee;font-size:11px;font-weight:700;line-height:1.35}

/* A protected calendar day has no post thumbnail and no click target. The
   warm shield makes that distinction clear without looking like a missed day. */
.daily-streak-calendar-card[dir=rtl]{direction:rtl;text-align:right}.daily-streak-calendar-summary>span{justify-items:start;text-align:right}.daily-streak-calendar-saver{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 8px;margin:0;padding:9px 11px;border:1px solid rgba(217,120,43,.28);border-radius:12px;background:rgba(255,246,233,.82);color:#163547;font:800 13px/1.25 Assistant,Arial,sans-serif;text-align:right}.daily-streak-calendar-saver[hidden]{display:none}.daily-streak-calendar-saver>span{grid-row:1 / span 2;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#d9782b;color:#fffaf3}.daily-streak-calendar-saver svg{width:16px;height:16px}.daily-streak-calendar-saver b{font-weight:900}.daily-streak-calendar-saver em{min-width:0;margin:0;color:#60808a;font-style:normal;font-weight:700;text-align:right}.daily-streak-calendar-day.is-protected{border-color:rgba(217,120,43,.58);background:linear-gradient(135deg,#f4e2bf,#fff8ea);color:#b75920}.daily-streak-calendar-protected-icon{position:relative;z-index:1;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#d9782b;color:#fffaf3;box-shadow:0 4px 10px rgba(131,72,32,.2)}.daily-streak-calendar-protected-icon svg{width:17px;height:17px}
@media(max-width:700px){.coffee-journey-savers{margin-top:11px;padding:10px 11px}.coffee-journey-savers b{font-size:12px}.coffee-journey-savers span{font-size:10px}.daily-streak-calendar-saver{gap:7px;padding:8px 9px;font-size:12px}.daily-streak-calendar-saver>span{width:23px;height:23px}.daily-streak-calendar-saver em{font-size:11px}}

/* The next Guardian is a forecast, not a reward yet: keep it light, outlined,
   and inert so it reads as a future coffee-day milestone. */
.daily-streak-calendar-next-guardian-copy{grid-column:1/-1;display:block;margin:2px 0 0;color:#b75920;font:900 12px/1.35 Assistant,Arial,sans-serif;text-align:start}
.daily-streak-calendar-day.is-guardian-next{border:1px dashed rgba(217,120,43,.78);background:rgba(255,249,239,.74);box-shadow:inset 0 0 0 1px rgba(255,255,255,.72)}
.daily-streak-calendar-next-guardian-icon{position:relative;z-index:1;display:grid;place-items:center;width:29px;height:29px;border:1.5px solid #d9782b;border-radius:50%;background:rgba(255,253,249,.88);color:#d9782b;box-shadow:0 2px 7px rgba(131,72,32,.12)}
.daily-streak-calendar-next-guardian-icon svg{width:18px;height:18px}
.daily-streak-calendar-day.is-guardian-next small{color:#a64e1c;text-shadow:0 1px 2px rgba(255,255,255,.94)}
@media(max-width:700px){
  .daily-streak-calendar-card[dir=rtl] .daily-streak-calendar-heading,.daily-streak-calendar-card[dir=rtl] .daily-streak-calendar-note,.daily-streak-calendar-card[dir=rtl] .daily-streak-calendar-saver,.daily-streak-calendar-card[dir=rtl] .daily-streak-calendar-next-guardian-copy{text-align:right}
  .daily-streak-calendar-day small{font-size:11px!important;line-height:1.1}
  .daily-streak-calendar-next-guardian-icon{width:25px;height:25px}
  .daily-streak-calendar-next-guardian-icon svg{width:16px;height:16px}
  .daily-streak-calendar-next-guardian-copy{font-size:11px}
}

/* Public-profile sizing follows the private dashboard's current scale. Keep
   the public-only content, but use the same 1120px rail, card padding, title,
   portrait and action dimensions so moving between profiles feels stable. */
.public-profile-page .public-profile-identity,
.public-profile-page :is(.public-profile-stats-card,.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery),
.public-profile-page #publicProfileStatus{
  width:min(1120px,calc(100% - 32px));
}
.public-profile-page .public-profile-identity{--public-avatar-size:161px}
.public-profile-page :is(.public-profile-stats-card,.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery){padding:28px}
.public-profile-page .public-profile-overview-card{padding:28px!important}
.public-profile-page .public-profile-identity h1{font-size:28px}
.public-profile-page :is(.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery) h2{font-size:25px}
.public-profile-page .public-profile-name-line .profile-share-control{width:36px;height:36px;min-width:36px;min-height:36px}
.public-profile-page .public-profile-overview-card .public-profile-stats div{min-height:90px!important;padding:14px 12px!important}
.public-profile-page .public-profile-overview-card .public-profile-stats strong{font-size:27px!important}
.public-profile-page .public-coffee-journey-main>img{width:54px!important;height:54px!important}
@media(max-width:700px){
  .public-profile-page .public-profile-identity{--public-avatar-size:104px}
  .public-profile-page .public-profile-identity,
  .public-profile-page :is(.public-profile-stats-card,.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery),
  .public-profile-page #publicProfileStatus{width:calc(100% - 32px)}
  .public-profile-page :is(.public-profile-stats-card,.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery),
  .public-profile-page .public-profile-overview-card{padding:18px!important}
  .public-profile-page .public-profile-identity h1,
  .public-profile-page :is(.public-profile-about,.public-profile-settings,.public-profile-equipment,.public-profile-gallery) h2{font-size:21px}
  .public-profile-page .public-profile-overview-card .public-profile-stats div{min-height:76px!important;padding:11px 8px!important}
  .public-profile-page .public-profile-overview-card .public-profile-stats strong{font-size:23px!important}
  .public-profile-page .public-coffee-journey-main>img{width:50px!important;height:50px!important}
}

/* Three quiet waypoints keep widening late-level gaps legible without adding
   extra ranks, rewards, or public status noise. */
.coffee-journey-progress-track{isolation:isolate;overflow:visible!important;direction:ltr}
.coffee-journey-progress-track::after{position:relative;z-index:1}
.coffee-journey-checkpoint{position:absolute;z-index:2;top:50%;left:var(--journey-checkpoint);display:grid;width:14px;height:14px;place-items:center;border:2px solid rgba(255,255,255,.72);border-radius:50%;background:#234b5e;box-shadow:0 2px 7px rgba(5,20,28,.28);transform:translate(-50%,-50%);transition:background-color .24s ease,border-color .24s ease,box-shadow .24s ease,transform .24s ease}
.coffee-journey-checkpoint::after{content:"";width:5px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);transform:rotate(28deg)}
.coffee-journey-checkpoint.is-earned{border-color:#fff0cc;background:#e7a958;box-shadow:0 0 0 3px rgba(255,213,155,.18),0 2px 8px rgba(5,20,28,.3)}
.coffee-journey-checkpoint.is-earned::after{background:#704026}
@media(max-width:700px){.coffee-journey-checkpoint{width:13px;height:13px}.coffee-journey-checkpoint::after{width:4px;height:7px}}
@media(prefers-reduced-motion:reduce){.coffee-journey-checkpoint{transition:none}}

/* Notifications use the same dark frosted-glass reading surface as the
   lightbox information panels. Keep the existing overlay dimensions and
   scrolling contract; this block only aligns the visual treatment. */
.notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface{
  background:rgba(12,35,52,.75)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:14px;
  box-shadow:0 14px 34px rgba(5,22,31,.28)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  backdrop-filter:blur(10px)!important;
  color:#f4f8f7!important;
}
.notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface::before{display:none}
.notifications-panel.notifications-panel-portal .notifications-panel-heading.kalimera-overlay-header,
.notifications-panel.notifications-panel-portal .notifications-panel-footer.kalimera-overlay-footer{
  background:transparent!important;
  border-color:rgba(255,255,255,.2)!important;
  color:#f4f8f7!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-heading h2,
.notifications-panel.notifications-panel-portal .notifications-panel-title h2,
.notifications-panel.notifications-panel-portal .notifications-panel-message,
.notifications-panel.notifications-panel-portal .notifications-panel-body strong,
.notifications-panel.notifications-panel-portal .notifications-panel-empty{
  color:#f4f8f7!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-meta{color:#c5d5d7!important}
.notifications-panel.notifications-panel-portal .notifications-panel-item{
  background:rgba(255,255,255,.11)!important;
  border-color:rgba(255,255,255,.2)!important;
  color:#f4f8f7!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-item:is(:hover,:focus-visible){
  background:rgba(255,255,255,.17)!important;
  border-color:rgba(255,255,255,.35)!important;
  outline:0;
}
.notifications-panel.notifications-panel-portal .notifications-panel-item.unread{
  background:rgba(255,255,255,.15)!important;
  border-inline-start-color:#efaa5a!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-heading button{color:#ffd39b!important}
.notifications-panel.notifications-panel-portal .notifications-panel-close{
  background:rgba(12,35,52,.75)!important;
  border-color:rgba(255,255,255,.24)!important;
  color:#f4f8f7!important;
  -webkit-backdrop-filter:blur(10px)!important;
  backdrop-filter:blur(10px)!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-close:is(:hover,:focus-visible){
  background:rgba(255,255,255,.17)!important;
  border-color:rgba(255,255,255,.35)!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-avatar-fallback{
  background:rgba(255,255,255,.12)!important;
  color:#f4f8f7!important;
}
@media(max-width:700px){
  .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface{
    border-radius:22px 22px 0 0;
  }
}

/* Keep the notification surface in the same color family as the desktop
   private-profile quick navigation. The content remains a frosted overlay,
   but its ink, rim, elevation, and item states now use the navigation tokens. */
.notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface{
  background:rgba(18,42,53,.5)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-heading h2,
.notifications-panel.notifications-panel-portal .notifications-panel-message,
.notifications-panel.notifications-panel-portal .notifications-panel-body strong,
.notifications-panel.notifications-panel-portal .notifications-panel-empty{color:#fffdf9!important}
.notifications-panel.notifications-panel-portal .notifications-panel-item{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-item:is(:hover,:focus-visible){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-item.unread{
  border-inline-start-color:#efaa5a!important;
  background:rgba(255,255,255,.18)!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-close{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-close:is(:hover,:focus-visible){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}

/* Canonical notification glass surface. Keep this final so the popup cannot
   drift from the private-profile navigation palette when older rules change. */
.notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface{
  background:rgba(18,42,53,.5)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-item,
.notifications-panel.notifications-panel-portal .notifications-panel-close{
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
.notifications-panel.notifications-panel-portal .notifications-panel-item.unread{
  background:rgba(255,255,255,.18)!important;
  border-inline-start-color:#efaa5a!important;
}

/* Apply the same palette even during the brief state before the runtime
   portal classes are attached. This keeps the popup consistent when it is
   restored from the profile menu or opened immediately after hydration. */
.notifications-panel .notifications-overlay-surface,
.notifications-panel.notifications-panel-portal .notifications-overlay-surface,
.notifications-panel.kalimera-responsive-overlay .notifications-overlay-surface{
  background:rgba(18,42,53,.5)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
.notifications-panel .notifications-overlay-surface::before{
  display:none!important;
}
.notifications-panel .notifications-panel-heading.kalimera-overlay-header,
.notifications-panel .notifications-panel-footer.kalimera-overlay-footer{
  background:transparent!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
.notifications-panel .notifications-panel-heading h2,
.notifications-panel .notifications-panel-title h2,
.notifications-panel .notifications-panel-message,
.notifications-panel .notifications-panel-body strong,
.notifications-panel .notifications-panel-empty,
.notifications-panel .notifications-panel-heading button{
  color:#fffdf9!important;
}
.notifications-panel .notifications-panel-item,
.notifications-panel .notifications-panel-close{
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
.notifications-panel .notifications-panel-item.unread{
  background:rgba(255,255,255,.18)!important;
  border-inline-start-color:#efaa5a!important;
}

/* The calendar shares the desktop profile navigation's frosted-glass palette.
   Keep its grid, month controls, and mobile sheet geometry unchanged while
   giving every calendar surface the same dark-blue rail and translucent states. */
.daily-streak-calendar-card{
  border-color:rgba(255,255,255,.42)!important;
  background:rgba(18,42,53,.5)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
.daily-streak-calendar-card::before{display:none}
.daily-streak-calendar-heading h2,
.daily-streak-calendar-heading p,
.daily-streak-calendar-toolbar strong,
.daily-streak-calendar-note{color:#fffdf9!important}
.daily-streak-calendar-heading p,
.daily-streak-calendar-note{color:#d6eeee!important}
.daily-streak-calendar-summary>span{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#d6eeee!important;
}
.daily-streak-calendar-summary b{color:#fffdf9!important}
.daily-streak-calendar-nav,
.daily-streak-calendar-close{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.daily-streak-calendar-nav:hover:not(:disabled),
.daily-streak-calendar-close:hover,
.daily-streak-calendar-nav:focus-visible,
.daily-streak-calendar-close:focus-visible{
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
  box-shadow:0 5px 12px rgba(10,28,37,.18)!important;
}
.daily-streak-calendar-week{color:#d6eeee!important}
.daily-streak-calendar-day{
  border-color:rgba(255,255,255,.28)!important;
  background-color:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.daily-streak-calendar-day:not(.is-empty):not(.is-loading){box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)!important}
button.daily-streak-calendar-day:hover{box-shadow:0 6px 13px rgba(10,28,37,.18)!important}
.daily-streak-calendar-day.is-archived,
.daily-streak-calendar-day.is-earned{
  border-color:rgba(255,255,255,.4)!important;
  background:rgba(255,255,255,.18)!important;
  color:#fffdf9!important;
}
.daily-streak-calendar-day.is-posted::after{background:linear-gradient(0deg,rgba(10,28,37,.48),transparent 65%)}
.daily-streak-calendar-day small,
.daily-streak-calendar-day.is-posted small{color:#fff!important;text-shadow:0 1px 3px rgba(10,28,37,.72)}
.daily-streak-calendar-day.is-loading,
.daily-streak-calendar-summary-skeleton{
  border-color:rgba(255,255,255,.18)!important;
  background:linear-gradient(100deg,rgba(255,255,255,.08) 25%,rgba(255,255,255,.25) 45%,rgba(255,255,255,.08) 65%)!important;
  background-size:300% 100%!important;
}
.daily-streak-calendar-saver{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.daily-streak-calendar-saver em{color:#d6eeee!important}
.daily-streak-calendar-day.is-guardian-next{
  border-color:rgba(255,255,255,.5)!important;
  background:rgba(255,255,255,.16)!important;
}
.daily-streak-calendar-next-guardian-copy{color:#ffd39b!important}
.daily-streak-calendar-next-guardian-icon,
.daily-streak-calendar-protected-icon{
  border-color:rgba(255,255,255,.5)!important;
  background:rgba(255,255,255,.12)!important;
  color:#ffd39b!important;
}

/* Canonical calendar palette: these are the same color tokens used by the
   private-profile navigation bar and notification popup. Keep geometry and
   interaction rules in their existing blocks above. */
.daily-streak-calendar-dialog .daily-streak-calendar-card{
  background:rgba(18,42,53,.5)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  color:#fffdf9!important;
}
.daily-streak-calendar-dialog :is(.daily-streak-calendar-summary>span,.daily-streak-calendar-day,.daily-streak-calendar-saver){
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
.daily-streak-calendar-dialog :is(.daily-streak-calendar-nav,.daily-streak-calendar-close){
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}

/* Mobile profile section navigation uses the same color tokens as the
   desktop navigation rail and notification popup. Geometry and motion stay
   in profile-section-navigation.css; this block only aligns the palette. */
@media(max-width:700px){
  .profile-section-quick-nav .profile-section-nav-trigger{
    background:rgba(18,42,53,.5)!important;
    border-color:rgba(255,255,255,.42)!important;
    color:#fffdf9!important;
  }
  .profile-section-nav-dialog .profile-section-nav-sheet{
    background:rgba(18,42,53,.5)!important;
    border-color:rgba(255,255,255,.42)!important;
    color:#fffdf9!important;
  }
  .profile-section-nav-dialog .profile-section-nav-sheet > header,
  .profile-section-nav-dialog .profile-section-nav-sheet .eyebrow{
    color:#fffdf9!important;
  }
  .profile-section-nav-dialog .profile-section-nav-sheet h3{
    color:#fffdf9!important;
  }
  .profile-section-nav-dialog .profile-section-nav-close{
    background:rgba(255,255,255,.12)!important;
    border-color:rgba(255,255,255,.28)!important;
    color:#fffdf9!important;
  }
  .profile-section-nav-dialog .profile-section-nav-item{
    background:rgba(255,255,255,.12)!important;
    border-color:rgba(255,255,255,.28)!important;
    color:#fffdf9!important;
  }
  .profile-section-nav-dialog .profile-section-nav-item:is(:hover,:focus-visible),
  .profile-section-nav-dialog .profile-section-nav-item.is-current{
    background:rgba(255,255,255,.25)!important;
    border-color:rgba(255,255,255,.82)!important;
    color:#fff!important;
  }
}

/* Keep the account settings dialog in the same dark frosted-glass color
   language as the private-profile navigation rail.  This is intentionally a
   palette-only override: the dialog's existing sizing, scrolling, toggles,
   and responsive layout remain unchanged. */
.profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{
  background:rgba(18,42,53,.5)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
.profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface::before{display:none!important}
.profile-settings-dialog .kalimera-overlay-header,
.profile-settings-dialog .kalimera-overlay-body,
.profile-settings-dialog .kalimera-overlay-footer{
  background:transparent!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
.profile-settings-dialog .profile-preferences-title,
.profile-settings-dialog .profile-preferences-help,
.profile-settings-dialog #profilePreferenceStatus,
.profile-settings-dialog .profile-avatar-dialog-close,
.profile-settings-dialog .profile-preferences label span{
  color:#fffdf9!important;
}
.profile-settings-dialog .profile-preferences-help{color:#d6eeee!important}
.profile-settings-dialog .profile-preferences label{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
  box-shadow:none!important;
}
.profile-settings-dialog .profile-preferences label:is(:hover,:focus-within),
.profile-settings-dialog .profile-preferences label:has(input:checked){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]{
  border-color:rgba(255,255,255,.42)!important;
  background-color:rgba(255,255,255,.18)!important;
  box-shadow:inset 0 1px 2px rgba(10,28,37,.2)!important;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]:checked{
  border-color:#efaa5a!important;
  background-color:#efaa5a!important;
}
.profile-settings-dialog .profile-preferences input[type="checkbox"]:focus-visible{
  outline:3px solid rgba(255,211,155,.58)!important;
}

/* The calendar card already uses the shared navigation glass tokens. Its
   full-screen dialog layer also needs to stay transparent, otherwise the
   legacy dark fill is composited beneath the card and makes it look heavier
   than the notification and profile-settings popups. Use the same backdrop
   treatment as the other responsive overlays. */
.daily-streak-calendar-dialog[open]{
  background:transparent!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.daily-streak-calendar-dialog::backdrop{
  background:rgba(10,28,37,.48)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
 }

/* Unified popup contract: every dialog speaks the same header language and
   uses one circular, white close affordance. Component-specific content and
   layout remain untouched; only the shared chrome is normalized here. */
body :is(
  .notifications-panel .notifications-panel-heading,
  .profile-avatar-dialog .profile-avatar-dialog-heading,
  .daily-streak-calendar-heading,
  .profile-section-nav-sheet > header
){
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-block-size:64px;
  margin:0!important;
  padding-block:16px!important;
  padding-inline:20px!important;
  border-block-end:1px solid var(--kalimera-header-glass-border)!important;
  background:transparent!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .daily-streak-calendar-heading{
  align-items:flex-start;
  flex-direction:column;
  padding-inline-start:58px!important;
  text-align:start!important;
}
body :is(
  .notifications-panel .notifications-panel-heading h2,
  .profile-avatar-dialog .profile-avatar-dialog-heading h3,
  .daily-streak-calendar-heading h2,
  .profile-section-nav-sheet > header h3
){
  margin-block:0!important;
  color:var(--kalimera-header-glass-text)!important;
}
body :is(
  .notifications-panel .notifications-panel-heading .eyebrow,
  .profile-avatar-dialog .profile-avatar-dialog-heading .eyebrow,
  .daily-streak-calendar-heading .eyebrow,
  .profile-section-nav-sheet > header .eyebrow
){color:var(--kalimera-header-glass-muted)!important}

body :is(
  .notifications-panel .notifications-panel-close,
  .daily-streak-calendar-close,
  .profile-avatar-dialog .profile-avatar-dialog-close,
  .profile-section-nav-close,
  .profile-login-dialog-close,
  .shared-preset-import-close,
  .profile-preset-name-close,
  .profile-preset-delete-close,
  .profile-bean-wallet-close,
  .bug-report-close,
  .shelf-dialog-close,
  .privacy-preferences-close,
  .media-preview-close,
  .lightbox .lightbox-close
){
  box-sizing:border-box!important;
  display:grid!important;
  place-items:center!important;
  inline-size:36px!important;
  block-size:36px!important;
  min-inline-size:36px!important;
  min-block-size:36px!important;
  max-inline-size:36px!important;
  max-block-size:36px!important;
  aspect-ratio:1!important;
  flex:0 0 36px!important;
  padding:0!important;
  border:1px solid var(--kalimera-header-glass-item-border)!important;
  border-radius:50%!important;
  background:var(--kalimera-header-glass-item-background)!important;
  color:var(--kalimera-header-glass-text)!important;
  font:800 23px/1 Arial,sans-serif!important;
  text-align:center!important;
  transition:transform var(--motion-duration-feedback) var(--motion-ease-standard),background-color var(--motion-duration-feedback) var(--motion-ease-standard),border-color var(--motion-duration-feedback) var(--motion-ease-standard),color var(--motion-duration-feedback) var(--motion-ease-standard)!important;
}
body :is(
  .notifications-panel .notifications-panel-close,
  .daily-streak-calendar-close,
  .profile-avatar-dialog .profile-avatar-dialog-close,
  .profile-section-nav-close,
  .profile-login-dialog-close,
  .shared-preset-import-close,
  .profile-preset-name-close,
  .profile-preset-delete-close,
  .profile-bean-wallet-close,
  .bug-report-close,
  .shelf-dialog-close,
  .privacy-preferences-close,
  .media-preview-close,
  .lightbox .lightbox-close
):is(:hover,:focus-visible){
  background:var(--kalimera-header-glass-item-hover)!important;
  border-color:rgba(255,255,255,.82)!important;
  color:#fff!important;
  transform:translateY(-1px)!important;
}
body :is(
  .notifications-panel .notifications-panel-close,
  .daily-streak-calendar-close,
  .profile-avatar-dialog .profile-avatar-dialog-close,
  .profile-section-nav-close,
  .profile-login-dialog-close,
  .shared-preset-import-close,
  .profile-preset-name-close,
  .profile-preset-delete-close,
  .profile-bean-wallet-close,
  .bug-report-close,
  .shelf-dialog-close,
  .privacy-preferences-close,
  .media-preview-close,
  .lightbox .lightbox-close
):focus-visible{outline:3px solid rgba(255,211,155,.58)!important;outline-offset:2px!important}

/* The calendar is a non-modal dialog, so it does not use the overlay manager's
   data-overlay-state transition. Give its card the same measured fade/slide
   contract and let daily-streak.js hold the close until the transition ends. */
body .daily-streak-calendar-dialog .daily-streak-calendar-card{
  opacity:0;
  transform:translate3d(0,var(--motion-distance-enter),0) scale(.97);
  transition:opacity var(--motion-duration-surface) var(--motion-ease-standard),transform var(--motion-duration-surface) var(--motion-ease-enter);
}
body .daily-streak-calendar-dialog[open]:not(.is-opening):not(.is-closing) .daily-streak-calendar-card{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
body .daily-streak-calendar-dialog.is-closing .daily-streak-calendar-card{
  opacity:0;
  transform:translate3d(0,var(--motion-distance-enter),0) scale(.97);
}
body .daily-streak-calendar-backdrop{
  transition:opacity var(--motion-duration-surface) var(--motion-ease-standard)!important;
}
@media(max-width:700px){
  body :is(.notifications-panel .notifications-panel-heading,.profile-avatar-dialog .profile-avatar-dialog-heading,.daily-streak-calendar-heading,.profile-section-nav-sheet > header){
    min-block-size:60px;
    padding-block:14px!important;
    padding-inline:16px!important;
  }
  body .daily-streak-calendar-heading{padding-inline-start:54px!important}
  body .daily-streak-calendar-dialog .daily-streak-calendar-card{transform:translate3d(0,24px,0) scale(.98)}
  body .daily-streak-calendar-dialog[open]:not(.is-opening):not(.is-closing) .daily-streak-calendar-card{transform:translate3d(0,0,0) scale(1)}
  body .daily-streak-calendar-dialog.is-closing .daily-streak-calendar-card{transform:translate3d(0,24px,0) scale(.98)}
}
@media(prefers-reduced-motion:reduce){
  body .daily-streak-calendar-dialog .daily-streak-calendar-card,
  body .daily-streak-calendar-backdrop{transition:none!important}
}

/* The calendar is intentionally non-modal (the post viewer can sit above it),
   so browsers do not paint dialog::backdrop. This sibling veil provides the
   same full-viewport blur and tint on every browser, including mobile. */
.daily-streak-calendar-backdrop{
  position:fixed;
  inset:0;
  z-index:1290;
  background:rgba(10,28,37,.48);
  -webkit-backdrop-filter:blur(14px) saturate(1.08);
  backdrop-filter:blur(14px) saturate(1.08);
  opacity:0;
  pointer-events:auto;
  transition:opacity .18s ease;
}
.daily-streak-calendar-backdrop.is-visible{opacity:1}
.daily-streak-calendar-backdrop[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.daily-streak-calendar-backdrop{transition:none}}

/* Equipment maintenance uses the same dark frosted-glass surface as the
   profile navigation, calendar, notifications, and account settings. Keep
   the generated task/confirmation dialogs in that family too, while leaving
   their existing content and responsive geometry intact. */
.equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
.maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
.maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{
  background:rgba(18,42,53,.5)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
.equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface::before,
.maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface::before,
.maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface::before{display:none!important}
.equipment-maintenance-dialog.kalimera-responsive-overlay,
.maintenance-task-editor-dialog.kalimera-responsive-overlay,
.maintenance-confirm-dialog.kalimera-responsive-overlay{
  background:transparent!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.equipment-maintenance-dialog.kalimera-responsive-overlay::backdrop,
.maintenance-task-editor-dialog.kalimera-responsive-overlay::backdrop,
.maintenance-confirm-dialog.kalimera-responsive-overlay::backdrop{
  background:rgba(10,28,37,.48)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}
.equipment-maintenance-dialog .kalimera-overlay-header,
.equipment-maintenance-dialog .kalimera-overlay-body,
.equipment-maintenance-dialog .kalimera-overlay-footer,
.maintenance-task-editor-dialog .kalimera-overlay-header,
.maintenance-task-editor-dialog .kalimera-overlay-body,
.maintenance-task-editor-dialog .kalimera-overlay-footer,
.maintenance-confirm-dialog .kalimera-overlay-header,
.maintenance-confirm-dialog .kalimera-overlay-body,
.maintenance-confirm-dialog .kalimera-overlay-footer{
  background:transparent!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
.equipment-maintenance-dialog .profile-avatar-dialog-heading h3,
.maintenance-task-editor-dialog .profile-avatar-dialog-heading h3,
.maintenance-confirm-dialog h3,
.equipment-maintenance-dialog .profile-avatar-dialog-close,
.maintenance-task-editor-dialog .profile-avatar-dialog-close,
.maintenance-confirm-dialog .profile-avatar-dialog-close{
  color:#fffdf9!important;
}
.equipment-maintenance-dialog .profile-avatar-dialog-close,
.maintenance-task-editor-dialog .profile-avatar-dialog-close,
.maintenance-confirm-dialog .profile-avatar-dialog-close{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
}
.equipment-maintenance-dialog .profile-avatar-dialog-close:is(:hover,:focus-visible),
.maintenance-task-editor-dialog .profile-avatar-dialog-close:is(:hover,:focus-visible),
.maintenance-confirm-dialog .profile-avatar-dialog-close:is(:hover,:focus-visible){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
.equipment-maintenance-dialog .maintenance-dialog-status,
.maintenance-task-editor-dialog .maintenance-dialog-status,
.maintenance-task-editor-form>label,
.maintenance-confirm-dialog p{
  color:#d6eeee!important;
}

/* Cookie consent is a persistent bottom surface rather than a modal, but it
   follows the same navigation glass language so privacy controls feel part of
   the same product. Keep the existing consent actions and responsive layout. */
.privacy-consent-banner,
.privacy-preferences-dialog .privacy-preferences-card{
  border-color:rgba(255,255,255,.42)!important;
  background:rgba(18,42,53,.5)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
.privacy-preferences-dialog{background:transparent!important}
.privacy-preferences-dialog::backdrop{
  background:rgba(10,28,37,.48)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}
.privacy-consent-banner strong,
.privacy-preferences-card h2,
.privacy-preferences-card>p,
.privacy-preferences-card .privacy-preference-row b,
.privacy-preferences-card .privacy-preferences-status,
.privacy-preferences-card>a{
  color:#fffdf9!important;
}
.privacy-consent-banner p,
.privacy-preferences-card .privacy-preference-row small{color:#d6eeee!important}
.privacy-consent-banner a{color:#fffdf9!important}
.privacy-consent-banner a:hover,.privacy-consent-banner a:focus-visible,
.privacy-preferences-card>a:hover,.privacy-preferences-card>a:focus-visible{color:#ffd39b!important}
.privacy-consent-actions button,
.privacy-preferences-actions button{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.privacy-consent-actions button:is(:hover,:focus-visible),
.privacy-preferences-actions button:is(:hover,:focus-visible){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
.privacy-consent-actions .privacy-banner-accept,
.privacy-preferences-actions .privacy-save{
  border-color:#ffd39b!important;
  background:#efaa5a!important;
  color:#0a1c25!important;
}
.privacy-consent-actions .privacy-banner-accept:is(:hover,:focus-visible),
.privacy-preferences-actions .privacy-save:is(:hover,:focus-visible){
  border-color:#fff!important;
  background:#ffd39b!important;
  color:#0a1c25!important;
}
.privacy-preference-row{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.privacy-preference-row:is(:hover,:focus-within),
.privacy-preference-row:has(input:checked){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
}
.privacy-preference-row input{accent-color:#efaa5a!important}
.privacy-preferences-close{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.privacy-preferences-close:is(:hover,:focus-visible){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}

/* Complete the maintenance dialog transformation. The dialog shell was
   already glass, but its inner task cards and controls still carried the
   legacy paper palette. */
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog,.maintenance-confirm-dialog) :is(.maintenance-summary>span,.maintenance-task,.maintenance-recent span,.maintenance-history>div,.maintenance-task-heading>span,.maintenance-unknown-date){
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) .maintenance-equipment-row{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) .maintenance-equipment-row:hover,
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) .maintenance-equipment-row:focus-visible{
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  box-shadow:0 8px 18px rgba(10,28,37,.2)!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) .maintenance-equipment-row small{color:#d6eeee!important}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) .maintenance-row-arrow{
  background:rgba(255,255,255,.18)!important;
  color:#fffdf9!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog,.maintenance-confirm-dialog) :is(h3,h4,strong,label,small,p,.maintenance-task-heading small,.maintenance-recent,.maintenance-history,.maintenance-dialog-status){color:#d6eeee!important}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog,.maintenance-confirm-dialog) :is(.maintenance-task-heading strong,.maintenance-summary b,.maintenance-recent h4,.maintenance-history h4){color:#fffdf9!important}
.equipment-maintenance-dialog .maintenance-summary .is-overdue b{color:#ffb4a6!important}
.equipment-maintenance-dialog .maintenance-summary .is-today b{color:#ffd39b!important}
.equipment-maintenance-dialog .maintenance-safety-note{
  border-inline-start-color:#efaa5a!important;
  background:rgba(239,170,90,.18)!important;
  color:#fff3dd!important;
}
.equipment-maintenance-dialog .maintenance-task.is-overdue{border-color:rgba(255,180,166,.68)!important}
.equipment-maintenance-dialog .maintenance-task.is-today{border-color:rgba(255,211,155,.78)!important}
.equipment-maintenance-dialog .maintenance-task-heading>span{color:#fffdf9!important}
.equipment-maintenance-dialog .maintenance-product-links{color:#d6eeee!important}
.equipment-maintenance-dialog .maintenance-product-links a{
  border-color:rgba(255,211,155,.5)!important;
  background:rgba(239,170,90,.18)!important;
  color:#ffd39b!important;
}
.equipment-maintenance-dialog .maintenance-product-links a:hover,
.equipment-maintenance-dialog .maintenance-product-links a:focus-visible{background:rgba(255,255,255,.25)!important;border-color:rgba(255,255,255,.82)!important;color:#fff!important}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) :is(.maintenance-task-form,.maintenance-task-editor-form,.maintenance-history,.maintenance-recent){border-color:rgba(255,255,255,.2)!important}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) :is(input,textarea,select){
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
  -webkit-text-fill-color:#fffdf9!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) :is(input,textarea,select)::placeholder{color:#d6eeee!important;-webkit-text-fill-color:#d6eeee!important}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog) select option{background:#122a35;color:#fffdf9}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog,.maintenance-confirm-dialog) :is(.profile-secondary-button,.maintenance-icon-button,.maintenance-unknown-date){
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog,.maintenance-confirm-dialog) :is(.profile-secondary-button,.maintenance-icon-button,.maintenance-unknown-date):is(:hover,:focus-visible){
  border-color:rgba(255,255,255,.82)!important;
  background:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog,.maintenance-confirm-dialog) :is(.profile-primary-button,.maintenance-form-actions button[type=submit]){
  border-color:#efaa5a!important;
  background:#efaa5a!important;
  color:#0a1c25!important;
}
:is(.equipment-maintenance-dialog,.maintenance-task-editor-dialog,.maintenance-confirm-dialog) :is(.profile-primary-button,.maintenance-form-actions button[type=submit]):is(:hover,:focus-visible){
  border-color:#ffd39b!important;
  background:#ffd39b!important;
  color:#0a1c25!important;
}
.equipment-maintenance-dialog .maintenance-date-control .maintenance-unknown-date{color:#fffdf9!important;background:rgba(255,255,255,.12)!important}
.equipment-maintenance-dialog .maintenance-task.is-saving::after{color:#d6eeee!important}

/* Profile media dialogs use the same dark frosted-glass surface as the
   profile navigation and the other responsive overlays. Keep picker, crop,
   upload, and save controls unchanged; this harmonizes the outer shell. */
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay{
  background:transparent!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay::backdrop,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay::backdrop{
  background:rgba(10,28,37,.48)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{
  background:rgba(18,42,53,.5)!important;
  border-color:rgba(255,255,255,.55)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.28)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  backdrop-filter:blur(8px)!important;
  opacity:.92!important;
  color:#fffdf9!important;
}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface::before,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface::before{display:none!important}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-header,
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-body,
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-footer,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-header,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-body,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .kalimera-overlay-footer{
  background:transparent!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-heading h3,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-heading h3,
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-intro,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-intro,
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-crop-heading h4,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-crop-heading h4,
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-status,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-status{
  color:#fffdf9!important;
}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-intro,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-intro{color:#d6eeee!important}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-close,
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-close{
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
#profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-close:is(:hover,:focus-visible),
#profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay .profile-avatar-dialog-close:is(:hover,:focus-visible){
  background:rgba(255,255,255,.25)!important;
  border-color:rgba(255,255,255,.82)!important;
  color:#fff!important;
}

/* Complete the overlay palette: these are the remaining dialogs that still
   used the original paper/gradient treatment. Keep their existing markup,
   controls, and sizing; only the shared glass surface and readable states are
   normalized here. */
:is(.profile-login-dialog,.shared-preset-import-dialog,.profile-preset-name-dialog,.profile-discard-dialog,.profile-preset-delete-dialog,.profile-bean-wallet-dialog,.bug-report-dialog,.shelf-dialog){
  background:transparent!important;
  box-shadow:none!important;
}
:is(.profile-login-dialog,.shared-preset-import-dialog,.profile-preset-name-dialog,.profile-discard-dialog,.profile-preset-delete-dialog,.profile-bean-wallet-dialog,.bug-report-dialog,.shelf-dialog)::backdrop{
  background:rgba(10,28,37,.48)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}
:is(.profile-login-dialog-card,.shared-preset-import-card,.profile-preset-name-card,.profile-discard-card,.profile-preset-delete-card,.profile-bean-wallet-card,.bug-report-card,.shelf-dialog-card){
  background:rgba(18,42,53,.5)!important;
  border:1px solid rgba(255,255,255,.42)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.18)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08)!important;
  backdrop-filter:blur(12px) saturate(1.08)!important;
  color:#fffdf9!important;
}
:is(.profile-login-dialog-card,.shared-preset-import-card,.profile-preset-name-card,.profile-discard-card,.profile-preset-delete-card,.profile-bean-wallet-card,.bug-report-card,.shelf-dialog-card)::before{display:none!important}
:is(.profile-login-dialog-card,.shared-preset-import-card,.profile-preset-name-card,.profile-discard-card,.profile-preset-delete-card,.profile-bean-wallet-card,.bug-report-card,.shelf-dialog-card) :is(h1,h2,h3,h4,label,.eyebrow){color:#fffdf9!important}
:is(.profile-login-dialog-card,.shared-preset-import-card,.profile-preset-name-card,.profile-discard-card,.profile-preset-delete-card,.profile-bean-wallet-card,.bug-report-card,.shelf-dialog-card) :is(p,small,.profile-status,.auth-message){color:#d6eeee!important}
:is(.profile-login-dialog-card,.shared-preset-import-card,.profile-preset-name-card,.profile-discard-card,.profile-preset-delete-card,.profile-bean-wallet-card,.bug-report-card,.shelf-dialog-card) :is(a,.auth-text-button){color:#ffd39b!important}

/* All close controls use the same translucent circular affordance. */
:is(.profile-login-dialog-close,.shared-preset-import-close,.profile-preset-name-close,.profile-preset-delete-close,.profile-bean-wallet-close,.bug-report-close,.shelf-dialog-close){
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  color:#fffdf9!important;
}
:is(.profile-login-dialog-close,.shared-preset-import-close,.profile-preset-name-close,.profile-preset-delete-close,.profile-bean-wallet-close,.bug-report-close,.shelf-dialog-close):is(:hover,:focus-visible){
  background:rgba(255,255,255,.25)!important;
  border-color:rgba(255,255,255,.82)!important;
  color:#fff!important;
}

/* Shared-settings and confirmation dialog separators follow the same light
   translucent rule as the profile navigation. */
:is(.shared-preset-import-actions,.profile-discard-actions,.profile-preset-delete-actions,.profile-preset-name-actions){border-color:rgba(255,255,255,.28)!important}
:is(.shared-preset-import-details,.shared-preset-import-details>div){border-color:rgba(255,255,255,.2)!important}
:is(.shared-preset-import-type,.shared-preset-import-creator,.shared-preset-import-details dt,.shared-preset-import-status,.profile-preset-name-copy,.profile-preset-delete-message,.profile-bean-wallet-intro){color:#d6eeee!important}
:is(.shared-preset-import-details dd,.profile-preset-name-label,.profile-discard-card h3,.profile-discard-card p,.profile-preset-delete-card h3){color:#fffdf9!important}

/* Login and support fields stay bright enough to edit against the dark shell. */
:is(.profile-login-dialog-card,.account-name-required-card,.bug-report-card) :is(input,textarea,select){background:#fffdf9!important;color:#17232b!important;-webkit-text-fill-color:#17232b!important}
.profile-login-dialog-card .auth-provider-button,
.profile-login-dialog-card .auth-email-toggle,
.profile-login-email-form button{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fffdf9!important;
}
.profile-login-dialog-card :is(.auth-provider-button,.auth-email-toggle,.profile-login-email-form button):is(:hover,:focus-visible){background:rgba(255,255,255,.25)!important;border-color:rgba(255,255,255,.82)!important}
.account-name-required-mark{box-shadow:none!important}
.bug-report-card :is(.bug-report-mark,.bug-report-send){box-shadow:none!important}
.bug-report-card label,.bug-report-card .bug-report-message-heading{color:#fffdf9!important}
.bug-report-card .bug-report-character-count{color:#d6eeee!important}
.bug-report-card .bug-report-status{color:#d6eeee!important}
.bug-report-card .bug-report-cancel{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.28)!important;color:#fffdf9!important}
.bug-report-card .bug-report-send{background:#efaa5a!important;border-color:#efaa5a!important;color:#163547!important}
.bug-report-card .bug-report-actions button:is(:hover,:focus-visible){background:rgba(255,255,255,.25)!important;border-color:rgba(255,255,255,.82)!important;color:#fff!important}
.bug-report-card .bug-report-send:is(:hover,:focus-visible){background:#ffd39b!important;color:#163547!important}

/* Keep wallet detail cards as readable translucent child surfaces. */
.profile-bean-wallet-card .profile-journal-reflection{border-color:rgba(255,255,255,.28)!important;background:rgba(255,255,255,.12)!important;color:#fffdf9!important}
.profile-bean-wallet-card .profile-journal-reflection :is(h3,p,small,.profile-journal-reflection-price){color:#fffdf9!important}
.profile-bean-wallet-card .profile-journal-reflection strong{border-color:rgba(255,255,255,.2)!important;color:#ffd39b!important}

/* The Bean Shelf confirmation is a separate route but now speaks the same
   glass language as the rest of the application. */
.shelf-dialog-card h2{color:#fffdf9!important}
.shelf-dialog-card p{color:#d6eeee!important}
.shelf-dialog-card .shelf-primary{background:#efaa5a!important;border-color:#efaa5a!important;color:#163547!important}
.shelf-dialog-card .shelf-secondary{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.28)!important;color:#fffdf9!important}

/* Mobile popup breathing room: keep the notifications and profile-settings
   sheets clear of the viewport and safe-area edges while preserving their
   shared glass surface and internal scrolling.  The desktop geometry is
   intentionally untouched. */
@media(max-width:700px){
  .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay,
  .profile-settings-dialog.kalimera-responsive-overlay{
    box-sizing:border-box;
    padding-block:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-bottom));
  }
  .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface,
  .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{
    max-height:100%;
    border-radius:22px;
  }
}

/* Final cascade guard: older overlay rules carry higher-specificity !important
   declarations. Keep this block last so every standard popup actually follows
   the neutral site-header surface without changing its layout. */
body .notifications-panel .notifications-overlay-surface,
body .daily-streak-calendar-dialog .daily-streak-calendar-card,
body .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
body .equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
body .maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
body .maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
body .privacy-preferences-dialog .privacy-preferences-card,
body .profile-login-dialog .profile-login-dialog-card.kalimera-overlay-surface,
body .shared-preset-import-dialog .shared-preset-import-card.kalimera-overlay-surface,
body .profile-preset-name-dialog .profile-preset-name-card.kalimera-overlay-surface,
body .profile-discard-dialog .profile-discard-card.kalimera-overlay-surface,
body .profile-preset-delete-dialog .profile-preset-delete-card.kalimera-overlay-surface,
body .profile-bean-wallet-dialog .profile-bean-wallet-card.kalimera-overlay-surface,
body .bug-report-dialog .bug-report-card,
body .shelf-dialog .shelf-dialog-card,
body #profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface,
body #profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface{
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  opacity:1!important;
  color:var(--kalimera-header-glass-text)!important;
}
/* Cover every mount state, including dialogs opened before the overlay manager
   adds its responsive class. This is intentionally a final, neutral palette
   contract; older blue glass declarations remain above for compatibility but
   cannot win the cascade anymore. */
body .profile-avatar-dialog .profile-avatar-dialog-card.kalimera-overlay-surface,
body .profile-settings-dialog .profile-avatar-dialog-card.kalimera-overlay-surface,
body .equipment-maintenance-dialog .profile-avatar-dialog-card.kalimera-overlay-surface,
body .maintenance-task-editor-dialog .profile-avatar-dialog-card.kalimera-overlay-surface,
body .maintenance-confirm-dialog .profile-avatar-dialog-card.kalimera-overlay-surface{
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  opacity:1!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .profile-avatar-dialog .kalimera-overlay-header,
body .profile-avatar-dialog .kalimera-overlay-body,
body .profile-avatar-dialog .kalimera-overlay-footer,
body .profile-settings-dialog .kalimera-overlay-header,
body .profile-settings-dialog .kalimera-overlay-body,
body .profile-settings-dialog .kalimera-overlay-footer,
body .equipment-maintenance-dialog .kalimera-overlay-header,
body .equipment-maintenance-dialog .kalimera-overlay-body,
body .equipment-maintenance-dialog .kalimera-overlay-footer{
  background:transparent!important;
  border-color:var(--kalimera-header-glass-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .profile-settings-dialog .profile-preferences label,
body .profile-avatar-dialog .profile-avatar-choice,
body .profile-avatar-dialog .profile-generator,
body .profile-avatar-dialog .profile-generator-random{
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .profile-avatar-dialog .profile-avatar-dialog-card::before,
body .profile-settings-dialog .profile-avatar-dialog-card::before,
body .equipment-maintenance-dialog .profile-avatar-dialog-card::before,
body .maintenance-task-editor-dialog .profile-avatar-dialog-card::before,
body .maintenance-confirm-dialog .profile-avatar-dialog-card::before{display:none!important}
body .profile-section-nav-dialog .profile-section-nav-sheet{
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
/* Some notification portals are mounted before the responsive helper classes
   are attached. Keep the generic portal path on the same neutral header glass
   so the first paint cannot fall back to the legacy blue surface. */
body .notifications-panel .notifications-panel-heading.kalimera-overlay-header,
body .notifications-panel .notifications-panel-footer.kalimera-overlay-footer{
  background:transparent!important;
  border-color:var(--kalimera-header-glass-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .notifications-panel :is(.notifications-panel-item,.notifications-panel-close,.notifications-panel-avatar-fallback){
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .notifications-panel .notifications-panel-item.unread{
  background:var(--kalimera-header-glass-item-hover)!important;
  border-inline-start-color:#d9782b!important;
}
body .notifications-panel .notifications-panel-meta{color:var(--kalimera-header-glass-muted)!important}
/* Preserve the calendar's own grid and navigation geometry while restoring
   every control to the same warm header-glass palette. */
body .daily-streak-calendar-dialog .daily-streak-calendar-card :is(.daily-streak-calendar-nav,.daily-streak-calendar-close){
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
  box-shadow:0 5px 14px rgba(10,28,37,.18)!important;
}
body .daily-streak-calendar-dialog .daily-streak-calendar-card .daily-streak-calendar-week{color:var(--kalimera-header-glass-muted)!important}
body .daily-streak-calendar-dialog .daily-streak-calendar-card .daily-streak-calendar-day.is-archived,
body .daily-streak-calendar-dialog .daily-streak-calendar-card .daily-streak-calendar-day.is-earned{
  background:rgba(255,246,233,.92)!important;
  border-color:rgba(217,120,43,.45)!important;
}
body .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface :is(h1,h2,h3,h4,h5,strong,label),
body .daily-streak-calendar-dialog .daily-streak-calendar-card :is(h1,h2,h3,h4,h5,strong,label),
body .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(h1,h2,h3,h4,h5,strong,label),
body .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(h1,h2,h3,h4,h5,strong,label),
body .equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(h1,h2,h3,h4,h5,strong,label),
body .maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(h1,h2,h3,h4,h5,strong,label),
body .maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(h1,h2,h3,h4,h5,strong,label){color:var(--kalimera-header-glass-text)!important}
body .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface :is(p,small,.notifications-panel-message,.notifications-panel-meta),
body .daily-streak-calendar-dialog .daily-streak-calendar-card :is(p,small,.daily-streak-calendar-note),
body .profile-avatar-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(p,small,.profile-status),
body .profile-settings-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(p,small,.profile-status),
body .equipment-maintenance-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(p,small,.profile-status),
body .maintenance-task-editor-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(p,small,.profile-status),
body .maintenance-confirm-dialog.kalimera-responsive-overlay>.profile-avatar-dialog-card.kalimera-overlay-surface :is(p,small,.profile-status){color:var(--kalimera-header-glass-muted)!important}
body .daily-streak-calendar-dialog .daily-streak-calendar-card :is(.daily-streak-calendar-summary>span,.daily-streak-calendar-day,.daily-streak-calendar-saver){
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .daily-streak-calendar-dialog .daily-streak-calendar-card .daily-streak-calendar-day.is-posted small{color:#fff!important}
body .profile-section-nav-dialog .profile-section-nav-item{
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}

/* Canonical child states: popup controls, rows, and actions match the
   navigation rail's translucent white buttons instead of reverting to paper
   surfaces in a later component stylesheet. */
body :is(
  .notifications-panel,
  .daily-streak-calendar-card,
  .profile-avatar-dialog-card,
  .profile-login-dialog-card,
  .shared-preset-import-card,
  .profile-preset-name-card,
  .profile-discard-card,
  .profile-preset-delete-card,
  .profile-bean-wallet-card,
  .bug-report-card,
  .shelf-dialog-card,
  .privacy-consent-banner,
  .privacy-preferences-card,
  .profile-section-nav-sheet,
  .maintenance-task-editor-form,
  .maintenance-confirm-dialog
) :is(button,.profile-secondary-button,.maintenance-icon-button,.maintenance-unknown-date,.privacy-preference-row,.profile-preferences label,.profile-avatar-choice,.profile-generator,.profile-generator-random){
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body :is(
  .notifications-panel,
  .daily-streak-calendar-card,
  .profile-avatar-dialog-card,
  .profile-login-dialog-card,
  .shared-preset-import-card,
  .profile-preset-name-card,
  .profile-discard-card,
  .profile-preset-delete-card,
  .profile-bean-wallet-card,
  .bug-report-card,
  .shelf-dialog-card,
  .privacy-consent-banner,
  .privacy-preferences-card,
  .profile-section-nav-sheet,
  .maintenance-task-editor-form,
  .maintenance-confirm-dialog
) :is(button,.profile-secondary-button,.maintenance-icon-button,.maintenance-unknown-date,.privacy-preference-row,.profile-preferences label,.profile-avatar-choice,.profile-generator,.profile-generator-random):is(:hover,:focus-visible,:active){
  background:var(--kalimera-header-glass-item-hover)!important;
  border-color:rgba(255,255,255,.82)!important;
  color:#fff!important;
}

/* Keep the product's primary action accent while the surrounding popup uses
   the navigation rail treatment. */
body :is(
  .notifications-panel,
  .daily-streak-calendar-card,
  .profile-avatar-dialog-card,
  .profile-login-dialog-card,
  .shared-preset-import-card,
  .profile-preset-name-card,
  .profile-discard-card,
  .profile-preset-delete-card,
  .profile-bean-wallet-card,
  .bug-report-card,
  .shelf-dialog-card,
  .privacy-consent-banner,
  .privacy-preferences-card,
  .profile-section-nav-sheet,
  .maintenance-task-editor-form,
  .maintenance-confirm-dialog
) :is(.profile-primary-button,.maintenance-form-actions button[type=submit],.bug-report-send,.privacy-banner-accept,.privacy-save,.shelf-primary){
  background:#efaa5a!important;
  border-color:#efaa5a!important;
  color:#0a1c25!important;
}
body :is(
  .notifications-panel,
  .daily-streak-calendar-card,
  .profile-avatar-dialog-card,
  .profile-login-dialog-card,
  .shared-preset-import-card,
  .profile-preset-name-card,
  .profile-discard-card,
  .profile-preset-delete-card,
  .profile-bean-wallet-card,
  .bug-report-card,
  .shelf-dialog-card,
  .privacy-consent-banner,
  .privacy-preferences-card,
  .profile-section-nav-sheet,
  .maintenance-task-editor-form,
  .maintenance-confirm-dialog
) :is(.profile-primary-button,.maintenance-form-actions button[type=submit],.bug-report-send,.privacy-banner-accept,.privacy-save,.shelf-primary):is(:hover,:focus-visible){
  background:#ffd39b!important;
  border-color:#ffd39b!important;
  color:#0a1c25!important;
}

/* The post lightbox is also a popup. Preserve its photo-first geometry while
   bringing its readable information panels and navigation actions into the
   same glass family. */
body .lightbox :is(.lightbox-info-panels>.lightbox-brew-details,.lightbox-info-panels>.lightbox-taste,.lightbox-comments,.lightbox-related,.lightbox-related-posts){
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .lightbox .lightbox-navigation{
  border-color:var(--kalimera-header-glass-border)!important;
  background:var(--kalimera-header-glass-background)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
}
body .lightbox .lightbox-navigation .lightbox-nav,
body .lightbox .lightbox-close,
body .lightbox .lightbox-image-action,
body .lightbox .lightbox-social-actions .lightbox-controls button{
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
/* These actions sit on top of an already styled surface. Keep only their
   glyphs visible so they do not create an extra rectangle around the control. */
body #notificationsNavMarkRead,
body .notifications-panel .notifications-panel-heading #notificationsNavMarkRead,
body .lightbox .lightbox-navigation .lightbox-nav{
  background:transparent!important;
  background-image:none!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
body #notificationsNavMarkRead:is(:hover,:focus-visible),
body .notifications-panel .notifications-panel-heading #notificationsNavMarkRead:is(:hover,:focus-visible),
body .lightbox .lightbox-navigation .lightbox-nav:is(:hover,:focus-visible){
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.24)!important;
  box-shadow:none!important;
}
/* Calendar layer cleanup: the non-modal calendar uses a sibling veil because
   browsers do not paint ::backdrop for dialog.show(). The old veil reused the
   blue surface tint and was composited with the card, making the whole screen
   look blue. Keep one neutral blur veil behind the card and keep the card's
   navigation-glass surface as the only calendar surface. */
body .daily-streak-calendar-dialog,
body .daily-streak-calendar-dialog[open]{
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
}
body .daily-streak-calendar-backdrop{
  background:rgba(0,0,0,.28)!important;
  background-image:none!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}
body .daily-streak-calendar-dialog .daily-streak-calendar-card{
  background:var(--kalimera-header-glass-background)!important;
  background-image:none!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
}

/* Popup layer contract: legacy dialogs used to paint their own paper/blue
   surface in addition to the overlay manager. Keep wrappers transparent and
   give every popup exactly one shared navigation-glass card plus one neutral
   blurred veil. */
body :where(dialog[class*="dialog"],dialog[id*="Dialog"]),
body :where(dialog[class*="dialog"])[open],
body :where(dialog[id*="Dialog"])[open]{
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
}
body :where(
  dialog[class*="dialog"]::backdrop,
  dialog[id*="Dialog"]::backdrop
){
  background:rgba(0,0,0,.28)!important;
  background-image:none!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}
body :where(
  .profile-login-dialog-card,
  .account-name-required-card,
  .shared-preset-import-card,
  .profile-preset-name-card,
  .profile-discard-card,
  .profile-preset-delete-card,
  .profile-bean-wallet-card,
  .bug-report-card,
  .shelf-dialog-card,
  .privacy-preferences-card,
  .profile-avatar-dialog-card.kalimera-overlay-surface,
  .notifications-overlay-surface,
  .daily-streak-calendar-card,
  .profile-section-nav-sheet
){
  background:var(--kalimera-header-glass-background)!important;
  background-image:none!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body :where(
  .profile-login-dialog-card,
  .account-name-required-card,
  .shared-preset-import-card,
  .profile-preset-name-card,
  .profile-discard-card,
  .profile-preset-delete-card,
  .profile-bean-wallet-card,
  .bug-report-card,
  .shelf-dialog-card,
  .privacy-preferences-card,
  .profile-avatar-dialog-card,
  .notifications-overlay-surface,
  .daily-streak-calendar-card,
  .profile-section-nav-sheet
) :where(.kalimera-overlay-header,.kalimera-overlay-body,.kalimera-overlay-footer){
  background:transparent!important;
  background-image:none!important;
}
@media(prefers-reduced-motion:reduce){
  body :where(dialog[class*="dialog"]::backdrop,dialog[id*="Dialog"]::backdrop){
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

/* Canonical popup backdrop: match the calendar's neutral veil everywhere.
   Popup cards already share the calendar glass surface; this final cascade
   removes the older blue/opaque dialog backdrops and also covers the
   notifications dialog, whose generated id does not contain "Dialog". */
body #notificationsNavPanel::backdrop,
body #profileAvatarDialog.profile-avatar-dialog.kalimera-responsive-overlay::backdrop,
body #profileCoverDialog.profile-avatar-dialog.kalimera-responsive-overlay::backdrop,
body .profile-avatar-dialog::backdrop,
body .profile-login-dialog::backdrop,
body .shared-preset-import-dialog::backdrop,
body .profile-preset-name-dialog::backdrop,
body .profile-discard-dialog::backdrop,
body .profile-preset-delete-dialog::backdrop,
body .profile-bean-wallet-dialog::backdrop,
body .bug-report-dialog::backdrop,
body .shelf-dialog::backdrop,
body .profile-section-nav-dialog::backdrop,
body .privacy-preferences-dialog::backdrop,
body .equipment-maintenance-dialog.kalimera-responsive-overlay::backdrop,
body .maintenance-task-editor-dialog.kalimera-responsive-overlay::backdrop,
body .maintenance-confirm-dialog.kalimera-responsive-overlay::backdrop,
body .daily-streak-calendar-dialog::backdrop{
  background:rgba(0,0,0,.28)!important;
  background-image:none!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}

/* Final cascade guard for the popup contract. These rules intentionally live
   last because several legacy component blocks use !important declarations. */
body :is(.notifications-panel .notifications-panel-heading,.profile-avatar-dialog .profile-avatar-dialog-heading,.daily-streak-calendar-heading,.profile-section-nav-sheet > header){
  min-block-size:64px!important;
  margin:0!important;
  padding-block:16px!important;
  padding-inline:20px!important;
  border-block-end:1px solid var(--kalimera-header-glass-border)!important;
  background:transparent!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .daily-streak-calendar-heading{padding-inline-start:58px!important}
body :is(.notifications-panel .notifications-panel-close,.daily-streak-calendar-close,.profile-avatar-dialog .profile-avatar-dialog-close,.profile-section-nav-close,.profile-login-dialog-close,.shared-preset-import-close,.profile-preset-name-close,.profile-preset-delete-close,.profile-bean-wallet-close,.bug-report-close,.shelf-dialog-close,.privacy-preferences-close,.media-preview-close,.lightbox .lightbox-close){
  inline-size:36px!important;
  block-size:36px!important;
  min-inline-size:36px!important;
  min-block-size:36px!important;
  max-inline-size:36px!important;
  max-block-size:36px!important;
  aspect-ratio:1!important;
  padding:0!important;
  border-radius:50%!important;
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
  font:800 23px/1 Arial,sans-serif!important;
}
body :is(.notifications-panel .notifications-panel-close,.daily-streak-calendar-close,.profile-avatar-dialog .profile-avatar-dialog-close,.profile-section-nav-close,.profile-login-dialog-close,.shared-preset-import-close,.profile-preset-name-close,.profile-preset-delete-close,.profile-bean-wallet-close,.bug-report-close,.shelf-dialog-close,.privacy-preferences-close,.media-preview-close,.lightbox .lightbox-close):is(:hover,:focus-visible){
  background:var(--kalimera-header-glass-item-hover)!important;
  border-color:rgba(255,255,255,.82)!important;
  color:#fff!important;
}
body .daily-streak-calendar-dialog .daily-streak-calendar-card{opacity:0!important;transform:translate3d(0,var(--motion-distance-enter),0) scale(.97)!important;transition:opacity var(--motion-duration-surface) var(--motion-ease-standard),transform var(--motion-duration-surface) var(--motion-ease-enter)!important}
body .daily-streak-calendar-dialog[open]:not(.is-opening):not(.is-closing) .daily-streak-calendar-card{opacity:1!important;transform:translate3d(0,0,0) scale(1)!important}
body .daily-streak-calendar-dialog.is-closing .daily-streak-calendar-card{opacity:0!important;transform:translate3d(0,var(--motion-distance-enter),0) scale(.97)!important}
body .daily-streak-calendar-backdrop{transition:opacity var(--motion-duration-surface) var(--motion-ease-standard)!important}
@media(max-width:700px){body :is(.notifications-panel .notifications-panel-heading,.profile-avatar-dialog .profile-avatar-dialog-heading,.daily-streak-calendar-heading,.profile-section-nav-sheet > header){min-block-size:60px!important;padding-block:14px!important;padding-inline:16px!important}body .daily-streak-calendar-heading{padding-inline-start:54px!important}body .daily-streak-calendar-dialog .daily-streak-calendar-card{transform:translate3d(0,24px,0) scale(.98)!important}body .daily-streak-calendar-dialog[open]:not(.is-opening):not(.is-closing) .daily-streak-calendar-card{transform:translate3d(0,0,0) scale(1)!important}body .daily-streak-calendar-dialog.is-closing .daily-streak-calendar-card{transform:translate3d(0,24px,0) scale(.98)!important}}
@media(prefers-reduced-motion:reduce){body .daily-streak-calendar-dialog .daily-streak-calendar-card,body .daily-streak-calendar-backdrop{transition:none!important}}

/* Popup contract hardening. The notifications portal has legacy selectors with
   four class components and !important declarations; match that specificity so
   its chrome cannot drift back to the former orange/blue treatment. The
   remaining generated dialogs get the same calendar surface and readable title
   ink without changing their content layout. */
body .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-overlay-surface,
body .notifications-panel.notifications-panel-portal .notifications-overlay-surface,
body .daily-streak-calendar-dialog .daily-streak-calendar-card,
body .profile-avatar-dialog.kalimera-responsive-overlay > .profile-avatar-dialog-card.kalimera-overlay-surface,
body .profile-login-dialog.kalimera-responsive-overlay > .profile-login-dialog-card.kalimera-overlay-surface,
body .shared-preset-import-dialog .shared-preset-import-card,
body .profile-preset-name-dialog .profile-preset-name-card,
body .profile-preset-delete-dialog .profile-preset-delete-card,
body .profile-bean-wallet-dialog .profile-bean-wallet-card,
body .bug-report-dialog .bug-report-card,
body .shelf-dialog .shelf-dialog-card {
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-panel-heading.kalimera-overlay-header,
body .notifications-panel.notifications-panel-portal .notifications-panel-heading.kalimera-overlay-header {
  min-block-size:64px!important;
  margin:0!important;
  padding-block:16px!important;
  padding-inline:20px!important;
  border-block-end:1px solid var(--kalimera-header-glass-border)!important;
  background:transparent!important;
  color:var(--kalimera-header-glass-text)!important;
}
body .notifications-panel.notifications-panel-portal .notifications-panel-heading h2,
body .notifications-panel.notifications-panel-portal .notifications-panel-heading button {
  color:var(--kalimera-header-glass-text)!important;
}
body .notifications-panel.notifications-panel-portal .notifications-panel-heading .notifications-panel-close {
  inline-size:36px!important;
  block-size:36px!important;
  min-inline-size:36px!important;
  min-block-size:36px!important;
  max-inline-size:36px!important;
  max-block-size:36px!important;
  aspect-ratio:1!important;
  padding:0!important;
  border-radius:50%!important;
  background:var(--kalimera-header-glass-item-background)!important;
  border:1px solid var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
  font:800 23px/1 Arial,sans-serif!important;
}
body .notifications-panel.notifications-panel-portal .notifications-panel-heading .notifications-panel-close:is(:hover,:focus-visible){
  background:var(--kalimera-header-glass-item-hover)!important;
  border-color:rgba(255,255,255,.82)!important;
  color:#fff!important;
}
body :is(.shared-preset-import-heading,.profile-preset-name-card > h3,.profile-preset-delete-card > h3,.profile-bean-wallet-card > h2,.bug-report-card > h2,.shelf-dialog-card > h2,.profile-login-dialog-card > h2){
  color:var(--kalimera-header-glass-text)!important;
  font-family:Rubik,Assistant,Arial,sans-serif;
}
body :is(.kalimera-popup-title){
  color:var(--kalimera-header-glass-text)!important;
  font-family:Rubik,Assistant,Arial,sans-serif;
}
body :is(.shared-preset-import-card,.profile-preset-name-card,.profile-preset-delete-card,.profile-bean-wallet-card,.bug-report-card,.shelf-dialog-card,.profile-login-dialog-card) :is(p,small,label,strong,dt,dd){
  color:var(--kalimera-header-glass-muted)!important;
}
@media(max-width:700px){
  body .notifications-panel.notifications-panel-portal.kalimera-responsive-overlay .notifications-panel-heading.kalimera-overlay-header,
  body .notifications-panel.notifications-panel-portal .notifications-panel-heading.kalimera-overlay-header{min-block-size:60px!important;padding-block:14px!important;padding-inline:16px!important}
}

/* Post-view popup parity. The image remains the visual focus, while the
   viewer's reading surface now follows the exact glass contract used by the
   calendar, notifications, and profile dialogs. Keep the veil neutral so it
   separates the page without introducing a second blue surface. */
body .lightbox:not(.image-fullscreen):not([hidden]),
body .lightbox.image-fullscreen:not([hidden]){
  background:rgba(0,0,0,.28)!important;
  background-image:none!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
}
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption{
  display:grid;
  gap:12px;
  width:min(900px,92vw)!important;
  max-width:100%!important;
  margin:0!important;
  padding:20px 22px 18px!important;
  border:1px solid var(--kalimera-header-glass-border)!important;
  border-radius:18px!important;
  background:var(--kalimera-header-glass-background)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
  text-align:start!important;
}
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption :is(#lightboxTitle,#lightboxDescription,.lightbox-uploader,.lightbox-date,.lightbox-image-position){
  color:var(--kalimera-header-glass-text)!important;
}
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption #lightboxDescription,
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption .lightbox-date,
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption .lightbox-image-position{
  color:var(--kalimera-header-glass-muted)!important;
}
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption .lightbox-meta,
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption .lightbox-social-meta,
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption .lightbox-owner-tools,
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption .lightbox-info-panels{
  width:100%!important;
  max-width:none!important;
  margin-inline:auto!important;
}
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-image-frame>img{
  border-radius:16px!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
}
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-comments,
body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-navigation{
  width:min(900px,92vw)!important;
  max-width:100%!important;
}
@media(max-width:700px){
  body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption{
    width:calc(100% - 24px)!important;
    padding:16px 14px 14px!important;
    border-radius:16px!important;
  }
  body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-comments,
  body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-navigation{
    width:calc(100% - 24px)!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-caption,
  body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-image-frame>img{
    transition:none!important;
  }
}

/* Private profile surfaces follow the same frosted navigation language as the
   site's popups. Keep the cover full-bleed, then give the identity/details
   rail a deliberate breathing space so it reads as a separate surface. */
body.profile-page .profile-identity-card .profile-cover{
  border-block-end:1px solid rgba(255,255,255,.62)!important;
  box-shadow:0 8px 22px rgba(10,28,37,.16)!important;
}
body.profile-page .profile-identity-card .profile-identity-lower{
  position:relative;
  z-index:2;
  width:min(var(--profile-content-max-width,1120px),calc(100% - 32px));
  margin-inline:auto!important;
  margin-block-start:18px!important;
  padding:24px!important;
  border:1px solid var(--kalimera-header-glass-border)!important;
  border-radius:20px!important;
  background:var(--kalimera-header-glass-background)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page .profile-identity-card .profile-identity-lower > .profile-identity,
body.profile-page .profile-identity-card .profile-identity-lower > .profile-details-box{
  width:100%!important;
  max-width:none!important;
}
body.profile-page .profile-identity-card .profile-identity-lower .profile-identity-copy :is(h1,h2,h3,h4,strong),
body.profile-page .profile-identity-card .profile-identity-lower .profile-details-box :is(h1,h2,h3,h4,strong,label),
body.profile-page .profile-identity-card .profile-identity-lower .profile-details-box .profile-field-summary-label{
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page .profile-identity-card .profile-identity-lower .profile-details-box :is(p,small,.profile-email,.profile-card-help){
  color:var(--kalimera-header-glass-muted)!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card){
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card) :is(.profile-card-heading h3,.profile-card-heading h4,.profile-card-heading strong,h2,h3,h4,strong,label,dt,dd){
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card) :is(p,small,.profile-card-help,.profile-empty-state,.profile-status){
  color:var(--kalimera-header-glass-muted)!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card) .profile-card-heading{
  border-color:var(--kalimera-header-glass-border)!important;
}
@media(max-width:700px){
  body.profile-page .profile-identity-card .profile-cover{
    box-shadow:0 6px 16px rgba(10,28,37,.14)!important;
  }
  body.profile-page .profile-identity-card .profile-identity-lower{
    width:min(var(--profile-content-max-width,1120px),calc(100% - 24px));
    margin-block-start:14px!important;
    padding:18px 16px 20px!important;
    border-radius:16px!important;
  }
}

/* Profile contrast contract: the journey and overlays share one glass
   language, while identity keeps the warm header surface.  These rules are
   intentionally scoped after the legacy profile overrides so nested rows do
   not inherit a color that disappears against their own background. */
body.profile-page #profileContent > #profileCoffeeJourney{
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:var(--kalimera-header-glass-blur)!important;
  backdrop-filter:var(--kalimera-header-glass-blur)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page #profileCoffeeJourney :is(h1,h2,h3,h4,strong,b,label,dt,dd){color:var(--kalimera-header-glass-text)!important}
body.profile-page #profileCoffeeJourney :is(p,small,span,em){color:var(--kalimera-header-glass-muted)!important}
body.profile-page #profileCoffeeJourney :is(.coffee-journey-wallet,.coffee-journey-next,.coffee-journey-roast,.coffee-journey-achievement,.coffee-journey-weekly,.coffee-journey-reward-note,.coffee-journey-activity>span){
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page #profileCoffeeJourney :is(.coffee-journey-wallet,.coffee-journey-next,.coffee-journey-roast,.coffee-journey-achievement,.coffee-journey-weekly,.coffee-journey-reward-note,.coffee-journey-activity>span) :is(h1,h2,h3,h4,strong,b){color:var(--kalimera-header-glass-text)!important}
body.profile-page #profileCoffeeJourney :is(.coffee-journey-wallet,.coffee-journey-next,.coffee-journey-roast,.coffee-journey-achievement,.coffee-journey-weekly,.coffee-journey-reward-note,.coffee-journey-activity>span) :is(p,small,span,em){color:var(--kalimera-header-glass-muted)!important}
body.profile-page #profileCoffeeJourney .coffee-journey-wallet span,
body.profile-page #profileCoffeeJourney .coffee-journey-wallet b{color:#fffdf9!important}
body.profile-page #profileCoffeeJourney .coffee-journey-wallet svg{color:#ffd494!important}

body.profile-page .profile-identity-card .profile-identity-copy,
.public-profile-page .public-profile-identity-copy{
  background:rgba(255,253,249,.94)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  border-radius:14px!important;
  padding-inline:16px!important;
  padding-block-end:14px!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.04)!important;
  backdrop-filter:blur(12px) saturate(1.04)!important;
  color:var(--ink)!important;
}
body.profile-page .profile-identity-card .profile-identity-copy :is(h1,h2,h3,h4,strong,b,label),
.public-profile-page .public-profile-identity-copy :is(h1,h2,h3,h4,strong,b,label){color:var(--ink)!important}
body.profile-page .profile-identity-card .profile-identity-copy :is(p,small,span),
.public-profile-page .public-profile-identity-copy :is(p,small,span){color:#55707d!important}
body.profile-page .profile-identity-card .profile-identity-copy :is(button,a){
  color:var(--ink)!important;
  border-color:rgba(43,110,143,.34)!important;
}
body.profile-page .profile-identity-card .profile-identity-copy :is(button,a):is(:hover,:focus-visible){
  color:var(--blue)!important;
  border-color:var(--blue)!important;
}

/* The identity copy sits directly on the profile surface.  Do not add a
   second dark (or card-like) layer behind the name and actions. */
body.profile-page .profile-identity-card .profile-identity-copy{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

/* Analytics panels are light reading surfaces on the dark profile rail. */
body.profile-page #profileAnalytics{
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page #profileAnalytics .profile-card-heading{border-color:var(--kalimera-header-glass-border)!important}
body.profile-page #profileAnalytics .profile-card-heading :is(h3,h4,strong){color:var(--kalimera-header-glass-text)!important}
body.profile-page #profileAnalytics .profile-analytics-summary{
  background:var(--kalimera-header-glass-item-background)!important;
  border-color:var(--kalimera-header-glass-item-border)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page #profileAnalytics .profile-analytics-summary-title{color:var(--kalimera-header-glass-text)!important}
body.profile-page #profileAnalytics .profile-analytics-legend-label{color:var(--kalimera-header-glass-muted)!important}
body.profile-page #profileAnalytics .profile-analytics-legend-value{color:var(--kalimera-header-glass-text)!important}
body.profile-page #profileAnalytics .profile-analytics-panel{
  background:rgba(255,253,249,.96)!important;
  border-color:rgba(255,255,255,.72)!important;
  box-shadow:0 5px 12px rgba(10,28,37,.14)!important;
  color:var(--ink)!important;
}
body.profile-page #profileAnalytics .profile-analytics-panel-heading,
body.profile-page #profileAnalytics .profile-analytics-panel-heading h4{color:var(--ink)!important}
body.profile-page #profileAnalytics .profile-analytics-panel-heading span{color:var(--metric-color)!important}
body.profile-page #profileAnalytics .profile-analytics-panel .profile-analytics-grid-line{stroke:rgba(22,53,71,.16)!important}
body.profile-page #profileAnalytics .profile-analytics-panel .profile-analytics-y-label,
body.profile-page #profileAnalytics .profile-analytics-panel .profile-analytics-x-label{
  fill:var(--ink)!important;
  color:var(--ink)!important;
}
body.profile-page #profileAnalytics .profile-analytics-date-axis,
body.profile-page #profileAnalytics .profile-analytics-date-axis time{color:var(--kalimera-header-glass-text)!important}
body.profile-page #profileAnalytics .profile-analytics-scale-note{color:var(--kalimera-header-glass-muted)!important}
body.profile-page #profileAnalytics .profile-analytics-controls :is(button,label){color:var(--ink)!important}
body.profile-page #profileAnalytics .profile-analytics-controls :is(button[aria-pressed="true"]){color:#fffdf9!important}

/* Regression repair: keep profile surfaces readable and make the dialog
   controls reliable on narrow screens.  This block intentionally comes last
   because the legacy profile rules above use !important declarations. */
:root{
  --profile-regression-surface:rgba(255,253,249,.82);
  --profile-regression-border:rgba(10,28,37,.14);
  --profile-regression-ink:#163547;
  --profile-regression-muted:#55707d;
}
body.profile-page #profileContent{
  width:min(1200px,calc(100% - 24px))!important;
  max-width:1200px!important;
  margin-inline:auto!important;
  min-width:0!important;
}
body.profile-page #profile{
  width:100%!important;
  max-width:1200px!important;
  margin-inline:auto!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card):not(#profileCoffeeJourney){
  background:var(--profile-regression-surface)!important;
  border:1px solid var(--profile-regression-border)!important;
  box-shadow:0 14px 30px rgba(10,28,37,.1),inset 0 1px 0 rgba(255,255,255,.56)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.04)!important;
  backdrop-filter:blur(16px) saturate(1.04)!important;
  color:var(--profile-regression-ink)!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card):not(#profileCoffeeJourney) :is(h1,h2,h3,h4,h5,strong,b,label,dt,dd,button,a){color:var(--profile-regression-ink)!important}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card):not(#profileCoffeeJourney) :is(p,small,span,em,.profile-card-help,.profile-empty-state,.profile-status){color:var(--profile-regression-muted)!important}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card):not(#profileCoffeeJourney) :is(.profile-card-heading,.profile-preset-row,.profile-equipment-row,.profile-bean-row,.profile-analytics-summary,.profile-analytics-panel,.maintenance-equipment-row){
  background:rgba(255,255,255,.48)!important;
  border-color:rgba(10,28,37,.12)!important;
  color:var(--profile-regression-ink)!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card):not(#profileCoffeeJourney) :is(button,a){
  background:rgba(255,253,249,.82)!important;
  border-color:rgba(43,110,143,.34)!important;
  color:var(--profile-regression-ink)!important;
}
body.profile-page #profileContent > .profile-card:not(.profile-identity-card):not(#profileCoffeeJourney) :is(button,a):is(:hover,:focus-visible){
  background:rgba(237,245,244,.96)!important;
  border-color:#2b6e8f!important;
  color:#2b6e8f!important;
}
/* The identity rail is the warm header surface; the copy itself is not a
   second card, which removes the nested dark rectangle seen on profile. */
body.profile-page .profile-identity-card .profile-identity-lower{
  background:rgba(255,253,249,.92)!important;
  border-color:rgba(255,255,255,.72)!important;
  box-shadow:0 14px 30px rgba(10,28,37,.1),inset 0 1px 0 rgba(255,255,255,.62)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.04)!important;
  backdrop-filter:blur(16px) saturate(1.04)!important;
  color:var(--profile-regression-ink)!important;
}
body.profile-page .profile-identity-card .profile-identity-copy{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  color:var(--profile-regression-ink)!important;
}
body.profile-page .profile-identity-card .profile-identity-copy :is(h1,h2,h3,h4,strong,b,label,button,a){color:var(--profile-regression-ink)!important}
body.profile-page .profile-identity-card .profile-identity-copy :is(p,small,span){color:var(--profile-regression-muted)!important}
/* Journey intentionally retains the dark navigation-glass treatment. */
body.profile-page #profileContent > #profileCoffeeJourney{
  background:var(--kalimera-header-glass-background)!important;
  border-color:var(--kalimera-header-glass-border)!important;
  box-shadow:var(--kalimera-header-glass-shadow)!important;
  color:var(--kalimera-header-glass-text)!important;
}
body.profile-page #profileCoffeeJourney .coffee-journey-progress-copy strong{
  color:var(--kalimera-header-glass-text)!important;
}
/* Analytics uses a light chart surface so axes and controls remain readable. */
body.profile-page #profileAnalytics{
  background:var(--profile-regression-surface)!important;
  border-color:var(--profile-regression-border)!important;
  box-shadow:0 14px 30px rgba(10,28,37,.1),inset 0 1px 0 rgba(255,255,255,.56)!important;
  color:var(--profile-regression-ink)!important;
}
body.profile-page #profileAnalytics :is(.profile-card-heading h3,.profile-card-heading h4,.profile-analytics-date-axis,.profile-analytics-date-axis time,.profile-analytics-scale-note,.profile-analytics-controls button,.profile-analytics-controls label){color:var(--profile-regression-ink)!important}
body.profile-page #profileAnalytics .profile-analytics-panel{background:rgba(255,253,249,.92)!important;color:var(--profile-regression-ink)!important}
body.profile-page #profileAnalytics .profile-analytics-panel :is(.profile-analytics-panel-heading,.profile-analytics-panel-heading h4,.profile-analytics-y-label,.profile-analytics-x-label){color:var(--profile-regression-ink)!important;fill:var(--profile-regression-ink)!important}
body.profile-page #profileAnalytics .profile-analytics-legend-label{color:var(--profile-regression-muted)!important}
/* The close control owns its full hit target above the heading and dialog
   transition layers. */
body .daily-streak-calendar-dialog .daily-streak-calendar-card{isolation:isolate}
body .daily-streak-calendar-dialog .daily-streak-calendar-heading{position:relative;z-index:1}
body .daily-streak-calendar-dialog .daily-streak-calendar-close{
  z-index:30!important;
  position:absolute!important;
  top:14px!important;
  inset-inline-end:14px!important;
  inset-inline-start:auto!important;
  display:grid!important;
  place-items:center!important;
  inline-size:36px!important;
  block-size:36px!important;
  min-inline-size:36px!important;
  min-block-size:36px!important;
  max-inline-size:36px!important;
  max-block-size:36px!important;
  aspect-ratio:1!important;
  padding:0!important;
  pointer-events:auto!important;
  touch-action:manipulation;
}
/* Settings and notifications share exactly the same scrollbar treatment. */
body .profile-settings-dialog .profile-settings-scroll{
  scrollbar-color:rgba(255,255,255,.5) rgba(255,255,255,.1)!important;
  scrollbar-width:auto;
}
body .profile-settings-dialog .profile-settings-scroll::-webkit-scrollbar{width:8px;height:8px}
body .profile-settings-dialog .profile-settings-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.1)!important;border-radius:999px}
body .profile-settings-dialog .profile-settings-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.5)!important;border:2px solid transparent;border-radius:999px;background-clip:padding-box!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)!important}
body .profile-settings-dialog .profile-settings-scroll::-webkit-scrollbar-thumb:hover{background:#efaa5a!important;background-clip:padding-box!important}
@media(max-width:700px){
  body.profile-page .notifications-panel.notifications-panel-portal,
  body.profile-page .profile-settings-dialog.kalimera-responsive-overlay{
    inset-inline:8px!important;
    width:auto!important;
    max-width:none!important;
    margin-inline:0!important;
  }
  /* Match the homepage's mobile section gutter (the shared page-gutter
     token) so every private-profile section aligns to the same content rail. */
  body.profile-page #profileContent{
    width:calc(100% - (var(--page-gutter,16px) * 2))!important;
    margin-inline:auto!important;
  }
  body .daily-streak-calendar-dialog .daily-streak-calendar-card{max-block-size:calc(100dvh - 16px)!important}
}

/* Feed/post polish: keep the daily tip in the same compact glass language as
   the profile quick-navigation rail, while leaving the page surface visible
   around it. */
body #today .daily-tip-inner{
  display:flex!important;
  justify-content:flex-start!important;
  width:100%!important;
  min-width:0!important;
  margin-inline:0!important;
}
body #today .daily-tip-inner .tip-of-day{
  max-width:min(620px,100%)!important;
  margin-inline:0!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:16px!important;
  background:rgba(18,42,53,.5)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.28)!important;
  -webkit-backdrop-filter:blur(8px) saturate(1.08)!important;
  backdrop-filter:blur(8px) saturate(1.08)!important;
  color:#fffdf9!important;
}
body #today .daily-tip-inner .tip-of-day :is(.tip-of-day-title,.tip-of-day-copy){color:#fffdf9!important}

/* The information panels should read as neutral, translucent paper rather
   than blue blocks. The lightbox backdrop remains dark and blurred so the
   photo still has a clear, focused stage. */
body .lightbox :is(
  .lightbox-info-panels>.lightbox-brew-details,
  .lightbox-info-panels>.lightbox-taste,
  .lightbox-comments,
  .lightbox-related,
  .lightbox-related-posts
){
  background:rgba(255,253,249,.9)!important;
  border-color:rgba(10,28,37,.16)!important;
  box-shadow:0 10px 24px rgba(10,28,37,.14)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.04)!important;
  backdrop-filter:blur(12px) saturate(1.04)!important;
  color:#163547!important;
}
body .lightbox :is(
  .lightbox-info-panels>.lightbox-brew-details,
  .lightbox-info-panels>.lightbox-taste,
  .lightbox-comments,
  .lightbox-related,
  .lightbox-related-posts
) :is(h2,h3,h4,h5,strong,b,summary,.lightbox-brew-details-list,.lightbox-taste-rows,.lightbox-brew-value,.lightbox-taste-row span,.comment-item p,.comment-meta strong,.comments-empty){color:#163547!important}
body .lightbox :is(.lightbox-brew-key,.lightbox-taste-row strong,.comment-meta time,.lightbox-related-meta,.lightbox-related-date){color:#55707d!important}
body .lightbox .lightbox-comments .comment-item{background:rgba(237,245,244,.72)!important;border-color:rgba(10,28,37,.12)!important;color:#163547!important}
body .lightbox .lightbox-comments .comment-item.comment-reply{background:rgba(239,170,90,.18)!important;border-color:rgba(180,93,52,.26)!important}
body .lightbox .lightbox-comments :is(.comment-reply-button,.comment-cancel-reply){color:#2b6e8f!important}

/* The bean heading and its roast/date details are separate rows on phones;
   this avoids a pipe separator being glued to the bean name. */
.lightbox-beans{display:flex!important;align-items:baseline;gap:7px;flex-wrap:wrap}
.lightbox-beans-name,.lightbox-beans-details{display:inline-block;min-width:0}
@media(max-width:700px){
  body #today .daily-tip-inner{
    width:calc(100% - 40px)!important;
    margin-inline-start:auto!important;
    margin-inline-end:20px!important;
  }
  body #today .daily-tip-inner .tip-of-day{width:100%!important;max-width:none!important}
  .lightbox-beans{display:grid!important;gap:2px!important;justify-items:start!important;line-height:1.3}
  .lightbox-beans-name,.lightbox-beans-details{display:block!important}
  body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-navigation{
    width:min(620px,calc(100% - 24px))!important;
    margin-inline:auto!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  body .lightbox:not(.image-fullscreen):not([hidden])>.lightbox-navigation .lightbox-nav{
    background:rgba(255,255,255,.12)!important;
  }
  body .lightbox .lightbox-social-actions .lightbox-controls{
    position:fixed!important;
    inset-inline-start:auto!important;
    inset-inline-end:12px!important;
    top:auto!important;
    bottom:calc(16px + env(safe-area-inset-bottom,0px))!important;
    z-index:2005!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

/* Decorative vector rings belong to the page background, not section cards.
   Remove the journey card's legacy ornament so the surface stays clean. */
body.profile-page #profileCoffeeJourney::before,
body.profile-page #profileCoffeeJourney::after,
body.profile-page .profile-coffee-journey::before,
body.profile-page .profile-coffee-journey::after{
  content:none!important;
  display:none!important;
  background-image:none!important;
  box-shadow:none!important;
}
