:root{
  --dkvf-wine:#6f1839;
  --dkvf-wine-dark:#4e1028;
  --dkvf-gold:#ead9a6;
  --dkvf-bg:#fbf8f1;
  --dkvf-card:#ffffff;
  --dkvf-text:#2b2427;
  --dkvf-muted:#746a6e;
  --dkvf-line:#e6ded8;
  --dkvf-soft:#f5f0e8;
  --dkvf-alert:#fff4cf;
}
.dkvf-fe{max-width:1040px;margin:0 auto;padding:18px 14px 44px;color:var(--dkvf-text);font-family:inherit;box-sizing:border-box}
.dkvf-fe *{box-sizing:border-box}
.dkvf-fe h1,.dkvf-fe h2,.dkvf-fe p{margin-top:0}
.dkvf-fe h1{font-size:clamp(1.7rem,5vw,2.3rem);line-height:1.12;margin-bottom:8px}
.dkvf-fe h2{font-size:clamp(1.2rem,4vw,1.55rem);margin-bottom:12px}
.dkvf-fe-eyebrow{text-transform:uppercase;letter-spacing:.07em;font-size:.74rem;font-weight:700;color:var(--dkvf-wine);margin-bottom:6px}
.dkvf-fe-meta,.dkvf-fe-muted{color:var(--dkvf-muted);font-size:.9rem;line-height:1.45}

.dkvf-fe-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 17px;border-radius:8px;border:1px solid var(--dkvf-wine);background:#fff;color:var(--dkvf-wine);font-weight:700;text-decoration:none!important;cursor:pointer}
.dkvf-fe-btn:hover,.dkvf-fe-btn:focus{background:var(--dkvf-soft)}
.dkvf-fe-btn-primary{background:var(--dkvf-wine);border-color:var(--dkvf-wine);color:#fff!important}
.dkvf-fe-btn-primary:hover,.dkvf-fe-btn-primary:focus{background:var(--dkvf-wine-dark)}

.dkvf-fe-card{background:var(--dkvf-card);border:1px solid var(--dkvf-line);border-radius:12px;padding:18px}
.dkvf-fe-hero,.dkvf-fe-member-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}
.dkvf-fe-hero{background:var(--dkvf-bg);border:1px solid var(--dkvf-line);border-top:4px solid var(--dkvf-wine);padding:22px;border-radius:12px}
.dkvf-fe-hero p{max-width:670px;margin-bottom:0}

.dkvf-fe-search-card{margin-bottom:28px}
.dkvf-fe-search{display:flex;gap:8px}
.dkvf-fe-search input{width:100%;min-height:48px;border:1px solid #cfc6c1;border-radius:8px;padding:10px 13px;font-size:16px;background:#fff;color:var(--dkvf-text)}
.dkvf-fe-search input:focus{outline:2px solid rgba(111,24,57,.16);border-color:var(--dkvf-wine)}
.dkvf-fe-result-count{margin:12px 0 0;font-size:.9rem;font-weight:700;color:var(--dkvf-wine)}
.dkvf-fe-search-hint{margin:12px 0 0;padding:9px 11px;background:var(--dkvf-soft);border-radius:8px;font-size:.9rem}
.dkvf-fe-list-choice{margin-top:8px;color:var(--dkvf-muted);font-size:.84rem}

.dkvf-fe-wine-list{margin-top:14px;display:grid;gap:8px}
.dkvf-fe-wine-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:13px 14px;border:1px solid var(--dkvf-line);border-radius:9px;background:#fff}
.dkvf-fe-wine-row>div:first-child{min-width:0}
.dkvf-fe-wine-row strong{font-size:1rem;line-height:1.35}
.dkvf-fe-score{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap;min-width:76px}
.dkvf-fe-score strong{font-size:1.1rem;color:var(--dkvf-wine)}
.dkvf-fe-score span,.dkvf-fe-score small{font-size:.78rem;color:var(--dkvf-muted)}
.dkvf-fe-vmp{display:inline-flex;margin-top:7px;padding:3px 8px;border:1px solid #dfcf99;border-radius:999px;background:#fbf5df;color:#5b4614;font-size:.76rem;font-weight:700}

.dkvf-fe-pagination{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:18px}
.dkvf-fe-pagination a,.dkvf-fe-pagination span{min-width:38px;min-height:38px;padding:7px 10px;border:1px solid var(--dkvf-line);border-radius:7px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;color:var(--dkvf-wine);background:#fff}
.dkvf-fe-pagination a:hover,.dkvf-fe-pagination a:focus{border-color:var(--dkvf-wine);background:var(--dkvf-soft)}
.dkvf-fe-pagination a.is-current{background:var(--dkvf-wine);color:#fff;border-color:var(--dkvf-wine)}

.dkvf-fe-section{margin-top:28px}
.dkvf-fe-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.dkvf-fe-section-head span{font-size:.82rem;color:var(--dkvf-muted)}
.dkvf-fe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dkvf-fe-experience p{line-height:1.5}
.dkvf-fe-food{background:var(--dkvf-soft);border-radius:8px;padding:10px 12px;margin-top:12px}
.dkvf-fe-text-link{color:var(--dkvf-wine);font-weight:700;text-decoration:none}

.dkvf-fe-next{background:var(--dkvf-wine);color:#fff;padding:22px;border-radius:12px;margin-bottom:16px}
.dkvf-fe-next .dkvf-fe-eyebrow{color:#fff}
.dkvf-fe-next h2{font-size:clamp(1.5rem,5.5vw,2.05rem);margin-bottom:9px;color:#fff!important}
.dkvf-fe-next-meta{display:flex;flex-wrap:wrap;gap:7px 15px;font-weight:600;margin-bottom:12px}
.dkvf-fe-next p{color:#f7edf1}
.dkvf-fe-next .dkvf-fe-btn-primary{background:#fff;color:var(--dkvf-wine)!important;border-color:#fff}
.dkvf-fe-reminder{background:var(--dkvf-alert);border:1px solid #ead58f;border-radius:10px;padding:15px;display:flex;justify-content:space-between;align-items:center;gap:14px;margin:16px 0}
.dkvf-fe-reminder strong{display:block;margin-bottom:4px}
.dkvf-fe-calendar{background:#fff;border:1px solid var(--dkvf-line);border-radius:10px;overflow:hidden}
.dkvf-fe-meeting-row{display:flex;align-items:center;gap:13px;padding:13px 14px}
.dkvf-fe-meeting-row+.dkvf-fe-meeting-row{border-top:1px solid var(--dkvf-line)}
.dkvf-fe-datebox{width:48px;min-width:48px;height:51px;border-radius:8px;background:var(--dkvf-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--dkvf-wine);line-height:1}
.dkvf-fe-datebox strong{font-size:1.15rem}.dkvf-fe-datebox span{text-transform:uppercase;font-size:.69rem;margin-top:4px}.dkvf-fe-meeting-main{min-width:0}
.dkvf-fe-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:26px}
.dkvf-fe-action{min-height:120px;border:1px solid var(--dkvf-line);border-radius:10px;background:#fff;padding:15px;text-decoration:none!important;color:var(--dkvf-text)!important;display:flex;flex-direction:column;justify-content:flex-end}
.dkvf-fe-action-icon{font-size:1.55rem;margin-bottom:auto;color:var(--dkvf-wine)}
.dkvf-fe-action strong{font-size:1rem}.dkvf-fe-action small{color:var(--dkvf-muted);margin-top:3px}

@media(max-width:700px){
  .dkvf-fe{padding:12px 10px 34px}
  .dkvf-fe-hero,.dkvf-fe-member-head{flex-direction:column;align-items:stretch}
  .dkvf-fe-hero .dkvf-fe-btn{width:100%}
  .dkvf-fe-grid{grid-template-columns:1fr}
  .dkvf-fe-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dkvf-fe-search{flex-direction:column}
  .dkvf-fe-search .dkvf-fe-btn{width:100%}
  .dkvf-fe-reminder{flex-direction:column;align-items:stretch}
  .dkvf-fe-reminder .dkvf-fe-btn{width:100%}
  .dkvf-fe-next{padding:19px 17px}
  .dkvf-fe-wine-row{gap:10px;padding:12px}
  .dkvf-fe-score small{white-space:normal;text-align:right}
  .dkvf-fe-pagination{justify-content:center}
}
@media(max-width:390px){
  .dkvf-fe-actions{grid-template-columns:1fr}
  .dkvf-fe-action{min-height:88px}
  .dkvf-fe-action-icon{margin-bottom:10px}
  .dkvf-fe-next-meta{flex-direction:column;gap:4px}
  .dkvf-fe-wine-row{flex-direction:column}
  .dkvf-fe-score{align-items:flex-start;min-width:0}
}


/* Meldinger */
.dkvf-fe-message-launcher{margin-top:24px;display:flex;align-items:center;gap:9px;width:100%;min-height:56px;padding:12px 16px;border:1px solid var(--dkvf-line);border-radius:10px;background:#fff;color:var(--dkvf-wine)!important;text-decoration:none!important}
.dkvf-fe-message-launcher:hover,.dkvf-fe-message-launcher:focus{border-color:var(--dkvf-wine);background:var(--dkvf-soft)}
.dkvf-fe-message-launcher.has-unread{border-color:var(--dkvf-wine);font-weight:700}
.dkvf-fe-message-icon{font-size:1.25rem}
.dkvf-fe-message-badge{margin-left:auto;min-width:28px;height:28px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--dkvf-wine);color:#fff;font-size:.82rem;font-weight:800}
.dkvf-fe-messages-panel{margin-top:26px;padding:18px;border:1px solid var(--dkvf-line);border-radius:12px;background:#fff}
.dkvf-fe-messages-panel h2,.dkvf-fe-messages-panel h3{margin-top:0}
.dkvf-fe-message-notice{margin:0 0 14px;padding:10px 12px;border-radius:8px;background:var(--dkvf-alert);border:1px solid #ead58f}
.dkvf-fe-messages-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:18px;align-items:start}
.dkvf-fe-conversation-list{display:grid;gap:8px}
.dkvf-fe-conversation{position:relative;display:grid;gap:3px;padding:12px 44px 12px 13px;border:1px solid var(--dkvf-line);border-radius:9px;background:#fff;color:var(--dkvf-text)!important;text-decoration:none!important}
.dkvf-fe-conversation:hover,.dkvf-fe-conversation:focus{border-color:var(--dkvf-wine);background:var(--dkvf-soft)}
.dkvf-fe-conversation span,.dkvf-fe-conversation small{font-size:.82rem;color:var(--dkvf-muted)}
.dkvf-fe-conversation b{position:absolute;right:10px;top:10px;padding:3px 7px;border-radius:999px;background:var(--dkvf-wine);color:#fff;font-size:.7rem}
.dkvf-fe-conversation.is-unread{border-left:4px solid var(--dkvf-wine)}
.dkvf-fe-new-message{display:grid;gap:11px;padding:14px;border-radius:10px;background:var(--dkvf-soft)}
.dkvf-fe-new-message label{display:grid;gap:5px}
.dkvf-fe-new-message input[type=text],.dkvf-fe-new-message textarea,.dkvf-fe-new-message select,.dkvf-fe-chat-reply textarea{width:100%;border:1px solid #cfc6c1;border-radius:8px;background:#fff;color:var(--dkvf-text);padding:10px 11px;font:inherit}
.dkvf-fe-new-message select{min-height:145px}
.dkvf-fe-all-members{grid-template-columns:auto 1fr!important;align-items:center;justify-content:start}
.dkvf-fe-all-members input{margin:0}
.dkvf-fe-chat-head{padding-bottom:12px;border-bottom:1px solid var(--dkvf-line)}
.dkvf-fe-chat-thread{display:grid;gap:10px;margin:16px 0;max-height:520px;overflow:auto;padding-right:4px}
.dkvf-fe-chat-bubble{max-width:78%;padding:11px 12px;border-radius:10px;background:var(--dkvf-soft);line-height:1.45}
.dkvf-fe-chat-bubble.is-me{margin-left:auto;background:#f3e8ed}
.dkvf-fe-chat-author{margin-bottom:5px;color:var(--dkvf-muted);font-size:.76rem;font-weight:700}
.dkvf-fe-chat-bubble p:last-child{margin-bottom:0}
.dkvf-fe-chat-reply{display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--dkvf-line)}
.dkvf-fe-chat-reply .dkvf-fe-btn{justify-self:start}

@media(max-width:700px){
  .dkvf-fe-messages-grid{grid-template-columns:1fr}
  .dkvf-fe-chat-bubble{max-width:92%}
  .dkvf-fe-message-launcher{position:sticky;bottom:8px;z-index:20;box-shadow:0 5px 20px rgba(0,0,0,.10)}
}

/* DKVF PWA */
.dkvf-pwa-install{width:100%;margin:14px 0 0;padding:13px 16px;border:1px solid var(--dkvf-gold);border-radius:10px;background:var(--dkvf-card);color:var(--dkvf-wine);font:inherit;font-weight:700;text-align:left;cursor:pointer}
.dkvf-pwa-install:hover,.dkvf-pwa-install:focus{background:var(--dkvf-soft)}
.dkvf-pwa-install[hidden]{display:none!important}

/* Møteplan – frontend trinn 1 */
.dkvf-fe-back{display:inline-block;margin-bottom:16px}
.dkvf-fe-plan-head{padding:20px 22px;margin-bottom:14px;border-radius:12px;background:var(--dkvf-wine);color:#fff}
.dkvf-fe-plan-head h1{color:#fff!important;margin-bottom:8px}.dkvf-fe-plan-head .dkvf-fe-eyebrow,.dkvf-fe-plan-head .dkvf-fe-next-meta{color:#fff}
.dkvf-fe-plan-notice{margin:0 0 14px;padding:11px 13px;border:1px solid #d8c68d;border-radius:9px;background:var(--dkvf-alert);font-weight:700}
.dkvf-fe-plan-hosts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.dkvf-fe-plan-hosts .dkvf-fe-card{display:grid;gap:4px}.dkvf-fe-plan-hosts strong{font-size:1.05rem}
.dkvf-fe-course-grid{display:grid;gap:14px}.dkvf-fe-course-card{padding:18px;border:1px solid var(--dkvf-line);border-top:4px solid var(--dkvf-wine);border-radius:12px;background:#fff}.dkvf-fe-course-card h2{margin:2px 0 14px}
.dkvf-fe-course-card label{display:grid;gap:5px;margin-top:12px}.dkvf-fe-course-card label>span{font-size:.82rem;font-weight:800;color:var(--dkvf-muted)}
.dkvf-fe-course-card input,.dkvf-fe-course-card textarea,.dkvf-fe-course-card select{width:100%;padding:10px 11px;border:1px solid #cfc6c1;border-radius:8px;background:#fff;color:var(--dkvf-text);font:inherit}.dkvf-fe-course-card textarea{resize:vertical}
.dkvf-fe-plan-statuses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dkvf-fe-plan-save{position:sticky;bottom:8px;z-index:15;margin-top:14px;padding:10px;border:1px solid var(--dkvf-line);border-radius:10px;background:rgba(251,248,241,.96);box-shadow:0 4px 18px rgba(0,0,0,.08)}.dkvf-fe-plan-save .dkvf-fe-btn{width:100%}
.dkvf-fe-next .dkvf-fe-plan-btn{margin-left:7px;border-color:#fff;color:#fff!important;background:transparent}.dkvf-fe-next .dkvf-fe-plan-btn:hover{background:rgba(255,255,255,.12)}
@media(max-width:700px){.dkvf-fe-plan-hosts,.dkvf-fe-plan-statuses{grid-template-columns:1fr}.dkvf-fe-plan-head{padding:18px 16px}.dkvf-fe-course-card{padding:15px}.dkvf-fe-next .dkvf-fe-plan-btn{margin:8px 0 0;width:100%}}

/* Årshjul 0.3.2 */
.dkvf-fe-yearwheel{max-width:1100px;margin:0 auto}
.dkvf-fe-year-nav{display:flex;justify-content:space-between;gap:12px;margin:14px 0 20px}
.dkvf-fe-year-nav a{color:var(--dkvf-wine,#6f1839);font-weight:700;text-decoration:none}
.dkvf-fe-year-create{margin-bottom:20px}
.dkvf-fe-year-form{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:14px;align-items:end}
.dkvf-fe-year-form label,.dkvf-fe-year-roles label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.dkvf-fe-year-form input,.dkvf-fe-year-form select,.dkvf-fe-year-roles select{width:100%;box-sizing:border-box}
.dkvf-fe-year-form .dkvf-fe-grow{grid-column:span 2}
.dkvf-fe-year-submit{grid-column:1/-1}
.dkvf-fe-year-list{display:grid;gap:14px}
.dkvf-fe-year-meeting{display:grid;gap:14px}
.dkvf-fe-year-meeting-head{display:flex;gap:14px;align-items:center}
.dkvf-fe-year-meeting-head h2{margin:0 0 4px}
.dkvf-fe-year-roles{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto auto;gap:12px;align-items:end}
.dkvf-fe-plan-role{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:#fff;border:1px solid var(--dkvf-line,#e6ddd2)}
.dkvf-fe-planner input:disabled,.dkvf-fe-planner textarea:disabled,.dkvf-fe-planner select:disabled{opacity:.68;cursor:not-allowed;background:#f3eee7}
@media(max-width:760px){.dkvf-fe-year-form{grid-template-columns:1fr 1fr}.dkvf-fe-year-form .dkvf-fe-grow{grid-column:1/-1}.dkvf-fe-year-roles{grid-template-columns:1fr}.dkvf-fe-year-meeting-head{align-items:flex-start}}
@media(max-width:520px){.dkvf-fe-year-form{grid-template-columns:1fr}.dkvf-fe-year-form .dkvf-fe-grow{grid-column:auto}}

/* 0.3.6 – vinvertinnens søkearbeidsbord */
.dkvf-fe-wine-workbench .dkvf-fe-food-brief{background:rgba(118,76,35,.08)}
.dkvf-fe-wine-search{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.dkvf-fe-wine-search label{min-width:min(100%,420px)}
.dkvf-fe-course-wine-action{margin-top:16px;padding-top:14px;border-top:1px solid rgba(0,0,0,.08)}
.dkvf-fe-wine-workbench .dkvf-fe-wine-row form{margin-left:auto}
@media(max-width:700px){.dkvf-fe-wine-search>*{width:100%}.dkvf-fe-wine-workbench .dkvf-fe-wine-row{align-items:flex-start}.dkvf-fe-wine-workbench .dkvf-fe-wine-row form{margin-left:0;margin-top:10px}}

/* 0.3.8 – kandidat til valgt/bestilt/bekreftet */
.dkvf-fe-candidate-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}
.dkvf-fe-status-chip{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--dkvf-soft);font-weight:800;color:var(--dkvf-wine)}
.dkvf-fe-selected-wines{margin-top:16px}.dkvf-fe-selection-card{margin-top:14px;padding:16px;border:1px solid var(--dkvf-line);border-radius:10px;background:#fff}.dkvf-fe-selection-card h3{margin-top:0}.dkvf-fe-selection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dkvf-fe-selection-card label{display:grid;gap:5px;margin-top:10px}.dkvf-fe-selection-card label>span{font-size:.82rem;font-weight:800;color:var(--dkvf-muted)}.dkvf-fe-selection-card input,.dkvf-fe-selection-card select,.dkvf-fe-selection-card textarea{width:100%;padding:10px 11px;border:1px solid #cfc6c1;border-radius:8px;background:#fff;color:var(--dkvf-text);font:inherit}.dkvf-fe-selection-grid .dkvf-fe-grow{grid-column:span 2}.dkvf-fe-selection-actions{margin-top:12px}.dkvf-fe-remove-selection{margin:6px 0 18px;text-align:right}
@media(max-width:700px){.dkvf-fe-selection-grid{grid-template-columns:1fr}.dkvf-fe-selection-grid .dkvf-fe-grow{grid-column:auto}.dkvf-fe-candidate-actions{margin-left:0;width:100%}}

.dkvf-fe-finish-wine-choice{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(122,31,54,.18)}
/* 0.3.10: tydelig individuell status direkte i kandidatlisten */
.dkvf-fe-inline-selection{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dkvf-fe-inline-status-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dkvf-fe-inline-status-form select{padding:8px 10px;border:1px solid #cfc6c1;border-radius:8px;background:#fff;color:var(--dkvf-text);font:inherit}
@media(max-width:700px){.dkvf-fe-inline-selection,.dkvf-fe-inline-status-form{width:100%}.dkvf-fe-inline-status-form select,.dkvf-fe-inline-status-form .dkvf-fe-btn{width:100%}}


/* 0.3.14: små hurtigsøk fra offentlig vinliste */
.dkvf-fe-external-wine-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 7px;
}
.dkvf-fe-external-wine-links a {
  display: inline-block;
  padding: 5px 8px;
  border: 1px solid rgba(91,23,48,.24);
  border-radius: 999px;
  text-decoration: none;
  font-size: .78rem;
  line-height: 1.2;
  white-space: nowrap;
}
.dkvf-fe-external-wine-links a:hover,
.dkvf-fe-external-wine-links a:focus {
  text-decoration: underline;
}


/* 0.3.16: avlyste møter og sletting i årshjul */
.dkvf-fe-year-meeting.is-cancelled {
  opacity: .68;
}
.dkvf-fe-year-meeting.is-cancelled h2 {
  text-decoration: line-through;
}
.dkvf-fe-year-meeting.is-cancelled::before {
  content: "Avlyst";
  display: inline-block;
  margin-bottom: 8px;
  font-weight: 700;
}
.dkvf-fe-year-delete {
  margin-top: 8px;
}

/* 0.3.17: gjennomført møte og faktisk deltakelse */
.dkvf-fe-year-meeting.is-completed{opacity:.82}
.dkvf-fe-year-meeting.is-completed::before{content:"Gjennomført";display:inline-block;margin-bottom:8px;font-weight:700}
.dkvf-fe-year-attendance{margin-top:14px;padding-top:12px;border-top:1px solid rgba(91,23,48,.16)}
.dkvf-fe-year-attendance fieldset{border:0;padding:0;margin:0 0 10px}
.dkvf-fe-year-attendance legend{font-weight:700;margin-bottom:8px}
.dkvf-fe-attendee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}
.dkvf-fe-attendee-grid label{display:flex;align-items:center;gap:7px}
.dkvf-fe-attendee-count{margin-left:8px;font-size:.88rem}
@media(max-width:620px){.dkvf-fe-attendee-grid{grid-template-columns:1fr}}


/* 0.3.20: faktisk deltakelse på selve møtesiden */
.dkvf-fe-meeting-attendance {
  margin-top: 16px;
}
.dkvf-fe-meeting-attendance .dkvf-fe-attendee-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px 14px;
}
.dkvf-fe-meeting-attendance .dkvf-fe-attendee-grid label {
  display: flex;
  align-items: center;
  gap: 7px;
}
@media(max-width:620px){
  .dkvf-fe-meeting-attendance .dkvf-fe-attendee-grid {
    grid-template-columns: 1fr;
  }
}


/* 0.3.22: mobil-først smaksskjema, én vin om gangen */
.dkvf-fe-tasting-head{margin:10px 0 16px}
.dkvf-fe-tasting-head h1{margin:.2rem 0}
.dkvf-fe-tasting-list{display:grid;gap:10px}
.dkvf-fe-tasting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none}
.dkvf-fe-tasting-form{display:grid;gap:12px}
.dkvf-fe-tasting-form h2{margin-top:0}
.dkvf-fe-tasting-form h3{font-size:.95rem;margin:14px 0 7px}
.dkvf-fe-choice-row{display:flex;flex-wrap:wrap;gap:7px}
.dkvf-fe-choice-row label,.dkvf-fe-check-grid label{cursor:pointer}
.dkvf-fe-choice-row input,.dkvf-fe-check-grid input{position:absolute;opacity:0;pointer-events:none}
.dkvf-fe-choice-row span,.dkvf-fe-check-grid span{display:block;border:1px solid rgba(91,23,48,.25);border-radius:999px;padding:9px 12px;line-height:1.1}
.dkvf-fe-choice-row input:checked+span,.dkvf-fe-check-grid input:checked+span{font-weight:700;border-width:2px}
.dkvf-fe-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.dkvf-fe-check-grid span{text-align:center}
.dkvf-fe-tasting-note{display:grid;gap:6px;margin-top:16px}
.dkvf-fe-tasting-note textarea{width:100%;box-sizing:border-box}
.dkvf-fe-score-card{text-align:center}
.dkvf-fe-big-score{font-size:2.2rem}
.dkvf-fe-tasting-actions{display:flex;flex-wrap:wrap;gap:8px;position:sticky;bottom:8px;padding:8px 0}
.dkvf-fe-host-reason{margin-top:14px}
@media(max-width:620px){
 .dkvf-fe-choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .dkvf-fe-choice-row span{padding:11px 6px;text-align:center}
 .dkvf-fe-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dkvf-fe-tasting-actions .dkvf-fe-btn{flex:1 1 100%}
}
/* 0.3.25 møteavslutning */
.dkvf-fe-close-meeting,.dkvf-fe-snapshot{margin-top:16px}.dkvf-fe-snapshot-wine{padding:14px 0;border-top:1px solid rgba(91,23,48,.16)}.dkvf-fe-snapshot-wine h3{margin:.25rem 0}

/* 0.3.26: turer vises automatisk i årshjulet fra dkvf_trips */
.dkvf-fe-year-trip{border-left:4px solid rgba(91,23,48,.45)}
.dkvf-fe-year-trip h2{margin:.25rem 0}

/* 0.3.27: klikkbare aktivitetsrader og meldinger som første innhold */
.dkvf-fe-meeting-link{color:inherit;text-decoration:none}
.dkvf-fe-meeting-link:hover,.dkvf-fe-meeting-link:focus{background:rgba(91,23,48,.045)}
.dkvf-fe-row-arrow{font-size:1.6rem;color:#6b2735;align-self:center}


/* 0.3.29: årshjul som utbrett + turer på forsiden */
.dkvf-fe-year-accordion{
  padding:0;
  overflow:hidden;
}
.dkvf-fe-year-accordion > summary{
  list-style:none;
}
.dkvf-fe-year-accordion > summary::-webkit-details-marker{display:none}
.dkvf-fe-year-summary{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:center;
  padding:13px 16px;
  cursor:pointer;
}
.dkvf-fe-year-summary:hover,
.dkvf-fe-year-summary:focus{background:rgba(91,23,48,.035)}
.dkvf-fe-year-summary h2{margin:0;font-size:1.15rem}
.dkvf-fe-year-summary-main{min-width:0}
.dkvf-fe-year-chevron{
  font-size:1.7rem;
  line-height:1;
  color:#6b2735;
  transition:transform .15s ease;
}
.dkvf-fe-year-accordion[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-year-expanded{
  border-top:1px solid rgba(91,23,48,.14);
  padding:15px 16px 16px;
}
.dkvf-fe-trip-row .dkvf-fe-datebox{border-left:3px solid rgba(91,23,48,.48)}
@media(max-width:620px){
  .dkvf-fe-year-summary{padding:11px 12px;gap:9px}
  .dkvf-fe-year-expanded{padding:12px}
  .dkvf-fe-year-summary h2{font-size:1rem}
}


/* 0.3.30: Møtearkiv i samme utbrett-format som årshjulet */
.dkvf-fe-archive-years{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0 0 12px;
}
.dkvf-fe-archive-years a{
  display:inline-flex;
  min-width:62px;
  justify-content:center;
  padding:8px 12px;
  border:1px solid rgba(91,23,48,.25);
  border-radius:8px;
  text-decoration:none;
  color:#6b2735;
  background:#fff;
  font-weight:700;
}
.dkvf-fe-archive-years a.is-active{
  background:#7a2339;
  color:#fff;
  border-color:#7a2339;
}
.dkvf-fe-archive-year-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:11px 14px;
}
.dkvf-fe-archive-year-head strong{font-size:1.2rem;color:#5b1730}
.dkvf-fe-archive-list{display:grid;gap:9px}
.dkvf-fe-archive-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 14px;
  margin-bottom:12px;
}
.dkvf-fe-archive-facts div{
  display:grid;
  gap:2px;
  padding:8px 0;
  border-bottom:1px solid rgba(91,23,48,.1);
}
.dkvf-fe-archive-facts span{font-size:.82rem;color:#79676d}
@media(max-width:620px){
  .dkvf-fe-archive-years{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}
  .dkvf-fe-archive-facts{grid-template-columns:1fr}
}


/* 0.3.32: samme turkilde på forsiden/årshjulet + Nytt møte som utbrett */
.dkvf-fe-year-new-meeting{padding:0;overflow:hidden}
.dkvf-fe-year-new-meeting>summary{list-style:none}
.dkvf-fe-year-new-meeting>summary::-webkit-details-marker{display:none}
.dkvf-fe-year-new-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 16px;
  cursor:pointer;
}
.dkvf-fe-year-new-summary strong{display:block;color:#5b1730;font-size:1.05rem}
.dkvf-fe-year-new-summary small{display:block;margin-top:2px;color:#79676d;font-size:.82rem}
.dkvf-fe-year-new-meeting[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}


/* 0.3.34: Finn vin som ren DKVF-frontend */
.dkvf-fe-member-wine-search form{display:grid;gap:10px}
.dkvf-fe-wine-search-main{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}
.dkvf-fe-wine-search-main label,.dkvf-fe-wine-filter-grid label{display:grid;gap:5px;font-weight:700}
.dkvf-fe-wine-search-main input,.dkvf-fe-wine-filter-grid input{
  width:100%;box-sizing:border-box;min-height:44px;padding:9px 10px;
  border:1px solid rgba(91,23,48,.25);border-radius:8px;background:#fff;font:inherit
}
.dkvf-fe-wine-filters{border-top:1px solid rgba(91,23,48,.12);padding-top:9px}
.dkvf-fe-wine-filters>summary{cursor:pointer;color:#6b2735;font-weight:700}
.dkvf-fe-wine-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:11px}
.dkvf-fe-wine-filter-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.dkvf-fe-wine-accordion-list{display:grid;gap:8px;margin-top:9px}
.dkvf-fe-wine-accordion{padding:0;overflow:hidden}
.dkvf-fe-wine-accordion>summary{list-style:none;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 14px;cursor:pointer}
.dkvf-fe-wine-accordion>summary::-webkit-details-marker{display:none}
.dkvf-fe-wine-summary-main{min-width:0}
.dkvf-fe-wine-summary-side{display:flex;align-items:center;gap:8px;white-space:nowrap}
.dkvf-fe-wine-accordion[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-wine-expanded{padding:12px 14px 14px;border-top:1px solid rgba(91,23,48,.12)}
.dkvf-fe-wine-expanded p{margin:.35rem 0}
.dkvf-fe-vmp-chip{display:inline-block;padding:3px 7px;border-radius:999px;background:#e8f4ea;color:#22543d;font-size:.75rem;font-weight:700}
.dkvf-fe-external-wine-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.dkvf-fe-external-wine-links a{font-weight:700}
@media(max-width:650px){
  .dkvf-fe-wine-search-main{grid-template-columns:1fr}
  .dkvf-fe-wine-filter-grid{grid-template-columns:1fr}
  .dkvf-fe-wine-search-main .dkvf-fe-btn{width:100%}
  .dkvf-fe-wine-summary-side strong{font-size:.85rem}
}


/* 0.3.35: testklar Finn vin + tydeligere chat */
.dkvf-fe-wine-filter-grid select{
  width:100%;box-sizing:border-box;min-height:44px;padding:9px 10px;
  border:1px solid rgba(91,23,48,.25);border-radius:8px;background:#fff;font:inherit
}
.dkvf-fe-vmp-chip-no{background:#f2efeb;color:#6b6063}
.dkvf-fe-chat,.dkvf-fe-messages,.dkvf-fe-message-panel{
  border-color:rgba(91,23,48,.48)!important;
}

/* 0.3.39: DKVF admin som fast supportmottaker */
.dkvf-fe-new-message-stack{display:grid;gap:9px}
.dkvf-fe-support-new,.dkvf-fe-member-new{padding:0;overflow:hidden}
.dkvf-fe-support-new>summary,.dkvf-fe-member-new>summary{
  list-style:none;display:flex;justify-content:space-between;gap:10px;align-items:center;
  padding:12px 14px;cursor:pointer;color:#5b1730
}
.dkvf-fe-support-new>summary::-webkit-details-marker,.dkvf-fe-member-new>summary::-webkit-details-marker{display:none}
.dkvf-fe-support-new-body{padding:12px 14px 14px;border-top:1px solid rgba(91,23,48,.12)}
.dkvf-fe-support-conversation{border-color:rgba(91,23,48,.32)!important}


/* 0.3.40: kompakt forside og meldingsarkiv */
.dkvf-fe-collapsible-section{overflow:hidden}
.dkvf-fe-collapsible-section>summary{list-style:none}
.dkvf-fe-collapsible-section>summary::-webkit-details-marker{display:none}
.dkvf-fe-collapsible-summary{
  display:flex!important;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  cursor:pointer;
}
.dkvf-fe-search-card>.dkvf-fe-collapsible-summary{padding:12px 14px}
.dkvf-fe-collapsible-summary strong{display:block;color:#5b1730}
.dkvf-fe-collapsible-summary small{display:block;margin-top:2px;color:#746169;font-size:.82rem;font-weight:400}
.dkvf-fe-collapsible-section[open]>.dkvf-fe-collapsible-summary .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-collapsible-body{padding:12px 14px 14px;border-top:1px solid rgba(91,23,48,.12)}
.dkvf-fe-recent-experiences>.dkvf-fe-collapsible-summary{padding:10px 2px}
.dkvf-fe-recent-experiences>.dkvf-fe-collapsible-body{padding:8px 0 0;border-top:0}

.dkvf-fe-conversation-archive{padding:0!important;overflow:hidden}
.dkvf-fe-conversation-archive>summary{
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:12px 14px;cursor:pointer
}
.dkvf-fe-conversation-archive>summary::-webkit-details-marker{display:none}
.dkvf-fe-conversation-archive>summary strong{display:block;color:#5b1730}
.dkvf-fe-conversation-archive>summary small{display:block;color:#746169;margin-top:2px}
.dkvf-fe-conversation-archive[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-conversation-archive .dkvf-fe-conversation-list{
  padding:10px 12px 12px;border-top:1px solid rgba(91,23,48,.12)
}


/* 0.3.41: bare aktive skjema i Smak vin + personlig historikk */
.dkvf-fe-tasting-history{padding:0;overflow:hidden;margin-top:12px}
.dkvf-fe-tasting-history>summary{
  list-style:none;display:flex;justify-content:space-between;gap:10px;align-items:center;
  padding:12px 14px;cursor:pointer
}
.dkvf-fe-tasting-history>summary::-webkit-details-marker{display:none}
.dkvf-fe-tasting-history>summary strong{display:block;color:#5b1730}
.dkvf-fe-tasting-history>summary small{display:block;margin-top:2px;color:#746169}
.dkvf-fe-tasting-history[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-tasting-history-body{padding:8px 12px 12px;border-top:1px solid rgba(91,23,48,.12)}
.dkvf-fe-tasting-history-row{
  display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;
  padding:10px 2px;border-bottom:1px solid rgba(91,23,48,.09);text-decoration:none;color:inherit
}
.dkvf-fe-tasting-history-row:last-child{border-bottom:0}
.dkvf-fe-tasting-history-row strong{display:block;color:#5b1730}
.dkvf-fe-tasting-history-row small{display:block;color:#746169;margin-top:2px}
.dkvf-fe-tasting-history-score{font-weight:700;white-space:nowrap;color:#6b2735}

/* 0.3.44 chatarkiv */
.dkvf-fe-chat-search{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin:0 0 12px}.dkvf-fe-chat-search input[type=search]{width:100%;min-width:0;padding:10px 12px;border:1px solid rgba(91,23,48,.22);border-radius:9px}.dkvf-fe-chat-search label{grid-column:1/-1;font-size:.88rem;color:#66545b}.dkvf-fe-chat-archive-form{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:-4px 8px 8px}.dkvf-fe-chat-archive-form button{border:0;background:transparent;color:#6b2735;text-decoration:underline;cursor:pointer;padding:4px}.dkvf-fe-chat-archive-form span{font-size:.78rem;color:#746169}@media(max-width:640px){.dkvf-fe-chat-search{grid-template-columns:1fr}.dkvf-fe-chat-search label{grid-column:auto}.dkvf-fe-chat-search .dkvf-fe-btn{width:100%}}

.dkvf-fe-editor-advanced{margin-top:8px;font-size:.84rem}.dkvf-fe-editor-advanced>summary{cursor:pointer;color:#765c66}
.dkvf-fe-test-group{padding:0;overflow:hidden;margin-top:12px}.dkvf-fe-test-group>summary{list-style:none;display:flex;justify-content:space-between;padding:12px 14px;cursor:pointer;color:#5b1730}.dkvf-fe-test-group>summary::-webkit-details-marker{display:none}
.dkvf-fe-test-list{padding:0 12px 12px}.dkvf-fe-test-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 4px;border-top:1px solid rgba(91,23,48,.10)}.dkvf-fe-test-row strong,.dkvf-fe-test-row small{display:block}.dkvf-fe-test-row small{color:#746169}.dkvf-fe-test-row.is-test{background:rgba(122,36,61,.07);border-radius:8px;padding:10px}
@media(max-width:640px){.dkvf-fe-test-row{grid-template-columns:1fr}.dkvf-fe-test-row .dkvf-fe-btn{width:100%}}


/* 0.3.47 – TEST-kontroll på eksisterende vinklubbmøte */
.dkvf-fe-meeting-testdata>summary{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  cursor:pointer;list-style:none
}
.dkvf-fe-meeting-testdata>summary::-webkit-details-marker{display:none}
.dkvf-fe-meeting-testdata>summary small{display:block;margin-top:3px;font-weight:400}
.dkvf-fe-meeting-testdata.is-test{border-style:dashed}
.dkvf-fe-meeting-testdata-body{padding-top:12px}
.dkvf-fe-year-test-status{
  margin:10px 0;padding:9px 11px;border:1px solid rgba(100,40,55,.16);
  border-radius:8px
}
.dkvf-fe-year-test-status .dkvf-fe-text-link{margin-left:10px}


/* 0.3.51 – bilder av mat og vinflaske */
.dkvf-fe-course-image,.dkvf-fe-bottle-photo{margin-top:12px}
.dkvf-fe-course-image>img,.dkvf-fe-bottle-photo>img{display:block;width:min(100%,420px);max-height:420px;object-fit:contain;border-radius:10px;margin:9px 0;border:1px solid rgba(91,23,48,.12)}
.dkvf-fe-image-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.dkvf-fe-file-btn{position:relative;overflow:hidden;cursor:pointer}
.dkvf-fe-file-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.dkvf-fe-image-state{font-size:.82rem;color:#746169;margin-top:6px}
.dkvf-fe-image-remove{display:block;margin-top:8px;font-size:.88rem}
@media(max-width:600px){.dkvf-fe-image-actions{display:grid;grid-template-columns:1fr}.dkvf-fe-image-actions .dkvf-fe-btn{width:100%;box-sizing:border-box;text-align:center}}


/* 0.3.52 – egen vinvurdering uten møte/tur */
.dkvf-fe-adhoc-launch{display:flex;justify-content:space-between;gap:14px;align-items:center}
.dkvf-fe-adhoc-launch p{margin:.25rem 0 0}
.dkvf-fe-adhoc-wine-row{display:flex;justify-content:space-between;gap:12px;align-items:center}
.dkvf-fe-adhoc-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dkvf-fe-adhoc input[type=text],.dkvf-fe-adhoc input[type=datetime-local]{width:100%;box-sizing:border-box}
@media(max-width:650px){
  .dkvf-fe-adhoc-launch,.dkvf-fe-adhoc-wine-row{display:grid}
  .dkvf-fe-adhoc-context-grid{grid-template-columns:1fr}
  .dkvf-fe-adhoc-wine-row .dkvf-fe-btn,.dkvf-fe-adhoc-launch .dkvf-fe-btn{width:100%;box-sizing:border-box;text-align:center}
}


/* 0.3.53 – nylige erfaringer kommer kun fra reelle, fullførte smaksskjema */
.dkvf-fe-experience h3{margin:.35rem 0 .2rem;color:#5b1730}
.dkvf-fe-experience-image{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:9px;margin-bottom:10px;background:#faf7f1}
.dkvf-fe-experience-score{margin-top:10px;font-size:.95rem}
.dkvf-fe-experience-score strong{font-size:1.25rem;color:#5b1730}


/* 0.3.54 – kompakt medlemsvisning: rett/oppskrift åpnes ved trykk */
.dkvf-fe-member-course{padding:0;overflow:hidden}
.dkvf-fe-member-course-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:15px 17px;cursor:pointer;list-style:none}
.dkvf-fe-member-course-summary::-webkit-details-marker{display:none}
.dkvf-fe-member-course-summary>span:first-child{display:grid;gap:4px;min-width:0}
.dkvf-fe-member-course-summary small{color:var(--dkvf-muted);font-size:.86rem;white-space:normal}
.dkvf-fe-member-course[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-member-course-body{padding:0 17px 17px;border-top:1px solid var(--dkvf-line)}
.dkvf-fe-member-recipe{margin-top:14px}
.dkvf-fe-member-recipe p{margin:.4rem 0 0;line-height:1.55}
.dkvf-fe-member-course-image{display:block;width:min(100%,440px);max-height:360px;object-fit:contain;margin:14px 0 6px;border-radius:9px}


/* 0.3.55 – Oppgaver og notater + Min kalender */
.dkvf-fe-calendar-launcher{display:inline-flex;align-items:center;gap:9px;margin:0 0 10px;text-decoration:none;color:inherit;font-weight:700}
.dkvf-fe-calendar-icon{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:linear-gradient(#74a8ff,#2f78f3);color:#fff;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.dkvf-fe-calendar-icon-top{position:absolute;left:0;right:0;top:0;height:8px;background:rgba(255,255,255,.45)}
.dkvf-fe-calendar-icon strong{font-size:1.3rem;line-height:1;padding-top:5px}
.dkvf-fe-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dkvf-fe-task-form label{display:block;margin:10px 0}.dkvf-fe-task-form input[type=text],.dkvf-fe-task-form input[type=url],.dkvf-fe-task-form input[type=datetime-local],.dkvf-fe-task-form select,.dkvf-fe-task-form textarea,.dkvf-fe-task-more textarea,.dkvf-fe-task-more select{width:100%;box-sizing:border-box}
.dkvf-fe-task-check{display:flex!important;align-items:center;gap:8px}.dkvf-fe-task-check input{width:auto!important}
.dkvf-fe-task-more{border-top:1px solid var(--dkvf-line);padding:10px 0}.dkvf-fe-task-more summary{cursor:pointer;font-weight:700;color:var(--dkvf-wine)}
.dkvf-fe-task-image{display:block;max-width:420px;width:100%;max-height:360px;object-fit:contain;border-radius:9px;margin:10px 0}
.dkvf-fe-task-toolbar{display:grid;gap:10px;margin-bottom:12px}.dkvf-fe-task-toolbar form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dkvf-fe-task-toolbar input[type=search]{min-width:230px;flex:1}
.dkvf-fe-task-row{display:flex;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;color:inherit;margin-bottom:8px}.dkvf-fe-task-row small{display:block;margin-top:3px}.dkvf-fe-task-row.is-done{opacity:.65}
.dkvf-fe-task-items{margin-top:16px}.dkvf-fe-task-item label{display:flex;gap:8px;align-items:center;padding:6px 0}.dkvf-fe-task-item input:checked+span{text-decoration:line-through;opacity:.65}
.dkvf-fe-task-comments{margin-top:18px;border-top:1px solid var(--dkvf-line);padding-top:12px}.dkvf-fe-task-comments article{padding:9px 0;border-bottom:1px solid var(--dkvf-line)}.dkvf-fe-task-comments article small{display:block;color:var(--dkvf-muted)}.dkvf-fe-task-comments textarea{width:100%;box-sizing:border-box}
.dkvf-fe-month-calendar{max-width:520px;margin:0 auto 16px}.dkvf-fe-month-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.dkvf-fe-month-head h1{margin:0;font-size:1.25rem}.dkvf-fe-month-head nav{display:flex;align-items:center;gap:8px}.dkvf-fe-month-head nav a{text-decoration:none;padding:7px 9px;border-radius:7px}.dkvf-fe-month-head nav .today{font-size:.82rem}
.dkvf-fe-cal-grid{display:grid;grid-template-columns:38px repeat(7,1fr);text-align:center;align-items:center}.dkvf-fe-cal-weekdays{font-size:.75rem;font-weight:700;margin-top:12px;color:var(--dkvf-muted)}.dkvf-fe-cal-week{min-height:44px}.dkvf-fe-cal-week .weekno{font-size:.72rem;color:var(--dkvf-muted);background:#f0f2f5;padding:9px 3px;border-radius:4px}
.dkvf-fe-cal-week .day{position:relative;display:grid;place-items:center;min-height:40px;text-decoration:none;color:inherit}.dkvf-fe-cal-week .day.sat{color:#1764b0}.dkvf-fe-cal-week .day.sun{color:#b3262e}.dkvf-fe-cal-week .day.has-events:after{content:"";position:absolute;bottom:3px;width:17px;height:3px;border-radius:3px;background:#2d9d58}.dkvf-fe-cal-week .day.is-today span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#2d75df;color:#fff}.dkvf-fe-cal-week .outside{min-height:40px}
.dkvf-fe-calendar-event{display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;text-decoration:none;color:inherit;margin-bottom:8px}.dkvf-fe-calendar-event small{display:block}
.dkvf-fe-calendar-scroll{margin-top:16px}.dkvf-fe-calendar-scroll-row{display:grid;grid-template-columns:86px 1fr;gap:10px;padding:9px 4px;border-bottom:1px solid var(--dkvf-line);text-decoration:none;color:inherit}.dkvf-fe-calendar-scroll-row time{font-variant-numeric:tabular-nums}.dkvf-fe-calendar-scroll-row small{display:block}.dkvf-fe-calendar-scroll-row.is-selected{font-weight:700}
@media(max-width:650px){.dkvf-fe-task-grid{grid-template-columns:1fr}.dkvf-fe-task-toolbar form{display:grid}.dkvf-fe-task-toolbar input[type=search]{min-width:0}.dkvf-fe-cal-grid{grid-template-columns:32px repeat(7,1fr)}}


/* 0.3.56 – redaktørretting og spontan felles vinsmaking */
.dkvf-fe-shared-wine-launch{display:flex;justify-content:space-between;gap:14px;align-items:center}
.dkvf-fe-shared-wine-launch h2{margin:.2rem 0}.dkvf-fe-shared-wine-launch p{margin:.3rem 0 0}
.dkvf-fe-quick-wine-row{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}
@media(max-width:650px){.dkvf-fe-shared-wine-launch,.dkvf-fe-quick-wine-row{display:grid}.dkvf-fe-shared-wine-launch .dkvf-fe-btn,.dkvf-fe-quick-wine-row .dkvf-fe-btn{width:100%;box-sizing:border-box;text-align:center}}


/* 0.3.57 – Samkjøring på vinmøter */
.dkvf-fe-carpool{padding:0;overflow:hidden}.dkvf-fe-carpool-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 17px;cursor:pointer;list-style:none}.dkvf-fe-carpool-summary::-webkit-details-marker{display:none}.dkvf-fe-carpool-summary span:first-child{display:grid;gap:3px}.dkvf-fe-carpool[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}.dkvf-fe-carpool-body{padding:0 17px 17px;border-top:1px solid var(--dkvf-line)}
.dkvf-fe-carpool-direction{padding:14px 0;border-bottom:1px solid var(--dkvf-line)}.dkvf-fe-carpool-direction:last-child{border-bottom:0}.dkvf-fe-carpool-status{font-size:.82rem;font-weight:700}.dkvf-fe-carpool-confirmed{display:grid;gap:3px;padding:9px 11px;background:#eef8ef;border-radius:8px;margin:8px 0}.dkvf-fe-carpool-confirmed span{font-size:.85rem}
.dkvf-fe-carpool-option{margin:8px 0;padding:8px 10px;border:1px solid var(--dkvf-line);border-radius:8px}.dkvf-fe-carpool-option summary{cursor:pointer;font-weight:700}.dkvf-fe-carpool-form{display:grid;gap:8px;margin-top:9px}.dkvf-fe-carpool-form label{display:grid;gap:4px}.dkvf-fe-carpool-form input{width:100%;box-sizing:border-box}.dkvf-fe-carpool-inline{margin:6px 0}
.dkvf-fe-carpool-offers,.dkvf-fe-carpool-needs{margin-top:12px}.dkvf-fe-carpool-offer,.dkvf-fe-carpool-request{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--dkvf-line)}.dkvf-fe-carpool-offer>div{display:grid;gap:2px}.dkvf-fe-carpool-offer small,.dkvf-fe-carpool-offer span{font-size:.82rem;color:var(--dkvf-muted)}.dkvf-fe-carpool-request span{font-size:.88rem}
@media(max-width:650px){.dkvf-fe-carpool-offer,.dkvf-fe-carpool-request{display:grid}.dkvf-fe-carpool-offer form,.dkvf-fe-carpool-request form,.dkvf-fe-carpool-offer .dkvf-fe-btn,.dkvf-fe-carpool-request .dkvf-fe-btn{width:100%;box-sizing:border-box}}


/* 0.3.58 – tydelig sletting ved alle bildeforhåndsvisninger */
.dkvf-fe-image-delete{
  display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:7px 10px;
  border:1px solid #c84747;border-radius:7px;background:#fff5f5;color:#a32222;
  font-weight:700;cursor:pointer
}
.dkvf-fe-image-delete:hover{background:#fee8e8}


/* 0.3.59 – TEST er en farlig/avansert handling og krever aktiv bekreftelse */
.dkvf-fe-meeting-testdata:not(.is-test)>summary>span:first-child strong{color:#6d5960}
.dkvf-fe-test-danger{margin-top:10px;border:1px solid #e2b9b9;border-radius:9px;background:#fffafa;overflow:hidden}
.dkvf-fe-test-danger>summary{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 12px;cursor:pointer;list-style:none;color:#9c2929}
.dkvf-fe-test-danger>summary::-webkit-details-marker{display:none}
.dkvf-fe-test-danger-body{padding:0 12px 12px;border-top:1px solid #efd2d2}
.dkvf-fe-test-danger.is-active{padding:12px;background:#fff1f1;border-color:#d36c6c;color:#772020}
.dkvf-fe-test-danger.is-active p{margin:.35rem 0 0}
.dkvf-fe-test-confirm-form{display:grid;gap:11px;margin-top:10px}
.dkvf-fe-test-confirm-form label{display:grid;gap:5px}
.dkvf-fe-test-confirm-form input[type=text]{width:100%;max-width:220px;box-sizing:border-box;text-transform:uppercase;font-weight:700;letter-spacing:.08em}
.dkvf-fe-test-ack{display:flex!important;grid-template-columns:auto 1fr;align-items:flex-start;gap:8px!important}
.dkvf-fe-test-ack input{margin-top:3px}
.dkvf-fe-test-danger-btn{background:#a42d2d!important;border-color:#a42d2d!important;color:#fff!important}

/* 0.3.62 – Vinoppgjør */
.dkvf-fe-wine-settlement{padding:0;overflow:hidden}.dkvf-fe-wine-settlement-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 17px;cursor:pointer;list-style:none}.dkvf-fe-wine-settlement-summary::-webkit-details-marker{display:none}.dkvf-fe-wine-settlement-summary span:first-child{display:grid;gap:3px}.dkvf-fe-wine-settlement-summary small{color:var(--dkvf-muted);font-weight:400}.dkvf-fe-wine-settlement-body{padding:0 17px 17px;border-top:1px solid var(--dkvf-line)}
.dkvf-fe-wine-settlement-item{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) 110px 130px;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--dkvf-line)}.dkvf-fe-wine-settlement-item>div{display:grid;gap:3px}.dkvf-fe-wine-settlement-item label{display:grid;gap:4px;font-size:.82rem}.dkvf-fe-wine-settlement-item input,.dkvf-fe-wine-settlement-item select{width:100%;box-sizing:border-box}.dkvf-fe-wine-leftovers,.dkvf-fe-wine-calculate,.dkvf-fe-wine-payments{margin-top:15px}.dkvf-fe-wine-leftover-wine{padding:10px 0;border-bottom:1px solid var(--dkvf-line)}.dkvf-fe-leftover-row,.dkvf-fe-add-leftover{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:7px}.dkvf-fe-add-leftover{justify-content:flex-start;flex-wrap:wrap}.dkvf-fe-add-leftover label{display:grid;gap:3px;font-size:.82rem}.dkvf-fe-add-leftover select{min-width:180px}
.dkvf-fe-wine-my-total{padding:14px;border:1px solid #e4c88d;border-radius:10px;background:#fff8e8;margin:12px 0}.dkvf-fe-wine-my-total.is-host{background:#f1f8ed;border-color:#b7d4aa}.dkvf-fe-wine-my-total>strong{display:block;font-size:1.25rem;color:var(--dkvf-wine);margin:4px 0}.dkvf-fe-wine-copy-actions{display:flex;gap:7px;flex-wrap:wrap}.dkvf-fe-pay-status{display:inline-block;margin-top:9px;padding:5px 8px;border-radius:999px;font-size:.82rem;font-weight:700}.dkvf-fe-pay-status.is-paid{background:#eaf7ec;color:#236b31}.dkvf-fe-pay-status.is-unpaid{background:#fff0f0;color:#982d2d}
.dkvf-fe-payment-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--dkvf-line)}.dkvf-fe-payment-row small{display:block;color:var(--dkvf-muted)}.dkvf-fe-payment-amount{font-weight:700}.dkvf-fe-payment-row .is-paid{background:#edf8ef!important;color:#276f35!important;border-color:#a9d2af!important}.dkvf-fe-wine-reopen{margin-top:12px}
@media(max-width:760px){.dkvf-fe-wine-settlement-item{grid-template-columns:1fr 1fr}.dkvf-fe-payment-row{grid-template-columns:1fr auto}.dkvf-fe-payment-row form{grid-column:1/-1}.dkvf-fe-payment-row form .dkvf-fe-btn{width:100%}}
@media(max-width:520px){.dkvf-fe-wine-settlement-item{grid-template-columns:1fr}.dkvf-fe-leftover-row,.dkvf-fe-add-leftover{display:grid}.dkvf-fe-add-leftover select,.dkvf-fe-add-leftover .dkvf-fe-btn{width:100%;box-sizing:border-box}}


/* 0.3.63 – felles emoji-galleri for chat, oppgaver/notater og kalenderopprettede oppgaver */
.dkvf-fe-emoji-wrap{position:relative;display:block}.dkvf-fe-emoji-wrap textarea{display:block;width:100%;box-sizing:border-box}.dkvf-fe-emoji-bar{display:flex;justify-content:flex-end;margin-top:4px}.dkvf-fe-emoji-toggle{border:1px solid var(--dkvf-line,#d8c9c1);background:#fff;border-radius:8px;min-width:38px;min-height:36px;font-size:1.25rem;line-height:1;cursor:pointer}.dkvf-fe-emoji-toggle:hover,.dkvf-fe-emoji-toggle:focus{background:#fff8ed}.dkvf-fe-emoji-picker{display:none;position:absolute;z-index:50;right:0;top:100%;width:min(330px,calc(100vw - 42px));max-height:310px;overflow:auto;background:#fff;border:1px solid var(--dkvf-line,#d8c9c1);border-radius:12px;padding:10px;box-shadow:0 10px 28px rgba(50,25,30,.16)}.dkvf-fe-emoji-picker.is-open{display:block}.dkvf-fe-emoji-heading{font-size:.75rem;font-weight:700;color:var(--dkvf-muted,#715f64);margin:2px 2px 6px}.dkvf-fe-emoji-heading:not(:first-child){margin-top:10px}.dkvf-fe-emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}.dkvf-fe-emoji-choice{border:0;background:transparent;border-radius:7px;min-width:32px;min-height:34px;padding:2px;font-size:1.25rem;cursor:pointer}.dkvf-fe-emoji-choice:hover,.dkvf-fe-emoji-choice:focus{background:#f5ece7}@media(max-width:480px){.dkvf-fe-emoji-picker{position:fixed;left:12px;right:12px;bottom:12px;top:auto;width:auto;max-height:44vh}.dkvf-fe-emoji-grid{grid-template-columns:repeat(7,1fr)}.dkvf-fe-emoji-choice{min-height:40px;font-size:1.35rem}}


/* 0.3.64 – Viner vi har smakt */
.dkvf-fe-tasted-filter form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.dkvf-fe-tasted-filter label{display:grid;gap:4px;min-width:150px}.dkvf-fe-tasted-filter .dkvf-fe-grow{flex:1;min-width:210px}.dkvf-fe-tasted-filter input,.dkvf-fe-tasted-filter select{width:100%;box-sizing:border-box}.dkvf-fe-tasted-filter .dkvf-fe-result-count{margin-top:10px}
.dkvf-fe-tasted-list{padding-top:10px}.dkvf-fe-tasted-type{margin:16px 0 5px;padding-bottom:6px;border-bottom:2px solid var(--dkvf-wine);color:var(--dkvf-wine)}.dkvf-fe-tasted-type:first-child{margin-top:0}.dkvf-fe-tasted-country{margin:13px 0 3px;font-size:1rem;color:var(--dkvf-muted)}
.dkvf-fe-tasted-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--dkvf-line)}.dkvf-fe-tasted-main{display:grid;gap:3px}.dkvf-fe-tasted-main>strong{font-size:1rem}.dkvf-fe-tasted-main>small{color:var(--dkvf-muted)}.dkvf-fe-tasted-food{font-size:.88rem;margin-top:3px}.dkvf-fe-tasted-score{text-align:right;min-width:78px}.dkvf-fe-tasted-score>strong{font-size:1.25rem;color:var(--dkvf-wine)}.dkvf-fe-tasted-score>span{font-size:.78rem;color:var(--dkvf-muted)}.dkvf-fe-tasted-score>small{display:block;color:var(--dkvf-muted);font-size:.76rem}
@media(max-width:560px){.dkvf-fe-tasted-filter form{display:grid}.dkvf-fe-tasted-filter label,.dkvf-fe-tasted-filter .dkvf-fe-grow{min-width:0}.dkvf-fe-tasted-row{grid-template-columns:1fr auto;gap:8px}.dkvf-fe-tasted-score{min-width:62px}}

/* 0.3.66 – synlig resultat fra Vinmonopolet-oppslag */
.dkvf-fe-vmp-result{display:grid;gap:3px;margin-top:10px;padding:10px 12px;border-radius:8px;border:1px solid var(--dkvf-line)}
.dkvf-fe-vmp-result.is-ok{background:#eef8ef;border-color:#afd0b4;color:#235f2d}
.dkvf-fe-vmp-result.is-error{background:#fff2f2;border-color:#dfadad;color:#8b2828}

/* 0.3.67 – vertinner, sammenbrettet planlegging og sikrere lagring */
.dkvf-fe-member-quicklinks{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin:12px 0}.dkvf-fe-member-quicklinks .dkvf-fe-calendar-launcher{margin:0;min-width:118px}.dkvf-fe-quick-icon{font-size:1.45rem;line-height:1}
.dkvf-fe-my-host-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}.dkvf-fe-my-role{display:grid;gap:3px;padding:13px 15px;border:2px solid;border-radius:12px}.dkvf-fe-my-role span{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.dkvf-fe-my-role.is-food{background:#fff7df;border-color:#caa34c}.dkvf-fe-my-role.is-wine{background:#f7e9ee;border-color:#8f3d59}
.dkvf-fe-planner-course{padding:0!important;overflow:hidden}.dkvf-fe-planner-course-summary,.dkvf-fe-vmp-add>summary,.dkvf-fe-selected-wines>summary,.dkvf-fe-selected-wine>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}.dkvf-fe-planner-course-summary::-webkit-details-marker,.dkvf-fe-vmp-add>summary::-webkit-details-marker,.dkvf-fe-selected-wines>summary::-webkit-details-marker,.dkvf-fe-selected-wine>summary::-webkit-details-marker{display:none}.dkvf-fe-planner-course-summary>span:first-child,.dkvf-fe-vmp-add>summary>span:first-child,.dkvf-fe-selected-wines>summary>span:first-child,.dkvf-fe-selected-wine>summary>span:first-child{display:grid;gap:3px}.dkvf-fe-planner-course-body,.dkvf-fe-vmp-add-body,.dkvf-fe-selected-wines-body,.dkvf-fe-selected-wine-body{padding:0 16px 16px}.dkvf-fe-planner-course[open]>.dkvf-fe-planner-course-summary .dkvf-fe-year-chevron,.dkvf-fe-vmp-add[open]>summary .dkvf-fe-year-chevron,.dkvf-fe-selected-wines[open]>summary .dkvf-fe-year-chevron,.dkvf-fe-selected-wine[open]>summary .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-wine-row.is-candidate{background:#fff9e8;border-left:4px solid #d2ad4c}.dkvf-fe-wine-row.is-selected{background:#eef8ef;border-left:4px solid #68a471}.dkvf-fe-selected-wine{border:1px solid var(--dkvf-line);border-radius:10px;margin:9px 0;overflow:hidden;background:#f7f7f7}.dkvf-fe-selected-wine.status-ordered{background:#fff8e6}.dkvf-fe-selected-wine.status-confirmed{background:#edf8ef}
.dkvf-fe-remove-wine-btn{background:#fff!important;color:#7d263d!important;border:1px solid #b97989!important}.dkvf-fe-unsaved{position:sticky;top:8px;z-index:20;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px;padding:9px 12px;border:1px solid #d0a53b;border-radius:9px;background:#fff4cc;color:#5f4811;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.dkvf-fe-tasting-history-scores{display:flex;gap:8px;align-items:center;white-space:nowrap}.dkvf-fe-tasting-history-scores .food{font-size:.86rem;color:var(--dkvf-muted)}.dkvf-fe-tasting-history-scores strong{font-size:1rem;color:var(--dkvf-wine)}
@media(max-width:600px){.dkvf-fe-member-quicklinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dkvf-fe-member-quicklinks .dkvf-fe-calendar-launcher{min-width:0}.dkvf-fe-member-quicklinks .dkvf-fe-plan-launcher{grid-column:1/-1}.dkvf-fe-planner-course-summary,.dkvf-fe-vmp-add>summary,.dkvf-fe-selected-wines>summary,.dkvf-fe-selected-wine>summary{padding:12px}.dkvf-fe-planner-course-body,.dkvf-fe-vmp-add-body,.dkvf-fe-selected-wines-body,.dkvf-fe-selected-wine-body{padding:0 12px 12px}}


/* 0.3.68 – tydelige ferdigstatuser og Oppgaver/notater som hurtigvalg */
.dkvf-fe-course-summary-status{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.dkvf-fe-course-summary-status b{display:inline-block;padding:3px 7px;border-radius:999px;font-size:.72rem;font-weight:700}
.dkvf-fe-planner-course.food-planning>.dkvf-fe-planner-course-summary{background:#fff0f3}
.dkvf-fe-planner-course.food-ready_for_wine>.dkvf-fe-planner-course-summary{background:#edf8ef}
.dkvf-fe-planner-course.food-planning .dkvf-fe-course-summary-status .food{background:#f7d8df;color:#822b42}
.dkvf-fe-planner-course.food-ready_for_wine .dkvf-fe-course-summary-status .food{background:#d7ecd9;color:#285f31}
.dkvf-fe-planner-course.wine-waiting .dkvf-fe-course-summary-status .wine{background:#ededed;color:#5d5d5d}
.dkvf-fe-planner-course.wine-planning .dkvf-fe-course-summary-status .wine{background:#fff0cf;color:#76540e}
.dkvf-fe-planner-course.wine-complete .dkvf-fe-course-summary-status .wine{background:#d7ecd9;color:#285f31}

.dkvf-fe-status-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:13px 0}
.dkvf-fe-status-panel{padding:13px;border:1px solid;border-radius:11px}
.dkvf-fe-status-panel>div{display:grid;gap:2px}.dkvf-fe-status-panel>div span{font-size:.78rem;font-weight:700;text-transform:uppercase}.dkvf-fe-status-panel>div strong{font-size:1.05rem}
.dkvf-fe-status-panel p{margin:.55rem 0;font-size:.9rem}.dkvf-fe-status-panel label{display:grid;gap:4px;margin-top:9px}
.dkvf-fe-status-panel.food.is-planning{background:#fff0f3;border-color:#dda6b5;color:#6f2e40}
.dkvf-fe-status-panel.wine.is-planning{background:#fff5dc;border-color:#dfc177;color:#684c11}
.dkvf-fe-status-panel.is-done{background:#edf8ef;border-color:#a8cea9;color:#285f31}
.dkvf-fe-status-panel.is-waiting{background:#f4f4f4;border-color:#d0d0d0;color:#555}

.dkvf-fe-planner-helper{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:10px 0 14px;padding:10px 12px;border:1px solid var(--dkvf-line);border-radius:10px;background:#faf8f5;font-size:.88rem}
.dkvf-fe-planner-helper a{font-weight:700;white-space:nowrap}
.dkvf-fe-task-launcher{background:#f5f2ec}
@media(max-width:700px){.dkvf-fe-status-panels{grid-template-columns:1fr}.dkvf-fe-planner-helper{display:grid}.dkvf-fe-planner-helper a{white-space:normal}}


/* 0.3.69 – Ditt ansvar som statuslys */
.dkvf-fe-my-role.is-planning{background:#fff0f3!important;border-color:#dda6b5!important;color:#6f2e40}
.dkvf-fe-my-role.is-complete{background:#edf8ef!important;border-color:#9fc9a3!important;color:#285f31}
.dkvf-fe-my-role small{font-weight:700;margin-top:3px}
.dkvf-fe-my-role.is-complete small{color:#285f31}
.dkvf-fe-my-role.is-planning small{color:#8a4054}


/* 0.3.70 – Deltakelse som utbrett */
.dkvf-fe-attendance-details{padding:0!important;overflow:hidden}
.dkvf-fe-attendance-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}
.dkvf-fe-attendance-summary::-webkit-details-marker{display:none}
.dkvf-fe-attendance-summary>span:first-child{display:grid;gap:3px}
.dkvf-fe-attendance-details[open]>.dkvf-fe-attendance-summary .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-attendance-body{padding:0 16px 16px}
.dkvf-fe-attendance-names{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.dkvf-fe-attendance-names span{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#edf8ef;border:1px solid #b6d4b9;color:#285f31;font-size:.88rem}
.dkvf-fe-attendance-body hr{border:0;border-top:1px solid var(--dkvf-line);margin:14px 0}
@media(max-width:560px){.dkvf-fe-attendance-summary{padding:12px}.dkvf-fe-attendance-body{padding:0 12px 12px}.dkvf-fe-attendance-names{display:grid}.dkvf-fe-attendance-names span{border-radius:8px}}


/* 0.3.72 – ferdigmeldt vinvalg skal være entydig grønt */
.dkvf-fe-complete-notice{margin:10px 0;padding:11px 13px;border:1px solid #9fc9a3;border-radius:9px;background:#edf8ef;color:#285f31;font-weight:700}
.dkvf-fe-wine-completion.is-complete{background:#f7fcf8;border-color:#9fc9a3}
.dkvf-fe-complete-panel{display:grid;gap:5px;padding:11px 13px;border:1px solid #9fc9a3;border-radius:9px;background:#edf8ef;color:#285f31}
.dkvf-fe-ready-panel{display:grid;gap:4px;padding:11px 13px;margin-bottom:10px;border:1px solid #dfc177;border-radius:9px;background:#fff5dc;color:#684c11}


/* 0.3.73 – redaktøropprydding av utilsiktede ekstraretter */
.dkvf-fe-extra-course-delete{margin-top:16px;padding-top:12px;border-top:1px dashed var(--dkvf-line)}
.dkvf-fe-extra-course-delete small{display:block;margin-top:6px;color:var(--dkvf-muted)}


/* 0.3.74 – inaktive ekstraretter */
.dkvf-fe-inactive-courses{margin-top:14px;padding:0!important;overflow:hidden;background:#f7f7f7}
.dkvf-fe-inactive-courses>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;cursor:pointer;list-style:none}
.dkvf-fe-inactive-courses>summary::-webkit-details-marker{display:none}
.dkvf-fe-inactive-courses>summary>span:first-child{display:grid;gap:2px}
.dkvf-fe-inactive-courses[open]>summary .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-inactive-courses-body{padding:0 15px 15px}
.dkvf-fe-inactive-course-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--dkvf-line)}
.dkvf-fe-extra-course-delete{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dkvf-fe-extra-course-delete small{width:100%}
@media(max-width:600px){.dkvf-fe-inactive-course-row{display:grid}}

/* 0.3.75 – enklere planflyt */
.dkvf-fe-planner-course.wine-ready-finish>.dkvf-fe-planner-course-summary{background:#f3faef}
.dkvf-fe-planner-course.wine-ready-finish .dkvf-fe-course-summary-status .wine{background:#dff0d7;color:#315f28}
.dkvf-fe-meeting-progress{display:flex;justify-content:space-between;gap:12px;margin:10px 0 14px;padding:11px 13px;border:1px solid;border-radius:10px}
.dkvf-fe-meeting-progress.is-working{background:#fff5dc;border-color:#dfc177;color:#684c11}
.dkvf-fe-meeting-progress.is-complete{background:#edf8ef;border-color:#9fc9a3;color:#285f31}
.dkvf-fe-meeting-compact-actions{display:flex;justify-content:flex-end;margin:10px 0}
.dkvf-fe-meeting-compact-actions .dkvf-fe-btn{padding:7px 11px;font-size:.86rem}
@media(max-width:600px){.dkvf-fe-meeting-progress{display:grid}.dkvf-fe-meeting-compact-actions .dkvf-fe-btn{width:100%;text-align:center}}

/* 0.3.77 – kveldens guide */
.dkvf-fe-evening-guide{padding:0!important;overflow:hidden}
.dkvf-fe-evening-guide>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}
.dkvf-fe-evening-guide>summary::-webkit-details-marker{display:none}
.dkvf-fe-evening-guide>summary>span:first-child{display:grid;gap:3px}
.dkvf-fe-evening-guide[open]>summary .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-evening-guide-body{padding:0 16px 16px;max-width:850px;line-height:1.65}
.dkvf-fe-wine-tasting-link{display:flex;justify-content:space-between;align-items:center;gap:14px;text-decoration:none}
.dkvf-fe-wine-tasting-link>span{font-size:.84rem;font-weight:700;white-space:nowrap}
.dkvf-fe-wine-tasting-link small{font-weight:400}
.dkvf-fe-wide{flex-basis:100%}
@media(max-width:600px){.dkvf-fe-wine-tasting-link{display:grid;gap:4px}.dkvf-fe-wine-tasting-link>span{white-space:normal}}

/* 0.3.78 – sikre og tydelige oppskriftslenker */
.dkvf-fe-member-recipe .dkvf-fe-external-link{display:inline-flex;align-items:baseline;gap:4px;overflow-wrap:anywhere}
.dkvf-fe-member-recipe .dkvf-fe-external-link small{font-weight:400;opacity:.75}


/* 0.3.79 – redaktør kan kontrollere ekte medlemsvisning */
.dkvf-fe-view-toggle{display:flex;justify-content:flex-end;align-items:center;gap:10px;max-width:1180px;margin:8px auto 10px;padding:7px 10px;border:1px solid #d8d8d8;border-radius:9px;background:#f2f2f2;color:#555;font-size:.82rem}
.dkvf-fe-view-toggle .dkvf-fe-btn{padding:6px 10px;font-size:.82rem;background:#fff;color:#555;border-color:#c8c8c8}
.dkvf-fe-view-toggle.is-member-preview{background:#edf8ef;border-color:#a9cdaa;color:#285f31}
.dkvf-fe-view-toggle.is-member-preview .dkvf-fe-btn{color:#285f31;border-color:#9fc9a3}
.dkvf-fe-meeting-testdata:not(.is-test),.dkvf-fe-editor-advanced{background:#f1f1f1!important;border-color:#d3d3d3!important;color:#666}
.dkvf-fe-meeting-testdata:not(.is-test)>summary,.dkvf-fe-editor-advanced>summary{color:#666}
@media(max-width:600px){.dkvf-fe-view-toggle{margin:6px 8px 10px;justify-content:space-between}.dkvf-fe-view-toggle span{font-size:.76rem}}

/* ==========================================================
   Kunnskap om vin – v0.3.83
   ========================================================== */
.dkvf-fe-knowledge .dkvf-fe-plan-head{margin-bottom:18px}
.dkvf-fe-knowledge-chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}
.dkvf-fe-knowledge-chapter{display:flex;align-items:center;gap:14px;text-decoration:none!important;min-height:92px;padding:18px}
.dkvf-fe-knowledge-chapter>div{display:flex;flex-direction:column;gap:4px;flex:1}
.dkvf-fe-knowledge-chapter strong{font-size:1.05rem}
.dkvf-fe-knowledge-chapter small{line-height:1.35}
.dkvf-fe-knowledge-chapter.is-future{opacity:.7}
.dkvf-fe-knowledge-icon{font-size:1.7rem}
.dkvf-fe-knowledge-search-card label{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.dkvf-fe-knowledge-search-card label span{font-size:.9rem;opacity:.75}
.dkvf-fe-knowledge-search{width:100%;font-size:1.06rem;padding:13px 14px;border:1px solid rgba(75,37,48,.2);border-radius:12px;background:#fff}
.dkvf-fe-knowledge-suggestions{display:flex;flex-direction:column;margin-top:10px;border-top:1px solid rgba(75,37,48,.08)}
.dkvf-fe-knowledge-suggestion{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 4px;border-bottom:1px solid rgba(75,37,48,.08);text-decoration:none!important}
.dkvf-fe-knowledge-suggestion>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.dkvf-fe-knowledge-suggestion small{opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dkvf-fe-knowledge-count{white-space:nowrap;font-weight:700;font-size:.9rem}
.dkvf-fe-knowledge-pills{display:flex;gap:8px;flex-wrap:wrap}
.dkvf-fe-knowledge-pills a{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid rgba(75,37,48,.13);border-radius:999px;text-decoration:none!important;background:rgba(255,255,255,.55)}
.dkvf-fe-knowledge-pills a span{font-size:.85rem;opacity:.7}
.dkvf-fe-knowledge-country-list,.dkvf-fe-knowledge-region-list,.dkvf-fe-knowledge-wines{display:flex;flex-direction:column}
.dkvf-fe-knowledge-country,.dkvf-fe-knowledge-region-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(75,37,48,.08);text-decoration:none!important}
.dkvf-fe-knowledge-country.is-selected{font-weight:700}
.dkvf-fe-country-main{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px}
.dkvf-fe-country-main small{opacity:.65;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dkvf-fe-flag{font-size:1.25rem}
.dkvf-fe-vmp-summary{font-size:.83rem;font-weight:700;border-radius:999px;padding:5px 8px;white-space:nowrap}
.dkvf-fe-vmp-summary.has-vmp{background:rgba(40,120,70,.10);color:#245d37}
.dkvf-fe-vmp-summary.no-vmp{background:rgba(90,90,90,.07);color:#777}
.dkvf-fe-knowledge-region-list>a>span:first-child{display:flex;flex-direction:column;gap:2px}
.dkvf-fe-knowledge-region-list small{opacity:.7}
.dkvf-fe-knowledge-wines article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(75,37,48,.08)}
.dkvf-fe-knowledge-wines article>div{display:flex;flex-direction:column;gap:3px}
.dkvf-fe-knowledge-wines small{opacity:.72}
.dkvf-fe-knowledge-draft{margin:14px 0;padding:12px 14px;border-radius:10px;background:rgba(180,120,25,.10);border:1px solid rgba(180,120,25,.2)}
.dkvf-fe-knowledge-text p:last-child{margin-bottom:0}
@media (max-width:700px){
  .dkvf-fe-knowledge-chapters{grid-template-columns:1fr}
  .dkvf-fe-knowledge-country,.dkvf-fe-knowledge-region-list>a{grid-template-columns:minmax(0,1fr) auto}
  .dkvf-fe-knowledge-country .dkvf-fe-row-arrow,.dkvf-fe-knowledge-region-list>a>span:last-child{display:none}
  .dkvf-fe-country-main{grid-template-columns:auto auto minmax(0,1fr)}
  .dkvf-fe-vmp-summary{font-size:.76rem}
  .dkvf-fe-knowledge-wines article{grid-template-columns:1fr;gap:6px}
  .dkvf-fe-knowledge-wines .dkvf-fe-vmp-summary{justify-self:start}
}

/* 0.3.84 – kunnskapsbibliotek: generell druekunnskap som utbrettbare kapitler */
.dkvf-fe-knowledge-accordion{display:flex;flex-direction:column;border-top:1px solid rgba(75,37,48,.08);margin-top:12px}
.dkvf-fe-knowledge-detail{border-bottom:1px solid rgba(75,37,48,.10)}
.dkvf-fe-knowledge-detail>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px;font-weight:700}
.dkvf-fe-knowledge-detail>summary::-webkit-details-marker{display:none}
.dkvf-fe-knowledge-detail .dkvf-fe-year-chevron{transition:transform .18s ease}
.dkvf-fe-knowledge-detail[open] .dkvf-fe-year-chevron{transform:rotate(90deg)}
.dkvf-fe-knowledge-detail-body{padding:0 2px 15px;line-height:1.62}
.dkvf-fe-knowledge-detail-body p:first-child{margin-top:0}
.dkvf-fe-knowledge-detail-body p:last-child,.dkvf-fe-knowledge-detail-body ul:last-child{margin-bottom:0}
.dkvf-fe-knowledge-detail-body ul{padding-left:1.25rem}

/* 0.3.85 – druekunnskap som oppslag øverst på druesiden */
.dkvf-fe-grape-research-summary .dkvf-fe-section-head{margin-bottom:10px}
.dkvf-fe-grape-lead{font-size:1.03rem;line-height:1.65;max-width:78ch}
.dkvf-fe-grape-lead p:last-child{margin-bottom:0}
.dkvf-fe-grape-research-details{margin-top:14px;border-top:1px solid rgba(115,30,48,.14);padding-top:12px}
.dkvf-fe-grape-research-details>summary{cursor:pointer;font-weight:700;color:#741d31;list-style:none}
.dkvf-fe-grape-research-details>summary::-webkit-details-marker{display:none}
.dkvf-fe-grape-research-details>summary:after{content:' ▾';font-weight:400}
.dkvf-fe-grape-research-details[open]>summary:after{content:' ▴'}
.dkvf-fe-grape-research-body{padding-top:12px}
.dkvf-fe-knowledge-subsection{padding:10px 0;border-top:1px solid rgba(115,30,48,.10)}
.dkvf-fe-knowledge-subsection:first-child{border-top:0}
.dkvf-fe-knowledge-subsection h3{margin:0 0 6px;color:#5f1427;font-size:1.05rem}
.dkvf-fe-knowledge-subsection p:last-child{margin-bottom:0}

/* 0.3.87 – kunnskapsbibliotek: sammenleggbare blokker og Vinområder */
.dkvf-fe-knowledge-fold{padding:0;overflow:hidden}
.dkvf-fe-knowledge-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px}
.dkvf-fe-knowledge-fold>summary::-webkit-details-marker{display:none}
.dkvf-fe-knowledge-fold>summary span:first-child{display:flex;flex-direction:column;gap:3px}
.dkvf-fe-knowledge-fold>summary small{opacity:.68;font-weight:400}
.dkvf-fe-knowledge-fold[open]>summary .dkvf-fe-row-arrow{transform:rotate(90deg)}
.dkvf-fe-knowledge-fold-body{padding:0 18px 18px}
.dkvf-fe-knowledge-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px;font-size:.92rem}
.dkvf-fe-knowledge-breadcrumb a{text-decoration:none;font-weight:700}
.dkvf-fe-geo-wines article>div{display:flex;flex-direction:column;gap:3px}
.dkvf-fe-geo-wines article small strong{font-size:inherit}

/* 0.3.90: tydelig sendestatus i medlemsmeldinger */
.dkvf-fe-new-message.dkvf-is-sending,.dkvf-fe-chat-reply.dkvf-is-sending{background:#f1f1f1;border-radius:10px;padding:14px}
.dkvf-fe-new-message.dkvf-is-sending textarea,.dkvf-fe-new-message.dkvf-is-sending input,.dkvf-fe-new-message.dkvf-is-sending select,.dkvf-fe-chat-reply.dkvf-is-sending textarea{background:#f7f7f7}
.dkvf-fe-send-status{font-weight:700;color:var(--dkvf-text);padding:9px 11px;border-radius:8px;background:#e5e5e5}
.dkvf-fe-btn[disabled]{opacity:.65;cursor:not-allowed}

/* DKVF 0.3.91 – avgrensede forbedringer i meldingstjenesten */
.dkvf-fe-chat-search select,
.dkvf-fe-admin-message-archive select {
  min-height: 42px;
}
.dkvf-fe-admin-message-results {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.dkvf-fe-admin-message-row {
  border-top: 1px solid rgba(0,0,0,.09);
  padding-top: 12px;
}
.dkvf-fe-chat-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
}
.dkvf-fe-print-footer {
  display: none;
}

@media print {
  body.dkvf-printing-message-thread * {
    visibility: hidden !important;
  }
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel,
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel .dkvf-fe-chat-head,
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel .dkvf-fe-chat-thread,
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel .dkvf-fe-chat-thread *,
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel .dkvf-fe-chat-head *,
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel .dkvf-fe-chat-document,
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel .dkvf-fe-chat-document *,
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel .dkvf-fe-print-footer {
    visibility: visible !important;
  }
  body.dkvf-printing-message-thread .dkvf-fe-messages-panel {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    background: #fff !important;
    box-shadow: none !important;
  }
  body.dkvf-printing-message-thread .dkvf-fe-section-head,
  body.dkvf-printing-message-thread .dkvf-fe-message-notice,
  body.dkvf-printing-message-thread form,
  body.dkvf-printing-message-thread button,
  body.dkvf-printing-message-thread details,
  body.dkvf-printing-message-thread .dkvf-fe-chat-tools,
  body.dkvf-printing-message-thread .dkvf-fe-print-btn {
    display: none !important;
  }
  body.dkvf-printing-message-thread .dkvf-fe-chat-head,
  body.dkvf-printing-message-thread .dkvf-fe-chat-thread {
    display: block !important;
  }
  body.dkvf-printing-message-thread .dkvf-fe-chat-bubble {
    break-inside: avoid;
    page-break-inside: avoid;
    border: 1px solid #ccc !important;
    background: #fff !important;
    margin: 0 0 10px !important;
  }
  body.dkvf-printing-message-thread .dkvf-fe-print-footer {
    display: block !important;
    margin-top: 18px;
    padding-top: 8px;
    border-top: 1px solid #bbb;
    font-size: 10pt;
  }
}

/* DKVF 0.3.94 – meldingstjeneste: skjult medlemsfilter og egen adminflate */
.dkvf-fe-chat-search-simple{display:block}
.dkvf-fe-chat-search-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.dkvf-fe-chat-advanced{margin-top:8px;border:1px solid rgba(91,23,48,.16);border-radius:9px;background:rgba(255,255,255,.45)}
.dkvf-fe-chat-advanced>summary{cursor:pointer;padding:9px 11px;font-weight:700;color:#6b2735;list-style:none}
.dkvf-fe-chat-advanced>summary::-webkit-details-marker{display:none}
.dkvf-fe-chat-advanced>summary::after{content:' ▾';font-weight:400}
.dkvf-fe-chat-advanced[open]>summary::after{content:' ▴'}
.dkvf-fe-chat-advanced-body{display:grid;gap:10px;padding:0 11px 11px}
.dkvf-fe-chat-advanced-body label{display:grid;gap:5px;color:#66545b;font-size:.88rem}
.dkvf-fe-chat-advanced-body select{width:100%}
.dkvf-fe-checkbox-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:7px!important}
.dkvf-fe-admin-launch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 14px}
.dkvf-fe-admin-messages{display:grid;gap:14px}
.dkvf-fe-admin-message-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.dkvf-fe-admin-message-head h3{margin:.15rem 0 .25rem}
.dkvf-fe-admin-filter{display:grid;gap:10px}
.dkvf-fe-admin-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dkvf-fe-admin-filter-grid label{display:grid;gap:5px;font-size:.86rem;color:#66545b}
.dkvf-fe-admin-filter-grid select,.dkvf-fe-admin-filter-grid input{width:100%;min-height:42px}
.dkvf-fe-admin-message-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(91,23,48,.15);border-radius:10px;padding:8px}
.dkvf-fe-admin-message-row .dkvf-fe-chat-archive-form{margin:0}
.dkvf-fe-admin-message-row .dkvf-fe-chat-archive-form button{font-weight:700}
.dkvf-fe-chat-tools .dkvf-fe-chat-reply{flex:1 0 100%;width:100%}
.dkvf-fe-chat-tools .dkvf-fe-chat-reply label{display:grid;gap:6px}
@media (hover:hover) and (pointer:fine){
  .dkvf-fe-chat-advanced:not([open]):hover{background:rgba(111,24,57,.04)}
}
@media(max-width:720px){
  .dkvf-fe-chat-search-main{grid-template-columns:1fr}
  .dkvf-fe-chat-search-main .dkvf-fe-btn{width:100%}
  .dkvf-fe-admin-message-head{display:block}
  .dkvf-fe-admin-message-head .dkvf-fe-text-link{display:inline-block;margin-top:8px}
  .dkvf-fe-admin-filter-grid{grid-template-columns:1fr}
  .dkvf-fe-admin-message-row{grid-template-columns:1fr}
  .dkvf-fe-admin-message-row .dkvf-fe-chat-archive-form{justify-content:flex-start}
}

/* 0.4.02 – offentlig snarvei til DKVF Kodeleser */
.dkvf-fe-scanner-shortcut{
  position:fixed;
  top:max(10px,env(safe-area-inset-top));
  right:max(12px,env(safe-area-inset-right));
  z-index:100000;
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.42);
  border-radius:999px;
  background:var(--dkvf-wine,#6f1839);
  color:#fff!important;
  text-decoration:none!important;
  box-shadow:0 3px 12px rgba(0,0,0,.22);
}
.dkvf-fe-scanner-shortcut:hover,.dkvf-fe-scanner-shortcut:focus{
  background:var(--dkvf-wine-dark,#4e1028);
  color:#fff!important;
  outline:2px solid rgba(234,217,166,.72);
  outline-offset:2px;
}
.dkvf-fe-scanner-glyph{
  width:25px;
  height:20px;
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:2px;
}
.dkvf-fe-scanner-glyph i{display:block;background:currentColor;border-radius:1px}
.dkvf-fe-scanner-glyph i:nth-child(1){width:2px}
.dkvf-fe-scanner-glyph i:nth-child(2){width:1px}
.dkvf-fe-scanner-glyph i:nth-child(3){width:3px}
.dkvf-fe-scanner-glyph i:nth-child(4){width:1px}
.dkvf-fe-scanner-glyph i:nth-child(5){width:2px}
.dkvf-fe-scanner-glyph i:nth-child(6){width:1px}
.dkvf-fe-scanner-glyph i:nth-child(7){width:3px}
@media(max-width:700px){
  .dkvf-fe-scanner-shortcut{width:42px;height:42px;top:max(8px,env(safe-area-inset-top));right:max(9px,env(safe-area-inset-right))}
  .dkvf-fe-scanner-glyph{width:23px;height:18px}
}

/* 0.4.05 – public knowledge archive: neutral, factual wine presentation */
.dkvf-fe-latest-wines{margin-top:22px}
.dkvf-fe-latest-wine-list{display:grid;gap:8px;margin-top:10px}
.dkvf-fe-latest-wine-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(75,54,44,.16);border-radius:12px;background:#fff;color:inherit!important;text-decoration:none!important}
.dkvf-fe-latest-wine-row:hover,.dkvf-fe-latest-wine-row:focus{border-color:rgba(111,24,57,.42);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.dkvf-fe-latest-wine-row img{width:42px;height:58px;object-fit:contain;border-radius:5px;background:#fff}
.dkvf-fe-latest-wine-row strong,.dkvf-fe-latest-wine-row small{display:block}
.dkvf-fe-latest-wine-row small{margin-top:3px;color:#6d625c}
.dkvf-fe-latest-more{margin:12px 0 0}
.dkvf-fe-public-wine-detail{max-width:980px;margin:0 auto}
.dkvf-fe-wine-back{display:inline-block;margin:0 0 14px;color:inherit}
.dkvf-fe-wine-profile{padding:22px}
.dkvf-fe-wine-profile-main{display:grid;grid-template-columns:minmax(110px,180px) 1fr;gap:24px;align-items:start}
.dkvf-fe-wine-profile-image{width:100%;max-height:260px;object-fit:contain;background:#fff;border-radius:10px}
.dkvf-fe-wine-profile h1{margin:.25rem 0 .65rem}
.dkvf-fe-wine-producer{margin:.25rem 0}
.dkvf-fe-wine-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:22px 0 0}
.dkvf-fe-wine-facts>div{display:grid;grid-template-columns:minmax(95px,.45fr) 1fr;gap:12px;padding:10px 0;border-top:1px solid rgba(75,54,44,.14)}
.dkvf-fe-wine-facts dt{font-weight:700}.dkvf-fe-wine-facts dd{margin:0}
@media(max-width:700px){.dkvf-fe-wine-profile-main{grid-template-columns:90px 1fr;gap:15px}.dkvf-fe-wine-facts{grid-template-columns:1fr}.dkvf-fe-wine-profile{padding:16px}}
