
:root{
  --bg:#f2f5f3;--surface:#fff;--surface-soft:#f7faf8;--text:#183126;--muted:#687970;
  --line:#dce6e0;--green:#1d6549;--green-dark:#174f3b;--green-soft:#e7f3ec;
  --shadow:0 12px 36px rgba(30,61,46,.08);--radius:20px;
  /* Theme aliases used by older Phoenix modules */
  --card:var(--surface);--panel:var(--surface);--border:var(--line);
  --soft:var(--surface-soft);--accent:var(--green);--brand:var(--green);
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,select,a{font:inherit}
button,a{touch-action:manipulation}
.phoenix-shell{min-height:100vh}
.side-nav{position:fixed;inset:0 auto 0 0;width:250px;background:linear-gradient(180deg,#184f3b,#123e30);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:11px;padding:4px 7px 22px}
.brand-mark{width:42px;height:42px;border-radius:14px;background:#fff;color:var(--green-dark);display:grid;place-items:center;font-weight:900}
.brand strong,.brand span{display:block}.brand span{font-size:.78rem;color:#bcd0c6;margin-top:2px}
.side-nav nav{display:grid;gap:6px}
.nav-section-label{margin:9px 8px 2px;padding:10px 5px 5px;border-top:1px solid rgba(255,255,255,.16);display:flex;align-items:center;gap:8px;color:rgba(232,244,238,.68);text-transform:uppercase;letter-spacing:.11em;font-size:.68rem;font-weight:800;user-select:none}
.nav-section-label span{font-size:.9rem;line-height:1}
.nav-item{border:0;background:transparent;color:#d8e6df;border-radius:13px;padding:12px 13px;display:grid;grid-template-columns:25px 1fr auto;align-items:center;text-align:left;cursor:pointer}
.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.13);color:#fff}
.nav-item span{font-size:1.15rem}.nav-item b{font-size:.92rem}.nav-item em{font-style:normal;background:#fff;color:var(--green-dark);padding:2px 7px;border-radius:99px;font-size:.72rem}
.side-footer{margin-top:auto;display:grid;gap:10px;padding:12px 7px}
.side-footer a{color:#fff;text-decoration:none;font-weight:700}.side-footer small{color:#a9c0b5}
main{margin-left:250px;padding:28px 34px 60px;max-width:1600px}
.mobile-topbar,.bottom-nav{display:none}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-size:.7rem;font-weight:850;margin:0 0 5px}
h1,h2,h3,p{margin-top:0}.topbar h1{font-size:clamp(1.75rem,3vw,2.5rem);margin-bottom:5px}.topbar p:last-child{color:var(--muted);margin-bottom:0}
.top-actions{display:flex;align-items:center;gap:10px}
.object-picker{display:grid;gap:3px;background:var(--surface);border:1px solid var(--line);padding:7px 10px;border-radius:14px}
.object-picker span{font-size:.67rem;color:var(--muted);font-weight:700}.object-picker select{border:0;background:transparent;color:var(--text);font-weight:800;outline:0;min-width:180px}
.icon-button,.profile-button{border:1px solid var(--line);background:var(--surface);width:46px;height:46px;border-radius:14px;font-weight:850;color:var(--text)}
.profile-button{display:grid;place-items:center;background:var(--green-soft);color:var(--green-dark)}
.view{display:none}.view.active{display:block;animation:fade .18s ease-out}
@keyframes fade{from{opacity:.2;transform:translateY(4px)}to{opacity:1;transform:none}}
.hero-card{background:linear-gradient(135deg,#1c6047,#2d8061);color:#fff;border-radius:26px;padding:26px 28px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);margin-bottom:18px}
.hero-card .eyebrow{color:#cce2d7}.hero-card h2{font-size:clamp(1.45rem,3vw,2.1rem);margin-bottom:8px}.hero-card p:last-child{color:#d6e9df;margin-bottom:0}
.hero-score{width:94px;height:94px;border-radius:50%;border:8px solid rgba(255,255,255,.2);display:grid;place-items:center;text-align:center;background:rgba(255,255,255,.08)}
.hero-score strong,.hero-score span{display:block}.hero-score strong{font-size:1.65rem}.hero-score span{font-size:.7rem}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.summary-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:17px;display:flex;gap:13px;align-items:center;box-shadow:var(--shadow);cursor:pointer}
.summary-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.25rem;font-weight:900}
.accent-green .summary-icon{background:#def0e6;color:#1d6849}.accent-blue .summary-icon{background:#e2ecf7;color:#356991}.accent-amber .summary-icon{background:#fff0d0;color:#8a6413}.accent-purple .summary-icon{background:#eee6f7;color:#6d4f8d}
.summary-card span,.summary-card small,.summary-card strong{display:block}.summary-card span{font-size:.75rem;color:var(--muted);font-weight:750}.summary-card strong{font-size:1.7rem;margin:2px 0}.summary-card small{font-size:.72rem;color:var(--muted)}
.dashboard-columns{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.panel header,.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel header h2{margin-bottom:0}.panel header button{border:0;background:var(--green-soft);color:var(--green-dark);border-radius:10px;padding:8px 10px;font-weight:800;cursor:pointer}
.task-preview,.phoenix-task-list,.maintenance-list{display:grid;gap:10px}
.task-row{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto;
  grid-template-areas:
    "dot content date"
    "actions actions actions";
  column-gap:12px;
  row-gap:9px;
  align-items:center;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
}
.task-row:last-child{border-bottom:1px solid var(--line)}
.task-dot{
  grid-area:dot;
  width:24px;
  height:24px;
  border:2px solid #aac0b3;
  border-radius:8px;
  display:grid;
  place-items:center;
  color:#fff;
  cursor:pointer;
}
.task-row.done .task-dot{background:var(--green);border-color:var(--green)}
.task-row.done .task-name{text-decoration:line-through;color:var(--muted)}
.task-content{grid-area:content;min-width:0}
.task-name{font-weight:800;line-height:1.25}
.task-meta{font-size:.73rem;color:var(--muted);margin-top:3px}
.task-date{
  grid-area:date;
  align-self:start;
  min-width:128px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-soft);
  color:var(--text);
  white-space:nowrap;
  text-align:center;
  line-height:1.15;
}
.task-date span{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.task-date strong{
  display:block;
  font-size:1.05rem;
  font-weight:900;
  color:var(--text);
}
.task-date-done{background:var(--green-soft);border-color:#b9dac8}
.task-date-done strong{color:var(--green-dark)}
.task-actions{
  grid-area:actions;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-top:2px;
}
.task-actions button{
  min-height:34px;
  padding:6px 11px;
  border-radius:9px;
  cursor:pointer;
}
@media(max-width:700px){
  .task-row{
    grid-template-columns:28px minmax(0,1fr);
    grid-template-areas:
      "dot content"
      "date date"
      "actions actions";
  }
  .task-date{margin-left:40px;padding:9px 12px;min-width:0;width:max-content;max-width:calc(100% - 40px);text-align:left}
}
.object-preview{display:grid;gap:10px}.mini-object{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:15px;background:var(--surface-soft);border:1px solid var(--line);cursor:pointer}
.mini-object-icon{font-size:1.65rem}.mini-object strong,.mini-object span{display:block}.mini-object span{font-size:.74rem;color:var(--muted);margin-top:3px}.mini-object b{font-size:1.4rem;color:#8ca397}
.section-heading{margin-bottom:18px}.section-heading h2{font-size:2rem;margin-bottom:5px}.section-heading p:last-child{color:var(--muted)}
.primary-action{background:var(--green);color:#fff;text-decoration:none;border-radius:12px;padding:11px 14px;font-weight:800;white-space:nowrap}
.phoenix-object-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.phoenix-object-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow)}
.object-card-head{display:flex;justify-content:space-between;align-items:flex-start}.big-object-icon{font-size:2.3rem}.status-pill{padding:5px 9px;background:var(--green-soft);color:var(--green-dark);border-radius:99px;font-size:.68rem;font-weight:850}
.phoenix-object-card h3{margin:14px 0 4px;font-size:1.15rem}.phoenix-object-card>p{color:var(--muted);font-size:.82rem;min-height:35px}
.object-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0}.object-card-stats div{background:var(--surface-soft);border-radius:11px;padding:9px;text-align:center}.object-card-stats strong,.object-card-stats span{display:block}.object-card-stats span{font-size:.62rem;color:var(--muted)}
.object-card-button{display:block;text-decoration:none;text-align:center;border:1px solid var(--line);color:var(--green-dark);padding:10px;border-radius:11px;font-weight:850}
.filter-row{display:flex;gap:8px;margin-bottom:13px}.filter{border:1px solid var(--line);background:var(--surface);padding:9px 13px;border-radius:99px;font-weight:800;color:var(--muted)}.filter.active{background:var(--green);color:#fff;border-color:var(--green)}
.phoenix-task-list,.maintenance-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px 18px;box-shadow:var(--shadow)}
.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.inventory-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:15px}.inventory-card h3{margin-bottom:5px;font-size:.98rem}.inventory-card p{font-size:.78rem;color:var(--muted);margin-bottom:0}
.more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.more-grid a{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:20px;text-decoration:none;color:var(--text);font-size:1.25rem;font-weight:850}.more-grid span{display:block;font-size:.78rem;color:var(--muted);font-weight:500;margin-top:6px}
.empty{padding:28px;text-align:center;color:var(--muted)}
.toast{
  position:fixed;
  left:50%;
  bottom:42px;
  transform:translateX(-50%);
  z-index:99;
  background:#173f31;
  color:#fff;
  padding:11px 16px;
  border-radius:12px;
  box-shadow:var(--shadow);
  animation:toast-in .2s ease-out;
}
@keyframes toast-in{
  from{opacity:0;transform:translate(-50%,10px)}
  to{opacity:1;transform:translate(-50%,0)}
}
body.dark{--bg:#101713;--surface:#17211c;--surface-soft:#1c2922;--text:#edf7f1;--muted:#a8b7af;--line:#2b3a32;--shadow:0 12px 36px rgba(0,0,0,.2);--green-soft:#244133}
@media(max-width:1050px){.summary-grid{grid-template-columns:repeat(2,1fr)}.phoenix-object-grid,.inventory-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  body{padding-bottom:78px}.side-nav,.topbar{display:none}.mobile-topbar{display:flex;position:sticky;top:0;z-index:15;align-items:center;justify-content:space-between;background:rgba(242,245,243,.92);backdrop-filter:blur(14px);padding:11px 16px;border-bottom:1px solid var(--line)}
  body.dark .mobile-topbar{background:rgba(16,23,19,.92)}
  .brand.compact{padding:0}.brand.compact .brand-mark{width:36px;height:36px;border-radius:11px;background:var(--green);color:#fff}
  main{margin:0;padding:17px 14px 20px}.view::before{display:block;font-size:1.65rem;font-weight:900;margin-bottom:5px}.view::after{display:block;color:var(--muted);font-size:.85rem;margin-bottom:17px}
  #dashboardView::before{content:"Dashboard"}#dashboardView::after{content:"Dit vraagt vandaag je aandacht."}
  .hero-card{padding:20px;border-radius:20px}.hero-score{width:76px;height:76px;border-width:6px}.summary-grid{grid-template-columns:repeat(2,1fr);gap:10px}.summary-card{display:block;padding:14px}.summary-icon{margin-bottom:10px;width:39px;height:39px}.summary-card strong{font-size:1.45rem}
  .dashboard-columns{grid-template-columns:1fr}.panel{padding:16px}.dashboard-columns .panel:nth-child(2){display:none}
  .section-heading{display:block}.section-heading .primary-action{display:inline-block;margin-top:8px}.section-heading h2{font-size:1.65rem}
  .phoenix-object-grid,.inventory-grid,.more-grid{grid-template-columns:1fr}.object-card-stats{grid-template-columns:repeat(3,1fr)}
  .bottom-nav{display:grid;position:fixed;inset:auto 0 0;z-index:30;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line);padding:7px 5px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -10px 28px rgba(20,50,35,.08)}
  .bottom-nav button{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;gap:2px;font-size:1rem}.bottom-nav b{font-size:.62rem}.bottom-nav button.active{color:var(--green)}
}
@media(max-width:390px){.summary-grid{grid-template-columns:1fr 1fr}.summary-card small{display:none}.hero-score{display:none}.task-date{display:block}}


/* Phoenix Alpha 2 */
.search-trigger{border:1px solid var(--line);background:var(--surface);color:var(--muted);height:46px;border-radius:14px;padding:0 12px;display:flex;align-items:center;gap:8px;cursor:pointer}
.search-trigger b{color:var(--text);font-size:.82rem}.search-trigger kbd{border:1px solid var(--line);background:var(--surface-soft);border-radius:6px;padding:2px 6px;font-size:.65rem;color:var(--muted)}
.workspace-strip{display:flex;gap:9px;overflow-x:auto;padding:1px 1px 14px;scrollbar-width:none}
.workspace-strip::-webkit-scrollbar{display:none}
.workspace{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:14px;padding:10px 14px;display:flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;font-weight:800}
.workspace.active{background:var(--green);border-color:var(--green);color:#fff}
.workspace span{font-size:1.05rem}
.cockpit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.cockpit-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:var(--shadow)}
.cockpit-card span,.cockpit-card strong,.cockpit-card small{display:block}.cockpit-card span{font-size:.72rem;color:var(--muted);font-weight:800}.cockpit-card strong{font-size:1.55rem;margin:5px 0}.cockpit-card small{color:var(--muted)}
.progress{height:7px;background:var(--surface-soft);border-radius:99px;overflow:hidden;margin:8px 0}.progress i{display:block;height:100%;width:0;background:var(--green);border-radius:inherit;transition:width .35s ease}
.activity-list{display:grid;gap:8px}.activity-item{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:11px 4px;border-bottom:1px solid var(--line)}.activity-item:last-child{border-bottom:0}.activity-icon{width:32px;height:32px;border-radius:10px;background:var(--green-soft);display:grid;place-items:center}.activity-item strong,.activity-item small{display:block}.activity-item small{color:var(--muted);margin-top:3px}
.dashboard-columns{grid-template-columns:1.25fr .95fr}.activity-panel{grid-column:1/-1}
.fab{position:fixed;right:28px;bottom:28px;width:58px;height:58px;border-radius:50%;border:0;background:var(--green);color:#fff;font-size:2rem;line-height:1;box-shadow:0 14px 32px rgba(17,70,49,.28);z-index:40;cursor:pointer}
.sheet-backdrop,.palette-backdrop{position:fixed;inset:0;background:rgba(7,20,14,.5);backdrop-filter:blur(5px);z-index:80;display:grid;place-items:end center;padding:18px}
.sheet-backdrop[hidden],.palette-backdrop[hidden]{display:none}
.bottom-sheet{width:min(560px,100%);background:var(--surface);color:var(--text);border-radius:24px 24px 18px 18px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.3)}
.bottom-sheet header{display:flex;justify-content:space-between;align-items:center}.bottom-sheet header button,.command-palette header button{border:0;background:var(--surface-soft);color:var(--text);width:38px;height:38px;border-radius:12px;font-size:1.35rem}
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.quick-grid a{background:var(--surface-soft);border:1px solid var(--line);border-radius:16px;padding:16px;text-decoration:none;color:var(--text);display:grid;place-items:center;gap:6px;font-size:1.35rem;font-weight:850}.quick-grid span{font-size:.76rem}
.bottom-sheet>p{color:var(--muted);font-size:.78rem;margin-bottom:0}
.palette-backdrop{place-items:start center;padding-top:8vh}
.command-palette{width:min(720px,100%);max-height:78vh;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 28px 90px rgba(0,0,0,.34)}
.command-palette header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--line)}
.command-palette input{border:0;background:transparent;color:var(--text);font-size:1rem;outline:0;width:100%}
.search-results{padding:10px;overflow:auto;max-height:62vh}
.search-result{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:12px;border-radius:14px;cursor:pointer}
.search-result:hover{background:var(--surface-soft)}.search-result-icon{width:36px;height:36px;border-radius:11px;background:var(--green-soft);display:grid;place-items:center}.search-result strong,.search-result small{display:block}.search-result small{color:var(--muted);margin-top:2px}.search-result em{font-style:normal;color:var(--muted);font-size:.72rem}
.accessibility-sheet{display:grid;gap:10px}.accessibility-sheet label{display:flex;gap:11px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:14px;font-weight:800}.accessibility-sheet input{width:22px;height:22px}
body.large-text{font-size:112%}
body.large-targets button,body.large-targets a{min-height:52px}
body.high-contrast{--text:#08170f;--muted:#35463d;--line:#8ba196;--green:#004d31;--green-dark:#003d27}
body.dark.high-contrast{--text:#fff;--muted:#d7e3dc;--line:#71867b;--green:#48a77b}
body.left-hand .fab{right:auto;left:28px}
@media(max-width:760px){
  .cockpit-grid{grid-template-columns:1fr}.activity-panel{display:block!important}
  .fab{right:17px;bottom:88px;width:56px;height:56px}
  body.left-hand .fab{left:17px}
  .search-trigger{display:none}
  .workspace-strip{margin-top:-4px}
  .quick-grid{grid-template-columns:repeat(3,1fr)}
  .palette-backdrop{padding:10px;place-items:start center}
  .command-palette{margin-top:5vh}
}


/* Phoenix Alpha 3 - Objectdossier */
.object-dossier[hidden]{display:none}
.back-button{border:1px solid var(--line);background:var(--surface);color:var(--green-dark);padding:10px 14px;border-radius:12px;font-weight:850;margin-bottom:14px;cursor:pointer}
.dossier-hero{background:linear-gradient(135deg,var(--surface),var(--surface-soft));border:1px solid var(--line);border-radius:24px;padding:22px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;box-shadow:var(--shadow)}
.dossier-icon{width:72px;height:72px;border-radius:20px;background:var(--green-soft);display:grid;place-items:center;font-size:2.3rem}
.dossier-hero h2{font-size:clamp(1.5rem,3vw,2.15rem);margin-bottom:5px}.dossier-hero p:last-child{margin-bottom:0;color:var(--muted)}
.dossier-tabs{display:flex;gap:8px;overflow-x:auto;padding:15px 1px 12px;scrollbar-width:none}.dossier-tabs::-webkit-scrollbar{display:none}
.dossier-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--muted);padding:10px 14px;border-radius:12px;font-weight:850;white-space:nowrap;cursor:pointer}
.dossier-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}
.dossier-tab{display:none}.dossier-tab.active{display:block;animation:fade .18s ease-out}
.dossier-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:4px 0 16px}
.dossier-summary-grid article{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:16px;box-shadow:var(--shadow)}
.dossier-summary-grid span,.dossier-summary-grid strong{display:block}.dossier-summary-grid span{font-size:.72rem;color:var(--muted);font-weight:800}.dossier-summary-grid strong{font-size:1.65rem;margin-top:5px}
.compact-heading{margin-top:6px}.compact-heading h2{font-size:1.55rem}
.empty-state-card{background:var(--surface);border:1px dashed var(--line);border-radius:20px;padding:42px 20px;text-align:center;color:var(--muted)}
.empty-state-card div{font-size:2.5rem}.empty-state-card h2{color:var(--text);margin:10px 0 6px}
.maintenance-list.compact{box-shadow:none;border:0;padding:0}
@media(max-width:760px){
  .dossier-hero{grid-template-columns:auto 1fr;padding:17px}.dossier-hero .status-pill{grid-column:1/-1;justify-self:start}
  .dossier-icon{width:58px;height:58px;border-radius:16px;font-size:1.8rem}
  .dossier-summary-grid{grid-template-columns:repeat(2,1fr)}
  .dossier-tabs{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
}


/* Phoenix Alpha 4 - Vandaag, vertrekmodus en Visual Planner */
.today-welcome{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
.today-welcome h2{font-size:clamp(1.8rem,3vw,2.45rem);margin-bottom:5px}.today-welcome p:last-child{color:var(--muted);margin-bottom:0}
.departure-button{border:0;background:linear-gradient(135deg,#245f48,#348466);color:#fff;border-radius:16px;padding:13px 17px;display:flex;align-items:center;gap:9px;box-shadow:var(--shadow);cursor:pointer}
.departure-button span{font-size:1.3rem}
.today-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:18px}.today-main,.today-side{display:grid;gap:18px;align-content:start}
.today-status-card{background:linear-gradient(135deg,#1b5b43,#307e60);color:#fff;border-radius:24px;padding:22px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;box-shadow:var(--shadow)}
.today-object-icon{width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:2rem}
.today-status-card span,.today-status-card small{color:#d5e8de}.today-status-card h3{font-size:1.35rem;margin:4px 0}.today-status-card p{margin:0;color:#d5e8de}
.today-score{text-align:center;border-left:1px solid rgba(255,255,255,.25);padding-left:18px}.today-score strong,.today-score small{display:block}.today-score strong{font-size:1.8rem}
.departure-panel{background:var(--surface);border:2px solid var(--green);border-radius:24px;padding:20px;margin-bottom:18px;box-shadow:var(--shadow)}
.departure-panel[hidden]{display:none}.departure-panel header{display:flex;justify-content:space-between;gap:14px}.departure-panel header button{border:0;background:var(--surface-soft);color:var(--text);width:42px;height:42px;border-radius:12px;font-size:1.4rem}
.departure-meter{display:flex;align-items:center;gap:18px;background:var(--surface-soft);border-radius:18px;padding:16px;margin:15px 0}
.departure-ring{width:92px;height:92px;border-radius:50%;border:9px solid var(--green-soft);display:grid;place-items:center;text-align:center;flex:0 0 auto}.departure-ring strong,.departure-ring span{display:block}.departure-ring strong{font-size:1.35rem}.departure-ring span{font-size:.66rem;color:var(--muted)}
.departure-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.departure-item{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;padding:12px}.departure-item.done{opacity:.68}.departure-item.done strong{text-decoration:line-through}.departure-check{width:27px;height:27px;border:2px solid #9db4a7;border-radius:8px;display:grid;place-items:center}.departure-item.done .departure-check{background:var(--green);border-color:var(--green);color:#fff}.departure-item strong,.departure-item small{display:block}.departure-item small{color:var(--muted);margin-top:3px}
.visual-planner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.planner-zone{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:var(--shadow);min-height:175px}
.planner-zone header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.planner-zone h3{margin:0}.planner-zone header span{background:var(--green-soft);color:var(--green-dark);border-radius:99px;padding:4px 8px;font-size:.68rem;font-weight:850}
.planner-items{display:grid;gap:7px}.planner-item{background:var(--surface-soft);border-radius:11px;padding:9px}.planner-item strong,.planner-item small{display:block}.planner-item small{color:var(--muted);font-size:.7rem;margin-top:2px}
.planner-empty{grid-column:1/-1;background:var(--surface);border:1px dashed var(--line);border-radius:20px;padding:35px;text-align:center;color:var(--muted)}
@media(max-width:1050px){.today-grid{grid-template-columns:1fr}.visual-planner{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  #todayView::before,#todayView::after{display:none}
  .today-welcome{align-items:flex-start}.departure-button{padding:11px 13px}.departure-button b{display:none}
  .today-status-card{grid-template-columns:auto 1fr;padding:17px}.today-score{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.25);padding:11px 0 0;display:flex;justify-content:space-between;align-items:center}
  .departure-checklist{grid-template-columns:1fr}.departure-meter{align-items:flex-start}.departure-ring{width:76px;height:76px;border-width:7px}
  .visual-planner{grid-template-columns:1fr}
}


/* Phoenix Alpha 5 - Foto's en documenten */
.media-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:8px 0 17px}.media-heading h2{font-size:1.65rem;margin-bottom:5px}.media-heading p:last-child{color:var(--muted)}
.media-add-button{border:0;cursor:pointer}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.photo-card,.document-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
.photo-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--surface-soft)}
.media-card-info{padding:12px}.media-card-info strong,.media-card-info small{display:block}.media-card-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-card-info small{color:var(--muted);margin-top:4px}
.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.document-card{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:15px}
.document-icon{width:48px;height:48px;border-radius:14px;background:var(--green-soft);display:grid;place-items:center;font-size:1.45rem}.document-card b{color:var(--muted);font-size:1.3rem}
.media-empty{grid-column:1/-1;background:var(--surface);border:1px dashed var(--line);border-radius:18px;padding:38px;text-align:center;color:var(--muted)}
.media-dialog-backdrop,.media-viewer-backdrop{position:fixed;inset:0;background:rgba(5,18,12,.58);backdrop-filter:blur(5px);z-index:100;display:grid;place-items:center;padding:16px}
.media-dialog-backdrop[hidden],.media-viewer-backdrop[hidden]{display:none}
.media-dialog,.media-viewer{width:min(600px,100%);max-height:92vh;overflow:auto;background:var(--surface);color:var(--text);border-radius:23px;padding:20px;box-shadow:0 28px 90px rgba(0,0,0,.35)}
.media-dialog header,.media-viewer header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.media-dialog header button,.media-viewer header button{border:0;background:var(--surface-soft);color:var(--text);width:40px;height:40px;border-radius:12px;font-size:1.4rem}
.media-dialog form{display:grid;gap:12px}.media-dialog label{display:grid;gap:6px;font-weight:800;font-size:.82rem}.media-dialog input,.media-dialog select,.media-dialog textarea{width:100%;border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:12px;padding:11px;outline:0}
.media-dialog textarea{resize:vertical}.media-help{font-size:.72rem;color:var(--muted);margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:9px}
.secondary-action,.danger-action{border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:12px;padding:11px 14px;font-weight:850;cursor:pointer}.danger-action{background:#fff0ef;color:#9b2d27;border-color:#ecc2bf}
.media-upload-preview img{max-width:100%;max-height:210px;border-radius:14px;object-fit:contain;background:var(--surface-soft)}.media-upload-preview .file-preview{padding:13px;background:var(--surface-soft);border-radius:12px}
.media-viewer{width:min(850px,100%)}.media-viewer #mediaViewerContent{margin:14px 0}.media-viewer img{display:block;max-width:100%;max-height:68vh;margin:auto;border-radius:14px}.media-viewer iframe{width:100%;height:65vh;border:1px solid var(--line);border-radius:14px;background:#fff}.media-viewer .viewer-file{padding:45px;text-align:center;background:var(--surface-soft);border-radius:15px;font-size:3rem}.media-viewer .viewer-file span{display:block;font-size:.9rem;margin-top:10px;color:var(--muted)}
.media-viewer footer{display:flex;justify-content:space-between;gap:10px;align-items:center}.media-viewer footer a{text-align:center}
body.media-open{overflow:hidden}
@media(max-width:900px){.photo-grid{grid-template-columns:repeat(2,1fr)}.document-grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .media-heading{display:block}.media-add-button{width:100%;margin-top:8px}
  .photo-grid{grid-template-columns:repeat(2,1fr);gap:9px}.media-card-info{padding:9px}.media-card-info small{font-size:.68rem}
  .media-dialog-backdrop,.media-viewer-backdrop{place-items:end center;padding:0}.media-dialog,.media-viewer{border-radius:24px 24px 0 0;max-height:94vh}
  .dialog-actions{display:grid;grid-template-columns:1fr 1fr}.media-viewer footer{display:grid;grid-template-columns:1fr 1fr}
}


/* Phoenix Alpha 6 - compleet dossier, kosten en tijdlijn */
.dossier-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.cost-summary{background:linear-gradient(135deg,var(--green-dark),var(--green));color:#fff;border-radius:20px;padding:20px;margin-bottom:14px;box-shadow:var(--shadow)}
.cost-summary span,.cost-summary strong,.cost-summary small{display:block}.cost-summary strong{font-size:2rem;margin:6px 0}.cost-summary small{opacity:.82}
.cost-list{display:grid;gap:10px}.cost-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 15px;box-shadow:var(--shadow)}
.cost-row strong,.cost-row small{display:block}.cost-row small{color:var(--muted);margin-top:4px}.cost-row b{font-size:1.05rem}.cost-row button{border:0;background:var(--surface-soft);color:var(--muted);width:34px;height:34px;border-radius:10px;font-size:1.2rem;cursor:pointer}
.timeline-list{position:relative;display:grid;gap:0;padding-left:8px}.timeline-list:before{content:'';position:absolute;left:27px;top:14px;bottom:14px;width:2px;background:var(--line)}
.timeline-item{position:relative;display:grid;grid-template-columns:40px 1fr;gap:13px;padding:10px 0}.timeline-icon{z-index:1;width:40px;height:40px;border-radius:13px;background:var(--green-soft);display:grid;place-items:center;font-weight:900;color:var(--green-dark)}
.timeline-item>div:last-child{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:12px 14px;box-shadow:var(--shadow)}.timeline-item time,.timeline-item strong,.timeline-item small{display:block}.timeline-item time{font-size:.7rem;color:var(--muted);font-weight:800}.timeline-item strong{margin:3px 0}.timeline-item small{color:var(--muted)}
@media(max-width:900px){.dossier-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cost-row{grid-template-columns:1fr auto}.cost-row button{grid-column:2}.dossier-summary-grid{grid-template-columns:repeat(2,1fr)}}

/* Alpha 7: volledig beheren in Phoenix */
.more-grid button,.quick-grid button{appearance:none;border:0;text-align:left;font:inherit;color:inherit;background:var(--card,#fff);cursor:pointer}
.more-grid button{display:flex;flex-direction:column;gap:.35rem;padding:1.15rem;border-radius:18px;box-shadow:var(--shadow);font-size:1.15rem}
.more-grid button span,.quick-grid button span{font-size:.82rem;opacity:.72}
.quick-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-height:92px;border-radius:16px;font-size:1.4rem}
.quick-grid button span{font-size:.8rem;font-weight:700}
.record-form{display:grid;gap:1rem}.record-form label{display:grid;gap:.4rem}.record-form input,.record-form select,.record-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(100,110,105,.28);border-radius:12px;padding:.8rem;background:var(--card,#fff);color:inherit;font:inherit}.record-sheet{max-width:620px}.dialog-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:.5rem}.phoenix-primary-label{font-size:.8rem;opacity:.65}

/* Alpha 10 - Beheercentrum */
.master-data-dialog{max-width:820px;width:min(94vw,820px);max-height:88vh;overflow:auto}
.master-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}
.master-tabs button{border:1px solid var(--line,#d9e1e7);background:var(--card,#fff);border-radius:999px;padding:.65rem .9rem;cursor:pointer}
.master-tabs button.active{background:var(--accent,#147d64);color:#fff;border-color:transparent}
.master-add-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;margin-bottom:1rem}
.master-add-row input{min-height:46px;border:1px solid var(--line,#d9e1e7);border-radius:12px;padding:0 .85rem;font:inherit}
.master-data-list{display:grid;gap:.55rem}
.master-item{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;border:1px solid var(--line,#d9e1e7);border-radius:14px;padding:.65rem .75rem;background:var(--card,#fff)}
.master-item input{width:100%;border:0;background:transparent;font:inherit;font-weight:650;padding:.4rem}
.master-item button{border:0;border-radius:10px;padding:.55rem .7rem;cursor:pointer}
.master-item .save-master{background:#e8f5f0}
.master-item .delete-master{background:#fff0f0;color:#9b2424}
@media(max-width:640px){.master-add-row{grid-template-columns:1fr}.master-item{grid-template-columns:1fr auto}.master-item input{grid-column:1/-1}}

/* Phoenix Alpha 11 - Updatecentrum */
.update-center-dialog{max-width:820px;max-height:min(90vh,900px);overflow:auto}
.phoenix-update-form{display:grid;gap:16px;margin:18px 0}
.phoenix-update-form label:first-child{display:grid;gap:8px;font-weight:700}
.phoenix-update-form input[type=file]{width:100%;padding:14px;border:1px solid var(--line,#d8dedb);border-radius:14px;background:var(--surface,#fff)}
.update-confirm{display:flex;align-items:flex-start;gap:10px;padding:14px;border-radius:14px;background:rgba(24,79,59,.07);font-weight:500}
.update-confirm input{margin-top:3px;min-width:20px;min-height:20px}
.updater-status{padding:16px;border-radius:16px;background:rgba(24,79,59,.07);line-height:1.75}
.updater-result{padding:14px 16px;border-radius:14px;margin-top:12px;font-weight:700}
.updater-result.success{background:rgba(31,122,78,.12);color:#17683f}
.updater-result.error{background:rgba(177,42,42,.12);color:#9e2525}
.update-center-section{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 0;border-top:1px solid var(--line,#d8dedb)}
.update-center-section.history-section{display:block}
.danger-button{border:0;border-radius:12px;padding:12px 16px;background:#a52a2a;color:#fff;font-weight:700;cursor:pointer}
.danger-button:disabled{opacity:.45;cursor:not-allowed}
.update-history{display:grid;gap:10px;margin-top:12px}
.update-history-item{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:12px 14px;border:1px solid var(--line,#d8dedb);border-radius:12px}
.update-history-item small{grid-column:1/-1;opacity:.7}
@media(max-width:680px){.update-center-section{align-items:stretch;flex-direction:column}.update-center-section .danger-button{width:100%}.update-history-item{grid-template-columns:1fr}}

/* Alpha 11 hotfix: veilige acties voor Inventaris en Onderhoud */
.phoenix-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.phoenix-card-actions .small{padding:8px 11px;border-radius:10px}
.maintenance-record-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:8px 12px 12px;margin-bottom:12px}
.maintenance-record-card .task-row{border:0;background:transparent;padding:10px 4px}


/* Phoenix 9.1 Dashboard 2.0 */
.dashboard-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-inventory-list{display:grid;gap:9px}
.dashboard-inventory-item{width:100%;border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:14px;padding:11px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;cursor:pointer}
.dashboard-inventory-item:hover{border-color:#b9d1c4;transform:translateY(-1px)}
.dashboard-inventory-item span,.dashboard-inventory-item strong,.dashboard-inventory-item small{display:block}
.dashboard-inventory-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-inventory-item small{color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-inventory-item>b{font-size:1.25rem;color:var(--muted)}
.dashboard-item-icon{width:34px;height:34px;border-radius:10px;background:var(--green-soft);color:var(--green-dark);display:grid!important;place-items:center;font-weight:900}
.summary-card{transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.summary-card:hover{transform:translateY(-2px);border-color:#b9d1c4;box-shadow:0 16px 40px rgba(30,61,46,.12)}
@media(max-width:900px){.dashboard-overview-grid{grid-template-columns:1fr}}

/* Phoenix 9.1.1 - verwijderactie met ongedaan maken */
.toast{
  display:flex;
  align-items:center;
  gap:14px;
  max-width:min(92vw,520px);
}
.toast-message{min-width:0}
.toast-action{
  border:0;
  border-left:1px solid rgba(255,255,255,.28);
  background:transparent;
  color:#fff;
  padding:4px 0 4px 14px;
  font:inherit;
  font-weight:850;
  white-space:nowrap;
  cursor:pointer;
}
.toast-action:hover,.toast-action:focus-visible{text-decoration:underline}
.toast-action:disabled{opacity:.55;cursor:wait}

/* Phoenix 9.1.2 - onderhoudsstatus en moderne actieknoppen */
.maintenance-task-row{
  align-items:center;
}
.maintenance-date-block{
  grid-area:date;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  min-width:118px;
}
.maintenance-date-block .task-date{
  grid-area:auto;
  padding-top:0;
}
.maintenance-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 9px;
  border-radius:999px;
  font-size:.68rem;
  font-weight:850;
  white-space:nowrap;
}
.maintenance-status-ok{
  background:#e8f5ed;
  color:#216742;
}
.maintenance-status-soon{
  background:#fff3d7;
  color:#8a5b00;
}
.maintenance-status-late{
  background:#fde8e7;
  color:#a52a2a;
}
.maintenance-status-neutral{
  background:var(--surface-soft);
  color:var(--muted);
}
.modern-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  padding-top:12px;
}
.icon-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
}
.icon-action span{
  line-height:1;
}
@media(max-width:700px){
  .maintenance-date-block{
    align-items:flex-start;
    padding-left:40px;
    min-width:0;
  }
  .modern-card-actions .icon-action{
    flex:1 1 145px;
  }
}

/* Phoenix 9.1.2 alpha 2 - toast volledig verwijderen wanneer verborgen */
.toast[hidden]{
  display:none !important;
}

/* Phoenix 9.2.0 - Inkoop */
.shopping-quick-status,
.shopping-inline-grid select,
#shoppingStatus {
  min-height: 42px;
  border: 1px solid var(--border, #d9dee8);
  border-radius: 10px;
  background: #fff;
  padding: 0 12px;
  font: inherit;
}
.shopping-state-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #eef2f7;
  font-weight: 800;
}
.shopping-status-ordered .shopping-state-icon { background: #fff2cc; }
.shopping-status-received .shopping-state-icon { background: #dff5e5; }
.shopping-status-ordered .shopping-status { background: #fff2cc; }
.shopping-status-received .shopping-status { background: #dff5e5; }
@media (max-width: 720px) {
  .shopping-quick-status { width: 100%; }
}


/* Phoenix 9.2.2 - Checklist hoofdmodule */
.accent-teal{border-top:4px solid #2f8f83}.checklist-toolbar-panel{margin-bottom:16px}.checklist-toolbar-panel>header{align-items:flex-start}.checklist-progress-track{height:10px;background:var(--surface-soft);border-radius:999px;overflow:hidden;margin:14px 0}.checklist-progress-track i{display:block;height:100%;width:0;background:var(--green);border-radius:inherit;transition:width .2s ease}.checklist-controls{display:grid;grid-template-columns:minmax(220px,1fr) 180px 220px;gap:10px}.checklist-controls input,.checklist-controls select{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:11px 12px;font:inherit}.checklist-groups{display:grid;gap:14px}.checklist-category-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}.checklist-category-card>header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.checklist-category-card>header h3{margin:0}.checklist-category-card>header span{background:var(--green);color:#fff;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:800}.phoenix-checklist-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 15px;border-bottom:1px solid var(--line)}.phoenix-checklist-item:last-child{border-bottom:0}.phoenix-checklist-item.done{opacity:.68}.phoenix-checklist-item.done strong{text-decoration:line-through}.checklist-main-label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;cursor:pointer}.checklist-main-label input{width:22px;height:22px;accent-color:var(--green)}.checklist-main-label strong,.checklist-main-label small{display:block}.checklist-main-label small{color:var(--muted);margin-top:3px}.checklist-row-actions{display:flex;gap:6px}.checklist-row-actions button{border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:10px;width:38px;height:38px;cursor:pointer}.checklist-row-actions button:hover{border-color:#a8c7b6}.checklist-dialog-check{display:flex!important;flex-direction:row!important;align-items:center;gap:10px}.checklist-dialog-check input{width:20px;height:20px}.toast[hidden]{display:none!important}
@media(max-width:760px){.checklist-controls{grid-template-columns:1fr}.phoenix-checklist-item{padding:12px 10px}.checklist-row-actions button{width:36px;height:36px}}


/* Phoenix 9.3 - Inkoop en persoonlijke checklist */
.accent-shopping{border-top:4px solid #d9862b}
.shopping-toolbar-panel{display:grid;gap:16px;margin-bottom:16px}
.shopping-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.shopping-stat-grid button{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:14px;padding:13px 15px;font:inherit;cursor:pointer}
.shopping-stat-grid strong{font-size:1.25rem}.shopping-controls{display:grid;grid-template-columns:minmax(220px,1fr) 190px;gap:10px}
.shopping-controls input,.shopping-controls select,.shopping-form-grid input{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:11px 12px;font:inherit}
.phoenix-shopping-list{display:grid;gap:12px}.phoenix-shopping-card{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;background:var(--surface);border:1px solid var(--line);border-left:5px solid #d9862b;border-radius:18px;padding:15px}
.phoenix-shopping-card.status-ordered{border-left-color:#4d83bd}.phoenix-shopping-card.status-received{border-left-color:var(--green);opacity:.78}
.shopping-card-state{display:grid;place-items:start center}.shopping-card-state span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--surface-soft);font-size:1.2rem}
.shopping-card-body header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.shopping-card-body header strong,.shopping-card-body header small{display:block}.shopping-card-body header small{color:var(--muted);margin-top:4px}.shopping-card-meta{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--muted);font-size:.88rem;margin:9px 0}.shopping-card-body p{margin:8px 0}.shopping-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.shopping-card-actions button,.shopping-card-actions a,.shopping-card-actions select{border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:10px;padding:9px 11px;font:inherit;text-decoration:none;cursor:pointer}.shopping-card-actions .shopping-delete{color:#a33}.shopping-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:760px){.shopping-stat-grid{grid-template-columns:1fr}.shopping-controls,.shopping-form-grid{grid-template-columns:1fr}.phoenix-shopping-card{grid-template-columns:44px minmax(0,1fr);padding:12px}.shopping-card-body header{display:block}.shopping-card-body header>b{display:block;margin-top:6px}}


/* Phoenix 9.3.1 - betrouwbare mobiele navigatie */
.mobile-menu-button,.mobile-menu-backdrop{display:none}
@media(max-width:760px){
  .mobile-topbar{display:grid!important;grid-template-columns:44px 1fr 44px;gap:10px}
  .mobile-topbar .brand.compact{justify-self:center}
  .mobile-menu-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-size:1.45rem;font-weight:900;cursor:pointer}
  .mobile-menu-backdrop{display:block;position:fixed;inset:0;z-index:39;border:0;background:rgba(0,0,0,.38)}
  .mobile-menu-backdrop[hidden]{display:none}
  .side-nav.mobile-open{display:flex;z-index:40;width:min(82vw,310px);box-shadow:18px 0 45px rgba(0,0,0,.28);animation:phoenixMenuIn .18s ease-out}
  .side-nav.mobile-open nav{overflow-y:auto;padding-bottom:24px}
  body.mobile-menu-visible{overflow:hidden}
}
@keyframes phoenixMenuIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}

/* Phoenix 9.3.6 - Mobile UI 2.0 */
.mobile-object-picker{display:none}
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  body{font-size:15px}
  .mobile-topbar{grid-template-columns:42px minmax(0,1fr) minmax(62px,112px)!important;padding:8px 10px!important;gap:7px!important}
  .mobile-menu-button{width:40px;height:40px}
  .mobile-topbar .brand.compact strong{font-size:.9rem}
  .mobile-topbar .brand.compact .brand-mark{width:32px;height:32px;font-size:.72rem}
  .mobile-object-picker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px;min-width:0;height:40px;padding:0 6px;border:1px solid #b8d7c7;border-radius:12px;background:var(--green-soft);color:var(--green-dark);overflow:hidden}
  .mobile-object-picker>span{font-size:1rem;line-height:1}
  .mobile-object-picker select{min-width:0;width:100%;border:0;background:transparent;color:var(--green-dark);font:inherit;font-size:.72rem;font-weight:850;outline:0;text-overflow:ellipsis;white-space:nowrap}
  main{width:100%;max-width:100%;padding:12px 10px 18px!important;overflow-x:hidden}
  .view::before{font-size:1.38rem!important;margin-bottom:2px!important}
  .view::after{font-size:.76rem!important;margin-bottom:11px!important}
  .hero-card,.panel,.cockpit-card,.summary-card{border-radius:15px!important}
  .hero-card{padding:15px!important}
  .summary-grid{gap:7px!important}
  .summary-card{padding:10px!important}
  .summary-card span,.summary-card small{font-size:.68rem!important}
  .summary-card strong{font-size:1.2rem!important}
  .summary-icon{width:34px!important;height:34px!important;margin-bottom:6px!important}
  .dashboard-columns,.dashboard-overview-grid,.cockpit-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;gap:10px!important}
  .dashboard-columns>.panel,.dashboard-overview-grid>*{display:block!important;width:100%!important;min-width:0!important}
  .panel{padding:12px!important}
  .panel header,.section-heading{gap:8px}
  .panel h2,.section-heading h2{font-size:1.2rem!important}
  .task-row,.maintenance-row,.dashboard-inventory-item{width:100%!important;min-width:0!important;padding:10px!important;gap:8px!important}
  .task-row strong,.task-row small,.maintenance-row strong,.maintenance-row small,.dashboard-inventory-item strong,.dashboard-inventory-item small{white-space:normal!important;overflow-wrap:anywhere!important}
  .task-actions,.shopping-card-actions{gap:6px!important}
  .task-actions button,.shopping-card-actions button,.shopping-card-actions a,.shopping-card-actions select{padding:7px 9px!important;font-size:.78rem!important}
  .section-heading .primary-action,.primary-action,.secondary-action{min-height:42px;padding:9px 12px!important;font-size:.84rem!important}
  .media-dialog-backdrop,.media-viewer-backdrop,.sheet-backdrop{padding:0!important}
  .media-dialog,.media-viewer,.bottom-sheet,.record-sheet{width:100%!important;max-width:100%!important;max-height:calc(100dvh - env(safe-area-inset-top))!important;border-radius:18px 18px 0 0!important;padding:14px 12px calc(10px + env(safe-area-inset-bottom))!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
  .media-dialog header,.media-viewer header,.bottom-sheet header{flex:0 0 auto;margin-bottom:8px}
  .media-dialog header h2,.bottom-sheet header h2{font-size:1.15rem!important;margin-bottom:0}
  .media-dialog form,.record-form{min-height:0;overflow-y:auto!important;overscroll-behavior:contain;padding-right:2px;gap:8px!important}
  .media-dialog label,.record-form label{font-size:.74rem!important;gap:4px!important}
  .media-dialog input,.media-dialog select,.media-dialog textarea,.record-form input,.record-form select,.record-form textarea{padding:9px 10px!important;font-size:16px!important;border-radius:10px!important}
  .media-dialog textarea,.record-form textarea{min-height:70px!important}
  .dialog-actions{position:sticky!important;bottom:0;z-index:4;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:4px -2px -2px!important;padding:9px 2px calc(2px + env(safe-area-inset-bottom))!important;background:var(--surface)!important;box-shadow:0 -10px 20px rgba(0,0,0,.06)}
  .dialog-actions button{width:100%!important;min-width:0!important}
  .shopping-stat-grid{gap:7px!important}
  .shopping-stat-grid button{padding:10px 12px!important}
  .phoenix-shopping-card{grid-template-columns:36px minmax(0,1fr)!important;padding:10px!important;gap:8px!important;border-radius:14px!important}
  .shopping-card-state span{width:34px!important;height:34px!important}
  .shopping-card-meta{font-size:.76rem!important;gap:5px 9px!important}
  .bottom-nav{padding-top:5px!important}
  .bottom-nav button{font-size:.9rem!important}.bottom-nav b{font-size:.56rem!important}
  .fab{width:50px!important;height:50px!important;font-size:1.7rem!important;right:12px!important;bottom:78px!important}
}
@media(max-width:390px){
  body{font-size:14px}
  .mobile-topbar{grid-template-columns:40px minmax(0,1fr) minmax(58px,98px)!important}
  .mobile-object-picker select{font-size:.66rem}
  main{padding-left:8px!important;padding-right:8px!important}
  .summary-card{padding:8px!important}
}


/* Phoenix 9.3.7 - checklistkoppeling met Inkoop hersteld */
.checklist-row-actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}
.checklist-row-actions .checklist-shopping{width:auto;min-width:94px;padding:0 11px;font-size:.76rem;font-weight:850;white-space:nowrap;background:var(--green-soft);color:var(--green-dark);border-color:#b9d1c4}
.checklist-row-actions .checklist-shopping.is-linked{background:var(--surface-soft);color:var(--muted)}
@media(max-width:760px){
  .phoenix-checklist-item{grid-template-columns:minmax(0,1fr)}
  .checklist-row-actions{margin-left:34px;justify-content:flex-start}
  .checklist-row-actions .checklist-shopping{min-width:92px}
}

/* Phoenix 9.4.0 Onderhoud 2.0 */
.maintenance-media-input{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.maintenance-media-heading{display:grid;gap:3px}.maintenance-media-heading>span{font-weight:800}.maintenance-media-heading small{color:var(--muted)}
.maintenance-file-button{position:relative;display:flex!important;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border:1px dashed #86a994;border-radius:12px;background:var(--green-soft);color:var(--green-dark);font-weight:800;cursor:pointer}
.maintenance-file-button input{position:absolute!important;inset:0;width:100%!important;height:100%;opacity:0;cursor:pointer}
.maintenance-photo-preview{display:none}.maintenance-photo-preview.has-preview{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;background:var(--surface)}
.maintenance-photo-preview img{width:74px;height:58px;object-fit:cover;border-radius:9px}.maintenance-photo-preview span{font-size:.82rem;color:var(--muted)}
.maintenance-media-summary{display:flex;gap:8px;flex-wrap:wrap;margin:0 4px 8px}.maintenance-media-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:.75rem;font-weight:800}
.maintenance-card-media-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 4px 10px}.maintenance-card-media-actions button{min-height:38px}
@media(max-width:760px){.maintenance-media-input{padding:10px;gap:8px}.maintenance-card-media-actions{display:grid;grid-template-columns:1fr 1fr}.maintenance-card-media-actions button{width:100%}.maintenance-media-summary{margin-bottom:6px}}

/* Phoenix 9.4.1 - onderhoudsbijlagen bekijken */
.maintenance-card-media-actions .attachment-view-action{background:var(--green-soft);border-color:#b8d8c7;color:var(--green-dark)}
.maintenance-attachments-dialog{width:min(680px,100%)}
.maintenance-attachments-content{display:grid;gap:10px;margin-top:14px;overflow:auto;min-height:0}
.maintenance-attachment-item{width:100%;border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:15px;padding:10px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:11px;text-align:left;cursor:pointer}
.maintenance-attachment-item:hover{border-color:#a9cdbb;transform:translateY(-1px)}
.maintenance-attachment-thumb{width:58px;height:58px;border-radius:12px;background:var(--surface);display:grid;place-items:center;overflow:hidden;font-size:1.7rem}
.maintenance-attachment-thumb img{width:100%;height:100%;object-fit:cover}
.maintenance-attachment-copy{min-width:0}.maintenance-attachment-copy strong,.maintenance-attachment-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.maintenance-attachment-copy small{color:var(--muted);margin-top:4px}.maintenance-attachment-item>b{color:var(--green-dark);font-size:.8rem;white-space:nowrap}
@media(max-width:760px){
  .maintenance-card-media-actions{grid-template-columns:1fr 1fr}
  .maintenance-card-media-actions .attachment-view-action{grid-column:1/-1}
  .maintenance-attachments-dialog{height:min(82dvh,720px)!important}
  .maintenance-attachments-content{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .maintenance-attachment-item{grid-template-columns:48px minmax(0,1fr) auto;padding:9px;gap:9px}
  .maintenance-attachment-thumb{width:48px;height:48px}
}

/* Phoenix 9.4.2 – onderhoud afronden en historie bewaren */
.maintenance-record-card.maintenance-completed{opacity:.88;border-color:#b9d8c7;background:linear-gradient(180deg,#f8fcfa,#eef8f2)}
.maintenance-record-card.maintenance-completed .task-name{text-decoration:line-through;text-decoration-thickness:1px;color:var(--muted)}
.maintenance-status-completed{background:#dff4e7;color:#17683d;border:1px solid #b8dfc7}
.maintenance-complete-action{white-space:nowrap}
@media(max-width:760px){.maintenance-complete-action{width:100%;justify-content:center}.maintenance-record-card .modern-card-actions{display:grid;grid-template-columns:1fr 1fr}.maintenance-record-card .modern-card-actions .maintenance-complete-action{grid-column:1/-1}}

/* Phoenix 9.5 slimme taakworkflow */
.workflow-action{white-space:nowrap}
@media(max-width:760px){.task-actions .workflow-action{flex:1 1 calc(50% - 6px);min-width:0}.task-actions{width:100%}}

/* Phoenix 9.5.2 slimme vervolgstap */
.workflow-choice-dialog{max-width:460px}
.workflow-choice-text{margin:0;color:var(--muted);line-height:1.55}
.workflow-choice-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.workflow-highlight{animation:workflowPulse 3.2s ease}
@keyframes workflowPulse{0%,100%{box-shadow:var(--shadow)}20%,65%{box-shadow:0 0 0 4px rgba(44,133,87,.22),0 18px 38px rgba(24,79,52,.18);transform:translateY(-2px)}}
.workflow-draft-label,.maintenance-draft-chip{color:#8a6200;font-weight:800}
@media(max-width:620px){.workflow-choice-actions{grid-template-columns:1fr}.workflow-choice-dialog{width:100%;max-width:none}}

/* Phoenix 9.5.3 - onderhoudsbijlagen zichtbaar bij gekoppelde taken */
.task-attachment-summary{grid-column:2/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:.82rem}
.task-attachment-summary span{display:inline-flex;align-items:center;gap:4px;background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-weight:700}
.task-attachment-open{margin-left:auto}
@media(max-width:760px){.task-attachment-summary{grid-column:1/-1;width:100%;margin-top:6px}.task-attachment-open{margin-left:0;flex:1 1 100%;width:100%}}

/* Phoenix 9.5.4 - officiële branding */
.brand-logo{width:48px;height:48px;display:block;object-fit:cover;border-radius:50%;box-shadow:0 7px 18px rgba(0,0,0,.22);flex:0 0 auto}
.brand.compact .brand-logo{width:38px;height:38px}
.side-nav .brand>div:last-child strong{font-size:1rem;letter-spacing:.02em}
.side-nav .brand>div:last-child span{font-size:.72rem;opacity:.72}
.phoenix-splash{position:fixed;inset:0;z-index:9999;background:radial-gradient(circle at 50% 38%,#19362e 0,#0b1e19 45%,#06110e 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;transition:opacity .42s ease,visibility .42s ease}
.phoenix-splash.is-hidden{opacity:0;visibility:hidden}
.phoenix-splash img{width:min(260px,60vw);height:auto;filter:drop-shadow(0 22px 38px rgba(0,0,0,.42));animation:phoenixRise .8s cubic-bezier(.2,.8,.2,1)}
.phoenix-splash strong{font-size:clamp(1.55rem,6vw,2.6rem);letter-spacing:.2em;margin-top:10px;color:#f6c764}
.phoenix-splash span{font-weight:800;margin-top:5px}
.phoenix-splash small{margin-top:9px;letter-spacing:.08em;color:#c4d3cc}
@keyframes phoenixRise{from{opacity:0;transform:translateY(18px) scale(.92)}to{opacity:1;transform:none}}
.update-brand-heading{display:flex;align-items:center;gap:12px}
.update-brand-heading>img{width:54px;height:54px;border-radius:50%;box-shadow:0 7px 18px rgba(0,0,0,.18)}
@media(max-width:760px){
  .brand.compact{gap:8px}.brand.compact .brand-logo{width:34px;height:34px}
  .phoenix-splash img{width:min(225px,58vw)}
}
@media(prefers-reduced-motion:reduce){.phoenix-splash img{animation:none}.phoenix-splash{transition:none}}


/* Phoenix 9.5.5 - Inkoop en vensterisolatie */
[hidden]{display:none!important}
#shoppingView .shopping-toolbar-panel{position:sticky;top:10px;z-index:12;box-shadow:0 8px 24px rgba(12,55,38,.08)}
.shopping-controls{grid-template-columns:minmax(220px,1fr) 190px 210px}
@media(max-width:760px){
  #shoppingView .shopping-toolbar-panel{top:76px;margin-left:-2px;margin-right:-2px}
  .shopping-controls{grid-template-columns:1fr}
}

/* Phoenix 9.5.6 - Updatecentrum herstel */
.update-center-header{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(180px,.8fr) auto;align-items:center;gap:18px}
.update-center-header>p{margin:0;color:var(--muted)}
#closeUpdateCenter{display:grid!important;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);color:var(--text);font-size:1.7rem;line-height:1;cursor:pointer}
#closeUpdateCenter:hover{background:var(--surface);border-color:#a8c7b6}
@media(max-width:700px){.update-center-header{grid-template-columns:minmax(0,1fr) auto}.update-center-header>p{grid-column:1/-1}.update-brand-heading img{width:48px;height:48px}}

/* Phoenix 9.5.7 - herstelde snelle inkoopstatussen */
.shopping-status-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}
.shopping-status-button{
  border:1px solid var(--line);
  background:var(--surface-soft);
  color:var(--text);
  border-radius:10px;
  padding:8px 11px;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.shopping-status-button:hover{border-color:#a8c7b8}
.shopping-status-button.active{
  background:var(--green-dark);
  border-color:var(--green-dark);
  color:#fff;
}
.phoenix-shopping-card.status-present{border-left-color:#548a72}
.phoenix-shopping-card.status-cancelled{border-left-color:#9b9b9b;opacity:.82}
.phoenix-shopping-card.status-cancelled .shopping-card-body header strong{text-decoration:line-through}
@media(max-width:760px){
  .shopping-status-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .shopping-status-button{padding:8px 7px;font-size:.76rem}
  .shopping-status-button:last-child{grid-column:1/-1}
}


/* Phoenix 9.5.8 - Inkoopbijlagen */
.shopping-media-summary{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}
.shopping-media-summary span{display:inline-flex;align-items:center;border-radius:999px;background:var(--green-soft);color:var(--green-dark);padding:5px 9px;font-size:.78rem;font-weight:800}
.shopping-card-actions button:disabled{opacity:.48;cursor:not-allowed}
@media(max-width:760px){
  .shopping-media-summary{gap:5px}
  .shopping-media-summary span{font-size:.7rem;padding:4px 7px}
}


/* Phoenix 9.5.9 - meervoudige inkoopbijlagen */
.shopping-attachments-toolbar{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin:0 0 12px;flex-wrap:wrap}
.shopping-attachment-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px!important}
.shopping-attachment-select{display:grid;place-items:center;min-width:38px;min-height:38px;cursor:pointer}
.shopping-attachment-select input{width:20px;height:20px;accent-color:var(--green)}
.shopping-attachment-open{border:0;background:transparent;color:inherit;padding:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;width:100%;cursor:pointer}
.shopping-attachment-delete{border:1px solid #efc2bd;background:#fff4f2;color:#a62f28;border-radius:12px;min-width:42px;min-height:42px;cursor:pointer;font-size:1rem}
.shopping-attachment-delete:hover{background:#ffe8e4}
.danger-action{border:1px solid #e6aaa4;background:#fff0ee;color:#a62f28;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}
.danger-action:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.shopping-attachments-toolbar{justify-content:stretch}.shopping-attachments-toolbar button{flex:1}.shopping-attachment-row{grid-template-columns:auto minmax(0,1fr) auto}.shopping-attachment-open{gap:8px}.shopping-attachment-delete{min-width:40px}.maintenance-attachment-copy small{white-space:normal;word-break:break-word}}


/* Phoenix 9.5.11 - fotoviewer boven bijlagen en duidelijke terugknop */
.media-viewer header .viewer-back-button{
  width:auto;
  min-width:176px;
  padding:0 14px;
  font-size:.86rem;
  font-weight:850;
  white-space:nowrap;
}
@media(max-width:600px){
  .media-viewer header .viewer-back-button{
    min-width:0;
    max-width:52vw;
    height:40px;
    padding:0 11px;
    font-size:.76rem;
  }
}

/* Phoenix 9.6.0 - Bestellijsten en aankoopbonnen */
.section-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.shopping-order-list-dialog{width:min(920px,calc(100vw - 24px));max-height:min(92dvh,980px)}
.shopping-order-list-body{overflow:auto;padding:0 20px 16px}
.order-list-summary{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:14px}
.order-list-summary span{color:var(--muted);font-size:.82rem}.order-list-summary strong{text-align:right}
.order-list-table-wrap{overflow:auto}.order-list-table{width:100%;border-collapse:collapse;min-width:650px}
.order-list-table th,.order-list-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.order-list-table th:nth-child(n+3),.order-list-table td:nth-child(n+3){text-align:right}
.order-list-table td:first-child,.order-list-table th:first-child{width:38px;text-align:center}
.order-list-table td strong,.order-list-table td small{display:block}.order-list-table td small{color:var(--muted);margin-top:3px}
.order-list-table tfoot td{font-weight:900;font-size:1.05rem;border-top:2px solid var(--line)}
.order-list-actions{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding-bottom:calc(14px + env(safe-area-inset-bottom))}
@media(max-width:700px){.section-actions{width:100%;justify-content:stretch}.section-actions button{flex:1}.shopping-order-list-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.shopping-order-list-body{padding:0 12px 12px}.order-list-table{min-width:580px;font-size:.85rem}}
@media print{
 body.printing-order-list *{visibility:hidden!important}
 body.printing-order-list #shoppingOrderListDialog,body.printing-order-list #shoppingOrderListDialog *{visibility:visible!important}
 body.printing-order-list #shoppingOrderListDialog{position:absolute!important;inset:0!important;background:#fff!important;display:block!important}
 body.printing-order-list .shopping-order-list-dialog{position:static!important;width:100%!important;max-width:none!important;max-height:none!important;box-shadow:none!important;border:0!important;color:#000!important}
 body.printing-order-list .shopping-order-list-dialog>header button,body.printing-order-list .order-list-actions{display:none!important}
 body.printing-order-list .shopping-order-list-body{overflow:visible!important}
 body.printing-order-list .order-list-table{min-width:0!important}
}

/* Phoenix 9.6.2 - inventarisbijlagen */
.inventory-media-count{margin:7px 0 0;color:var(--muted);font-size:.82rem;font-weight:700}
.inventory-card-actions{margin-top:10px;align-items:center}
.inventory-card-actions button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){.inventory-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.inventory-card-actions button{width:100%;min-width:0}.inventory-card-actions .danger-action{grid-column:auto}}

/* Phoenix 9.7.0 - Slim navigeren en herkenbare workflowstatussen */
.smart-link-shopping,
.checklist-shopping.is-linked{
  background:#fff1d8!important;
  border-color:#e8b45c!important;
  color:#7a4d00!important;
  font-weight:900!important;
}
.smart-link-maintenance{
  background:#e3efff!important;
  border-color:#8eb9ea!important;
  color:#174f88!important;
  font-weight:900!important;
}
.smart-link-inventory{
  background:#dff4e7!important;
  border-color:#82c79f!important;
  color:#17613b!important;
  font-weight:900!important;
}
.smart-link-shopping:hover,
.smart-link-maintenance:hover,
.smart-link-inventory:hover,
.checklist-shopping.is-linked:hover{filter:brightness(.97);transform:translateY(-1px)}
.workflow-focus,.workflow-highlight{
  scroll-margin-top:130px;
  animation:smartNavigatePulse 3.4s ease!important;
}
@keyframes smartNavigatePulse{
  0%,100%{box-shadow:var(--shadow);outline-color:transparent}
  12%,68%{box-shadow:0 0 0 5px rgba(42,132,86,.22),0 22px 42px rgba(16,73,47,.2);outline:2px solid rgba(42,132,86,.45);transform:translateY(-2px)}
}
@media(max-width:760px){
  .workflow-focus,.workflow-highlight{scroll-margin-top:92px}
  .inventory-card-actions .smart-link-shopping{grid-column:1/-1;width:100%}
}

/* Phoenix 9.8 Leveranciers */
.suppliers-dialog{max-width:900px}
.supplier-toolbar{display:flex;justify-content:flex-end;margin-bottom:14px}
.supplier-form{border:1px solid var(--line);background:var(--surface-soft);border-radius:18px;padding:16px;margin-bottom:16px}
.supplier-form h3{margin:0 0 12px}
.supplier-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.suppliers-list{display:grid;gap:10px;max-height:48vh;overflow:auto;padding-right:4px}
.supplier-card{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--surface)}
.supplier-card strong,.supplier-card small,.supplier-card a{display:block}
.supplier-card small{color:var(--muted);margin-top:4px}
.supplier-card a{margin-top:5px}
.supplier-card-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:700px){
  .supplier-form-grid{grid-template-columns:1fr}
  .supplier-card{align-items:flex-start;flex-direction:column}
  .supplier-card-actions{width:100%}
  .supplier-card-actions button{flex:1}
  .shopping-controls{grid-template-columns:1fr}
}

/* Phoenix 9.8.2 - Updatecentrum en gezondheidscheck */
.update-health-panel{
  margin:14px 0;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface-soft);
}
.update-health-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.update-health-heading h3{margin:0}
.health-badge{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:900;
  white-space:nowrap;
}
.health-badge.is-healthy{background:#dff3e8;color:#155c3f}
.health-badge.is-warning{background:#fff0db;color:#8a4c08}
.health-check-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  max-height:250px;
  overflow:auto;
}
.health-check-item{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface);
}
.health-check-item>span{
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:900;
}
.health-check-item.is-ok>span{background:#dff3e8;color:#155c3f}
.health-check-item.is-error>span{background:#ffe5e2;color:#a12820}
.health-check-item strong,.health-check-item small{display:block}
.health-check-item small{margin-top:2px;color:var(--muted)}
@media(max-width:700px){
  .health-check-list{grid-template-columns:1fr}
  .update-health-heading{align-items:flex-start}
}


/* Phoenix 9.8.3 - Leverancierscentrum */
.supplier-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.supplier-search{
  flex:1;
  display:grid;
  gap:5px;
  color:var(--muted);
  font-size:.78rem;
  font-weight:800;
}
.supplier-search input{width:100%}
.supplier-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
.supplier-summary article{
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface-soft);
}
.supplier-summary span,.supplier-summary strong{display:block}
.supplier-summary span{
  color:var(--muted);
  font-size:.74rem;
  font-weight:800;
}
.supplier-summary strong{
  margin-top:4px;
  font-size:1.15rem;
}
.suppliers-list{display:grid;gap:10px}
.supplier-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
}
.supplier-card.is-favorite{
  border-color:#e1b85a;
  box-shadow:0 0 0 2px rgba(225,184,90,.12);
}
.supplier-card-main{min-width:0}
.supplier-card-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.supplier-card-title strong,.supplier-card-title small{display:block}
.supplier-card-title small{margin-top:3px;color:var(--muted)}
.supplier-avatar{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--green-soft);
}
.supplier-card.is-favorite .supplier-avatar{
  background:#fff1c8;
  color:#8a5a00;
}
.supplier-stat-row{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}
.supplier-stat-row span{
  padding:5px 8px;
  border-radius:999px;
  background:var(--surface-soft);
  color:var(--muted);
  font-size:.75rem;
}
.supplier-stat-row b{color:var(--text)}
.supplier-note{
  margin:9px 0 0;
  color:var(--muted);
  white-space:pre-wrap;
}
.supplier-contact-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.supplier-contact-links a{
  padding:6px 9px;
  border-radius:9px;
  background:var(--green-soft);
  color:var(--green-dark);
  font-size:.78rem;
  font-weight:800;
  text-decoration:none;
}
.supplier-card-actions{
  min-width:160px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.supplier-shopping-action{
  border:1px solid #e2b45f;
  background:#fff5df;
  color:#7a4a00;
  border-radius:11px;
  padding:9px 11px;
  font-weight:900;
  cursor:pointer;
}
.supplier-favorite-check{
  display:flex!important;
  align-items:center;
  gap:9px;
  margin-top:10px;
}
.supplier-favorite-check input{
  width:22px!important;
  height:22px!important;
}
@media(max-width:700px){
  .supplier-toolbar{align-items:stretch;flex-direction:column}
  .supplier-summary{grid-template-columns:1fr}
  .supplier-card{grid-template-columns:1fr}
  .supplier-card-actions{
    min-width:0;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .supplier-shopping-action{grid-column:1/-1}
}


/* Phoenix 9.8.4 - Leveranciersgegevens vanaf website */
.supplier-website-field{
  grid-column:1/-1;
}
.supplier-website-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}
.supplier-website-row input{min-width:0}
.supplier-website-row button{
  min-height:44px;
  white-space:nowrap;
}
.supplier-fetch-status{
  display:block;
  min-height:18px;
  margin-top:5px;
  color:var(--muted);
  font-size:.74rem;
  line-height:1.35;
}
.supplier-fetch-status.is-loading{color:#315f83}
.supplier-fetch-status.is-success{color:#176340}
.supplier-fetch-status.is-warning{color:#8a5b00}
.supplier-fetch-status.is-error{color:#a12d25}
@media(max-width:600px){
  .supplier-website-row{grid-template-columns:1fr}
  .supplier-website-row button{width:100%}
}


/* Phoenix 9.8.6 - Leveranciersscanner diagnose */
.supplier-fetch-details{
  margin-top:7px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface-soft);
}
.supplier-fetch-details summary{
  padding:8px 10px;
  cursor:pointer;
  color:var(--green-dark);
  font-size:.76rem;
  font-weight:900;
}
.supplier-fetch-details pre{
  margin:0;
  padding:0 10px 10px;
  max-height:220px;
  overflow:auto;
  white-space:pre-wrap;
  word-break:break-word;
  color:var(--text);
  font:500 .72rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;
}


/* Phoenix 9.8.7 - Altijd zichtbare leveranciersdiagnose */
.supplier-diagnostic-actions{
  margin-top:7px;
  display:flex;
  justify-content:flex-start;
}
.supplier-diagnostic-actions button{
  min-height:38px;
  font-size:.76rem;
}
.supplier-fetch-details[open]{
  display:block;
}


/* Phoenix 9.8.8 - zichtbare leveranciersdiagnose */
.supplier-fetch-details pre{min-height:96px}
.supplier-fetch-status.is-loading::before{
  content:"●";
  display:inline-block;
  margin-right:6px;
  animation:phoenixPulse 1s infinite alternate;
}
@keyframes phoenixPulse{
  from{opacity:.25}
  to{opacity:1}
}


/* Phoenix 9.9.1 - slimme leveranciersprofielen */
.supplier-website-row{
  grid-template-columns:minmax(0,1fr) auto auto;
}
.supplier-recognition-summary{
  margin-top:7px;
  padding:9px 10px;
  border:1px solid #b9dbc9;
  border-radius:10px;
  background:#eef9f3;
}
.supplier-recognition-summary strong,
.supplier-recognition-summary span{
  display:block;
}
.supplier-recognition-summary span{
  margin-top:3px;
  color:var(--muted);
  font-size:.75rem;
}
.supplier-avatar img{
  width:24px;
  height:24px;
  object-fit:contain;
  border-radius:5px;
}
@media(max-width:760px){
  .supplier-website-row{grid-template-columns:1fr}
}


/* Phoenix 9.9.2 - rustige leveranciersscanner */
.supplier-website-row{
  grid-template-columns:minmax(0,1fr) repeat(3,auto);
}
@media(max-width:900px){
  .supplier-website-row{
    grid-template-columns:1fr 1fr;
  }
  .supplier-website-row input{
    grid-column:1/-1;
  }
}
@media(max-width:600px){
  .supplier-website-row{
    grid-template-columns:1fr;
  }
}


/* Phoenix 10.0.0 - Garantiebeheer */
.record-inventory-details{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface-soft);
}
.record-inventory-help{
  grid-column:1/-1;
  color:var(--muted);
  line-height:1.4;
}
.inventory-warranty-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0 0 14px;
}
.inventory-warranty-summary article{
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface);
}
.inventory-warranty-summary span,
.inventory-warranty-summary strong{
  display:block;
}
.inventory-warranty-summary span{
  color:var(--muted);
  font-size:.75rem;
  font-weight:800;
}
.inventory-warranty-summary strong{
  margin-top:4px;
  font-size:1.15rem;
}
.inventory-warranty-summary .has-warning{
  border-color:#e7bd69;
  background:#fff8e7;
}
.inventory-warranty-summary .has-error{
  border-color:#e6a49d;
  background:#fff0ee;
}
.inventory-purchase-info{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:8px 0;
}
.inventory-purchase-info span{
  padding:5px 8px;
  border-radius:999px;
  background:var(--surface-soft);
  color:var(--muted);
  font-size:.74rem;
}
.inventory-warranty-status{
  display:inline-block;
  margin:3px 0 8px;
  padding:6px 9px;
  border-radius:9px;
  font-size:.76rem;
  font-weight:900;
}
.inventory-warranty-status.is-valid{
  background:#e5f6ec;
  color:#155c3f;
}
.inventory-warranty-status.is-warning{
  background:#fff1d7;
  color:#875100;
}
.inventory-warranty-status.is-expired{
  background:#ffe7e4;
  color:#9a2c24;
}
@media(max-width:760px){
  .record-inventory-details{grid-template-columns:1fr}
  .inventory-warranty-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:460px){
  .inventory-warranty-summary{grid-template-columns:1fr}
}


/* Phoenix 10.0.0 Alpha 2 - zichtbaar aankoop- en garantieformulier */
.record-inventory-details{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  padding:0;
  border:0;
  background:transparent;
}
.record-detail-section{
  padding:13px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface-soft);
}
.record-detail-heading{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-bottom:11px;
}
.record-detail-heading>span{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--green-soft);
}
.record-detail-heading strong,
.record-detail-heading small{
  display:block;
}
.record-detail-heading small{
  margin-top:2px;
  color:var(--muted);
  line-height:1.35;
}
.record-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.record-detail-wide{
  grid-column:1/-1;
}
.record-inventory-help{
  display:block;
  margin-top:9px;
}
@media(max-width:640px){
  .record-detail-grid{
    grid-template-columns:1fr;
  }
  .record-detail-wide{
    grid-column:auto;
  }
}


/* Phoenix 10.0.0 Alpha 3 - scrollbaar formulier en vaste acties */
#recordDialog.sheet-backdrop{
  align-items:center;
  padding:
    max(12px, env(safe-area-inset-top))
    max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom))
    max(12px, env(safe-area-inset-left));
  overflow:hidden;
}

#recordDialog .record-sheet{
  width:min(560px,100%);
  max-height:min(92dvh,920px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:22px;
}

#recordDialog .record-sheet>header{
  position:relative;
  z-index:4;
  flex:0 0 auto;
  margin:0;
  padding:16px 18px 12px;
  border-bottom:1px solid var(--line);
  background:var(--surface);
}

#recordDialog .record-form{
  min-height:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:12px;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:14px 18px 0;
  scrollbar-gutter:stable;
}

#recordDialog .record-form>.dialog-actions{
  position:sticky;
  z-index:5;
  bottom:0;
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin:
    4px -18px 0;
  padding:
    13px 18px
    calc(13px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background:
    linear-gradient(
      to bottom,
      rgba(255,255,255,.94),
      var(--surface) 32%
    );
  box-shadow:0 -10px 22px rgba(20,53,41,.08);
}

#recordDialog .record-form>.dialog-actions button{
  min-height:44px;
  padding-inline:18px;
}

#recordDialog .record-inventory-details{
  flex:0 0 auto;
}

@media(max-width:640px){
  #recordDialog.sheet-backdrop{
    align-items:flex-end;
    padding:
      max(6px, env(safe-area-inset-top))
      0
      0;
  }

  #recordDialog .record-sheet{
    width:100%;
    max-height:calc(100dvh - max(6px, env(safe-area-inset-top)));
    border-radius:22px 22px 0 0;
  }

  #recordDialog .record-sheet>header{
    padding:14px 16px 11px;
  }

  #recordDialog .record-form{
    padding:13px 16px 0;
  }

  #recordDialog .record-form>.dialog-actions{
    margin-left:-16px;
    margin-right:-16px;
    padding-left:16px;
    padding-right:16px;
  }

  #recordDialog .record-form>.dialog-actions button{
    flex:1 1 0;
  }
}

@media(max-height:700px){
  #recordDialog .record-sheet{
    max-height:96dvh;
  }

  #recordDialog .record-sheet>header{
    padding-top:10px;
    padding-bottom:9px;
  }
}


/* Phoenix 10.0.0 Alpha 4 - geen garantie */
.inventory-warranty-status.is-none{
  background:var(--surface-soft);
  color:var(--muted);
}


/* Phoenix 10.0.0 Alpha 5 - inkoopstatus In inventaris */
.shopping-stat-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.shopping-stat-grid button.active{
  box-shadow:0 0 0 2px rgba(27,105,75,.18);
  transform:translateY(-1px);
}
.shopping-stat-grid .shopping-inventory-filter{
  border-color:#a8d5bd;
  background:#eef9f3;
}
.shopping-stat-grid .shopping-inventory-filter span,
.shopping-stat-grid .shopping-inventory-filter strong{
  color:#176340;
}
@media(max-width:760px){
  .shopping-stat-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* Phoenix 10.0.0 Alpha 6 - vaste mobiele menubalk */
@media(max-width:900px){
  .mobile-topbar{
    position:sticky;
    top:0;
    z-index:80;
    min-height:64px;
    padding-top:max(8px, env(safe-area-inset-top));
    background:rgba(255,255,255,.97);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    border-bottom:1px solid transparent;
    transition:
      min-height .18s ease,
      padding .18s ease,
      box-shadow .18s ease,
      border-color .18s ease;
  }

  .mobile-topbar.is-scrolled{
    min-height:56px;
    border-bottom-color:var(--line);
    box-shadow:0 8px 20px rgba(20,53,41,.12);
  }

  .mobile-topbar .mobile-menu-button{
    position:relative;
    z-index:2;
    flex:0 0 auto;
  }

  .mobile-topbar .brand.compact,
  .mobile-topbar .mobile-object-picker{
    min-width:0;
  }

  .mobile-menu-backdrop{
    z-index:85;
  }

  .side-nav.mobile-open{
    z-index:90;
  }
}

@media(max-width:520px){
  .mobile-topbar{
    gap:8px;
    padding-left:10px;
    padding-right:10px;
  }

  .mobile-topbar .brand.compact strong{
    max-width:88px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .mobile-topbar .mobile-object-picker select{
    max-width:120px;
  }
}


/* Phoenix 10.0.0 Alpha 9 - hard herstel mobiele bovenbalk */
@media (max-width: 900px) {
  .mobile-topbar {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    position:sticky !important;
    top:0 !important;
    left:0;
    right:0;
    z-index:1000 !important;
    width:100%;
    min-height:60px;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:
      max(8px, env(safe-area-inset-top))
      12px
      8px;
    background:var(--surface, #fff) !important;
    border-bottom:1px solid var(--line, #d9e3dd);
    box-shadow:0 6px 18px rgba(20,53,41,.10);
    transform:none !important;
    translate:none !important;
    pointer-events:auto !important;
  }

  .mobile-menu-button {
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    position:relative !important;
    z-index:1002 !important;
    flex:0 0 44px;
    width:44px;
    height:44px;
    place-items:center;
    border:1px solid var(--line, #d9e3dd);
    border-radius:12px;
    background:var(--surface, #fff);
    color:var(--text, #183126);
    font-size:1.5rem;
    line-height:1;
    cursor:pointer;
    pointer-events:auto !important;
  }

  .mobile-topbar .brand.compact {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    min-width:0;
    flex:1 1 auto;
    align-items:center;
    padding:0 !important;
  }

  .mobile-topbar .mobile-object-picker {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    flex:0 1 auto;
    min-width:0;
  }

  .phoenix-shell > main {
    margin-left:0 !important;
  }

  .side-nav {
    z-index:1100 !important;
  }

  .mobile-menu-backdrop {
    z-index:1050 !important;
  }
}

@media (max-width: 520px) {
  .mobile-topbar {
    min-height:58px;
    padding-left:8px;
    padding-right:8px;
  }

  .mobile-topbar .brand.compact strong {
    display:block !important;
    max-width:72px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }

  .mobile-topbar .mobile-object-picker select {
    max-width:110px;
  }
}


/* Phoenix 10.0.0 Alpha 10 - mobiele balk werkelijk vastgezet */
@media (max-width: 900px) {
  :root {
    --mobile-topbar-height: 68px;
  }

  .mobile-topbar {
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    bottom:auto !important;
    z-index:5000 !important;
    width:100% !important;
    min-height:var(--mobile-topbar-height) !important;
    margin:0 !important;
    transform:none !important;
    translate:none !important;
    contain:none !important;
  }

  .phoenix-shell {
    padding-top:var(--mobile-topbar-height) !important;
  }

  .phoenix-shell > main {
    padding-top:18px !important;
  }

  .mobile-menu-button {
    z-index:5002 !important;
  }

  .side-nav {
    z-index:5100 !important;
  }

  .mobile-menu-backdrop {
    z-index:5050 !important;
  }
}

@media (max-width: 520px) {
  :root {
    --mobile-topbar-height: 64px;
  }
}


/* Phoenix 11.0.0 Alpha 1 - Planner */
.planner-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px}
.planner-summary-grid article{padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}
.planner-summary-grid span,.planner-summary-grid strong{display:block}
.planner-summary-grid span{font-size:.76rem;color:var(--muted);font-weight:800}
.planner-summary-grid strong{margin-top:5px;font-size:1.35rem}
.planner-toolbar{margin-bottom:14px}
.planner-filters{display:flex;flex-wrap:wrap;gap:8px}
.planner-filters button{border:1px solid var(--line);background:var(--surface);padding:9px 13px;border-radius:999px;font-weight:800}
.planner-filters button.active{background:var(--green);color:#fff;border-color:var(--green)}
.planner-list{display:grid;gap:12px}
.planner-card{display:grid;grid-template-columns:140px 1fr;border:1px solid var(--line);border-radius:17px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}
.planner-date-block{padding:16px;background:var(--surface-soft);display:flex;flex-direction:column;justify-content:center}
.planner-date-block strong{font-size:1.35rem}.planner-date-block span{margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.4}
.planner-card-body{padding:15px}
.planner-card-body header{display:flex;justify-content:space-between;gap:12px}.planner-card-body h3{margin:3px 0 0}.planner-card-body header small{color:var(--green);font-weight:900}
.planner-status{height:max-content;padding:5px 8px;border-radius:999px;background:var(--surface-soft);font-size:.72rem;font-weight:900}
.planner-card.is-overdue{border-color:#e2a39d}.planner-card.is-overdue .planner-status{background:#ffe7e4;color:#942f27}
.planner-card.is-today{border-color:#e1bd67}.planner-card.is-today .planner-status{background:#fff2d5;color:#855400}
.planner-card.is-done{opacity:.72}.planner-card.is-done h3{text-decoration:line-through}
.planner-meta{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.planner-meta span{padding:5px 8px;border-radius:999px;background:var(--surface-soft);font-size:.72rem;color:var(--muted)}
.planner-actions{display:flex;flex-wrap:wrap;gap:8px}.planner-actions button{border:1px solid var(--line);background:var(--surface);padding:8px 10px;border-radius:10px;font-weight:800}
.planner-sheet{width:min(560px,100%);max-height:92dvh;overflow:auto}
.planner-form{display:grid;gap:12px}.planner-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.planner-checkbox{display:flex!important;align-items:center;gap:9px}.planner-checkbox input{width:auto}
@media(max-width:760px){.planner-summary-grid{grid-template-columns:1fr 1fr}.planner-card{grid-template-columns:1fr}.planner-date-block{padding:11px 14px;flex-direction:row;justify-content:space-between;align-items:center}.planner-form-grid{grid-template-columns:1fr}}


/* Phoenix 11.0.0 Alpha 2 - Synology CalDAV */
.planner-heading-actions{display:flex;flex-wrap:wrap;gap:9px}
.planner-heading-actions>button{min-height:44px}
.caldav-sheet{width:min(640px,100%);max-height:92dvh;overflow:auto}
.caldav-form{display:grid;gap:13px}
.caldav-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.caldav-actions{display:flex;flex-wrap:wrap;gap:9px}
.caldav-security-note{margin:0;padding:9px 11px;border-radius:11px;background:var(--surface-soft);color:var(--muted);font-size:.78rem}
.caldav-status{padding:11px 12px;border-radius:11px;font-weight:800}
.caldav-status.success{background:#e5f6ec;color:#155c3f}
.caldav-status.error{background:#ffe7e4;color:#962e26}
.caldav-calendars{display:grid;gap:11px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.caldav-calendars h3{margin:0}
@media(max-width:640px){.caldav-grid{grid-template-columns:1fr}.planner-heading-actions{width:100%}.planner-heading-actions>button{flex:1 1 auto}}


/* Phoenix 11.0.0 Alpha 3 - vrije herinneringstijd */
.planner-reminder-field{
  margin:0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
}
.planner-reminder-field legend{
  padding:0 5px;
  font-weight:800;
}
.planner-reminder-grid{
  display:grid;
  grid-template-columns:minmax(90px,.7fr) minmax(130px,1.3fr);
  gap:8px;
}
.planner-checkbox.compact{
  margin-top:8px;
}
.caldav-session-note{
  margin:0;
  color:var(--muted);
  font-size:.78rem;
}
@media(max-width:520px){
  .planner-reminder-grid{
    grid-template-columns:1fr 1fr;
  }
}


/* Phoenix 11.0.0 Alpha 4 - opgeslagen CalDAV-instellingen */
.caldav-saved-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  margin-bottom:12px;
  border:1px solid #a9d6bd;
  border-radius:14px;
  background:#eef9f3;
}
.caldav-saved-summary>div{
  min-width:0;
}
.caldav-saved-summary strong,
.caldav-saved-summary span{
  display:block;
}
.caldav-saved-summary span{
  margin-top:3px;
  color:var(--muted);
  font-size:.78rem;
}
.caldav-form.settings-collapsed > :not(.dialog-actions){
  display:none;
}
.caldav-form.settings-collapsed .dialog-actions{
  margin-top:0;
}
.caldav-calendar-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.caldav-calendar-actions button{
  flex:1 1 180px;
}
@media(max-width:560px){
  .caldav-saved-summary{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* Phoenix 11.0.0 Alpha 5 - stabiele CalDAV sync */
.planner-meta .sync-ok{background:#e5f6ec;color:#155c3f}
.planner-meta .sync-error{background:#ffe7e4;color:#962e26}
.planner-meta .sync-pending{background:#fff2d5;color:#855400}
.caldav-log-sheet{width:min(760px,100%);max-height:92dvh;overflow:auto}
.caldav-log-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.caldav-log-content{display:grid;gap:10px}
.caldav-log-entry{padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.caldav-log-entry.is-ok{border-left:5px solid #2c875d}
.caldav-log-entry.is-error{border-left:5px solid #bd493f}
.caldav-log-entry header{display:flex;justify-content:space-between;gap:10px}
.caldav-log-entry header span{color:var(--muted);font-size:.76rem}
.caldav-log-entry p{margin:8px 0}
.caldav-log-entry dl{display:grid;grid-template-columns:70px 1fr;gap:4px 8px;margin:0;font-size:.76rem}
.caldav-log-entry dt{font-weight:900}
.caldav-log-entry dd{margin:0;overflow-wrap:anywhere;color:var(--muted)}


/* Phoenix 11.0.0 Alpha 6 - CalDAV Explorer */
.caldav-explorer-sheet{
  width:min(1050px,100%);
  max-height:94dvh;
  overflow:auto;
}
.caldav-explorer-controls{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:10px;
  align-items:end;
  margin-bottom:12px;
}
.caldav-explorer-content{
  display:grid;
  gap:12px;
}
.caldav-explorer-entry{
  padding:14px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface);
}
.caldav-explorer-entry header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.caldav-explorer-entry header small{
  color:var(--green);
  font-weight:900;
}
.caldav-explorer-entry header h3{
  margin:3px 0 0;
}
.caldav-explorer-entry header>span{
  padding:5px 8px;
  border-radius:999px;
  background:var(--surface-soft);
  color:var(--muted);
  font-size:.72rem;
  font-weight:800;
}
.caldav-explorer-entry header>span.is-linked{
  background:#e5f6ec;
  color:#155c3f;
}
.caldav-explorer-entry dl{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:5px 10px;
  margin:0;
  font-size:.78rem;
}
.caldav-explorer-entry dt{
  font-weight:900;
}
.caldav-explorer-entry dd{
  margin:0;
  overflow-wrap:anywhere;
  color:var(--muted);
}
.caldav-explorer-entry details{
  margin-top:12px;
}
.caldav-explorer-entry summary{
  cursor:pointer;
  font-weight:900;
}
.caldav-explorer-entry pre{
  max-height:320px;
  overflow:auto;
  margin:9px 0 0;
  padding:12px;
  border-radius:11px;
  background:#13261f;
  color:#eff9f3;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:.72rem;
}
.caldav-compare-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}
@media(max-width:760px){
  .caldav-explorer-controls{
    grid-template-columns:1fr 1fr;
  }
  .caldav-explorer-controls label:nth-child(3),
  .caldav-explorer-controls button{
    grid-column:1/-1;
  }
  .caldav-compare-grid{
    grid-template-columns:1fr;
  }
}


/* Phoenix 11.0.0 Alpha 7 - CalDAV Browser */
.caldav-browser-sheet{
  width:min(900px,100%);
  max-height:94dvh;
  overflow:auto;
}
.caldav-browser-actions{
  margin-bottom:12px;
}
.caldav-browser-content{
  display:grid;
  gap:11px;
}
.caldav-browser-entry{
  padding:13px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
}
.caldav-browser-entry.is-current{
  border-color:#6fb68e;
  box-shadow:0 0 0 2px rgba(45,135,93,.10);
}
.caldav-browser-main{
  display:flex;
  justify-content:space-between;
  gap:14px;
}
.caldav-browser-main small{
  color:var(--green);
  font-weight:900;
}
.caldav-browser-main h3{
  margin:3px 0;
}
.caldav-browser-main p{
  margin:0;
  color:var(--muted);
  font-size:.76rem;
  overflow-wrap:anywhere;
}
.caldav-browser-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
  align-content:flex-start;
}
.caldav-browser-badges span{
  padding:5px 8px;
  border-radius:999px;
  background:var(--surface-soft);
  font-size:.7rem;
  font-weight:800;
}
.caldav-browser-entry-actions{
  margin-top:10px;
}
.caldav-browser-error{
  margin:9px 0 0;
  color:#962e26;
  font-size:.78rem;
}
@media(max-width:680px){
  .caldav-browser-main{
    flex-direction:column;
  }
  .caldav-browser-badges{
    justify-content:flex-start;
  }
}


/* Phoenix 11.0.0 Alpha 11 - datumafwerking */
.caldav-explorer-presets{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0 0 10px;
}
.caldav-explorer-presets button{
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 11px;
  background:var(--surface);
  font-weight:800;
}
.caldav-calendar-info{
  margin-bottom:10px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--surface-soft);
  color:var(--muted);
  font-size:.76rem;
  overflow-wrap:anywhere;
}


/* Phoenix 11.0.0 Alpha 12 - synchroniseer nu */
#syncFromSynologyButton:disabled{
  opacity:.65;
  cursor:wait;
}

.planner-meta .sync-source{background:#e9f1ff;color:#24518a}


/* Phoenix 11.0.0 Alpha 15 - meerdaagse afspraken */
.planner-all-day{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-soft);
}
.planner-form label.is-hidden{
  display:none;
}
.planner-card.is-multiday{
  border-left:5px solid var(--green);
}
.planner-meta .period-badge{
  background:#edf3ff;
  color:#31558b;
}
.planner-card.is-multiday .planner-date-block{
  background:#edf7f1;
}


/* Phoenix 11.0.0 Alpha 17 - meldingen */
#enablePlannerNotificationsButton:disabled{
  opacity:.65;
  cursor:not-allowed;
}


/* Phoenix 11.0.0 Alpha 18 - interactieve caravan */
.caravan-page-heading,
.caravan-map-toolbar,
.caravan-zone-panel-head,
.caravan-zone-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.caravan-page-heading{
  margin-bottom:18px;
}
.caravan-heading-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.caravan-workspace{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:18px;
  align-items:start;
}
.caravan-map-card,
.caravan-zone-panel,
.caravan-location-overview{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-soft);
}
.caravan-map-card{
  overflow:hidden;
}
.caravan-map-toolbar{
  padding:14px 18px;
  border-bottom:1px solid var(--line);
}
.caravan-map-toolbar span{
  color:var(--muted);
  font-size:.9rem;
}
.caravan-map-scroll{
  overflow-x:auto;
  padding:20px;
  background:linear-gradient(180deg,#f7faf8,#eef4f0);
}
.caravan-floorplan{
  position:relative;
  min-width:920px;
  width:100%;
  aspect-ratio:16/8.1;
  border:10px solid #17221d;
  border-radius:54px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),
    #cfae84;
  background-size:34px 34px;
  box-shadow:0 18px 35px rgba(12,36,25,.18);
}
.caravan-hitch{
  position:absolute;
  right:-115px;
  top:39%;
  width:110px;
  height:22%;
  clip-path:polygon(0 0,100% 44%,100% 56%,0 100%);
  background:#17221d;
}
.caravan-zone{
  position:absolute;
  border:2px solid rgba(23,34,29,.38);
  border-radius:13px;
  padding:8px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:3px;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
  transition:.18s ease;
  color:#173327;
}
.caravan-zone:hover,
.caravan-zone:focus-visible,
.caravan-zone.is-selected{
  transform:translateY(-2px);
  outline:4px solid rgba(35,119,83,.25);
  z-index:10;
}
.caravan-zone b{
  display:inline-grid;
  place-items:center;
  min-width:30px;
  height:30px;
  border-radius:999px;
  padding:0 6px;
  background:#165f40;
  color:#fff;
  font-size:.78rem;
}
.caravan-zone span{
  font-weight:750;
  font-size:.78rem;
}
.caravan-zone em{
  font-style:normal;
  font-size:.69rem;
  color:#355e4b;
}
.zone-cabinet{background:linear-gradient(145deg,#b98245,#8c5d2c);color:#fff}
.zone-cabinet b{background:#f0e6cf;color:#5c3c1b}
.zone-cabinet em{color:#fff}
.zone-seat,.zone-bed,.zone-storage{background:#799468}
.zone-bath{background:#8fc2e8}
.zone-kitchen{background:#e4bb68}
.zone-fridge{background:#86909a;color:#fff}
.a1{left:8%;top:2%;width:24%;height:12%}
.a2{left:32.5%;top:2%;width:25%;height:12%}
.h1{left:57.8%;top:2%;width:22%;height:12%}
.h2{left:80.2%;top:2%;width:14%;height:12%}
.b1{left:1%;top:15%;width:6%;height:31%}
.b2{left:1%;top:47%;width:6%;height:29%}
.seat-left{left:8%;top:17%;width:17%;height:31%}
.seat-right{left:27%;top:17%;width:12%;height:31%}
.caravan-table{
  position:absolute;left:18%;top:26%;width:12%;height:24%;
  display:grid;place-items:center;border-radius:30px;
  background:#d6b38a;border:2px solid #6a4c2e;font-weight:800;
}
.bathroom{left:40%;top:15%;width:20%;height:33%}
.bed{left:68%;top:15%;width:25%;height:61%;border-radius:22px;background:#eee5d7}
.under-bed-foot{left:68%;top:77%;width:25%;height:17%}
.under-bed-head{left:60.5%;top:15%;width:7%;height:61%}
.c1{left:94%;top:15%;width:5%;height:30%}
.c2{left:94%;top:46%;width:5%;height:30%}
.corner{left:1%;top:77%;width:13%;height:21%;clip-path:polygon(0 0,72% 0,100% 43%,100% 100%,0 100%)}
.hanging{left:25%;top:78%;width:15%;height:20%}
.sink{left:40.5%;top:78%;width:15%;height:20%}
.fridge{left:56%;top:78%;width:11%;height:20%}
.caravan-door-label{
  position:absolute;
  left:12%;bottom:-42px;
  padding:5px 14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  font-weight:700;
}
.caravan-map-hint{
  display:flex;
  gap:10px;
  padding:12px 18px;
  border-top:1px solid var(--line);
  color:var(--muted);
}
.caravan-map-hint p{margin:0}
.caravan-zone-panel{
  min-height:480px;
  padding:18px;
  position:sticky;
  top:92px;
}
.caravan-zone-empty{
  min-height:440px;
  display:grid;
  place-content:center;
  text-align:center;
  color:var(--muted);
}
.caravan-zone-empty span,.caravan-zone-no-items span{font-size:2.3rem}
.caravan-zone-panel-head h3{margin:4px 0 0}
.caravan-zone-code{
  display:inline-flex;
  padding:4px 9px;
  border-radius:999px;
  background:#e8f3ed;
  color:#166342;
  font-weight:800;
}
.caravan-zone-close{
  width:38px;height:38px;border-radius:50%;font-size:1.4rem;
}
.caravan-zone-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:16px 0;
}
.caravan-zone-stats article{
  padding:12px;
  border-radius:14px;
  background:var(--surface-soft);
  border:1px solid var(--line);
}
.caravan-zone-stats span{display:block;color:var(--muted);font-size:.8rem}
.caravan-zone-actions{margin-bottom:14px}
.caravan-zone-actions button{flex:1}
.caravan-zone-items{
  display:grid;
  gap:9px;
  max-height:520px;
  overflow:auto;
}
.caravan-zone-item{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--line);
  border-radius:13px;
}
.caravan-zone-item-icon{
  width:42px;height:42px;display:grid;place-items:center;
  border-radius:11px;background:var(--surface-soft);
}
.caravan-zone-item small{display:block;color:var(--muted);margin-top:3px}
.caravan-zone-no-items{
  padding:34px 16px;text-align:center;color:var(--muted);
}
.caravan-location-overview{margin-top:18px;padding:18px}
.compact-heading{margin-bottom:12px}
.caravan-location-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:10px;
}
.caravan-location-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px;
  text-align:left;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
}
.caravan-location-card>span{
  width:42px;height:42px;display:grid;place-items:center;
  border-radius:12px;background:#e7f2ec;color:#165f40;font-weight:800;
}
.caravan-location-card small{display:block;color:var(--muted);margin-top:3px}
.caravan-location-card.is-active{border-color:#2b8a61;box-shadow:0 0 0 3px rgba(43,138,97,.12)}

@media(max-width:1050px){
  .caravan-workspace{grid-template-columns:1fr}
  .caravan-zone-panel{position:static;min-height:0}
  .caravan-zone-empty{min-height:180px}
}
@media(max-width:700px){
  .caravan-page-heading{align-items:flex-start;flex-direction:column}
  .caravan-heading-actions{width:100%}
  .caravan-heading-actions button{flex:1}
  .caravan-map-scroll{padding:14px 8px 42px}
  .caravan-floorplan{min-width:860px}
  .caravan-zone-panel{
    position:fixed;
    left:0;right:0;bottom:0;
    top:auto;
    z-index:1200;
    border-radius:24px 24px 0 0;
    max-height:78vh;
    transform:translateY(105%);
    transition:transform .22s ease;
    box-shadow:0 -18px 50px rgba(0,0,0,.24);
    overflow:auto;
  }
  .caravan-zone-panel.is-open{transform:translateY(0)}
  .caravan-zone-empty{display:none}
  .caravan-zone-actions{flex-direction:column}
  .caravan-location-grid{grid-template-columns:1fr}
}


/* Phoenix 11.0.0 Alpha 19 - bestaande inventaris koppelen */
.disselbak{
  right:-93px;
  top:42%;
  width:82px;
  height:16%;
  border-radius:12px;
  z-index:4;
}
.caravan-zone-actions{
  flex-wrap:wrap;
}
.caravan-zone-actions button{
  min-width:145px;
}
.caravan-link-dialog{
  width:min(760px,calc(100vw - 24px));
}
.caravan-link-card{
  width:100%;
  max-height:min(82vh,760px);
  display:flex;
  flex-direction:column;
}
.caravan-link-search{
  display:grid;
  gap:6px;
  margin:14px 0 10px;
}
.caravan-link-toolbar{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--line);
  color:var(--muted);
}
.caravan-link-items{
  display:grid;
  gap:8px;
  overflow:auto;
  min-height:180px;
  max-height:480px;
  padding:12px 2px;
}
.caravan-link-item{
  display:grid;
  grid-template-columns:auto 44px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:11px;
  border:1px solid var(--line);
  border-radius:14px;
  cursor:pointer;
  background:var(--surface);
}
.caravan-link-item.is-selected{
  border-color:#25865d;
  background:#edf8f2;
  box-shadow:0 0 0 3px rgba(37,134,93,.1);
}
.caravan-link-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--surface-soft);
}
.caravan-link-item small{
  display:block;
  color:var(--muted);
  margin-top:3px;
}
@media(max-width:700px){
  .caravan-link-dialog{
    width:100vw;
    max-width:none;
    margin:0;
    align-self:end;
  }
  .caravan-link-card{
    border-radius:24px 24px 0 0;
    max-height:88vh;
  }
  .disselbak{
    right:-78px;
    width:70px;
  }
}


/* Phoenix 11.0.0 Alpha 22 - aantal en type */
.caravan-zone-stats{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:520px){
  .caravan-zone-stats{
    grid-template-columns:1fr 1fr;
  }
  .caravan-zone-stats article:last-child{
    grid-column:1/-1;
  }
}


/* Phoenix 11.0.0 Alpha 23 - direct documenten verwijderen */
.document-card,
.photo-card{
  position:relative;
}
.document-card-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
}
.media-card-delete{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid #e1b5b5;
  border-radius:11px;
  background:#fff5f5;
  color:#a12424;
  cursor:pointer;
  font-size:1rem;
}
.media-card-delete:hover,
.media-card-delete:focus-visible{
  background:#ffe5e5;
  border-color:#c95c5c;
  outline:3px solid rgba(201,92,92,.16);
}
.photo-card .media-card-delete{
  position:absolute;
  top:10px;
  right:10px;
  box-shadow:0 3px 12px rgba(0,0,0,.16);
}
@media(max-width:700px){
  .document-card{
    grid-template-columns:auto minmax(0,1fr) auto;
  }
  .document-card-actions b{
    display:none;
  }
  .media-card-delete{
    width:44px;
    height:44px;
  }
}


/* Phoenix 11.0.0 Alpha 24 - uitvoerder bij taken */
.record-task-assignee{
  margin-top:2px;
}
.task-assignee{
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  align-items:center;
  margin-top:8px;
  padding:8px 10px;
  border-radius:11px;
  background:#eef6f1;
  color:#244d3b;
  font-size:.82rem;
}
.task-assignee strong{
  color:#173e2d;
}
.task-assignee small{
  color:var(--muted);
}
.task-assignee a{
  color:#176543;
  text-decoration:none;
  font-weight:650;
}
.task-assignee a:hover{
  text-decoration:underline;
}
@media(max-width:700px){
  .task-assignee{
    align-items:flex-start;
    flex-direction:column;
  }
}

.assignee-saved-contact{display:grid;gap:6px;margin:12px 0 14px}.assignee-save-choice{display:flex;gap:10px;align-items:center;margin-top:14px;padding:11px 12px;border-radius:12px;background:var(--surface-soft)}.assignee-save-choice input{width:18px;height:18px}


/* Phoenix 11.0.0 Alpha 28 - aparte Phoenix Planner agenda */
#caldavPhoenixCalendarSelect{
  border-color:#7fb49a;
  background:#f2faf6;
}
#syncPhoenixPlanningButton{
  border-color:#8ab49e;
}
#syncPhoenixPlanningButton:disabled{
  opacity:.65;
  cursor:wait;
}

.relation-toolbar{display:flex;gap:14px;margin-bottom:16px}.relation-toolbar input{flex:1;padding:12px;border:1px solid var(--border);border-radius:14px}.relations-summary,.relation-links,.relation-chips,.relation-actions{display:flex;gap:8px;flex-wrap:wrap}.relations-summary{margin-bottom:16px}.relations-summary span,.relation-links span,.relation-chips span{background:#eef6f1;border-radius:999px;padding:7px 10px}.relations-grid,.diagram-nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.relation-card,.relations-diagram{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:18px}.relation-card-head{display:flex;gap:12px;align-items:center}.relation-card-head h3{margin:0}.relation-avatar{font-size:1.5rem}.relation-contact{display:grid;gap:7px;margin:14px 0}.relation-actions{margin-top:14px}.danger-text{color:#a22}.diagram-hub{text-align:center;margin:0 auto 20px;padding:16px;background:#e8f4ed;border-radius:40px;max-width:190px}.diagram-hub small,.diagram-node small,.diagram-node em{display:block;color:var(--muted);font-style:normal}.diagram-node{text-align:left;padding:14px;border:1px solid #b8d0c3;border-radius:16px;background:#fbfdfc;cursor:pointer}.diagram-website-link{display:block;width:max-content;max-width:100%;margin:5px 0 6px;color:#075f9b;text-decoration:underline;overflow-wrap:anywhere;cursor:pointer}
.diagram-contact-actions{display:grid;gap:5px;margin:8px 0 5px}.diagram-contact-link{display:block;width:max-content;max-width:100%;padding:0;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;text-decoration:none;overflow-wrap:anywhere;cursor:pointer}.diagram-contact-link:hover{text-decoration:underline}.diagram-phone-link{color:#17683f}.diagram-mail-link{color:#075f9b}.diagram-node .diagram-contact-actions button{box-shadow:none}
.relation-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.relation-form-grid label{display:grid;gap:6px}.relation-form-grid .wide{grid-column:1/-1}.relation-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:700px){.relation-toolbar{flex-direction:column}.relations-grid,.diagram-nodes,.relation-form-grid{grid-template-columns:1fr}.relation-form-grid .wide{grid-column:auto}}

/* Phoenix Alpha 33 - leveranciers naar relaties + bedrijfsherkenning */
.relation-lookup-box{
  padding:12px;
  border:1px solid var(--line,#d8dedb);
  border-radius:14px;
  background:rgba(24,79,59,.045);
}
.relation-lookup-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
}
.relation-lookup-actions button{
  min-height:40px;
}
#relationLookupStatus{
  display:block;
  margin-top:7px;
  color:var(--muted);
  line-height:1.35;
}
#relationLookupStatus.is-success{color:#17683f;font-weight:650}
#relationLookupStatus.is-warning{color:#9a6410;font-weight:650}
#relationLookupStatus.is-loading{color:#315d82;font-weight:650}
@media(max-width:600px){
  .relation-lookup-actions{display:grid;grid-template-columns:1fr}
  .relation-lookup-actions button{width:100%}
}

/* Phoenix Alpha 34 - duidelijke scheiding personen / bedrijven */
.relation-type-section{margin:0 0 24px}
.relation-type-heading,.diagram-group-heading{
  display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:11px 14px;
  border:1px solid var(--line,#d8dedb);border-radius:14px;background:rgba(255,255,255,.68)
}
.relation-type-heading h3,.diagram-group-heading strong{margin:0;font-size:1.05rem}
.relation-type-heading small,.diagram-group-heading small{display:block;color:var(--muted);margin-top:2px}
.relation-type-icon,.diagram-group-heading>span{font-size:1.35rem}
.relation-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.diagram-separated-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;margin-top:16px}
.diagram-relation-group{
  min-width:0;padding:14px;border:1px solid var(--line,#d8dedb);border-radius:18px;
  background:rgba(255,255,255,.42)
}
.diagram-relation-group .diagram-nodes{display:grid;grid-template-columns:1fr;gap:10px}
.diagram-empty{padding:16px;text-align:center;color:var(--muted);border:1px dashed var(--line,#d8dedb);border-radius:12px}
.diagram-person{border-left:4px solid rgba(49,93,130,.55)}
.diagram-company{border-left:4px solid rgba(23,104,63,.55)}
@media(max-width:800px){
  .diagram-separated-groups{grid-template-columns:1fr}
  .relation-type-grid{grid-template-columns:1fr}
}

/* Alpha 35 - relatie dossier met taken en onderhoud */
.maintenance-assignee{display:flex;gap:7px;align-items:center;margin-top:7px;font-size:.82rem;color:#24513d}
.relation-work-summary button{border:0;background:#eef6f1;border-radius:999px;padding:6px 9px;cursor:pointer;color:inherit}
.relation-work-summary button:hover{text-decoration:underline}
.relation-dossier-dialog{max-width:1050px;width:min(94vw,1050px);max-height:88vh;overflow:auto}
.relation-dossier-summary{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0 18px}.relation-dossier-summary span{padding:7px 10px;border-radius:999px;background:#eef6f1}
.relation-dossier-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.relation-dossier-columns>section{min-width:0;border:1px solid var(--line,#d8dedb);border-radius:16px;padding:14px}
.relation-dossier-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.relation-dossier-heading h3{margin:0}
.relation-work-list{display:grid;gap:9px}.relation-work-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:11px;border:1px solid var(--line,#d8dedb);border-radius:12px;background:var(--surface,#fff)}
.relation-work-item>div{min-width:0}.relation-work-item strong,.relation-work-item small{display:block}.relation-work-item small{color:var(--muted);margin-top:3px}.relation-work-item button{grid-column:1/-1;justify-self:start}
.relation-work-status{font-size:.78rem;padding:4px 7px;border-radius:999px;background:#fff2c7;height:max-content}.relation-work-item.is-done{opacity:.72}.relation-work-item.is-done .relation-work-status{background:#e5f4ea}
@media(max-width:760px){.relation-dossier-columns{grid-template-columns:1fr}.relation-dossier-dialog{width:96vw}}

.relation-target-highlight{outline:3px solid #d69a24;outline-offset:4px;box-shadow:0 0 0 10px rgba(214,154,36,.20);scroll-margin-block:120px;transition:box-shadow .3s ease}

/* Alpha 37 - expliciete onderhoudsopdracht */
#recordMaintenanceAssignmentWrap textarea{
  width:100%;
  resize:vertical;
  min-height:82px;
}
.maintenance-assignment{
  margin-top:8px;
  padding:8px 10px;
  border-radius:10px;
  background:#f6f2e8;
  color:#554a32;
  font-size:.84rem;
  line-height:1.35;
}
.maintenance-assignment strong{margin-right:4px}
.relation-work-assignment{
  margin:7px 0 0;
  padding:7px 9px;
  border-left:3px solid #c99b43;
  background:#fbf7ec;
  border-radius:6px;
  font-size:.84rem;
  line-height:1.35;
}

/* Phoenix 11.0.0 Alpha 42 - caravanplattegrond passend op scherm */
.caravan-floorplan{
  min-width:0;
  width:100%;
}

@media(max-width:700px){
  .caravan-map-scroll{
    overflow-x:hidden;
    padding:10px 6px 32px;
  }
  .caravan-floorplan{
    min-width:0;
    width:100%;
    border-width:5px;
    border-radius:24px;
    background-size:18px 18px;
    box-shadow:0 10px 22px rgba(12,36,25,.16);
  }
  .caravan-hitch{
    display:none;
  }
  .caravan-zone{
    padding:1px;
    border-width:1px;
    border-radius:6px;
    gap:0;
    min-width:24px;
    min-height:24px;
    touch-action:manipulation;
  }
  .caravan-zone:hover,
  .caravan-zone:focus-visible,
  .caravan-zone.is-selected{
    transform:none;
    outline:3px solid rgba(35,119,83,.28);
  }
  .caravan-zone b{
    min-width:22px;
    height:22px;
    padding:0 3px;
    font-size:.62rem;
  }
  .caravan-zone span{
    display:none;
  }
  .caravan-zone em{
    font-size:.58rem;
    line-height:1;
  }
  .caravan-table{
    border-width:1px;
    border-radius:12px;
    font-size:.62rem;
  }
  .c1,.c2{
    left:auto;
    right:1%;
    width:8%;
  }
  .under-bed-head{
    width:9%;
  }
  .bed{
    left:70%;
    width:23%;
  }
  .disselbak{
    right:1%;
    top:79%;
    width:10%;
    height:18%;
  }
  .caravan-door-label{
    left:9%;
    bottom:-28px;
    padding:3px 8px;
    font-size:.68rem;
  }
  .caravan-map-toolbar{
    padding:10px 12px;
  }
  .caravan-map-hint{
    padding:9px 12px;
    font-size:.82rem;
  }
}

/* Phoenix 11.0.0 Alpha 44 - duidelijke uitlogfunctie */
.phoenix-auth-gate {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(12, 33, 27, .82);
  backdrop-filter: blur(10px);
}
.phoenix-auth-gate[hidden] { display: none !important; }
.phoenix-auth-card {
  width: min(440px, 100%);
  max-height: calc(100dvh - 32px);
  overflow: auto;
  border-radius: 24px;
  padding: 28px;
  background: var(--panel, #fff);
  box-shadow: 0 28px 80px rgba(0,0,0,.28);
}
.phoenix-auth-card > img { width: 72px; height: 72px; object-fit: contain; display: block; margin-bottom: 12px; }
.phoenix-auth-card h1 { margin: 4px 0 8px; font-size: clamp(1.55rem, 5vw, 2rem); }
.phoenix-auth-card > p { margin-top: 0; }
.phoenix-auth-form { display: grid; gap: 14px; margin-top: 20px; }
.phoenix-auth-form label, .security-add-user label { display: grid; gap: 6px; }
.phoenix-auth-form label span, .security-add-user label span { font-weight: 700; font-size: .88rem; }
.phoenix-auth-form input, .security-add-user input, .security-add-user select {
  width: 100%; box-sizing: border-box; min-height: 46px; border: 1px solid var(--border, #d8e2de); border-radius: 12px; padding: 10px 12px;
  background: var(--panel, #fff); color: var(--text, #173027);
}
.phoenix-auth-message { margin: 14px 0 0; padding: 10px 12px; border-radius: 10px; background: #fff1f1; color: #a62626; font-weight: 700; }
.phoenix-auth-message.success { background: #e9f7ef; color: #16643e; }
.phoenix-auth-note { display: block; margin-top: 18px; color: var(--muted, #66776f); line-height: 1.45; }
.security-first-run { padding: 12px; border-radius: 12px; background: #edf7f2; line-height: 1.45; }
.phoenix-user-button { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border, #d8e2de); border-radius: 999px; padding: 5px 10px 5px 5px; background: var(--panel, #fff); color: inherit; }
.phoenix-user-button > span { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#176b4c; color:#fff; font-weight:800; }
.phoenix-user-button small { max-width: 110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.security-center-dialog { width: min(780px, calc(100vw - 24px)); }
.security-role-explain { display:flex; gap:10px; flex-wrap:wrap; padding:12px; margin: 0 0 16px; border-radius:14px; background:#eef6f2; }
.security-role-explain span { font-size:.85rem; }
.security-add-user { padding: 14px; border:1px solid var(--border, #d8e2de); border-radius:14px; margin-bottom:16px; }
.security-add-user h3 { margin-top:0; }
.security-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.security-users-list { display:grid; gap:10px; max-height:42vh; overflow:auto; }
.security-user-row { display:grid; grid-template-columns:minmax(0,1.2fr) .8fr auto; align-items:center; gap:10px; padding:12px; border:1px solid var(--border, #d8e2de); border-radius:14px; }
.security-user-row strong, .security-user-row small { display:block; overflow:hidden; text-overflow:ellipsis; }
.security-user-row small { color:var(--muted, #66776f); }
.security-user-row select { min-height:38px; border-radius:10px; border:1px solid var(--border, #d8e2de); background:var(--panel,#fff); color:inherit; padding:6px 8px; }
.security-user-actions { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.security-user-actions button { min-height:38px; }
body.phoenix-readonly [data-write-action], body.phoenix-readonly .primary-button[data-requires-write] { opacity:.5; pointer-events:none; }
@media (max-width: 760px) {
  .phoenix-auth-card { padding:22px 18px; border-radius:20px; }
  .security-form-grid { grid-template-columns:1fr; }
  .security-user-row { grid-template-columns:1fr; }
  .security-user-actions { justify-content:flex-start; }
  .security-center-dialog { width: calc(100vw - 14px); max-height: calc(100dvh - 14px); }
}

/* Alpha 44: duidelijke uitlogactie in gebruikersbeheer */
.security-center-footer{display:flex;justify-content:space-between;gap:10px;align-items:center}
.security-center-footer .danger-button{padding:8px 14px;border-radius:8px}
@media(max-width:560px){.security-center-footer{display:grid;grid-template-columns:1fr 1fr}.security-center-footer button{width:100%}}

/* Build 133: duidelijke account- en uitlogbediening voor alle rollen */
.phoenix-top-logout {
  display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border, #d8e2de);
  border-radius:999px; padding:9px 12px; background:var(--panel, #fff); color:inherit;
  font-weight:700; cursor:pointer;
}
.phoenix-top-logout:hover { background:var(--soft, #eef5f1); }
.my-account-dialog { max-width:520px; }
.my-account-card { display:flex; align-items:center; gap:14px; padding:16px; margin:8px 0 14px; border:1px solid var(--border, #d8e2de); border-radius:16px; background:var(--soft, #f2f7f4); }
.my-account-avatar { width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:#176b4c; color:#fff; font-weight:800; font-size:18px; flex:0 0 auto; }
.my-account-card strong, .my-account-card span { display:block; }
.my-account-card span { margin-top:2px; color:var(--muted, #66756e); }
.my-account-actions { justify-content:space-between; }
@media (max-width: 760px) {
  .phoenix-top-logout span { display:none; }
  .phoenix-top-logout { padding:9px 11px; }
}


/* Build 134: vaste uitlogknop rechtsboven op mobiel */
.mobile-logout-button{display:none}
@media(max-width:900px){
  .mobile-topbar .mobile-logout-button{
    display:grid!important;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid var(--line,#d9e3dd);
    border-radius:12px;
    background:var(--surface,#fff);
    color:var(--text,#183126);
    font:inherit;
    font-size:1.25rem;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    position:relative;
    z-index:5002!important;
  }
  .mobile-topbar .mobile-logout-button:active{transform:translateY(1px)}
  .mobile-topbar .mobile-object-picker{max-width:min(30vw,120px)}
}
@media(max-width:430px){
  .mobile-topbar{gap:6px!important}
  .mobile-topbar .brand.compact strong{display:none!important}
  .mobile-topbar .brand.compact{flex:0 1 auto!important}
  .mobile-topbar .mobile-object-picker{max-width:104px}
  .mobile-topbar .mobile-logout-button{flex-basis:40px;width:40px;height:40px}
}

/* Phoenix 11.0.0 Alpha 47 - mobiele startschaal en iOS login-zoom */
@media (max-width: 900px) {
  html, body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
  .phoenix-shell,
  .phoenix-shell > main,
  .view {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  /* iPhone Safari zoomt automatisch in op invoervelden kleiner dan 16px.
     Door loginvelden 16px te houden blijft Phoenix na inloggen op schermbreedte. */
  .phoenix-auth-form input,
  .phoenix-auth-form select,
  .security-add-user input,
  .security-add-user select {
    font-size: 16px !important;
  }
}


/* Phoenix 11.0.0 Alpha 48 - werkflowmenu en compact Vandaag */
#todayView .today-welcome > div:first-child{display:none}
#todayView .today-welcome{justify-content:flex-end}


/* Phoenix 11.0.0 Alpha 49 - afspraak leesweergave en grotere mobiele bediening */
.planner-sheet{width:min(760px,calc(100vw - 24px))}
.planner-notes-field{grid-column:1/-1}
.planner-notes-field textarea{min-height:180px;resize:vertical;line-height:1.5;font-size:1rem}
.planner-card-body>p{white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.planner-view-button{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}
.planner-detail-sheet{width:min(760px,calc(100vw - 24px));max-height:92dvh;overflow:auto}
.planner-detail-content{display:grid;gap:16px}
.planner-detail-when{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;padding:14px 16px;border-radius:15px;background:var(--surface-soft)}
.planner-detail-when strong{font-size:1.15rem}.planner-detail-when span{font-size:1.05rem;font-weight:850;color:var(--green-dark)}
.planner-detail-tags,.planner-detail-extra{display:flex;flex-wrap:wrap;gap:8px}
.planner-detail-tags span,.planner-detail-extra span{padding:7px 10px;border-radius:999px;background:var(--surface-soft);font-size:.82rem;font-weight:800}
.planner-detail-notes{border:1px solid var(--line);border-radius:17px;padding:16px;background:var(--surface)}
.planner-detail-notes h3{margin:0 0 10px;font-size:.92rem;color:var(--muted)}
#plannerDetailNotes{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.05rem;line-height:1.65;min-height:90px}
@media(max-width:900px){
  .mobile-menu-button{width:52px!important;height:52px!important;flex-basis:52px!important;min-width:52px!important;min-height:52px!important;font-size:1.65rem!important;border-radius:14px!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
}
@media(max-width:760px){
  .planner-sheet,.planner-detail-sheet{width:100%;max-width:none;border-radius:24px 24px 0 0;max-height:94dvh}
  .planner-notes-field textarea{min-height:220px;font-size:16px}
  .planner-detail-notes{padding:15px}
  #plannerDetailNotes{font-size:1.08rem;line-height:1.7}
  .planner-detail-actions{display:grid;grid-template-columns:1fr 1fr}
  .planner-actions .planner-view-button{min-height:44px}
}
@media(max-width:430px){
  .mobile-menu-button{width:50px!important;height:50px!important;flex-basis:50px!important;min-width:50px!important;min-height:50px!important}
}

/* Alpha 58: taken filteren op uitvoerder */
.task-filter-row{align-items:center;flex-wrap:wrap}.task-assignee-filter-label{margin-left:auto;font-size:.82rem;font-weight:800;color:var(--muted)}.task-assignee-filter{min-height:40px;padding:8px 36px 8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;font-weight:700}.dark .task-assignee-filter{background:var(--surface);color:var(--text)}@media(max-width:760px){.task-assignee-filter-label{margin-left:0;width:100%;margin-top:4px}.task-assignee-filter{width:100%;min-height:48px}}

/* Alpha 59 · taakbijlagen */
.record-task-attachments { margin-top: .75rem; }
.record-task-attachment-status { margin-top: .55rem; font-size: .9rem; color: var(--muted, #66756f); }
.task-attachment-summary { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-top:.55rem; }
#taskAttachmentsContent .shopping-attachment-row { display:flex; align-items:center; gap:.5rem; }
#taskAttachmentsContent .shopping-attachment-open { flex:1; min-width:0; }
@media (max-width: 720px) {
  .record-task-attachments .maintenance-file-button { min-height:48px; display:flex; align-items:center; }
}

/* Alpha 61 — Campingdossiers */
.camping-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.camping-summary-grid article{background:var(--surface,#fff);border:1px solid var(--line,#dfe7e2);border-radius:18px;padding:16px;box-shadow:0 8px 24px rgba(24,64,45,.06)}.camping-summary-grid span{display:block;color:var(--muted,#68766f);font-size:.86rem}.camping-summary-grid strong{display:block;font-size:1.55rem;margin-top:4px}.camping-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px;margin-bottom:18px}.camping-toolbar input,.camping-toolbar select{min-height:46px}.camping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.camping-card{background:var(--surface,#fff);border:1px solid var(--line,#dfe7e2);border-radius:20px;padding:18px;box-shadow:0 10px 30px rgba(24,64,45,.07);display:flex;flex-direction:column;gap:10px}.camping-card h3{margin:0;font-size:1.16rem}.camping-card-top,.camping-card-actions,.camping-section-title,.camping-link-row,.camping-dossier-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.camping-card-top{justify-content:space-between}.camping-status{display:inline-flex;padding:5px 10px;border-radius:999px;background:#edf3ef;color:#365443;font-size:.78rem;font-weight:700}.camping-status.chosen{background:#dff5e6;color:#176733}.camping-status.candidate{background:#fff3cf;color:#72520b}.camping-status.rejected{background:#fbe1e1;color:#8c2525}.camping-status.visited{background:#e4eefc;color:#285d99}.camping-status.planned{background:#efe7fb;color:#633b8d}.camping-stars{color:#b27a16;font-size:.9rem}.camping-location,.camping-card-note{margin:0;color:var(--muted,#68766f)}.camping-card-facts{display:flex;flex-wrap:wrap;gap:8px}.camping-card-facts span{background:rgba(39,92,63,.06);border-radius:10px;padding:6px 8px;font-size:.8rem}.camping-card-actions{margin-top:auto}.camping-form-sheet,.camping-visit-sheet{width:min(920px,94vw);max-height:92vh;overflow:auto}.camping-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.camping-form-grid label,.camping-visit-sheet form>label{display:flex;flex-direction:column;gap:6px}.camping-form-grid .wide,.camping-visit-sheet .wide{grid-column:1/-1}.camping-form-grid textarea,.camping-visit-sheet textarea{resize:vertical;min-height:100px}.camping-dossier-sheet{width:min(1080px,96vw);max-height:94vh;overflow:auto;background:var(--surface,#fff);border-radius:24px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25)}.camping-dossier-header{position:sticky;top:0;z-index:3;background:var(--surface,#fff);padding:20px 22px;border-bottom:1px solid var(--line,#dfe7e2);display:flex;justify-content:space-between;align-items:flex-start}.camping-dossier-header h2{margin:2px 0}.camping-dossier-header p{margin:0;color:var(--muted,#68766f)}.camping-dossier-actions{padding:14px 22px;border-bottom:1px solid var(--line,#dfe7e2);background:rgba(39,92,63,.03);position:sticky;top:89px;z-index:2}.camping-dossier-content{padding:22px;display:grid;gap:16px}.camping-dossier-section{border:1px solid var(--line,#dfe7e2);border-radius:18px;padding:18px;background:var(--surface,#fff)}.camping-section-title{justify-content:space-between;margin-bottom:12px}.camping-section-title h3{margin:0}.camping-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.camping-detail-grid>div{background:rgba(39,92,63,.05);padding:10px;border-radius:12px}.camping-detail-grid span{display:block;color:var(--muted,#68766f);font-size:.78rem}.camping-detail-grid strong{display:block;margin-top:3px;word-break:break-word}.camping-text-block,.camping-review-draft{line-height:1.55;background:rgba(39,92,63,.035);padding:14px;border-radius:12px;white-space:normal}.camping-review-draft{border-left:4px solid #b58a35}.camping-link-row{margin-top:12px}.camping-external-link{display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid var(--line,#dfe7e2);text-decoration:none;font-weight:700;color:inherit}.camping-visits{display:grid;gap:10px}.camping-visit-card{border:1px solid var(--line,#dfe7e2);border-radius:14px;padding:14px}.camping-visit-card header{display:flex;justify-content:space-between}.camping-visit-card p{margin:8px 0 0}.camping-pros{color:#23663b}.camping-cons{color:#8b3333}.camping-media-list,.camping-linked-list{display:grid;gap:8px}.camping-media-list article,.camping-linked-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line,#dfe7e2);border-radius:12px}.camping-media-list small,.camping-linked-list small{display:block;color:var(--muted,#68766f);margin-top:2px}.camping-media-list a{font-weight:700}.camping-help,.muted{color:var(--muted,#68766f)}
@media(max-width:900px){.camping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camping-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camping-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.camping-grid,.camping-form-grid,.camping-toolbar{grid-template-columns:1fr}.camping-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camping-detail-grid{grid-template-columns:1fr}.camping-dossier-sheet{width:100vw;max-height:100vh;height:100vh;border-radius:0}.camping-dossier-header{padding:15px}.camping-dossier-actions{top:78px;padding:10px 14px;overflow-x:auto;flex-wrap:nowrap}.camping-dossier-actions button{min-height:44px;white-space:nowrap}.camping-dossier-content{padding:14px}.camping-card-actions button{min-height:44px}.camping-form-sheet,.camping-visit-sheet{width:100vw;max-height:100vh;height:100vh;border-radius:0}.camping-form-grid .wide,.camping-visit-sheet .wide{grid-column:auto}}


/* Alpha 62 · Campingformulier Phoenix-stijl + website ophalen */
#campingDialog.sheet-backdrop{padding:24px!important;place-items:center;background:rgba(8,28,19,.58);backdrop-filter:blur(8px)}
#campingDialog .camping-form-sheet{width:min(980px,96vw);max-height:min(92dvh,980px);overflow:hidden;background:var(--surface,#fff);color:var(--text,#173126);border:1px solid var(--line,#dbe5df);border-radius:24px;box-shadow:0 32px 90px rgba(0,0,0,.30);display:flex;flex-direction:column;padding:0}
#campingDialog .camping-form-sheet>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px 17px;border-bottom:1px solid var(--line,#dbe5df);background:var(--surface,#fff);position:sticky;top:0;z-index:2}
#campingDialog .camping-form-sheet>header h2{margin:2px 0 0;font-size:1.45rem}
#campingDialog .camping-form-sheet>header .eyebrow{margin:0;color:var(--accent,#176744);font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
#campingDialog #closeCampingDialog{width:42px;height:42px;min-width:42px;border:1px solid var(--line,#dbe5df);border-radius:12px;background:var(--surface,#fff);color:var(--text,#173126);font-size:1.35rem;line-height:1;cursor:pointer}
#campingDialog .camping-form{overflow:auto;padding:22px 24px 0;scrollbar-gutter:stable}
#campingDialog .camping-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
#campingDialog .camping-form-grid label{display:flex;flex-direction:column;gap:7px;min-width:0;margin:0;color:var(--text,#173126)}
#campingDialog .camping-form-grid label>span{font-size:.86rem;font-weight:800;color:var(--text,#173126)}
#campingDialog .camping-form-grid .wide{grid-column:1/-1}
#campingDialog .camping-form-grid input,#campingDialog .camping-form-grid select,#campingDialog .camping-form-grid textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line,#cfdcd5);border-radius:12px;background:var(--surface,#fff);color:var(--text,#173126);font:inherit;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}
#campingDialog .camping-form-grid input,#campingDialog .camping-form-grid select{min-height:46px;padding:10px 12px}
#campingDialog .camping-form-grid textarea{padding:12px 13px;line-height:1.5;resize:vertical;min-height:108px}
#campingDialog .camping-form-grid input:focus,#campingDialog .camping-form-grid select:focus,#campingDialog .camping-form-grid textarea:focus{border-color:var(--accent,#1c724d);box-shadow:0 0 0 3px rgba(28,114,77,.14)}
#campingDialog .camping-form-grid input::placeholder,#campingDialog .camping-form-grid textarea::placeholder{color:var(--muted,#77847e);opacity:.86}
#campingDialog .camping-form>footer{position:sticky;bottom:0;z-index:2;margin:22px -24px 0;padding:15px 24px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line,#dbe5df);background:var(--surface,#fff);box-shadow:0 -8px 24px rgba(21,58,40,.05)}
#campingDialog .camping-form>footer button{min-height:44px;padding:10px 18px;border-radius:12px;font-weight:800}
#campingDialog .camping-website-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}
#campingDialog .camping-fetch-button{min-height:46px;padding:9px 15px;border:1px solid rgba(24,105,70,.25);border-radius:12px;background:rgba(24,105,70,.09);color:var(--accent,#176744);font:inherit;font-weight:850;white-space:nowrap;cursor:pointer}
#campingDialog .camping-fetch-button:hover{background:rgba(24,105,70,.15)}
#campingDialog .camping-fetch-button:disabled{opacity:.65;cursor:wait}
#campingDialog .camping-fetch-status{display:block;margin-top:1px;color:var(--muted,#6d7b74);font-size:.79rem;line-height:1.4;font-weight:600}
#campingDialog .camping-fetch-status.loading{color:#6c5a14}#campingDialog .camping-fetch-status.success{color:#176b3b}#campingDialog .camping-fetch-status.warning{color:#8a6517}#campingDialog .camping-fetch-status.error{color:#9a3030}
.dark #campingDialog .camping-form-sheet,.dark #campingDialog .camping-form-sheet>header,.dark #campingDialog .camping-form>footer,.dark #campingDialog .camping-form-grid input,.dark #campingDialog .camping-form-grid select,.dark #campingDialog .camping-form-grid textarea,.dark #campingDialog #closeCampingDialog{background:var(--surface);color:var(--text)}
@media(max-width:720px){#campingDialog.sheet-backdrop{padding:0!important;place-items:end center}#campingDialog .camping-form-sheet{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;border-left:0;border-right:0}#campingDialog .camping-form-sheet>header{padding:15px 16px}#campingDialog .camping-form{padding:17px 16px 0}#campingDialog .camping-form-grid{grid-template-columns:1fr;gap:14px}#campingDialog .camping-form-grid .wide{grid-column:auto}#campingDialog .camping-website-row{grid-template-columns:1fr}#campingDialog .camping-fetch-button{min-height:48px}#campingDialog .camping-form>footer{margin:18px -16px 0;padding:12px 16px;display:grid;grid-template-columns:1fr 1fr}#campingDialog .camping-form>footer button{min-height:48px}}

/* Alpha 65 · externe campingreviews */
.camping-review-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.camping-review-source{border:1px solid var(--line,#dfe7e2);border-radius:14px;padding:14px;background:rgba(39,92,63,.035)}.camping-review-source>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.camping-review-source p{margin:8px 0;line-height:1.45}.camping-review-score{font-weight:900;font-size:1.05rem;color:var(--accent,#176744)}.camping-review-source-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted,#68766f);font-size:.78rem;margin-bottom:10px}.camping-inline-action{min-height:38px;padding:7px 11px;border-radius:10px;border:1px solid var(--line,#dfe7e2);background:var(--surface,#fff);font-weight:800;color:inherit}.camping-inline-action:disabled{opacity:.6;cursor:wait}@media(max-width:900px){.camping-review-sources{grid-template-columns:1fr 1fr}}@media(max-width:640px){.camping-review-sources{grid-template-columns:1fr}.camping-section-title{align-items:flex-start;gap:10px}.camping-inline-action{width:100%}}

/* Alpha 66 · echte reviewteksten */
.camping-review-source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.camping-review-source-head>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.camping-review-quotes{display:grid;gap:10px;margin-top:12px}.camping-review-quote{border-top:1px solid var(--line,#dfe7e2);padding-top:10px}.camping-review-quote-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:5px}.camping-review-quote-head strong{font-size:.92rem}.camping-review-quote-head span{font-weight:800}.camping-review-quote-head small{color:var(--muted,#68766f)}.camping-review-quote p{margin:0!important;line-height:1.5}.camping-review-no-text{font-size:.86rem;color:var(--muted,#68766f);border-top:1px solid var(--line,#dfe7e2);padding-top:10px}@media(max-width:640px){.camping-review-source-head{flex-direction:column}.camping-review-source-head .camping-external-link{width:100%;text-align:center}}

/* Alpha 68 - professioneel bezoekverslag */
#campingVisitDialog.sheet-backdrop{padding:24px!important;place-items:center;background:rgba(8,28,19,.62);backdrop-filter:blur(9px)}
#campingVisitDialog .camping-visit-sheet{width:min(900px,95vw);max-height:92dvh;overflow:auto;background:var(--surface,#fff);border:1px solid var(--line,#dfe7e2);border-radius:24px;box-shadow:0 28px 90px rgba(0,0,0,.32);padding:0}
#campingVisitDialog .camping-visit-sheet>header{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px;background:var(--surface,#fff);border-bottom:1px solid var(--line,#dfe7e2)}
#campingVisitDialog .camping-visit-sheet>header h2{margin:2px 0 0;font-size:1.55rem}
#campingVisitDialog .camping-visit-sheet>header .eyebrow{margin:0;color:var(--accent,#246c4b);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}
#campingVisitDialog #closeCampingVisit{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.35rem;flex:0 0 auto}
#campingVisitDialog #campingVisitForm{padding:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#campingVisitDialog #campingVisitForm>label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:var(--text,#193729)}
#campingVisitDialog #campingVisitForm>label>span{font-size:.9rem}
#campingVisitDialog #campingVisitForm>.wide{grid-column:1/-1}
#campingVisitDialog input,#campingVisitDialog select,#campingVisitDialog textarea{width:100%;box-sizing:border-box;border:1px solid var(--line,#cfdad4);border-radius:12px;background:var(--surface,#fff);color:var(--text,#193729);padding:11px 12px;font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}
#campingVisitDialog input,#campingVisitDialog select{min-height:46px}
#campingVisitDialog textarea{min-height:96px;resize:vertical;line-height:1.5}
#campingVisitDialog #campingVisitText{min-height:190px}
#campingVisitDialog input:focus,#campingVisitDialog select:focus,#campingVisitDialog textarea:focus{border-color:var(--accent,#246c4b);box-shadow:0 0 0 3px rgba(36,108,75,.14)}
#campingVisitDialog #campingVisitForm>footer{grid-column:1/-1;position:sticky;bottom:0;margin:4px -22px -22px;padding:14px 22px;display:flex;justify-content:flex-end;gap:10px;background:var(--surface,#fff);border-top:1px solid var(--line,#dfe7e2)}
#campingVisitDialog #campingVisitForm>footer button{min-height:44px;padding:9px 16px;border-radius:12px;font-weight:800}
@media(max-width:700px){#campingVisitDialog.sheet-backdrop{padding:0!important;place-items:end center}#campingVisitDialog .camping-visit-sheet{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border-left:0;border-right:0}#campingVisitDialog .camping-visit-sheet>header{padding:15px 16px}#campingVisitDialog #campingVisitForm{grid-template-columns:1fr;padding:16px;gap:14px}#campingVisitDialog #campingVisitForm>.wide{grid-column:auto}#campingVisitDialog #campingVisitForm>footer{margin:4px -16px -16px;padding:12px 16px;display:grid;grid-template-columns:1fr 1fr}#campingVisitDialog #campingVisitForm>footer button{min-height:48px}}

/* Alpha 69 · login-veilige reviewbronnen en handmatige import */
.camping-review-title-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.camping-review-manual-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--line,#dfe7e2)}
.camping-review-manual-heading span{font-size:.8rem;color:var(--muted,#68766f)}
.camping-review-source-manual{border-style:dashed;background:rgba(35,105,72,.055)}
.camping-review-access{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:850;background:#edf3ef;color:#476056}
.camping-review-access.login{background:#fff3d9;color:#7b5911}.camping-review-access.public{background:#e5f4eb;color:#176744}.camping-review-access.manual{background:#eaf0f8;color:#355a7e}
.camping-review-source-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--line,#dfe7e2)}
.camping-review-source-actions .camping-inline-action,.camping-review-source-actions .camping-external-link{min-height:38px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.camping-inline-action.subtle{font-weight:700;color:var(--muted,#68766f)}
.camping-review-dialog.sheet-backdrop{padding:22px!important;place-items:center;background:rgba(8,28,19,.62);backdrop-filter:blur(9px)}
.camping-review-dialog-sheet{width:min(720px,94vw);max-height:90dvh;overflow:auto;background:var(--surface,#fff);border:1px solid var(--line,#dfe7e2);border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.32)}
.camping-review-dialog-sheet>header{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;background:var(--surface,#fff);border-bottom:1px solid var(--line,#dfe7e2)}
.camping-review-dialog-sheet>header h2{margin:2px 0 0;font-size:1.4rem}.camping-review-dialog-sheet>header .eyebrow{margin:0;color:var(--accent,#246c4b);font-size:.72rem;font-weight:850;letter-spacing:.11em}
.camping-review-dialog-sheet>header button{width:42px;height:42px;border-radius:12px;border:1px solid var(--line,#dfe7e2);background:var(--surface,#fff);color:inherit;font-size:1.3rem}
.camping-review-dialog-sheet form{padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.camping-review-dialog-sheet form>label{display:flex;flex-direction:column;gap:7px;font-weight:750}.camping-review-dialog-sheet form>.wide{grid-column:1/-1}
.camping-review-dialog-sheet input,.camping-review-dialog-sheet select,.camping-review-dialog-sheet textarea{width:100%;box-sizing:border-box;border:1px solid var(--line,#cfdad4);border-radius:12px;background:var(--surface,#fff);color:var(--text,#193729);padding:11px 12px;font:inherit;font-size:16px;outline:none}
.camping-review-dialog-sheet input,.camping-review-dialog-sheet select{min-height:46px}.camping-review-dialog-sheet textarea{resize:vertical;min-height:220px;line-height:1.5}
.camping-review-dialog-sheet input:focus,.camping-review-dialog-sheet select:focus,.camping-review-dialog-sheet textarea:focus{border-color:var(--accent,#246c4b);box-shadow:0 0 0 3px rgba(36,108,75,.14)}
.camping-review-security,.camping-review-import-steps,.camping-review-import-preview{grid-column:1/-1;margin:0;padding:13px 14px;border:1px solid var(--line,#dfe7e2);border-radius:12px;background:rgba(35,105,72,.05);line-height:1.45}
.camping-review-import-steps ol{margin:8px 0 0;padding-left:20px}.camping-review-import-steps li+li{margin-top:5px}
.camping-review-import-preview{max-height:300px;overflow:auto;background:rgba(255,255,255,.55)}
.camping-review-dialog-sheet form>footer{grid-column:1/-1;position:sticky;bottom:0;margin:4px -20px -20px;padding:13px 20px;display:flex;justify-content:flex-end;gap:9px;background:var(--surface,#fff);border-top:1px solid var(--line,#dfe7e2)}
.camping-review-dialog-sheet form>footer button{min-height:44px;padding:9px 15px;border-radius:11px;font-weight:800}
@media(max-width:700px){.camping-review-title-actions{width:100%;display:grid;grid-template-columns:1fr}.camping-review-manual-heading{align-items:flex-start;flex-direction:column}.camping-review-dialog.sheet-backdrop{padding:0!important;place-items:end center}.camping-review-dialog-sheet{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.camping-review-dialog-sheet form{grid-template-columns:1fr;padding:16px}.camping-review-dialog-sheet form>.wide{grid-column:auto}.camping-review-dialog-sheet form>footer{margin:4px -16px -16px;padding:12px 16px;display:grid;grid-template-columns:1fr}.camping-review-source-actions{display:grid;grid-template-columns:1fr}.camping-review-source-actions>*{width:100%}}

/* Alpha 74 · ingebouwde e-mailviewer voor .eml en ruwe e-mailtekst */
.phoenix-email-loading{display:grid;place-items:center;min-height:280px;padding:30px;color:var(--muted,#68766f);font-weight:800;font-size:1.02rem}
.phoenix-email-viewer{max-width:920px;margin:0 auto;background:var(--surface,#fff);color:var(--text,#173126);border:1px solid var(--line,#dfe7e2);border-radius:18px;overflow:hidden;box-shadow:0 12px 38px rgba(22,57,40,.08)}
.phoenix-email-header{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line,#dfe7e2);background:rgba(33,105,72,.045)}
.phoenix-email-header .eyebrow{margin:0 0 3px;color:var(--accent,#246c4b);font-size:.72rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.phoenix-email-header h3{margin:0;font-size:1.25rem;line-height:1.3}.phoenix-email-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:rgba(33,105,72,.11);font-size:1.25rem;flex:0 0 auto}
.phoenix-email-meta{margin:0;padding:14px 20px;border-bottom:1px solid var(--line,#dfe7e2);display:grid;gap:7px;background:rgba(0,0,0,.012)}
.phoenix-email-meta>div{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px;align-items:start}.phoenix-email-meta dt{font-size:.8rem;font-weight:850;color:var(--muted,#68766f)}.phoenix-email-meta dd{margin:0;overflow-wrap:anywhere;font-size:.9rem}
.phoenix-email-body{padding:22px 20px;line-height:1.65;font-size:1rem;white-space:normal;overflow-wrap:anywhere;min-height:160px}
.phoenix-email-attachments{margin:0 20px 20px;padding:14px;border:1px solid var(--line,#dfe7e2);border-radius:13px;background:rgba(33,105,72,.045)}.phoenix-email-attachments>div{display:flex;gap:7px;flex-wrap:wrap;margin:9px 0}.phoenix-email-attachments span{display:inline-flex;padding:5px 9px;border:1px solid var(--line,#dfe7e2);border-radius:999px;background:var(--surface,#fff);font-size:.82rem}.phoenix-email-attachments small{color:var(--muted,#68766f);line-height:1.4}
@media(max-width:640px){.phoenix-email-viewer{border-radius:12px}.phoenix-email-header,.phoenix-email-meta,.phoenix-email-body{padding-left:15px;padding-right:15px}.phoenix-email-meta>div{grid-template-columns:54px minmax(0,1fr)}.phoenix-email-attachments{margin:0 15px 15px}}

/* Alpha 75 · campingbijlagen via interne viewer */
.camping-media-open{font:inherit;font-weight:700;color:inherit;background:var(--surface,#fff);border:1px solid var(--line,#dfe7e2);border-radius:10px;min-height:40px;padding:8px 12px;cursor:pointer}.camping-media-open:hover{background:rgba(39,92,63,.07)}


/* Alpha 78 · camping e-mailoverzicht + mobiele e-mailviewer */
.camping-media-copy{min-width:0}
.camping-media-date{font-weight:800;color:var(--text,#173126)!important;margin-top:4px!important}
.camping-media-filename{opacity:.72;font-size:.76rem!important;overflow-wrap:anywhere}
.media-viewer{display:flex;flex-direction:column}
.media-viewer>header{flex:0 0 auto}
.media-viewer #mediaViewerContent{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:2px}
.media-viewer-footer{flex:0 0 auto;position:sticky;bottom:0;z-index:5;background:var(--surface,#fff);padding-top:10px;border-top:1px solid var(--line,#dfe7e2)}
.media-viewer-footer>*{min-height:44px}
@media(max-width:700px){
  .media-viewer-backdrop{align-items:stretch!important;place-items:stretch!important}
  .media-viewer{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;padding:12px 12px calc(10px + env(safe-area-inset-bottom))!important;overflow:hidden!important}
  .media-viewer #mediaViewerContent{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;max-height:none!important}
  .phoenix-email-viewer{max-width:none;margin:0}
  .phoenix-email-body{min-height:0}
  .media-viewer-footer{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:8px -2px -2px!important;padding:10px 2px calc(2px + env(safe-area-inset-bottom))!important}
  .media-viewer-footer .danger-action{grid-column:1/-1}
  .camping-media-list article{grid-template-columns:auto minmax(0,1fr) auto!important}
}


/* Alpha 79 · eenvoudig reviews plakken */
.camping-review-translation{margin-top:10px;border-top:1px dashed var(--line,#dfe7e2);padding-top:8px}
.camping-review-translation summary{cursor:pointer;font-weight:750;color:var(--muted,#66766f)}
.camping-review-translation p{margin:8px 0 0!important;color:var(--muted,#66766f)}
.camping-review-title-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
@media(max-width:700px){
  .camping-review-title-actions{width:100%;justify-content:stretch}
  .camping-review-title-actions .camping-inline-action{flex:1 1 160px;min-height:44px}
}


/* Alpha 80 · reviewsterren + duidelijke scheiding */
.camping-review-quote{padding:16px 0;margin:0;border:0;border-bottom:1px solid var(--line,#dfe7e2);border-radius:0;background:transparent}
.camping-review-quote:first-child{padding-top:4px}
.camping-review-quote:last-child{border-bottom:0;padding-bottom:4px}
.camping-review-quote-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.camping-review-stars{color:#e7a20c;letter-spacing:1px;font-size:1.05rem;white-space:nowrap;line-height:1}
.camping-review-quote-head small{margin-left:auto;color:var(--muted,#66766f)}
@media(max-width:700px){.camping-review-quote{padding:14px 0}.camping-review-quote-head small{margin-left:0;width:100%}}


/* Alpha 81 · reviewknoppen ook bij Review & publiceren */
.camping-review-lower-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:12px 0;
}
.camping-review-lower-actions .camping-inline-action{
  min-height:42px;
}
@media(max-width:700px){
  .camping-review-lower-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .camping-review-lower-actions .camping-inline-action{
    width:100%;
    min-height:48px;
  }
}

/* Alpha 82 */
.camping-reviews-section .camping-review-primary-actions{display:flex;flex-wrap:wrap;gap:10px;padding:4px 0 14px;margin-bottom:8px;border-bottom:1px solid var(--line,#dfe7e2)}
.camping-reviews-section .camping-review-primary-actions .camping-inline-action{min-height:42px}
.camping-reviews-section .camping-review-primary{background:var(--brand,#1f6f50);color:#fff;border-color:var(--brand,#1f6f50);font-weight:800}
.camping-review-import-sheet{display:flex;flex-direction:column;max-height:min(88vh,820px);overflow:hidden}
.camping-review-import-sheet>header{flex:0 0 auto}.camping-review-import-sheet form{display:grid;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}
.camping-review-import-footer{position:sticky;bottom:0;z-index:8;background:var(--surface,#fff);border-top:1px solid var(--line,#dfe7e2);padding-top:12px!important}.camping-review-close-button{font-weight:800;min-height:44px}
@media(max-width:700px){.camping-reviews-section .camping-review-primary-actions{display:grid;grid-template-columns:1fr}.camping-reviews-section .camping-review-primary-actions .camping-inline-action{width:100%;min-height:48px}.camping-review-import-sheet{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.camping-review-import-sheet form{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.camping-review-import-footer{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding-bottom:calc(6px + env(safe-area-inset-bottom))!important}.camping-review-import-footer .primary-button{grid-column:1/-1}}


/* Alpha 83 · vaste dossierkop en duidelijke terugknoppen */
.camping-dossier-sheet{display:flex;flex-direction:column;overflow:hidden}
.camping-dossier-header{flex:0 0 auto;position:sticky;top:0;z-index:20}
.camping-dossier-actions{flex:0 0 auto;position:sticky;top:89px;z-index:19;box-shadow:0 5px 12px rgba(24,64,45,.06)}
.camping-dossier-content{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.camping-dossier-back{background:var(--brand,#1f6f50)!important;color:#fff!important;border-color:var(--brand,#1f6f50)!important;font-weight:800!important}
.camping-dossier-footer{flex:0 0 auto;border-top:1px solid var(--line,#dfe7e2);background:var(--surface,#fff);padding:12px 22px;display:flex;justify-content:flex-end}
.camping-dossier-footer button{min-height:44px;font-weight:800}
@media(max-width:640px){
  .camping-dossier-actions{top:74px;overflow-x:auto;flex-wrap:nowrap}
  .camping-dossier-back{position:sticky;left:0;z-index:3;white-space:nowrap}
  .camping-dossier-footer{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
  .camping-dossier-footer button{width:100%;min-height:48px}
}


/* Alpha 85 · Websiteonderzoek als overzichtelijk dashboard */
.camping-research-dashboard{display:grid;gap:14px}.camping-research-summary,.camping-research-card{background:var(--surface-soft,#f5f8f6);border:1px solid var(--line,#dfe7e2);border-radius:14px;padding:14px}.camping-research-summary>span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted,#66766f)}.camping-research-summary p{margin:5px 0 4px;line-height:1.5}.camping-research-summary small{color:var(--muted,#66766f)}.camping-research-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}.camping-research-card h4{margin:0 0 10px;font-size:1rem}.camping-research-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--line,#dfe7e2)}.camping-research-row:last-child{border-bottom:0}.camping-research-row span{color:var(--muted,#66766f)}.camping-research-row strong{overflow-wrap:anywhere}.camping-facility-chips{display:flex;flex-wrap:wrap;gap:7px}.camping-facility-chips span{background:#fff;border:1px solid var(--line,#dfe7e2);border-radius:999px;padding:6px 9px;font-size:.86rem}.camping-research-links{display:flex;flex-wrap:wrap;gap:8px}.camping-research-links a{display:inline-flex;align-items:center;min-height:40px;padding:8px 11px;background:#fff;border:1px solid var(--line,#dfe7e2);border-radius:10px;text-decoration:none;color:inherit;font-weight:750}.camping-research-links a:hover{background:rgba(31,111,80,.07)}.camping-research-raw{border-top:1px solid var(--line,#dfe7e2);padding-top:10px}.camping-research-raw summary{cursor:pointer;color:var(--muted,#66766f);font-weight:700}.camping-research-raw .camping-text-block{margin-top:10px;font-size:.88rem}@media(max-width:760px){.camping-research-grid{grid-template-columns:1fr}.camping-research-row{grid-template-columns:1fr;gap:2px}.camping-research-links{display:grid;grid-template-columns:1fr}.camping-research-links a{width:100%}}


/* Alpha 86 · communicatie als chronologisch logboek */
.camping-communication-wrap{display:grid;gap:12px}.camping-communication-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line,#dfe7e2)}.camping-communication-toolbar>span{color:var(--muted,#66766f);font-size:.88rem}.camping-communication-oldnote{background:var(--surface-soft,#f5f8f6);border:1px solid var(--line,#dfe7e2);border-radius:12px;padding:12px}.camping-communication-oldnote p{margin:6px 0 0;line-height:1.5}.camping-communication-timeline{display:grid}.camping-communication-entry{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line,#dfe7e2)}.camping-communication-entry:last-child{border-bottom:0}.camping-communication-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--surface-soft,#f5f8f6);border:1px solid var(--line,#dfe7e2)}.camping-communication-copy{min-width:0}.camping-communication-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.camping-communication-head>span{font-size:.75rem;font-weight:800;background:var(--surface-soft,#f5f8f6);border-radius:999px;padding:3px 7px;color:var(--muted,#66766f)}.camping-communication-copy small{display:block;margin-top:3px;color:var(--muted,#66766f)}.camping-communication-copy p{margin:8px 0 0;line-height:1.5}.camping-communication-sheet{max-width:760px}.camping-communication-sheet form{grid-template-columns:1fr 1fr}@media(max-width:700px){.camping-communication-entry{grid-template-columns:36px minmax(0,1fr)}.camping-communication-entry .camping-media-open{grid-column:2;width:100%;min-height:44px}.camping-communication-sheet form{grid-template-columns:1fr}.camping-communication-toolbar .camping-inline-action{width:100%;min-height:46px}}


/* Alpha 87 · Communicatieformulier layout herstel */
#campingCommunicationDialog{
  align-items:center;
  justify-content:center;
  padding:24px;
}

#campingCommunicationDialog .camping-communication-sheet{
  width:min(760px, calc(100vw - 32px));
  max-height:min(88vh, 820px);
  background:var(--surface,#fff);
  border-radius:20px;
  box-shadow:0 24px 70px rgba(0,0,0,.26);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

#campingCommunicationDialog .camping-communication-sheet > header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px 14px;
  border-bottom:1px solid var(--line,#dfe7e2);
  flex:0 0 auto;
}

#campingCommunicationDialog .camping-communication-sheet > header .eyebrow{
  margin:0 0 4px;
}

#campingCommunicationDialog .camping-communication-sheet > header h2{
  margin:0;
}

#campingCommunicationDialog .camping-communication-sheet > header > button{
  width:42px;
  height:42px;
  min-width:42px;
  border-radius:12px;
}

#campingCommunicationForm{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:16px 18px;
  padding:20px 22px 22px;
  overflow-y:auto;
  min-height:0;
  -webkit-overflow-scrolling:touch;
}

#campingCommunicationForm > label{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:7px;
  min-width:0;
  margin:0 !important;
}

#campingCommunicationForm > label > span{
  display:block;
  font-weight:750;
  color:var(--text,#173126);
}

#campingCommunicationForm input,
#campingCommunicationForm select,
#campingCommunicationForm textarea{
  width:100% !important;
  min-width:0;
  box-sizing:border-box;
  min-height:46px;
  border:1px solid var(--line,#d7e1dc);
  border-radius:11px;
  padding:10px 12px;
  font:inherit;
  background:var(--surface,#fff);
  color:var(--text,#173126);
}

#campingCommunicationForm textarea{
  min-height:150px;
  resize:vertical;
  line-height:1.45;
}

#campingCommunicationForm > label.wide{
  grid-column:1 / -1;
}

#campingCommunicationForm > footer{
  grid-column:1 / -1;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding-top:4px;
}

#campingCommunicationForm > footer button{
  min-height:44px;
  padding:9px 16px;
}

@media(max-width:700px){
  #campingCommunicationDialog{
    padding:0;
    align-items:stretch;
  }

  #campingCommunicationDialog .camping-communication-sheet{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
  }

  #campingCommunicationDialog .camping-communication-sheet > header{
    padding:16px 16px 12px;
  }

  #campingCommunicationForm{
    grid-template-columns:1fr;
    padding:16px;
    gap:14px;
  }

  #campingCommunicationForm > label.wide{
    grid-column:auto;
  }

  #campingCommunicationForm > footer{
    grid-column:auto;
    position:sticky;
    bottom:0;
    margin:4px -16px -16px;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:var(--surface,#fff);
    border-top:1px solid var(--line,#dfe7e2);
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  #campingCommunicationForm > footer button{
    width:100%;
    min-height:48px;
  }
}


/* Alpha 88 · spraak-naar-tekst */
.phoenix-voice-field{
  display:grid;
  min-width:0;
  width:100%;
  gap:7px;
}
.phoenix-voice-field > textarea{
  width:100% !important;
  box-sizing:border-box;
}
.phoenix-voice-controls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.phoenix-voice-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:42px;
  padding:8px 13px;
  border:1px solid var(--line,#d7e1dc);
  border-radius:10px;
  background:var(--surface,#fff);
  color:var(--text,#173126);
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.phoenix-voice-button:hover{
  background:rgba(31,111,80,.07);
}
.phoenix-voice-button.is-listening{
  background:#fff1f0;
  border-color:#e6a09a;
  color:#a52d25;
  box-shadow:0 0 0 3px rgba(190,55,45,.08);
}
.phoenix-voice-hint{
  color:var(--muted,#66766f);
  font-size:.78rem;
}
@media(max-width:700px){
  .phoenix-voice-controls{
    display:grid;
    grid-template-columns:1fr;
  }
  .phoenix-voice-button{
    width:100%;
    min-height:50px;
    font-size:1rem;
  }
  .phoenix-voice-hint{
    text-align:center;
  }
}


/* Alpha 89 · status van spraakherkenning */
.phoenix-voice-hint[data-state="listening"]{
  color:var(--brand,#1f6f50);
  font-weight:700;
}
.phoenix-voice-hint[data-state="error"]{
  color:#a52d25;
  font-weight:700;
}


/* Alpha 90 · campingdossier mobiel binnen scherm houden */
@media(max-width:700px){
  html,body{
    max-width:100%;
    overflow-x:hidden;
  }

  #campingDossierDialog,
  #campingDossierDialog .camping-dossier-sheet,
  .camping-dossier-sheet{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    margin:0 !important;
    border-radius:0 !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
  }

  .camping-dossier-sheet > header,
  .camping-dossier-actions,
  #campingDossierContent,
  .camping-dossier-section,
  .camping-research-dashboard,
  .camping-research-grid,
  .camping-communication-wrap,
  .camping-media-list{
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  #campingDossierContent{
    padding-left:12px !important;
    padding-right:12px !important;
    overflow-x:hidden !important;
  }

  .camping-dossier-actions{
    display:flex !important;
    gap:7px !important;
    padding:8px 10px !important;
    overflow-x:auto !important;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }

  .camping-dossier-actions button{
    flex:0 0 auto;
    white-space:nowrap;
    min-height:42px;
    font-size:.86rem !important;
    padding:7px 9px !important;
  }

  .camping-dossier-section{
    padding:12px !important;
  }

  .camping-dossier-section h3{
    font-size:1.02rem !important;
  }

  .camping-overview-grid,
  .camping-research-grid{
    grid-template-columns:1fr !important;
  }

  .camping-overview-grid > *,
  .camping-research-grid > *,
  .camping-media-list article,
  .camping-communication-entry{
    min-width:0 !important;
    max-width:100% !important;
  }

  .camping-media-list article{
    grid-template-columns:30px minmax(0,1fr) !important;
    gap:8px !important;
  }

  .camping-media-list article .camping-media-open{
    grid-column:2;
    width:100%;
    min-height:42px;
  }

  .camping-media-copy,
  .camping-communication-copy,
  .camping-text-block,
  .camping-research-summary,
  .camping-research-card,
  .camping-public-review,
  .camping-review-quote{
    min-width:0 !important;
    max-width:100% !important;
    overflow-wrap:anywhere !important;
    word-break:break-word;
  }

  .camping-research-links a,
  .camping-link-row a,
  .camping-link-row button{
    max-width:100% !important;
    overflow-wrap:anywhere;
    white-space:normal !important;
  }

  /* Alle camping-invulvensters mobiel smaller en één kolom */
  #campingDialog,
  #campingVisitDialog,
  #campingCommunicationDialog,
  #campingReviewSourceDialog,
  #campingReviewImportDialog{
    padding:0 !important;
    overflow-x:hidden !important;
  }

  #campingDialog .form-sheet,
  #campingVisitDialog .form-sheet,
  #campingCommunicationDialog .form-sheet,
  #campingReviewSourceDialog .form-sheet,
  #campingReviewImportDialog .form-sheet{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    height:100dvh;
    max-height:100dvh !important;
    margin:0 !important;
    border-radius:0 !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
  }

  #campingDialog form,
  #campingVisitDialog form,
  #campingCommunicationDialog form,
  #campingReviewSourceDialog form,
  #campingReviewImportDialog form{
    grid-template-columns:1fr !important;
    padding-left:14px !important;
    padding-right:14px !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }

  #campingDialog label,
  #campingVisitDialog label,
  #campingCommunicationDialog label,
  #campingReviewSourceDialog label,
  #campingReviewImportDialog label{
    grid-column:auto !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  #campingDialog input,
  #campingDialog select,
  #campingDialog textarea,
  #campingVisitDialog input,
  #campingVisitDialog select,
  #campingVisitDialog textarea,
  #campingCommunicationDialog input,
  #campingCommunicationDialog select,
  #campingCommunicationDialog textarea,
  #campingReviewSourceDialog input,
  #campingReviewSourceDialog select,
  #campingReviewSourceDialog textarea,
  #campingReviewImportDialog input,
  #campingReviewImportDialog select,
  #campingReviewImportDialog textarea{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    font-size:16px !important; /* voorkomt iPhone auto-zoom */
  }

  .phoenix-voice-field,
  .phoenix-voice-controls{
    min-width:0 !important;
    max-width:100% !important;
  }

  .phoenix-voice-hint{
    white-space:normal !important;
    overflow-wrap:anywhere;
  }
}

/* Alpha 94 · e-mail en bijlagen rechtstreeks aan communicatie koppelen */
.camping-communication-files>small{color:var(--muted,#66766f);line-height:1.4}
.camping-communication-file-preview{display:grid;gap:7px;margin-top:2px;padding:10px;border:1px solid var(--line,#dfe7e2);border-radius:11px;background:var(--surface-soft,#f5f8f6)}
.camping-communication-file-preview>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.camping-communication-file-preview strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camping-communication-file-preview small{color:var(--muted,#66766f)}
.camping-communication-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.camping-communication-attachments .camping-media-open{min-height:38px}
@media(max-width:700px){.camping-communication-file-preview>div{grid-template-columns:auto minmax(0,1fr)}.camping-communication-file-preview small{grid-column:2}.camping-communication-attachments{display:grid}.camping-communication-attachments .camping-media-open{width:100%;min-height:44px}}

/* Alpha 95 · Campingfoto's & sfeerimpressie */
.camping-card.has-photo{padding:0;overflow:hidden}.camping-card-body{padding:18px;display:flex;flex-direction:column;gap:10px;flex:1}.camping-card:not(.has-photo) .camping-card-body{padding:0}.camping-card-cover{display:block;width:100%;height:165px;border:0;padding:0;margin:0;overflow:hidden;background:var(--surface-soft,#eef3ef);cursor:pointer;border-radius:0}.camping-card-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .22s ease}.camping-card-cover:hover img{transform:scale(1.025)}
.camping-photo-actions-inline{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.camping-photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.camping-photo-tile{border:1px solid var(--line,#dfe7e2);border-radius:16px;overflow:hidden;background:var(--surface,#fff);min-width:0}.camping-photo-tile.is-cover{box-shadow:0 0 0 2px var(--brand,#1f6f50) inset}.camping-photo-image{display:block;width:100%;height:170px;border:0;padding:0;background:var(--surface-soft,#eef3ef);cursor:pointer;overflow:hidden}.camping-photo-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.camping-photo-image:hover img{transform:scale(1.02)}.camping-photo-meta{padding:10px;display:grid;gap:5px}.camping-photo-meta strong{overflow-wrap:anywhere}.camping-photo-meta small{color:var(--muted,#68766f)}.camping-photo-meta>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.camping-photo-cover-button,.camping-photo-meta a,.camping-photo-delete-button{border:1px solid var(--line,#dfe7e2);background:var(--surface,#fff);border-radius:9px;padding:6px 8px;min-height:34px;font:inherit;font-size:.78rem;font-weight:750;color:inherit;text-decoration:none;cursor:pointer}.camping-photo-delete-button{color:#a62f2f;border-color:rgba(166,47,47,.28)}.camping-photo-delete-button:hover{background:rgba(166,47,47,.08)}.camping-photo-tile.is-cover .camping-photo-cover-button{background:rgba(39,92,63,.09)}.camping-photo-empty{grid-column:1/-1;min-height:150px;border:1px dashed var(--line,#cfd9d3);border-radius:16px;display:grid;place-items:center;text-align:center;padding:24px;background:rgba(39,92,63,.025)}.camping-photo-empty span{font-size:2rem}.camping-photo-empty strong{display:block;margin-top:4px}.camping-photo-empty p{margin:3px 0 0;color:var(--muted,#68766f)}
.camping-photo-import-sheet{width:min(1040px,96vw);max-height:92vh;display:flex;flex-direction:column}.camping-photo-import-sheet>header{align-items:flex-start}.camping-photo-import-subtitle{margin:5px 0 0;color:var(--muted,#68766f);max-width:760px}.camping-photo-import-body{padding:16px 20px 20px;overflow:auto;min-height:240px}.camping-photo-import-status{padding:11px 13px;border-radius:12px;background:var(--surface-soft,#f4f7f5);border:1px solid var(--line,#dfe7e2);margin-bottom:14px}.camping-photo-import-status.loading{font-weight:750}.camping-photo-import-status.success{background:rgba(38,131,72,.08);border-color:rgba(38,131,72,.22)}.camping-photo-import-status.error{background:rgba(170,45,45,.08);border-color:rgba(170,45,45,.24)}.camping-photo-import-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.camping-photo-candidate{position:relative;display:grid;border:1px solid var(--line,#dfe7e2);border-radius:15px;overflow:hidden;background:var(--surface,#fff);cursor:pointer}.camping-photo-candidate>input{position:absolute;opacity:0;pointer-events:none}.camping-photo-candidate img{display:block;width:100%;height:175px;object-fit:cover;background:var(--surface-soft,#eef3ef)}.camping-photo-candidate-copy{display:grid;gap:3px;padding:9px 10px}.camping-photo-candidate-copy strong{font-size:.9rem;overflow-wrap:anywhere}.camping-photo-candidate-copy small{font-size:.75rem;color:var(--muted,#68766f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.camping-photo-candidate-check{position:absolute;top:9px;right:9px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);border:2px solid rgba(21,67,46,.28);color:transparent;font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.15)}.camping-photo-candidate:has(input:checked){box-shadow:0 0 0 3px var(--brand,#1f6f50) inset;border-color:var(--brand,#1f6f50)}.camping-photo-candidate:has(input:checked) .camping-photo-candidate-check{background:var(--brand,#1f6f50);border-color:var(--brand,#1f6f50);color:#fff}.camping-photo-import-sheet>footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--line,#dfe7e2)}
@media(max-width:760px){.camping-photo-gallery,.camping-photo-import-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camping-photo-import-sheet{width:100vw;height:100vh;max-height:100vh;border-radius:0}.camping-photo-import-body{padding:12px}.camping-photo-import-sheet>footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.camping-photo-import-sheet>footer button{flex:1 1 140px;min-height:46px}.camping-photo-image,.camping-photo-candidate img{height:145px}}
@media(max-width:430px){.camping-photo-gallery,.camping-photo-import-grid{grid-template-columns:1fr 1fr;gap:8px}.camping-photo-image,.camping-photo-candidate img{height:125px}.camping-photo-meta{padding:8px}.camping-photo-meta>div{display:grid}.camping-photo-cover-button,.camping-photo-meta a,.camping-photo-delete-button{width:100%;text-align:center}.camping-card-cover{height:150px}}


/* Phoenix Alpha 98 - nette desktop/mobile layout websitefoto-import */
#campingPhotoImportDialog.sheet-backdrop{
  padding:24px !important;
  place-items:center !important;
  overflow:hidden;
  background:rgba(8,28,19,.62);
  backdrop-filter:blur(9px);
}
#campingPhotoImportDialog .camping-photo-import-sheet{
  width:min(1040px,96vw);
  height:min(820px,90dvh);
  max-height:90dvh;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:var(--surface,#fff);
  color:var(--text,#173126);
  border:1px solid var(--line,#dfe7e2);
  border-radius:24px;
  box-shadow:0 32px 90px rgba(0,0,0,.30);
}
#campingPhotoImportDialog .camping-photo-import-sheet>header{
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:19px 22px 16px;
  border-bottom:1px solid var(--line,#dfe7e2);
  background:var(--surface,#fff);
  position:relative;
  z-index:3;
}
#campingPhotoImportDialog .camping-photo-import-sheet>header h2{
  margin:2px 0 0;
}
#campingPhotoImportDialog .camping-photo-import-sheet>header .eyebrow{
  margin:0;
}
#campingPhotoImportDialog .camping-photo-import-subtitle{
  margin:6px 0 0;
  color:var(--muted,#68766f);
  line-height:1.4;
}
#campingPhotoImportDialog #closeCampingPhotoImport{
  flex:0 0 auto;
  width:38px;
  height:38px;
  min-width:38px;
  border-radius:11px;
  border:1px solid var(--line,#dfe7e2);
  background:var(--surface-soft,#f4f7f5);
  color:var(--text,#173126);
  font-size:1.25rem;
  line-height:1;
  cursor:pointer;
}
#campingPhotoImportDialog .camping-photo-import-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:16px 20px 20px;
  background:var(--surface,#fff);
  scrollbar-gutter:stable;
}
#campingPhotoImportDialog .camping-photo-import-grid{
  align-items:start;
}
#campingPhotoImportDialog .camping-photo-candidate{
  min-width:0;
}
#campingPhotoImportDialog .camping-photo-candidate img{
  width:100%;
  aspect-ratio:16/9;
  height:auto;
  min-height:150px;
  max-height:190px;
  object-fit:cover;
}
#campingPhotoImportDialog .camping-photo-import-sheet>footer{
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:13px 20px;
  border-top:1px solid var(--line,#dfe7e2);
  background:var(--surface,#fff);
  position:relative;
  z-index:3;
  box-shadow:0 -8px 20px rgba(20,50,35,.04);
}
#campingPhotoImportDialog .camping-photo-import-sheet>footer button{
  min-height:42px;
}
.dark #campingPhotoImportDialog .camping-photo-import-sheet,
.dark #campingPhotoImportDialog .camping-photo-import-sheet>header,
.dark #campingPhotoImportDialog .camping-photo-import-body,
.dark #campingPhotoImportDialog .camping-photo-import-sheet>footer{
  background:var(--surface);
  color:var(--text);
}

@media(max-width:760px){
  #campingPhotoImportDialog.sheet-backdrop{
    padding:0 !important;
    place-items:end center !important;
  }
  #campingPhotoImportDialog .camping-photo-import-sheet{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
    border-left:0;
    border-right:0;
  }
  #campingPhotoImportDialog .camping-photo-import-sheet>header{
    padding:14px 14px 12px;
  }
  #campingPhotoImportDialog .camping-photo-import-body{
    padding:12px;
  }
  #campingPhotoImportDialog .camping-photo-import-sheet>footer{
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  #campingPhotoImportDialog .camping-photo-import-sheet>footer button{
    width:100%;
    min-height:46px;
  }
  #campingPhotoImportDialog .camping-photo-candidate img{
    min-height:120px;
    max-height:150px;
  }
}
@media(max-width:430px){
  #campingPhotoImportDialog .camping-photo-import-sheet>footer{
    grid-template-columns:1fr;
  }
}

/* Alpha 99 - foutbestendige campingfoto's */
.camping-photo-image{position:relative;overflow:hidden}
.camping-photo-broken{
  width:100%;
  aspect-ratio:16/9;
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:16px;
  text-align:center;
  background:var(--surface-soft,#f4f7f5);
  color:var(--muted,#68766f);
}
.camping-photo-broken[hidden]{display:none!important}
.camping-photo-broken>span,.camping-photo-broken:first-letter{font-size:1.5rem}
.camping-photo-broken strong{color:var(--text,#173126)}
.camping-photo-broken small{max-width:220px;line-height:1.35}

/* Alpha 101 - slimme jaarplaatsmail */
.camping-mail-primary{
  border-color:rgba(28,112,73,.35)!important;
  background:rgba(39,125,83,.09)!important;
  color:var(--accent,#176744)!important;
  font-weight:850!important;
}
.camping-yearpitch-mail-sheet{
  width:min(880px,96vw);
  max-height:94dvh;
  overflow:auto;
}
.camping-yearpitch-mail-sheet form{
  grid-template-columns:1fr;
}
.camping-yearpitch-mail-camping{
  margin:4px 0 0;
  color:var(--muted,#66766f);
}
.camping-yearpitch-mail-sheet textarea{
  min-height:360px;
  line-height:1.55;
  resize:vertical;
}
.camping-yearpitch-mail-help{
  display:grid;
  gap:5px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--line,#dfe7e2);
  background:var(--surface-soft,#f5f8f6);
  color:var(--muted,#66766f);
  line-height:1.45;
}
.camping-yearpitch-mail-help strong{color:var(--text,#173126)}
.camping-yearpitch-mail-footer{
  display:flex!important;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
@media(max-width:700px){
  .camping-yearpitch-mail-sheet{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
  }
  .camping-yearpitch-mail-sheet textarea{min-height:44dvh}
  .camping-yearpitch-mail-footer{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;
  }
  .camping-yearpitch-mail-footer button{width:100%;min-height:46px}
  .camping-yearpitch-mail-footer .primary-action{grid-column:1/-1}
}


/* Alpha 104 - nette layout slimme jaarplaatsmail */
#campingYearPitchMailDialog.sheet-backdrop{
  padding:24px !important;
  place-items:center !important;
  overflow:hidden;
  background:rgba(8,28,19,.64);
  backdrop-filter:blur(9px);
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet{
  width:min(900px,96vw);
  height:min(860px,92dvh);
  max-height:92dvh;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border-radius:24px;
  border:1px solid var(--line,#dfe7e2);
  background:var(--surface,#fff);
  box-shadow:0 32px 90px rgba(0,0,0,.30);
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet>header{
  flex:0 0 auto;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding:20px 22px 16px;
  border-bottom:1px solid var(--line,#dfe7e2);
  background:var(--surface,#fff);
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet>header h2{
  margin:2px 0 0;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet>header .eyebrow{
  margin:0;
}
#campingYearPitchMailDialog #closeCampingYearPitchMail{
  flex:0 0 auto;
  width:40px;
  height:40px;
  min-width:40px;
  border-radius:11px;
  border:1px solid var(--line,#dfe7e2);
  background:var(--surface-soft,#f4f7f5);
  color:var(--text,#173126);
  font-size:1.25rem;
  line-height:1;
  cursor:pointer;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet form{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  padding:18px 22px 20px;
  background:var(--surface,#fff);
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet label.wide,
#campingYearPitchMailDialog .camping-yearpitch-mail-help,
#campingYearPitchMailDialog .camping-yearpitch-mail-footer{
  grid-column:1 / -1;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet label{
  display:grid;
  gap:7px;
  min-width:0;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet label>span{
  font-weight:800;
  color:var(--text,#173126);
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet input,
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--line,#d8e2dc);
  border-radius:12px;
  background:var(--surface,#fff);
  color:var(--text,#173126);
  font:inherit;
  padding:11px 12px;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet input{
  min-height:44px;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-sheet textarea{
  min-height:330px;
  max-height:46dvh;
  line-height:1.55;
  resize:vertical;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-help{
  margin-top:2px;
  padding:13px 15px;
  border-radius:14px;
  border:1px solid var(--line,#dfe7e2);
  background:var(--surface-soft,#f4f7f5);
}
#campingYearPitchMailDialog .camping-yearpitch-mail-footer{
  position:sticky;
  bottom:-20px;
  z-index:4;
  margin:0 -22px -20px;
  padding:13px 22px;
  display:flex !important;
  justify-content:flex-end;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  border-top:1px solid var(--line,#dfe7e2);
  background:var(--surface,#fff);
  box-shadow:0 -8px 20px rgba(20,50,35,.05);
}
#campingYearPitchMailDialog .camping-yearpitch-mail-footer button{
  min-height:42px;
  border-radius:10px;
  padding:9px 13px;
}
#campingYearPitchMailDialog .camping-yearpitch-mail-footer .primary-action{
  background:var(--accent,#176744);
  color:#fff;
  border-color:var(--accent,#176744);
}
.dark #campingYearPitchMailDialog .camping-yearpitch-mail-sheet,
.dark #campingYearPitchMailDialog .camping-yearpitch-mail-sheet>header,
.dark #campingYearPitchMailDialog .camping-yearpitch-mail-sheet form,
.dark #campingYearPitchMailDialog .camping-yearpitch-mail-footer{
  background:var(--surface);
  color:var(--text);
}

@media(max-width:760px){
  #campingYearPitchMailDialog.sheet-backdrop{
    padding:0 !important;
    place-items:end center !important;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-sheet{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
    border-left:0;
    border-right:0;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-sheet>header{
    padding:14px 14px 12px;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-sheet form{
    grid-template-columns:1fr;
    gap:12px;
    padding:13px 14px 16px;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-sheet textarea{
    min-height:42dvh;
    max-height:none;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-footer{
    margin:0 -14px -16px;
    bottom:-16px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    display:grid !important;
    grid-template-columns:1fr 1fr;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-footer button{
    width:100%;
    min-height:46px;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-footer .primary-action{
    grid-column:1 / -1;
  }
}
@media(max-width:430px){
  #campingYearPitchMailDialog .camping-yearpitch-mail-footer{
    grid-template-columns:1fr;
  }
  #campingYearPitchMailDialog .camping-yearpitch-mail-footer .primary-action{
    grid-column:auto;
  }
}

/* Alpha 105 - Gmail instellingen */
#phoenixMailSettingsDialog.sheet-backdrop{padding:24px!important;place-items:center!important;background:rgba(8,28,19,.64);backdrop-filter:blur(9px)}
#phoenixMailSettingsDialog .phoenix-mail-settings-sheet{width:min(720px,96vw);max-height:90dvh;overflow:hidden;display:flex;flex-direction:column;border-radius:22px;background:var(--surface,#fff)}
#phoenixMailSettingsDialog .phoenix-mail-settings-sheet>header{display:flex;justify-content:space-between;gap:18px;padding:19px 21px 15px;border-bottom:1px solid var(--line,#dfe7e2)}
#phoenixMailSettingsDialog .phoenix-mail-settings-sheet>header h2{margin:2px 0 0}
#phoenixMailSettingsDialog .phoenix-mail-settings-subtitle{margin:5px 0 0;color:var(--muted,#66766f);line-height:1.4}
#phoenixMailSettingsDialog .phoenix-mail-settings-sheet>header button{width:40px;height:40px;min-width:40px;border-radius:11px}
#phoenixMailSettingsDialog form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 21px 20px;overflow:auto}
#phoenixMailSettingsDialog form .wide,#phoenixMailSettingsDialog form footer{grid-column:1/-1}
#phoenixMailSettingsDialog label{display:grid;gap:7px}
#phoenixMailSettingsDialog label>span{font-weight:800}
#phoenixMailSettingsDialog label small{color:var(--muted,#66766f)}
#phoenixMailSettingsDialog input,#phoenixMailSettingsDialog select{width:100%;box-sizing:border-box;min-height:44px;border:1px solid var(--line,#d8e2dc);border-radius:11px;background:var(--surface,#fff);color:var(--text,#173126);padding:10px 11px;font:inherit}
#phoenixMailSettingsDialog .phoenix-mail-settings-info{padding:12px 14px;border:1px solid var(--line,#dfe7e2);border-radius:12px;background:var(--surface-soft,#f4f7f5);display:grid;gap:5px;color:var(--muted,#66766f)}
#phoenixMailSettingsDialog .phoenix-mail-settings-info strong{color:var(--text,#173126)}
#phoenixMailSettingsDialog footer{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:5px}
@media(max-width:650px){
  #phoenixMailSettingsDialog.sheet-backdrop{padding:0!important;place-items:end center!important}
  #phoenixMailSettingsDialog .phoenix-mail-settings-sheet{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
  #phoenixMailSettingsDialog form{grid-template-columns:1fr;padding:14px}
  #phoenixMailSettingsDialog form .wide,#phoenixMailSettingsDialog form footer{grid-column:auto}
  #phoenixMailSettingsDialog footer{display:grid;grid-template-columns:1fr}
  #phoenixMailSettingsDialog footer button{width:100%;min-height:46px}
}

/* Alpha 106 - CosmicWorld/eigen SMTP */
#phoenixMailSettingsDialog .phoenix-mail-settings-sheet{width:min(760px,96vw)}

/* Alpha 107 - antwoordkoppeling */
.camping-yearpitch-reference{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 10px;
  align-items:center;
  padding:10px 13px;
  border:1px dashed rgba(23,103,68,.35);
  border-radius:12px;
  background:rgba(39,125,83,.06);
}
.camping-yearpitch-reference>span{font-weight:750;color:var(--muted,#66766f)}
.camping-yearpitch-reference>strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--accent,#176744)}
.camping-yearpitch-reference>small{grid-column:1/-1;color:var(--muted,#66766f)}
.phoenix-mail-settings-section{
  display:grid;
  gap:5px;
  padding:11px 13px;
  border-radius:12px;
  background:rgba(39,125,83,.06);
  border:1px solid rgba(39,125,83,.16);
}

/* Alpha 109 - compacte e-mailconversaties */
.camping-email-message{
  margin-top:8px;
  display:grid;
  gap:8px;
}
.camping-email-message-flags{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.camping-email-message-flags>span{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:3px 8px;
  border-radius:999px;
  background:var(--surface-soft,#f3f7f4);
  border:1px solid var(--line,#dfe7e2);
  color:var(--muted,#66766f);
  font-size:.76rem;
  font-weight:800;
}
.camping-email-message.incoming .camping-email-message-flags>span{
  background:rgba(39,125,83,.08);
  border-color:rgba(39,125,83,.18);
  color:var(--accent,#176744);
}
.camping-email-message-flags code{
  padding:3px 7px;
  border-radius:7px;
  background:rgba(32,74,54,.06);
  color:var(--muted,#66766f);
  font-size:.72rem;
}
.camping-email-current{
  margin:0!important;
  white-space:normal;
  line-height:1.55;
}
.camping-email-history{
  margin-top:2px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:10px;
  background:var(--surface-soft,#f5f8f6);
  overflow:hidden;
}
.camping-email-history>summary{
  cursor:pointer;
  padding:8px 10px;
  color:var(--muted,#66766f);
  font-size:.8rem;
  font-weight:800;
  user-select:none;
}
.camping-email-history>div{
  max-height:300px;
  overflow:auto;
  padding:10px;
  border-top:1px solid var(--line,#dfe7e2);
  font-size:.82rem;
  line-height:1.45;
  color:var(--muted,#66766f);
  background:var(--surface,#fff);
}


/* Alpha 111 - Phoenix Mail basis */
.phoenix-mail-page{display:grid;gap:14px}
.phoenix-mail-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.phoenix-mail-page-head h2{margin:2px 0 4px;font-size:1.55rem}
.phoenix-mail-page-head p{margin:0;color:var(--muted,#66766f)}
.phoenix-mail-page-actions{display:flex;gap:8px;flex-wrap:wrap}
.phoenix-mail-statusbar{display:flex;justify-content:space-between;gap:12px;padding:9px 13px;border:1px solid var(--line,#dfe7e2);border-radius:12px;background:var(--surface-soft,#f4f7f5);font-size:.82rem;color:var(--muted,#66766f)}
.phoenix-mail-statusbar span:first-child{font-weight:850;color:var(--text,#173126)}
.phoenix-mail-layout{display:grid;grid-template-columns:180px minmax(280px,380px) minmax(0,1fr);min-height:620px;max-height:calc(100dvh - 240px);border:1px solid var(--line,#dfe7e2);border-radius:18px;overflow:hidden;background:var(--surface,#fff)}
.phoenix-mail-folders{display:flex;flex-direction:column;gap:4px;padding:12px;border-right:1px solid var(--line,#dfe7e2);background:var(--surface-soft,#f7f9f8)}
.phoenix-mail-folders button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;text-align:left;min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--text,#173126);padding:8px 10px;font:inherit;cursor:pointer}
.phoenix-mail-folders button.active{background:rgba(39,125,83,.11);color:var(--accent,#176744);font-weight:850}
.phoenix-mail-folders button:disabled{opacity:.46;cursor:default}
.phoenix-mail-folders em{font-style:normal;font-size:.75rem}
.phoenix-mail-list-pane{min-width:0;border-right:1px solid var(--line,#dfe7e2);display:flex;flex-direction:column}
.phoenix-mail-list-toolbar{padding:10px;border-bottom:1px solid var(--line,#dfe7e2)}
.phoenix-mail-list-toolbar input{width:100%;box-sizing:border-box;min-height:40px;border:1px solid var(--line,#d8e2dc);border-radius:10px;padding:8px 10px;background:var(--surface,#fff);color:var(--text,#173126);font:inherit}
.phoenix-mail-list{overflow:auto;flex:1}
.phoenix-mail-list-item{width:100%;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:7px;align-items:start;text-align:left;padding:12px 10px;border:0;border-bottom:1px solid var(--line,#edf1ee);background:var(--surface,#fff);color:var(--text,#173126);cursor:pointer}
.phoenix-mail-list-item:hover,.phoenix-mail-list-item.active{background:var(--surface-soft,#f4f7f5)}
.phoenix-mail-list-item.active{box-shadow:inset 3px 0 0 var(--accent,#176744)}
.phoenix-mail-unread-dot{color:var(--accent,#176744);font-size:.65rem;padding-top:3px}
.phoenix-mail-list-main{min-width:0;display:grid;gap:2px}
.phoenix-mail-list-main strong,.phoenix-mail-list-main b,.phoenix-mail-list-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phoenix-mail-list-main strong{font-size:.88rem;font-weight:800}
.phoenix-mail-list-main b{font-size:.82rem;font-weight:650}
.phoenix-mail-list-main small{font-size:.72rem;color:var(--muted,#66766f);min-height:1em}
.phoenix-mail-list-item.unseen .phoenix-mail-list-main strong,.phoenix-mail-list-item.unseen .phoenix-mail-list-main b{font-weight:900}
.phoenix-mail-list-item time{font-size:.7rem;color:var(--muted,#66766f);white-space:nowrap}
.phoenix-mail-reader-pane{min-width:0;overflow:auto;background:var(--surface,#fff)}
.phoenix-mail-reader-empty,.phoenix-mail-reader-loading,.phoenix-mail-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;padding:24px;color:var(--muted,#66766f)}
.phoenix-mail-reader-empty>span{font-size:2rem}
.phoenix-mail-reader{padding:20px;display:grid;gap:14px}
.phoenix-mail-reader>header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--line,#dfe7e2)}
.phoenix-mail-reader h3{margin:0 0 8px;font-size:1.15rem}
.phoenix-mail-reader header p{margin:0;color:var(--muted,#66766f);line-height:1.55;font-size:.82rem}
.phoenix-mail-reader-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.phoenix-mail-link-badge{justify-self:start;padding:6px 9px;border-radius:999px;background:rgba(39,125,83,.09);border:1px solid rgba(39,125,83,.18);color:var(--accent,#176744);font-size:.78rem;font-weight:800}
.phoenix-mail-body{font-size:.92rem;line-height:1.62;overflow-wrap:anywhere}
.phoenix-mail-compose-sheet{width:min(820px,96vw);max-height:92dvh;overflow:hidden;display:flex;flex-direction:column;border-radius:22px}
.phoenix-mail-compose-sheet>header{display:flex;justify-content:space-between;gap:16px;padding:18px 21px 15px;border-bottom:1px solid var(--line,#dfe7e2)}
.phoenix-mail-compose-sheet>header h2{margin:2px 0 0}
.phoenix-mail-compose-sheet>header p:last-child{margin:4px 0 0;color:var(--muted,#66766f)}
.phoenix-mail-compose-sheet form{display:grid;grid-template-columns:1fr;gap:13px;padding:18px 21px 20px;overflow:auto}
.phoenix-mail-compose-sheet label{display:grid;gap:6px}.phoenix-mail-compose-sheet label>span{font-weight:800}
.phoenix-mail-compose-sheet input,.phoenix-mail-compose-sheet textarea{width:100%;box-sizing:border-box;border:1px solid var(--line,#d8e2dc);border-radius:11px;background:var(--surface,#fff);color:var(--text,#173126);padding:10px 11px;font:inherit}
.phoenix-mail-compose-sheet input{min-height:43px}.phoenix-mail-compose-sheet textarea{min-height:330px;resize:vertical;line-height:1.5}
.phoenix-mail-compose-sheet footer{display:flex;justify-content:flex-end;gap:8px}
@media(max-width:1000px){.phoenix-mail-layout{grid-template-columns:150px minmax(250px,330px) minmax(0,1fr)}}
@media(max-width:760px){
  .phoenix-mail-page-head{align-items:flex-start;flex-direction:column}
  .phoenix-mail-layout{display:block;max-height:none;min-height:0;border-radius:14px}
  .phoenix-mail-folders{display:flex;flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--line,#dfe7e2)}
  .phoenix-mail-folders button{min-width:max-content}
  .phoenix-mail-list-pane{border-right:0;min-height:360px}
  .phoenix-mail-reader-pane{border-top:1px solid var(--line,#dfe7e2);min-height:360px}
  .phoenix-mail-compose-sheet{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
  .phoenix-mail-compose-sheet textarea{min-height:48dvh}
}


/* Alpha 112 - mail selecteren en verwijderen */
.phoenix-mail-list-toolbar{
  display:grid!important;
  grid-template-columns:auto minmax(150px,1fr) auto auto;
  gap:8px;
  align-items:center;
}
.phoenix-mail-select-all{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:800;white-space:nowrap}
.phoenix-mail-select-all input{width:auto!important;min-height:0!important}
.phoenix-mail-searchbox{min-width:0}
.phoenix-mail-list-item{
  padding:0!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  gap:0!important;
  align-items:stretch!important;
}
.phoenix-mail-item-check{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:15px 7px 0 10px;
}
.phoenix-mail-item-check input{width:16px;height:16px}
.phoenix-mail-list-open{
  width:100%;
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  gap:7px;
  align-items:start;
  text-align:left;
  padding:12px 10px 12px 3px;
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
}
.phoenix-mail-list-item:hover,.phoenix-mail-list-item.active{background:var(--surface-soft,#f4f7f5)}
.danger-action{
  border-color:rgba(166,47,47,.28)!important;
  color:#a62f2f!important;
  background:rgba(166,47,47,.05)!important;
}
.danger-action:hover{background:rgba(166,47,47,.10)!important}
@media(max-width:1050px){
  .phoenix-mail-list-toolbar{grid-template-columns:1fr 1fr}
  .phoenix-mail-searchbox{grid-column:1/-1;grid-row:1}
}
@media(max-width:760px){
  .phoenix-mail-list-toolbar{grid-template-columns:1fr}
  .phoenix-mail-searchbox{grid-column:auto;grid-row:auto}
  .phoenix-mail-list-toolbar>button{width:100%}
}


/* Alpha 115 - Phoenix Mail schrijfvenster volledig gestyled */
#phoenixMailComposeDialog.sheet-backdrop{
  padding:24px!important;
  place-items:center!important;
  background:rgba(8,28,19,.64)!important;
  backdrop-filter:blur(9px)!important;
  z-index:120!important;
}
#phoenixMailComposeDialog .phoenix-mail-compose-sheet{
  width:min(820px,94vw)!important;
  max-height:90dvh!important;
  margin:0!important;
  background:var(--surface,#fff)!important;
  color:var(--text,#173126)!important;
  border:1px solid var(--line,#dfe7e2)!important;
  border-radius:22px!important;
  box-shadow:0 30px 90px rgba(0,0,0,.34)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
#phoenixMailComposeDialog .phoenix-mail-compose-sheet>header{
  flex:0 0 auto;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:16px!important;
  padding:18px 21px 15px!important;
  background:var(--surface,#fff)!important;
  color:var(--text,#173126)!important;
  border-bottom:1px solid var(--line,#dfe7e2)!important;
}
#phoenixMailComposeDialog .phoenix-mail-compose-sheet>header .eyebrow{
  margin:0 0 2px!important;
  color:var(--accent,#176744)!important;
}
#phoenixMailComposeDialog .phoenix-mail-compose-sheet>header h2{
  margin:0!important;
  color:var(--text,#173126)!important;
  font-size:1.45rem!important;
}
#phoenixMailComposeDialog .phoenix-mail-compose-sheet>header p:last-child{
  margin:5px 0 0!important;
  color:var(--muted,#66766f)!important;
  line-height:1.4!important;
}
#phoenixMailComposeDialog #closePhoenixMailCompose{
  flex:0 0 40px!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  border:1px solid var(--line,#dfe7e2)!important;
  border-radius:11px!important;
  background:var(--surface-soft,#f4f7f5)!important;
  color:var(--text,#173126)!important;
  font-size:1.2rem!important;
  cursor:pointer!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:13px!important;
  padding:18px 21px 20px!important;
  background:var(--surface,#fff)!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm label{
  display:grid!important;
  gap:6px!important;
  color:var(--text,#173126)!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm label>span{
  display:block!important;
  color:var(--text,#173126)!important;
  font-weight:800!important;
  opacity:1!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm input,
#phoenixMailComposeDialog #phoenixMailComposeForm textarea{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  border:1px solid var(--line,#d8e2dc)!important;
  border-radius:11px!important;
  background:var(--surface,#fff)!important;
  color:var(--text,#173126)!important;
  padding:10px 11px!important;
  font:inherit!important;
  opacity:1!important;
  outline:none!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm input{
  min-height:44px!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm textarea{
  min-height:330px!important;
  resize:vertical!important;
  line-height:1.55!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm input:focus,
#phoenixMailComposeDialog #phoenixMailComposeForm textarea:focus{
  border-color:var(--accent,#176744)!important;
  box-shadow:0 0 0 3px rgba(23,103,68,.12)!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm>footer{
  position:sticky!important;
  bottom:-20px!important;
  z-index:2!important;
  display:flex!important;
  justify-content:flex-end!important;
  gap:8px!important;
  margin:3px -21px -20px!important;
  padding:12px 21px!important;
  background:var(--surface,#fff)!important;
  border-top:1px solid var(--line,#dfe7e2)!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm>footer button{
  min-height:43px!important;
}
@media(max-width:700px){
  #phoenixMailComposeDialog.sheet-backdrop{
    padding:0!important;
    place-items:end center!important;
  }
  #phoenixMailComposeDialog .phoenix-mail-compose-sheet{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
    border:0!important;
  }
  #phoenixMailComposeDialog .phoenix-mail-compose-sheet>header{
    padding:15px 16px!important;
  }
  #phoenixMailComposeDialog #phoenixMailComposeForm{
    padding:14px 16px 16px!important;
  }
  #phoenixMailComposeDialog #phoenixMailComposeForm textarea{
    min-height:48dvh!important;
  }
  #phoenixMailComposeDialog #phoenixMailComposeForm>footer{
    margin:2px -16px -16px!important;
    padding:11px 16px!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
  #phoenixMailComposeDialog #phoenixMailComposeForm>footer button{
    width:100%!important;
    min-height:48px!important;
  }
}


/* Alpha 118 - Phoenix Mail bijlagen en foto's */
.phoenix-mail-compose-media{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:12px;
  background:var(--surface-soft,#f7f9f8);
}
.phoenix-mail-compose-media-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.phoenix-mail-compose-media-actions small{
  margin-left:auto;
  color:var(--muted,#66766f);
  font-size:.76rem;
}
.phoenix-mail-compose-file-list{display:grid;gap:7px}
.phoenix-mail-compose-file{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  gap:9px;
  align-items:center;
  min-height:48px;
  padding:8px 9px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:10px;
  background:var(--surface,#fff);
}
.phoenix-mail-compose-file-icon{font-size:1.2rem}
.phoenix-mail-compose-file-main{min-width:0;display:grid;gap:2px}
.phoenix-mail-compose-file-main strong,
.phoenix-mail-compose-file-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phoenix-mail-compose-file-main small{color:var(--muted,#66766f);font-size:.73rem}
.phoenix-mail-compose-file-badge{
  padding:4px 7px;
  border-radius:999px;
  background:rgba(39,125,83,.10);
  border:1px solid rgba(39,125,83,.18);
  color:var(--accent,#176744);
  font-size:.7rem;
  font-weight:850;
}
.phoenix-mail-compose-file-remove{
  width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;
  padding:0!important;border-radius:8px!important;font-size:1rem!important;
}
@media(max-width:700px){
  .phoenix-mail-compose-media-actions{display:grid;grid-template-columns:1fr 1fr}
  .phoenix-mail-compose-media-actions small{grid-column:1/-1;margin-left:0}
  .phoenix-mail-compose-file{grid-template-columns:auto minmax(0,1fr) auto}
  .phoenix-mail-compose-file-badge{display:none}
}


/* Alpha 119 - bijlageknoppen altijd zichtbaar */
.phoenix-mail-compose-media{
  margin-top:0;
}
#phoenixMailComposeDialog #phoenixMailComposeForm>footer{
  align-items:center!important;
}
.phoenix-mail-footer-spacer{
  flex:1 1 auto;
}
#phoenixMailFooterAttachment,
#phoenixMailFooterPhoto{
  white-space:nowrap;
}
@media(max-width:700px){
  #phoenixMailComposeDialog #phoenixMailComposeForm>footer{
    grid-template-columns:1fr 1fr!important;
  }
  .phoenix-mail-footer-spacer{display:none}
}


/* Alpha 120 - ontvangen bijlagen */
.phoenix-mail-received-attachments{
  display:grid;
  gap:9px;
  margin-top:8px;
  padding-top:14px;
  border-top:1px solid var(--line,#dfe7e2);
}
.phoenix-mail-received-attachments>div{
  display:grid;
  gap:7px;
}
.phoenix-mail-received-attachment{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:9px 11px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:10px;
  background:var(--surface-soft,#f7f9f8);
  color:var(--text,#173126);
  text-decoration:none;
}
.phoenix-mail-received-attachment:hover{
  border-color:var(--accent,#176744);
  background:rgba(39,125,83,.06);
}
.phoenix-mail-received-attachment>span:first-child{font-size:1.25rem}
.phoenix-mail-received-attachment>span:nth-child(2){
  min-width:0;
  display:grid;
  gap:2px;
}
.phoenix-mail-received-attachment b,
.phoenix-mail-received-attachment small{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.phoenix-mail-received-attachment small{
  color:var(--muted,#66766f);
  font-size:.73rem;
}
.phoenix-mail-received-attachment em{
  font-style:normal;
  font-size:.76rem;
  font-weight:800;
  color:var(--accent,#176744);
}


/* Alpha 121 - inspreken terug in Phoenix Mail */
#phoenixMailComposeDialog .phoenix-mail-voice-field{
  width:100%;
  display:grid;
  gap:8px;
}
#phoenixMailComposeDialog .phoenix-mail-voice-field textarea{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#phoenixMailComposeDialog .phoenix-voice-controls{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex-wrap:wrap!important;
}
#phoenixMailComposeDialog .phoenix-voice-button{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
}
@media(max-width:700px){
  #phoenixMailComposeDialog .phoenix-voice-controls{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  #phoenixMailComposeDialog .phoenix-voice-button{
    width:100%!important;
  }
}


/* Alpha 122 - inspreken zichtbaar + relaties als mailadresboek */
#phoenixMailComposeDialog .phoenix-mail-message-toolbar{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  margin-bottom:7px!important;
}
#phoenixMailComposeDialog .phoenix-mail-message-toolbar .phoenix-voice-button{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  min-height:38px!important;
}
.phoenix-mail-recipient-wrap{
  position:relative;
  width:100%;
}
.phoenix-mail-recipient-wrap>input{
  width:100%;
}
.phoenix-mail-recipient-suggestions{
  position:absolute;
  z-index:140;
  top:calc(100% + 5px);
  left:0;
  right:0;
  max-height:300px;
  overflow:auto;
  padding:5px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:11px;
  background:var(--surface,#fff);
  box-shadow:0 14px 34px rgba(0,0,0,.18);
}
.phoenix-mail-recipient-option{
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:9px;
  align-items:center;
  text-align:left;
  padding:9px 10px!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:var(--text,#173126)!important;
  cursor:pointer;
}
.phoenix-mail-recipient-option:hover,
.phoenix-mail-recipient-option:focus{
  background:var(--surface-soft,#f2f7f4)!important;
}
.phoenix-mail-recipient-avatar{
  font-size:1.2rem;
}
.phoenix-mail-recipient-main{
  min-width:0;
  display:grid;
  gap:1px;
}
.phoenix-mail-recipient-main strong,
.phoenix-mail-recipient-main small,
.phoenix-mail-recipient-main em{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.phoenix-mail-recipient-main small{
  color:var(--muted,#66766f);
  font-size:.75rem;
}
.phoenix-mail-recipient-main em{
  color:var(--accent,#176744);
  font-style:normal;
  font-size:.78rem;
}
.phoenix-mail-recipient-empty{
  padding:10px;
  color:var(--muted,#66766f);
  font-size:.8rem;
}
@media(max-width:700px){
  #phoenixMailComposeDialog .phoenix-mail-message-toolbar{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  #phoenixMailComposeDialog .phoenix-mail-message-toolbar .phoenix-voice-button{
    width:100%!important;
    min-height:44px!important;
  }
}


/* Alpha 125 - ontvangen bijlageviewer */
.phoenix-mail-received-attachment-actions{
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.phoenix-mail-received-attachment-actions button,
.phoenix-mail-received-attachment-actions a{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:5px 8px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:8px;
  background:var(--surface,#fff);
  color:var(--text,#173126);
  text-decoration:none;
  font:inherit;
  font-size:.76rem;
  font-weight:800;
  cursor:pointer;
}
.phoenix-mail-received-attachment-actions button:hover,
.phoenix-mail-received-attachment-actions a:hover{
  border-color:var(--accent,#176744);
  color:var(--accent,#176744);
}
#phoenixMailAttachmentViewer.sheet-backdrop{
  padding:24px!important;
  place-items:center!important;
  z-index:150!important;
  background:rgba(8,28,19,.66)!important;
  backdrop-filter:blur(8px)!important;
}
.phoenix-mail-attachment-viewer-sheet{
  width:min(1050px,96vw);
  height:min(820px,92dvh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line,#dfe7e2);
  border-radius:20px;
  background:var(--surface,#fff);
  box-shadow:0 30px 90px rgba(0,0,0,.38);
}
.phoenix-mail-attachment-viewer-sheet>header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding:16px 18px;
  border-bottom:1px solid var(--line,#dfe7e2);
}
.phoenix-mail-attachment-viewer-sheet>header h2{margin:2px 0 3px}
.phoenix-mail-attachment-viewer-sheet>header p:last-child{
  margin:0;
  color:var(--muted,#66766f);
  font-size:.8rem;
}
#closePhoenixMailAttachmentViewer{
  width:40px;
  height:40px;
  min-width:40px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:10px;
  background:var(--surface-soft,#f4f7f5);
  color:var(--text,#173126);
  font-size:1.2rem;
  cursor:pointer;
}
.phoenix-mail-attachment-viewer-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  display:grid;
  place-items:center;
  background:#eef2ef;
}
.phoenix-mail-attachment-image-wrap{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  padding:18px;
  box-sizing:border-box;
}
.phoenix-mail-attachment-image-wrap img{
  display:block;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
}
.phoenix-mail-attachment-frame{
  width:100%;
  height:100%;
  min-height:600px;
  border:0;
  background:#fff;
}
.phoenix-mail-attachment-no-preview{
  max-width:480px;
  padding:24px;
  text-align:center;
  color:var(--muted,#66766f);
}
.phoenix-mail-attachment-viewer-sheet>footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:11px 16px;
  border-top:1px solid var(--line,#dfe7e2);
  background:var(--surface,#fff);
}
.phoenix-mail-attachment-viewer-sheet>footer a,
.phoenix-mail-attachment-viewer-sheet>footer button{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:8px 12px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:9px;
  background:var(--surface-soft,#f4f7f5);
  color:var(--text,#173126);
  text-decoration:none;
  font:inherit;
  font-weight:800;
}
@media(max-width:700px){
  #phoenixMailAttachmentViewer.sheet-backdrop{padding:0!important}
  .phoenix-mail-attachment-viewer-sheet{
    width:100vw;
    height:100dvh;
    border-radius:0;
    border:0;
  }
  .phoenix-mail-attachment-frame{min-height:calc(100dvh - 150px)}
  .phoenix-mail-received-attachment{
    grid-template-columns:auto minmax(0,1fr)!important;
  }
  .phoenix-mail-received-attachment-actions{
    grid-column:1/-1;
    justify-content:flex-start;
  }
}


/* Alpha 126 - fysieke mailarchivering + koppelen aan Phoenix */
.phoenix-mail-archive-status{
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
  padding:8px 10px;
  margin:0 0 10px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:10px;
  background:var(--surface-soft,#f6f8f7);
  font-size:.78rem;
}
.phoenix-mail-archive-status span{
  display:inline-flex;
  gap:4px;
  align-items:center;
  padding:4px 7px;
  border-radius:999px;
  background:var(--surface,#fff);
  border:1px solid var(--line,#dfe7e2);
}
.phoenix-mail-archive-status .is-archived{
  color:var(--accent,#176744);
  font-weight:800;
}
#phoenixMailLinkDialog.sheet-backdrop{
  z-index:155!important;
  place-items:center!important;
  padding:20px!important;
  background:rgba(8,28,19,.58)!important;
  backdrop-filter:blur(7px)!important;
}
.phoenix-mail-link-sheet{
  width:min(680px,96vw);
  max-height:min(760px,92dvh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line,#dfe7e2);
  border-radius:18px;
  background:var(--surface,#fff);
  box-shadow:0 28px 80px rgba(0,0,0,.35);
}
.phoenix-mail-link-sheet>header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  border-bottom:1px solid var(--line,#dfe7e2);
}
.phoenix-mail-link-sheet>header h2{margin:2px 0}
.phoenix-mail-link-sheet>header p:last-child{margin:0;color:var(--muted,#66766f);font-size:.8rem}
#closePhoenixMailLinkDialog{
  width:40px;height:40px;min-width:40px;
  border:1px solid var(--line,#dfe7e2);border-radius:10px;
  background:var(--surface-soft,#f5f7f6);font-size:1.2rem;cursor:pointer;
}
.phoenix-mail-link-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  padding:16px 18px;
  min-height:0;
  overflow:auto;
}
.phoenix-mail-link-form label{display:grid;gap:5px}
.phoenix-mail-link-form label>span{font-size:.75rem;font-weight:800;color:var(--muted,#66766f)}
.phoenix-mail-link-results{
  grid-column:1/-1;
  display:grid;
  gap:6px;
  max-height:420px;
  overflow:auto;
  padding:2px;
}
.phoenix-mail-link-results button{
  display:grid;
  gap:2px;
  width:100%;
  padding:10px 12px;
  text-align:left;
  border:1px solid var(--line,#dfe7e2);
  border-radius:10px;
  background:var(--surface,#fff);
  color:var(--text,#173126);
  cursor:pointer;
}
.phoenix-mail-link-results button:hover{
  border-color:var(--accent,#176744);
  background:var(--surface-soft,#f2f7f4);
}
.phoenix-mail-link-results small{color:var(--muted,#66766f)}
.phoenix-mail-link-empty,.phoenix-mail-link-saving{
  padding:14px;
  text-align:center;
  color:var(--muted,#66766f);
}
.phoenix-mail-link-saving{
  color:var(--accent,#176744);
  font-weight:800;
}
.phoenix-mail-link-sheet>footer{
  display:flex;
  justify-content:flex-end;
  padding:11px 16px;
  border-top:1px solid var(--line,#dfe7e2);
}
@media(max-width:700px){
  #phoenixMailLinkDialog.sheet-backdrop{padding:0!important}
  .phoenix-mail-link-sheet{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}
  .phoenix-mail-link-form{grid-template-columns:1fr}
  .phoenix-mail-link-results{grid-column:1}
}


/* Alpha 127 - lokaal gekoppelde mails terug in campingdossier */
.camping-communication-entry.archived{
  border-color:rgba(23,103,68,.28);
  background:rgba(23,103,68,.035);
}
.camping-communication-entry.archived .camping-communication-head span{
  color:var(--accent,#176744);
  font-weight:800;
}
#phoenixArchivedMailViewer.sheet-backdrop{
  z-index:160!important;
  place-items:center!important;
  padding:20px!important;
  background:rgba(8,28,19,.62)!important;
  backdrop-filter:blur(8px)!important;
}
.phoenix-archived-mail-sheet{
  width:min(900px,96vw);
  height:min(760px,92dvh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line,#dfe7e2);
  border-radius:18px;
  background:var(--surface,#fff);
  box-shadow:0 28px 85px rgba(0,0,0,.38);
}
.phoenix-archived-mail-sheet>header{
  display:flex;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line,#dfe7e2);
}
.phoenix-archived-mail-sheet>header h2{margin:2px 0}
.phoenix-archived-mail-sheet>header p:last-child{margin:0;color:var(--muted,#66766f);font-size:.78rem}
#closePhoenixArchivedMailViewer{
  width:40px;height:40px;min-width:40px;border:1px solid var(--line,#dfe7e2);border-radius:10px;background:var(--surface-soft,#f5f7f6);font-size:1.2rem;cursor:pointer;
}
.phoenix-archived-mail-body{flex:1;min-height:0;overflow:auto;padding:18px}
.phoenix-archived-mail-message{line-height:1.55;white-space:normal}
.phoenix-archived-mail-attachments{margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#dfe7e2);display:grid;gap:8px}
.phoenix-archived-mail-attachments>div{display:grid;gap:6px}
.phoenix-archived-mail-attachments article{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--line,#dfe7e2);border-radius:9px;
}
.phoenix-archived-mail-attachments article>div:nth-child(2){display:grid;gap:2px;min-width:0}
.phoenix-archived-mail-attachments small{color:var(--muted,#66766f)}
.phoenix-archived-mail-attachments article>div:last-child{display:flex;gap:6px;flex-wrap:wrap}
.phoenix-archived-mail-attachments a{padding:5px 8px;border:1px solid var(--line,#dfe7e2);border-radius:7px;text-decoration:none;color:var(--text,#173126);font-size:.75rem;font-weight:800}
.phoenix-archived-mail-sheet>footer{display:flex;justify-content:flex-end;padding:11px 16px;border-top:1px solid var(--line,#dfe7e2)}
@media(max-width:700px){
  #phoenixArchivedMailViewer.sheet-backdrop{padding:0!important}
  .phoenix-archived-mail-sheet{width:100vw;height:100dvh;border:0;border-radius:0}
  .phoenix-archived-mail-attachments article{grid-template-columns:auto minmax(0,1fr)}
  .phoenix-archived-mail-attachments article>div:last-child{grid-column:1/-1}
}


/* Alpha 129 - gekoppelde mail zichtbaar bij taak */
.record-task-archived-mail{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line,#dfe7e2);
}
.record-task-mail-heading{
  display:grid;
  gap:2px;
  margin-bottom:8px;
}
.record-task-mail-heading small{
  color:var(--muted,#66766f);
  font-size:.76rem;
}
.record-task-archived-mail-list{
  display:grid;
  gap:7px;
}
.record-task-mail-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:9px 10px;
  border:1px solid rgba(23,103,68,.25);
  border-radius:10px;
  background:rgba(23,103,68,.035);
}
.record-task-mail-icon{
  font-size:1.15rem;
}
.record-task-mail-copy{
  min-width:0;
  display:grid;
  gap:2px;
}
.record-task-mail-copy strong,
.record-task-mail-copy small{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.record-task-mail-copy small{
  color:var(--muted,#66766f);
  font-size:.72rem;
}
.record-task-mail-row button{
  white-space:nowrap;
  min-height:34px;
}
@media(max-width:700px){
  .record-task-mail-row{
    grid-template-columns:auto minmax(0,1fr);
  }
  .record-task-mail-row button{
    grid-column:1/-1;
    width:100%;
  }
}


/* Alpha 130 - taakmail ook zichtbaar in onderhoudsbijlagen */
.maintenance-archived-mail-item{
  border-color:rgba(23,103,68,.26)!important;
  background:rgba(23,103,68,.04)!important;
}
.maintenance-archived-mail-item .maintenance-attachment-thumb{
  display:grid;
  place-items:center;
  font-size:1.35rem;
}
.maintenance-archived-mail-item .maintenance-attachment-copy small{
  display:block;
}


/* Alpha 131 - mobiel scherm horizontaal vergrendeld */
@media(max-width:760px){
  html{
    width:100%;
    max-width:100%;
    overflow-x:hidden!important;
    overscroll-behavior-x:none;
  }
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden!important;
    overscroll-behavior-x:none;
    position:relative;
  }
  body>*, .app-shell, .page-shell, .app-layout, main, .view,
  .panel, .hero-card, .cockpit-card, .summary-card,
  .dashboard-columns, .dashboard-overview-grid, .cockpit-grid{
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  main *, .view *, .sheet-backdrop *, .media-dialog-backdrop *{
    box-sizing:border-box;
  }
  main>*, .view>*,
  .panel>*, .hero-card>*, .cockpit-card>*,
  .task-content, .maintenance-attachment-copy,
  .phoenix-mail-recipient-wrap,
  .phoenix-mail-message-toolbar,
  .phoenix-mail-body,
  .phoenix-mail-received-attachments,
  .phoenix-mail-received-attachment,
  .camping-dossier-content,
  .camping-communication-copy,
  .record-task-mail-copy{
    min-width:0!important;
    max-width:100%!important;
  }
  img, video, canvas, svg{
    max-width:100%;
    height:auto;
  }
  input, select, textarea, button{
    max-width:100%;
  }
  .phoenix-mail-body,
  .phoenix-mail-reader,
  .phoenix-mail-message,
  .phoenix-mail-received-attachment,
  .phoenix-mail-recipient-main,
  .camping-communication-copy,
  .record-task-mail-copy,
  .maintenance-attachment-copy{
    overflow-wrap:anywhere!important;
    word-break:break-word;
  }
  .workspace-strip,
  .dossier-tabs,
  .camping-dossier-actions,
  .order-list-table-wrap,
  .caravan-floorplan-wrap{
    max-width:100%!important;
  }
  .sheet-backdrop,
  .media-dialog-backdrop,
  .media-viewer-backdrop{
    left:0!important;
    right:0!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  .bottom-sheet, .record-sheet, .media-dialog, .media-viewer,
  .camping-dossier-sheet, .camping-form-sheet, .camping-visit-sheet,
  .camping-review-dialog-sheet, .camping-review-import-sheet,
  .phoenix-mail-link-sheet, .phoenix-archived-mail-sheet,
  .phoenix-mail-attachment-viewer-sheet{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
}


/* Alpha 132 - gekoppelde taakmail direct zichtbaar in hoofdlijst */
.task-attachment-summary span{
  white-space:nowrap;
}
.task-attachment-summary span:nth-last-of-type(1){
  max-width:100%;
}


/* Alpha 135 - complete dark-mode consistency pass
   Older modules sometimes used --card/--panel or hardcoded light fields.
   In dark mode every editable field and neutral card now follows the theme. */
body.dark{
  color-scheme:dark;
}

/* All ordinary form fields: dark surface + light text in dark mode.
   Checkbox/radio/range/file keep their native control appearance. */
body.dark input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
body.dark select,
body.dark textarea{
  background-color:var(--surface-soft)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
  caret-color:var(--text);
}
body.dark input::placeholder,
body.dark textarea::placeholder{
  color:var(--muted)!important;
  opacity:.9;
}
body.dark select option{
  background:var(--surface)!important;
  color:var(--text)!important;
}

/* Neutral cards/buttons from older modules that used a light-only --card fallback. */
body.dark .more-grid button,
body.dark .quick-grid button,
body.dark .master-tabs button,
body.dark .master-item,
body.dark .record-form input,
body.dark .record-form select,
body.dark .record-form textarea,
body.dark .phoenix-update-form input[type=file]{
  background:var(--surface)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}

/* More page: this was the most visible failure in the screenshot. */
body.dark .more-grid button{
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}
body.dark .more-grid button span,
body.dark .quick-grid button span{
  color:var(--muted)!important;
  opacity:1;
}

/* Relations and diagram blocks had several fixed pale backgrounds. */
body.dark .relations-summary span,
body.dark .relation-links span,
body.dark .relation-chips span,
body.dark .diagram-hub,
body.dark .diagram-node{
  background:var(--surface-soft)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}
body.dark .diagram-website-link{
  color:#8fcaff!important;
}

/* Buttons/cards that are meant to be neutral rather than semantic status colors. */
body.dark .back-button,
body.dark .object-card-button,
body.dark .dossier-tabs button:not(.active),
body.dark .secondary-action,
body.dark .cost-row button,
body.dark .departure-panel header button,
body.dark .media-dialog header button,
body.dark .media-viewer header button{
  background:var(--surface-soft)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}

/* Mail and attachment viewer chrome. PDF iframe itself intentionally remains white. */
body.dark .phoenix-mail-attachment-viewer-body{
  background:#0e1511!important;
}
body.dark .phoenix-mail-received-attachment,
body.dark .phoenix-mail-recipient-suggestions,
body.dark .phoenix-mail-recipient-option,
body.dark .phoenix-mail-link-results button,
body.dark .phoenix-archived-mail-attachments article{
  background:var(--surface-soft)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}

/* Camping research contained fixed white chips and links. */
body.dark .camping-facility-chips span,
body.dark .camping-research-links a{
  background:var(--surface)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}

/* Ensure labels/headings inherit readable theme text when nested in light-era modules. */
body.dark .record-sheet,
body.dark .master-data-dialog,
body.dark .relation-dialog,
body.dark .accessibility-sheet,
body.dark .command-palette,
body.dark .media-dialog,
body.dark .media-viewer{
  color:var(--text);
}

/* Autofill can otherwise reintroduce a white/yellow field in Chromium/Safari. */
body.dark input:-webkit-autofill,
body.dark input:-webkit-autofill:hover,
body.dark input:-webkit-autofill:focus,
body.dark textarea:-webkit-autofill,
body.dark select:-webkit-autofill{
  -webkit-text-fill-color:var(--text)!important;
  -webkit-box-shadow:0 0 0 1000px var(--surface-soft) inset!important;
  box-shadow:0 0 0 1000px var(--surface-soft) inset!important;
  caret-color:var(--text)!important;
}

/* Disabled controls remain readable instead of fading to near-invisible text. */
body.dark input:disabled,
body.dark select:disabled,
body.dark textarea:disabled,
body.dark button:disabled{
  opacity:.62;
}


/* Alpha 136 - account en uitloggen goed leesbaar in donkere modus */
body.dark .phoenix-user-button,
body.dark .phoenix-top-logout{
  background:var(--surface-soft)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
  box-shadow:none!important;
}
body.dark .phoenix-user-button small,
body.dark .phoenix-top-logout span{
  color:var(--text)!important;
  opacity:1!important;
}
body.dark .phoenix-user-button:hover,
body.dark .phoenix-top-logout:hover{
  background:#203129!important;
  color:#fff!important;
  border-color:#486257!important;
}
body.dark .phoenix-user-button:focus-visible,
body.dark .phoenix-top-logout:focus-visible{
  outline:2px solid #8fc9ad!important;
  outline-offset:2px;
}

/* In lichte modus expliciet donkere tekst op de lichte pills. */
body:not(.dark) .phoenix-user-button,
body:not(.dark) .phoenix-top-logout{
  color:#173027!important;
}
body:not(.dark) .phoenix-user-button small,
body:not(.dark) .phoenix-top-logout span{
  color:#173027!important;
  opacity:1!important;
}


/* Alpha 140 · korte campingomschrijving */
.camping-dossier-description{margin:0 0 14px;padding:15px 16px;border:1px solid var(--line,#dfe7e2);border-radius:14px;background:var(--surface-soft,rgba(39,92,63,.045));line-height:1.55}
.camping-dossier-description>span{display:block;margin-bottom:5px;color:var(--muted,#68766f);font-size:.76rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.camping-dossier-description p{margin:0;font-size:1rem}
.camping-card-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}

/* Alpha 143: reactie ontvangen */
.camping-status.response{background:#dff2ff;color:#175f82}
.camping-reply-badge{background:rgba(38,122,157,.12)!important;color:#1f6d8d;font-weight:800}
body.dark .camping-status.response{background:rgba(43,150,195,.22);color:#bfeaff}
body.dark .camping-reply-badge{background:rgba(43,150,195,.18)!important;color:#bfeaff}


/* Alpha 146: campingstatus direct vanuit gekoppelde ontvangen e-mail */
.camping-mail-status-picker{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.camping-mail-status-picker label{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.camping-mail-status-picker label>span{font-weight:700;color:var(--muted);font-size:.82rem}
.camping-mail-status-picker select{min-width:190px;max-width:100%;padding:7px 30px 7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}
.camping-mail-status-picker small{display:block;margin-top:6px;color:var(--muted);font-size:.76rem}
@media(max-width:760px){.camping-mail-status-picker label{display:grid;grid-template-columns:1fr}.camping-mail-status-picker select{width:100%}}

/* Alpha 149 - lange Phoenix Mail-lijsten zelfstandig scrollbaar */
@media (min-width:761px){
  .phoenix-mail-layout{
    min-height:0;
    height:calc(100dvh - 240px);
    max-height:calc(100dvh - 240px);
  }
  .phoenix-mail-list-pane{
    min-height:0;
    overflow:hidden;
  }
  .phoenix-mail-list-toolbar{
    flex:0 0 auto;
    position:relative;
    z-index:2;
    background:var(--surface,#fff);
  }
  .phoenix-mail-list{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto!important;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
  .phoenix-mail-reader-pane{
    min-height:0;
    overflow-y:auto;
  }
}


/* Alpha 150 · snelle navigatie in campingdossier */
.camping-dossier-nav{position:sticky;top:0;z-index:18;display:flex;gap:8px;align-items:center;overflow-x:auto;flex-wrap:nowrap;padding:10px 4px 11px;background:var(--surface,#fff);border-bottom:1px solid var(--line,#dfe7e2);box-shadow:0 7px 16px rgba(24,64,45,.06);scrollbar-width:thin}
.camping-dossier-nav button{flex:0 0 auto;min-height:38px;padding:7px 11px;border:1px solid var(--line,#dfe7e2);border-radius:999px;background:rgba(39,92,63,.045);color:inherit;font:inherit;font-size:.84rem;font-weight:800;white-space:nowrap;cursor:pointer}
.camping-dossier-nav button:hover,.camping-dossier-nav button.active{background:var(--accent,#246c4b);border-color:var(--accent,#246c4b);color:#fff}
.camping-dossier-section[data-camping-section]{scroll-margin-top:66px}
@media(max-width:640px){.camping-dossier-nav{margin:0 -14px;padding:9px 14px 10px}.camping-dossier-nav button{min-height:42px;font-size:.82rem}.camping-dossier-section[data-camping-section]{scroll-margin-top:70px}}


/* Alpha 151 · dossiernavigatie werkelijk vast binnen het scrollvlak */
.camping-dossier-content{position:relative}
.camping-dossier-nav{
  position:sticky!important;
  top:0!important;
  z-index:60!important;
  align-self:start;
  grid-column:1 / -1;
  margin:-22px -22px 6px;
  padding:10px 22px 11px;
  background:var(--surface,#fff);
  box-shadow:0 8px 18px rgba(24,64,45,.10);
}
@media(max-width:640px){
  .camping-dossier-nav{margin:-14px -14px 6px;padding:9px 14px 10px}
}


/* Alpha 153 · VCF-import in Relaties */
.relation-heading-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.relation-import-dialog{width:min(92vw,820px);max-height:88vh;overflow:auto}
.relation-import-summary{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.relation-import-summary span{padding:7px 10px;border-radius:999px;background:var(--surface-soft,#eef6f1);border:1px solid var(--border)}
.relation-import-option{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;margin-bottom:14px;background:var(--surface)}
.relation-import-option input{margin-top:3px}.relation-import-option span{display:grid;gap:2px}.relation-import-option small{color:var(--muted)}
.relation-import-preview{display:grid;gap:8px;max-height:48vh;overflow:auto;padding-right:4px}
.relation-import-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:11px 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}
.relation-import-row strong,.relation-import-row small,.relation-import-row em{display:block}.relation-import-row small{color:var(--muted);overflow-wrap:anywhere;margin-top:2px}.relation-import-row em{font-style:normal;font-size:.78rem;margin-top:4px}.relation-import-row.new em{color:#23733f}.relation-import-row.duplicate em{color:#9a6700}
.relation-import-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media(max-width:700px){.relation-heading-actions{width:100%;justify-content:stretch}.relation-heading-actions button{flex:1 1 auto}.relation-import-dialog{width:96vw}.relation-import-preview{max-height:52vh}}
body.dark .relation-import-summary span,body.dark .relation-import-option,body.dark .relation-import-row{background:var(--surface);color:var(--text)}

/* Alpha 154 - bulkselectie relaties */
.relation-bulk-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.relation-bulk-toolbar label{display:flex;align-items:center;gap:7px;font-weight:700}.relation-bulk-toolbar input{width:18px;height:18px}.relation-bulk-toolbar #relationSelectedCount{color:var(--muted);font-size:.9rem}.relation-bulk-toolbar .danger-button:disabled{opacity:.45;cursor:not-allowed}
.relation-card{position:relative}.relation-select-wrap{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.78rem;font-weight:700;cursor:pointer;z-index:2}.relation-select-wrap input{width:17px;height:17px}.relation-card-head{padding-right:92px}
@media(max-width:700px){.relation-bulk-toolbar{align-items:stretch}.relation-bulk-toolbar .danger-button{width:100%}.relation-select-wrap span{display:none}.relation-card-head{padding-right:38px}}

/* Alpha 155 - relatiekaarten leesbaar in donkere modus */
.relations-summary span,
.relation-links span,
.relation-chips span,
.relation-links button{
  background:var(--surface-soft,#eef6f1);
  color:var(--text,#183126);
  border:1px solid var(--line,#dfe7e2);
  border-radius:999px;
  padding:7px 10px;
}
.relation-links button{
  font:inherit;
  font-weight:700;
  cursor:pointer;
  min-height:36px;
  text-align:left;
}
.relation-links button:hover{
  border-color:var(--green,#2f7453);
}
body.dark .relation-links button,
body.dark .relations-summary span,
body.dark .relation-links span,
body.dark .relation-chips span{
  background:var(--surface-soft);
  color:var(--text);
  border-color:var(--line);
}


/* Alpha 156 - relation dossier pills/buttons readable in dark mode */
.relation-dossier-summary span{
  background:var(--surface-soft,#eef6f1);
  color:var(--text,#183126);
  border:1px solid var(--line,#dfe7e2);
}
.relation-dossier-columns > section{
  background:var(--surface,#ffffff);
}
.relation-work-item button{
  min-height:36px;
  padding:8px 12px;
  border-radius:10px;
  border:1px solid var(--line,#dfe7e2);
  background:var(--surface-soft,#eef6f1);
  color:var(--text,#183126);
  font:inherit;
  font-weight:700;
}
.relation-work-item button:hover{
  border-color:var(--green,#2f7453);
}
body.dark .relation-dossier-summary span,
body.dark .relation-dossier-columns > section,
body.dark .relation-work-item,
body.dark .relation-work-item button,
body.dark .relation-work-status,
body.dark .relation-dossier-dialog .empty{
  background:var(--surface-soft)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}
body.dark .relation-work-item small,
body.dark .relation-dossier-heading span,
body.dark .relation-dossier-dialog .empty{
  color:var(--muted)!important;
}
body.dark .relation-work-status{
  box-shadow:none;
}
body.dark .relation-work-item.is-done .relation-work-status{
  background:rgba(72, 148, 105, 0.24)!important;
  color:var(--text)!important;
}


/* Alpha 158 · duidelijker en groter snelmenu in campingdossier */
.camping-dossier-actions{
  background:var(--surface,#fff)!important;
  border-bottom:1px solid var(--line,#dfe7e2);
  box-shadow:0 5px 14px rgba(0,0,0,.08);
}
.camping-dossier-content{padding-top:0!important;}
.camping-dossier-nav{
  position:sticky!important;
  top:var(--camping-nav-sticky-top,0px)!important;
  z-index:58!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:9px!important;
  margin:0 -22px 14px!important;
  padding:13px 22px 14px!important;
  overflow:visible!important;
  background:var(--surface,#fff)!important;
  border-top:1px solid var(--line,#dfe7e2);
  border-bottom:2px solid var(--line,#dfe7e2)!important;
  box-shadow:0 10px 22px rgba(0,0,0,.14)!important;
}
.camping-dossier-nav::before{
  content:'';position:absolute;left:0;right:0;top:-8px;height:8px;
  background:var(--surface,#fff);pointer-events:none;
}
.camping-dossier-nav-heading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.camping-dossier-nav-heading strong{font-size:.98rem;}
.camping-dossier-nav-heading span{font-size:.78rem;color:var(--muted,#68766f);}
.camping-dossier-nav-primary,.camping-dossier-nav-secondary{display:flex;gap:9px;align-items:center;flex-wrap:wrap;}
.camping-dossier-nav-primary button{
  min-height:48px!important;padding:9px 15px!important;border-radius:13px!important;
  font-size:.92rem!important;background:var(--surface-soft,#f3f7f4)!important;
}
.camping-dossier-nav-primary button span{font-weight:850;}
.camping-dossier-nav-secondary{gap:7px;}
.camping-dossier-nav-secondary button{
  min-height:38px!important;padding:7px 11px!important;border-radius:11px!important;font-size:.80rem!important;
}
.camping-dossier-nav button{
  border:1px solid var(--line,#dfe7e2)!important;color:var(--text,#183126)!important;
}
.camping-dossier-nav button:hover,.camping-dossier-nav button.active{
  background:var(--accent,#246c4b)!important;border-color:var(--accent,#246c4b)!important;color:#fff!important;
}
.camping-dossier-section[data-camping-section]{scroll-margin-top:230px!important;}
body.dark .camping-dossier-actions,body.dark .camping-dossier-nav,body.dark .camping-dossier-nav::before{background:var(--surface)!important;}
body.dark .camping-dossier-nav-primary button,body.dark .camping-dossier-nav-secondary button{background:var(--surface-soft)!important;color:var(--text)!important;border-color:var(--line)!important;}
body.dark .camping-dossier-nav button:hover,body.dark .camping-dossier-nav button.active{background:var(--accent)!important;color:#fff!important;}
@media(max-width:700px){
  .camping-dossier-nav{margin:0 -14px 12px!important;padding:11px 14px 12px!important;gap:8px!important;}
  .camping-dossier-nav-heading span{display:none;}
  .camping-dossier-nav-primary,.camping-dossier-nav-secondary{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin;}
  .camping-dossier-nav-primary button{min-height:46px!important;font-size:.88rem!important;}
  .camping-dossier-section[data-camping-section]{scroll-margin-top:250px!important;}
}


/* Alpha 159 · dossiernavigatie als vaste balk onderin */
.camping-dossier-content{
  position:relative;
  padding-bottom:132px!important;
}
.camping-dossier-nav.camping-dossier-nav-bottom{
  position:sticky!important;
  top:auto!important;
  bottom:0!important;
  z-index:58!important;
  margin:18px -22px -22px!important;
  padding:11px 22px calc(11px + env(safe-area-inset-bottom,0px))!important;
  border-top:1px solid var(--line,#dfe7e2)!important;
  border-bottom:none!important;
  box-shadow:0 -10px 24px rgba(0,0,0,.18)!important;
}
.camping-dossier-nav.camping-dossier-nav-bottom::before{
  content:'';
  position:absolute;
  left:0;right:0;top:-10px;height:10px;
  background:linear-gradient(to top, rgba(8,17,14,0.03), rgba(8,17,14,0));
  pointer-events:none;
}
.camping-dossier-nav.camping-dossier-nav-bottom .camping-dossier-nav-heading{
  align-items:center;
}
.camping-dossier-nav.camping-dossier-nav-bottom .camping-dossier-nav-heading strong{
  font-size:.92rem;
}
.camping-dossier-nav.camping-dossier-nav-bottom .camping-dossier-nav-heading span{
  font-size:.76rem;
}
.camping-dossier-section[data-camping-section]{scroll-margin-top:88px!important;}
@media(max-width:700px){
  .camping-dossier-content{padding-bottom:152px!important;}
  .camping-dossier-nav.camping-dossier-nav-bottom{
    margin:16px -14px -14px!important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;
  }
  .camping-dossier-nav.camping-dossier-nav-bottom .camping-dossier-nav-heading strong{font-size:.88rem;}
  .camping-dossier-nav.camping-dossier-nav-bottom .camping-dossier-nav-heading span{display:none;}
  .camping-dossier-section[data-camping-section]{scroll-margin-top:82px!important;}
}


/* Alpha 160 · snelle dossiernavigatie als vaste volle-breedte balk boven Terug */
.camping-dossier-content{padding-bottom:22px!important;}
.camping-dossier-quicknav{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:repeat(9,minmax(82px,1fr));
  gap:7px;
  width:100%;
  padding:10px 18px;
  background:var(--surface,#fff);
  border-top:1px solid var(--line,#dfe7e2);
  box-shadow:0 -8px 18px rgba(0,0,0,.13);
  overflow-x:auto;
  scrollbar-width:thin;
  z-index:24;
}
.camping-dossier-quicknav button{
  min-height:46px;
  padding:8px 8px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:11px;
  background:var(--surface-soft,#f3f7f4);
  color:var(--text,#183126);
  font:inherit;
  font-size:.82rem;
  font-weight:850;
  cursor:pointer;
  white-space:nowrap;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.camping-dossier-quicknav button:hover,
.camping-dossier-quicknav button.active{
  background:var(--accent,#246c4b);
  border-color:var(--accent,#246c4b);
  color:#fff;
}
.camping-dossier-footer{border-top:0!important;padding-top:8px!important;}
body.dark .camping-dossier-quicknav{background:var(--surface)!important;border-color:var(--line)!important;}
body.dark .camping-dossier-quicknav button{background:var(--surface-soft)!important;color:var(--text)!important;border-color:var(--line)!important;}
body.dark .camping-dossier-quicknav button:hover,body.dark .camping-dossier-quicknav button.active{background:var(--accent)!important;color:#fff!important;}
@media(max-width:700px){
  .camping-dossier-content{padding-bottom:14px!important;}
  .camping-dossier-quicknav{grid-template-columns:repeat(9,minmax(94px,1fr));padding:9px 10px;gap:6px;}
  .camping-dossier-quicknav button{min-height:48px;font-size:.8rem;}
}


/* Alpha 162 · website eerst bij camping toevoegen */
.camping-website-first{
  padding:12px 14px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:14px;
  background:var(--surface-soft,#f5f8f6);
}
.camping-website-first>span{font-weight:850;}
body.dark .camping-website-first{background:var(--surface-soft)!important;border-color:var(--line)!important;}


/* Alpha 164 - camping veilig verwijderen */
.camping-delete-button{
  border-color:#b42318!important;
  color:#b42318!important;
  background:var(--surface,#fff)!important;
}
.camping-delete-button:hover{
  background:#fff1f0!important;
}
body.dark .camping-delete-button{
  border-color:#ff8a80!important;
  color:#ffb4ad!important;
  background:var(--surface-soft)!important;
}


/* Alpha 168 - vrije campingmail */
.phoenix-mail-camping-field select{width:100%}
.phoenix-mail-camping-field>span small{font-weight:500;opacity:.7}
.phoenix-mail-camping-hint{display:block;margin-top:6px;line-height:1.4;color:var(--muted,#63736b)}
.phoenix-mail-camping-hint code{font-weight:800}
body.dark .phoenix-mail-camping-hint{color:var(--muted,#aab8b1)}

/* Alpha 169 - vertalen bij vrije e-mail */
.phoenix-mail-translate-bar{margin:4px 0 14px;padding:12px;display:flex;align-items:end;flex-wrap:wrap;gap:10px;border:1px solid var(--line,#dfe7e2);border-radius:12px;background:var(--surface-soft,#f4f8f6)}
.phoenix-mail-translate-bar label{min-width:170px;display:grid;gap:5px}.phoenix-mail-translate-bar label span{font-weight:700}
.phoenix-mail-translate-bar select,.phoenix-mail-translate-bar button{min-height:40px}
.phoenix-mail-translate-bar small{flex:1 1 100%;line-height:1.4;color:var(--muted,#63736b)}
body.dark .phoenix-mail-translate-bar{background:var(--surface-soft);color:var(--text);border-color:var(--line)}
body.dark .phoenix-mail-translate-bar small{color:var(--muted)}

/* Alpha 170 - direct antwoorden vanuit ontvangen mail + veilige editor */
.phoenix-mail-translate-prominent{
  border-width:2px;
  padding:14px 16px;
  margin:4px 0 12px;
}
.phoenix-mail-translate-prominent::before{
  content:'🌐 Taal van je antwoord';
  flex:1 1 100%;
  font-weight:800;
  font-size:1rem;
}
.phoenix-archived-mail-sheet>footer{
  display:flex;
  align-items:center;
  gap:10px;
}
#phoenixArchivedMailReply{min-height:40px}

/* Alpha 172 - antwoord boven originele e-mail */
.phoenix-mail-reply-quote{
  margin:0 0 14px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:12px;
  overflow:hidden;
  background:var(--surface-soft,#f6f8f7);
}
.phoenix-mail-reply-quote>header{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-bottom:1px solid var(--line,#dfe7e2);
}
.phoenix-mail-reply-quote>header small{color:var(--muted,#63736b)}
#phoenixMailReplyQuoteBody{
  max-height:220px;
  overflow:auto;
  padding:12px;
  white-space:normal;
  line-height:1.45;
  color:var(--muted,#56675f);
}
body.dark .phoenix-mail-reply-quote{
  background:var(--surface-soft);
  color:var(--text);
  border-color:var(--line);
}


/* Alpha 174 - rechtstreeks beantwoorden vanuit campingdossier */
.camping-mail-inline-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--line,#dfe7e2);
}
.camping-mail-inline-actions small{
  color:var(--muted,#63736b);
}
.camping-mail-reply-button{
  min-height:38px;
  padding:8px 14px;
  font-weight:800;
}
body.dark .camping-mail-inline-actions{
  border-color:var(--line);
}
body.dark .camping-mail-inline-actions small{
  color:var(--muted);
}


/* Alpha 175 - compacte mail waarop wordt gereageerd boven het antwoord */
.phoenix-mail-reply-quote{
  margin:0 0 14px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:12px;
  overflow:hidden;
  background:var(--surface-soft,#f6f8f7);
}
.phoenix-mail-reply-quote>header{
  padding:10px 12px;
  border-bottom:1px solid var(--line,#dfe7e2);
  background:var(--surface,#fff);
}
.phoenix-mail-reply-quote>header>div{
  display:grid;
  gap:2px;
}
.phoenix-mail-reply-quote>header strong{
  font-size:.98rem;
}
.phoenix-mail-reply-quote>header small{
  color:var(--muted,#63736b);
}
#phoenixMailReplyQuoteBody{
  height:150px;
  max-height:150px;
  overflow-y:auto;
  padding:12px 14px;
  line-height:1.45;
  font-size:.92rem;
  color:var(--text,#183126);
  white-space:normal;
}
.phoenix-mail-reply-editor{
  margin-top:2px;
}
.phoenix-mail-reply-editor>span{
  font-size:1.02rem;
  font-weight:800;
}
.phoenix-mail-reply-editor textarea{
  min-height:190px;
}
.phoenix-mail-translate-prominent{
  margin-top:10px;
}
body.dark .phoenix-mail-reply-quote>header{
  background:var(--surface);
}
body.dark #phoenixMailReplyQuoteBody{
  color:var(--text);
}


/* Alpha 176 - ontvangen mail bij antwoorden altijd direct zichtbaar */
.phoenix-mail-reply-quote[hidden]{display:none!important}
.phoenix-mail-reply-quote:not([hidden]){
  display:block!important;
  flex:0 0 auto;
}
#phoenixMailReplyQuoteBody{
  min-height:115px;
  height:155px;
  max-height:155px;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  background:var(--surface,#fff);
}
.phoenix-mail-reply-editor{
  scroll-margin-top:180px;
}
body.dark #phoenixMailReplyQuoteBody{
  background:var(--surface);
}


/* Alpha 177 - antwoordopbouw vast: ontvangen mail altijd zichtbaar */
#phoenixMailReplyQuote[data-reply-visible="1"]{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  height:auto!important;
  min-height:190px!important;
  margin:12px 0 14px!important;
}
#phoenixMailReplyQuote[data-reply-visible="1"] #phoenixMailReplyQuoteBody{
  display:block!important;
  height:145px!important;
  min-height:145px!important;
  max-height:145px!important;
  overflow-y:auto!important;
}
.phoenix-mail-reply-editor{
  margin-top:8px!important;
}
.phoenix-mail-translate-prominent{
  margin:12px 0!important;
}


/* Alpha 178 - Phoenix AI assistent */
.phoenix-ai-field-tools{
  display:flex;
  justify-content:flex-end;
  margin:4px 0 5px;
}
.phoenix-ai-field-button{
  min-height:32px;
  padding:5px 10px;
  border-radius:9px;
  font-weight:800;
  font-size:.88rem;
}
.phoenix-ai-sheet{
  width:min(760px,94vw);
  max-height:88vh;
}
.phoenix-ai-dialog-body{
  padding:14px 18px;
  display:grid;
  gap:12px;
  overflow:auto;
}
.phoenix-ai-dialog-body label{
  display:grid;
  gap:6px;
}
.phoenix-ai-dialog-body label>span{
  font-weight:800;
}
.phoenix-ai-dialog-body textarea{
  width:100%;
  resize:vertical;
}
.phoenix-ai-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.phoenix-ai-actions small{
  flex:1 1 260px;
  color:var(--muted,#63736b);
}
.phoenix-ai-settings{
  display:grid;
  gap:14px;
  padding:4px 2px;
}
.phoenix-ai-settings-intro{
  padding:14px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:12px;
  background:var(--surface-soft,#f4f8f6);
}
.phoenix-ai-settings-intro strong{
  font-size:1.05rem;
}
.phoenix-ai-settings-intro p{
  margin:6px 0 0;
}
.phoenix-ai-settings label{
  display:grid;
  gap:6px;
}
.phoenix-ai-settings label span{
  font-weight:800;
}
.phoenix-ai-settings-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
body.dark .phoenix-ai-settings-intro{
  background:var(--surface-soft);
  border-color:var(--line);
}
body.dark .phoenix-ai-actions small{
  color:var(--muted);
}


/* Alpha 179 - Phoenix AI moet altijd boven het actieve invoervenster staan */
#phoenixAiDialog.sheet-backdrop{
  z-index:2000!important;
  place-items:center!important;
  padding:18px!important;
  background:rgba(5,18,12,.68)!important;
  backdrop-filter:blur(7px)!important;
}
#phoenixAiDialog[hidden]{
  display:none!important;
}
#phoenixAiDialog:not([hidden]){
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
}
#phoenixAiDialog .phoenix-ai-sheet{
  position:relative;
  z-index:2001;
  width:min(760px,94vw)!important;
  max-height:90dvh!important;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:var(--surface,#fff);
  color:var(--text,#183126);
  border:1px solid var(--line,#dfe7e2);
  border-radius:22px;
  box-shadow:0 32px 100px rgba(0,0,0,.48);
}
#phoenixAiDialog .phoenix-ai-dialog-body{
  min-height:0;
  overflow-y:auto!important;
}
@media(max-width:640px){
  #phoenixAiDialog.sheet-backdrop{
    place-items:end center!important;
    padding:0!important;
  }
  #phoenixAiDialog .phoenix-ai-sheet{
    width:100%!important;
    max-width:100%!important;
    max-height:94dvh!important;
    border-radius:22px 22px 0 0!important;
  }
}


/* Alpha 186 - professionele inline mailbeantwoording */
.phoenix-mail-inline-reply{
  margin:12px 0 14px;
  padding:14px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:14px;
  background:var(--surface-soft,#f6f9f7);
  display:grid;
  gap:10px;
}
.phoenix-mail-inline-reply-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.phoenix-mail-inline-reply-head>div:first-child{display:grid;gap:2px}
.phoenix-mail-inline-reply-head small{color:var(--muted,#65766e)}
.phoenix-mail-inline-language{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.phoenix-mail-inline-language select,.phoenix-mail-inline-language button{min-height:36px}
.phoenix-mail-inline-reply-field{display:grid;gap:6px;font-weight:800}
#phoenixMailInlineReplyBody{
  width:100%;
  min-height:120px;
  resize:vertical;
  background:var(--surface,#fff);
  color:var(--text,#173126);
}
.phoenix-mail-inline-reply-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.phoenix-mail-inline-reply-actions small{color:var(--muted,#65766e)}
.phoenix-mail-original-message{
  margin-top:10px;
  border-top:1px solid var(--line,#dfe7e2);
  padding-top:10px;
}
.phoenix-mail-original-message>summary{
  cursor:pointer;
  font-weight:800;
  margin-bottom:10px;
}
body.dark .phoenix-mail-inline-reply{background:var(--surface-soft);border-color:var(--line)}
body.dark #phoenixMailInlineReplyBody{background:var(--surface);color:var(--text)}
@media(max-width:760px){
  .phoenix-mail-inline-language{width:100%}
  .phoenix-mail-inline-language select{flex:1 1 130px}
  .phoenix-mail-inline-reply-actions .primary-action{width:100%}
}


/* Alpha 192 - campingafstand */
.camping-distance-card{
  margin:12px 0 6px;
  padding:12px 14px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:12px;
  background:var(--surface-soft,#f6f9f7);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.camping-distance-card>div{display:grid;gap:3px}
.camping-distance-card span{font-size:.85rem;color:var(--muted,#65766e);font-weight:700}
.camping-distance-card strong{font-size:1.05rem}
.camping-distance-card small{color:var(--muted,#65766e)}
.phoenix-distance-settings{display:grid;gap:14px}
.phoenix-distance-settings label{display:grid;gap:6px}
.phoenix-distance-settings label>span{font-weight:800}
body.dark .camping-distance-card{background:var(--surface-soft);border-color:var(--line)}

/* Alpha 195: reviewvertaling */
.camping-review-translation strong{display:block;margin-bottom:4px;color:var(--text,#173228);font-size:.9rem}
.camping-review-translate-option{display:flex!important;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line,#dfe7e2);border-radius:10px;background:var(--surface-soft,#f6faf8)}
.camping-review-translate-option input{width:auto!important;min-width:18px;height:18px;margin:0}
.camping-review-translate-option span{font-weight:700}
/* Alpha 200 · beveiligde login voor reviewbronnen */
.camping-review-login-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--line,#dfe7e2);border-radius:14px;background:rgba(35,105,72,.045)}
.camping-review-login-fields[hidden]{display:none!important}.camping-review-login-fields>label{display:flex;flex-direction:column;gap:7px;font-weight:750}.camping-review-login-actions{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.camping-review-login-actions button{min-height:42px;padding:8px 13px;border-radius:10px}.camping-review-login-actions span{font-size:.9rem;color:var(--muted,#64736b)}
@media(max-width:700px){.camping-review-login-fields{grid-template-columns:1fr}.camping-review-login-actions{grid-column:auto}}

/* Alpha 201 — automatische Nederlandse vertaling bij inkomende campingmail */
.camping-email-translation-wrap{margin-top:12px;padding:12px 14px;border:1px solid rgba(31,112,78,.22);border-radius:10px;background:rgba(31,112,78,.055)}
.camping-email-translation-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.camping-email-translation-head strong{font-size:.94rem}
.camping-email-translation-toggle{border:1px solid rgba(31,112,78,.28);background:transparent;border-radius:8px;padding:5px 9px;font-size:.82rem;cursor:pointer}
.camping-email-translation{line-height:1.55;white-space:normal}
@media(max-width:700px){.camping-email-translation-head{align-items:flex-start;flex-direction:column}.camping-email-translation-toggle{align-self:flex-start}}
/* Alpha 202: inkomende mailvertaling duidelijk als apart Nederlands blok */
.camping-email-translation-wrap{border-left:5px solid #1f704e!important;background:linear-gradient(90deg,rgba(31,112,78,.09),rgba(31,112,78,.035))!important;box-shadow:0 1px 0 rgba(31,112,78,.08)}
.camping-email-translation-head strong{display:flex;align-items:center;gap:7px;font-size:1rem}
.camping-email-translation-pending{border-style:dashed!important;background:rgba(31,112,78,.035)!important}
.camping-email-translation-status{font-size:.9rem;line-height:1.5;color:var(--muted,#66756d)}
.camping-email-translate-now{border:1px solid rgba(31,112,78,.32);background:#fff;border-radius:8px;padding:6px 10px;font-weight:700;cursor:pointer}
.camping-email-translate-now:disabled{opacity:.65;cursor:wait}

/* Alpha 205 — vertaalbediening direct bovenaan de inkomende e-mail */
.camping-email-translation-top{margin:10px 0 14px!important}
.camping-email-original-wrap{margin-top:10px}
.camping-email-original-label{display:inline-flex;align-items:center;gap:6px;margin:0 0 7px;padding:4px 8px;border-radius:999px;background:rgba(84,101,93,.08);color:var(--muted,#66756d);font-size:.78rem;font-weight:750}
.camping-email-original-wrap .camping-email-current{margin-top:0!important}

/* Alpha 206 — reviewkaarten rustiger onder elkaar, lange teksten nooit meer door elkaar */
.camping-reviews-section .camping-review-sources{
  grid-template-columns:minmax(0,1fr)!important;
}
.camping-reviews-section .camping-review-source,
.camping-reviews-section .camping-review-quotes,
.camping-reviews-section .camping-review-quote{
  min-width:0;
  max-width:100%;
}
.camping-reviews-section .camping-review-source p,
.camping-reviews-section .camping-review-quote p,
.camping-reviews-section .camping-review-quote,
.camping-reviews-section .camping-review-source{
  overflow-wrap:anywhere;
  word-break:normal;
}
.camping-reviews-section .camping-review-quote{
  padding:12px 0 2px;
}
.camping-reviews-section .camping-review-quote + .camping-review-quote{
  margin-top:2px;
}
.camping-reviews-section .camping-review-source-head{
  align-items:center;
}

/* Alpha 210: persoonlijke mailbox per ingelogde gebruiker */
.phoenix-mail-settings-owner-hint{margin:0 0 14px;padding:10px 12px;border:1px solid var(--line,#d8e3dd);border-radius:10px;background:var(--soft,#f6f9f7);color:var(--muted,#61736a);font-size:.9rem;}

/* Alpha 216 - persoonlijke mailbox dialoog netjes centreren */
#userMailboxDialog.sheet-backdrop{
  padding:24px!important;
  place-items:center!important;
  background:rgba(8,28,19,.64);
  backdrop-filter:blur(9px);
  z-index:120;
}
#userMailboxDialog .phoenix-mail-settings-sheet{
  width:min(720px,94vw);
  max-height:90dvh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border-radius:22px;
  background:var(--surface,#fff);
  color:var(--text,#173126);
  box-shadow:0 28px 80px rgba(0,0,0,.30);
}
#userMailboxDialog .phoenix-mail-settings-sheet>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px 16px;
  border-bottom:1px solid var(--line,#dfe7e2);
}
#userMailboxDialog .phoenix-mail-settings-sheet>header h2{margin:2px 0 4px}
#userMailboxDialog .phoenix-mail-settings-sheet>header p{margin:4px 0 0;line-height:1.45;color:var(--muted,#66766f)}
#userMailboxDialog .phoenix-mail-settings-sheet>header .eyebrow{color:var(--accent,#176744);font-weight:850}
#userMailboxDialog .phoenix-mail-settings-sheet>header button{
  width:42px;height:42px;min-width:42px;border-radius:11px;
}
#userMailboxDialog form{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  padding:20px 22px 22px;
  overflow:auto;
}
#userMailboxDialog form label{display:grid;gap:7px;min-width:0}
#userMailboxDialog form label>span{font-weight:800}
#userMailboxDialog form label small{color:var(--muted,#66766f);line-height:1.4}
#userMailboxDialog input{
  width:100%!important;
  min-width:0;
  box-sizing:border-box;
  min-height:48px;
  padding:11px 13px;
  border:1px solid var(--line,#d8e2dc);
  border-radius:11px;
  background:var(--surface,#fff);
  color:var(--text,#173126);
  font:inherit;
  font-size:1rem;
}
#userMailboxDialog .phoenix-mail-settings-info{
  padding:13px 15px;
  border:1px solid var(--line,#dfe7e2);
  border-radius:12px;
  background:var(--surface-soft,#f4f7f5);
  display:grid;
  gap:5px;
  line-height:1.45;
  color:var(--muted,#66766f);
}
#userMailboxDialog .phoenix-mail-settings-info strong{color:var(--text,#173126)}
#userMailboxDialog form>footer{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
  padding-top:4px;
}
#userMailboxDialog form>footer button{min-height:44px;padding-inline:15px}
@media(max-width:650px){
  #userMailboxDialog.sheet-backdrop{padding:0!important;place-items:end center!important}
  #userMailboxDialog .phoenix-mail-settings-sheet{
    width:100vw;
    max-width:none;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
  }
  #userMailboxDialog .phoenix-mail-settings-sheet>header{padding:16px}
  #userMailboxDialog form{padding:16px}
  #userMailboxDialog form>footer{display:grid;grid-template-columns:1fr}
  #userMailboxDialog form>footer button{width:100%;min-height:48px}
}


/* Alpha 220 - e-mails als vast tabblad in het digitale objectdossier */
.dossier-email-badge{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:.8rem;font-weight:800;white-space:nowrap}
.dossier-email-list{display:grid;gap:10px}
.dossier-email-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 4px 14px rgba(30,61,46,.04)}
.dossier-email-item summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:14px 15px}
.dossier-email-item summary::-webkit-details-marker{display:none}
.dossier-email-icon{font-size:1.35rem}
.dossier-email-summary strong,.dossier-email-summary small{display:block}
.dossier-email-summary strong{color:var(--text)}
.dossier-email-summary small{margin-top:3px;color:var(--muted);font-size:.78rem}
.dossier-email-meta{font-size:.76rem;color:var(--muted);white-space:nowrap}
.dossier-email-body{padding:14px 15px;border-top:1px solid var(--line);line-height:1.5;max-height:360px;overflow:auto;background:var(--surface-soft)}
.dossier-email-files{display:flex;gap:8px;flex-wrap:wrap;padding:0 15px 14px;background:var(--surface-soft)}
.dossier-email-files a{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--green-dark);background:var(--surface);font-size:.82rem;font-weight:700}
@media(max-width:650px){.dossier-email-item summary{grid-template-columns:auto 1fr}.dossier-email-meta{grid-column:2}.dossier-email-badge{margin-top:6px}}

.camping-review-text p{margin:.35rem 0;line-height:1.55;}
.camping-review-text p:first-child{margin-top:0;}
.camping-review-text p:last-child{margin-bottom:0;}
.camping-review-translation .camping-review-text{margin-top:.35rem;}

.shopping-product-fetch-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:center;}
.shopping-product-fetch-row input{min-width:0;}
.shopping-product-info-status{display:block;margin-top:.35rem;color:var(--muted,#64748b);line-height:1.35;}
.order-list-table td small{display:block;margin-top:.2rem;line-height:1.35;color:var(--muted,#64748b);}
.order-list-table td small a{white-space:nowrap;}
@media(max-width:680px){.shopping-product-fetch-row{grid-template-columns:1fr}.shopping-product-fetch-row button{width:100%}}

.relation-dossier-documents-section{margin-top:1rem;border-top:1px solid var(--border,#d7dfda);padding-top:1rem}.relation-document-list{display:grid;gap:.65rem}.relation-document-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem .9rem;border:1px solid var(--border,#d7dfda);border-radius:12px;background:var(--card,#fff)}.relation-document-item div{display:grid;gap:.2rem}.relation-document-item small{opacity:.75}.relation-document-item button{white-space:nowrap}@media(max-width:720px){.relation-document-item{align-items:flex-start;flex-direction:column}.relation-document-item button{width:100%}}

#saveShoppingOrderToRelation.is-saved{font-weight:800;border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor;}

/* Phoenix 11 - Relaties: compacte mobiele bedieningsbalk */
@media (max-width:700px){
  #relationsView .section-heading{
    margin-bottom:8px;
  }
  #relationsView .section-heading>div:first-child{
    margin-bottom:10px;
  }
  #relationsView .relation-heading-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:7px;
    width:100%;
    margin-top:4px;
    padding:6px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:0 4px 14px rgba(20,55,42,.05);
  }
  #relationsView .relation-heading-actions button{
    width:100%;
    min-width:0;
    min-height:42px;
    padding:8px 9px!important;
    border-radius:10px;
    font-size:.82rem!important;
    line-height:1.15;
    white-space:normal;
  }
  #relationsView #importRelationsVcfButton{
    font-size:0!important;
  }
  #relationsView #importRelationsVcfButton::after{
    content:'⇩ Contacten importeren';
    font-size:.82rem;
  }
  #relationsView #addRelationButton{
    font-size:0!important;
  }
  #relationsView #addRelationButton::after{
    content:'+ Relatie toevoegen';
    font-size:.82rem;
  }
  #relationsView .relation-toolbar{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin:0 0 12px;
  }
  #relationsView #relationSearch{
    width:100%;
    min-height:46px;
    padding:11px 13px;
    border-radius:13px;
    font-size:16px;
    background:var(--surface);
  }
  #relationsView .relation-mode{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  #relationsView .relation-mode button{
    min-width:0;
    min-height:40px;
    padding:8px 7px;
    font-size:.8rem;
  }
  #relationsView .relation-bulk-toolbar{
    gap:7px;
    padding:8px 0;
    align-items:center;
  }
}


/* Alpha 232 - mobiel Phoenix Mail: geen horizontale scroll + betrouwbare verzendknop */
#phoenixMailComposeDialog,
#phoenixMailComposeDialog .phoenix-mail-compose-sheet,
#phoenixMailComposeDialog #phoenixMailComposeForm{
  overflow-x:hidden!important;
  max-width:100%!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm>*{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#phoenixMailComposeDialog #phoenixMailComposeForm select,
#phoenixMailComposeDialog #phoenixMailComposeForm input,
#phoenixMailComposeDialog #phoenixMailComposeForm textarea{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:700px){
  #phoenixMailComposeDialog.sheet-backdrop{
    width:100vw!important;
    max-width:100vw!important;
    overflow-x:hidden!important;
  }
  #phoenixMailComposeDialog .phoenix-mail-compose-sheet{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  #phoenixMailComposeDialog #phoenixMailComposeForm{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
  }
  #phoenixMailComposeDialog .phoenix-mail-translate-bar,
  #phoenixMailComposeDialog .phoenix-mail-compose-media,
  #phoenixMailComposeDialog .phoenix-mail-recipient-wrap,
  #phoenixMailComposeDialog .phoenix-mail-message-toolbar{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  #phoenixMailComposeDialog .phoenix-mail-translate-bar{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }
  #phoenixMailComposeDialog .phoenix-mail-translate-bar label,
  #phoenixMailComposeDialog .phoenix-mail-translate-bar button{
    width:100%!important;
    min-width:0!important;
  }
  #phoenixMailComposeDialog #phoenixMailComposeForm>footer{
    grid-template-columns:1fr 1fr!important;
    width:auto!important;
    max-width:none!important;
    overflow:visible!important;
  }
  #phoenixMailComposeDialog #phoenixMailComposeForm>footer .phoenix-mail-footer-spacer{
    display:none!important;
  }
  #phoenixMailComposeDialog #sendPhoenixMailCompose{
    position:relative!important;
    z-index:5!important;
    touch-action:manipulation!important;
    pointer-events:auto!important;
  }
}

/* Alpha 233 - relatie e-mail altijd via Phoenix Mail */
.relation-contact .relation-mail-link{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  padding:0;
  margin:0;
  text-align:left;
  cursor:pointer;
  text-decoration:none;
}
.relation-contact .relation-mail-link:hover{text-decoration:underline;}
\n\n/* Alpha 234 - Planner URL-naam, tijdvalidatie en mobiele overflow */\n.planner-card,.planner-card-body,.planner-card-body header,.planner-card-body header>div{min-width:0;max-width:100%}\n.planner-card-body h3,.planner-card-body>p,.planner-meta span,.planner-detail-extra>*{overflow-wrap:anywhere;word-break:break-word;max-width:100%}\n.planner-link-grid{grid-column:1/-1;width:100%}\n.planner-link-row{display:block!important;-webkit-line-clamp:unset!important;margin:10px 0!important;white-space:normal!important;overflow:visible!important}\n.planner-link-row a,.planner-detail-link{display:inline-flex;align-items:flex-start;gap:6px;max-width:100%;overflow-wrap:anywhere;word-break:break-word;color:var(--blue,#0878d1);font-weight:800;text-decoration:none}\n.planner-link-row a:hover,.planner-detail-link:hover{text-decoration:underline}\n.planner-detail-extra .planner-detail-link{padding:7px 10px;border-radius:999px;background:var(--surface-soft);font-size:.82rem;font-weight:800}\n@media(max-width:760px){\n  html,body{max-width:100%;overflow-x:hidden}\n  #plannerView,.planner-list,.planner-card,.planner-card-body{width:100%;max-width:100%;min-width:0}\n  .planner-card-body header{align-items:flex-start;flex-wrap:wrap}\n  .planner-card-body h3{font-size:1.12rem;line-height:1.25}\n  .planner-meta{max-width:100%;overflow:hidden}\n  .planner-meta span{min-width:0}\n  .planner-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:100%;gap:8px}\n  .planner-actions button{width:100%;min-width:0;min-height:48px;padding:9px 8px;white-space:normal;overflow-wrap:anywhere}\n}\n@media(max-width:390px){\n  .planner-actions{grid-template-columns:1fr}\n}\n

/* Alpha 235 - Planner dialoog: verticaal scrollen, horizontale overflow blokkeren */
#plannerDialog .planner-sheet{
  max-height:92dvh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
#plannerDialog .planner-sheet>header{flex:0 0 auto}
#plannerDialog #plannerForm{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  padding-right:2px;
}
#plannerDialog #plannerForm>*{min-width:0;max-width:100%}
@media(max-width:760px){
  #plannerDialog .planner-sheet{
    height:min(94dvh,100dvh);
    max-height:calc(100dvh - env(safe-area-inset-top));
    overflow:hidden!important;
  }
  #plannerDialog #plannerForm{
    flex:1 1 auto;
    width:100%;
    max-width:100%;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom));
  }
  #plannerDialog .dialog-actions{
    max-width:100%;
    flex-wrap:wrap;
  }
}

/* Alpha 236 - tekst selecteren/kopieren in Planner-notities op mobiel */
#plannerNotes,
#plannerDetailNotes {
  -webkit-user-select: text !important;
  user-select: text !important;
  -webkit-touch-callout: default;
  touch-action: auto;
}
#plannerNotes {
  cursor: text;
}


/* Alpha 237 - Planner leesbaarheid mobiel */
@media(max-width:760px){
  #plannerDialog input,
  #plannerDialog select,
  #plannerDialog textarea{
    font-size:17px!important;
    line-height:1.4;
  }
  #plannerDialog label>span,
  #plannerDialog legend{
    font-size:1rem;
  }
  #plannerUrl,
  #plannerUrlName,
  #plannerNotes{
    font-size:17px!important;
  }
}


/* Alpha 238 · foto’s en filmpjes bij bezoekverslagen */
.camping-visit-media-field small{font-weight:500;color:var(--muted,#68766f);line-height:1.4}
.camping-visit-media-preview{display:grid;gap:8px;padding:11px;border:1px dashed var(--line,#cfdad4);border-radius:12px;background:rgba(39,92,63,.035)}
.camping-visit-media-preview[hidden]{display:none}.camping-visit-media-preview>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:7px 8px;border-radius:9px;background:var(--surface,#fff)}
.camping-visit-media-preview strong{min-width:0;overflow-wrap:anywhere}.camping-visit-media-preview small{color:var(--muted,#68766f)}
.camping-visit-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line,#dfe7e2)}
.camping-visit-photo{display:block;padding:0;border:0;border-radius:11px;overflow:hidden;background:#101512;min-height:120px;cursor:pointer}.camping-visit-photo img{display:block;width:100%;height:150px;object-fit:cover}
.camping-visit-video{min-width:0}.camping-visit-video video{display:block;width:100%;max-height:260px;border-radius:11px;background:#000}.camping-visit-video small{display:block;margin-top:5px;color:var(--muted,#68766f);overflow-wrap:anywhere}
@media(max-width:640px){.camping-visit-media{grid-template-columns:1fr}.camping-visit-photo img{height:auto;max-height:280px}.camping-visit-media-preview>div{grid-template-columns:auto minmax(0,1fr)}.camping-visit-media-preview small{grid-column:2}}


/* Alpha 239 · volledige bezoekverslagen zichtbaar */
.camping-visit-card,.camping-visit-card p{max-width:100%;min-width:0}
.camping-visit-card p{display:block!important;-webkit-line-clamp:unset!important;-webkit-box-orient:initial!important;overflow:visible!important;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.55}
.camping-visit-report-text{white-space:pre-wrap!important}

/* Alpha 241: direct foto maken vanuit bezoekersverslag */
.camping-visit-media-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;margin-bottom:8px}
.camping-media-pick-button{display:inline-flex!important;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--border,#d6ddd8);border-radius:12px;background:var(--surface,#fff);font-weight:700;cursor:pointer}
.camping-visit-media-file{display:flex;gap:8px;align-items:center;padding:6px 0;overflow-wrap:anywhere}
@media(max-width:700px){.camping-visit-media-buttons{display:grid;grid-template-columns:1fr}.camping-media-pick-button{width:100%;font-size:16px}.camping-visit-media-field small{font-size:14px;line-height:1.4}}

/* Alpha 243 · directe mediavoorvertoning en verwijderen bij bezoekverslagen */
.camping-visit-pending-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.camping-visit-pending-item{min-width:0;border:1px solid var(--line,#dfe7e2);border-radius:12px;overflow:hidden;background:var(--surface,#fff)}
.camping-visit-pending-item img,.camping-visit-pending-item video{display:block;width:100%;height:145px;object-fit:cover;background:#101512}
.camping-visit-pending-item>div{display:grid;gap:7px;padding:8px}.camping-visit-pending-item small{overflow-wrap:anywhere}
.camping-visit-pending-delete,.camping-visit-media-delete{min-height:38px;border:1px solid #d9aaaa;border-radius:9px;background:#fff5f5;color:#9c2525;font-weight:700;cursor:pointer;padding:7px 10px}
.camping-visit-media-item{position:relative;min-width:0}.camping-visit-media-item>.camping-visit-media-delete{width:100%;margin-top:7px}
@media(max-width:640px){.camping-visit-pending-grid{grid-template-columns:1fr 1fr}.camping-visit-pending-item img,.camping-visit-pending-item video{height:120px}}
@media(max-width:420px){.camping-visit-pending-grid{grid-template-columns:1fr}}

/* Alpha 244 · vaste mobiele breedte — nooit meer pagina-scroll links/rechts */
@media (max-width: 760px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none;
  }
  body,#app,.app-shell,.main-shell,.main-content,main,.content,.page,.page-content{
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  main > *, .page > *, .page-content > *, .card, .panel, .sheet,
  .camping-card,.camping-visit-card,.camping-visit-sheet,.camping-form-sheet,
  .camping-dossier-sheet,.camping-dossier-content,.camping-detail-section,
  .camping-visit-media,.camping-visit-pending-grid,.camping-visit-pending-item,
  .planner-card,.task-card,.maintenance-card,.record-card,.object-card-v2,
  .dialog,.modal,.dialog-sheet,[role="dialog"]{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  img,video,canvas,svg,iframe{
    max-width:100%!important;
  }
  p,span,strong,small,a,td,th,label,.camping-visit-report-text{
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  input,select,textarea,button{
    max-width:100%;
  }
  .camping-visit-media-buttons,
  .camping-visit-pending-grid,
  .camping-visit-media{
    width:100%!important;
    max-width:100%!important;
  }
  .camping-visit-pending-item img,
  .camping-visit-pending-item video,
  .camping-visit-video video{
    width:100%!important;
    height:auto;
  }
}


/* Alpha 249 · taaksoortenbord en afrondfoto */
.task-type-board{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(310px,340px);gap:14px;width:100%;min-width:0;align-items:start;overflow-x:auto;overflow-y:hidden;padding-bottom:10px;scrollbar-gutter:stable}
.task-type-column{min-width:0;background:var(--surface-soft);border:1px solid var(--line);border-radius:18px;padding:10px}
.task-type-column-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 5px 10px}
.task-type-column-head>div{display:flex;align-items:center;gap:8px;min-width:0}.task-type-column-icon{font-size:1.15rem}.task-type-column-head strong{font-size:.98rem}.task-type-column-head b{min-width:28px;height:28px;border-radius:99px;background:var(--green-soft);color:var(--green-dark);display:grid;place-items:center;font-size:.78rem}
.task-type-column-list{display:grid;gap:10px;min-width:0}
.task-type-column .task-row{padding:12px;cursor:pointer;box-shadow:0 4px 14px rgba(30,61,46,.04)}
.task-type-badge{display:inline-flex;align-items:center;gap:4px;width:max-content;max-width:100%;margin-top:5px;padding:4px 8px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:.7rem;font-weight:850}
.task-type-call{background:#e7f2ff;color:#285c86}.task-type-email{background:#f0eaff;color:#61488a}.task-type-appointment{background:#fff1d9;color:#825d16}.task-type-other{background:#edf0ef;color:#53645b}
.task-completion-photo{border-color:#b8d8c7!important;background:var(--green-soft)!important;color:var(--green-dark)!important}
#phoenixTasks.phoenix-task-list{display:block;overflow-x:hidden;min-width:0}
@media(max-width:760px){.task-type-board{grid-template-columns:1fr;grid-auto-flow:row;grid-auto-columns:auto;overflow-x:hidden;overflow-y:visible;padding-bottom:0}.task-type-column{padding:8px}.task-type-column .task-row{width:100%;min-width:0}.task-type-column .task-actions button{flex:1 1 auto}}
.task-type-column .task-row{grid-template-columns:28px minmax(0,1fr);grid-template-areas:"dot content" "date date" "attachments attachments" "actions actions";align-items:start}
.task-type-column .task-date{margin-left:40px;min-width:0;width:max-content;max-width:calc(100% - 40px);text-align:left}
.task-type-column .task-attachment-summary{grid-area:attachments;grid-column:auto;margin:0 0 0 40px;min-width:0}

/* Alpha 250 · taaksoorten beheerbaar + overdracht naar onderhoud */
.task-in-maintenance{position:relative;border-style:dashed!important;opacity:.94}
.task-maintenance-marker{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;padding:7px 10px;border-radius:10px;font-weight:800;font-size:.82rem;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.35);white-space:nowrap}
.task-maintenance-note{margin-top:7px;padding:8px 10px;border-radius:10px;background:rgba(245,158,11,.10);font-size:.84rem;line-height:1.35;max-width:100%}
.task-type-column[data-task-type-column="maintenance-transfer"]{border-color:rgba(245,158,11,.38);background:rgba(245,158,11,.055)}
.task-type-column[data-task-type-column="maintenance-transfer"] .task-type-column-head{background:rgba(245,158,11,.10)}
@media(max-width:700px){.task-maintenance-marker{white-space:normal}.task-maintenance-note{font-size:.9rem}}

/* Alpha 251 · onderhoudsstatus netjes binnen taakkaart */
.task-in-maintenance .task-maintenance-dot{
  grid-area:dot;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  align-self:start;
  border-radius:9px;
  background:rgba(245,158,11,.16);
  border:1px solid rgba(245,158,11,.38);
  font-size:.95rem;
  line-height:1;
}
.task-in-maintenance .task-content{min-width:0}
.task-in-maintenance .task-maintenance-marker{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:6px;
  padding:5px 9px;
  font-size:.74rem;
  white-space:normal;
}
.task-in-maintenance .task-maintenance-note{
  margin-top:7px;
  width:100%;
  box-sizing:border-box;
  text-align:left;
}

/* Alpha 251 · onderhoudsstatus netjes binnen taakkaart */
.task-in-maintenance .task-maintenance-dot{grid-area:dot;width:28px;height:28px;display:grid;place-items:center;align-self:start;border-radius:9px;background:rgba(245,158,11,.16);border:1px solid rgba(245,158,11,.38);font-size:.95rem;line-height:1}
.task-in-maintenance .task-content{min-width:0}
.task-in-maintenance .task-maintenance-marker{display:inline-flex;width:max-content;max-width:100%;margin-top:6px;padding:5px 9px;font-size:.74rem;white-space:normal}
.task-in-maintenance .task-maintenance-note{margin-top:7px;width:100%;box-sizing:border-box;text-align:left}

/* Alpha 253 · takenkolommen blijven op desktop naast elkaar en horizontaal bereikbaar */
@media(min-width:761px){
  .task-type-board{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .task-type-column{width:100%;min-width:310px}
}


/* Alpha 254 · desktop toont maximaal vier taakkolommen tegelijk; extra kolommen horizontaal bereikbaar */
@media(min-width:761px){
  #phoenixTasks.phoenix-task-list{overflow-x:hidden;overflow-y:visible;min-width:0}
  .task-type-board{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:max(290px,calc((100% - 42px)/4));gap:14px;overflow-x:auto;overflow-y:hidden;width:100%;max-width:100%;padding:0 0 14px;scroll-snap-type:x proximity;scrollbar-gutter:stable}
  .task-type-column{min-width:0;width:auto;scroll-snap-align:start}
}
@media(max-width:760px){.task-type-board{scroll-snap-type:none}}


/* Alpha 255 · desktop kolommen duidelijk horizontaal bedienen + desktop FAB weg */
@media(min-width:761px){
  #quickActionButton.fab{display:none!important}
  .task-board-scroll-controls{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    margin:0 0 10px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--surface-soft);
    color:var(--muted);
    font-size:.78rem;
    font-weight:800;
  }
  .task-board-scroll-controls>div{display:flex;gap:7px}
  .task-board-scroll-controls button{
    border:1px solid var(--line);
    background:var(--surface);
    color:var(--text);
    border-radius:10px;
    padding:8px 12px;
    min-height:38px;
    font:inherit;
    font-weight:850;
    cursor:pointer;
  }
  .task-board-scroll-controls button:hover{border-color:var(--green);color:var(--green-dark)}
  .task-type-board{scrollbar-width:auto;scrollbar-color:var(--green) var(--surface-soft)}
  .task-type-board::-webkit-scrollbar{height:12px}
  .task-type-board::-webkit-scrollbar-track{background:var(--surface-soft);border-radius:99px}
  .task-type-board::-webkit-scrollbar-thumb{background:var(--green);border-radius:99px;border:2px solid var(--surface-soft)}
}
@media(max-width:760px){.task-board-scroll-controls{display:none!important}}

/* Alpha 256 · taken gekoppeld aan campingcommunicatie */
.task-camping-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  width:max-content;
  max-width:100%;
  margin:.28rem 0 .12rem;
  padding:.28rem .5rem;
  border:1px solid rgba(74,222,128,.18);
  border-radius:8px;
  background:rgba(22,101,52,.14);
  color:var(--text,#eef6f1);
  font-size:.82rem;
  font-weight:700;
  overflow-wrap:anywhere;
}
.task-communication-action{border-color:rgba(56,189,248,.28)!important}
.camping-communication-task-link{
  display:inline-flex;
  width:max-content;
  margin-top:.18rem;
  padding:.16rem .4rem;
  border-radius:999px;
  background:rgba(56,189,248,.10);
  border:1px solid rgba(56,189,248,.20);
  font-weight:700;
}

/* Alpha 257 · directe knop van taak naar campingdossier */
button.task-camping-link{
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  font:inherit;
  text-align:left;
}
button.task-camping-link strong{
  margin-left:.25rem;
  color:#86efac;
  font-size:.76rem;
  white-space:nowrap;
}
button.task-camping-link:hover,button.task-camping-link:focus-visible{
  border-color:rgba(74,222,128,.58);
  background:rgba(22,101,52,.24);
  outline:none;
}
@media(max-width:760px){
  button.task-camping-link{width:100%;justify-content:flex-start;flex-wrap:wrap}
  button.task-camping-link strong{margin-left:auto}
}
/* Alpha 260 · beheerbare standaard e-mails */
.email-template-admin{display:grid;gap:14px}.email-template-card{display:grid;gap:10px;padding:14px;border:1px solid var(--border,#2f463a);border-radius:14px;background:rgba(255,255,255,.02)}.email-template-card textarea{min-height:260px;resize:vertical}.email-template-card code{font-size:.9em}

/* Alpha 266 — vertaalbuttons ook leesbaar in donker thema */
.camping-email-translate-now,
.camping-email-translation-toggle{
  background:var(--surface,#17271f)!important;
  color:var(--text,#f4f7f5)!important;
  border-color:rgba(126,190,158,.45)!important;
}
.camping-email-translate-now:hover,
.camping-email-translation-toggle:hover{
  filter:brightness(1.08);
}


/* Alpha 268 · taakfoto's duidelijker terugvinden */
.task-type-column .task-attachment-summary{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  padding-top:4px;
}
.task-type-column .task-attachment-summary>span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 9px;
  border-radius:9px;
  border:1px solid var(--line);
  background:var(--surface);
  font-size:.82rem;
  font-weight:800;
}
.task-type-column .task-attachment-open-prominent{
  min-height:38px!important;
  padding:8px 12px!important;
  font-size:.9rem!important;
  font-weight:850!important;
  border-width:1px!important;
}
.task-type-column .task-row.done .task-attachment-open-prominent{
  border-color:rgba(25,135,84,.45)!important;
  background:var(--green-soft)!important;
  color:var(--green-dark)!important;
}


/* Alpha 269 · taakfoto-knop leesbaar in donker thema */
.dark .task-type-column .task-row.done .task-attachment-open-prominent,
body.dark .task-type-column .task-row.done .task-attachment-open-prominent{
  background:#176044!important;
  color:#ffffff!important;
  border-color:#6dbb96!important;
  box-shadow:0 0 0 1px rgba(109,187,150,.12) inset;
}
.dark .task-type-column .task-row.done .task-attachment-open-prominent:hover,
body.dark .task-type-column .task-row.done .task-attachment-open-prominent:hover{
  background:#1d7150!important;
  color:#ffffff!important;
  border-color:#8ad0ae!important;
}


/* Alpha 272 · onderhoud meerdere foto's + zoeken in taken */
.maintenance-photo-preview.has-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:stretch;gap:10px}
.maintenance-photo-preview-summary{grid-column:1/-1;font-size:.9rem;color:var(--text)}
.maintenance-photo-preview-item{display:flex;align-items:center;gap:10px;min-width:0;padding:7px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}
.maintenance-photo-preview-item img{width:74px;height:58px;object-fit:cover;border-radius:9px;flex:0 0 auto}
.maintenance-photo-preview-item span{min-width:0;font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.task-search-wrap{display:flex;align-items:center;gap:7px;min-width:260px;max-width:420px;flex:1 1 320px;padding:0 8px 0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.task-search{width:100%;min-width:0;min-height:40px;border:0!important;outline:0!important;background:transparent!important;color:var(--text)!important;font:inherit;font-weight:700;box-shadow:none!important}
.task-search::placeholder{color:var(--muted);font-weight:600}.task-search-clear{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer}.task-search-clear:hover{background:var(--surface-soft);color:var(--text)}
@media(max-width:760px){.task-search-wrap{order:4;flex:1 1 100%;max-width:none;min-width:0;width:100%}.task-search{min-height:46px}}

/* Alpha 272 · gedeelde taak-/onderhoudsbijlagen */
.maintenance-linked-task-chip{background:rgba(53,121,246,.12);color:#9fc3ff;border:1px solid rgba(122,169,255,.28)}
.maintenance-attachment-origin{font-weight:800!important;color:var(--green-dark)!important}
.maintenance-attachment-from-task .maintenance-attachment-origin{color:#6fa7ff!important}
[data-theme="dark"] .maintenance-linked-task-chip{background:rgba(80,140,255,.14);color:#b9d2ff;border-color:rgba(120,170,255,.3)}
[data-theme="dark"] .maintenance-attachment-from-task{border-color:rgba(99,155,255,.34)}
[data-theme="dark"] .maintenance-attachment-from-maintenance{border-color:rgba(94,190,135,.28)}


/* Alpha 273 — taken zonder vaste datum */
#recordTaskNoDateChoice { margin-top: 8px; }
#recordTaskNoDateChoice span { font-weight: 600; }
#recordTaskCalendarChoice.is-disabled { opacity: .72; }
#recordTaskCalendarChoice.is-disabled span { font-style: italic; }
body.dark #recordTaskNoDateChoice { color: var(--text, #f3f4f6); }


/* Alpha 274 — duidelijke bestandsknop in donkere modus */
body.dark .record-task-attachments .maintenance-file-button,
body[data-theme="dark"] .record-task-attachments .maintenance-file-button {
  background: #174b38;
  color: #ffffff !important;
  border-color: #6bb892;
}
body.dark .record-task-attachments .maintenance-file-button span,
body[data-theme="dark"] .record-task-attachments .maintenance-file-button span {
  color: #ffffff !important;
  opacity: 1 !important;
}
body.dark .record-task-attachments .maintenance-file-button:hover,
body.dark .record-task-attachments .maintenance-file-button:focus-within,
body[data-theme="dark"] .record-task-attachments .maintenance-file-button:hover,
body[data-theme="dark"] .record-task-attachments .maintenance-file-button:focus-within {
  background: #1f644b;
  border-color: #8bd0ae;
}


/* Alpha 275 · Beheercentrum knoppen leesbaar in donker thema */
body.dark .master-item .save-master{
  background:#174f3b!important;
  color:#f4fff9!important;
  border:1px solid #2a7056!important;
  font-weight:750;
}
body.dark .master-item .save-master:hover:not(:disabled){
  background:#21664d!important;
  color:#fff!important;
}
body.dark .master-item .save-master:disabled{
  background:#263a32!important;
  color:#9fb3aa!important;
  border-color:#385047!important;
  opacity:1;
  cursor:not-allowed;
}
body.dark .master-item .delete-master{
  background:#4b2528!important;
  color:#ffd9db!important;
  border:1px solid #764047!important;
}
body.dark .master-item .delete-master:hover{
  background:#653036!important;
  color:#fff!important;
}

/* Alpha 276 — dashboardknop 'Alle taken' beter leesbaar in donkere modus */
body.dark .panel header button[data-open="tasks"]{
  background:#1f6f52;
  color:#ffffff;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset;
}
body.dark .panel header button[data-open="tasks"]:hover,
body.dark .panel header button[data-open="tasks"]:focus-visible{
  background:#2a8463;
  color:#ffffff;
  border-color:rgba(255,255,255,.34);
}


/* Alpha 282 — bijlagen van inkomende campingmail direct in communicatiedossier */
.camping-mail-archive-attachments{margin-top:12px;padding:12px;border:1px solid rgba(71,170,128,.28);border-radius:12px;background:rgba(42,115,84,.08)}
.camping-mail-archive-attachments>strong{display:block;margin-bottom:8px}
.camping-mail-archive-attachments>div{display:grid;gap:8px}
.camping-mail-archive-attachments article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid rgba(127,127,127,.22);border-radius:9px;background:rgba(255,255,255,.025)}
.camping-mail-archive-file-copy{display:flex;align-items:center;gap:9px;min-width:0}
.camping-mail-archive-file-copy div{display:grid;min-width:0}
.camping-mail-archive-file-copy b{overflow-wrap:anywhere}
.camping-mail-archive-file-copy small{opacity:.75}
.camping-mail-archive-file-actions{display:flex;gap:7px;flex-wrap:wrap}
.camping-mail-archive-file-actions a{display:inline-flex;align-items:center;padding:6px 9px;border:1px solid rgba(69,168,126,.45);border-radius:8px;text-decoration:none;font-weight:700;color:inherit}
.camping-mail-archive-file-actions a:hover{background:rgba(69,168,126,.16)}
@media(max-width:700px){.camping-mail-archive-attachments article{align-items:flex-start;flex-direction:column}.camping-mail-archive-file-actions{width:100%}}

/* Alpha 283 · contactgegevens bij campingtaken */
.task-camping-contact{display:flex;flex-wrap:wrap;gap:.45rem .7rem;margin:.45rem 0 .15rem}
.task-camping-contact a{display:inline-flex;align-items:center;gap:.25rem;padding:.38rem .55rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);text-decoration:none;font-weight:700;overflow-wrap:anywhere}
.task-camping-contact a:hover{background:var(--surface-soft)}
body.dark .task-camping-contact a{background:#18342b;color:#f3fff9;border-color:#315c4d}
body.dark .task-camping-contact a:hover{background:#225044;color:#fff}
\n\n/* Alpha 285 · bladerbare fotoviewer in campingdossier */\n.camping-viewer-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:220px;width:100%;touch-action:pan-y}\n.camping-viewer-stage>img{max-width:100%;max-height:68vh;object-fit:contain;margin:auto}\n.camping-viewer-nav{position:absolute;top:50%;z-index:4;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:52px;height:52px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(15,27,23,.72);color:#fff;font-size:2.25rem;line-height:1;box-shadow:0 4px 18px rgba(0,0,0,.28);cursor:pointer;backdrop-filter:blur(4px)}\n.camping-viewer-nav:hover,.camping-viewer-nav:focus-visible{background:rgba(27,114,82,.94);outline:2px solid rgba(255,255,255,.75);outline-offset:2px}\n.camping-viewer-prev{left:12px}.camping-viewer-next{right:12px}\n.camping-viewer-counter{position:absolute;left:50%;bottom:10px;z-index:4;transform:translateX(-50%);padding:6px 11px;border-radius:999px;background:rgba(15,27,23,.76);color:#fff;font-size:.85rem;font-weight:800;box-shadow:0 2px 10px rgba(0,0,0,.22)}\n@media(max-width:700px){.camping-viewer-nav{width:44px;height:44px;font-size:2rem}.camping-viewer-prev{left:6px}.camping-viewer-next{right:6px}.camping-viewer-counter{bottom:6px}}\n
/* Alpha 297 · reviewbronnen als duidelijke dossiers met eigen reviews */
.camping-reviews-section .camping-review-source-manual{
  position:relative;
  overflow:hidden;
  border:2px solid rgba(31,112,78,.28)!important;
  border-style:solid!important;
  border-radius:16px!important;
  padding:0 16px 16px!important;
  margin:0 0 18px!important;
  background:var(--surface,#fff)!important;
  box-shadow:0 5px 18px rgba(20,67,45,.06);
}
.camping-review-source-label{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin:0 -16px 14px!important;
  padding:11px 16px!important;
  border-bottom:1px solid rgba(31,112,78,.22)!important;
  background:rgba(31,112,78,.075)!important;
}
.camping-review-source-label>span{
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--muted,#66766f);
}
.camping-review-source-label>strong{
  font-size:1.08rem;
  color:var(--text,#173228);
}
.camping-review-list-title{
  margin:14px 0 2px;
  padding:10px 0 8px;
  border-top:2px solid rgba(31,112,78,.18);
  font-weight:900;
  font-size:.92rem;
  color:var(--text,#173228);
}
.camping-review-source-manual+.camping-review-source-manual{margin-top:22px!important}
.camping-review-source-manual .camping-review-quotes{margin-top:0!important}
.camping-review-clear{border-color:rgba(176,119,24,.28)!important}
.camping-review-delete-source{border-color:rgba(180,54,54,.3)!important}
body.dark .camping-reviews-section .camping-review-source-manual{background:var(--surface,#14251d)!important;border-color:rgba(106,190,144,.28)!important}
body.dark .camping-review-source-label{background:rgba(106,190,144,.08)!important;border-bottom-color:rgba(106,190,144,.22)!important}
@media(max-width:700px){
  .camping-reviews-section .camping-review-source-manual{padding:0 12px 12px!important}
  .camping-review-source-label{margin:0 -12px 12px!important;padding:11px 12px!important}
}

/* Alpha 298 · gekoppelde bron en reviews vormen één zichtbaar blok */
.camping-review-manual-heading{margin:0 0 10px!important;padding:0!important}
.camping-review-manual-heading>strong{font-size:1rem!important}
.camping-review-manual-heading>span{display:none!important}
.camping-review-found-heading{margin:22px 0 10px;padding-top:16px;border-top:2px solid rgba(31,112,78,.18)}
.camping-review-found-heading strong{font-size:.95rem}
.camping-review-source-manual .camping-review-list-title{font-size:1rem!important;margin-top:12px!important}

/* Alpha 299 · zichtbare voortgang bij reviewimport en vertaling */
.camping-review-import-progress{
  margin-top:12px;
  padding:14px 16px;
  border:1px solid rgba(125,211,160,.28);
  border-radius:12px;
  background:rgba(18,66,47,.24);
}
.camping-review-import-progress[hidden]{display:none!important}
.camping-review-import-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.camping-review-import-progress-head strong{font-size:14px}
.camping-review-import-progress-head span{font-variant-numeric:tabular-nums;color:var(--muted,#9fb3aa);font-size:13px}
.camping-review-import-progress-bar{height:10px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.camping-review-import-progress-bar span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2d8d62,#55c58d);transition:width .25s ease}
.camping-review-import-progress p{margin:9px 0 0;color:var(--muted,#b6c5bf);font-size:13px;line-height:1.4}
#campingReviewImportText[readonly]{opacity:.72;cursor:wait}


/* Alpha 305 · altijd bereikbare sluitknop voor document/PDF-viewer op mobiel */
.media-viewer-floating-close{display:none}
@media(max-width:700px){
  .media-viewer-floating-close{
    display:flex!important;position:fixed;top:calc(10px + env(safe-area-inset-top));right:10px;
    z-index:10050;width:48px;height:48px;align-items:center;justify-content:center;
    border:0;border-radius:14px;background:rgba(20,43,33,.94);color:#fff;font-size:2rem;line-height:1;
    box-shadow:0 6px 24px rgba(0,0,0,.28);cursor:pointer;touch-action:manipulation
  }
  .media-viewer>header{position:sticky!important;top:0;z-index:50;background:var(--surface,#fff);padding-right:56px}
  .media-viewer iframe{height:100%!important;min-height:0!important;border-radius:10px}
}

/* Alpha 306 · reviewfoto's */
.camping-review-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:12px;max-width:620px}
.camping-review-photo-thumb{padding:0;border:1px solid var(--line,#dfe7e2);border-radius:10px;overflow:hidden;background:rgba(0,0,0,.04);aspect-ratio:4/3;cursor:pointer}
.camping-review-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.camping-review-photo-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px}.camping-review-photo-actions span{font-size:12px;color:var(--muted,#68766f)}
.camping-review-clipboard-photos{padding:11px 13px;border:1px solid rgba(45,141,98,.28);border-radius:10px;background:rgba(45,141,98,.08)}
.camping-review-clipboard-photos p{margin:5px 0 0!important;font-size:12px;color:var(--muted,#68766f)}
@media(max-width:640px){.camping-review-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.camping-review-photo-actions .camping-inline-action{width:100%}}

/* Alpha 308 · grotere reviewfoto's en galerij */
.camping-review-photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-width:820px}
.camping-review-photo-thumb{border-radius:12px;min-height:112px}
.camping-review-photo-thumb img{transition:transform .18s ease}
.camping-review-photo-thumb:hover img{transform:scale(1.025)}
.camping-review-viewer-stage img{max-width:min(92vw,1200px);max-height:82vh;object-fit:contain}
@media(max-width:640px){.camping-review-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.camping-review-photo-thumb{min-height:118px}.camping-review-viewer-stage .camping-viewer-nav{width:48px;height:48px;font-size:2.2rem}}

/* Phoenix 11.0.0 Alpha 313 - tabletmenu zelfstandig scrollbaar */
@media (max-width: 1100px) {
  .side-nav.mobile-open {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    max-height: 100dvh !important;
    height: 100dvh !important;
    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
    touch-action: pan-y;
  }

  .side-nav.mobile-open nav {
    overflow: visible !important;
    flex: 0 0 auto;
    padding-bottom: 18px !important;
  }

  .side-nav.mobile-open .side-footer {
    margin-top: 12px !important;
    flex: 0 0 auto;
    padding-bottom: calc(18px + env(safe-area-inset-bottom)) !important;
  }
}


/* Phoenix 11.0.0 Alpha 314 - tabletmenu als zelfstandig scrollpaneel */
@media (max-width: 1100px) {
  html.mobile-menu-visible,
  body.mobile-menu-visible {
    overflow: hidden !important;
    overscroll-behavior: none !important;
    height: 100% !important;
  }

  .side-nav.mobile-open {
    display: flex !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    width: min(86vw, 330px) !important;
    padding: max(18px, env(safe-area-inset-top)) 16px max(12px, env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
    touch-action: none !important;
  }

  .side-nav.mobile-open .brand {
    flex: 0 0 auto !important;
  }

  .side-nav.mobile-open nav {
    display: grid !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    padding-right: 3px !important;
    padding-bottom: 18px !important;
  }

  .side-nav.mobile-open .side-footer {
    flex: 0 0 auto !important;
    margin-top: 10px !important;
    padding: 10px 7px max(8px, env(safe-area-inset-bottom)) !important;
    background: linear-gradient(180deg, rgba(18,62,48,0), #123e30 22%);
  }

  .mobile-menu-backdrop {
    touch-action: none !important;
    overscroll-behavior: none !important;
  }
}

/* Phoenix 11.0.0 Alpha 315 - tabletmenu volledig als één scrollbaar vlak */
@media (max-width: 1100px) {
  .side-nav.mobile-open {
    display: block !important;
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: min(86vw, 330px) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    box-sizing: border-box !important;
    padding: max(18px, env(safe-area-inset-top)) 16px calc(34px + env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    scrollbar-gutter: stable;
  }

  .side-nav.mobile-open .brand,
  .side-nav.mobile-open nav,
  .side-nav.mobile-open .side-footer {
    display: flex;
    flex: none !important;
    min-height: auto !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  .side-nav.mobile-open .brand { display:flex !important; }
  .side-nav.mobile-open nav {
    display: grid !important;
    gap: 6px !important;
    padding-bottom: 8px !important;
  }

  .side-nav.mobile-open .side-footer {
    display: block !important;
    margin-top: 16px !important;
    padding: 12px 7px calc(18px + env(safe-area-inset-bottom)) !important;
    background: transparent !important;
  }

  html.mobile-menu-visible,
  body.mobile-menu-visible {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
}

/* Phoenix 11.0.0 Alpha 316 - compact permanent tabletmenu */
/* Op tablets waar de zijbalk permanent zichtbaar is, past de volledige navigatie
   nu zonder scrollen beter in de beschikbare schermhoogte. */
@media (min-width: 901px) and (max-height: 1000px) {
  .side-nav {
    padding: 12px 12px 10px !important;
  }
  .side-nav .brand {
    gap: 9px !important;
    padding: 2px 5px 10px !important;
  }
  .side-nav .brand-logo,
  .side-nav .brand-mark {
    width: 36px !important;
    height: 36px !important;
    border-radius: 11px !important;
  }
  .side-nav .brand > div:last-child strong {
    font-size: .94rem !important;
  }
  .side-nav .brand > div:last-child span {
    font-size: .67rem !important;
    margin-top: 0 !important;
  }
  .side-nav nav {
    gap: 2px !important;
  }
  .side-nav .nav-item {
    min-height: 0 !important;
    padding: 7px 10px !important;
    border-radius: 10px !important;
    grid-template-columns: 23px 1fr auto !important;
  }
  .side-nav .nav-item span {
    font-size: 1rem !important;
    line-height: 1 !important;
  }
  .side-nav .nav-item b {
    font-size: .84rem !important;
    line-height: 1.12 !important;
  }
  .side-nav .nav-item em {
    padding: 1px 6px !important;
    font-size: .66rem !important;
  }
  .side-nav .nav-section-label {
    margin: 5px 7px 1px !important;
    padding: 6px 4px 2px !important;
    font-size: .62rem !important;
  }
  .side-nav .side-footer {
    gap: 4px !important;
    padding: 6px 6px 2px !important;
  }
  .side-nav .side-footer .phoenix-primary-label {
    font-size: .76rem !important;
    line-height: 1.1 !important;
  }
  .side-nav .side-footer small {
    font-size: .67rem !important;
    line-height: 1.1 !important;
  }
}

/* Extra compacte variant voor lage tabletvensters / browserbalken. */
@media (min-width: 901px) and (max-height: 760px) {
  .side-nav { padding-top: 8px !important; padding-bottom: 6px !important; }
  .side-nav .brand { padding-bottom: 6px !important; }
  .side-nav nav { gap: 0 !important; }
  .side-nav .nav-item { padding-top: 5px !important; padding-bottom: 5px !important; }
  .side-nav .nav-section-label { margin-top: 3px !important; padding-top: 4px !important; }
  .side-nav .side-footer { padding-top: 3px !important; }
}


/* Alpha 317 · interne Phoenix-chat */
.phoenix-chat-shell{display:grid;grid-template-columns:minmax(230px,320px) minmax(0,1fr);min-height:640px;height:calc(100vh - 215px);border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-soft)}
.phoenix-chat-conversations{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border);background:color-mix(in srgb,var(--panel) 94%,var(--accent) 6%)}
.phoenix-chat-conversation-title{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}
.phoenix-chat-conversation-title small{color:var(--muted)}
.phoenix-chat-conversation-list{overflow:auto;overscroll-behavior:contain;padding:8px}
.phoenix-chat-conversation{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;border:0;background:transparent;text-align:left;padding:10px;border-radius:14px;color:inherit}
.phoenix-chat-conversation:hover,.phoenix-chat-conversation.active{background:color-mix(in srgb,var(--accent) 12%,var(--panel) 88%)}
.phoenix-chat-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent);color:white;font-weight:800;font-size:18px}
.phoenix-chat-conversation-copy{display:flex;flex-direction:column;min-width:0;gap:3px}.phoenix-chat-conversation-copy strong,.phoenix-chat-conversation-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phoenix-chat-conversation-copy small{color:var(--muted)}
.phoenix-chat-conversation-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.phoenix-chat-conversation-meta time{font-size:11px;color:var(--muted)}.phoenix-chat-conversation-meta em{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent);color:white;font-style:normal;font-size:12px;font-weight:800}
.phoenix-chat-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;background:var(--bg)}
.phoenix-chat-head{padding:14px 18px;border-bottom:1px solid var(--border);background:var(--panel)}.phoenix-chat-head div{display:flex;flex-direction:column;gap:2px}.phoenix-chat-head small{color:var(--muted)}
.phoenix-chat-messages{overflow:auto;overscroll-behavior:contain;padding:20px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.phoenix-chat-empty{margin:auto;color:var(--muted);text-align:center;padding:28px}
.phoenix-chat-bubble{max-width:min(78%,720px);padding:10px 13px;border-radius:16px;background:var(--panel);border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.04)}.phoenix-chat-bubble.mine{align-self:flex-end;background:color-mix(in srgb,var(--accent) 13%,var(--panel) 87%);border-bottom-right-radius:5px}.phoenix-chat-bubble.theirs{align-self:flex-start;border-bottom-left-radius:5px}.phoenix-chat-bubble p{margin:5px 0 0;line-height:1.45;white-space:normal}.phoenix-chat-bubble-head{display:flex;gap:12px;justify-content:space-between;align-items:center}.phoenix-chat-bubble-head time,.phoenix-chat-read-state{font-size:11px;color:var(--muted)}.phoenix-chat-read-state{display:block;text-align:right;margin-top:5px}
.phoenix-chat-linked{margin-top:10px;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;border:1px solid var(--border);background:var(--panel);color:inherit;border-radius:12px;padding:9px 10px}.phoenix-chat-linked>span:nth-child(2){display:flex;flex-direction:column}.phoenix-chat-linked small{color:var(--muted)}
.phoenix-chat-composer{padding:12px;border-top:1px solid var(--border);background:var(--panel)}.phoenix-chat-composer textarea{width:100%;resize:none;min-height:72px}.phoenix-chat-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.phoenix-chat-context-actions{display:flex;gap:8px;min-width:0}.phoenix-chat-context-actions select{max-width:220px}
@media(max-width:900px){.phoenix-chat-shell{grid-template-columns:210px minmax(0,1fr);height:calc(100dvh - 160px);min-height:520px}.phoenix-chat-composer-actions{align-items:stretch;flex-direction:column}.phoenix-chat-context-actions{display:grid;grid-template-columns:1fr 1fr}.phoenix-chat-context-actions select{max-width:none}}
@media(max-width:680px){.phoenix-chat-shell{display:flex;flex-direction:column;height:calc(100dvh - 125px);min-height:0}.phoenix-chat-conversations{max-height:190px;border-right:0;border-bottom:1px solid var(--border)}.phoenix-chat-conversation-list{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden}.phoenix-chat-conversation{min-width:190px}.phoenix-chat-main{flex:1;min-height:0}.phoenix-chat-bubble{max-width:90%}.phoenix-chat-context-actions{grid-template-columns:1fr}}


/* Alpha 318 · chatmeldingen, bijlagen en verwijderen */
.chat-heading-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.phoenix-chat-bubble-head>span{display:flex;align-items:center;gap:6px}
.phoenix-chat-delete{border:0;background:transparent;padding:2px 4px;opacity:.62;cursor:pointer}.phoenix-chat-delete:hover{opacity:1}
.phoenix-chat-attachments{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,190px));gap:8px;margin-top:9px}
.phoenix-chat-photo{border:0;background:transparent;padding:0;text-align:left;overflow:hidden;border-radius:12px;cursor:pointer;color:inherit}.phoenix-chat-photo img{display:block;width:100%;height:128px;object-fit:cover;border-radius:12px;border:1px solid var(--border);background:var(--panel)}.phoenix-chat-photo span{display:block;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}
.phoenix-chat-file{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;text-decoration:none;color:inherit;padding:9px 10px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.phoenix-chat-file>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.phoenix-chat-file strong,.phoenix-chat-file small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phoenix-chat-file small{color:var(--muted)}
.phoenix-chat-pending{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.phoenix-chat-pending-item{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--panel) 90%);font-size:12px}.phoenix-chat-pending-item button{border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer;color:inherit}
@media(max-width:680px){.chat-heading-actions{width:100%}.chat-heading-actions button{flex:1}.phoenix-chat-attachments{grid-template-columns:repeat(2,minmax(0,1fr))}.phoenix-chat-photo img{height:112px}.phoenix-chat-context-actions{display:flex;flex-wrap:wrap}.phoenix-chat-context-actions>button{flex:0 0 auto}.phoenix-chat-context-actions select{flex:1 1 100%}}


/* Alpha 319 · mobiele chatindeling */
.phoenix-chat-menu-toggle,.phoenix-chat-drawer-close,.phoenix-chat-mobile-tools{display:none}
.phoenix-chat-conversation-title>span{display:flex;align-items:center;gap:8px}
@media(max-width:680px){
  #chatView{padding-bottom:0}
  #chatView>.section-heading.chat-heading{margin-bottom:8px}
  #chatView>.section-heading.chat-heading>div:first-child p:not(.eyebrow){display:none}
  #chatView>.section-heading.chat-heading h2{font-size:1.35rem;margin-bottom:0}
  .chat-heading-actions{display:none}
  .phoenix-chat-shell{position:relative;height:calc(100dvh - 92px);min-height:560px;border-radius:14px;overflow:hidden}
  .phoenix-chat-main{width:100%;height:100%}
  .phoenix-chat-head{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;min-height:62px}
  .phoenix-chat-menu-toggle{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:24px;padding:0}
  .phoenix-chat-head strong{font-size:1.05rem}.phoenix-chat-head small{font-size:12px}
  .phoenix-chat-conversations{display:flex;position:absolute;z-index:30;left:0;top:0;bottom:0;width:min(86vw,340px);max-height:none;transform:translateX(-105%);transition:transform .2s ease;border:0;border-right:1px solid var(--border);box-shadow:10px 0 30px rgba(0,0,0,.2);background:var(--panel)}
  .phoenix-chat-conversations.open{transform:translateX(0)}
  .phoenix-chat-conversation-title{padding:14px 14px 10px}.phoenix-chat-drawer-close{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-size:24px;line-height:1;padding:0}
  .phoenix-chat-mobile-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 10px 10px;border-bottom:1px solid var(--border)}
  .phoenix-chat-mobile-tools button{min-height:40px}
  .phoenix-chat-conversation-list{display:block;overflow-y:auto;overflow-x:hidden;padding:8px 10px 18px}
  .phoenix-chat-conversation{min-width:0;width:100%;padding:11px 9px}
  .phoenix-chat-messages{padding:14px 12px 18px;gap:12px}
  .phoenix-chat-bubble{max-width:94%;font-size:15px;padding:11px 13px}.phoenix-chat-bubble p{line-height:1.5}
  .phoenix-chat-composer{padding:9px 10px 10px}.phoenix-chat-composer textarea{min-height:62px;max-height:130px;font-size:16px}
  .phoenix-chat-composer-actions{margin-top:6px;gap:6px}
  .phoenix-chat-context-actions{display:grid;grid-template-columns:auto 1fr;gap:6px}.phoenix-chat-context-actions>button{grid-row:1 / span 2}.phoenix-chat-context-actions select{min-width:0;width:100%;font-size:12px;height:36px}
  .phoenix-chat-composer-actions>.primary-action{min-height:44px;font-size:15px}
}
@media(max-width:420px){
  .phoenix-chat-shell{height:calc(100dvh - 80px)}
  #chatView>.section-heading.chat-heading{display:none}
  .phoenix-chat-context-actions{grid-template-columns:1fr 1fr}.phoenix-chat-context-actions>button{grid-row:auto;grid-column:1 / -1}.phoenix-chat-context-actions select{font-size:11px}
}
/* Alpha 320 - Back-upcentrum */
.backup-center-dialog{width:min(900px,94vw);max-height:92vh;overflow:auto}.backup-center-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.backup-center-actions button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;text-align:left}.backup-center-actions button span{font-size:.82rem;opacity:.76}.backup-center-location{margin:10px 0 14px;color:var(--muted,#64748b);font-size:.9rem}.backup-center-list{display:grid;gap:10px}.backup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(15,23,42,.1);border-radius:14px;padding:12px 14px;background:#fff}.backup-row-main{min-width:0}.backup-row-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backup-row-main small{display:block;color:#64748b;margin-top:3px}.backup-row-actions{display:flex;gap:8px;flex-wrap:wrap}.backup-center-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.backup-empty{padding:24px;text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:14px}@media(max-width:640px){.backup-center-actions{grid-template-columns:1fr}.backup-row{grid-template-columns:1fr}.backup-row-actions{justify-content:flex-start}.backup-center-dialog{width:96vw}}

/* Alpha 325 · floating Phoenix-chat + stabiele scrollpositie */
.phoenix-chat-floating-button{
  position:fixed;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:1200;
  width:64px;height:64px;border:0;border-radius:50%;display:grid;place-items:center;padding:0;
  background:var(--accent,#167553);color:#fff;box-shadow:0 12px 34px rgba(10,55,39,.3);cursor:grab;
  touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:contain;
  transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;background .18s ease;
}
.phoenix-chat-floating-button.drag-ready,.phoenix-chat-floating-button.dragging{cursor:grabbing;transition:none!important;animation:none!important;transform:none!important}
.phoenix-chat-floating-button.dragging:hover{transform:none!important}
.phoenix-chat-floating-button:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 16px 38px rgba(10,55,39,.36)}
.phoenix-chat-floating-button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent,#167553) 35%,white);outline-offset:4px}
.phoenix-chat-floating-icon{font-size:28px;line-height:1;filter:grayscale(1) brightness(0) invert(1)}
.phoenix-chat-floating-badge{position:absolute;right:-3px;top:-4px;min-width:24px;height:24px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:#dc2626;color:#fff;border:3px solid var(--bg,#f4f7f5);font-size:11px;font-weight:900;line-height:1}
.phoenix-chat-floating-button.new-message{animation:phoenix-chat-nudge .72s ease-in-out 1}
@keyframes phoenix-chat-nudge{0%,100%{transform:rotate(0)}20%{transform:rotate(-6deg) scale(1.04)}40%{transform:rotate(6deg) scale(1.05)}60%{transform:rotate(-4deg) scale(1.03)}80%{transform:rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.phoenix-chat-floating-button.new-message{animation:none}.phoenix-floating-chat-panel,.phoenix-chat-conversations{transition:none!important}}

.phoenix-floating-chat{position:fixed;inset:0;z-index:1190;pointer-events:none;visibility:hidden}
.phoenix-floating-chat.open{visibility:visible}
.phoenix-floating-chat.open .phoenix-floating-chat-panel{pointer-events:auto}
.phoenix-floating-chat-backdrop{position:absolute;inset:0;background:transparent;opacity:0;pointer-events:none}
.phoenix-floating-chat-panel{
  position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));
  width:min(820px,calc(100vw - 44px));height:min(760px,calc(100dvh - 44px));min-height:520px;
  display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:22px;
  background:var(--panel);box-shadow:0 24px 70px rgba(12,35,27,.28);transform:translateY(18px) scale(.975);opacity:0;
  transition:transform .2s ease,opacity .2s ease;
}
.phoenix-floating-chat.open .phoenix-floating-chat-panel{transform:none;opacity:1}
.phoenix-chat-floating-button.chat-open{opacity:0;pointer-events:none;transform:scale(.86)}
.phoenix-floating-chat-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-bottom:1px solid var(--border);background:var(--panel)}
.phoenix-floating-chat-brand{display:flex;align-items:center;gap:10px;min-width:0}.phoenix-floating-chat-brand>div{display:flex;flex-direction:column;min-width:0}.phoenix-floating-chat-brand strong{font-size:1.08rem}.phoenix-floating-chat-brand small{color:var(--muted);font-size:12px}
.phoenix-floating-chat-logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--panel));font-size:20px}
.phoenix-floating-chat-header-actions{display:flex;align-items:center;gap:7px}.phoenix-floating-chat-header-actions button{width:40px;height:40px;display:grid;place-items:center;padding:0;border-radius:11px;font-size:18px}.phoenix-floating-chat-close{font-size:25px!important;line-height:1}
.phoenix-floating-chat .phoenix-chat-shell{height:100%;min-height:0;border:0;border-radius:0;box-shadow:none;grid-template-columns:minmax(230px,285px) minmax(0,1fr)}
.phoenix-floating-chat .phoenix-chat-head{min-height:64px;display:grid;grid-template-columns:minmax(0,1fr);align-items:center}.phoenix-floating-chat .phoenix-chat-head>div{min-width:0}.phoenix-floating-chat .phoenix-chat-head strong,.phoenix-floating-chat .phoenix-chat-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phoenix-floating-chat .phoenix-chat-messages{padding:18px 20px 22px;background:color-mix(in srgb,var(--bg) 96%,var(--accent) 4%)}
.phoenix-floating-chat .phoenix-chat-bubble{max-width:84%;font-size:14px}
.phoenix-floating-chat .phoenix-chat-composer{padding:11px 13px 13px}.phoenix-floating-chat .phoenix-chat-composer textarea{min-height:66px;max-height:130px;font-size:15px}
.phoenix-floating-chat .phoenix-chat-context-actions{flex-wrap:wrap}.phoenix-floating-chat .phoenix-chat-context-actions select{max-width:190px}

@media(max-width:900px){
  .phoenix-floating-chat-panel{width:min(720px,calc(100vw - 28px));right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));height:min(760px,calc(100dvh - 28px))}
  .phoenix-floating-chat .phoenix-chat-shell{grid-template-columns:220px minmax(0,1fr)}
}
@media(max-width:680px){
  body.phoenix-chat-open{overflow:hidden;overscroll-behavior:none}
  .phoenix-chat-floating-button{width:58px;height:58px;right:max(15px,env(safe-area-inset-right));bottom:max(15px,env(safe-area-inset-bottom))}.phoenix-chat-floating-icon{font-size:25px}
  .phoenix-floating-chat{height:var(--phoenix-chat-vvh,100dvh)}
  .phoenix-floating-chat-backdrop{display:none}
  .phoenix-floating-chat-panel{position:fixed;inset:0;width:100vw;height:var(--phoenix-chat-vvh,100dvh);min-height:0;max-width:none;max-height:none;border:0;border-radius:0;box-shadow:none;transform:translateY(12px);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .phoenix-floating-chat-header{min-height:58px;padding:8px 10px}.phoenix-floating-chat-logo{width:36px;height:36px}.phoenix-floating-chat-brand strong{font-size:1rem}
  .phoenix-floating-chat-header-actions{gap:4px}.phoenix-floating-chat-header-actions button{width:40px;height:40px}
  .phoenix-floating-chat .phoenix-chat-shell{position:relative;display:flex;flex-direction:column;height:100%;min-height:0}
  .phoenix-floating-chat .phoenix-chat-main{flex:1;height:100%;min-height:0}
  .phoenix-floating-chat .phoenix-chat-head{display:grid;grid-template-columns:44px minmax(0,1fr);min-height:58px;padding:8px 10px}
  .phoenix-floating-chat .phoenix-chat-menu-toggle{display:grid}
  .phoenix-floating-chat .phoenix-chat-conversations{display:flex;position:absolute;z-index:40;left:0;top:0;bottom:0;width:min(88vw,360px);max-height:none;transform:translateX(-105%);transition:transform .2s ease;border:0;border-right:1px solid var(--border);box-shadow:12px 0 32px rgba(0,0,0,.22);background:var(--panel)}
  .phoenix-floating-chat .phoenix-chat-conversations.open{transform:translateX(0)}
  .phoenix-floating-chat .phoenix-chat-drawer-close{display:grid}.phoenix-floating-chat .phoenix-chat-mobile-tools{display:grid}
  .phoenix-floating-chat .phoenix-chat-conversation-list{display:block;overflow-y:auto;overflow-x:hidden;padding-bottom:max(18px,env(safe-area-inset-bottom))}.phoenix-floating-chat .phoenix-chat-conversation{width:100%;min-width:0}
  .phoenix-floating-chat .phoenix-chat-messages{padding:12px 11px 15px;gap:10px}.phoenix-floating-chat .phoenix-chat-bubble{max-width:94%;font-size:15px}
  .phoenix-floating-chat .phoenix-chat-composer{position:relative;z-index:3;padding:8px 9px max(9px,env(safe-area-inset-bottom));background:var(--panel)}
  .phoenix-floating-chat .phoenix-chat-composer textarea{min-height:54px;max-height:105px;font-size:16px}
  .phoenix-floating-chat .phoenix-chat-composer-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px}.phoenix-floating-chat .phoenix-chat-context-actions{display:flex;min-width:0;overflow-x:auto;gap:6px;padding-bottom:1px}.phoenix-floating-chat .phoenix-chat-context-actions>button{flex:0 0 auto;min-height:42px}.phoenix-floating-chat .phoenix-chat-context-actions select{display:none}.phoenix-floating-chat .phoenix-chat-composer-actions>.primary-action{min-width:92px;min-height:44px;margin:0}
}
@media(max-width:380px){.phoenix-floating-chat-brand small{display:none}.phoenix-floating-chat-header-actions #chatRefreshButton{display:none}.phoenix-floating-chat .phoenix-chat-bubble{max-width:96%}}


/* Alpha 326 · chat blijft naast Phoenix bedienbaar + chatbijlagen in lightbox */
@media(min-width:681px){
  /* Alleen het chatvenster vangt muisklikken. Het Phoenix-menu en de pagina ernaast blijven bedienbaar. */
  .phoenix-floating-chat.open{pointer-events:none}
  .phoenix-floating-chat.open .phoenix-floating-chat-panel{pointer-events:auto}
}
.phoenix-chat-file{width:100%;font:inherit;cursor:pointer;text-align:left}
.phoenix-chat-attachment-lightbox{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:24px;opacity:0;transition:opacity .16s ease}
.phoenix-chat-attachment-lightbox[hidden]{display:none}
.phoenix-chat-attachment-lightbox.open{opacity:1}
.phoenix-chat-lightbox-backdrop{position:absolute;inset:0;border:0;background:rgba(7,20,15,.68);backdrop-filter:blur(3px);cursor:pointer}
.phoenix-chat-lightbox-dialog{position:relative;z-index:1;width:min(1050px,94vw);height:min(820px,92dvh);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.38)}
.phoenix-chat-lightbox-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid var(--border);background:var(--panel)}
.phoenix-chat-lightbox-dialog>header>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phoenix-chat-lightbox-dialog>header>div{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.phoenix-chat-lightbox-dialog>header a,.phoenix-chat-lightbox-dialog>header button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:inherit;text-decoration:none;font-weight:700;cursor:pointer}
#chatAttachmentLightboxClose{width:42px;padding:0;font-size:25px}
.phoenix-chat-lightbox-body{min-height:0;overflow:auto;background:color-mix(in srgb,var(--bg) 97%,var(--accent) 3%)}
.phoenix-chat-lightbox-frame{display:block;width:100%;height:100%;min-height:520px;border:0;background:#fff}
.phoenix-chat-lightbox-image{width:100%;height:100%;display:grid;place-items:center;padding:18px;overflow:auto}
.phoenix-chat-lightbox-image img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 6px 28px rgba(0,0,0,.16)}
.phoenix-chat-lightbox-no-preview{height:100%;display:grid;place-content:center;justify-items:center;gap:10px;padding:28px;text-align:center;color:var(--muted)}
.phoenix-chat-lightbox-no-preview>span{font-size:58px}.phoenix-chat-lightbox-no-preview strong{font-size:1.1rem;color:var(--text)}.phoenix-chat-lightbox-no-preview p{max-width:560px;margin:0;line-height:1.5}
@media(max-width:680px){
  .phoenix-chat-attachment-lightbox{padding:0}
  .phoenix-chat-lightbox-dialog{width:100vw;height:var(--phoenix-chat-vvh,100dvh);max-width:none;max-height:none;border:0;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .phoenix-chat-lightbox-dialog>header{padding:8px 9px}.phoenix-chat-lightbox-dialog>header a{font-size:12px;padding:0 8px}.phoenix-chat-lightbox-dialog>header>div{gap:4px}
  .phoenix-chat-lightbox-frame{min-height:0;height:100%}
}

/* Alpha 327 · keuze veiligheidsback-up voor updates */
.update-backup-choice{
  display:grid;gap:10px;margin:0;padding:14px 16px;border:1px solid var(--line,#d8dedb);
  border-radius:14px;background:var(--surface,#fff);
}
.update-backup-choice legend{font-weight:800;padding:0 6px}
.update-backup-choice>p{margin:0 0 2px}
.update-backup-choice label{
  display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--line,#d8dedb);
  border-radius:12px;cursor:pointer;background:rgba(24,79,59,.035)
}
.update-backup-choice label:has(input:checked){border-color:rgba(24,79,59,.55);background:rgba(24,79,59,.09)}
.update-backup-choice input{margin-top:3px;min-width:20px;min-height:20px}
.update-backup-choice span{display:grid;gap:3px}
.update-backup-choice small{font-weight:400;opacity:.72;line-height:1.35}
body.dark .update-backup-choice{background:var(--surface,#1f2824)}
@media(max-width:680px){.update-backup-choice{padding:12px}.update-backup-choice label{padding:12px 10px}}

/* Alpha 329 · chatfoto/lightbox altijd sluitbaar, ook op mobiel/PWA */
.phoenix-chat-lightbox-floating-close{
  position:fixed;
  z-index:1510;
  top:max(12px,calc(env(safe-area-inset-top) + 8px));
  right:max(12px,calc(env(safe-area-inset-right) + 8px));
  width:48px;
  height:48px;
  padding:0;
  border:1px solid rgba(255,255,255,.38);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(8,28,20,.88);
  color:#fff;
  box-shadow:0 8px 28px rgba(0,0,0,.34);
  font-size:30px;
  line-height:1;
  font-weight:500;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.phoenix-chat-lightbox-floating-close:focus-visible{
  outline:3px solid rgba(255,255,255,.82);
  outline-offset:2px;
}
.phoenix-chat-attachment-lightbox[hidden] .phoenix-chat-lightbox-floating-close{display:none}
@media(min-width:681px){
  .phoenix-chat-lightbox-floating-close{display:none}
}
@media(max-width:680px){
  /* De sluitknop staat buiten de scrollende preview en blijft dus altijd bereikbaar. */
  .phoenix-chat-lightbox-dialog>header{padding-right:62px}
  #chatAttachmentLightboxClose{display:none}
  .phoenix-chat-lightbox-image{padding-top:64px}
}

/* Alpha 330 · chat-lightbox altijd boven vaste Phoenix-header/menu */
.phoenix-chat-attachment-lightbox{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483000 !important;
  isolation:isolate;
}
.phoenix-chat-lightbox-backdrop{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483001 !important;
}
.phoenix-chat-lightbox-dialog{
  position:fixed !important;
  z-index:2147483002 !important;
}
.phoenix-chat-lightbox-floating-close{
  z-index:2147483646 !important;
}

@media(max-width:680px){
  .phoenix-chat-attachment-lightbox{
    width:100vw !important;
    width:100dvw !important;
    height:100vh !important;
    height:100dvh !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  .phoenix-chat-lightbox-dialog{
    inset:0 !important;
    width:100vw !important;
    width:100dvw !important;
    height:100vh !important;
    height:100dvh !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    border-radius:0 !important;
  }

  .phoenix-chat-lightbox-floating-close{
    position:fixed !important;
    top:calc(env(safe-area-inset-top, 0px) + 12px) !important;
    right:calc(env(safe-area-inset-right, 0px) + 12px) !important;
    width:52px !important;
    height:52px !important;
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  /* Bij geopende preview mag geen vaste Phoenix-header erboven kunnen liggen. */
  body:has(.phoenix-chat-attachment-lightbox:not([hidden])) .topbar,
  body:has(.phoenix-chat-attachment-lightbox:not([hidden])) .mobile-topbar,
  body:has(.phoenix-chat-attachment-lightbox:not([hidden])) header.app-header{
    z-index:0 !important;
  }
}

/* Alpha 331 · chatbijlage delen/downloaden zonder Phoenix te verlaten */
#chatAttachmentDownload{
  appearance:none;
  border:1px solid rgba(24,79,59,.24);
  border-radius:9px;
  background:rgba(24,79,59,.08);
  color:inherit;
  font:inherit;
  font-weight:700;
  padding:7px 10px;
  cursor:pointer;
}
#chatAttachmentDownload:disabled{opacity:.65;cursor:progress}
@media(max-width:680px){
  #chatAttachmentDownload{min-height:44px;padding:9px 12px}
}

/* Alpha 332 · online-status + mobiele lightbox-sluitknop onderin */
.phoenix-chat-avatar{position:relative}
.phoenix-chat-presence-dot{
  position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;
  background:#9aa4a0;border:2px solid #fff;box-sizing:content-box;
}
.phoenix-chat-presence-dot.online{background:#24a148}
.phoenix-chat-presence-text{font-weight:650;color:var(--muted,#6b7470)}
.phoenix-chat-presence-text.online{color:#21853a}
.phoenix-chat-active-presence{display:inline-flex;align-items:center;gap:6px}
.phoenix-chat-active-presence i{width:8px;height:8px;border-radius:50%;background:#9aa4a0;display:inline-block}
.phoenix-chat-active-presence.online{color:#21853a;font-weight:700}
.phoenix-chat-active-presence.online i{background:#24a148}
body.dark .phoenix-chat-presence-dot{border-color:#1d2722}
@media(max-width:680px){
  .phoenix-chat-lightbox-floating-close{
    top:auto !important;
    right:calc(env(safe-area-inset-right, 0px) + 16px) !important;
    bottom:calc(env(safe-area-inset-bottom, 0px) + 18px) !important;
    width:56px !important;
    height:56px !important;
    font-size:34px !important;
    box-shadow:0 10px 30px rgba(0,0,0,.42) !important;
  }
  .phoenix-chat-lightbox-image{padding-top:0 !important;padding-bottom:86px !important}
  .phoenix-chat-lightbox-body{padding-bottom:76px}
}

/* Alpha 333 · chatkoppelingen openen ook op mobiel zichtbaar de bestemming */
.phoenix-chat-linked{touch-action:manipulation}
.phoenix-chat-linked:active{transform:scale(.985)}

/* Alpha 334 · mobiele chat-lightbox past altijd binnen schermbreedte */
@media(max-width:680px){
  .phoenix-chat-attachment-lightbox,
  .phoenix-chat-lightbox-dialog,
  .phoenix-chat-lightbox-body,
  .phoenix-chat-lightbox-image,
  .phoenix-chat-lightbox-frame{
    box-sizing:border-box !important;
    max-width:100dvw !important;
    width:100dvw !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }

  .phoenix-chat-lightbox-dialog>header{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    padding-left:12px !important;
    padding-right:12px !important;
    gap:8px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
  }

  .phoenix-chat-lightbox-title{
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .phoenix-chat-lightbox-actions{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }

  .phoenix-chat-lightbox-actions>a,
  .phoenix-chat-lightbox-actions>button{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    justify-content:center !important;
    text-align:center !important;
    white-space:normal !important;
    line-height:1.2 !important;
  }

  .phoenix-chat-lightbox-image img{
    display:block !important;
    max-width:100% !important;
    width:auto !important;
    height:auto !important;
    max-height:calc(100dvh - 180px) !important;
    object-fit:contain !important;
    margin:0 auto !important;
  }

  .phoenix-chat-lightbox-frame iframe{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    border:0 !important;
  }
}

/* Alpha 335 · mobiele chatnavigatie, vaste sluitknop en stabiele bijlagen */
.phoenix-chat-mobile-close{display:none}

@media(max-width:680px){
  .phoenix-chat-mobile-close{
    position:fixed !important;
    z-index:1255 !important;
    right:calc(env(safe-area-inset-right,0px) + 14px) !important;
    bottom:calc(env(safe-area-inset-bottom,0px) + 14px) !important;
    width:54px !important;
    height:54px !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid rgba(255,255,255,.38) !important;
    border-radius:50% !important;
    background:rgba(8,28,20,.92) !important;
    color:#fff !important;
    box-shadow:0 10px 28px rgba(0,0,0,.32) !important;
    font-size:32px !important;
    line-height:1 !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    -webkit-tap-highlight-color:transparent;
  }
  .phoenix-floating-chat:not(.open) .phoenix-chat-mobile-close{display:none !important}

  /* Houd onderin voldoende ruimte vrij voor de vaste mobiele sluitknop. */
  .phoenix-floating-chat .phoenix-chat-composer{
    padding-bottom:max(76px,calc(env(safe-area-inset-bottom) + 68px)) !important;
  }
}

/* Alpha 336 · camping/taak meesturen weer zichtbaar op mobiel */
@media(max-width:680px){
  .phoenix-floating-chat .phoenix-chat-composer-actions{
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:end !important;
    gap:7px !important;
  }

  .phoenix-floating-chat .phoenix-chat-context-actions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:6px !important;
    min-width:0 !important;
    overflow:visible !important;
    width:100% !important;
  }

  .phoenix-floating-chat .phoenix-chat-context-actions>button{
    grid-column:1 / -1 !important;
    width:100% !important;
    min-height:42px !important;
  }

  .phoenix-floating-chat .phoenix-chat-context-actions select{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:40px !important;
    box-sizing:border-box !important;
    font-size:12px !important;
  }

  .phoenix-floating-chat .phoenix-chat-composer-actions>.primary-action{
    align-self:stretch !important;
    min-width:92px !important;
  }
}

@media(max-width:390px){
  .phoenix-floating-chat .phoenix-chat-composer-actions{
    grid-template-columns:1fr !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions{
    grid-template-columns:1fr !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions>button{
    grid-column:auto !important;
  }
  .phoenix-floating-chat .phoenix-chat-composer-actions>.primary-action{
    width:100% !important;
  }
}

/* Alpha 337 · systeem-pushmeldingen Phoenix Chat */
#chatNotificationButton:disabled,
#chatNotificationButtonMobile:disabled{opacity:.82;cursor:default}

/* Alpha 338 · compacte mobiele chat voor kleine schermen */
@media(max-width:680px){
  .phoenix-floating-chat .phoenix-chat-main{
    display:grid !important;
    grid-template-rows:auto minmax(0,1fr) auto !important;
    min-height:0 !important;
  }
  .phoenix-floating-chat .phoenix-chat-messages{
    min-height:0 !important;
    padding:9px 9px 11px !important;
  }

  .phoenix-floating-chat .phoenix-chat-composer{
    padding:6px 8px max(7px,env(safe-area-inset-bottom)) !important;
  }
  .phoenix-floating-chat .phoenix-chat-composer textarea{
    min-height:38px !important;
    height:38px;
    max-height:72px !important;
    padding:8px 9px !important;
    line-height:1.25 !important;
    overflow-y:auto !important;
  }
  .phoenix-floating-chat .phoenix-chat-composer-actions{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:5px !important;
    margin-top:5px !important;
    align-items:center !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions{
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) !important;
    gap:4px !important;
    width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions>button{
    grid-column:auto !important;
    width:38px !important;
    min-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    font-size:0 !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions>button::before{
    content:"📎";
    font-size:18px;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions select{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:38px !important;
    padding:4px 20px 4px 6px !important;
    font-size:11px !important;
    text-overflow:ellipsis !important;
  }
  .phoenix-floating-chat .phoenix-chat-composer-actions>.primary-action{
    min-width:68px !important;
    width:auto !important;
    min-height:38px !important;
    height:38px !important;
    padding:0 9px !important;
    font-size:12px !important;
  }

  /* Geen gereserveerde strook meer voor de sluitknop. */
  .phoenix-chat-mobile-close{
    top:48% !important;
    right:6px !important;
    bottom:auto !important;
    width:44px !important;
    height:44px !important;
    font-size:27px !important;
    opacity:.9 !important;
    touch-action:none !important;
  }
}

/* iPhone SE en andere korte schermen */
@media(max-width:680px) and (max-height:740px){
  .phoenix-floating-chat-header{
    min-height:48px !important;
    padding:5px 7px !important;
  }
  .phoenix-floating-chat-logo{width:30px !important;height:30px !important}
  .phoenix-floating-chat-header-actions button{width:34px !important;height:34px !important}
  .phoenix-floating-chat .phoenix-chat-head{
    min-height:44px !important;
    padding:5px 8px !important;
  }
  .phoenix-floating-chat .phoenix-chat-head small{display:none !important}
  .phoenix-floating-chat .phoenix-chat-messages{
    padding:7px 8px 9px !important;
    gap:7px !important;
  }
  .phoenix-floating-chat .phoenix-chat-composer{
    padding:5px 7px max(5px,env(safe-area-inset-bottom)) !important;
  }
  .phoenix-floating-chat .phoenix-chat-composer textarea{
    min-height:34px !important;
    height:34px;
    max-height:64px !important;
    padding:6px 8px !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions>button,
  .phoenix-floating-chat .phoenix-chat-context-actions select,
  .phoenix-floating-chat .phoenix-chat-composer-actions>.primary-action{
    height:34px !important;
    min-height:34px !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions>button{
    width:34px !important;
    min-width:34px !important;
  }
  .phoenix-chat-mobile-close{
    width:40px !important;
    height:40px !important;
    font-size:24px !important;
  }
}

/* Alpha 339 · mobiele chat: vaste acties vervangen door zwevende + */
.phoenix-chat-compose-line{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:6px;
}
.phoenix-chat-more-button{
  width:42px;height:42px;border-radius:50%;padding:0;font-size:27px;line-height:1;font-weight:500;
}
.phoenix-chat-send-compact{
  width:44px;height:42px;min-width:44px;padding:0 !important;border-radius:50% !important;font-size:20px;
}
.phoenix-chat-more-menu[hidden]{display:none !important}
.phoenix-chat-more-menu{
  margin-top:6px;padding:8px;border:1px solid var(--line,#d9e1dd);border-radius:12px;
  background:var(--surface,#fff);box-shadow:0 8px 26px rgba(0,0,0,.14);
}
.phoenix-chat-more-menu .phoenix-chat-context-actions{
  display:grid;grid-template-columns:auto 1fr 1fr;gap:7px;align-items:end;
}
.phoenix-chat-more-menu label{display:grid;gap:3px;min-width:0;font-size:11px;font-weight:700}
.phoenix-chat-more-menu select{width:100%;min-width:0;height:36px}
.phoenix-chat-more-menu #chatAttachmentButton{height:36px;white-space:nowrap}

@media(max-width:680px){
  .phoenix-floating-chat .phoenix-chat-main{
    grid-template-rows:auto minmax(0,1fr) auto !important;
  }
  .phoenix-floating-chat .phoenix-chat-composer{
    position:relative !important;padding:5px 8px max(6px,env(safe-area-inset-bottom)) !important;
    overflow:visible !important;
  }
  .phoenix-chat-compose-line{
    grid-template-columns:40px minmax(0,1fr) 42px !important;gap:5px !important;
  }
  .phoenix-chat-more-button{
    width:40px !important;height:40px !important;min-width:40px !important;min-height:40px !important;
    padding:0 !important;border-radius:50% !important;font-size:25px !important;touch-action:manipulation;
  }
  .phoenix-chat-send-compact{
    width:42px !important;min-width:42px !important;height:40px !important;min-height:40px !important;
    padding:0 !important;border-radius:50% !important;font-size:18px !important;
  }
  .phoenix-floating-chat #chatMessageInput{
    width:100% !important;min-height:40px !important;height:40px !important;max-height:66px !important;
    margin:0 !important;padding:8px 10px !important;border-radius:14px !important;line-height:1.2 !important;
    overflow-y:auto !important;
  }

  .phoenix-chat-more-menu{
    position:absolute !important;z-index:1260 !important;left:8px !important;right:8px !important;
    bottom:calc(52px + env(safe-area-inset-bottom)) !important;margin:0 !important;padding:8px !important;
  }
  .phoenix-chat-more-menu .phoenix-chat-context-actions{
    display:grid !important;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) !important;
    gap:6px !important;
  }
  .phoenix-chat-more-menu #chatAttachmentButton{
    width:42px !important;min-width:42px !important;height:38px !important;min-height:38px !important;
    padding:0 !important;overflow:hidden !important;font-size:0 !important;
  }
  .phoenix-chat-more-menu #chatAttachmentButton::before{content:"📎";font-size:18px}
  .phoenix-chat-more-menu label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .phoenix-chat-more-menu select{
    display:block !important;height:38px !important;min-height:38px !important;
    padding:4px 18px 4px 5px !important;font-size:11px !important;
  }

  .phoenix-chat-mobile-close{
    position:fixed !important;top:46% !important;right:5px !important;bottom:auto !important;
    width:40px !important;height:40px !important;min-width:40px !important;min-height:40px !important;
    z-index:1270 !important;
  }

  /* Oude 338-composerregels krijgen geen invloed meer. */
  .phoenix-floating-chat .phoenix-chat-composer-actions{display:none !important}
}

@media(max-width:680px) and (max-height:740px){
  .phoenix-floating-chat-header{min-height:44px !important;padding:4px 6px !important}
  .phoenix-floating-chat .phoenix-chat-head{min-height:40px !important;padding:4px 7px !important}
  .phoenix-floating-chat .phoenix-chat-head small{display:none !important}
  .phoenix-floating-chat .phoenix-chat-messages{padding:6px 7px 8px !important}
  .phoenix-floating-chat .phoenix-chat-composer{padding-top:4px !important;padding-bottom:max(4px,env(safe-area-inset-bottom)) !important}
  .phoenix-chat-compose-line{grid-template-columns:36px minmax(0,1fr) 38px !important}
  .phoenix-chat-more-button{width:36px !important;height:36px !important;min-width:36px !important;min-height:36px !important;font-size:23px !important}
  .phoenix-chat-send-compact{width:38px !important;height:36px !important;min-width:38px !important;min-height:36px !important}
  .phoenix-floating-chat #chatMessageInput{height:36px !important;min-height:36px !important;max-height:58px !important;padding:6px 8px !important}
  .phoenix-chat-more-menu{bottom:calc(46px + env(safe-area-inset-bottom)) !important}
}

/* Alpha 340 · plusmenu open/dicht */
.phoenix-chat-more-button[aria-expanded="true"]{
  transform:rotate(45deg);
}
@media(max-width:680px){
  .phoenix-chat-more-menu{
    max-height:min(220px,42dvh);
    overflow:auto;
  }
}

/* Alpha 341 · apart groot venster om chatbericht te schrijven */
.phoenix-chat-draft-open{
  width:100%;
  min-width:0;
  height:42px;
  padding:8px 11px;
  border:1px solid var(--line,#d9e1dd);
  border-radius:14px;
  background:var(--surface,#fff);
  color:var(--muted,#7a8580);
  text-align:left;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:inherit;
  cursor:text;
}
.phoenix-chat-draft-open.has-text{
  color:var(--text,#173d30);
}
.phoenix-chat-draft-editor{
  position:fixed;
  inset:0;
  z-index:2147483200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.phoenix-chat-draft-editor[hidden]{display:none !important}
.phoenix-chat-draft-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(7,24,18,.52);
}
.phoenix-chat-draft-dialog{
  position:relative;
  z-index:1;
  width:min(680px,calc(100vw - 36px));
  height:min(72vh,620px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:10px;
  padding:14px;
  border-radius:18px;
  background:var(--surface,#fff);
  box-shadow:0 24px 70px rgba(0,0,0,.32);
}
.phoenix-chat-draft-dialog header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.phoenix-chat-draft-dialog header small{
  display:block;
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
  color:var(--muted,#718078);
}
.phoenix-chat-draft-dialog header h3{
  margin:2px 0 0;
  font-size:20px;
}
#chatDraftCloseButton{
  width:42px;
  height:42px;
  border-radius:50%;
  padding:0;
  font-size:25px;
}
#chatDraftTextarea{
  width:100%;
  min-width:0;
  min-height:0;
  resize:none;
  box-sizing:border-box;
  padding:14px;
  border:1px solid var(--line,#d9e1dd);
  border-radius:14px;
  font:inherit;
  font-size:16px;
  line-height:1.45;
  overflow:auto;
}
.phoenix-chat-draft-dialog footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.phoenix-chat-draft-dialog footer button{
  min-height:42px;
  padding:0 16px;
}

@media(max-width:680px){
  .phoenix-chat-draft-open{
    height:40px !important;
    min-height:40px !important;
    padding:8px 10px !important;
  }
  .phoenix-chat-draft-editor{
    padding:0 !important;
    align-items:stretch !important;
  }
  .phoenix-chat-draft-dialog{
    width:100dvw !important;
    height:100dvh !important;
    max-width:none !important;
    max-height:none !important;
    border-radius:0 !important;
    padding:
      calc(env(safe-area-inset-top) + 10px)
      10px
      calc(env(safe-area-inset-bottom) + 10px) !important;
    gap:8px !important;
  }
  .phoenix-chat-draft-dialog header{
    min-height:46px;
  }
  #chatDraftTextarea{
    font-size:17px !important;
    padding:12px !important;
  }
  .phoenix-chat-draft-dialog footer{
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .phoenix-chat-draft-dialog footer button{
    width:100%;
    min-height:46px;
  }
}

/* Alpha 342 · schrijfknop altijd bedienbaar zodra een gesprek actief is */
.phoenix-chat-draft-open:disabled{
  opacity:.55;
  cursor:not-allowed;
}
.phoenix-chat-draft-open:not(:disabled){
  opacity:1;
  cursor:text;
  touch-action:manipulation;
}
#chatDraftTextarea{
  -webkit-user-select:text;
  user-select:text;
  touch-action:auto;
}

/* Alpha 343 · eenvoudig extern bericht via WhatsApp */
.phoenix-chat-whatsapp-button{
  white-space:nowrap;
}
.phoenix-chat-whatsapp-dialog{
  position:fixed;
  inset:0;
  z-index:2147483250;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.phoenix-chat-whatsapp-dialog[hidden]{display:none !important}
.phoenix-chat-whatsapp-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(7,24,18,.52);
}
.phoenix-chat-whatsapp-card{
  position:relative;
  z-index:1;
  width:min(620px,calc(100vw - 36px));
  max-height:min(82vh,720px);
  display:grid;
  gap:12px;
  padding:16px;
  border-radius:18px;
  background:var(--surface,#fff);
  box-shadow:0 24px 70px rgba(0,0,0,.32);
  overflow:auto;
}
.phoenix-chat-whatsapp-card header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.phoenix-chat-whatsapp-card header small{
  display:block;
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
  color:var(--muted,#718078);
}
.phoenix-chat-whatsapp-card header h3{
  margin:2px 0 0;
  font-size:20px;
}
#chatWhatsAppClose{
  width:42px;
  height:42px;
  border-radius:50%;
  padding:0;
  font-size:24px;
}
.phoenix-chat-whatsapp-field{
  display:grid;
  gap:5px;
}
.phoenix-chat-whatsapp-field>span{
  font-weight:800;
  font-size:13px;
}
#chatWhatsAppNumber,
#chatWhatsAppMessage{
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--line,#d9e1dd);
  border-radius:12px;
  padding:10px 12px;
  font:inherit;
}
#chatWhatsAppMessage{
  min-height:180px;
  resize:vertical;
  line-height:1.45;
}
.phoenix-chat-whatsapp-help{
  margin:0;
  font-size:12px;
  color:var(--muted,#718078);
}
.phoenix-chat-whatsapp-card footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.phoenix-chat-whatsapp-card footer button{
  min-height:42px;
  padding:0 14px;
}

@media(max-width:680px){
  .phoenix-chat-more-menu .phoenix-chat-context-actions{
    grid-template-columns:auto auto minmax(0,1fr) minmax(0,1fr) !important;
  }
  .phoenix-chat-more-menu #chatWhatsAppButton{
    width:42px !important;
    min-width:42px !important;
    height:38px !important;
    min-height:38px !important;
    overflow:hidden !important;
    padding:0 !important;
    font-size:0 !important;
  }
  .phoenix-chat-more-menu #chatWhatsAppButton::before{
    content:"🟢";
    font-size:17px;
  }
  .phoenix-chat-whatsapp-dialog{
    padding:0 !important;
    align-items:stretch !important;
  }
  .phoenix-chat-whatsapp-card{
    width:100dvw !important;
    max-width:none !important;
    max-height:none !important;
    height:100dvh !important;
    border-radius:0 !important;
    padding:
      calc(env(safe-area-inset-top) + 10px)
      10px
      calc(env(safe-area-inset-bottom) + 10px) !important;
    grid-template-rows:auto auto minmax(0,1fr) auto auto;
  }
  #chatWhatsAppMessage{
    min-height:0 !important;
    height:100% !important;
    resize:none !important;
    font-size:17px !important;
  }
  #chatWhatsAppNumber{
    font-size:17px !important;
    min-height:46px;
  }
  .phoenix-chat-whatsapp-card footer{
    display:grid !important;
    grid-template-columns:1fr 1.4fr;
  }
  .phoenix-chat-whatsapp-card footer button{
    width:100%;
    min-height:46px;
  }
}

/* Alpha 344 · rechtstreekse WhatsApp Cloud API-integratie */
#chatWhatsAppContact{
  width:100%;
  box-sizing:border-box;
  min-height:42px;
  border:1px solid var(--line,#d9e1dd);
  border-radius:12px;
  padding:8px 10px;
  font:inherit;
}
.phoenix-chat-whatsapp-api-status{
  padding:9px 11px;
  border-radius:11px;
  font-size:12px;
  font-weight:700;
  background:#eef2f0;
}
.phoenix-chat-whatsapp-api-status.ok{background:#e4f5eb;color:#176a42}
.phoenix-chat-whatsapp-api-status.warning{background:#fff4d9;color:#7c5800}
.phoenix-chat-whatsapp-api-status.error{background:#fde8e8;color:#a12626}
.phoenix-chat-whatsapp-settings{
  border:1px solid var(--line,#d9e1dd);
  border-radius:12px;
  padding:0 10px 10px;
  background:rgba(0,0,0,.015);
}
.phoenix-chat-whatsapp-settings summary{
  min-height:42px;
  display:flex;
  align-items:center;
  cursor:pointer;
  font-weight:800;
}
.phoenix-chat-whatsapp-settings-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.phoenix-chat-whatsapp-settings-grid label{
  display:grid;
  gap:4px;
  min-width:0;
}
.phoenix-chat-whatsapp-settings-grid label.wide{grid-column:1/-1}
.phoenix-chat-whatsapp-settings-grid span{
  font-size:11px;
  font-weight:800;
}
.phoenix-chat-whatsapp-settings-grid input{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  min-height:40px;
  border:1px solid var(--line,#d9e1dd);
  border-radius:10px;
  padding:7px 9px;
  font:inherit;
}
.phoenix-chat-whatsapp-secret-note{
  margin:8px 0;
  font-size:11px;
  color:var(--muted,#718078);
}
.phoenix-chat-whatsapp-settings-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.phoenix-chat-whatsapp-settings-actions button{min-height:38px}
.phoenix-chat-whatsapp-card footer{
  flex-wrap:wrap;
}
#chatWhatsAppDirectSend:disabled{opacity:.55;cursor:not-allowed}

@media(max-width:680px){
  .phoenix-chat-whatsapp-card{
    grid-template-rows:auto auto auto minmax(0,1fr) auto auto auto !important;
  }
  .phoenix-chat-whatsapp-settings-grid{
    grid-template-columns:1fr !important;
  }
  .phoenix-chat-whatsapp-settings-grid label.wide{grid-column:auto}
  .phoenix-chat-whatsapp-settings{
    max-height:36dvh;
    overflow:auto;
  }
  .phoenix-chat-whatsapp-card footer{
    grid-template-columns:1fr 1fr !important;
  }
  #chatWhatsAppDirectSend{
    grid-column:1/-1;
  }
}

/* Alpha 345 · één berichtenlijst, Phoenix kiest zelf het afleverpad */
.phoenix-chat-channel-dot.whatsapp{
  position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;
  background:#25d366;border:2px solid #fff;box-sizing:content-box;
}
.phoenix-chat-active-presence.whatsapp{color:#1f7a46;font-weight:700}
.phoenix-chat-active-presence.whatsapp i{background:#25d366}
.phoenix-chat-conversation.external .phoenix-chat-avatar::after{
  content:"";
}
.phoenix-chat-bubble.external .phoenix-chat-read-state{color:#1f7a46}
body.dark .phoenix-chat-channel-dot.whatsapp{border-color:#1d2722}

/* Alpha 346 · WhatsApp-chat is per relatie expliciet aan/uit */
.relation-chat-choice{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  padding:11px 12px;
  border:1px solid var(--line,#d9e1dd);
  border-radius:12px;
  background:rgba(37,211,102,.045);
}
.relation-chat-choice>input{
  width:20px;
  height:20px;
  margin:2px 0 0;
  flex:0 0 auto;
}
.relation-chat-choice>span{
  display:grid;
  gap:3px;
}
.relation-chat-choice strong{font-size:13px}
.relation-chat-choice small{
  color:var(--muted,#718078);
  line-height:1.35;
}
.relation-chat-state{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin:7px 0 2px;
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
.relation-chat-state.enabled{
  background:#e5f8ec;
  color:#176a42;
}
.relation-chat-state.disabled{
  background:#eef1ef;
  color:#69736e;
}

/* Alpha 347 · WhatsApp is een kanaal, geen online-status */
.phoenix-chat-channel-badge.whatsapp{
  position:absolute;
  right:-7px;
  bottom:-4px;
  display:grid;
  place-items:center;
  min-width:20px;
  height:16px;
  padding:0 4px;
  border-radius:999px;
  box-sizing:border-box;
  background:#25d366;
  color:#fff;
  border:2px solid #fff;
  font-size:8px;
  line-height:1;
  font-weight:900;
  letter-spacing:.02em;
}
.phoenix-chat-active-presence.whatsapp{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--muted,#6f7c75);
  font-weight:700;
}
.phoenix-chat-active-presence.whatsapp b{
  display:inline-grid;
  place-items:center;
  min-width:24px;
  height:17px;
  padding:0 4px;
  border-radius:999px;
  background:#25d366;
  color:#fff;
  font-size:9px;
  line-height:1;
}
body.dark .phoenix-chat-channel-badge.whatsapp{border-color:#1d2722}

/* Alpha 349 · video in Phoenix Chat */
.phoenix-chat-video-card{
  display:grid;
  gap:6px;
  max-width:min(430px,100%);
  margin-top:7px;
}
.phoenix-chat-video-card video{
  display:block;
  width:100%;
  max-height:330px;
  border-radius:12px;
  background:#000;
  object-fit:contain;
}
.phoenix-chat-video-open{
  width:100%;
  border:0;
  border-radius:9px;
  padding:7px 9px;
  text-align:left;
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
  background:rgba(0,0,0,.07);
  color:inherit;
}
.phoenix-chat-lightbox-video{
  width:100%;
  min-height:220px;
  display:grid;
  place-items:center;
}
.phoenix-chat-lightbox-video video{
  display:block;
  width:auto;
  max-width:100%;
  max-height:min(72vh,720px);
  border-radius:12px;
  background:#000;
}
@media(max-width:680px){
  .phoenix-chat-video-card{
    max-width:100%;
  }
  .phoenix-chat-video-card video{
    max-height:42dvh;
  }
  .phoenix-chat-lightbox-video video{
    width:100%;
    max-height:68dvh;
  }
}

/* Alpha 351 · corrigeert oude mobiele paperclip-override */
@media(max-width:680px){
  /* Oudere composer-CSS gaf elk actiebuttontje via ::before dezelfde paperclip.
     Deze specifieke regels staan bewust als laatste in het stylesheet. */
  .phoenix-floating-chat .phoenix-chat-context-actions > #chatAttachmentButton::before,
  .phoenix-chat-more-menu #chatAttachmentButton::before{
    content:"📷" !important;
    font-size:19px !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions > #chatVideoButton::before,
  .phoenix-chat-more-menu #chatVideoButton::before{
    content:"🎞️" !important;
    font-size:19px !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions > #chatVideoRecordButton::before,
  .phoenix-chat-more-menu #chatVideoRecordButton::before{
    content:"📹" !important;
    font-size:19px !important;
  }
  .phoenix-floating-chat .phoenix-chat-context-actions > #chatWhatsAppButton::before,
  .phoenix-chat-more-menu #chatWhatsAppButton::before{
    content:"💬" !important;
    font-size:19px !important;
  }
}

/* Alpha 362 · tweede toegewezen persoon zichtbaar op taakkaart */
.task-extra-user{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-top:6px;
  padding:6px 8px;
  border-radius:9px;
  background:rgba(26,114,80,.07);
  width:max-content;
  max-width:100%;
  font-size:11px;
}
.task-extra-user small{
  opacity:.72;
}
.task-extra-user strong{
  font-size:11px;
}

/* Alpha 363: jaarprijs/calculatie direct vanaf campingkaart */
.camping-card-cost-link{border:0;background:rgba(39,92,63,.06);border-radius:10px;padding:6px 9px;display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;cursor:pointer;color:inherit;font:inherit;text-align:left}
.camping-card-cost-link small{font-size:.68rem;color:var(--muted,#68766f);line-height:1.1}.camping-card-cost-link strong{font-size:.82rem;line-height:1.2}.camping-card-cost-link:hover,.camping-card-cost-link:focus-visible{background:rgba(39,92,63,.13);outline:2px solid rgba(39,92,63,.22);outline-offset:1px}.camping-card-cost-link.is-calculated{background:rgba(31,122,76,.11)}
.camping-cost-overview-link{cursor:pointer;position:relative}.camping-cost-overview-link small{display:block;margin-top:3px;color:var(--accent,#28734d);font-size:.7rem;font-weight:700}.camping-cost-overview-link:hover{background:rgba(39,92,63,.10)}


/* Alpha 363: herstel Kosten & calculatie */
.camping-calculation-section{overflow:visible}
.camping-calc-intro{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.camping-calc-intro strong{display:block;font-size:1.02rem;margin-bottom:4px}
.camping-calc-intro p{margin:0;color:var(--muted,#667085);line-height:1.45}
.camping-calc-settings{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(170px,1fr) minmax(240px,1.4fr);gap:10px;align-items:end;margin:12px 0 14px}
.camping-calc-settings>label:not(.camping-calc-prorate),.camping-calc-row label{display:flex;flex-direction:column;gap:5px;font-size:.78rem;font-weight:700;color:var(--muted,#667085)}
.camping-calc-settings select,.camping-calc-settings input[type=date],.camping-calc-line input,.camping-calc-line select{width:100%;box-sizing:border-box;border:1px solid rgba(20,45,35,.18);border-radius:9px;background:var(--surface,#fff);color:inherit;padding:9px 10px;font:inherit}
.camping-calc-prorate{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 11px;border:1px solid rgba(20,45,35,.12);border-radius:9px;background:rgba(34,120,82,.05);font-size:.86rem}
.camping-calc-prorate input{width:18px;height:18px}
.camping-calc-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 14px}
.camping-calc-summary>div{padding:12px;border:1px solid rgba(20,45,35,.12);border-radius:12px;background:rgba(255,255,255,.55);display:flex;flex-direction:column;gap:3px}
.camping-calc-summary span{font-size:.78rem;color:var(--muted,#667085);font-weight:700}.camping-calc-summary strong{font-size:1.3rem}.camping-calc-summary small{color:var(--muted,#667085);line-height:1.3}
.camping-calc-summary .camping-calc-due{background:rgba(31,122,76,.09);border-color:rgba(31,122,76,.25)}
.camping-calc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.camping-calc-lines{display:flex;flex-direction:column;gap:8px}
.camping-calc-line{display:grid;grid-template-columns:34px minmax(0,1fr) 145px;gap:10px;align-items:center;padding:10px;border:1px solid rgba(20,45,35,.13);border-radius:12px;background:var(--surface,#fff)}
.camping-calc-line.is-disabled{opacity:.55}.camping-calc-toggle{display:grid;place-items:center}.camping-calc-toggle input{width:20px;height:20px}
.camping-calc-fields{display:flex;flex-direction:column;gap:7px}.camping-calc-fields>input[data-calc-field=label]{font-weight:800}
.camping-calc-row{display:grid;grid-template-columns:1fr .85fr 1.35fr;gap:7px}
.camping-calc-line-total{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.camping-calc-line-total small{color:var(--muted,#667085)}.camping-calc-line-total strong{font-size:1.04rem}.camping-calc-line-total button{border:0;background:transparent;padding:5px;cursor:pointer}
.camping-calc-empty{padding:16px;border:1px dashed rgba(20,45,35,.2);border-radius:10px;color:var(--muted,#667085);text-align:center}
@media(max-width:760px){
 .camping-calc-settings{grid-template-columns:1fr}.camping-calc-summary{grid-template-columns:1fr}.camping-calc-line{grid-template-columns:28px minmax(0,1fr)}.camping-calc-line-total{grid-column:2;flex-direction:row;justify-content:flex-end;align-items:center;gap:10px}.camping-calc-row{grid-template-columns:1fr 1fr}.camping-calc-row label:last-child{grid-column:1/-1}
}


/* Phoenix 11.0.0 Alpha 370 - vaste schermbreedte / portrait UI
   Voorkomt dat pagina's, formulieren of modals de viewport breder maken. */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  overscroll-behavior-x:none;
}
body{min-width:0}
.phoenix-shell,main,.view,.view.active{
  min-width:0;
  max-width:100%;
}
img,video,canvas,svg,iframe{
  max-width:100%;
}
input,select,textarea,button{
  max-width:100%;
}
.panel,.hero-card,.summary-card,.cockpit-card,.task-row,.maintenance-row,
.phoenix-shopping-card,.record-sheet,.media-dialog,.media-viewer,.bottom-sheet,
.update-center-dialog,.master-data-dialog{
  min-width:0;
  max-width:100%;
}
th,td,.task-content,.shopping-card-body,.object-main,.maintenance-card-body{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
@media(max-width:760px){
  html,body,.phoenix-shell,main,.view,.view.active{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:clip!important;
  }
  main{margin-left:0!important}
  .panel,.hero-card,.summary-card,.cockpit-card,.task-row,.maintenance-row,
  .phoenix-shopping-card,.record-sheet,.media-dialog,.media-viewer,.bottom-sheet,
  .update-center-dialog,.master-data-dialog,form,fieldset{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  input,select,textarea{
    width:100%;
    min-width:0!important;
    font-size:16px!important; /* voorkomt automatische iPhone-zoom bij focus */
  }
  table{
    width:100%;
    max-width:100%;
  }
}

/* Alpha 373 - Inkoopbord per leverancier */
.shopping-work-section,.shopping-finished-section{min-width:0;margin-bottom:22px}
.shopping-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px;min-width:0}
.shopping-section-heading>div:first-child{min-width:0}
.shopping-section-heading span,.shopping-supplier-column-header span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
.shopping-section-heading strong{display:block;font-size:1.05rem;margin-top:2px}
.shopping-board-nav{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.shopping-board-nav button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);font:inherit;font-size:1.15rem;cursor:pointer}.shopping-board-nav button:disabled{opacity:.35;cursor:default}.shopping-board-page{min-width:34px;text-align:center;color:var(--muted);font-size:.82rem;font-weight:700}
.shopping-section-heading-total{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end}
.shopping-grand-total{min-width:190px;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);text-align:right}
.shopping-grand-total span,.shopping-supplier-total span{display:block;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em}
.shopping-grand-total strong{display:block;margin-top:2px;font-size:1.18rem;white-space:nowrap}
.shopping-supplier-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:100%;padding:2px 2px 10px}
.shopping-supplier-column{scroll-snap-align:start;min-width:0;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft);padding:12px}
.shopping-supplier-column-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;padding:0 2px}
.shopping-supplier-title{min-width:0}
.shopping-supplier-column-header strong{display:block;margin-top:2px;overflow-wrap:anywhere}
.shopping-supplier-total{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin:0 0 10px;padding:8px 9px;border-radius:11px;background:var(--surface);border:1px solid var(--line)}
.shopping-supplier-total strong{font-size:1rem;white-space:nowrap}
.shopping-supplier-column .phoenix-shopping-card header{gap:7px}
.shopping-supplier-column .phoenix-shopping-card header b{white-space:nowrap;flex:0 0 auto}
.shopping-supplier-column-header>b,.shopping-section-heading>b{display:grid;place-items:center;min-width:30px;height:30px;padding:0 7px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.82rem}
.shopping-supplier-column-items,.shopping-finished-list{display:grid;gap:10px;min-width:0}
.shopping-supplier-column .phoenix-shopping-card{grid-template-columns:42px minmax(0,1fr);padding:11px;border-radius:14px;min-width:0}
.shopping-supplier-column .shopping-card-state span{width:34px;height:34px}
.shopping-finished-section{border-top:1px solid var(--line);padding-top:18px}
.shopping-finished-list .phoenix-shopping-card.status-received,.shopping-finished-list .phoenix-shopping-card.status-inventory{opacity:.9}
@media(max-width:1180px) and (min-width:761px){
  .shopping-supplier-board{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .shopping-section-heading-total{grid-template-columns:minmax(0,1fr) auto}
  .shopping-grand-total{grid-column:1/-1;width:100%;min-width:0;text-align:left}
  .shopping-supplier-board{grid-template-columns:minmax(0,1fr);gap:10px}
  .shopping-supplier-column{padding:10px;border-radius:15px}
  .shopping-section-heading{align-items:flex-end}
  .shopping-board-nav button{width:36px;height:36px}
}

/* Alpha 376 - Inkoop vaste bovenbouw, alleen artikelgebied scrollt */
#shoppingView{
  height:calc(100dvh - 28px);
  max-height:calc(100dvh - 28px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  min-height:0;
}
#shoppingView>.section-heading,
#shoppingView>.shopping-toolbar-panel{
  flex:0 0 auto;
}
#shoppingView>#phoenixShopping{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  padding-right:4px;
  scrollbar-gutter:stable;
}
#shoppingView .shopping-section-heading-total{
  position:sticky;
  top:0;
  z-index:12;
  margin-top:0;
  padding:10px 0 8px;
  background:var(--bg);
  box-shadow:0 8px 12px -14px rgba(0,0,0,.45);
}
@media(max-width:760px){
  #shoppingView{
    height:100dvh;
    max-height:100dvh;
  }
  #shoppingView>#phoenixShopping{padding-right:0}
}

/* Alpha 377 - Inkoop: alleen de kaartlijsten scrollen; koppen, totalen en leveranciersnamen blijven staan */
#shoppingView>#phoenixShopping{
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
#shoppingView .shopping-work-section{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  margin-bottom:12px;
}
#shoppingView .shopping-section-heading-total{
  position:static;
  flex:0 0 auto;
  margin:0 0 8px;
  padding:8px 0;
  background:var(--bg);
  box-shadow:none;
}
#shoppingView .shopping-supplier-board{
  flex:1 1 auto;
  min-height:0;
  align-items:stretch;
  overflow:hidden;
}
#shoppingView .shopping-supplier-column{
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
#shoppingView .shopping-supplier-column-header,
#shoppingView .shopping-supplier-total{
  flex:0 0 auto;
}
#shoppingView .shopping-supplier-column-items{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}
#shoppingView .shopping-finished-section{
  flex:0 0 min(26vh,220px);
  min-height:110px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  margin-bottom:0;
}
#shoppingView .shopping-finished-section>.shopping-section-heading{
  flex:0 0 auto;
  margin-top:0;
}
#shoppingView .shopping-finished-list{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}
@media(max-width:760px){
  #shoppingView .shopping-finished-section{flex-basis:min(24vh,190px)}
  #shoppingView .shopping-supplier-column-items,
  #shoppingView .shopping-finished-list{padding-right:0}
}

/* Alpha 382 - Inkoop over meerdere verticale pagina's; afgerond pas helemaal onderaan */
#shoppingView>#phoenixShopping{
  overflow-y:auto;
  overflow-x:hidden;
  display:block;
  min-height:0;
  padding-right:4px;
  scrollbar-gutter:stable;
  scroll-behavior:smooth;
}
#shoppingView .shopping-work-section{
  display:block;
  min-height:100%;
  margin-bottom:28px;
}
#shoppingView .shopping-section-heading-total{
  position:sticky;
  top:0;
  z-index:30;
  margin:0 0 8px;
  padding:8px 0;
  background:var(--bg);
  box-shadow:0 8px 12px -14px rgba(0,0,0,.45);
}
#shoppingView .shopping-supplier-board{
  display:grid;
  align-items:start;
  overflow:visible;
  min-height:0;
}
#shoppingView .shopping-supplier-column{
  display:block;
  min-height:0;
  overflow:visible;
}
#shoppingView .shopping-supplier-column-header{
  position:sticky;
  top:62px;
  z-index:24;
  margin:-2px -2px 6px;
  padding:4px 4px 6px;
  background:var(--surface-soft);
}
#shoppingView .shopping-supplier-total{
  position:sticky;
  top:108px;
  z-index:23;
  margin-bottom:10px;
  background:var(--surface);
}
#shoppingView .shopping-supplier-column-items{
  display:grid;
  gap:10px;
  min-height:0;
  overflow:visible;
  padding-right:0;
}
#shoppingView .shopping-finished-section{
  display:block;
  min-height:calc(100% - 6px);
  margin:0;
  padding-top:22px;
  border-top:2px solid var(--line);
  overflow:visible;
}
#shoppingView .shopping-finished-section>.shopping-section-heading{
  position:sticky;
  top:0;
  z-index:20;
  margin:0 0 12px;
  padding:8px 0;
  background:var(--bg);
}
#shoppingView .shopping-finished-list{
  display:grid;
  gap:10px;
  overflow:visible;
  min-height:0;
  padding-right:0;
}
@media(max-width:760px){
  #shoppingView>#phoenixShopping{padding-right:0}
  #shoppingView .shopping-supplier-column-header{top:72px}
  #shoppingView .shopping-supplier-total{top:120px}
}


/* Alpha 382 build 470 — definitieve Inkoop/navigatie-fix.
   De eerdere #shoppingView {display:flex} overschreef .view {display:none}.
   Daardoor bleef Inkoop onder andere modules zichtbaar. */
#shoppingView:not(.active){
  display:none !important;
}
#shoppingView.active{
  display:flex;
}


/* Alpha 382 build 470 — mobiele Inkoop-layout.
   Op smalle schermen mag de grote bovenbouw meescrollen,
   zodat de artikelkaarten weer voldoende schermhoogte krijgen. */
@media (max-width: 767px) {
  #shoppingView,
  #shoppingView.active {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  /* De algemene bovenbouw is op mobiel niet sticky. */
  #shoppingView .shopping-header,
  #shoppingView .shopping-toolbar,
  #shoppingView .shopping-summary,
  #shoppingView .shopping-filters,
  #shoppingView .purchase-section-head,
  #shoppingView .purchase-topbar,
  #shoppingView .purchase-nav,
  #shoppingView .purchase-totalbar {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }

  /* De inhoud zelf krijgt normale hoogte; geen klein intern scrollvak. */
  #shoppingView .purchase-columns,
  #shoppingView .supplier-columns,
  #shoppingView .supplier-grid,
  #shoppingView .purchase-active-section,
  #shoppingView .purchase-supplier-area,
  #shoppingView .supplier-column,
  #shoppingView .supplier-items {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow-y: visible !important;
  }

  /* Eén leverancier per mobiele pagina. */
  #shoppingView .supplier-grid,
  #shoppingView .purchase-columns,
  #shoppingView .supplier-columns {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  /* Alleen de kop van de zichtbare leverancier blijft handig plakken. */
  #shoppingView .supplier-head,
  #shoppingView .supplier-header {
    position: sticky !important;
    top: 74px !important;
    z-index: 20 !important;
    background: var(--surface, #fff) !important;
  }

  /* Navigatie compact houden. */
  #shoppingView .purchase-nav,
  #shoppingView .supplier-pager {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: nowrap !important;
  }

  #shoppingView .purchase-totalbar,
  #shoppingView .purchase-section-head {
    margin-bottom: 10px !important;
  }
}

/* Alpha 382 build 470 — echte mobiele Inkoop-layout met correcte shopping-* selectors */
@media (max-width: 760px) {
  /* De view gebruikt de beschikbare mobiele hoogte; geen pagina-brede overflow. */
  #shoppingView.active {
    display:flex !important;
    flex-direction:column !important;
    height:calc(100dvh - 132px) !important;
    max-height:calc(100dvh - 132px) !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding-bottom:0 !important;
  }

  /* Op mobiel is de gewone titel/knoppenbalk overbodig: de zwevende + blijft beschikbaar. */
  #shoppingView > .section-heading {
    display:none !important;
  }

  /* Bovenste status/filterblok compact houden zodat artikelen werkelijk zichtbaar blijven. */
  #shoppingView > .shopping-toolbar-panel {
    position:static !important;
    flex:0 0 auto !important;
    top:auto !important;
    z-index:auto !important;
    margin:0 0 8px !important;
    padding:8px !important;
    border-radius:14px !important;
  }
  #shoppingView .shopping-stat-grid {
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:5px !important;
  }
  #shoppingView .shopping-stat-grid button {
    min-width:0 !important;
    min-height:50px !important;
    padding:6px 4px !important;
    border-radius:11px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    gap:1px !important;
  }
  #shoppingView .shopping-stat-grid button span {
    font-size:10px !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
  }
  #shoppingView .shopping-stat-grid button strong {
    font-size:20px !important;
    line-height:1 !important;
  }
  #shoppingView .shopping-controls {
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:6px !important;
    margin-top:7px !important;
  }
  #shoppingView .shopping-controls input {
    grid-column:1/-1 !important;
  }
  #shoppingView .shopping-controls input,
  #shoppingView .shopping-controls select {
    min-height:40px !important;
    height:40px !important;
    padding:6px 10px !important;
    font-size:14px !important;
    border-radius:10px !important;
  }

  /* Dit is het enige grote verticale scrollgebied van Inkoop op mobiel. */
  #shoppingView > #phoenixShopping {
    flex:1 1 auto !important;
    min-height:0 !important;
    height:auto !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior-y:contain !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-gutter:auto !important;
    padding:0 2px 92px 0 !important;
  }

  #shoppingView .shopping-work-section {
    display:block !important;
    min-height:calc(100% - 4px) !important;
    margin:0 0 20px !important;
  }

  /* Actieve inkoopkop compact en sticky binnen het artikelgebied. */
  #shoppingView .shopping-section-heading-total {
    position:sticky !important;
    top:0 !important;
    z-index:40 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:6px 10px !important;
    padding:7px 4px 8px !important;
    margin:0 0 6px !important;
    background:var(--bg) !important;
  }
  #shoppingView .shopping-section-heading-total > div:first-child span {
    font-size:10px !important;
  }
  #shoppingView .shopping-section-heading-total > div:first-child strong {
    font-size:15px !important;
  }
  #shoppingView .shopping-grand-total {
    grid-column:auto !important;
    width:auto !important;
    min-width:118px !important;
    padding:5px 8px !important;
    text-align:right !important;
  }
  #shoppingView .shopping-grand-total span {
    font-size:9px !important;
  }
  #shoppingView .shopping-grand-total strong {
    font-size:17px !important;
  }
  #shoppingView .shopping-board-nav {
    grid-column:1/-1 !important;
    justify-self:end !important;
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
  }
  #shoppingView .shopping-board-nav button {
    width:34px !important;
    height:34px !important;
  }

  /* Eén leverancier tegelijk. */
  #shoppingView .shopping-supplier-board {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:8px !important;
    overflow:visible !important;
  }
  #shoppingView .shopping-supplier-column {
    display:block !important;
    min-height:0 !important;
    overflow:visible !important;
    padding:8px !important;
  }

  /* Leveranciersnaam en bedrag blijven zichtbaar tijdens het scrollen. */
  #shoppingView .shopping-supplier-column-header {
    position:sticky !important;
    top:86px !important;
    z-index:35 !important;
    margin:-2px -2px 4px !important;
    padding:5px 4px !important;
    background:var(--surface-soft) !important;
  }
  #shoppingView .shopping-supplier-total {
    position:sticky !important;
    top:132px !important;
    z-index:34 !important;
    margin:0 0 7px !important;
    padding:6px 8px !important;
    background:var(--surface) !important;
  }

  /* Geen tweede intern scrollvak: de kaarten lopen door in phoenixShopping. */
  #shoppingView .shopping-supplier-column-items {
    display:grid !important;
    gap:8px !important;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
    overflow:visible !important;
    padding:0 !important;
  }

  /* Ontvangen/inventaris komt pas na de actieve inkoop, onderaan dezelfde hoofdscroll. */
  #shoppingView .shopping-finished-section {
    display:block !important;
    min-height:calc(100% - 8px) !important;
    overflow:visible !important;
    margin:18px 0 0 !important;
    padding-top:16px !important;
  }
  #shoppingView .shopping-finished-section > .shopping-section-heading {
    position:sticky !important;
    top:0 !important;
    z-index:30 !important;
    padding:7px 4px !important;
    background:var(--bg) !important;
  }
  #shoppingView .shopping-finished-list {
    overflow:visible !important;
    height:auto !important;
    max-height:none !important;
  }
}


/* Alpha 383 build 471 — per taakkolom apart Open en Afgerond */
.task-type-column-head{align-items:flex-start}
.task-type-column-title{display:flex;align-items:center;gap:8px;min-width:0;padding-top:4px}
.task-type-counts{display:flex;align-items:stretch;gap:6px;flex:0 0 auto}
.task-type-count{min-width:58px;padding:5px 7px;border:1px solid var(--line);border-radius:10px;display:grid;grid-template-columns:auto auto;align-items:center;gap:5px;background:var(--surface);line-height:1}
.task-type-count small{font-size:.64rem;color:var(--muted);font-weight:700}
.task-type-count b{min-width:0!important;width:auto!important;height:auto!important;border-radius:0!important;background:transparent!important;display:block!important;font-size:.82rem!important;color:var(--text)!important}
.task-type-count-open{border-color:rgba(22,101,72,.22);background:rgba(22,101,72,.06)}
.task-type-count-open b{color:var(--green-dark)!important}
.task-type-count-done{background:rgba(107,114,128,.06)}
@media(max-width:760px){
  .task-type-column-head{gap:8px}
  .task-type-counts{gap:4px}
  .task-type-count{min-width:52px;padding:5px 6px;grid-template-columns:1fr;gap:2px;text-align:center}
  .task-type-count small{font-size:.58rem}
}


/* Alpha 384 build 472 — kleurcodering taakkolomtellers */
.task-type-count-open{
  background:rgba(185,28,28,.08) !important;
  border-color:rgba(185,28,28,.24) !important;
}
.task-type-count-open small,
.task-type-count-open b{
  color:#b91c1c !important;
}
.task-type-count-open.is-zero{
  background:rgba(107,114,128,.06) !important;
  border-color:rgba(107,114,128,.18) !important;
}
.task-type-count-open.is-zero small,
.task-type-count-open.is-zero b{
  color:var(--muted) !important;
}
.task-type-count-done{
  background:rgba(22,101,72,.09) !important;
  border-color:rgba(22,101,72,.24) !important;
}
.task-type-count-done small,
.task-type-count-done b{
  color:var(--green-dark) !important;
}
.task-type-column-head-complete{
  border-bottom-color:rgba(22,101,72,.28) !important;
  background:rgba(22,101,72,.045);
}
.task-type-column-head-complete .task-type-column-title strong::after{
  content:" ✓";
  color:var(--green-dark);
  font-weight:800;
}


/* === Orvando branding layer 2026-08-17 === */
:root{--orvando-navy:#071c2b;--orvando-blue:#075b78;--orvando-teal:#08757d;--orvando-green:#63a844}
.side-nav{background:linear-gradient(180deg,var(--orvando-navy),#063d52 58%,#08706f)!important}
.brand-logo{background:#fff;object-fit:contain!important;padding:2px}
.phoenix-splash{background:radial-gradient(circle at 50% 38%,#0b5060 0,#071c2b 48%,#04121b 100%)!important}
.phoenix-splash img{width:min(520px,82vw)!important;border-radius:18px}
.phoenix-splash strong{color:#7cc44c!important;letter-spacing:.16em}
.phoenix-splash small{color:#d5ece9!important}
.mobile-topbar{border-bottom-color:rgba(8,117,125,.22)}

/* ==========================================================
   ORVANDO BRAND THEME — Alpha 388 / build 476
   Navy + blue/teal foundation, fresh green accent.
   ========================================================== */
:root{
  --bg:#f3f7f8;
  --surface:#ffffff;
  --surface-soft:#f5f9fa;
  --text:#102b3c;
  --muted:#637985;
  --line:#d9e5e9;
  --green:#087f88;
  --green-dark:#063a55;
  --green-soft:#e3f3f4;
  --accent:#087f88;
  --brand:#063a55;
  --shadow:0 12px 36px rgba(6,58,85,.09);
}

/* Main navigation follows the dark navy / teal Orvando identity. */
.side-nav{
  background:linear-gradient(180deg,#061f35 0%,#073b59 56%,#08757d 100%);
  box-shadow:12px 0 34px rgba(5,35,54,.10);
}
.brand-mark{
  color:#063a55;
  box-shadow:0 5px 18px rgba(0,0,0,.10);
}
.brand span{color:#b9d5de}
.nav-item{color:#d9e9ee}
.nav-item:hover,.nav-item.active{
  background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,.08));
  color:#fff;
}
.nav-item em{color:#063a55}
.side-footer small{color:#b5d2da}

/* Main Orvando highlight panels: blue/teal instead of Phoenix green. */
.hero-card,
.today-status-card,
.cost-summary{
  background:linear-gradient(135deg,#073b59 0%,#08757d 65%,#1a9b91 100%);
}
.hero-card .eyebrow,
.hero-card p:last-child,
.today-status-card span,
.today-status-card small,
.today-status-card p{color:#d9f0f2}

.primary-action,
.filter.active,
.workspace.active,
.fab,
.dossier-tabs button.active,
.master-tabs button.active,
.departure-item.done .departure-check,
.checklist-progress-track i,
.checklist-category-card>header span{
  background:#087f88;
  border-color:#087f88;
}

/* The departure action gets the richer Orvando blue/teal gradient. */
.departure-button{
  background:linear-gradient(135deg,#075b83,#0b8d8e);
  box-shadow:0 10px 26px rgba(7,91,131,.18);
}

/* Cards and focus states use a cool blue-grey edge rather than green. */
.summary-card:hover,
.dashboard-inventory-item:hover{
  border-color:#a9ced7;
  box-shadow:0 16px 40px rgba(6,58,85,.10);
}

/* Common selected / soft brand surfaces. */
.task-date-done,
.master-item .save-master{
  background:#e4f3f4;
}

/* Keep a restrained green accent for explicit positive/success meaning. */
.updater-result.success{background:rgba(58,159,88,.12);color:#257445}

/* Dark mode mirrors Orvando rather than Phoenix. */
body.dark{
  --bg:#07131d;
  --surface:#0d2230;
  --surface-soft:#112b3a;
  --text:#eff8fb;
  --muted:#a9c0c9;
  --line:#294452;
  --green:#20a2a5;
  --green-dark:#0b6275;
  --green-soft:#123b43;
  --shadow:0 12px 36px rgba(0,0,0,.25);
}
body.dark .side-nav{
  background:linear-gradient(180deg,#04131f 0%,#062b42 58%,#075d68 100%);
}

/* High contrast remains readable while staying in the brand family. */
body.high-contrast{
  --text:#061a27;
  --muted:#324b59;
  --line:#7798a6;
  --green:#006a73;
  --green-dark:#00475f;
}
body.dark.high-contrast{--green:#42c0c0;--line:#7396a4}


/* Alpha 391 · mobiele meldingsbediening altijd bereikbaar */
@media(max-width:680px){
  .phoenix-floating-chat-panel{
    z-index:1400 !important;
    padding-top:max(env(safe-area-inset-top,0px),8px) !important;
  }
  .phoenix-floating-chat-header{
    position:sticky !important;
    top:0 !important;
    z-index:1450 !important;
    flex:0 0 auto !important;
    background:var(--panel) !important;
    box-shadow:0 1px 0 var(--border),0 5px 14px rgba(0,0,0,.08) !important;
  }
  #chatNotificationButton{
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    position:relative !important;
    z-index:1460 !important;
  }
  .phoenix-chat-conversations{
    top:0 !important;
    padding-top:0 !important;
  }
  .phoenix-chat-mobile-tools{
    position:sticky !important;
    top:0 !important;
    z-index:80 !important;
    background:var(--panel) !important;
  }
}

/* Alpha 393 · Android/mobile chat onder de algemene Orvando-balk */
@media(max-width:680px){
  /* De algemene mobiele Orvando-balk blijft bovenaan bereikbaar.
     Chat start er direct onder zodat melding/refresh/sluiten nooit afgedekt worden. */
  .phoenix-floating-chat{
    top:56px !important;
    height:calc(var(--phoenix-chat-vvh,100dvh) - 56px) !important;
  }
  .phoenix-floating-chat-panel{
    inset:0 !important;
    width:100vw !important;
    height:calc(var(--phoenix-chat-vvh,100dvh) - 56px) !important;
    max-height:calc(var(--phoenix-chat-vvh,100dvh) - 56px) !important;
    padding-top:0 !important;
  }
  .phoenix-floating-chat-header{
    top:0 !important;
    min-height:56px !important;
  }
  #chatNotificationButton,
  #chatRefreshButton,
  #chatCloseButton{
    flex:0 0 40px !important;
    min-width:40px !important;
  }
}
@media(max-width:680px) and (max-height:650px){
  .phoenix-floating-chat{top:52px !important;height:calc(var(--phoenix-chat-vvh,100dvh) - 52px) !important}
  .phoenix-floating-chat-panel{height:calc(var(--phoenix-chat-vvh,100dvh) - 52px) !important;max-height:calc(var(--phoenix-chat-vvh,100dvh) - 52px) !important}
}

/* Alpha 394 · Android: vaste meldingsknop buiten bereik van de algemene topbar-overlay */
@media(max-width:680px){
  .phoenix-floating-chat.open #chatNotificationButtonMobile{
    display:grid !important;
    place-items:center !important;
    position:fixed !important;
    top:calc(68px + env(safe-area-inset-top,0px)) !important;
    right:14px !important;
    z-index:10050 !important;
    width:52px !important;
    height:52px !important;
    min-width:52px !important;
    min-height:52px !important;
    padding:0 !important;
    border:2px solid rgba(255,255,255,.92) !important;
    border-radius:50% !important;
    background:linear-gradient(135deg,#075d68,#0f9b91) !important;
    color:#fff !important;
    box-shadow:0 8px 24px rgba(0,31,45,.28) !important;
    font-size:0 !important;
    line-height:1 !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-tap-highlight-color:transparent !important;
  }
  .phoenix-floating-chat.open #chatNotificationButtonMobile::before{
    content:'🔔';
    font-size:24px;
    line-height:1;
  }
  .phoenix-floating-chat.open #chatNotificationButtonMobile:active{
    transform:scale(.96) !important;
  }
}


/* Alpha 395 · iPhone + Android: onafhankelijke zwevende chatbediening */
.orvando-mobile-chat-controls{display:none}
@media(max-width:680px){
  .orvando-mobile-chat-controls.open{
    display:flex !important;
    position:fixed !important;
    top:calc(68px + env(safe-area-inset-top,0px)) !important;
    right:max(12px,env(safe-area-inset-right,0px)) !important;
    z-index:2147483000 !important;
    gap:10px !important;
    pointer-events:auto !important;
  }
  .orvando-mobile-chat-controls button{
    display:grid !important;
    place-items:center !important;
    width:52px !important;
    height:52px !important;
    min-width:52px !important;
    min-height:52px !important;
    padding:0 !important;
    border:2px solid rgba(255,255,255,.94) !important;
    border-radius:50% !important;
    background:linear-gradient(135deg,#075d68,#0f9b91) !important;
    color:#fff !important;
    box-shadow:0 8px 24px rgba(0,31,45,.32) !important;
    font-size:24px !important;
    line-height:1 !important;
    font-weight:700 !important;
    touch-action:manipulation !important;
    -webkit-tap-highlight-color:transparent !important;
  }
  #orvandoMobileChatCloseFloat{font-size:34px !important;font-weight:400 !important;padding-bottom:4px !important}
  .orvando-mobile-chat-controls button:active{transform:scale(.96) !important}
  /* De oude mobiele extra bel is niet meer nodig; voorkom dubbele zwevende bellen. */
  .phoenix-floating-chat.open #chatNotificationButtonMobile{display:none !important}
}

/* Orvando Alpha 396 - leesbare chatmelding op mobiel */
@media (max-width:760px){
  .toast{
    left:16px;
    right:16px;
    bottom:92px;
    transform:none;
    width:auto;
    max-width:none;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    align-items:stretch;
    padding:14px 16px;
    border-radius:16px;
    font-size:.95rem;
    line-height:1.35;
  }
  .toast-message{
    display:block;
    width:100%;
    min-width:0;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
  }
  .toast-action{
    width:100%;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.28);
    padding:10px 0 2px;
    text-align:left;
    font-size:1rem;
  }
  @keyframes toast-in{
    from{opacity:0;transform:translateY(10px)}
    to{opacity:1;transform:translateY(0)}
  }
}

/* Alpha 400 · mobiel bericht schrijven, bijvoegen en direct verzenden in één venster */
.orvando-chat-draft-tools{
  display:grid;
  gap:9px;
  padding:10px;
  border:1px solid var(--line,#d9e1dd);
  border-radius:14px;
  background:var(--panel,#f7faf8);
}
.orvando-chat-draft-file-actions{display:flex;gap:8px;flex-wrap:wrap}
.orvando-chat-draft-file-actions button{min-height:40px}
.orvando-chat-draft-context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.orvando-chat-draft-context-grid label{display:grid;gap:4px;min-width:0;font-size:12px;font-weight:700}
.orvando-chat-draft-context-grid select{width:100%;min-width:0;min-height:40px}

@media(max-width:680px){
  .phoenix-chat-draft-dialog{
    grid-template-rows:auto minmax(0,1fr) auto auto !important;
  }
  .orvando-chat-draft-tools{padding:8px !important;gap:7px !important}
  .orvando-chat-draft-file-actions{display:grid !important;grid-template-columns:1fr 1fr !important}
  .orvando-chat-draft-file-actions button{width:100% !important;min-height:44px !important}
  .orvando-chat-draft-context-grid{grid-template-columns:1fr !important;gap:6px !important}
  .orvando-chat-draft-context-grid label{grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px !important}
  .orvando-chat-draft-context-grid label span{white-space:nowrap}
  .orvando-chat-draft-context-grid select{min-height:42px !important;font-size:16px !important}
  #chatDraftDoneButton{font-weight:800}
}


/* Alpha 408 · mobiele chatkop iets lager onder algemene Orvando-balk */
@media(max-width:680px){
  .phoenix-floating-chat .phoenix-chat-head{
    margin-top:8px !important;
  }
}
@media(max-width:680px) and (max-height:650px){
  .phoenix-floating-chat .phoenix-chat-head{
    margin-top:6px !important;
  }
}

/* Alpha 409 · nieuwste chatbericht volledig vrij boven het mobiele typveld */
@media(max-width:680px){
  .phoenix-floating-chat .phoenix-chat-messages::after{
    content:"";
    display:block;
    flex:0 0 72px;
    min-height:72px;
    pointer-events:none;
  }
}


/* Orvando Alpha 410 - mobiel objecticoon niet dubbel tonen */
@media (max-width:900px){
  .mobile-topbar .mobile-object-picker{grid-template-columns:minmax(0,1fr)!important;}
  .mobile-topbar #mobileObjectIcon{display:none!important;}
}
\n\n/* Orvando Alpha 411 - chatcomposer is alleen nog ingang naar het schrijfvenster */
.phoenix-chat-compose-line{
  grid-template-columns:minmax(0,1fr) !important;
}
#chatMoreButton,
#chatSendButton{
  display:none !important;
}
.phoenix-chat-draft-open{
  min-height:46px;
  height:auto;
  padding:11px 16px;
  border-radius:14px;
  text-align:center;
  font-weight:750;
  color:var(--text,#173d30);
  cursor:pointer;
  background:var(--surface,#fff);
}
.phoenix-chat-draft-open.has-text{
  color:var(--text,#173d30);
}
@media(max-width:680px){
  .phoenix-chat-compose-line{
    grid-template-columns:minmax(0,1fr) !important;
    gap:0 !important;
  }
  .phoenix-chat-draft-open{
    min-height:46px !important;
    width:100% !important;
    font-size:16px !important;
  }
}

/* Orvando Alpha 412 - Android spraakherkenning zonder cumulatieve doublures */

/* Alpha 413 · chatbel versleepbaar en positie onthouden */
.phoenix-chat-floating-button{
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  cursor:grab;
}
.phoenix-chat-floating-button.drag-ready,
.phoenix-chat-floating-button.dragging{
  transition:none !important;
}
.phoenix-chat-floating-button.dragging{
  cursor:grabbing;
  transform:scale(1.04) !important;
  box-shadow:0 18px 42px rgba(10,55,39,.38);
}


/* Alpha 415 - Planner lijst/maand/week kalenderweergave */
.planner-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.planner-view-switch{display:flex;gap:6px;padding:4px;border:1px solid var(--line);background:var(--surface-soft);border-radius:13px}
.planner-view-switch button{border:0;background:transparent;padding:8px 11px;border-radius:9px;font-weight:850;color:var(--muted);cursor:pointer}
.planner-view-switch button.active{background:var(--surface);color:var(--green);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.planner-calendar-nav{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.planner-calendar-nav[hidden]{display:none!important}
.planner-calendar-nav strong{text-align:center;text-transform:capitalize;font-size:1.02rem}
.planner-calendar-nav button{min-width:42px;border:1px solid var(--line);background:var(--surface);padding:8px 11px;border-radius:10px;font-weight:800;cursor:pointer}
.planner-calendar-root{display:block;min-width:0}
.planner-calendar{border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.planner-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--surface-soft);border-bottom:1px solid var(--line)}
.planner-calendar-weekdays>div{text-align:center;padding:9px 4px;font-size:.76rem;font-weight:900;color:var(--muted)}
.planner-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.planner-calendar-day{min-width:0;min-height:128px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.planner-calendar-day:nth-child(7n){border-right:0}
.planner-calendar-day:nth-last-child(-n+7){border-bottom:0}
.planner-calendar-day>header{display:flex;justify-content:flex-end;margin-bottom:5px}
.planner-calendar-day>header span{display:grid;place-items:center;min-width:26px;height:26px;padding:0 5px;border-radius:999px;font-size:.78rem;font-weight:900}
.planner-calendar-day.is-outside{background:color-mix(in srgb,var(--surface-soft) 70%,transparent)}
.planner-calendar-day.is-outside>header,.planner-calendar-day.is-outside .planner-calendar-event{opacity:.55}
.planner-calendar-day.is-today>header span,.planner-week-day.is-today>header strong{background:var(--green);color:#fff}
.planner-calendar-events,.planner-week-events{display:grid;gap:4px;min-width:0}
.planner-calendar-event{display:flex;align-items:center;gap:5px;width:100%;min-width:0;border:0;border-left:3px solid var(--green);background:var(--surface-soft);padding:5px 6px;border-radius:6px;text-align:left;color:inherit;cursor:pointer;font-size:.72rem;font-weight:800;line-height:1.2}
.planner-calendar-event time{flex:0 0 auto;font-size:.66rem;color:var(--green);font-weight:950}
.planner-calendar-event span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planner-calendar-event.is-multiday{border-left-color:#6f66c7}
.planner-calendar-event.is-done{opacity:.55;text-decoration:line-through}
.planner-calendar-event:hover,.planner-calendar-event:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:1px}
.planner-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));overflow-x:auto}
.planner-week-day{min-width:145px;min-height:320px;border-right:1px solid var(--line);background:var(--surface)}
.planner-week-day:last-child{border-right:0}
.planner-week-day>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;background:var(--surface-soft);border-bottom:1px solid var(--line)}
.planner-week-day>header strong{padding:4px 7px;border-radius:8px;font-size:.78rem}
.planner-week-day>header span{font-size:.72rem;color:var(--muted);font-weight:800;white-space:nowrap}
.planner-week-events{padding:8px}
.planner-calendar-empty-day{padding:10px 4px;color:var(--muted);font-size:.74rem;text-align:center}
@media(max-width:760px){
  .planner-toolbar-row{align-items:stretch}
  .planner-filters,.planner-view-switch{width:100%;overflow-x:auto;flex-wrap:nowrap}
  .planner-view-switch button{flex:1;white-space:nowrap}
  .planner-calendar-nav{grid-template-columns:auto 1fr auto;grid-template-areas:"prev title next" "today today today"}
  #plannerCalendarPrev{grid-area:prev}#plannerCalendarTitle{grid-area:title}#plannerCalendarNext{grid-area:next}#plannerCalendarToday{grid-area:today}
  .planner-calendar{overflow-x:auto}
  .planner-calendar-month{min-width:760px}
  .planner-calendar-day{min-height:112px}
  .planner-calendar-week{grid-template-columns:repeat(7,minmax(220px,1fr));scroll-snap-type:x proximity}
  .planner-week-day{min-width:220px;scroll-snap-align:start}
}


/* Alpha 418 - Planner zoeken */
.planner-search-wrap{position:relative;margin-top:12px}
.planner-search-field{display:flex;align-items:center;gap:8px;width:min(680px,100%);border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:0 8px 0 12px;box-shadow:0 1px 3px rgba(0,0,0,.03)}
.planner-search-field:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}
.planner-search-field>span{flex:0 0 auto;opacity:.72}
.planner-search-field input{flex:1;min-width:0;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:10px 4px;font:inherit;color:inherit}
.planner-search-field button{flex:0 0 auto;width:31px;height:31px;border:0;border-radius:999px;background:var(--surface-soft);font-size:1.15rem;line-height:1;cursor:pointer;color:var(--muted)}
.planner-search-field button[hidden]{display:none!important}
.planner-search-results{position:absolute;z-index:45;left:0;top:calc(100% + 6px);width:min(760px,100%);max-height:min(58vh,520px);overflow:auto;border:1px solid var(--line);background:var(--surface);border-radius:14px;box-shadow:0 16px 42px rgba(0,0,0,.16);padding:6px}
.planner-search-results[hidden]{display:none!important}
.planner-search-summary,.planner-search-empty,.planner-search-more{padding:9px 10px;color:var(--muted);font-size:.78rem;font-weight:800}
.planner-search-result{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;border:0;border-radius:10px;background:transparent;color:inherit;text-align:left;padding:10px;cursor:pointer}
.planner-search-result:hover,.planner-search-result:focus-visible{background:var(--surface-soft);outline:none}
.planner-search-result-main{display:grid;gap:3px;min-width:0}
.planner-search-result-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planner-search-result-main small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planner-search-result-date{display:grid;gap:2px;flex:0 0 auto;text-align:right;font-size:.78rem}
.planner-search-result-date small{color:var(--muted)}
@media(max-width:760px){
  .planner-search-field,.planner-search-results{width:100%}
  .planner-search-result{align-items:flex-start}
  .planner-search-result-main small{max-width:60vw}
  .planner-search-result-date strong{font-size:.72rem}
}


/* Alpha 419 - kleurcodering en legenda in Planner-kalender */
.planner-calendar-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 9px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);font-size:.76rem;font-weight:850;color:var(--muted)}
.planner-calendar-legend>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.planner-legend-dot{display:inline-block;width:11px;height:11px;border-radius:3px;background:#158c93;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.planner-legend-dot.is-appointment{background:#158c93}
.planner-legend-dot.is-task{background:#d28a12}
.planner-legend-dot.is-maintenance{background:#7758b3}
.planner-calendar-event.is-appointment{border-left-color:#158c93;background:color-mix(in srgb,#158c93 11%,var(--surface));}
.planner-calendar-event.is-appointment time{color:#0f747a}
.planner-calendar-event.is-task{border-left-color:#d28a12;background:color-mix(in srgb,#d28a12 13%,var(--surface));}
.planner-calendar-event.is-task time{color:#9b6308}
.planner-calendar-event.is-maintenance{border-left-color:#7758b3;background:color-mix(in srgb,#7758b3 12%,var(--surface));}
.planner-calendar-event.is-maintenance time{color:#66449f}
.planner-calendar-event.is-multiday{box-shadow:inset 0 -2px 0 color-mix(in srgb,currentColor 16%,transparent)}
@media(max-width:760px){.planner-calendar-legend{gap:10px;font-size:.73rem}.planner-calendar-legend>span{flex:1 0 auto}}


/* Alpha 420 - kleurcodering ook in Planner-lijst */
.planner-card.is-appointment{
  border-color:color-mix(in srgb,#158c93 48%,var(--line));
  border-left:5px solid #158c93;
  background:color-mix(in srgb,#158c93 7%,var(--surface));
}
.planner-card.is-appointment .planner-date-block{background:color-mix(in srgb,#158c93 16%,var(--surface));}
.planner-card.is-appointment .planner-card-body header small{color:#0f747a}
.planner-card.is-task{
  border-color:color-mix(in srgb,#d28a12 48%,var(--line));
  border-left:5px solid #d28a12;
  background:color-mix(in srgb,#d28a12 8%,var(--surface));
}
.planner-card.is-task .planner-date-block{background:color-mix(in srgb,#d28a12 18%,var(--surface));}
.planner-card.is-task .planner-card-body header small{color:#9b6308}
.planner-card.is-maintenance{
  border-color:color-mix(in srgb,#7758b3 48%,var(--line));
  border-left:5px solid #7758b3;
  background:color-mix(in srgb,#7758b3 8%,var(--surface));
}
.planner-card.is-maintenance .planner-date-block{background:color-mix(in srgb,#7758b3 17%,var(--surface));}
.planner-card.is-maintenance .planner-card-body header small{color:#66449f}
.planner-card.is-appointment .planner-card-body,
.planner-card.is-task .planner-card-body,
.planner-card.is-maintenance .planner-card-body{background:transparent}
.planner-card.is-appointment .planner-actions button,
.planner-card.is-task .planner-actions button,
.planner-card.is-maintenance .planner-actions button{background:color-mix(in srgb,var(--surface) 92%,transparent)}
@media(max-width:760px){
  .planner-card.is-appointment,.planner-card.is-task,.planner-card.is-maintenance{border-left-width:4px}
}


/* Alpha 421 - legenda ook vast in de Planner-balk */
.planner-toolbar-legend{display:flex;align-items:center;justify-content:center;gap:12px;flex:1;flex-wrap:wrap;padding:5px 10px;font-size:.76rem;font-weight:850;color:var(--muted)}
.planner-toolbar-legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
@media(max-width:1050px){.planner-toolbar-row{flex-wrap:wrap}.planner-toolbar-legend{order:3;flex-basis:100%;justify-content:flex-start;padding:5px 0 0}}
@media(max-width:760px){.planner-toolbar-legend{gap:10px;font-size:.72rem}.planner-toolbar-legend>span{flex:0 0 auto}}


/* Orvando Business portal · Alpha 436 */
.business-heading{align-items:center}.business-access-badge{display:inline-flex;align-items:center;justify-content:center;padding:.5rem .8rem;border-radius:999px;background:rgba(0,128,113,.1);color:var(--accent,#087f71);font-size:.78rem;font-weight:800}.business-welcome{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 1.65rem;margin-bottom:1.25rem;border-radius:24px;background:linear-gradient(135deg,#073c58,#0e927f);color:#fff;box-shadow:var(--shadow)}.business-welcome h3{font-size:1.55rem;margin:.2rem 0 .45rem}.business-welcome p{margin:0;max-width:760px;opacity:.9}.business-welcome .eyebrow{color:#bcefe7}.business-welcome-mark{font-size:3.1rem;line-height:1}.business-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.business-module-grid button{appearance:none;border:1px solid var(--line);background:var(--card,#fff);color:var(--text);border-radius:20px;padding:1.15rem;text-align:left;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;gap:.45rem;min-height:145px}.business-module-grid button:hover{transform:translateY(-1px)}.business-module-grid strong{font-size:1.1rem}.business-module-grid span{font-size:.84rem;color:var(--muted);line-height:1.4}.business-module-grid em{margin-top:auto;font-size:.72rem;font-style:normal;font-weight:800;color:var(--accent,#087f71);text-transform:uppercase;letter-spacing:.04em}body.dark .business-module-grid button{background:var(--card,#15232b)}body.dark .business-access-badge{background:rgba(91,214,194,.12);color:#8fe0d2}@media (max-width:980px){.business-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.business-welcome{padding:1.15rem}.business-welcome-mark{display:none}.business-module-grid{grid-template-columns:1fr}.business-module-grid button{min-height:118px}}

/* Orvando Business · Projecten v1 */
.business-projects-heading{align-items:flex-start;gap:1rem}.business-project-actions{display:flex;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.business-project-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,260px);gap:14px;margin-bottom:14px}.business-project-toolbar label,.business-project-form-grid label{display:flex;flex-direction:column;gap:.4rem;font-size:.78rem;font-weight:800;color:var(--muted)}.business-project-toolbar input,.business-project-toolbar select,.business-project-form-grid input,.business-project-form-grid select,.business-project-form-grid textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:.78rem .85rem;background:var(--card,#fff);color:var(--text);font:inherit}.business-project-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.business-project-summary>div{background:var(--card,#fff);border:1px solid var(--line);border-radius:18px;padding:1rem 1.1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.2rem}.business-project-summary strong{font-size:1.45rem}.business-project-summary span{font-size:.78rem;color:var(--muted)}.business-project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.business-project-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:20px;padding:1.15rem;box-shadow:var(--shadow);cursor:pointer}.business-project-card:hover{transform:translateY(-1px)}.business-project-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.business-project-card-top small{font-weight:800;color:var(--accent,#087f71);text-transform:uppercase;letter-spacing:.04em}.business-project-card h3{margin:.25rem 0 .85rem;font-size:1.2rem}.business-project-card-meta{display:flex;flex-direction:column;gap:.38rem;color:var(--muted);font-size:.82rem}.business-project-card-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:1rem}.business-project-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.38rem .65rem;font-size:.72rem;font-weight:800;white-space:nowrap;background:rgba(100,116,139,.12);color:#475569}.business-project-status.status-active{background:rgba(5,150,105,.12);color:#047857}.business-project-status.status-planned{background:rgba(14,116,144,.12);color:#0e7490}.business-project-status.status-on-hold{background:rgba(217,119,6,.13);color:#b45309}.business-project-status.status-completed{background:rgba(37,99,235,.12);color:#1d4ed8}.business-project-status.status-cancelled{background:rgba(220,38,38,.1);color:#b91c1c}.business-project-empty{grid-column:1/-1;padding:2rem;text-align:center}.business-project-dialog,.business-project-detail-dialog{border:0;background:transparent;padding:0;max-width:min(900px,calc(100vw - 24px));width:100%}.business-project-dialog::backdrop,.business-project-detail-dialog::backdrop{background:rgba(3,18,28,.58);backdrop-filter:blur(2px)}.business-project-form,.business-project-detail-card{width:min(860px,calc(100vw - 24px));max-height:calc(100vh - 30px);overflow:auto;background:var(--card,#fff);border-radius:22px;padding:1.25rem;box-shadow:0 24px 70px rgba(0,0,0,.28)}.business-project-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:1rem}.business-project-form-wide{grid-column:1/-1}.business-project-detail-status{margin:.25rem 0 1rem}.business-project-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.business-project-detail-grid>div,.business-project-description{border:1px solid var(--line);border-radius:15px;padding:.9rem}.business-project-detail-grid small,.business-project-description small{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.business-project-description{margin-top:12px}.business-project-description p{margin:.2rem 0;line-height:1.55}.business-project-dossier-modules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.business-project-dossier-modules button{border:1px solid var(--line);border-radius:14px;background:var(--soft,#f5f8f9);padding:.85rem;text-align:left;color:var(--text);font-weight:800}.business-project-dossier-modules small{display:block;color:var(--muted);font-weight:600;margin-top:.25rem}body.dark .business-project-summary>div,body.dark .business-project-card,body.dark .business-project-form,body.dark .business-project-detail-card{background:var(--card,#15232b)}body.dark .business-project-status{color:#cbd5e1}@media(max-width:900px){.business-project-list{grid-template-columns:1fr}.business-project-dossier-modules{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.business-projects-heading{flex-direction:column}.business-project-actions{width:100%;justify-content:stretch}.business-project-actions button{flex:1}.business-project-toolbar{grid-template-columns:1fr}.business-project-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.business-project-form-grid,.business-project-detail-grid{grid-template-columns:1fr}.business-project-form-wide{grid-column:auto}.business-project-card-actions{flex-direction:column}.business-project-card-actions button{width:100%}.business-project-dossier-modules{grid-template-columns:1fr}}
