/* Groen met Water portal UI
   Centralized, non-destructive styling layer for existing PHP views. */
:root{
  --bg:#f3f8f5;
  --bg-soft:#e8f3ec;
  --surface:#ffffff;
  --surface-2:#f8fbf9;
  --surface-3:#eef7f1;
  --text:#13251c;
  --muted:#63756c;
  --border:#d9e7df;
  --border-strong:#bfd6c8;
  --primary:#0f7a5a;
  --primary-dark:#0a5f46;
  --primary-soft:#e3f3ed;
  --accent:#1e88e5;
  --accent-soft:#e7f2fd;
  --warning:#b7791f;
  --warning-soft:#fff5db;
  --danger:#be123c;
  --danger-soft:#fde8ee;
  --success:#157347;
  --success-soft:#e1f5ea;
  --shadow:0 18px 45px rgba(15, 51, 36, .10);
  --shadow-soft:0 8px 24px rgba(15, 51, 36, .08);
  --radius:18px;
  --radius-sm:12px;
  --sidebar-width:276px;
  color-scheme:light;
}

*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  min-height:100%;
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size:15px;
  line-height:1.55;
  color:var(--text);
  background:
    radial-gradient(850px 420px at 8% -10%, rgba(15,122,90,.16), transparent 70%),
    radial-gradient(650px 340px at 96% 0%, rgba(30,136,229,.12), transparent 72%),
    linear-gradient(180deg, var(--bg), #fbfdfa 72%);
}

body.gmw-public{display:flex;min-height:100vh;flex-direction:column}

img,svg,video,canvas{max-width:100%}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:3px solid rgba(30,136,229,.28);
  outline-offset:2px;
}

h1,h2,h3{line-height:1.2;color:var(--text)}
h1{font-size:clamp(25px,4vw,34px);margin:0 0 12px}
h2{font-size:clamp(21px,3vw,28px);margin:0 0 14px}
h3{font-size:18px;margin:0 0 10px}
p{margin:0 0 12px}.small{font-size:13px;color:var(--muted)}

.skip-link{
  position:fixed;left:12px;top:12px;z-index:10000;
  transform:translateY(-140%);background:#fff;color:var(--text);
  padding:10px 12px;border-radius:999px;border:1px solid var(--border);box-shadow:var(--shadow-soft)
}
.skip-link:focus{transform:translateY(0)}

.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.app-sidebar{
  position:sticky;top:0;height:100vh;overflow:auto;padding:18px 14px;
  background:linear-gradient(180deg, #0e5f49, #0b4737 74%);
  color:#fff;box-shadow:8px 0 30px rgba(15,51,36,.12);z-index:60
}
.app-main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.container{width:100%;max-width:1280px;margin:0 auto;padding:26px 28px 36px}

.brand-card{display:flex;align-items:center;gap:12px;padding:10px 10px 18px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.16)}
.brand-logo{width:42px;height:42px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);box-shadow:0 12px 28px rgba(0,0,0,.14);font-weight:900;letter-spacing:.04em}
.brand-text strong{display:block;font-size:15px}.brand-text span{display:block;font-size:12px;color:rgba(255,255,255,.72);margin-top:1px}

.nav-section{margin:14px 0}.nav-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.60);padding:0 10px 8px}
.side-nav{display:flex;flex-direction:column;gap:5px}.side-nav a{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 11px;border-radius:14px;color:rgba(255,255,255,.88);font-size:14px;text-decoration:none;border:1px solid transparent}
.side-nav a:hover{background:rgba(255,255,255,.10);text-decoration:none;color:#fff}.side-nav a.active{background:#fff;color:#0b4737;border-color:rgba(255,255,255,.24);box-shadow:0 10px 28px rgba(0,0,0,.14);font-weight:800}.nav-icon{width:22px;text-align:center;opacity:.9}.sidebar-user{margin-top:16px;padding:12px;border-radius:16px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);font-size:12px;color:rgba(255,255,255,.78);overflow-wrap:anywhere}.sidebar-user strong{display:block;color:#fff;font-size:13px;margin-bottom:2px}

.app-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:70px;padding:14px 28px;background:rgba(255,255,255,.82);backdrop-filter:blur(16px);border-bottom:1px solid rgba(217,231,223,.85)}
.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.mobile-menu-btn{display:none;width:42px;height:42px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:20px;cursor:pointer}.page-kicker{font-size:12px;color:var(--muted);line-height:1}.page-title{font-size:18px;font-weight:850;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58vw}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.user-chip{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:0 8px 20px rgba(15,51,36,.05);font-size:13px;color:var(--muted)}.user-avatar{width:28px;height:28px;border-radius:999px;background:var(--primary-soft);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-weight:900}

.card,.panel,.wizard-card,.garden-card,.acard,.scard,.tcard,.card2,.sectionBox,.gardenBox,.advice{
  background:rgba(255,255,255,.86)!important;
  color:var(--text);
  border:1px solid var(--border)!important;
  border-radius:var(--radius)!important;
  box-shadow:var(--shadow-soft);
}
.card,.panel,.wizard-card,.garden-card,.acard,.scard,.tcard,.card2{padding:18px}
.card + .card,.panel + .panel{margin-top:16px}.card h2,.card h3,.panel h2,.panel h3{margin-top:0}.hero{background:linear-gradient(135deg, rgba(15,122,90,.10), rgba(30,136,229,.07))!important;border:1px solid var(--border)!important;border-radius:24px!important;box-shadow:var(--shadow-soft)}

.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.split,.cols{gap:18px!important}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 18px;padding:14px!important;border-radius:var(--radius)!important;background:rgba(255,255,255,.70)!important;border:1px solid var(--border)!important;box-shadow:0 8px 22px rgba(15,51,36,.05)}.head,.page-head,.wizard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.crumb,.breadcrumb{font-size:13px;color:var(--muted);margin:0 0 12px}.meta,.wizard-meta,.hint{color:var(--muted)!important;font-size:13px}.empty{border:1px dashed var(--border-strong)!important;border-radius:var(--radius)!important;background:rgba(255,255,255,.62)!important;color:var(--muted);padding:18px!important}

.btn,button.btn,a.btn,input[type="submit"],button[type="submit"]{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 14px;
  border-radius:13px;border:1px solid var(--border);background:var(--surface);color:var(--text);
  font-weight:750;font-size:14px;line-height:1.2;text-decoration:none;cursor:pointer;box-shadow:0 6px 18px rgba(15,51,36,.06);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease,color .12s ease
}
.btn:hover,button.btn:hover,a.btn:hover,input[type="submit"]:hover,button[type="submit"]:hover{transform:translateY(-1px);border-color:var(--primary);box-shadow:0 10px 24px rgba(15,51,36,.10);text-decoration:none;color:var(--primary)}
.btn:active,button[type="submit"]:active{transform:translateY(0)}
.btn.secondary,a.btn.secondary,button.btn.secondary{background:linear-gradient(180deg, var(--primary), var(--primary-dark));border-color:var(--primary-dark);color:#fff;box-shadow:0 12px 26px rgba(15,122,90,.24)}
.btn.secondary:hover,a.btn.secondary:hover,button.btn.secondary:hover{color:#fff;filter:brightness(1.03)}
.btn.icon{width:40px;padding:8px}.btn.small,.btn.secondary.small{min-height:34px;padding:8px 11px;font-size:13px}.btn.block{background:var(--danger-soft);border-color:#f4b7c4;color:var(--danger)}.btn-group,.actions,.page-actions,.wizard-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}

.input,input:not([type]),input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="search"],input[type="date"],input[type="time"],textarea,select,.select{
  width:auto;max-width:100%;min-height:42px;border-radius:13px;border:1px solid var(--border);background:#fff;color:var(--text);padding:10px 12px;font:inherit;box-shadow:0 3px 12px rgba(15,51,36,.04);outline:none
}
.input,textarea{width:100%}textarea{min-height:112px;resize:vertical}select,.select{appearance:auto}input::placeholder,textarea::placeholder{color:#8a9b92}.toolbar .input{min-width:260px;max-width:440px}.input:focus,input:focus,textarea:focus,select:focus,.select:focus{border-color:rgba(30,136,229,.62);box-shadow:0 0 0 4px rgba(30,136,229,.12)}label{font-weight:700;font-size:13px;color:var(--text)}.field{display:grid;gap:7px;margin-bottom:14px}

.table,table{width:100%;border-collapse:separate;border-spacing:0;background:rgba(255,255,255,.58);border:1px solid var(--border);border-radius:16px;overflow:hidden}table[border]{border:1px solid var(--border)!important}.table th,.table td,table th,table td{padding:11px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)!important}.table th,table th{background:var(--surface-3);color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:850}.table tr:last-child td,table tr:last-child td{border-bottom:0!important}.table tr:hover td,table tr:hover td{background:rgba(15,122,90,.035)}

.badge,.pill,.label{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:750;white-space:nowrap}.badge.ok,.status-ok{background:var(--success-soft);border-color:#b7e3c7;color:var(--success)}.badge.warn,.status-warn{background:var(--warning-soft);border-color:#f4d58a;color:var(--warning)}.badge.err,.status-block{background:var(--danger-soft);border-color:#f4b7c4;color:var(--danger)}.status-info{color:var(--accent)}.dot{box-shadow:0 0 0 4px rgba(15,122,90,.10)}.sep{border-color:var(--border)!important}

.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px;padding:8px;border-radius:16px;background:rgba(255,255,255,.65);border:1px solid var(--border)}.tabs a,.tab{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:9px 12px;border-radius:12px;color:var(--muted);text-decoration:none;border:1px solid transparent;background:transparent;font-weight:750}.tabs a:hover,.tab:hover{color:var(--primary);background:var(--primary-soft);text-decoration:none}.tabs a.active,.tab.active{background:var(--primary);color:#fff;border-color:var(--primary-dark);box-shadow:0 10px 24px rgba(15,122,90,.18)}

.alert{padding:12px 14px;border-radius:14px;border:1px solid #f4b7c4;background:var(--danger-soft);color:var(--danger);margin:12px 0;font-weight:650}.ok{padding:12px 14px;border-radius:14px;border:1px solid #b7e3c7;background:var(--success-soft);color:var(--success);margin:12px 0;font-weight:650}.toast{position:fixed;right:18px;bottom:18px;z-index:2000;padding:12px 14px;border-radius:14px;background:#10231a;color:#fff;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.16)}

.footer{margin-top:auto;border-top:1px solid var(--border);background:rgba(255,255,255,.72)}.footer .wrap{max-width:1280px;margin:0 auto;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.footer .meta-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.footer .meta-links a{font-size:13px;color:var(--muted);padding:7px 10px;border-radius:999px}.footer .meta-links a:hover{background:var(--surface-3);text-decoration:none;color:var(--primary)}

.public-topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;max-width:1180px;margin:0 auto;padding:18px 22px}.public-brand{display:flex;align-items:center;gap:12px;color:var(--text);font-weight:900}.public-logo{width:42px;height:42px;border-radius:15px;background:linear-gradient(135deg,var(--primary),#43b883);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(15,122,90,.22)}.public-main{flex:1;width:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px 40px}.public-footer{padding:20px;text-align:center;color:var(--muted);font-size:13px}
body.gmw-public .page{width:100%;display:flex;align-items:center;justify-content:center;padding:24px 0}body.gmw-public .card{max-width:460px!important;width:100%}.brand-mark{background:linear-gradient(135deg,var(--primary),#43b883)!important}.kbd{display:inline-flex;padding:3px 8px;border-radius:9px;border:1px solid var(--border);background:var(--surface-3);font-size:12px;color:var(--text)}

@media (max-width:1100px){
  .app-shell{grid-template-columns:1fr}.app-sidebar{position:fixed;left:0;top:0;bottom:0;width:min(88vw,var(--sidebar-width));height:100vh;transform:translateX(-105%);transition:transform .18s ease;box-shadow:20px 0 60px rgba(15,51,36,.24)}
  body.nav-open .app-sidebar{transform:translateX(0)}body.nav-open:after{content:"";position:fixed;inset:0;background:rgba(5,24,17,.42);z-index:55}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center}.app-topbar{padding:12px 16px}.container{padding:20px 16px 30px}.page-title{max-width:52vw}.top-actions .user-chip{display:none}.grid.cols-2,.grid.cols-3{grid-template-columns:1fr!important}.split,.cols{grid-template-columns:1fr!important}
}
@media (max-width:720px){
  body{font-size:14px}.container{padding:16px 12px 26px}.app-topbar{min-height:62px}.page-kicker{display:none}.page-title{font-size:16px;max-width:60vw}.toolbar{align-items:stretch}.toolbar .input,.toolbar select,.toolbar .select,.toolbar .btn{width:100%;max-width:none;min-width:0}.btn,button[type="submit"]{width:auto}.table,table{display:block;overflow-x:auto;white-space:nowrap}.footer .wrap{padding:16px;align-items:flex-start}.public-topbar{padding:14px 16px}.public-main{padding:16px 12px 32px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Keep the standalone login card compatible with its existing inline theme. */
body.gmw-public .card{
  background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.03))!important;
  color:var(--text)!important;
}
body.gmw-public .card h1,
body.gmw-public .card h2,
body.gmw-public .card h3,
body.gmw-public .brand-title{color:var(--text)!important}

/* Friendly error / help screens */
.error-panel{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:18px;
  align-items:flex-start;
  max-width:880px;
  margin:28px auto;
  padding:22px;
  border:1px solid var(--border);
  border-radius:26px;
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(248,251,249,.88));
  box-shadow:var(--shadow);
}
.error-icon{
  width:54px;
  height:54px;
  border-radius:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:var(--warning-soft);
  color:var(--warning);
  border:1px solid #f4d58a;
  font-size:28px;
  font-weight:900;
}
.error-content h1{margin:2px 0 10px;font-size:clamp(24px,3vw,34px)}
.error-content p{font-size:16px;color:var(--muted);max-width:68ch}
.error-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}
.help-card{
  margin:16px 0;
  padding:14px 16px;
  border-radius:18px;
  background:var(--accent-soft);
  border:1px solid #c7e1fb;
  color:#16456d;
}
.help-card strong{display:block;margin-bottom:6px;color:#123d61}
.help-card ul{margin:0;padding-left:18px}
.help-card li{margin:4px 0}
.technical-details{
  margin:12px 0;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--surface-2);
  color:var(--muted);
}
.technical-details summary{cursor:pointer;font-weight:800;color:var(--text)}
.technical-details code{display:block;margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--danger)}
.error-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.tenant-select-form{display:grid;gap:8px;margin-top:16px;max-width:520px}
.tenant-picker .error-icon{background:var(--primary-soft);border-color:var(--border-strong);color:var(--primary)}
@media(max-width:720px){.error-panel{grid-template-columns:1fr;margin:12px auto;padding:18px}.error-icon{width:48px;height:48px;border-radius:16px}}

/* Login page in the same visual language as the authenticated portal */
.login-shell{
  width:100%;
  max-width:1120px;
  margin:0 auto;
  padding:10px 0 26px;
}
.login-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:22px;
  align-items:stretch;
}
.login-intro,
.login-card{
  border:1px solid var(--border);
  border-radius:28px;
  background:rgba(255,255,255,.86);
  box-shadow:var(--shadow);
  backdrop-filter:blur(16px);
}
.login-intro{
  position:relative;
  overflow:hidden;
  min-height:560px;
  padding:30px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:
    radial-gradient(520px 260px at 18% 8%, rgba(255,255,255,.22), transparent 70%),
    radial-gradient(520px 280px at 86% 22%, rgba(67,184,131,.30), transparent 72%),
    linear-gradient(145deg, #0e5f49, #0b4737 72%);
  color:#fff;
}
.login-intro:after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-120px;
  width:330px;
  height:330px;
  border-radius:999px;
  border:54px solid rgba(255,255,255,.08);
}
.login-logo-row{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:13px;
}
.login-logo{
  width:50px;
  height:50px;
  border-radius:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 16px 32px rgba(0,0,0,.16);
  font-weight:950;
  letter-spacing:.04em;
}
.login-brand{font-weight:900;font-size:17px;line-height:1.1}.login-subbrand{font-size:13px;color:rgba(255,255,255,.76);margin-top:2px}.login-hero-copy{position:relative;z-index:1;max-width:620px;margin:56px 0 auto}.eyebrow{margin:0 0 8px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:900;color:var(--primary)}.login-intro .eyebrow{color:#bdf7d8}.login-hero-copy h1{margin:0 0 16px;color:#fff;font-size:clamp(30px,4.2vw,48px);letter-spacing:-.03em}.login-hero-copy p{max-width:58ch;color:rgba(255,255,255,.78);font-size:16px}.login-feature-list{position:relative;z-index:1;display:grid;gap:10px;margin-top:28px}.login-feature{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:18px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16)}.login-feature>span{width:32px;height:32px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);flex:0 0 auto}.login-feature strong{display:block;color:#fff;font-size:14px}.login-feature small{display:block;color:rgba(255,255,255,.74);font-size:13px;margin-top:1px}.login-card{padding:30px;align-self:center}.login-card-header{margin-bottom:20px}.login-card h2{font-size:clamp(28px,3vw,36px);letter-spacing:-.02em;margin-bottom:8px}.login-form{display:grid;gap:4px}.password-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.password-field .input{min-width:0}.password-toggle{white-space:nowrap;box-shadow:none}.login-submit{width:100%;min-height:48px;margin-top:6px}.login-alert{display:grid;gap:4px;margin:0 0 18px}.login-alert strong{color:var(--danger)}.login-alert span{font-weight:500;color:#7d1932}.login-demo{margin-top:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2);padding:0}.login-demo summary{cursor:pointer;padding:12px 14px;font-weight:850;color:var(--text)}.login-demo summary:hover{color:var(--primary)}.demo-list{display:grid;gap:8px;padding:0 14px 14px;color:var(--muted);font-size:13px}.login-help{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
@media(max-width:980px){.login-grid{grid-template-columns:1fr}.login-intro{min-height:auto}.login-hero-copy{margin:36px 0 18px}.login-card{align-self:auto}}
@media(max-width:720px){.login-shell{padding:0}.login-intro,.login-card{border-radius:22px}.login-intro{padding:22px}.login-card{padding:22px}.password-field{grid-template-columns:1fr}.password-toggle{width:100%}.login-feature-list{display:none}.login-hero-copy h1{font-size:28px}.login-hero-copy p{font-size:14px}.public-footer{padding-top:10px}}

/* Login redesign 006: closer to the authenticated portal, calmer and more task-oriented. */
body.gmw-login-page{
  min-height:100vh;
  background:
    radial-gradient(900px 460px at 6% -8%, rgba(15,122,90,.18), transparent 70%),
    radial-gradient(760px 380px at 96% 4%, rgba(30,136,229,.12), transparent 72%),
    linear-gradient(180deg, #f3f8f5 0%, #fbfdfa 72%);
}
.gmw-login-page .public-topbar{
  max-width:1240px;
  padding:18px 28px 10px;
}
.public-topbar-meta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--muted);
  font-size:13px;
  font-weight:800;
  box-shadow:var(--shadow-soft);
}
.status-dot{
  width:9px;
  height:9px;
  border-radius:999px;
  display:inline-block;
  background:var(--success);
  box-shadow:0 0 0 5px rgba(21,115,71,.12);
  flex:0 0 auto;
}
.gmw-login-page .public-main{
  align-items:flex-start;
  padding:18px 24px 34px;
}
.login-stage{
  width:100%;
  max-width:1240px;
  min-height:calc(100vh - 132px);
  margin:0 auto;
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
  gap:24px;
  align-items:stretch;
}
.login-sidebar{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:22px;
  min-height:660px;
  padding:20px;
  border-radius:30px;
  color:#fff;
  background:linear-gradient(180deg, #0e5f49, #0b4737 76%);
  box-shadow:8px 24px 58px rgba(15,51,36,.18);
}
.login-sidebar:before,
.login-sidebar:after{
  content:"";
  position:absolute;
  border-radius:999px;
  pointer-events:none;
}
.login-sidebar:before{
  inset:auto -90px -120px auto;
  width:260px;
  height:260px;
  border:48px solid rgba(255,255,255,.075);
}
.login-sidebar:after{
  left:-120px;
  top:170px;
  width:230px;
  height:230px;
  background:rgba(67,184,131,.18);
  filter:blur(8px);
}
.login-sidebar-brand,
.login-sidebar-copy,
.login-nav-preview,
.login-status-card{
  position:relative;
  z-index:1;
}
.login-sidebar-brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 8px 18px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.login-sidebar-logo{
  width:46px;
  height:46px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.2);
  box-shadow:0 12px 28px rgba(0,0,0,.14);
  font-weight:950;
  letter-spacing:.04em;
}
.login-sidebar-brand strong{display:block;font-size:15px;line-height:1.1}
.login-sidebar-brand span:not(.login-sidebar-logo){display:block;font-size:12px;color:rgba(255,255,255,.72);margin-top:2px}
.login-sidebar-copy{padding:8px 8px 0}
.login-sidebar-copy .eyebrow{color:#bdf7d8;margin-bottom:10px}
.login-sidebar-copy h1{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(28px,3vw,36px);
  letter-spacing:-.035em;
}
.login-sidebar-copy p{color:rgba(255,255,255,.76);font-size:14px;margin:0;max-width:30ch}
.login-nav-preview{
  display:grid;
  gap:7px;
  margin-top:auto;
}
.login-nav-item{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:10px 11px;
  border:1px solid transparent;
  border-radius:14px;
  color:rgba(255,255,255,.84);
  font-size:14px;
  font-weight:750;
}
.login-nav-item span:first-child{
  width:22px;
  text-align:center;
  opacity:.9;
}
.login-nav-item.active{
  background:#fff;
  color:#0b4737;
  border-color:rgba(255,255,255,.24);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.login-status-card{
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.15);
}
.login-status-card div{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:7px;
}
.login-status-card strong{font-size:14px;color:#fff}
.login-status-card p{font-size:12px;color:rgba(255,255,255,.72);margin:0}
.login-status-card .status-dot{background:#7ef3ad;box-shadow:0 0 0 5px rgba(126,243,173,.14)}
.login-content{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
}
.login-card.polished-login-card{
  width:min(100%, 540px);
  margin:0 auto;
  align-self:center;
  padding:34px;
  border:1px solid var(--border);
  border-radius:30px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,249,.92));
  box-shadow:var(--shadow);
  backdrop-filter:blur(16px);
}
.polished-login-card .login-card-header{margin-bottom:24px}
.login-badge{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:30px;
  margin-bottom:12px;
  padding:6px 11px;
  border-radius:999px;
  border:1px solid var(--border-strong);
  background:var(--primary-soft);
  color:var(--primary-dark);
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
}
.polished-login-card h2{
  font-size:clamp(31px,4vw,42px);
  margin:0 0 8px;
  letter-spacing:-.04em;
}
.polished-login-card .login-card-header p{
  margin:0;
  color:var(--muted);
  font-size:15px;
}
.polished-login-card .login-form{display:grid;gap:14px}
.polished-login-card .field{margin:0;gap:7px}
.login-input-wrap{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:50px;
  width:100%;
  padding:0 12px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 5px 18px rgba(15,51,36,.05);
  transition:border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.login-input-wrap:focus-within{
  border-color:rgba(30,136,229,.62);
  box-shadow:0 0 0 4px rgba(30,136,229,.12), 0 8px 22px rgba(15,51,36,.07);
}
.login-input-wrap>span{
  width:28px;
  min-width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:var(--surface-3);
  color:var(--primary);
  font-size:12px;
  font-weight:950;
}
.login-input-wrap .input,
.login-input-wrap input{
  min-height:48px;
  width:100%;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.login-input-wrap .input:focus,
.login-input-wrap input:focus{
  border-color:transparent;
  box-shadow:none;
}
.login-input-wrap.password-field{
  grid-template-columns:auto minmax(0,1fr) auto;
}
.login-input-wrap .password-toggle{
  min-height:34px;
  padding:7px 10px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-2);
  color:var(--primary-dark);
  font:inherit;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.login-input-wrap .password-toggle:hover{
  background:var(--primary-soft);
  border-color:var(--border-strong);
}
.polished-login-card .login-submit{
  width:100%;
  min-height:52px;
  margin:2px 0 0;
  border-radius:16px;
  font-size:15px;
  box-shadow:0 14px 30px rgba(15,122,90,.20);
}
.polished-login-card .login-alert{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:flex-start;
  margin:0 0 20px;
  padding:14px;
  border-radius:18px;
}
.alert-icon{
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  background:#fff;
  color:var(--danger);
  font-weight:950;
  box-shadow:0 4px 12px rgba(190,18,60,.08);
}
.polished-login-card .login-alert span{display:block;margin-top:3px;line-height:1.45}
.login-support-row{
  margin-top:18px;
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-2);
}
.login-support-row strong{display:block;font-size:13px;margin-bottom:2px}
.login-support-row span{display:block;color:var(--muted);font-size:13px;line-height:1.45}
.polished-login-card .login-demo{
  margin-top:14px;
  border-radius:18px;
}
.login-help-grid{
  width:min(100%, 540px);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.login-help-tile{
  padding:14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:rgba(255,255,255,.72);
  box-shadow:var(--shadow-soft);
}
.login-help-tile strong{display:block;font-size:13px;margin-bottom:3px}
.login-help-tile span{display:block;color:var(--muted);font-size:12px;line-height:1.4}
.gmw-login-page .public-footer{
  padding:0 20px 18px;
}
@media(max-width:1020px){
  .login-stage{grid-template-columns:1fr;min-height:auto}
  .login-sidebar{min-height:auto;display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .login-sidebar-copy{grid-column:1 / -1}
  .login-nav-preview{margin-top:0}
  .login-status-card{align-self:end}
}
@media(max-width:720px){
  .gmw-login-page .public-topbar{padding:14px 16px 8px}
  .public-topbar-meta{display:none}
  .gmw-login-page .public-main{padding:12px 12px 28px}
  .login-stage{gap:14px}
  .login-sidebar{display:block;min-height:auto;padding:18px;border-radius:24px}
  .login-sidebar-copy{padding:16px 4px 0}
  .login-sidebar-copy h1{font-size:25px}
  .login-sidebar-copy p{max-width:none}
  .login-nav-preview,
  .login-status-card{display:none}
  .login-card.polished-login-card{padding:22px;border-radius:24px}
  .login-input-wrap.password-field{grid-template-columns:auto minmax(0,1fr)}
  .login-input-wrap .password-toggle{grid-column:1 / -1;width:100%;margin-bottom:10px}
  .login-help-grid{grid-template-columns:1fr}
}

/* UX pass 005: clearer status, source and onboarding components */
.page-intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
  margin-bottom:16px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:24px;
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(227,243,237,.72));
  box-shadow:var(--shadow-soft);
}
.page-intro h1,.page-intro h2{margin:0 0 6px}
.page-intro p{margin:0;color:var(--muted);max-width:72ch}
.page-intro-actions{display:flex;gap:9px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.status-card,.metric-card{
  padding:14px;
  border-radius:18px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.78);
  box-shadow:0 8px 22px rgba(15,51,36,.05);
  min-width:0;
}
.status-card b,.metric-card b{display:block;font-size:22px;line-height:1.1;margin-bottom:4px}
.status-card span,.metric-card span{display:block;color:var(--muted);font-size:13px}
.status-card.ok{background:var(--success-soft);border-color:#b7e3c7}
.status-card.warn{background:var(--warning-soft);border-color:#f4d58a}
.status-card.danger{background:var(--danger-soft);border-color:#f4b7c4}
.alert,.notice,.source-banner{
  padding:13px 14px;
  border-radius:17px;
  border:1px solid var(--border);
  background:var(--surface-2);
  color:var(--text);
  margin:12px 0;
}
.alert.info,.source-banner{background:var(--accent-soft);border-color:#c7e1fb;color:#16456d}
.alert.success{background:var(--success-soft);border-color:#b7e3c7;color:var(--success)}
.alert.warning{background:var(--warning-soft);border-color:#f4d58a;color:var(--warning)}
.alert.danger{background:var(--danger-soft);border-color:#f4b7c4;color:var(--danger)}
.source-banner{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.source-banner strong{display:block;margin-bottom:2px;color:inherit}
.source-pill{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850;border:1px solid var(--border-strong);background:#fff;color:var(--primary);white-space:nowrap}
.source-pill.kb{background:var(--primary-soft);color:var(--primary)}
.source-pill.openai{background:var(--accent-soft);color:#16456d}
.checklist{display:grid;gap:9px;margin:12px 0 0;padding:0;list-style:none}
.checklist li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;padding:9px 10px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.6)}
.checklist .check-icon{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary);font-weight:900;font-size:12px}
.knowledge-result{display:grid;gap:12px}
.result-advice{font-size:17px;line-height:1.55;padding:14px;border-radius:18px;background:#fff;border:1px solid var(--border)}
.result-list{margin:6px 0 0;padding-left:20px}.result-list li{margin:5px 0}
.action-suggestion{padding:12px;border-radius:16px;background:var(--surface-2);border:1px solid var(--border);margin:8px 0}
.raw-json{white-space:pre-wrap;overflow:auto;max-height:440px;padding:12px;border-radius:14px;background:#0b1220;color:#dbeafe;font-size:12px}
.command-card-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.command-card{grid-column:span 12;display:grid;gap:10px}
@media(min-width:900px){.command-card{grid-column:span 6}}
@media(min-width:1240px){.command-card{grid-column:span 4}}
.command-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.command-meta div{padding:9px 10px;border-radius:13px;border:1px solid var(--border);background:var(--surface-2);min-width:0}.command-meta span{display:block;font-size:11px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.04em}.command-meta strong{display:block;font-size:13px;overflow-wrap:anywhere}
.tenant-chip .user-avatar{background:var(--accent-soft);color:#16456d}
@media(max-width:900px){.page-intro{grid-template-columns:1fr}.page-intro-actions{justify-content:flex-start}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.status-grid{grid-template-columns:1fr}.command-meta{grid-template-columns:1fr}}

/* Review 2026-06: presetbeheer/PWA offline formulieren */
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}
@media(max-width:720px){.grid2{grid-template-columns:1fr}}

/* Topbar meldingen: centrale plek voor actieve Yookr/Raspberry waarschuwingen */
.topbar-alerts{position:relative;display:inline-flex;align-items:center}
.alert-bell{position:relative;width:42px;height:42px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 20px rgba(15,51,36,.06);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}
.alert-bell:hover,.alert-bell:focus-visible{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,51,36,.12);outline:none;border-color:rgba(15,122,90,.32)}
.alert-bell.ok{background:rgba(236,253,245,.92);color:#047857;border-color:rgba(16,185,129,.24)}
.alert-bell.warn{background:rgba(255,251,235,.96);color:#92400e;border-color:rgba(245,158,11,.36)}
.alert-bell.danger{background:rgba(254,242,242,.96);color:#991b1b;border-color:rgba(239,68,68,.38)}
.alert-bell-icon{font-size:18px;line-height:1}
.alert-badge{position:absolute;right:-5px;top:-5px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;border:2px solid #fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;line-height:1;box-shadow:0 6px 14px rgba(220,38,38,.28)}
.alert-menu{position:absolute;right:0;top:calc(100% + 10px);width:min(390px,calc(100vw - 24px));background:rgba(255,255,255,.98);border:1px solid var(--border);border-radius:20px;box-shadow:0 24px 70px rgba(15,51,36,.18);overflow:hidden;z-index:90;color:var(--text)}
.alert-menu-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,rgba(15,122,90,.08),rgba(30,136,229,.05))}
.alert-menu-head strong{display:block;font-size:15px}.alert-menu-head span{display:block;margin-top:2px;color:var(--muted);font-size:12px}.alert-menu-head small{white-space:nowrap;color:var(--muted);font-size:12px;font-weight:700}
.alert-menu-list{display:grid;gap:0;max-height:360px;overflow:auto}.alert-menu-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:13px 16px;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}.alert-menu-item:hover{background:rgba(15,122,90,.05);text-decoration:none}.alert-menu-item strong{display:block;font-size:13px;line-height:1.25}.alert-menu-item small{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}.alert-dot{width:10px;height:10px;border-radius:999px;margin-top:4px;background:#f59e0b}.alert-menu-item.critical .alert-dot{background:#dc2626}.alert-menu-item.warning .alert-dot{background:#f59e0b}
.alert-menu-empty{padding:16px;color:var(--muted);font-size:13px;line-height:1.45}.alert-menu-empty.success{color:#047857;background:rgba(236,253,245,.72)}.alert-menu-empty.warning{color:#92400e;background:rgba(255,251,235,.82)}
.alert-menu-footer{display:flex;align-items:center;justify-content:center;padding:12px 16px;background:var(--surface-2);font-weight:850;color:var(--primary);text-decoration:none}.alert-menu-footer:hover{text-decoration:none;background:rgba(15,122,90,.08)}
.dashboard-alert-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dashboard-alert-summary .btn{margin-left:auto}
@media(max-width:720px){.alert-menu{right:-72px}.top-actions{gap:8px}.alert-bell{width:40px;height:40px}.dashboard-alert-summary{align-items:flex-start}}

/* Topbar tenantselector voor superadmins */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.tenant-selector-chip{padding:6px 8px 6px 8px;gap:8px}
.tenant-selector-chip .user-avatar{flex:0 0 auto}
.tenant-selector-select{border:0;background:transparent;color:var(--text);font-weight:850;font-size:13px;max-width:220px;min-width:136px;outline:none;cursor:pointer;padding:6px 26px 6px 0;appearance:auto}
.tenant-selector-select:focus-visible{outline:2px solid rgba(15,122,90,.28);outline-offset:4px;border-radius:10px}
@media(max-width:720px){.tenant-selector-select{max-width:150px;min-width:118px}.tenant-selector-chip{display:flex!important}}


/* Role-focused UX pass: make the portal feel like a workspace per user role. */
.sidebar-role-card{
  margin:4px 2px 16px;
  padding:13px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.78);
  box-shadow:0 12px 26px rgba(0,0,0,.10);
}
.sidebar-role-card span{
  display:inline-flex;
  margin-bottom:6px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(189,247,216,.14);
  color:#bdf7d8;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.sidebar-role-card strong{
  display:block;
  color:#fff;
  font-size:14px;
  line-height:1.25;
}
.sidebar-role-card small{
  display:block;
  margin-top:3px;
  color:rgba(255,255,255,.68);
  font-size:12px;
  line-height:1.35;
}
.side-nav a{
  position:relative;
}
.side-nav a.active:before{
  content:"";
  width:4px;
  border-radius:999px;
  align-self:stretch;
  background:var(--primary);
  box-shadow:0 0 0 3px rgba(15,122,90,.10);
}
.role-chip{
  color:var(--primary-dark);
  background:var(--primary-soft);
  border-color:var(--border-strong);
  font-weight:850;
}
.role-dot{
  width:9px;
  height:9px;
  border-radius:999px;
  background:var(--primary);
  box-shadow:0 0 0 5px rgba(15,122,90,.12);
  flex:0 0 auto;
}
.role-superadmin .role-chip,
.role-superadmin .sidebar-role-card span{background:rgba(231,242,253,.18);color:#bde0ff}
.role-superadmin .role-dot{background:var(--accent);box-shadow:0 0 0 5px rgba(30,136,229,.12)}
.role-tenant_admin .role-dot{background:var(--primary)}
.role-tenant_user .role-dot{background:var(--success)}

.role-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:start;
  margin-bottom:16px;
}
.role-hero .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:28px;
  margin-bottom:10px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid var(--border-strong);
  background:var(--primary-soft);
  color:var(--primary-dark);
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
}
.role-hero h1{
  margin:0 0 8px;
  letter-spacing:-.03em;
}
.role-hero p{
  margin:0;
  color:var(--muted);
  max-width:78ch;
}
.role-hero-actions{
  display:flex;
  gap:9px;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
}
.role-task-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.role-task-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  box-shadow:0 8px 22px rgba(15,51,36,.05);
  color:var(--text);
  text-decoration:none;
  min-width:0;
}
.role-task-card:hover{
  transform:translateY(-1px);
  border-color:rgba(15,122,90,.30);
  box-shadow:0 12px 28px rgba(15,51,36,.09);
  text-decoration:none;
}
.role-task-icon{
  width:36px;
  height:36px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--primary-soft);
  color:var(--primary);
  font-weight:950;
  flex:0 0 auto;
}
.role-task-card strong{
  display:block;
  margin-bottom:3px;
  color:var(--text);
}
.role-task-card span{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}
.role-readonly-note{
  margin:10px 0 0;
  padding:10px 12px;
  border-radius:14px;
  background:var(--accent-soft);
  border:1px solid #c7e1fb;
  color:#16456d;
  font-size:13px;
  line-height:1.45;
}
.quick-link-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.quick-link-grid .btn{
  justify-content:flex-start;
  min-width:0;
}
.stats-list{
  display:grid;
  gap:8px;
}
.stats-list div{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border-radius:13px;
  border:1px solid var(--border);
  background:var(--surface-2);
}
.stats-list span{
  color:var(--muted);
}
.stats-list strong{
  font-weight:900;
}
@media(max-width:980px){
  .role-hero{grid-template-columns:1fr}
  .role-hero-actions{justify-content:flex-start}
  .role-task-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .role-chip{display:none}
  .quick-link-grid{grid-template-columns:1fr}
  .role-task-card{grid-template-columns:1fr}
  .side-nav a.active:before{display:none}
}


/* Calm UX batch: less chrome, fewer visual blocks, more whitespace. */
:root{
  --shadow:0 10px 28px rgba(15,51,36,.08);
  --shadow-soft:0 4px 14px rgba(15,51,36,.05);
  --radius:16px;
  --radius-sm:10px;
  --sidebar-width:244px;
}
body{
  background:linear-gradient(180deg,#f7fbf8 0%,#fbfdfa 100%);
}
.app-sidebar{padding:14px 10px;background:#0d5140;box-shadow:none}
.brand-card{padding:8px 8px 14px;margin-bottom:10px}.brand-logo{width:36px;height:36px;border-radius:12px}.brand-text span{display:none}
.nav-section{margin:8px 0}.nav-title{padding:0 9px 6px;font-size:10px;color:rgba(255,255,255,.52)}
.side-nav{gap:2px}.side-nav a{min-height:36px;padding:8px 9px;border-radius:11px;font-size:13px}.nav-icon{width:19px}
.sidebar-user{margin-top:10px;padding:10px;border-radius:13px}.sidebar-user strong{font-size:12px}
.app-topbar{min-height:58px;padding:10px 24px;background:rgba(255,255,255,.92);backdrop-filter:none}.page-title{font-size:17px}.top-actions{gap:7px}.user-chip{box-shadow:none;min-height:36px;padding:6px 9px}.alert-bell{width:38px;height:38px;box-shadow:none}.tenant-selector-chip{box-shadow:none}.tenant-selector-select{max-width:185px}
.container{max-width:1180px;padding:22px 24px 32px}
.footer{background:transparent}.footer .wrap{padding:12px 24px}.footer .small{font-size:12px;color:#8a9b92}
.card,.panel,.wizard-card,.garden-card,.acard,.scard,.tcard,.card2,.sectionBox,.gardenBox,.advice{box-shadow:none!important;background:#fff!important;border-color:#e3ece6!important}
.card,.panel,.wizard-card,.garden-card,.acard,.scard,.tcard,.card2{padding:15px}.gardenBox,.sectionBox{padding:10px!important}
.page-intro{padding:0;margin:0 0 14px;border:0;background:transparent;box-shadow:none;border-radius:0;align-items:center}.page-intro h1{font-size:clamp(22px,3vw,30px);margin:0}.page-intro p,.page-intro .small{display:none}.page-intro-actions .btn{min-height:36px;padding:8px 11px}
.calm-page-intro{grid-template-columns:minmax(0,1fr) auto}
.status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:10px 0 14px}.compact-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.status-card,.metric-card{padding:11px 12px;border-radius:14px;box-shadow:none;background:#fff}.status-card b,.metric-card b{font-size:19px}.status-card span,.metric-card span{font-size:12px}
.alert,.notice,.source-banner{padding:10px 12px;border-radius:13px;margin:10px 0}.source-banner{box-shadow:none}.compact-source{display:flex;justify-content:flex-start;gap:12px;align-items:center}
.toolbar{padding:10px!important;margin:10px 0 14px;box-shadow:none}.tabs{padding:5px;margin:8px 0 12px;border-radius:12px}.tabs a,.tab{min-height:34px;padding:7px 10px;border-radius:9px;font-size:13px}
.btn,button.btn,a.btn,input[type="submit"],button[type="submit"]{min-height:36px;padding:8px 12px;border-radius:10px;box-shadow:none}.btn:hover,button.btn:hover,a.btn:hover,input[type="submit"]:hover,button[type="submit"]:hover{transform:none;box-shadow:none}
.input,input:not([type]),input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="search"],input[type="date"],input[type="time"],textarea,select,.select{min-height:38px;border-radius:10px;padding:8px 10px;box-shadow:none}
.table,table{border-radius:12px;background:#fff}.table th,.table td,table th,table td{padding:9px 10px}.table th,table th{background:#f3f8f5}
.role-task-grid,.role-readonly-note,.sidebar-role-card,.role-chip{display:none!important}
.alert-explain{padding:10px 12px!important;margin:8px 0 12px!important;border-radius:13px!important;background:#fff!important;border-color:var(--border)!important}
.alert-list{gap:9px}.alert-item{padding:12px!important;background:#fff!important;border-color:var(--border)!important}.alert-cols{grid-template-columns:1fr!important;gap:7px!important}.alert-label{font-size:11px}.smallmono{font-size:11px;color:var(--muted)}
.help-card{padding:12px;border-radius:14px;box-shadow:none}.checklist{display:none}
@media(max-width:1100px){.container{padding:18px 16px 28px}.app-topbar{padding:10px 16px}.top-actions .tenant-chip{display:flex}.top-actions .btn{display:none}.status-grid,.compact-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.container{padding:14px 12px 24px}.page-title{max-width:64vw}.page-intro,.calm-page-intro{grid-template-columns:1fr}.status-grid,.compact-status-grid{grid-template-columns:1fr}.top-actions .tenant-selector-chip{display:flex!important}.top-actions .topbar-alerts{display:inline-flex}.top-actions .btn{display:none}.footer{display:none}}
.svgWrap svg text{fill:var(--text)!important}
.svgWrap rect{stroke:var(--border)!important}


/* Role flow batches 2026-07 */
.tenant-cockpit{display:grid;gap:12px;margin:0 0 14px}
.cockpit-focus-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.cockpit-focus{display:grid;gap:2px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);text-decoration:none}
.cockpit-focus:hover{text-decoration:none;border-color:var(--border-strong)}
.cockpit-focus span{font-size:12px;color:var(--muted);font-weight:800}
.cockpit-focus strong{font-size:21px;line-height:1.15;overflow-wrap:anywhere}
.cockpit-focus small{font-size:12px;color:var(--muted)}
.cockpit-focus.ok{background:var(--success-soft);border-color:#b7e3c7}.cockpit-focus.warn{background:var(--warning-soft);border-color:#f4d58a}.cockpit-focus.danger{background:var(--danger-soft);border-color:#f4b7c4}
.cockpit-board{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:10px;align-items:stretch}
.cockpit-panel{padding:13px;border:1px solid var(--border);border-radius:14px;background:#fff;min-width:0}
.cockpit-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}
.cockpit-panel-head strong{display:block;font-size:15px}.cockpit-panel-head span{display:block;color:var(--muted);font-size:12px;margin-top:1px}
.progress{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.progress span{display:block;height:100%;border-radius:999px;background:var(--primary)}
.setup-strip{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.setup-chip{display:inline-flex;align-items:center;gap:5px;min-height:27px;padding:5px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-size:12px;font-weight:800;color:var(--muted);text-decoration:none}.setup-chip.done{background:var(--success-soft);border-color:#b7e3c7;color:var(--success)}.setup-chip.todo{background:#fff;color:var(--muted)}.setup-chip:hover{text-decoration:none;border-color:var(--border-strong)}
.compact-list{display:grid;gap:7px}.compact-list a{display:grid;gap:2px;padding:8px 9px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--text);text-decoration:none}.compact-list a:hover{text-decoration:none;border-color:var(--border-strong)}.compact-list strong{font-size:13px}.compact-list span{font-size:12px;color:var(--muted)}
.empty-state{display:grid;gap:8px;padding:16px;border:1px dashed var(--border-strong);border-radius:14px;background:var(--surface-2);color:var(--muted)}.empty-state strong{color:var(--text)}.empty-state span{font-size:13px}.empty-state .btn{justify-self:start}
.wizard-progress-card{display:grid;gap:10px;margin:12px 0}.wizard-steps-v2{display:grid;gap:8px;margin-top:12px}.wizard-step-v2{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--border);border-radius:14px;background:#fff}.wizard-step-v2.done{background:var(--success-soft);border-color:#b7e3c7}.wizard-step-v2.todo{background:#fff}.wizard-step-icon{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);font-weight:900}.wizard-step-v2.done .wizard-step-icon{background:#fff;color:var(--success)}.wizard-step-v2 strong{display:block}.wizard-step-v2 span{display:block;color:var(--muted);font-size:12px}.wizard-next{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:12px;border-radius:14px;border:1px solid var(--border);background:var(--surface-2);margin-top:12px}.wizard-next strong{display:block}.wizard-next span{display:block;color:var(--muted);font-size:13px}
.advice-card-list{display:grid;gap:10px}.advice-card-v2{padding:13px;border:1px solid var(--border);border-radius:14px;background:#fff}.advice-card-v2 header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.advice-card-v2 h3{font-size:15px;margin:0}.advice-answer{font-size:14px;color:var(--text);line-height:1.5}.advice-meta-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.muted-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted);font-size:12px}
.decision-flow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.decision-flow span{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:5px 8px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:800}.decision-flow span.active{background:var(--primary-soft);color:var(--primary);border-color:var(--border-strong)}
@media(max-width:1000px){.cockpit-board{grid-template-columns:1fr}.cockpit-focus-row{grid-template-columns:1fr}}
@media(max-width:720px){.wizard-step-v2{grid-template-columns:auto minmax(0,1fr)}.wizard-step-v2 .btn{grid-column:1/-1;justify-self:start}.cockpit-panel-head{display:grid}.cockpit-panel-head .btn{justify-self:start}}
